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