廖向陽,余劍武,張詩語,黃鵬,海爭平
(1.湖南交通職業技術學院汽車工程學院 汽車工程系,湖南 長沙 410132;2.湖南大學 汽車車身先進制造國家重點實驗室,湖南 長沙 410082)
隨著我國國民經濟水平的提高與汽車工業的發展,汽車的產量及保有量也隨之不斷提升。在汽車日益普及的趨勢下,為了使汽車保持良好的運行狀態,降低故障發生率,保障行車安全,對汽車運行狀態進行實時可視化顯示以及對異常狀況進行實時警報具有重要意義。
數據采集是汽車運行狀態監控的基礎。在汽車電控系統中,汽車ECU對汽車各個系統的控制依賴于汽車內部的各個傳感器。傳感器將被測工況轉換為電信號輸入ECU,ECU根據輸入信號做出相應的控制指令并輸出給執行器[1]。汽車傳感器信號不僅是ECU進行控制的依據,同時還反映出相應系統的運行狀態。目前,CAN總線是絕大部分汽車中車載電子控制裝置ECU以及微控制器之間的通信渠道。伴隨著汽車電子化程度的提升以及ECU數量的增多,CAN 總線的集約化程度也有了顯著提升,實現了多路復用以及高效通信。在此基礎上,利用CAN收發器將數據采集設備接入CAN總線網絡,獲取并解析總線報文,并開發相應的數據處理軟件,在理論上便可實現車輛運行狀態的實時監測[2-4]。
國內外諸多學者在這一方面做了大量的研究工作。重慶大學的張海逢[5]、大連理工大學的劉洪星[6]以及中北大學的高陽,李永紅等[7]設計了CAN總線數據采集設備,完成了汽車狀態數據的采集并實現了數據向PC的傳輸;同濟大學的劉翔、吳光強等[8]以及中北大學的岳強、尉慶國等[9]在CAN總線數據采集的基礎上設計了數據可視化界面,將大量數據中的信息通過圖表的形式表達出來。丹奧爾堡大學的K Jakobsen和SCH Mouritsen等[10]以及美國麻省理工學院的Umberto Fugiglando等[11]設計了CAN總線數據采集方法,并且利用數據實現了對駕駛人員的駕駛行為的分析。
在上述研究的基礎上,為了更加全面地采集汽車運行時的各種狀態參數、改善運行狀態信息的表達效果,本文將用于數據采集的數據采集解析模塊與用于數據處理和顯示的上位機軟件相結合,設計了一套汽車實時數據采集與可視化系統。數據采集解析模塊對汽車CAN總線報文進行采集并基于ISO11898協議進行解析,獲取包括發動機轉速、發動機負荷以及冷卻液溫度等在內的12個物理量的實時數值,并轉化為串口數據的形式傳輸到上位機PC端;借助LabVIEW開發上位機軟件,對串口數據進行提取和處理,實現汽車運行實時數據的可視化顯示以及對異常狀況的實時警報,幫助車主及時、準確地掌握汽車運行狀態。
數據采集模塊通過OBD-Ⅱ接口接入汽車CAN總線網絡獲取總線報文。對報文進行解析,轉換為串口數據并傳輸給PC端。針對上述功能,在數據采集模塊中集成了控制芯片、電源模塊、串口通信收發器以及CAN總線收發器。圖1是數據采集模塊的電路原理圖。

