基于MC9S12HZ256的總線式汽車數字儀表設計
J1939協議支持CAN 2.0協議標準,使用擴展幀格式以報文為單位傳送信息。協議數據單元(PDU)是J1939協議定義的一個框架,用以組織CAN數據幀中與J1939協議相關的關鍵信息。PDU由優先權域(P)、保留域(R)、數據頁域(DP)、PDU格式域(PF)、組成標識符的PDU特定域(PS)和源地址域(SA),以及數據域(Data Field)共7個位域組成。這些位域分別對應CAN擴展幀的29位標識符和數據域。其中PS是一個8位段,其定義取決于PF值。若PF值小于240,PS是目標地址(DA);若PF值在240~255之間,則PS為組擴展(GE)。CAN擴展幀格式和SAE J1939信息幀格式標識符比較如表2所示。PDU的定義并未將CAN幀中的SOF(幀起始)、SRR(替代遠程請求)、IDE(識別符擴展)、RTR(遠程請求),部分控制域、CRC(校驗域)、ACK(應答域)及EOF(幀結束)等控制域歸入,因為這些域已由CAN2.0規范明確定義,并且當OSI模型高于數據鏈路層時它們是不可見的。本文引用地址:http://www.104case.com/article/197700.htm
1.3 SAE J1939協議應用層
應用層定義J1939協議的數據長度、數據類型、分辨率、范同及參考標簽等參數,并為每個參數分配1個編號(SPN)。由于J1939協議是以協議數據單元(PDU)的形式傳輸數據,而1個PDU可傳輸8個字節數據。所以,需要對參數進行組合傳輸。J1939應用層協議中定義參數組,并為每個參數組分配一個編號(PGN)作為該參數組的唯一標簽。參數組內容包括該組參數的更新率、有效數據長度、數據頁、PDU格式、PDU待定、默認優先級以及數據域的具體內容。以電子發動機控制器l(EECl)為例說明SAE J1939協議標準下的CAN數據幀。J1939對電子發動機控制器1(EECl)定義如下:
PGN 61444 電子發動機控制器1
發動機相關參數:
傳輸循環速度:依發動機轉速決定;數據長度:8個字節;數據頁:0;PDU格式(PF):240;PDU待定(PS):3;默認優先級:3;參數組編號(PGN):61444(0xF004)
起始位置 長度 參數名 SPN
……
4-5 2字節 發動機轉速 190
……
根據SAE J1939協議的定義,參數EECl的PDU編碼應為“OC FO 04 00 XX XX XX XX XX XX XX XX(XX表示任意數據)”,其中前4個字節為29位標識符,后8個字節為數據域,其中數據域中第4、5字節表示發動機轉速。若收到來自發動機控制單元的數據為OC F0 04 00 XX XX XX 5D CO XX XX XX,根據這2個字節的數值及SPNl90中的定義可算得發動機轉速:
發動機轉速=原始數×分辨率+偏移量=24 000(0x5DC0)×0.125+0=3 000 r/m。
同樣,根據J1939的定義還可以計算出汽車儀表所需的其他數據。然后交由儀表ECU處理并驅動顯示部件準確顯示當前的車輛狀態。
2 數字儀表系統設計
該汽車數字儀表系統由信號采集和處理顯示等模塊組成,圖l為應用MC9S12HZ256微控制器的總線式汽車數字儀表組成框圖。
評論