<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于CAN總線(xiàn)的汽車(chē)數字儀表的設計

基于CAN總線(xiàn)的汽車(chē)數字儀表的設計

作者: 時(shí)間:2011-09-23 來(lái)源:網(wǎng)絡(luò ) 收藏
  引言

  汽車(chē)儀表作為車(chē)輛與駕駛員交流的窗口,承擔向駕駛員實(shí)時(shí)提供車(chē)輛工況任務(wù)。汽車(chē)儀表是汽車(chē)電子在車(chē)輛中應用研究的重點(diǎn)之一。隨著(zhù)歐洲排放標準在國內推廣,符合歐洲排放標準具備控制器局域網(wǎng)絡(luò )(ControllerAreaNetwork,簡(jiǎn)稱(chēng)CAN)總線(xiàn)接口的發(fā)動(dòng)機和與之通訊的總線(xiàn)式數字儀表也逐漸擴大市場(chǎng)。隨著(zhù)車(chē)載總線(xiàn)技術(shù)發(fā)展,帶有接口的得到廣泛應用。應用層SAEJ1939協(xié)議是目前國內汽車(chē)行業(yè)應用最廣泛的應用層協(xié)議。

  這里提出的基于是利用CAN總線(xiàn)使其成為車(chē)身網(wǎng)絡(luò )一部分,遵循SAEJ1939協(xié)議讀取發(fā)動(dòng)機轉速、水溫等信息??紤]到車(chē)輛實(shí)際狀況,該還能接收傳感器的車(chē)速、油量、油壓、制動(dòng)氣壓等信號并顯示,為駕駛員提供實(shí)時(shí)車(chē)輛工況。

  2 SAEJ1939協(xié)議簡(jiǎn)介

  SAEJ1939協(xié)議是美國汽車(chē)工程師協(xié)會(huì )SAE(SocietyofAutomotiveEngineer)發(fā)布的以CAN2.0B作為網(wǎng)絡(luò )核心協(xié)議的車(chē)輛網(wǎng)絡(luò )串行通信和控制協(xié)議。SAEJ1939協(xié)議使用CAN的數據幀封裝其數據信息,對CAN擴展幀的29位標識符編碼,形成獨特的編碼系統作為車(chē)輛通訊標準。該協(xié)議明確規定了汽車(chē)內部ECU的地址配置、命名、通訊方式以及報文發(fā)送優(yōu)先級等,詳細說(shuō)明了汽車(chē)內部具體的ECU通訊內容。實(shí)現車(chē)輛電子設備間高速數據傳輸,減少線(xiàn)路數量,最大限度利用CAN總線(xiàn)優(yōu)越性能。

  2.1 SAEJ1939報文格式

  SAEJ1939數據幀是以PDU(協(xié)議數據單元)為單位,共由優(yōu)先權(P)、保留位(R)、數據頁(yè)(DP)、PDU格式(PF)、PDU細節(PS)、源地址(SA)及數據域(DateField)等7個(gè)域組成。除了數據域外的PDU對應于CAN擴展幀的29位標識符,其對應關(guān)系如表1所列。其中PS是一個(gè)8位段,其定義取決于PF值。若PF值小于240,PS是目標地址(DA)。若PF值介于240和255之間,則PS為組擴展(GE)。

  2.2 SAEJ1939應用層

  應用層詳細定義了SAEJ1939協(xié)議中使用的每個(gè)參數,包括數據長(cháng)度、數據類(lèi)型、結果、范圍以及參數組編號(PGN)等。這些參數分為控制參數、動(dòng)力傳動(dòng)系統狀態(tài)參數、動(dòng)力傳動(dòng)系統控制參數、動(dòng)力傳動(dòng)系統配置參數、信息參數以及信息狀態(tài)參數。SAEJ1939使用參數組編號(PGN)作為一參數組的唯一標簽。該標簽包括:保留位(R),數據頁(yè)(DP)、PDU格式域(PF8位)和組擴展域(GE8位)。另外,PF值小于240時(shí),PGN低字節位置0。參數組中的每個(gè)參數都能用ASCII碼表示,其狀態(tài)量最少可用兩個(gè)位表示。文字數字數據采用最高位在前的傳輸方式,其他包括兩個(gè)或多個(gè)數據字節的參數則采用最低位在前的傳輸方式。除此之外,應用層中還詳細定義了參數組屬性。該參數組屬性包括:優(yōu)先權、更新率、參數組的協(xié)議數據單元格式、參數組編號,參數組的數據參數號及其在參數組中的位置。

  3 基于CAN總線(xiàn)的汽車(chē)數字儀表系統設計

  3.1 硬件電路設計

  該汽車(chē)數字儀表系統由信號采集和處理顯示等模塊組成,如圖1所示。通過(guò)模擬量信號分壓,濾波整形脈沖信號,CAN總線(xiàn)信號通過(guò)收發(fā)器發(fā)送至中央處理器,然后再將處理后的信號通過(guò)步進(jìn)電機控制器控制步進(jìn)電機,驅動(dòng)LCD液晶屏顯示。其中信號采集模塊包含CAN總線(xiàn)數據采集和傳感器數據采集。在實(shí)際的車(chē)載環(huán)境中,該系統設計遵循SAEJ1939協(xié)議在CAN總線(xiàn)上獲取發(fā)動(dòng)機轉速、水溫和故障代碼,而其他信息包括車(chē)速、油量、機油壓力、制動(dòng)氣壓則從相應傳感器以模擬量和脈沖量形式讀取。通過(guò)測量車(chē)速傳感器脈沖信號獲取車(chē)速信號,油量傳感器的信號經(jīng)分壓后直接發(fā)送給中央處理器內A/D轉換器處理。

