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