新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 如何基于RS485研究總線集散式測控系統?

        如何基于RS485研究總線集散式測控系統?

        作者: 時間:2018-08-07 來源:網絡 收藏

        1引言

        本文引用地址:http://www.104case.com/article/201808/385590.htm

        RS-485由電子工業協EIA(Electronics?Industry?Association)于1983年制定。它具有了多點、雙向通信能力,即允許多個發送器連接到同一條總線上,同時增加了發送器的驅動能力和沖突保護特性,擴展了總線共模范圍,后命名為TIA/EIA-485-A標準。

        RS-485采用平衡發送和差分接收,具有抑制共模干擾的能力。其傳輸時的電氣協議規定:當A線的電壓低于B線時,傳送的是信號1,當A線的電壓高于B線時,傳送的是信號0。A線和B線能承受的共模信號為 -7V~+12V,這里講的共模信號是指A線或B線對地的電壓。一個標準發送器能夠直接驅動幾個接收器,且發送器可以被關閉使其輸出端變成高阻,因此只需 2條連線既可實現一個半雙工的通信網絡。RS-485標準只對接口的電氣特性做出規定,而不涉及接插件、電纜或協議,在此基礎上用戶可以建立自己的高層通信協議。

        2硬件電路和通信時序

        由RS-485組成單主機-多從機的集散式控制系統的簡圖如圖1所示。

        圖1RS-485總線的結構圖

        對于單片機異步通信,除了直接連接TX和RX端外,不同于RS-232通信協議,RS-485一定要用單片機的一個I/O引腳負責數據接收或發送方向的控制。用RS-485協議組成的主從通信方式中,所有的通信由一個主機掌控,其它所有從機平時處于接收模式,一旦某一個從機被主機呼叫,就將其通信狀態改成為發送模式,待數據發送完畢后又轉為接收模式。系統硬件連接電路原理圖如圖2所示。

        圖2系統硬件連接原理圖

        2.1上位機主控端

        由于上位機上只有傳統的9針D型串口,要和多個下位機節點組成數據通信網絡,需要將RS-232通信協議轉換,RS-485協議方式,需要用到MAX232和MAX485芯片各一塊,其電路原理圖如圖3所示。

        圖3RS-232到RS-485的電平轉換圖

        RS-232-485轉換器主要包括了電源、RS-232電平轉換、RS-485電平轉換三部分。該電路的RS-232電平轉換電路使用了市場上常見的MAX232集成電路,RS-485電平轉換電路采用了MAX485集成電路。為了使用方便,電源部分設計成無源方式,整個電路的供電直接從PC機的RS232接口中的DTR(4腳)和RTS(7腳)取出。PC串口每根線可以提供大約9mA的電流,因此兩根線提供的電流就足夠供給本電路使用。經實驗,本電路只使用其中一條線也能夠正常工作。使用本電路需注意PC程序必須使串口的DTR和RTS輸出高電平,經過D3穩壓后得到VCC,經過實際測試,VCC電壓大約在4.7V左右。因此,電路中要說D3起的作用是穩壓和限壓功能。

        MAX485是通過兩個引腳RE(2腳)和DE(3腳)來控制數據的輸入和輸出。當RE為低電平時,MAX485 數據輸入有效;當DE為高電平時,MAX485數據輸出有效。在半雙工使用中,通常可以將這兩個腳直接相連,然后由PC或者單片機輸出的高低電平就可以讓 MAX485在接收和發送狀態之間轉換了。由于本電路DTR和RTS都用于了電路供電,因此使用TX線和MAX232的另外一個通道及Ql來控制 MAX485的狀態切換。平時MAX232的9腳輸出高電平,經Ql倒相后,使MAX485的RE和DE為低電平而處于數據接收狀態。當PC機發送數據時,MAX232的9腳輸出低電平,經Ql倒相后,使MAX485的RE和DE為高電平而處于數據發送狀態。

        2.2下位機從動端

        PIC16F877單片機具有一個通用同步異步接收發送器USART,又名串行通訊接口(SCI),可工作于全雙工異步工作模式和半雙工同步工作模式,它是一種利用PORTC口的RC6和RC7兩個引腳作為通訊的兩線制串行通訊接口。為了把PORTC口的RC6和RC7兩個引腳分別設置成串行通訊接口的發送(TX)腳和接收(RX)腳,必須要把USART的接收狀態和控制寄存器TCSTA的bit7(SPEN)位和TRISC寄存器的bit7置1,把TRISC寄存器的bit6置0。為了使USART分別工作于接收或發送狀態,就必須設置相應的狀態寄存器和控制寄存器。

        USART發送器和接收器在功能上是完全獨立的,要使USART工作在異步通訊方式,它們所用的數據格式和波特率就必須是相同的。這里使用常用的格式:波特率9600,無校驗,8個數據位,1個停止位。

        在編寫程序時首先要設置好USART異步通訊模塊工作模式及相關寄存器,主要有以下模塊寄存器:TXSTA(數據發送控制及狀態寄存器),RCSTA(數據接收控制及狀態寄存器),SPBRG(波特率控制寄存器),INTCON、PIEI、PIRI(相關的中斷控制寄存器),TXREG(串行數據發送寄存器),TCTEG(串行數據接收寄存器)。

        在PIC單片機中,決定USART通信波特率高低的,只有SPBRG寄存器和TXSTA寄存器中的BGRH位,不占用任何其它定時器資源。波特率發生器的工作時鐘取自于單片機主振蕩器的振蕩頻率輸出,通過設置SPBRG寄存器和BGRH控制位對振蕩頻率分頻,最后產生所需的波特率值。

        當BRGH=0時,為低速波特率發生方式;BRGH=1則產生高速波特率。這里使用高速波特率,因為這樣可以減少與標準波特率值的誤差。異步通信告訴波特率的計算方法如下:若單片機的工作振蕩頻率為fosc,,SPBRG寄存器值為X,則高速波特率的計算公式為:

        (1)

        在設計過程中,我們一般是先選定需要得到的波特率,然后計算SPBRG的設定值X,變換式(1),即得:

        (2)

        異步通信波特率設定時得注意事項:當選用標準波特率時,如果一味追求一步通信時波特率的準確度,那就應該選擇11.0592MHz作為單片機的工作振蕩頻率。但其實大可不必如此計較。異步通信允許波特率存在一定的偏差,只要偏差值在士3%之內就可以保證正常通信,所以對于常用的1200bps~9600bps波特率的設定,可選的振蕩頻率可以有很多種,用戶完全可以根據自己所設計系統的其他功能要求而兼顧選擇振蕩頻率。使得單片機的振蕩頻率越低,功耗就越小,系統抗干擾能力也越強。另外,對于所選的波特率如果既可以用低速方式又可以用高速方式時,在程序中應盡量選擇高速方式,這樣得到的實際波特率誤差相對較小。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 涟水县| 宜宾县| 射洪县| 集安市| 池州市| 咸阳市| 威海市| 盐亭县| 靖州| 关岭| 高安市| 柘城县| 普洱| 山丹县| 马边| 丁青县| 冕宁县| 年辖:市辖区| 枣阳市| 绥宁县| 曲阜市| 太仆寺旗| 大姚县| 寻乌县| 西乌珠穆沁旗| 青州市| 微博| 丹巴县| 诏安县| 库伦旗| 石阡县| 长汀县| 武功县| 通化县| 布拖县| 白河县| 廊坊市| 徐汇区| 疏附县| 正镶白旗| 界首市|