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