基于TMS320F2812和USB100的CAN-USB總線通信系統設計
3.2 上位機軟件編寫
采用NI公司的LABWINDOWS/CVI8.0進行上位機控制界面設計,實現通過PC機發送和接收CAN總線系統的數據的功能。
由于USB100模塊將USB接口虛擬成了RS 232標準的串口,程序要實現的任務是調用WINDOWS下串口函數,使得用戶在CVI的界面下完成PC機數據的收發。該系統與PC機之間的通信主要通過調用LABWINDOWS/CVI函數庫中提供的RS 232函數庫,這幾個函數在設計驅動程序中具體實現。主要的函數有:配置串口函數:int OpenComConfig(int COMPort,char deviceName[],long baudRate,int parity,int dataBits,int stopBits,int inputQueueSize,int outputQueueSize);將字節寫入指定端口函數:int ComWrt(int COMPort,char buffer[],int count);從指定端口讀入字節函數:int ComRd(int COMPort,char buffer[],int count);在PC機上通過相應控件啟動相應端口函數,使得數據通過USB接口發送。
4 通信測試
系統測試時,利用CAN調試器作為一個CAN節點,并利用調試器自帶的調試軟件在下位機上顯示。
首先,進行上位機通過USB接口發送數據,下位機通過CAN接口接收數據實驗,CAN節點設置為擴展幀,幀格式為數據幀,幀ID為0x000000 82,下位機CAN調試軟件以十六進制接收數據,發送的是字符‘1’、‘2’、‘3’、‘4’、‘5’,下位機接收到的是對應的ASCII碼值0x31~0x35,以十六進制顯示。
然后,進行下位機通過CAN接口發送數據,上位機通過USB口接收數據實驗,CAN節點設置不變,發送的數據是0x31~0x35五個數據,上位機收到的是‘1’~‘5’五個字符。具體測試界面見圖3和圖4。本文引用地址:http://www.104case.com/article/156493.htm
5 結語
設計了一套USB-CAN總線通信模塊,其中CAN控制器特別的使用了F2812內嵌eCAN模塊,在實際應用中,該通信部分能有效,及時的與系統其他節點進行通信,較為有效地將DSP的高速處理能力和CAN總線的優良特性結合起來,并且硬件電路設計更為簡單實用,采用C語言編程,提高了程序的可維護性,大大縮短了研發周期。
評論