簡體   English   中英

pxa255中的RS485支持

[英]RS485 support in pxa255

我想使用卡上的rs485。 我正在使用arma Linux和pxa255處理器。 我已經檢查了位於arm-linux工具鏈中的“ serial.h”,但不幸的是,盡管在cris等其他環境中也支持它,但我找不到合適的rs485設置結構。 所以現在,我是否必須編寫一個低級驅動程序來啟用rs485或還有其他更簡單的方法來做到這一點?

我建議您閱讀有關Linux RS-485支持的頁面

關於Linux驅動程序對RS485模式的支持,關於串行端口似乎有很多困惑。 我認為我也許可以回答這個問題。

首先,您應該問自己:為什么我要在串行端口上激活RS485支持? 我不知道您在使用什么開發板或硬件,但是請注意,大多數UART僅在單端TTL電平(5V或3.3V電平)下工作。 這意味着您將無法直接與RS485設備通信,因為它們僅處理差分信號。 如果您需要更多詳細信息,請參見以下鏈接: https : //www2.htw-dresden.de/~huhle/ArtScienceRS485.pdf ,以獲取良好的介紹。

因此,您可以根據需要編寫任意多行代碼和驅動程序,但這不會幫助您的TTL UART與RS485通訊。 即使驅動器上支持RS485的設備,硬件本身也需要具有電平轉換器IC(如MAX485)才能使用。 幸運的是,我們心愛的Linux內核開發人員對硬件了解很多,並且您不必為此擔心(對於大多數設備而言)。 然后,回答您的問題: 如果您無法在驅動程序上找到RS485設置,則很可能意味着您的硬件不直接提供支持

幸運的是,該解決方案非常簡單:只需購買一個便宜的USB到RS485加密狗即可。 您可以在5到10美元之間找到它們,它們在大多數情況下都可以正常使用。 以我的經驗,FTDI芯片效果很好。

例如,如果出於任何原因確實需要使用一個特定的UART,請想象您想在Raspberry Pi或僅可訪問TX和RX信號的任何其他設備上使用UART。 這樣,您面臨的挑戰就更加艱巨,您需要進一步研究RS485設備的工作方式。 此處的關鍵方面是要了解半雙工兩線鏈路上的RS485(有關更多詳細信息,請參見下面的注釋)。 為了能夠共享兩線制總線,其中一個或多個設備正在偵聽而任何時候都只有一個正在講話,您需要在TX和RX的頂部附加一個控制信號(驅動使能/〜讀使能)(請注意,當您使用單端TTL時,與使用一根差分總線的兩根RS485端的差分總線相比,使用三根導線的兩個信號被稱為GND。 您的RS485收發器(例如MAX485)將需要此RE /〜DE信號來安排誰正在通話和誰正在總線上監聽,即:在總線上監聽的所有設備都將使該信號為低電平(讀啟用設置),而講話者將高(驅動器使能)。

在這里,我們進入了您問題的實質:在哪里可以得到這個額外的信號? 好吧,答案是:它取決於您的UART芯片。 某些芯片無法提供任何支持,因此您可以選擇在軟件應用程序中手動驅動GPIO線路或UARTS的流控制信號(RTS或DTR)(如果有)。 您可以在以下位置針對FTDI芯片的特定情況閱讀有關此主題的更多詳細信息: RS485:設備的ioctl不適當 也有使用神話般的555定時器IC來解決此問題的一種很好的硬件解決方案的參考。

注意 :更令人困惑的領域:一,RS485是半雙工的,有時與RS422混合在一起,后者是全雙工的,需要四根電線; 第二:在說兩線和四線的地方,我最好說三線和五線,因為差分電壓信號需要一個GND作為返回路徑。 不幸的是,RS485的大多數實際實現都是兩線制的,並且對於大多數人來說似乎可以可靠地工作,但這本身就是一個巨大的話題,我們可以在其他地方談論它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM