新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于CAN總線的汽車數(shù)字儀表的設(shè)計

基于CAN總線的汽車數(shù)字儀表的設(shè)計

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

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

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

  2 SAEJ1939協(xié)議簡介

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

  2.1 SAEJ1939報文格式

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

  2.2 SAEJ1939應(yīng)用層

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

  3 基于CAN總線的汽車數(shù)字儀表系統(tǒng)設(shè)計

  3.1 硬件電路設(shè)計

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

汽車儀表系統(tǒng)結(jié)構(gòu)框圖

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

信號采集模塊原理圖

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

VID6606驅(qū)動儀表電路

  3.2 軟件設(shè)計

  該汽車數(shù)字儀表系統(tǒng)軟件采用IAR編程調(diào)試軟件編寫。該軟件通過LM一LINK調(diào)試仿真器與LM3S2948的JTAG端口連接,實現(xiàn)在線仿真調(diào)試。

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

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

 ?、诔跏蓟疌AN控制器;

 ?、壑袛郈AN控制器;

 ?、茉O(shè)置CAN節(jié)點接收過濾。

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

CAN總線數(shù)據(jù)接收流程圖

  4 結(jié)語

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



關(guān)鍵詞: CAN總線 汽車數(shù)字儀表

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