|
在MCU之間中長距離通信的諸多方案中,RS-485因硬件設計簡單、控製方便、成本低廉等優點廣泛應用於工廠自動化、工業控製、小區監控、水利自動報測等領域。但RS-485總線在抗幹擾、自適應、通信效率等方麵仍存在缺陷,一些細節的處理不當常會導致通信失敗甚至係統癱瘓等故障,因此提高RS-485總線的運行可靠性至關重要。 一、RS-485接口電路的硬件設計 1、總線匹配 總線匹配有兩種方法,一種是加匹配電阻,如圖1a所示。位於總線兩端的差分端口VA與VB之間應跨接120Ω匹配電阻,以減少由於不匹配而引起的反射、吸收噪聲,有效地抑製了噪聲幹擾。但匹配電阻要消耗較大電流,不適用於功耗限製嚴格的係統。 另外一種比較省電的匹配方案是RC 匹配(圖2 )利用一隻電容C 隔斷直流成分,可以節省大部分功率,但電容C的取值是個難點,需要在功耗和匹配質量間進行折衷。除上述兩種外還有一種采用二極管的匹配方案(圖3),這種方案雖未實現真正的匹配,但它利用二極管的鉗位作用,迅速削弱反射信號達到改善信號質量的目的,節能效果顯著。 2、RO及DI端配置上拉電阻 異步通信數據以字節的方式傳送,在每一個字節傳送之前,先要通過一個低電平起始位實現握手。為防止幹擾信號誤觸發RO(接收器輸出)產生負跳變,使接收端MCU進入接收狀態,建議RO外接10kΩ上拉電阻。 3、保證係統上電時的RS-485芯片處於接收輸入狀態 對於收發控製端TC建議采用MCU引腳通過反相器進行控製,不宜采用MCU引腳直接進行控製,以防止MCU上電時對總線的幹擾,如圖4所示。 4、總線隔離 RS-485總線為並接式二線製接口,一旦有一隻芯片故障就可能將總線“拉死”,因此對其二線口VA、VB與總線之間應加以隔離。通常在VA、VB與總線之間各串接一隻4~10Ω的PTC電阻,同時與地之間各跨接5V的TVS二極管,以消除線路浪湧幹擾。如沒有PTC電阻和TVS二極管,可用普通電阻和穩壓管代替。 5、合理選用芯片 例如,對外置設備為防止強電磁(雷電)衝擊,建議選用TI的75LBC184等防雷擊芯片,對節點數要求較多的可選用SIPEX的SP485R。 二、RS-485網絡配置 1、網絡節點數 網絡節點數與所選RS-485芯片驅動能力和接收器的輸入阻抗有關,如75LBC184標稱最大值為64點,SP485R標稱最大值為400點。實際使用時,因線纜長度、線徑、網絡分布、傳輸速率不同,實際節點數均達不到理論值。例如75LBC184運用在500m分布的RS-485網絡上節點數超過50或速率大於9.6kb/s時,工作可靠性明顯下降。通常推薦節點數按RS-485芯片最大值的70%選取,傳輸速率在1200~9600b/s之間選取。通信距離1km以內,從通信效率、節點數、通信距離等綜合考慮選用4800b/s最佳。通信距離1km以上時,應考慮通過增加中繼模塊或降低速率的方法提高數據傳輸可靠性。 2、節點與主幹距離 理論上講,RS-485節點與主幹之間距離(T頭,也稱引出線)越短越好。T頭小於10m的節點采用T型,連接對網絡匹配並無太大影響,可放心使用,但對於節點間距非常小(小於1m,如LED模塊組合屏)應采用星型連接,若采用T型或串珠型連接就不能正常工作。RS-485是一種半雙工結構通信總線,大多用於一對多點的通信係統,因此主機(PC)應置於一端,不要置於中間而形成主幹的T型分布。 三、提高RS-485通信效率 RS-485通常應用於一對多點的主從應答式通信係統中,相對於RS-232等全雙工總線效率低了許多,因此選用合適的通信協議及控製方式非常重要。 1、總線穩態控製(握手信號) 大多數使用者選擇在數據發送前1ms將收發控製端TC置成高電平,使總線進入穩定的發送狀態後才發送數據;數據發送完畢再延遲1ms後置TC端成低電平,使可靠發送完畢後才轉入接收狀態。據筆者使用TC端的延時有4個機器周期已滿足要求; 2、為保證數據傳輸質量,對每個字節進行校驗的同時,應盡量減少特征字和校驗字 慣用的數據包格式由引導碼、長度碼、地址碼、命令碼、數據、校驗碼、尾碼組成,每個數據包長度達20~30字節。在RS-485係統中這樣的協議不太簡練。推薦用戶使用MODBUS協議,該協議已廣泛應用於水利、水文、電力等行業設備及係統的國際標準中。 四、RS-485接口電路的電源、接地 對於由MCU結合RS-485微係統組建的測控網絡,應優先采用各微係統獨立供電方案,最好不要采用一台大電源給微係統並聯供電,同時電源線(交直流)不能與RS -485信號線共用同一股多芯電纜。RS-485信號線宜選用截麵積0.75mm2以上雙絞線而不是平直線。對於每個小容量直流電源選用線性電源LM7805比選用開關電源更合適。當然應注意LM7805的保護: 1、LM7805輸入端與地應跨接220~1000μF電解電容; 2、LM7805輸入端與輸出端反接1N4007二極管; 3、LM7805輸出端與地應跨接470~1000μF電解電容和104pF獨石電容並反接1N4007二極管; 4、輸入電壓以8~10V為佳,最大允許範圍為6.5~24V。可選用TI的PT5100替代LM7805,以實現9~38V的超寬電壓輸入。 五、光電隔離 在某些工業控製領域,由於現場情況十分複雜,各個節點之間存在很高的共模電壓。雖然RS-485接口采用的是差分傳輸方式,具有一定的抗共模幹擾的能力,但當共模電壓超過RS-485接收器的極限接收電壓,即大於+12V或小於-7V時,接收器就再也無法正常工作了,嚴重時甚至會燒毀芯片和儀器設備。 解決此類問題的方法是通過DC-DC將係統電源和RS-485收發器的電源隔離;通過光耦將信號隔離,徹底消除共模電壓的影響。實現此方案的途徑可分為: 1、用光耦、帶隔離的DC-DC、RS-485芯片構築電路; 2、使用二次集成芯片,如PS1480、MAX1480等。 六、RS-485係統的常見故障及處理方法 RS-485是一種低成本、易操作的通信係統,但是穩定性弱同時相互牽製性強,通常有一個節點出現故障會導致係統整體或局部的癱瘓,而且又難以判斷。故向讀者介紹一些維護RS-485的常用方法。 1、若出現係統完全癱瘓,大多因為某節點芯片的VA、VB對電源擊穿,使用萬用表測VA、VB間差模電壓為零,而對地的共模電壓大於3V,此時可通過測共模電壓大小來排查,共模電壓越大說明離故障點越近,反之越遠; 2、總線連續幾個節點不能正常工作。一般是由其中的一個節點故障導致的。一個節點故障會導致鄰近的2~3個節點(一般為後續)無法通信,因此將其逐一與總線脫離,如某節點脫離後總線能恢複正常,說明該節點故障; 3、集中供電的RS-485係統在上電時常常出現部分節點不正常,但每次又不完全一樣。這是由於對RS-485的收發控製端TC設計不合理,造成微係統上電時節點收發狀態混亂從而導致總線堵塞。改進的方法是將各微係統加裝電源開關然後分別上電; 4、係統基本正常但偶爾會出現通信失敗。一般是由於網絡施工不合理導致係統可靠性處於臨界狀態,最好改變走線或增加中繼模塊。應急方法之一是將出現失敗的節點更換成性能更優異的芯片; 5、因MCU故障導致TC端處於長發狀態而將總線拉死一片。提醒讀者不要忘記對TC端的檢查。盡管RS-485規定差模電壓大於200mV即能正常工作。但實際測量:一個運行良好的係統其差模電壓一般在1.2V左右(因網絡分布、速率的差異有可能使差模電壓在0.8~1.5V範圍內)。
|