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