新聞中心

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

        CAN總線與USB的轉接技術

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

          3 控制部分

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 连平县| 贵定县| 周口市| 颍上县| 吉首市| 东安县| 景宁| 蓝山县| 罗城| 石林| 赤壁市| 张家界市| 宣汉县| 福泉市| 甘孜| 墨竹工卡县| 阿巴嘎旗| 淮安市| 绥中县| 平度市| 永吉县| 灵石县| 墨脱县| 马龙县| 南汇区| 阳高县| 泽库县| 长沙县| 新乐市| 宾川县| 东乌珠穆沁旗| 尤溪县| 同江市| 宁南县| 孝义市| 常山县| 湖南省| 保亭| 连南| 格尔木市| 桓仁|