技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 基于RS485的總線集散式測控系統(tǒng)的研究

基于RS485的總線集散式測控系統(tǒng)的研究

時間:2008-07-28 16:14:00來源:ronggang

導(dǎo)語:?本文設(shè)計了一種基于RS485串行總線的集散式測控系統(tǒng)。本系統(tǒng)主要由以下幾個控制器部分組成:上位機、數(shù)據(jù)采集模塊、繼電器陣列模塊
摘 要:本文設(shè)計了一種基于RS485串行總線的集散式測控系統(tǒng)。本系統(tǒng)主要由以下幾個控制器部分組成:上位機、數(shù)據(jù)采集模塊、繼電器陣列模塊。RS-485作為一種硬件設(shè)計簡單、控制方便、成本低廉的通信方式,實現(xiàn)了這些模塊的統(tǒng)一協(xié)調(diào)通信,實現(xiàn)一主(PC機)多從(多個PIC16F877子系統(tǒng))的集散式測控系統(tǒng)。 關(guān)鍵字:測控系統(tǒng);RS-485;串行線路網(wǎng)際協(xié)議 1 引言   RS-485由電子工業(yè)協(xié)EIA(Electronics Industry Association)于1983年制定。它具有了多點、雙向通信能力,即允許多個發(fā)送器連接到同一條總線上,同時增加了發(fā)送器的驅(qū)動能力和沖突保護(hù)特性,擴展了總線共模范圍,后命名為TIA/EIA-485-A標(biāo)準(zhǔn)。   RS-485采用平衡發(fā)送和差分接收,具有抑制共模干擾的能力。其傳輸時的電氣協(xié)議規(guī)定:當(dāng)A線的電壓低于B線時,傳送的是信號1,當(dāng)A線的電壓高于B線時,傳送的是信號0。A線和B線能承受的共模信號為-7V~+12V,這里講的共模信號是指A線或B線對地的電壓。一個標(biāo)準(zhǔn)發(fā)送器能夠直接驅(qū)動幾個接收器,且發(fā)送器可以被關(guān)閉使其輸出端變成高阻,因此只需2條連線既可實現(xiàn)一個半雙工的通信網(wǎng)絡(luò)。RS-485標(biāo)準(zhǔn)只對接口的電氣特性做出規(guī)定,而不涉及接插件、電纜或協(xié)議,在此基礎(chǔ)上用戶可以建立自己的高層通信協(xié)議。 2 硬件電路和通信時序   由RS-485組成單主機-多從機的集散式控制系統(tǒng)的簡圖如圖1所示。 [align=center] 圖1 RS-485總線的結(jié)構(gòu)圖[/align]   對于單片機異步通信,除了直接連接TX和RX端外,不同于RS-232通信協(xié)議,RS-485一定要用單片機的一個I/O引腳負(fù)責(zé)數(shù)據(jù)接收或發(fā)送方向的控制。用RS-485協(xié)議組成的主從通信方式中,所有的通信由一個主機掌控,其它所有從機平時處于接收模式,一旦某一個從機被主機呼叫,就將其通信狀態(tài)改成為發(fā)送模式,待數(shù)據(jù)發(fā)送完畢后又轉(zhuǎn)為接收模式。系統(tǒng)硬件連接電路原理圖如圖2所示。 [align=center] 圖2 系統(tǒng)硬件連接原理圖[/align]   2.1上位機主控端   由于上位機上只有傳統(tǒng)的9針D型串口,要和多個下位機節(jié)點組成數(shù)據(jù)通信網(wǎng)絡(luò),需要將RS-232通信協(xié)議轉(zhuǎn)換,RS-485協(xié)議方式,需要用到MAX232和MAX485芯片各一塊,其電路原理圖如圖3所示。 [align=center] 圖3 RS-232到RS-485的電平轉(zhuǎn)換圖[/align]   RS-232-485轉(zhuǎn)換器主要包括了電源、RS-232電平轉(zhuǎn)換、RS-485電平轉(zhuǎn)換三部分。該電路的RS-232電平轉(zhuǎn)換電路使用了市場上常見的MAX232集成電路,RS-485電平轉(zhuǎn)換電路采用了MAX485集成電路。為了使用方便,電源部分設(shè)計成無源方式,整個電路的供電直接從PC機的RS232接口中的DTR(4腳)和RTS(7腳)取出。PC串口每根線可以提供大約9mA的電流,因此兩根線提供的電流就足夠供給本電路使用。經(jīng)實驗,本電路只使用其中一條線也能夠正常工作。使用本電路需注意PC程序必須使串口的DTR和RTS輸出高電平,經(jīng)過D3穩(wěn)壓后得到VCC,經(jīng)過實際測試,VCC電壓大約在4.7V左右。因此,電路中要說D3起的作用是穩(wěn)壓和限壓功能。   MAX485是通過兩個引腳RE(2腳)和DE(3腳)來控制數(shù)據(jù)的輸入和輸出。當(dāng)RE為低電平時,MAX485數(shù)據(jù)輸入有效;當(dāng)DE為高電平時,MAX485數(shù)據(jù)輸出有效。在半雙工使用中,通常可以將這兩個腳直接相連,然后由PC或者單片機輸出的高低電平就可以讓MAX485在接收和發(fā)送狀態(tài)之間轉(zhuǎn)換了。由于本電路DTR和RTS都用于了電路供電,因此使用TX線和MAX232的另外一個通道及Ql來控制MAX485的狀態(tài)切換。平時MAX232的9腳輸出高電平,經(jīng)Ql倒相后,使MAX485的RE和DE為低電平而處于數(shù)據(jù)接收狀態(tài)。當(dāng)PC機發(fā)送數(shù)據(jù)時,MAX232的9腳輸出低電平,經(jīng)Ql倒相后,使MAX485的RE和DE為高電平而處于數(shù)據(jù)發(fā)送狀態(tài)。   2.2 下位機從動端   PIC16F877單片機具有一個通用同步異步接收發(fā)送器USART,又名串行通訊接口(SCI),可工作于全雙工異步工作模式和半雙工同步工作模式,它是一種利用PORTC口的RC6和RC7兩個引腳作為通訊的兩線制串行通訊接口。為了把PORTC口的RC6和RC7兩個引腳分別設(shè)置成串行通訊接口的發(fā)送(TX)腳和接收(RX)腳,必須要把USART的接收狀態(tài)和控制寄存器TCSTA的bit7(SPEN)位和TRISC寄存器的bit7置1,把TRISC寄存器的bit6置0。為了使USART分別工作于接收或發(fā)送狀態(tài),就必須設(shè)置相應(yīng)的狀態(tài)寄存器和控制寄存器。   USART發(fā)送器和接收器在功能上是完全獨立的,要使USART工作在異步通訊方式,它們所用的數(shù)據(jù)格式和波特率就必須是相同的。這里使用常用的格式:波特率9600,無校驗,8個數(shù)據(jù)位,1個停止位。   在編寫程序時首先要設(shè)置好USART異步通訊模塊工作模式及相關(guān)寄存器,主要有以下模塊寄存器:TXSTA(數(shù)據(jù)發(fā)送控制及狀態(tài)寄存器),RCSTA(數(shù)據(jù)接收控制及狀態(tài)寄存器),SPBRG(波特率控制寄存器),INTCON、PIEI、PIRI(相關(guān)的中斷控制寄存器),TXREG(串行數(shù)據(jù)發(fā)送寄存器),TCTEG(串行數(shù)據(jù)接收寄存器)。   在PIC單片機中,決定USART通信波特率高低的,只有SPBRG寄存器和TXSTA寄存器中的BGRH位,不占用任何其它定時器資源。波特率發(fā)生器的工作時鐘取自于單片機主振蕩器的振蕩頻率輸出,通過設(shè)置SPBRG寄存器和BGRH控制位對振蕩頻率分頻,最后產(chǎn)生所需的波特率值。   當(dāng)BRGH=0時,為低速波特率發(fā)生方式;BRGH=1則產(chǎn)生高速波特率。這里使用高速波特率,因為這樣可以減少與標(biāo)準(zhǔn)波特率值的誤差。異步通信告訴波特率的計算方法如下:若單片機的工作振蕩頻率為fosc,,SPBRG寄存器值為X,則高速波特率的計算公式為:   (1)   在設(shè)計過程中,我們一般是先選定需要得到的波特率,然后計算SPBRG的設(shè)定值X,變換式(1),即得:   (2)   異步通信波特率設(shè)定時得注意事項:當(dāng)選用標(biāo)準(zhǔn)波特率時,如果一味追求一步通信時波特率的準(zhǔn)確度,那就應(yīng)該選擇11.0592MHz作為單片機的工作振蕩頻率。但其實大可不必如此計較。異步通信允許波特率存在一定的偏差,只要偏差值在士3%之內(nèi)就可以保證正常通信,所以對于常用的1200bps~9600bps波特率的設(shè)定,可選的振蕩頻率可以有很多種,用戶完全可以根據(jù)自己所設(shè)計系統(tǒng)的其他功能要求而兼顧選擇振蕩頻率。使得單片機的振蕩頻率越低,功耗就越小,系統(tǒng)抗干擾能力也越強。另外,對于所選的波特率如果既可以用低速方式又可以用高速方式時,在程序中應(yīng)盡量選擇高速方式,這樣得到的實際波特率誤差相對較小。   2.3通信時序   由于RS-485通信是一種半雙工通信,發(fā)送和接受共用同一物理通道,在任意時刻只允許一臺單片機處于發(fā)送狀態(tài),因此要求應(yīng)答的單片機必須在偵聽到總線上呼叫信號己經(jīng)發(fā)送完畢,并且在沒有其他單片機應(yīng)答信號的情況下才能應(yīng)答。如果在時序上配合不好,就會發(fā)生總線沖突,使整個系統(tǒng)的通信癱瘓,無法正常工作。上位機與下位機之間如何進(jìn)行數(shù)據(jù)傳輸,怎么提高通信的效率和可靠性,以及對通信過程中的故障處理,幀格式的約定,都需要一套詳盡的通信協(xié)議。   由于RS-485標(biāo)準(zhǔn)只制定了物理層電氣標(biāo)準(zhǔn),對上層通信協(xié)議沒有規(guī)定,這給設(shè)計者提供了很大的靈活性。一套完整的通信協(xié)議既要求結(jié)構(gòu)簡單,功能完備,又要求具有可擴充性與兼容性,并且盡量標(biāo)準(zhǔn)化。 3 報文通信時的簡單協(xié)議   SLIP(Serial Line Intemet Protocol)協(xié)議是串行線路網(wǎng)際協(xié)議,它是最早的、也是僅有的兩個串行IP協(xié)議之一。它實現(xiàn)了在串行通信線路上運行TCP/IP協(xié)議及其應(yīng)用服務(wù)的功能,為用戶上網(wǎng)提供了撥號IP模式。這里由它派生出改進(jìn)協(xié)議:  ?。?)發(fā)送數(shù)據(jù)時的報文組裝   ● 取一個關(guān)鍵字0x55,一個報文的傳輸以0x55為引導(dǎo),中間可以有任意多的字節(jié)數(shù),最后以0xAA結(jié)束一個報文。關(guān)鍵字0x55和0xAA不參與檢驗和運算。   ● 如果傳輸?shù)脑紨?shù)據(jù)中含有0x55,則將其替換成0xFF+0x05,求校驗和時仍按一個0x55計算。   ● 如果傳輸?shù)脑紨?shù)據(jù)中含有0xAA,則將其替換成0xFF+0x0A,求校驗和時仍按一個0xAA計算。   ● 如果傳輸?shù)脑紨?shù)據(jù)中含有0xFF,則將其替換成0xFF+0x00,求校驗和時仍按一個0xFF計算。   ● 其余數(shù)據(jù)原樣發(fā)送。   例如:當(dāng)有0x55、,0x5A,0xAA,0xAS,0xFF這5個字節(jié)數(shù)據(jù)需要發(fā)送時,加上它們的算術(shù)校驗和0xFD,原始數(shù)據(jù)總共6個字節(jié)。按上述方法整合成的一個報文為:0x55,0xFF,0x05,0x5A,0xFF,0x0A,0xAS,0xFF,0x00,0xFD,0xFF,總共11個字節(jié)。  ?。?)接收數(shù)據(jù)時的報文解讀   接受方將接收所有的數(shù)據(jù)并存入數(shù)組,主程序從數(shù)組中逐個取出數(shù)據(jù)并進(jìn)行解讀,其過程如下:   ● 等待出現(xiàn)第一個0x55,以判斷一個數(shù)據(jù)包的開始。一旦讀到0x55,立即進(jìn)行一個報文接收的初始化工作,包括數(shù)組單元清0,字節(jié)計數(shù)器清0等工作。   ● 從隊列中讀取一個數(shù)據(jù),如果不是0x55、0xAA或0xFF,則直接將數(shù)據(jù)存入數(shù)組。   ● 如果讀到0xFF,則繼續(xù)讀其下一個數(shù)據(jù),若是0x05,則替換回原始數(shù)據(jù)0x55;若是0x0A,則替換回原始數(shù)據(jù)xAA,若是0x00,則替換回原始數(shù)據(jù)0xFF。若都不是,則數(shù)據(jù)傳輸出錯。   ● 當(dāng)讀到xAA時,一個報文結(jié)束,關(guān)串口接收中斷,串口中斷流程圖如圖4所示。 [align=center] 圖4 接收數(shù)據(jù)幀時的串口中斷流程圖[/align] 4 結(jié)論   本文作者創(chuàng)新點:在多MCU之間中長距離通信的諸多方案中,RS-485因硬件設(shè)計簡單、控制方便、成本低廉等優(yōu)點。本文完成了基于RS-485的單主機一多從機的集散式控制系統(tǒng)的設(shè)計,包括上位機主控端與下位機從動端,并詳細(xì)分析了其通信時序。 參考文獻(xiàn)   [1] 張明峰編著.PIC單片機入門與實戰(zhàn)[M].北京:北京航空航天大學(xué)出版社.2004   [2] 曹祁,王曉萍.Modbus協(xié)議在數(shù)據(jù)采集儀中的實現(xiàn)[J].機電工程.2004,21(6):49-50   [3] 劉舉平,熊國良.便攜式JARC-1000型或門動態(tài)繼電器檢測儀[J].鐵道通信信號.2006(2):23-25   [4] 莊致,郭勝.基于RS485總線的串口令牌環(huán)通信的研究[J].微計算機信息,2007,4-1:225-227   基于RS485的總線集散式測控系統(tǒng)的研究

標(biāo)簽:

點贊

分享到:

上一篇:基于新型單片機的無刷直流電...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.wangxinlc.cn)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡介|會員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號