基于CAN總線(xiàn)的分布式嵌入式遠程監控研制
系統結構及結構流程
系統結構如圖1所示。
圖1 監控系統結構框圖
本系統由嵌入式uCremm與現場(chǎng)數據采集節點(diǎn)組成主從(Masterand Slave)關(guān)系,數據結構參考CAN總線(xiàn)通訊協(xié)議。
1)系統下層結構流程。由主站按授權用戶(hù)要求向指定MCU系統發(fā)出查詢(xún)信息,實(shí)現對工控現場(chǎng)節點(diǎn)查詢(xún)功能;各個(gè)CAN節點(diǎn)隨時(shí)監聽(tīng)總線(xiàn),當發(fā)現總線(xiàn)上有地址段與自己的地址相同的幀時(shí),再判斷是遠程幀還是數據幀:如果是遠程幀,則由CANbus節點(diǎn)按既定協(xié)議發(fā)送數據到總線(xiàn)上;否則節點(diǎn)開(kāi)始接收CANbus上的數據幀。嵌入式uCremM與Internet的互聯(lián)以及與用戶(hù)的交互功能,則由其嵌入式操作系統中的網(wǎng)絡(luò )服務(wù)器來(lái)完成。嵌入式uCremM上配有以太網(wǎng)接口RJ45,當用網(wǎng)線(xiàn)把uCremM與Internet連接,并配置好IP地址且運行網(wǎng)絡(luò )服務(wù)器后,授權用戶(hù)就可在INternet上任何一臺機器的瀏覽器中敲入IP地址,訪(fǎng)問(wèn)存在嵌入式uCremM中的主頁(yè)了。
2)用戶(hù)與服務(wù)器的交互是通過(guò)CGI程序來(lái)完成的。簡(jiǎn)單地講,CGI是一個(gè)運行在Web服務(wù)器上的程序,由瀏覽器的輸入觸發(fā)。這個(gè)腳本通常是客戶(hù)端與服務(wù)器中其他程序如數據庫的橋梁。
用戶(hù)可以通過(guò)點(diǎn)擊頁(yè)面,查詢(xún)來(lái)自現場(chǎng)的數據,如逆變模塊的電壓、電流和功率等;或者發(fā)送命令,如設置模塊最高直流輸入和交流輸出等數值。
CAN總線(xiàn)通訊協(xié)議及程序流程
目前有3種CAN通訊協(xié)議,包括CAN2. 0A,CAN2. 0B和CAN2. 0B passive,CAN2. 0B是最通用的CAN通訊協(xié)議。CAN的3種通訊協(xié)議間的區別就是協(xié)議中定義的標識符的長(cháng)度不同。CAN2. 0A協(xié)議中僅定義了具有11位標識符的標準幀數據結構,CAN2. 0B協(xié)議中除了定義標準幀外還定義了具有29位標識符的擴展幀數據結構。
本系統定義在CAN總線(xiàn)上傳輸的數據包為標準幀格式,它分為遠程幀和數據幀兩種,區別遠程發(fā)送請求位是否置位。標準幀的數據結構如表1所示。
表1 標準幀格式
在設計中,本系統以嵌入式監控系統來(lái)完成對各個(gè)分布的逆變電源模塊的參數上傳和設置。當CAN控制器發(fā)出要求逆變電源模塊上傳數據的遠程幀時(shí),系統定義了遠程幀中的11位標識符中高5位作為各模塊的模塊號標識,同樣在各模塊的CAN控制器中的Msg ID 寄存器也作了相應的設置。另外在幀格式中的遠程發(fā)送請求位必須置“1”,DLC全置“0”,數據域無(wú)數據信息。遠程幀舉例見(jiàn)表2。
評論