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

評論