圖1 數據采集模塊電路原理圖
控制芯片采用3.3V供電電壓。設置UART引腳用于連接串口收發器,規定接收5V或3.3V的TTL電平,發送3.3V的TTL電平;CAN引腳接CAN收發器的TXD和RXD接口;設置IAP和RST引腳,用于對芯片進行模式切換和重置。
電源模塊包含LM2579電源模塊和AMS1117模塊。LM2576電源模塊用于電源供電,額定電壓9-30V。AS1117模塊主要用于電壓轉換,將5V轉為3.3V為芯片供電。
串口通信主要采用RS232收發器SP232EEN。RS232S的TX、RX分別接控制芯片的RX和TX引腳。VCC采用5V電壓輸入。
CAN通信主要采用高速CAN收發器PCA82C51。高速CAN的高頻信號在傳輸線終端會形成反射波,干擾原信號。為了保證數據通信的抗干擾性和可靠性,在總線終端接入兩個120Ω的電阻,用于匹配總線阻抗。
汽車CAN總線包括高速CAN總線和低速CAN總線。發動機控制ECU、自動變速器控制ECU以及ABS控制單元等系統與汽車動力輸出和控制密切相關。這些系統所傳遞的信息量較大,對信息傳遞速度的要求較高,因此掛載在高速CAN總線上。汽車狀態監測和故障診斷所需要的物理量主要集中在與汽車動力輸出和控制相關的系統上。這些物理量包括行駛速度、節氣門開度、發動機轉速、發動機負荷、瞬時油耗、電瓶電壓以及冷卻液溫度等。為了獲取上述物理量的實時數據,需要獲取汽車高速CAN總線的報文并加以解析。
CAN總線是廣播類型的總線,這意味著總線上所有節點都可以偵聽到總線上的報文,但是每個節點會根據報文的內容決定是否對報文做出響應。汽車CAN總線報文分為數據幀、遠程幀、錯誤幀和過載幀四種類型。數據采集模塊的CAN收發器發送特定的遠程幀報文向總線上的相應節點請求數據。對應節點收到遠程幀報文后向總線上發送數據幀報文,數據幀報文當中包含了汽車ECU內存儲的各傳感器數據。CAN收發器接收總線上的數據幀報文。控制芯片對CAN收發器接收到的數據幀報文進行解析,即可得到如表1所示的12個狀態參數的實時數值。

表1 汽車運行狀態參數表
汽車運行狀態實時數據的可視化顯示以及異常狀況實時警報能夠幫助車主及時、準確地了解汽車當前的運行狀態,使車主能夠在汽車出現異常后及時采取相應措施,這對于汽車的日常維護以及行車安全的保障具有顯著意義。與此同時,存儲下來的汽車運行狀態歷史數據可以在故障診斷及車輛維修時為工作人員提供可供參考的信息,并能夠幫助車主改善駕駛習慣,提高行車的經濟性和安全性。為此,在數據采集解析模塊的基礎上,還需要在上位機上開發相應的軟件以實現上述功能。
LabVIEW是基于數據流的圖形化編程軟件,具有強大的控件庫,便于串口數據的處理,與數據采集儀器加以組合便可設計出用于數據顯示的虛擬儀表,為汽車狀態數據可視化軟件的開發提供了良好平臺[12]。
綜上所述,本系統借助LabVIEW圖形化編程語言開發上位機軟件,用于向模塊發送串口指令、讀取模塊返回的串口數據并對數據進行處理,以實現狀態數據的實時顯示、存儲以及異常工況報警等功能,并預期達到用戶界面友好、界面清晰、操作簡單、功能可靠的目標。
上位機軟件包含實時模式和線下模式。實時模式用于在汽車行駛時顯示并保存實時狀態數據,以及在出現異常狀況時及時發出警報。在LabVIEW中設置模塊初始化參數簇,對波特率、數據位、停止位、奇偶校驗和流控制等參數進行初始設定。之后由上位機向模塊發送實時數據流自動上報指令,模塊每隔1秒鐘向上位機串口發送一條反映汽車實時運行狀態的消息,消息的格式如下:“$OBDRT=13.741,1362,16,17.25,56.9,54,10.00,3617.26,8.2,11.3,76,39 ”。其有效載荷為“$OBDRT=”與“ ”之間的數據,表示汽車運行狀態參數的實時數值(與表1中的狀態參數自上而下依次對應)。采用循環結構實現消息的連續讀取、顯示和保存,由布爾控件控制循環的起始。為了避免讀取時發生遺漏,以每條消息末尾的換行符 作為讀取終止符,保證對串口消息逐條進行讀取。上位機讀取到模塊返回的消息后,設置字符串掃描控件和數組索引控件提取出目標狀態參數的實時數據,并利用數組寫入控件將數據保存到本地文檔。在本系統中對蓄電池電壓、發動機轉速、行駛速度和冷卻液溫度這四個狀態參數的實時數據進行了提取。對于以上各狀態參數,在程序中分別添加相應的虛擬儀表、波形圖表、報警燈以及蜂鳴器控件與之對接,并設置狀態參數在正常工況下的數據范圍,從而實現汽車狀態數據的可視化顯示以及對異常工況的警報。線下模式用于將線上模式所保存的歷史數據生成為波形圖。在LabVEW程序中設置電子表格讀取控件,將保存到本地的數據文檔讀取為數組,并設置數組索引控件和波形圖控件將數組中對應狀態參數的歷史數據提取出來并以折線圖的形式顯示。上位機軟件的LabVIEW程序框圖如圖2所示。

