摘要:為了提高駕駛安全性,預防交通事故的發生,設計了一種車載信息采集與診斷預警系統。系統以STM32F107VCT6芯片為核心控制單元,采用OBD-II診斷接口和CAN總線控制器實時獲取汽車故障碼、行車速度等信息,同時設計震動檢測電路和超聲波測距電路實時檢測其他汽車傳感器數據,并通過TCP/IP接口將上述數據信息傳給遠程維修中心。經過實驗測試,結果表明系統能夠達到預期目標,并且靈活性好,方便進一步擴展。
關鍵詞:車載診斷;STM32;CAN總線;OBD-II
中圖分類號:U463 文獻標識碼:A 文章編號:1007-9416(2018)05-0162-02
隨著汽車產銷量的逐年增長,汽車安全隱患問題日益突出。傳統的定期車輛年檢在汽車故障預防方面存在局限性,因此,研發一套方便快捷、經濟適用、擴展方便的車載狀態檢測裝置,用于保證車輛駕駛的安全就顯得尤為重要。目前,大部分裝有電子控制單元的汽車都配備了車載診斷接口(OBD),對其進行輔助電路設計,就能夠準確識別車輛故障碼和車況信息,是現在比較熱門的車載診斷技術[1-4]。本文設計的汽車故障信息采集和診斷預警系統就是采用OBD診斷技術,輔以設計其他傳感器電路,以獲取各種有效的車輛駕駛信息,并對車輛行駛狀態及駕駛員行為特性進行分析從而規范駕駛行為,減少事故發生的可能性。
1 系統方案設計
車載信息采集和診斷預警系統架構如圖1所示,由STM32主控制器、CAN總線控制器、OBD-II診斷接口轉換電路、車輛傳感器電路和電源模塊組成,安裝在被管理車輛上。系統以STM32集成開發板為核心控制單元,實現對車輛狀態信息的實時采集、處理和控制。采用OBD-II診斷接口獲取汽車故障碼、汽車速度等信息,通過CAN總線將采集的數據傳送給主控制器實時分析和顯示。同時,系統接口較為豐富,可以通過震動傳感器電路和超聲波測距電路等獲取汽車外部傳感器信息。最后,通過TCP/TP接口將上述所有數據信息傳輸給遠程維修中心,維修人員可以實時監控汽車行駛過程中的各項車輛狀態數據,給駕駛員以指導,真正實現實時診斷預警,保障行車安全。
2 系統硬件設計
2.1 主控制器
系統采用STM32F107VCT6芯片為核心控制單元,它是ST公司推出的一款基于ARM Cortex-M3內核的32位微處理器。相較于其他主控芯片在接口、主頻等性能上具有明顯優勢,而且ST公司還專門為STM32F系列處理器提供了一個封裝好的軟件庫,這個庫函數功能強大、使用簡單、可讀性強,為程序開發者省去了許多工作。
2.2 OBD-II接口轉換模塊
系統采用ISO75165協議標準的OBD接口,基于CAN總線實現數據交互。利用OBD接口可以實時檢測汽車運行過程中的發動機電控系統以及獲取車輛的基礎行駛狀態信息,但其并不能直接與控制器相連,必須通過一個解碼模塊,本文利用的是深圳麥卡途科技有限公司開發的MK2000模塊,它是一款基于CAN總線的標準 OBD-II數據采集和分析模塊,其具有標準的16個引腳線,可以實現數據的采集、分析,并與車載ECU進行通信。
2.3 CAN總線和以太網接口模塊
STM32F107VCT6芯片內部搭載有2通道的支持CAN20.B規格的CAN控制器和以太網的MAC層控制器,使得CAN通信模塊和以太網通信模塊的設計更加方便[5]。只需選用一個CAN收發器即可通過CAN總線實現車輛數據的收發,本文采用SN65HVD230作為CAN總線收發器,選用單芯片快速以太網PHY DM9161AEP和網絡隔離變壓器HR911105A,連接到STM32F107芯片的MII接口,即可實現遠程以太網通信。
2.4 震動檢測模塊
車輛震動檢測電路主要采用801S震動傳感器和LM393雙電壓比較器,工作電壓為5V。采用雙路信號輸出,TTL檢測電平輸出Dout,直接連接處理器STM32F107的IO口,當有震動時,輸出為高電平,無震動時,輸出為低電平;模擬信號輸出Aout,輸出電壓范圍為0~5V,直接連接處理器STM32F107的AD輸入口,采集實時的模擬信號量。其中,震動靈敏度可以通過可變電阻器R3進行調節,以適應于不同車輛的震動狀況。
2.5 超聲波測距模塊
超聲波測距采用HC-SR04超聲波測距模塊,在車輛四周放置若干個傳感器。該超聲波模塊能夠通過非接觸式距離感測功能測量兩物體之間的距離,其范圍為3cm-400cm,具有3mm的測距精度,模塊包含超聲波發射器、接收器與控制器。距離計算公式:距離=(超聲波從發射到接收到回波時間*速度(340m/s))/2 。
2.6 電源管理模塊
采用DC 12V作為電路板總電源,為了滿足不同芯片的供電電壓需求,選用一開關電壓調節器LM2596T和一低壓差電壓調節器LM1117-3.3,分別為系統其它模塊提供5V和3.3V電壓。
3 系統軟件設計
軟件在RVMSK4.12開發環境下開發,采用C語言、移植μCOS操作系統實現。系統程序設計采用多任務調度,主要包括系統初始化、OBD數據采集、傳感器數據采集和遠程TCP/IP通信。任務一是系統相應模塊的初始化以及創建兩個功能任務,任務功能如圖2所示;任務二用來獲取OBD故障信息并存儲,數據協議采用ISO15765標準,發送機狀態、車速等信息均封裝成該格式報文進行傳輸;任務三用來建立TCP/IP連接和車輛震動和測距信息的采集,其中,以太網通信功能主要通過移植小型高效的TCP/IP協議棧LwIP來實現。
4 結語
通過對系統在實車環境下進行實驗,系統通過OBD-II接口和CAN總線能夠準確獲取發送機轉速、功率、油耗和車速等信息,能夠有效采集傳感器數據,系統實時性好。在出現故障信息或者傳感數據異常時,能夠及時發出預警信息,系統功能達到預期目標。試驗結果證明系統運行穩定可靠,為下一步研究故障預測、開發監控管理系統奠定了基礎。
參考文獻
[1]徐輝,李英祥,余樂韜.車載診斷系統OBD II的汽車接口數據處理技術[J].單片機與嵌入式系統應用,2017,(2):28-30.
[2]陳鯉文,鄒復民.基于CORTEX-M3的實時車載診斷預警系統的設計[J].電子設計工程,2013,21(2):111-114.
[3]楊鳳年,何文德,劉華富.基于STM32的汽車故障信息采集節點設計[J].現代計算機,2014,(9):57-61.
[4]黃曉波,姜振軍,熊樹生,等.基于GPRS的遠程診斷車載終端的設計與實現[J].工業儀表與自動化裝置,2016,(1):49-52.
[5]林虹,吳良峰.機動車智能駕考系統中車載網關的設計[J].洛陽師范學院學報,2014,33(11):80-84.