一、RS485通信接口特點 作為工業(yè)領域上較常用的通信方式,RS485總線具有以下諸多特點:
(5)RS485收發(fā)器共模電壓范圍為-7V~+12V,只有滿足該條件,整個網(wǎng)絡才能正常工作。當網(wǎng)絡線路中共模電壓超出此范圍時就會影響通信的穩(wěn)定,甚至損壞接口。 二、RS485收發(fā)控制方法 RS485屬于半雙工總線,在實際使用時一般采用主機輪詢或令牌傳遞的方法來分配總線控制權,RS485設備需要進行發(fā)送和接收的方向轉換。比較通用的做法是,每個RS485設備在平時均處于接收狀態(tài),只有在自己有數(shù)據(jù)要發(fā)送時才轉換到發(fā)送狀態(tài),數(shù)據(jù)發(fā)送完畢后再次切換回接收狀態(tài)。 1、第一種:程序換向控制 最常用的RS485收發(fā)換向方法是程序換向,即由MCU的一個I/O端口控制RS485收發(fā)器件的收發(fā)使能引腳,在平時使RS485收發(fā)器件處于接收狀態(tài),如下圖,這里485芯片用TI的SN65LBC184,最大速率達到250Kbps,當有數(shù)據(jù)需要發(fā)送時,MCU將RS485收發(fā)器件引腳(網(wǎng)絡RS485_EN2)置于發(fā)送狀態(tài),完成數(shù)據(jù)發(fā)送后,再把RS485收發(fā)器件切回接收狀態(tài)。 這種方式簡單易行,不需增加額外成本,這種方法很多人都會知道并且基本上都用的方法。 2、第二種:自動換向 但是,當我們采用某種硬件平臺的工控主板或核心板進行二次開發(fā)時,由于工控主板或核心板上沒有預留出足夠的I/O端口,使得RS485收發(fā)的程序換向方法無法實現(xiàn)。在某些特定的情況下,開發(fā)平臺的底層驅動未對外開放,難以對底層進行二次開發(fā),這種情況下即便有足夠的I/O端口也無法實現(xiàn)程序換向。為此,我們需要采用另外一種換向技術,即自動換向技術。自動換向其實就是對使能引腳不需要單獨的I/O口來控制,而是由發(fā)送引腳發(fā)送數(shù)據(jù)時候順便控制了。 要實現(xiàn)這種方法可以使能那里加一個反相器,如下圖,在空閑狀態(tài)下,串口的發(fā)送信號TXD2為高電平,經過反相器后輸出低電平,使SN65LBC184處于接收狀態(tài),而RS485總線由于上下拉電阻的作用處于A高B低的狀態(tài)。當發(fā)送數(shù)據(jù)時,TXD2信號線上的低電平比特位控制SN65LBC184進入發(fā)送狀態(tài),將該比特發(fā)送出去。而高電平比特位則使SN65LBC184處于接收狀態(tài),由RS485總線上下拉電阻把總線置于A高B低的狀態(tài),即表示發(fā)送了高電平。 反相器也可以用三極管代替,如下圖所示,工作原理和加反相器一樣。 但是這種方法在發(fā)送高電平時的驅動能力有限,因此會限制通訊距離,一般適用于距離不遠場合。 其實,為了省去控制的麻煩,也可以采用專門的、帶有AutoDirection功能的485芯片,比如MAX13487E,它省去了常用的485使能信號,從而簡化了設計電路。 |
|