N76E003 之 RS485 通訊

1、RS485技術參數

  1. 兩線電壓差2~6V,兼容TTL電平
  2. 10m距離,最高速度35Mbps。1km距離,100Kbps
  3. 一般最多支持32個節點,某些特製芯片可達400
  4. 終端電阻:120R
  5. 通訊鏈路方式:總線型(如下圖1)
  6. 通訊方式:半雙工

圖1

2、硬件電路

如下圖2,R15、R16取值參考了原子哥的設計,RO、D1分別對應串口RX和TX,而中間的RE和DE則是(發送\接受)控制端,當端口爲1時,爲發送模式、爲0時,爲接受模式。

485協議中的,半雙工模式則要求一方爲發送模式,一方爲接收模式
在這裏插入圖片描述

3、程序邏輯

由於RS485不能像某些IIC器件一樣,設置硬件地址位(其實也是軟件設置的),所以我們需要使用一種方法來對該總線下的單片機設置地址,這裏推薦的做法是使用單片機模擬EEPROM,這樣就可以不用每次都去設置地址,修改方式可以爲複用下載器的CLK\DAT兩個端口,作爲串口1使用,如果不想讓用戶二次修改,可以在程序中判別該位置是否被讀寫過。

另外的一種方法就是使用撥碼開關,但此種辦法需要佔用IO,並不推薦。

由於RS485通訊模式類似廣播。所以需要在通訊過程中,建議做好數據包的校驗,添加報頭、報尾、校驗位、地址位等,可以在串口接收中斷中進行校驗,提高程序的執行效率(N76E003使用多箇中斷時,可能會出現速度變慢的問題)。

如果從機需要從接收器轉換爲發送器,直接翻轉控制RE、DE的IO口電平即可。最好每次發送或正確接收完了,就切換到另一種狀態下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章