RS-485總線(xiàn)在海氣邊界層監測系統中的應用
系統軟件設計
本文引用地址:http://dyxdggzs.com/article/96057.htmRS-485總線(xiàn)是異步半雙工的通信總線(xiàn),即在某一個(gè)時(shí)刻,總線(xiàn)只可能呈現一種狀態(tài)(收或發(fā))。所以這種方式一般適用于主機對分機的查詢(xún)方式通信,軟件編程對系統的可靠性有很大影響。尤其要注意對485芯片收發(fā)控制端DE和RE的軟件設計。為了可靠的工作,在RS-485總線(xiàn)狀態(tài)切換時(shí)需要做適當延時(shí),再進(jìn)行數據的收發(fā)。具體的做法是在數據發(fā)送狀態(tài)下,先將控制端置“1”,在9600bit/s的波特率下,延時(shí)1ms左右的時(shí)間,再發(fā)送有效的數據,一包數據發(fā)送結束后再延時(shí)1ms后,將控制端置“0”。
海氣邊界層監測系統總線(xiàn)上的數據采集器處于主機地位,每隔3s輪詢(xún)各節點(diǎn)一次,輪詢(xún)到哪個(gè)節點(diǎn)則哪個(gè)節點(diǎn)上傳數據,總線(xiàn)的使用權完全由主機分配,各子節點(diǎn)不能擅自占領(lǐng)總路線(xiàn),也不允許主動(dòng)發(fā)起通信。具體實(shí)現方法是,每隔3s,數據采集器發(fā)出索要第一個(gè)節點(diǎn)數據命令,并等待節點(diǎn)回傳測量數據,超過(guò)規定的等待時(shí)間仍然沒(méi)有收到節點(diǎn)返回的數據,認為該路結點(diǎn)通訊失敗,延遲100ms后接著(zhù)索要下路節點(diǎn)數據。值得一提的是,系統等待節點(diǎn)回傳測量數據并不是采取軟件死等的方法,而時(shí)采用分時(shí)多任務(wù)的方法來(lái)實(shí)現。具體實(shí)現方法是:在10ms定時(shí)器中斷服務(wù)程序中設一個(gè)節點(diǎn)通信時(shí)間計數變量,進(jìn)行減計數。數據采集器發(fā)出索要數據命令后,對這個(gè)變量重新賦超時(shí)限定值,主程序判斷這個(gè)值為0時(shí)還未收到節點(diǎn)響應數據,才認為該節點(diǎn)通訊失敗。采用這種調度機制,可以大幅提高數據采集器CPU的運行效率。
結語(yǔ)
RS-485總線(xiàn)具有線(xiàn)路設計簡(jiǎn)單、價(jià)格低廉、控制方便的特點(diǎn),通過(guò)上述的軟硬件設計方法,在海氣邊界層監測系統中得到了良好的應用。目前系統24小時(shí)連續開(kāi)機,系統的通信始終處于正常狀態(tài),整個(gè)系統的性能滿(mǎn)足了項目的需求。
參考文獻:
[1] B&B Electronics.RS-422 and RS-485 Application Note. 2006(6)
[2] B&B Electronics Technical Article #1.Basics of The RS-485 Standard[S]. 1994(11)
[3] MAXIM Company. MAX3082 Data Sheet. 1997(12)
[4] EXAR Company. EXAR UARTS IN RS-485 APPLICATIONS. 2008(4)
[5]吳軍輝,林開(kāi)顏,徐立鴻. RS485總線(xiàn)通信避障及其多主發(fā)送的研究[J].測控技術(shù).2002.21(8)
[6]王福瑞等.單片微機測控系統設計大全[M]. 北京:北京航空航天大學(xué)出版社,1998
[7]王幸之,王雷,鐘愛(ài)琴等.單片機應用系統電磁干擾與抗干擾技術(shù)[M]. 北京:北京航空航天大學(xué)出版社,2006
評論