基于虛擬儀器的CANopen協(xié)議監(jiān)控面板設(shè)計
3 RS 232-CAN協(xié)議轉(zhuǎn)換器
虛擬儀器labview軟件及PC機內(nèi)部沒有專門的CAN接口只有RS 232串行接口,因此使用單片機等微控制器設(shè)計RS 232-CAN轉(zhuǎn)換器,實現(xiàn)PC機接入現(xiàn)場總線網(wǎng)絡(luò),完成數(shù)據(jù)監(jiān)聽。在PC機上可用labview環(huán)境下的NI-VISA實現(xiàn)串口通信。圖2為RS 232-CAN協(xié)議轉(zhuǎn)換器硬件原理圖,選用內(nèi)嵌CAN總線控制器的Microchip公司PIC18F258單片機為核心處理芯片。
ADuM1100高速數(shù)字隔離器支持100 Mb/s數(shù)據(jù)傳輸速率并且可以采用3.0~5.5 V單電源供電,以一種新的更有效的傳輸數(shù)據(jù)的方法替代傳統(tǒng)的光耦合器,從而保護了高電壓和低電壓電氣環(huán)境之間的接口。MCP2551是一種可容錯的高速CAN收發(fā)器,可作為CAN協(xié)議控制器和系統(tǒng)物理總線的接口。MAX232用于完成RS 232與TLL/CMOS的電平轉(zhuǎn)換。RS 232接口用于連接PC機。當(dāng)單片機內(nèi)部CAN總線控制器收到CAN總線上的信號后通過USART接口傳給PC機的RS 232接口,同樣PC機把數(shù)據(jù)通過RS 232接口發(fā)給單片機,再發(fā)送到CAN總線上。單片機負責(zé)實現(xiàn)通信協(xié)議的轉(zhuǎn)換,轉(zhuǎn)換RS 232串口通信數(shù)據(jù)與CAN通信數(shù)據(jù)。
4 虛擬儀器上位機監(jiān)控面板開發(fā)
labview程序開發(fā)主要包括三方面內(nèi)容:CANopen監(jiān)控面板主程序、數(shù)據(jù)發(fā)送模塊和數(shù)據(jù)接收模塊。其中,數(shù)據(jù)接收和發(fā)送模塊作為子VI供監(jiān)控面板主程序調(diào)用。
4.1 CANopen主控面板程序設(shè)計
主控面板的設(shè)計主要包括:CANopen報文的組建及打包發(fā)送,以及CANopen報文的接收顯示。
4.1.1 CANopen報文打包
根據(jù)CANopen協(xié)議標識符分配表及主從節(jié)點設(shè)置定義了各報文的ID號,如圖3所示,通過labview分支結(jié)構(gòu)實現(xiàn)報文類型的選擇,并按照CANopen協(xié)議數(shù)據(jù)幀格式要求定義了發(fā)送的數(shù)據(jù)內(nèi)容,包括高低8位ID、數(shù)據(jù)長度、遠程幀標志以及8 B數(shù)據(jù),通過捆綁送入CANWrite.vi子模塊發(fā)送到VISA接口。
4.1.2 CANopen報文解析
CANopen報文的解析是實現(xiàn)CANopen協(xié)議監(jiān)控面板的重點,實現(xiàn)過程為:將從VISA接口接收的數(shù)據(jù)按照CANopen報文格式進行組建;判斷接收的報文是遠程幀還是數(shù)據(jù)幀;將接收的數(shù)據(jù)幀累積;對累積的數(shù)據(jù)幀依次進行格式轉(zhuǎn)換,完成數(shù)據(jù)顯示(見圖4)。
評論