新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一種基于單片機的車輛虛擬儀表數據采集系統設計

        一種基于單片機的車輛虛擬儀表數據采集系統設計

        作者: 時間:2016-11-30 來源:網絡 收藏

          表1 SFR功能簡述

          

          CAN控制器初始化(圖4)是CAN通信中一個非常重要的子程序,程序是否合理將直接影響整個通信過程。CAN控制器的初始化首先必須通過置位 CAN控制寄存器的"復位請求"位,置位"復位請求"并不影響正在進行的一個收發作業,特別需要注意的是,只有當復位請求被置位時,CAN內部地址為 4-8的寄存器方可被訪問,在復位操作結束后必須將該位置0以保持所進行的設置并使CAN返回工作狀態。

          

          圖4 CAN通信中一個重要的子程序

          P80C592和其在片CAN控制器都具有中斷寄存器,必須注意兩者的區別。CAN中斷子程序(圖5)首先讀CAN中斷寄存器(IR)以判斷中斷類型,據此轉入相應的操作。如果接收緩存器滿而另一個報文的首字節又需要被存儲時,數據超限位被置位,此時應清除超限并釋放接收緩存,然后重新發送數據請求。在數據接受子程序中當數據被轉入RAM區后,應及時釋放接受緩存器,以便為接收下一幀數據做好準備。

          

          圖5 CAN中斷子程序

          數據發送子程序見圖6.CAN控制器向總線發送數據時,首先將在片主RAM中數據存放的首地址寫入CANSTA,然后讀取CANSTA.6的值(讀 CANSTA的操作其實是對CAN控制器內部狀態寄存器的讀操作,CANSTA.6是錯誤顯示位,當至少有一個總線錯誤計數器計數達到CPU告警極限時,該位將被CAN控制器置位。),若檢測出錯,則執行CAN初始化子程序,若正常,則繼續檢測接收狀態和發送緩沖器狀態,若發送條件滿足則在CANADR中寫入發送緩存器地址并置位DMA控制位,DMA傳送隨即被啟動,數據場由RAM拷貝到發送緩存器,置發送請求位后數據開始發送。

          4 結語

          用高性能的P80C592和AD1674A數據采集模塊組成車輛環境數據采集系統具有較高的性價比,目前該系統已投入試用階段,運行狀況良好。 CAN總線非常適合分布式控制或適時控制的串行通信網絡,本課題只涉及了數據采集,如果在此基礎上擴展車輛輔助控制和重要數據備份功能,系統將會有更廣闊的應用前景。


        上一頁 1 2 3 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 清新县| 镇康县| 油尖旺区| 明溪县| 登封市| 平谷区| 陆河县| 镇江市| 江油市| 祁连县| 姜堰市| 怀宁县| 周宁县| 松阳县| 霞浦县| 桑植县| 瑞昌市| 石楼县| 福贡县| 攀枝花市| 永春县| 娄烦县| 富民县| 临清市| 兴城市| 乌苏市| 尉氏县| 石林| 内黄县| 贵南县| 灌南县| 佛教| 石首市| 萨迦县| 黄山市| 永新县| 张家界市| 宜城市| 东平县| 绥江县| 南丹县|