基于CAN總線的監(jiān)控系統(tǒng)智能節(jié)點設計
(2)數據采集模塊:將傳感器采集到的模擬信號轉變?yōu)閿底中盘柌⑼ㄟ^多路模擬開關送入微控制器,CPU得到電機定子溫度、電流、液位信息做出相應的判斷,并送至不同的子程序進行相應的處理。
(3)電機控制模塊:CPU判斷電機定子溫度、電流、液位中的任一項值超出正常值范圍時,都會通過SSR(過零觸發(fā)型交流固態(tài)繼電器)觸發(fā)相應的異常處理電路,使電機得到保護。
?。?)LED顯示模塊:采用基于I2C總線的顯示技術,通過LED數碼管實時顯示電機運行過程中定子的溫度和電流值。并可以在設置模式下顯示待定置參數的當前值。當電機出現(xiàn)非正常停機時發(fā)光二極管可以指示出故障的類型,方便檢查處理。
?。?)CAN通信模塊:CAN總線通信接口電路主要由P87C591的片內CAN驅動器SJA1000、6N137高速光隔、CAN收發(fā)器PCA82C250組成。P87C591完成CAN協(xié)議的應用層功能,SJA1000完成物理層和數據鏈路層的功能。PCA82C250提供了對總線差動發(fā)送和接受數據的功能,有效的提高了總線的抗干擾能力,實現(xiàn)了保護總線、降低射頻干擾等功能。6N137隔離控制電路和收發(fā)器電路,能夠有效地抑制由總線引入的干擾,進一步提高了系統(tǒng)的可靠性。
?。?)現(xiàn)場設置模塊:采用基于8255的鍵盤和基于X25045的E2PROM,實現(xiàn)節(jié)點工作參數現(xiàn)場設定能。X25045存儲報警電流、停機電流、報警溫度、停機溫度、節(jié)點地址、波特率等信息。這些參數都可以通過按鍵進行設置。除了節(jié)點地址外,其它的參數也可以通過監(jiān)控計算機設置。
4監(jiān)控節(jié)點的軟件設計
4.1軟件設計的總體結構
與節(jié)點硬件設計相一致,軟件設計也遵循模塊化的設計原則,使控制軟件具有易讀、易擴展和易維護的優(yōu)點。通過C51語言編寫相應的軟件模塊實現(xiàn)上述監(jiān)控節(jié)點的各種功能。軟件的各功能模塊之間通過入口和出口參數相互聯(lián)系,組合靈活且方便,減少了調試時間,縮短了開發(fā)周期。監(jiān)控節(jié)點的軟件設計流程如圖3所示。
4.2監(jiān)控節(jié)點通信程序設計
監(jiān)控節(jié)點的通信采用CAN總線2.0A協(xié)議,通信模塊的軟件設計主要由初始化程序、發(fā)送程序、接收程序三部分組成。其中初始化程序是實現(xiàn)通信的關鍵,它主要用來完成CAN控制器工作方式的選擇,即對P87C591中CAN控制器控制段中的寄存器進行設置,包括:總線定時寄存器和輸出控制寄存器設置;接收驗收濾波寄存器和濾波屏蔽寄存器設置;設置發(fā)送數據幀類型(標準幀或擴展幀)、標識符、數據長度。初始化過程是在CAN控制器復位模式下完成的,監(jiān)控節(jié)點通信的初始化程序流程如圖4所示。
監(jiān)控節(jié)點與CAN總線之間的數據交換是通過發(fā)送程序和接收程序實現(xiàn)的。發(fā)送程序流程如圖5所示,從圖5中可以看出系統(tǒng)的每個節(jié)點采用定時中斷的方式主動向監(jiān)控計算機發(fā)送數據。這是利用了CAN總線可以采用多主機方式通信的特點。由于實時監(jiān)控功能是由各個控制節(jié)點完成,而監(jiān)控計算機主要用來實現(xiàn)管理功能,所以采用了定時上傳數據的方法,而沒有實時上傳所有傳感器采集到的數據,從而減輕了總線負擔。這也是分布式控制方法相對于集中控制方法的一個優(yōu)點。圖6為接收程序流程圖,接收緩沖區(qū)用來存放CAN總線上發(fā)來的數據,CPU讀取數據后接收緩沖區(qū)將被清空,等待接收新的數據。
評論