汽車(chē)儀表系統結構框圖

  圖2給出信號采集模塊電路。圖中,采用帶隔離的通用CAN收發(fā)器CTM825lT接收CAN總線(xiàn)信號。CTM8251T內部集成所有必需的CAN隔離及CAN收發(fā)器,可實(shí)現CAN節點(diǎn)的收發(fā)與隔離功能,從而替代了傳統設計中采用光電耦合器、DC-DC隔離、CAN收發(fā)器等元件實(shí)現的具有隔離功能的CAN收發(fā)電路。該模塊電路可將CAN控制器的邏輯電平轉換為CAN總線(xiàn)的差分電平,并具有直流2500V的隔離功能。該模塊電路設計體積小,集成度高,可取代PCA82C25l等傳統的CAN總線(xiàn)收發(fā)器及其外圍電路,從而降低了系統設計成本。傳感器模擬量信號經(jīng)分壓傳輸至中央處理器,圖中的VD40和C40兩元件可對微控制器LM3S2948的引腳提供過(guò)壓保護。

信號采集模塊原理圖

  LM3S2948型微控制器完成信號處理。它是一款基于A(yíng)RMCortexM3內核的微控制器,采用32位RISC,內嵌CAN控制器、A/D轉換器、模擬比較器、I2C接口等功能模塊,極大降低了外圍電路設計成本。LM3S2948微控制器具有運算速度快、功耗小、體積小、價(jià)位低等特點(diǎn)。LM3S2948的CAN控制器模塊支持CAN2.0B協(xié)議,支持符合SAEJ1939協(xié)議的擴展幀的報文傳輸,其傳輸速率可編程設置為1Mb/s,這些特性完全滿(mǎn)足CAN總線(xiàn)汽車(chē)數字儀表的應用要求。采用移位寄存器74HC595實(shí)現信號的串入并出,采用步進(jìn)電機驅動(dòng)器VID6606驅動(dòng)表針。每片VID6606可同時(shí)驅動(dòng)四路步進(jìn)電機。在其頻率控制端輸入脈沖序列F(SCX),即可控制輸出端使步進(jìn)電機的輸出軸以微步轉動(dòng),每個(gè)脈沖對應電機輸出軸轉動(dòng)1/12°,最大角速度可達600°/s,滿(mǎn)足汽車(chē)儀表指示的高精度、快速響應的要求。表針采用步進(jìn)電機VID一29驅動(dòng)。圖3為VID6606驅動(dòng)儀表電路。LCD驅動(dòng)器采用PCF8566,其內部集成LCD驅動(dòng)器所必需的功能電路。能直接驅動(dòng)任意靜態(tài)或包含4背極高達24段的LCD。中央處理器發(fā)送的信號先經(jīng)PCF8566T功率放大后,然后送至液晶屏F2000LCD顯示。

