1 引言
汽車儀表作為車輛與駕駛員交流的窗口,承擔向駕駛員實時提供車輛工況任務。汽車儀表是汽車電子在車輛中應用研究的重點之一。隨著歐Ⅲ排放標準在國內推廣,符合歐Ⅲ排放標準具備控制器局域網絡(Controller Area Network,簡稱CAN)總線接口的發動機和與之通訊的總線式數字儀表也逐漸擴大市場。隨著車載總線技術發展,帶有CAN總線接口的汽車數字儀表得到廣泛應用。應用層SAE J1939協議是目前國內汽車行業應用最廣泛的CAN總線應用層協議。
這里提出的基于CAN總線的汽車數字儀表是利用CAN總線使其成為車身網絡一部分,遵循SAE J1939協議讀取發動機轉速、水溫等信息。考慮到車輛實際狀況,該汽車數字儀表還能接收傳感器的車速、油量、油壓、制動氣壓等信號并顯示,為駕駛員提供實時車輛工況。
2 SAE J1939協議簡介
SAE J1939協議是美國汽車工程師協會SAE(Societyof Automotive Engineer)發布的以CAN2.0B作為網絡核心協議的車輛網絡串行通信和控制協議。SAE J1939協議使用CAN的數據幀封裝其數據信息,對CAN擴展幀的29位標識符編碼,形成獨特的編碼系統作為車輛通訊標準。該協議明確規定了汽車內部ECU的地址配置、命名、通訊方式以及報文發送優先級等,詳細說明了汽車內部具體的ECU通訊內容。實現車輛電子設備間高速數據傳輸,減少線路數量,最大限度利用CAN總線優越性能。
2.1 SAE J1939報文格式
SAE J1939數據幀是以PDU(協議數據單元)為單位,共由優先權(P)、保留位(R)、數據頁(DP)、PDU格式(PF)、PDU細節(PS)、源地址(SA)及數據域(Date Field)等7個域組成。除了數據域外的PDU對應于CAN擴展幀的29位標識符,其對應關系如表1所列。其中PS是一個8位段,其定義取決于PF值。若PF值小于240,PS是目標地址(DA)。若PF值介于240和255之間,則PS為組擴展(GE)。
2.2 SAE J1939應用層
應用層詳細定義了SAE J1939協議中使用的每個參數,包括數據長度、數據類型、結果、范圍以及參數組編號(PGN)等。這些參數分為控制參數、動力傳動系統狀態參數、動力傳動系統控制參數、動力傳動系統配置參數、信息參數以及信息狀態參數。SAE J1939使用參數組編號(PGN)作為一參數組的唯一標簽。該標簽包括:保留位(R),數據頁(DP)、PDU格式域(PF 8位)和組擴展域(GE 8位)。另外,PF值小于240時,PGN低字節位置0。參數組中的每個參數都能用ASCII碼表示,其狀態量最少可用兩個位表示。文字數字數據采用最高位在前的傳輸方式,其他包括兩個或多個數據字節的參數則采用最低位在前的傳輸方式。除此之外,應用層中還詳細定義了參數組屬性。該參數組屬性包括:優先權、更新率、參數組的協議數據單元格式、參數組編號,參數組的數據參數號及其在參數組中的位置。
3 基于CAN總線的汽車數字儀表系統設計
3.1 硬件電路設計
該汽車數字儀表系統由信號采集和處理顯示等模塊組成,如圖l所示。通過模擬量信號分壓,濾波整形脈沖信號,CAN總線信號通過收發器發送至中央處理器,然后再將處理后的信號通過步進電機控制器控制步進電機,驅動LCD液晶屏顯示。其中信號采集模塊包含CAN總線數據采集和傳感器數據采集。在實際的車載環境中,該系統設計遵循SAE J1939協議在CAN總線上獲取發動機轉速、水溫和故障代碼,而其他信息包括車速、油量、機油壓力、制動氣壓則從相應傳感器以模擬量和脈沖量形式讀取。通過測量車速傳感器脈沖信號獲取車速信號,油量傳感器的信號經分壓后直接發送給中央處理器內A/D轉換器處理。
圖2給出信號采集模塊電路。圖中,采用帶隔離的通用CAN收發器CTM825lT接收CAN總線信號。CTM8251T內部集成所有必需的CAN隔離及CAN收發器,可實現CAN節點的收發與隔離功能,從而替代了傳統設計中采用光電耦合器、DC-DC隔離、CAN收發器等元件實現的具有隔離功能的CAN收發電路。該模塊電路可將CAN控制器的邏輯電平轉換為CAN總線的差分電平,并具有直流2 500 V的隔離功能。該模塊電路設計體積小,集成度高,可取代PCA82C25l等傳統的CAN總線收發器及其外圍電路,從而降低了系統設計成本。傳感器模擬量信號經分壓傳輸至中央處理器,圖中的VD40和C40兩元件可對微控制器LM3S2948的引腳提供過壓保護。
LM3S2948型微控制器完成信號處理。它是一款基于ARM CortexM3內核的微控制器,采用32位RISC,內嵌CAN控制器、A/D轉換器、模擬比較器、I2C接口等功能模塊,極大降低了外圍電路設計成本。LM3S2948微控制器具有運算速度快、功耗小、體積小、價位低等特點。LM3S2948的CAN控制器模塊支持CAN 2.0B協議,支持符合SAE J1939協議的擴展幀的報文傳輸,其傳輸速率可編程設置為1 Mb/s,這些特性完全滿足CAN總線汽車數字儀表的應用要求。采用移位寄存器74HC595實現信號的串入并出,采用步進電機驅動器VID6606驅動表針。每片VID6606可同時驅動四路步進電機。在其頻率控制端輸入脈沖序列F(SCX),即可控制輸出端使步進電機的輸出軸以微步轉動,每個脈沖對應電機輸出軸轉動1/12°,最大角速度可達600°/s,滿足汽車儀表指示的高精度、快速響應的要求。表針采用步進電機VID一29驅動。圖3為VID6606驅動儀表電路。LCD驅動器采用PCF8566,其內部集成LCD驅動器所必需的功能電路。能直接驅動任意靜態或包含4背極高達24段的LCD。中央處理器發送的信號先經PCF8566T功率放大后,然后送至液晶屏F2000LCD顯示。
3.2 軟件設計
該汽車數字儀表系統軟件采用IAR編程調試軟件編寫。該軟件通過LM一LINK調試仿真器與LM3S2948的JTAG端口連接,實現在線仿真調試。
數據接收處理軟件首先初始化系統時鐘、CAN節點、LCD液晶屏、步進電機等,并使能CAN中斷,設置CAN屏蔽碼和驗收碼。初始化CAN節點的具體步驟:①封裝CAN節點相關信息,創建一個軟件CAN節點結構體指針pCAN_Node_lnfo;②初始化CAN控制器;③中斷CAN控制器;④設置CAN節點接收過濾。初始化后,讀取CAN總線和其他傳感器信號。控制步進電機和液晶屏顯示處理數據。等待CAN總線接收中斷產生,判斷總線數據是否滿足屏蔽條件,即逐位比較接收的29位標識符報文與驗收碼、屏蔽碼值,屏蔽碼用于定位相關位(0=相關,1=不相關)。只有標識符中的相關位與驗收碼相應位相同,系統才接收報文。如滿足屏蔽條件則從寄存器讀取數據并存入緩存區,再根據SAE J1939協議判斷計算發動機轉速、水溫和故障代碼信息,傳輸至步進電機和液晶屏顯示。例如:接收的數據為:OCF00400 XX XX XX 4F 55 XX XX XX(XX為任意數據),若設置驗收碼為Ox00000000,屏蔽碼為0xlFFFFFFF,則接收該報文。根據SAEJl939—71協議,此報文為:PGN61444一電子發動機控制器。因此,可得第4,5字節為發動機轉速,并遵循低位在前,高位在后的傳輸方式,則發動機轉速=原始數×分辨率+偏移量=21 831x0.125+0=2 728.875 r/m。同理可計算其他汽車儀表所需數值。圖4為CAN總線數據接收程序流程圖。
4 結語
在研究了汽車CAN總線通訊協議及SAE J1939協議的基礎上,實現基于CAN總線的汽車數字儀表系統設計。該系統設計利用LM3S2948、CTM8251、VID6606等器件的功能,最大程度地降低外圍電路成本。該汽車數字儀表系統工作穩定、性能良好,目前正進行裝車試驗。隨著歐Ⅲ排放標準在國內的推廣,基于CAN總線的數字儀表必將進入快速發展的新階段。
責任編輯:gt
-
微控制器
+關注
關注
48文章
7649瀏覽量
152097 -
收發器
+關注
關注
10文章
3454瀏覽量
106235 -
控制器
+關注
關注
112文章
16444瀏覽量
179422
發布評論請先 登錄
相關推薦
評論