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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于ARM Cortex3的低功耗無源USB-CAN透明傳輸?shù)膶崿F(xiàn)

          基于ARM Cortex3的低功耗無源USB-CAN透明傳輸?shù)膶崿F(xiàn)

          作者: 時間:2018-09-06 來源:網(wǎng)絡 收藏

          本文引用地址:http://www.ex-cimer.com/article/201809/388545.htm

          4.1.2 關于CAN控制器的配置程序設計

          根據(jù)CAN2.0協(xié)議,報文的發(fā)送和接收需要進行一系列配置,圖2為CAN報文發(fā)送接受配置流程圖。

          4.2 USB通信相關

          4.2.1 LM3S5956微處理器的USB控制器

          LM3S5956微處理器的USB控制器支持USB Host/Device/OTG功能,可運行在全速和低速模式。它符合USB2.0標準,包含掛起和喚醒信號。它包含32個端點,其中包含2個用于控制傳輸?shù)膶S眠B接端點(一個用于輸入,一個用于輸出),其他30個端點帶有可軟件動態(tài)定義大小的FIFO并以支持多包隊列。FIFO支持DMA,可有效降低系統(tǒng)資源的占用。USB Device啟動方式靈活,可軟件控制是否在啟動時連接。USB控制器遵從OTG標準的會話請求協(xié)議(SRP)和主機協(xié)商協(xié)議(HNP)。

          LM3S5956微處理器的芯片供應商TI公司提供了一套完整的USB開發(fā)解決方案(USBLIB),極大地縮短了用戶的開發(fā)周期,本項目將采用USBLIB中的USB虛擬串口方式進行數(shù)據(jù)傳輸,這樣,上位機驅動包的支持下,可以通過串口調試工具直接對USB的數(shù)據(jù)進行讀寫。在USB虛擬串口的方案中,USB通信模塊主要分為USB驅動、USB虛擬串口應用層、用戶應用層三部分。

          根據(jù)USB協(xié)議,本項目中的USB通信模塊屬于從USB設備,USB驅動的設計主要包括以下函數(shù)的定義:返回從站地址函數(shù)、配置從站地址函數(shù)、USB控制器連接函數(shù)、USB控制器關閉函數(shù)、端點配置函數(shù)、數(shù)據(jù)應答函數(shù)、端點停止函數(shù)、端點啟動函數(shù)、端點狀態(tài)清除函數(shù)、端點數(shù)據(jù)獲取函數(shù)、端點數(shù)據(jù)賦予函數(shù)、端點傳輸啟動函數(shù)、端點狀態(tài)返回函數(shù)。

          USB虛擬串口應用層介于用戶應用層和USB驅動層之間,是目前最流行的USB應用層協(xié)議之一,其最大的特點就是可以模擬串口的數(shù)據(jù)傳輸方式,還可以保證實時性和準確性。適合傳輸較為簡短的數(shù)據(jù)。而CAN報文的數(shù)據(jù)域最長只有8個字節(jié),所以USB虛擬串口協(xié)議非常適合轉發(fā)CAN報文數(shù)據(jù)。虛擬串口協(xié)議主要包括以下函數(shù)的定義:虛擬串口初始化函數(shù)、虛擬串口數(shù)據(jù)包讀取函數(shù)、虛擬串口數(shù)據(jù)包寫入函數(shù)。

          用戶應用層主要包括USB枚舉常量的定義、虛擬串口設備定義、發(fā)送和接收緩沖區(qū)定義、虛擬串口通信參數(shù)設置函數(shù)、虛擬串口通信參數(shù)獲取函數(shù)、設備控制中斷函數(shù)、數(shù)據(jù)接收中斷函數(shù)、數(shù)據(jù)發(fā)送中斷函數(shù)。

          4.2.2 程序邏輯

          在USB虛擬串口設備的軟件結構中,TI提供的USBlib庫已經實現(xiàn)了大部分工作,只需要實現(xiàn)三個和USB設備相關的回調函數(shù)就可以了。這三個函數(shù)分別為:

          USBControlHandler:處理和控制端口相關的事件

          USBRxHandler:處理和接收端口相關的事件

          USBTxHanler:處理和發(fā)送端口相關的事件

          在控制端口處理函數(shù)中,主要處理設備連接、設備斷開、掛起中斷、喚醒中斷等事件。

          4.3 主程序設計

          為保證數(shù)據(jù)透傳的實時性,雙向數(shù)據(jù)包均采用中斷的方式進行轉發(fā),即在CAN接受中斷發(fā)生之后,立即將數(shù)據(jù)包轉發(fā)至USB發(fā)送緩沖區(qū);在USB接收中斷發(fā)生以后,立即將數(shù)據(jù)包轉發(fā)至CAN發(fā)送緩沖區(qū),保證了數(shù)據(jù)的實時性和完全透明傳輸。如圖3為CAN中斷服務函數(shù)。

          4.4 開發(fā)平臺與功能測試

          本項目的軟件交叉編譯平臺為WINDOWS XP平臺下的MDK4.0編譯器,下載仿真器為JLINK V8。

          按照圖4所示方式進行連線,在上位PC機安裝USB虛擬串口支持包之后,打開串口調試助手,進行相關串口參數(shù)配置之后,就可以很方便地進行數(shù)據(jù)的雙向收發(fā)測試。

          5 功能拓展與前瞻

          從OSI網(wǎng)絡模型的角度來看,現(xiàn)場總線網(wǎng)絡一般只實現(xiàn)了第1層(物理層)、第2層(數(shù)據(jù)鏈路層)、第7層(應用層)。因為現(xiàn)場總線通常只包括一個網(wǎng)段,因此不需要第3層(傳輸層)和第4層(網(wǎng)絡層),也不需要第5層(會話層),第6層(描述層)的作用。

          CAN2.0協(xié)議只定義物理層和數(shù)據(jù)鏈路層,沒有規(guī)定應用層,本身并不完整,需要一個高層協(xié)議來定義CAN報文中的11/29位標識符、8字節(jié)數(shù)據(jù)的使用。而且,基于的工業(yè)自動化應用中,越來越需要一個開放的、標準化的高層協(xié)議:這個協(xié)議支持各種CAN廠商設備的互用性、互換性,能夠實現(xiàn)在CAN網(wǎng)絡中提供標準的、統(tǒng)一的系統(tǒng)通訊模式,提供設備功能描述方式,執(zhí)行網(wǎng)絡管理功能。其中應用層可以為網(wǎng)絡中每一個有效設備都能夠提供一組有用的服務與協(xié)議。

          本項目中的USB—CAN透明傳輸卡只實現(xiàn)了對于協(xié)議的物理層和數(shù)據(jù)鏈路層,為了實現(xiàn)更高層次的應用,可以考慮將流行歐洲的CAN總線應用層協(xié)議與USB—CAN透明傳輸協(xié)議軟件模塊進行整合,開發(fā)一個以PC作為上位機的主站,或者以USB設備為下位機的一個從站,如果能夠實現(xiàn),將會極大地豐富本項目在工業(yè)場合的應用。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();