VID6606驅動(dòng)儀表電路

  3.2 軟件設計

  該汽車(chē)數字儀表系統軟件采用IAR編程調試軟件編寫(xiě)。該軟件通過(guò)LM一LINK調試仿真器與LM3S2948的JTAG端口連接,實(shí)現在線(xiàn)仿真調試。

  數據接收處理軟件首先初始化系統時(shí)鐘、CAN節點(diǎn)、LCD液晶屏、步進(jìn)電機等,并使能CAN中斷,設置CAN屏蔽碼和驗收碼。初始化CAN節點(diǎn)的具體步驟:

 ?、俜庋bCAN節點(diǎn)相關(guān)信息,創(chuàng )建一個(gè)軟件CAN節點(diǎn)結構體指針pCAN_Node_lnfo;

 ?、诔跏蓟疌AN控制器;

 ?、壑袛郈AN控制器;

 ?、茉O置CAN節點(diǎn)接收過(guò)濾。

  初始化后,讀取CAN總線(xiàn)和其他傳感器信號??刂撇竭M(jìn)電機和液晶屏顯示處理數據。等待CAN總線(xiàn)接收中斷產(chǎn)生,判斷總線(xiàn)數據是否滿(mǎn)足屏蔽條件,即逐位比較接收的29位標識符報文與驗收碼、屏蔽碼值,屏蔽碼用于定位相關(guān)位(0=相關(guān),1=不相關(guān))。只有標識符中的相關(guān)位與驗收碼相應位相同,系統才接收報文。如滿(mǎn)足屏蔽條件則從寄存器讀取數據并存入緩存區,再根據SAEJ1939協(xié)議判斷計算發(fā)動(dòng)機轉速、水溫和故障代碼信息,傳輸至步進(jìn)電機和液晶屏顯示。例如:接收的數據為:OCF00400XXXXXX4F55XXXXXX(XX為任意數據),若設置驗收碼為Ox00000000,屏蔽碼為0xlFFFFFFF,則接收該報文。根據SAEJl939-71協(xié)議,此報文為:PGN61444一電子發(fā)動(dòng)機控制器。因此,可得第4,5字節為發(fā)動(dòng)機轉速,并遵循低位在前,高位在后的傳輸方式,則發(fā)動(dòng)機轉速=原始數×分辨率+偏移量=21831x0.125+0=2728.875r/m。同理可計算其他汽車(chē)儀表所需數值。圖4為CAN總線(xiàn)數據接收程序流程圖。

CAN總線(xiàn)數據接收流程圖

  4 結語(yǔ)

  在研究了汽車(chē)CAN總線(xiàn)通訊協(xié)議及SAEJ1939協(xié)議的基礎上,實(shí)現基于CAN總線(xiàn)的汽車(chē)數字儀表系統設計。該系統設計利用LM3S2948、CTM8251、VID6606等器件的功能,最大程度地降低外圍電路成本。該汽車(chē)數字儀表系統工作穩定、性能良好,目前正進(jìn)行裝車(chē)試驗。隨著(zhù)歐洲排放標準在國內的推廣,基于CAN總線(xiàn)的數字儀表必將進(jìn)入快速發(fā)展的新階段。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>