圖2 汽車狀態數據可視化程序框圖
在汽車行駛狀態下,進入上位機軟件的實時模式,虛擬儀表盤和溫度計顯示汽車的蓄電池電壓、發動機轉速、行駛速度以及冷卻液溫度的實時數據,波形圖顯示對應數據的變化情況。其中軟件上顯示的行駛速度和發動機轉速與汽車儀表盤上的數據一致。在行駛速度超過60km/h的瞬間,上位機虛擬報警燈閃爍,蜂鳴器報警。狀態參數實時數據顯示界面如圖5所示(限于篇幅此處以蓄電池電壓為例)。
在K2汽車上進行了汽車實時數據采集與可視化系統的功能驗證試驗。在實車試驗中,利用數據采集解析模塊得到了汽車狀態參數的實時數據,并將數據保存到本地文檔中,以便后續的處理和分析。模塊實物及試驗現場如圖3、圖4所示。

圖3 數據采集解析模塊

圖4 數據采集試驗現場
在汽車行駛狀態下,進入上位機軟件的實時模式,虛擬儀表盤和溫度計顯示汽車的蓄電池電壓、發動機轉速、行駛速度以及冷卻液溫度的實時數據,波形圖顯示對應數據的變化情況。其中軟件上顯示的行駛速度和發動機轉速與汽車儀表盤上的數據一致。在行駛速度超過60km/h的瞬間,上位機虛擬報警燈閃爍,蜂鳴器報警。狀態參數實時數據顯示界面如圖5所示(此處以蓄電池電壓為例)。

圖5 蓄電池電壓實時數據顯示界面
在試驗行程結束后,進入上位機軟件的線下模式。在線下模式中將本次行駛過程中的相關參數歷史數據繪制成折線圖,其中行駛速度和發動機轉速的折線圖如圖6、圖7所示。折線圖反映了本次試驗行駛過程基本未出現異常狀況。實車試驗證明了本系統具有實時性、準確性和可靠性。

圖6 行駛速度曲線圖

圖7 發動機轉速曲線圖
(1)開發了汽車實時數據采集與可視化系統。系統充分利用了汽車CAN總線網絡的優勢,借助簡單的硬件設備,準確、實時、全面地獲取了汽車狀態數據;借助LabVIEW軟件強大的串口數據處理功能及虛擬儀表庫,開發了上位機軟件,實現汽車異常工況的報警以及運行狀態實時數據的顯示、保存與分析,為汽車狀態監控及故障診斷提供數據支持。
(2)系統擴大了被監控物理量的范圍,更加綜合、全面地反映汽車的運行狀態;通過可視化的方式有效解決了因數據量過大造成信息可讀性差的問題;突破了傳統儀器儀表的限制,降低了汽車狀態監控的經濟成本。
(3)本系統可以進一步擴展,應用于車聯網的信息上傳和共享??山柚ヂ摼W、局域網實現車載終端系統和遠程控制中心的信息交互,并利用云端服務器擴大用戶數量,實現大量用戶數據的管理和存儲。