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