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