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

          新聞中心

          EEPW首頁 > 汽車電子 > 設計應用 > CAN總線與USB的轉接技術

          CAN總線與USB的轉接技術

          作者: 時間:2010-01-14 來源:網絡 收藏

            3 控制部分

            控制部分使用接口控制芯片CH372來實現數據的接受和發(fā)送。CH372是一個USB的通用設備接口芯片,CH372在單片機端,具有8位數據和讀、寫、片選控制線以及中斷輸出,因此可以方便地掛接到單片機/DSP/MCU等控制器的系統(tǒng)上;在計算機系統(tǒng)中,CH372的配套軟件提供了簡潔易用的操作接口,因此,與本地端的單片機通訊就如同讀寫文件一樣簡單。

            CH372在計算機端提供有應用層接口,應用層接口是由CH372動態(tài)鏈接庫DLL提供的面向功能應用的API,所有API在調用后都會有操作狀態(tài)返回,但不一定有應答數據。CH372動態(tài)鏈接庫提供的API包括:設備管理API、數據傳輸API、中斷處理API等。

            在應用層設計中,筆者采用的是請求加應答的方式。該方式使用一個下傳的主動請求和一個上傳的被動應答進行交互式雙向數據通訊,下傳與上傳一一對應,相互關聯。主動請求是指由計算機應用層下傳給單片機的數據請求,被動應答則是單片機收到數據請求后,上傳給計算機應用層的應答數據。所有的通訊都由計算機應用層發(fā)起,然后以接收到單片機的應答結束,其完整的過程包括如下步驟:

            (1) 計算機應用層按事先約定的格式將數據請求發(fā)送給CH372芯片;

            (2) CH372芯片以中斷方式通知單片機;

            (3) 單片機進入中斷服務程序,以獲取CH372的中斷狀態(tài)并分析;

            (4) 如果是上傳,則釋放當前USB緩沖區(qū),然后退出中斷程序;

            (5) 如果是下傳,則從數據下傳緩沖區(qū)中讀取數據塊;

            (6) 分析接收到的數據塊,準備應答數據,或者先退出中斷程序再處理;

            (7) 單片機將應答數據寫入批量端點的上傳緩沖區(qū),然后退出中斷程序;

            (8) CH372芯片將應答數據返回給計算機;

            (9) 計算機應用層接收到應答數據。

            在單片機端,CH372芯片占用兩個地址位,當A0引腳為高電平時,系統(tǒng)選擇命令端口,此時可以寫入命令;當A0引腳為低電平時,選擇數據端口,此時可以讀寫數據。單片機通過8位并口對CH372芯片進行讀寫時,所有操作都是由一個命令碼、若干個輸人數據和若干個輸出數據組成。

          但部分命令不需要輸入數據,而部分命令也可以沒有輸出數據。

            CH372芯片專門用于處理USB通訊。在接收到數據或發(fā)送完數據后,CH372將以中斷方式通知單片機進行處理。單片機通過CH372接收和發(fā)送數據的流程圖如圖3所示。



          關鍵詞: CAN USB 總線 轉接技術

          評論


          相關推薦

          技術專區(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); })();