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