<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 基于TMS320F2812和USB100的CAN-USB總線通信系統(tǒng)設(shè)計

          基于TMS320F2812和USB100的CAN-USB總線通信系統(tǒng)設(shè)計

          作者: 時間:2011-03-31 來源:網(wǎng)絡(luò) 收藏

          3.2 上位機軟件編寫
          采用NI公司的LABWINDOWS/CVI8.0進行上位機控制界面,實現(xiàn)通過PC機發(fā)送和接收CAN的數(shù)據(jù)的功能。
          由于模塊將USB接口虛擬成了RS 232標(biāo)準(zhǔn)的串口,程序要實現(xiàn)的任務(wù)是調(diào)用WINDOWS下串口函數(shù),使得用戶在CVI的界面下完成PC機數(shù)據(jù)的收發(fā)。該與PC機之間的主要通過調(diào)用LABWINDOWS/CVI函數(shù)庫中提供的RS 232函數(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機上通過相應(yīng)控件啟動相應(yīng)端口函數(shù),使得數(shù)據(jù)通過USB接口發(fā)送。

          4 測試
          測試時,利用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’,下位機接收到的是對應(yīng)的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://www.ex-cimer.com/article/156493.htm

          3.JPG



          5 結(jié)語
          了一套USB-CAN模塊,其中CAN控制器特別的使用了F2812內(nèi)嵌eCAN模塊,在實際應(yīng)用中,該通信部分能有效,及時的與系統(tǒng)其他節(jié)點進行通信,較為有效地將DSP的高速處理能力和CAN的優(yōu)良特性結(jié)合起來,并且硬件電路設(shè)計更為簡單實用,采用C語言編程,提高了程序的可維護性,大大縮短了研發(fā)周期。


          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();