RS-485 通讯
RS485抗噪音抗干擾能力強、傳輸距離遠、支持多點通信,是工控行業(yè)首選串行接口。485規(guī)定的電氣特性為2線,半雙工多點通信。采用兩線差分信號傳輸數(shù)據(jù),具有抗共模干擾的能力。由于是半雙工模式,因此通訊時需要切換收發(fā)狀態(tài)。目前常用的485收發(fā)切換方案有以下幾種:
1.傳統(tǒng)RS485電路(帶收發(fā)控制腳非隔離RS-485電路)
??????? 傳統(tǒng)的485應(yīng)用電路如下圖所示,采用3線控制,UART_RXD、UART_TXD和收發(fā)控制端UART_CON。
?????? 控制策略如下:UART_CON為低電平,485處于接收狀態(tài);UART_CON為高電平,485處于發(fā)送狀態(tài)。通過切換UART_CON的電平來達到485收發(fā)狀態(tài)的切換。
2.硬件自收發(fā)切換 非隔離RS-485電路
?????? 帶收發(fā)控制腳的485在編程時需要切換控制端電平,增加了程序的復雜度。為了編程方便,常常將電路改為如上圖所示的自動收發(fā)電路。這種采用分立元件搭建非隔離自動收發(fā)RS485電路的優(yōu)點在于控制簡單,收發(fā)控制腳不需要程序干預(yù)。
?????? 雖然采用分立元件搭建的非隔離RS485自動收發(fā)電路解決了帶收發(fā)控制腳非隔離RS485電路編程上操作復雜的問題,但受三極管切換速度、收發(fā)器內(nèi)部接口阻抗等影響,分立元件搭建的自動收發(fā)切換電路降低了系統(tǒng)穩(wěn)定運行的最大波特率。
3.收發(fā)切換隔離RS485電路
?????? 帶有隔離電路的485是最穩(wěn)定的設(shè)計,需要選擇隔離485芯片以及隔離電源,此方案成本相對于前兩種方案會高很多。
??????? 下面介紹一種485硬件收發(fā)切換電路實例。
?????? 485芯片采用MAX485芯片,電路使用NPN三極管開切換收發(fā)。控制原理是:MCU的UART的TX和RX引腳需要連上拉電阻(TX和RX在沒有通信時均是高電平),防止剛上電TX和RX引腳電平不穩(wěn)定引起收到擾亂數(shù)據(jù)。A上拉電阻B下拉電阻,終端并聯(lián)120歐姆電阻,D10、D11、D12為三個防雷防浪涌的TVS管。
?????? 接收: 默認沒有數(shù)據(jù)時,UART_TX為高電平,三極管導通,MAX485芯片RE低電平使能,RO接收數(shù)據(jù)使能,此時從485AB口收到什么數(shù)據(jù)就會通過RO通道傳到MCU,完成數(shù)據(jù)接收過程。
?????? 發(fā)送: 當發(fā)送數(shù)據(jù)時,UART_TX會有一個下拉的電平,表示開始發(fā)送數(shù)據(jù),此時三極管截止,DE為高電平發(fā)送使能。當發(fā)送數(shù)據(jù)‘0’時,由于DI口連接地,此時數(shù)據(jù)‘0’就會傳輸?shù)紸B口 A-B<0,傳輸‘0’,完成了低電平的傳輸。當發(fā)送‘1’時,此時三極管導通,按理說RO使能,此時由于還處在發(fā)送數(shù)據(jù)中,這種狀態(tài)下MAX485處于高阻態(tài),此時的狀態(tài)通過A上拉B下拉電阻決定,此時A-B>0傳輸‘1’,完成高電平的傳輸。
???????PS: 此時有人肯定也會有疑惑,發(fā)送數(shù)據(jù)‘1’,三極管導通RE低電平有效應(yīng)該是接收使能,為什么芯片會是高阻狀態(tài)?
?????? 因為UART發(fā)送收據(jù)會有一定的格式,數(shù)據(jù)均以“位”為最小單位進行傳輸。在收發(fā)數(shù)據(jù)之前,UART之間要約定好數(shù)據(jù)的傳輸速率(即每位所占據(jù)的時間,其倒數(shù)為波特率)、數(shù)據(jù)的傳輸格式(有多少數(shù)據(jù)位、是否有校驗位、奇校驗還是偶校驗、是否有停止位)。 平時數(shù)據(jù)線處于“空閑狀態(tài)”(1狀態(tài))。當發(fā)送數(shù)據(jù)時,TX由‘1’變?yōu)椤?’維持1位的時間,這樣收方檢測開始位后,再等待1.5位時間就開始一位一位的進行數(shù)據(jù)傳輸。意思是說,已經(jīng)確定好發(fā)送狀態(tài),電路發(fā)送‘1’此時RE有效,接收有效但有由于它處于發(fā)送階段,此時芯片會處于高阻狀態(tài)。
總結(jié)
- 上一篇: Razor与HTML混合输出陷阱与技巧
- 下一篇: Unity3D:HTTP请求模块