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