魏 巍,聞利群*,邸麗霞,馮鐵山
(1.中北大學(xué)化工與環(huán)境學(xué)院,太原 030051;2.北方自動控制技術(shù)研究所,太原 030006;3.北京宇航系統(tǒng)工程研究所,北京 100076)
基于CAN總線的行車記錄儀設(shè)計
魏 巍1,聞利群1*,邸麗霞2,馮鐵山3
(1.中北大學(xué)化工與環(huán)境學(xué)院,太原 030051;2.北方自動控制技術(shù)研究所,太原 030006;3.北京宇航系統(tǒng)工程研究所,北京 100076)
為保障行車安全,設(shè)計了一種基于CAN總線通信技術(shù)的行車記錄儀。該行車記錄儀硬件部分選用STM32F105V8微處理器實現(xiàn)了對車輛各種狀態(tài)信息的接收,并選用Hi3520D多媒體芯片,實現(xiàn)了對車輛四周環(huán)境信息的視頻監(jiān)控,軟件部分基于嵌入式Linux平臺,實現(xiàn)了視頻存儲、視頻回放等功能。長期試驗證明,該系統(tǒng)可有效監(jiān)控行車過程中的各種信息,穩(wěn)定可靠,有較高的應(yīng)用價值。
行車記錄儀;CAN總線;數(shù)據(jù)處理;Hi3520D芯片;視頻回放
隨著社會經(jīng)濟的快速發(fā)展,汽車大量普及,然而汽車為大眾帶來便利的同時交通事故的發(fā)生率也逐年遞增。為保證車輛安全有序的行駛以及在事故發(fā)生時能夠正確的判斷責(zé)任,交管部門在事故頻發(fā)路段都安排有攝像頭和交警。但是,這些監(jiān)督措施并不能滿足安全行車的多方面監(jiān)督要求,如:高速行駛時中的行駛監(jiān)控、車輛的自身狀態(tài)和“碰瓷”現(xiàn)象等。本文將安全要求和電子技術(shù)相結(jié)合,設(shè)計了記錄行車過程中各種信息的智能設(shè)備——行車記錄儀[1]。
為實時監(jiān)督汽車行駛中的各項數(shù)據(jù),汽車上安裝有多個電子控制裝置,如發(fā)動機轉(zhuǎn)速控制器、車速控制器、油溫控制器等。為了使這些控制器在不斷地和被控制部件交換信息的同時實現(xiàn)全車信息實時共享,CAN總線應(yīng)運而生[2]。CAN總線具有數(shù)據(jù)傳輸靈活可靠、容量大、容錯率高、實時性好等多個優(yōu)點,滿足了各部件之間的通訊要求。
本文中設(shè)計的行車記錄儀主要可分為6個模塊:最小系統(tǒng)模塊、視頻采集模塊、視頻存儲模塊、CAN數(shù)據(jù)接收模塊、顯示模塊、視頻回放模塊。具體的系統(tǒng)框架圖如圖1所示。
該設(shè)備采用主從板結(jié)構(gòu),主板以中央處理器Hi3520D芯片為核心,負(fù)責(zé)采集車輛四周的視頻環(huán)境信息;從板以微處理器STM32F105V8芯片為核心,和收發(fā)器TJA1040組成CAN總線節(jié)點,接收CAN總線上車輛行駛過程中的各項狀態(tài)信號,如:車速、發(fā)動機轉(zhuǎn)速、水溫、油溫等。最后,車輛的狀態(tài)信息和四路視頻信息經(jīng)處理后經(jīng)顯示器顯示。
圖1 系統(tǒng)框架圖
2.1 CAN總線電路設(shè)計
CAN總線通信網(wǎng)絡(luò)主要由CAN_High、CAN_Low信號線和通信節(jié)點3部分組成,以差分信號進(jìn)行通信[3]。作為汽車通信的標(biāo)準(zhǔn)協(xié)議,CAN總線通信距離可達(dá)40 m,最高傳輸速度為1 Mbyte/s,通過了ISO11898以及ISO11519協(xié)議進(jìn)行標(biāo)準(zhǔn)化[4]。當(dāng)CAN通信節(jié)點需要發(fā)送信息時,CAN控制器由CAN_Tx發(fā)送命令至CAN收發(fā)器,經(jīng)轉(zhuǎn)換為差分信號傳送至CAN通信網(wǎng)絡(luò)。當(dāng)CAN通信節(jié)點接收信息時,和發(fā)送信息的流程相反。具體通信網(wǎng)絡(luò)圖如圖2所示。
圖2 CAN總線通信網(wǎng)絡(luò)圖
圖3 CAN總線通信節(jié)點電路圖
本設(shè)計選用內(nèi)部集成了CAN控制器的STM32F105V8微處理器和CAN總線收發(fā)器TJA1040組成通信節(jié)點[5]。STM32F105V8是基于ARM的32位微處理器,內(nèi)核頻率高達(dá)72 MHz;內(nèi)置Flash和SRAM存儲器;具有豐富的外設(shè)接口,同時內(nèi)部集成CAN控制器,具有高效處理數(shù)據(jù)的能力。具體的CAN總線節(jié)點電路圖如圖3所示。
2.2 Hi3520D中央處理器
中央處理器作為系統(tǒng)的核心,擔(dān)負(fù)著數(shù)據(jù)處理和命令收發(fā)的責(zé)任。本設(shè)計中,中央處理器主要功能為實現(xiàn)采集和處理車輛四周的視頻信息,故選用Hi3520D芯片。Hi3520D芯片基于ARM Cortex-A9內(nèi)核,內(nèi)置多種高速Cache,最高工作頻率可達(dá)660 MHz,可實現(xiàn)視頻硬件加速,符合錄制車輛四周視頻信息的實時性要求;且芯片內(nèi)部集成了多功能視頻解碼器、VCMP、VPSS和TDE多個模塊,在抓拍的同時可實現(xiàn)同編同解,視頻處理能力強大,滿足了設(shè)計所需的要求[6]。
2.3 視頻采集電路
車輛行駛過程中的視頻信息作為事故處理時的重要憑證,是行車記錄儀需要記錄的最主要信息。本設(shè)計選用RN6318A芯片實現(xiàn)對四路攝像頭采集到的視頻信息進(jìn)行A/D轉(zhuǎn)換,并傳送至Hi3520D芯片進(jìn)行后續(xù)處理。該芯片支持8路視頻輸入,兩路視頻輸出,滿足了四路攝像頭的輸入要求。具體的視頻采集電路如圖4所示。
本文的軟件設(shè)計分為兩部分,一部分是從板對于CAN總線數(shù)據(jù)接收的軟件設(shè)計,采用開發(fā)工具M(jìn)DK,實現(xiàn)了對車輛自身信息的采集;另一部分是主板實現(xiàn)視頻監(jiān)控的軟件設(shè)計,針對Hi3520D芯片采用嵌入式Linux操作系統(tǒng)。Hi3520D芯片具有完整的開發(fā)函數(shù)庫,本設(shè)計利用所提供的函數(shù)實現(xiàn)了其他模塊的設(shè)計。實現(xiàn)方法為:四路視頻采集到的視頻信息轉(zhuǎn)換為模擬信號后,通過存儲模塊存放在硬盤和U盤中,或者經(jīng)過通過視頻回放功能直接顯示,同時CAN節(jié)點讀取的車輛信息傳送到顯示器顯示車輛信息。
3.1 CAN總線接收解析數(shù)據(jù)軟件實現(xiàn)
如圖5所示,是CAN總線接收解析數(shù)據(jù)的流程圖。首先,對各個接口進(jìn)行初始化,然后進(jìn)入等待中斷階段。軟件中設(shè)置有標(biāo)志性變量flag,當(dāng)接收到中斷信號時flag=1,根據(jù)不同的id選擇不同的函數(shù)。解析結(jié)束后flag=0,重新進(jìn)入中斷等待下一次數(shù)據(jù)接收。
圖5 CAN總線接收解析數(shù)據(jù)流程圖
詳細(xì)步驟為:(1)通過函數(shù)對CAN接口進(jìn)行配置,包括GPIO初始化、中斷配置、模式配置以及過濾器配置。(2)選用STM32F105V8芯片的CAN1接口接收報文信息。接收到報文時,提前配置好的過濾器會對其進(jìn)行篩選,若報文的ID和過濾器的標(biāo)識符相同,則該報文會被存儲至FIFO的郵箱中[7~8]。應(yīng)用程序訪問FIFO的郵箱,讀取收到的報文信息。讀取成功后釋放緩沖區(qū)郵箱,等待下一次的報文。(3)讀取報文結(jié)束后,根據(jù)接收報文的ID和存儲于Can data中的ECU單元進(jìn)行比較,選擇對應(yīng)的解析函數(shù)對數(shù)據(jù)進(jìn)行下一步的處理。
根據(jù)協(xié)議書,Can data結(jié)構(gòu)體中定義了各個ECD報文信號,具體定義如下:
Public Structure Can data
CH_2B0_BW75
CH_320_BW75
CH_326_BW75
CH_32A_BW75
……
CH_373_BW75
Can data中的每個成員也是一個結(jié)構(gòu)體,例如CH_320_BW75結(jié)構(gòu)體的的定義如下:
Structure CH_320_BW75
float ESP_Vehicle_Speed //行駛車速信號
float EMS_Engine Cool Temperature //冷卻液溫度信號
float EMS_Engine Speed //轉(zhuǎn)速信號
……
Int CH_Gate way Failure Flag //網(wǎng)關(guān)故障信號
例如接收到標(biāo)識為0x00000320的報文時,會對應(yīng)選擇CH_320_BW75的結(jié)構(gòu)體,調(diào)用handle CH_320()函數(shù)對數(shù)據(jù)進(jìn)行處理,得到車輛的狀態(tài)信息。
為實驗CAN總線接收數(shù)據(jù)的正確性,模擬發(fā)送一組數(shù)據(jù)對其進(jìn)行測試。對照協(xié)議書可知,車速,發(fā)動機轉(zhuǎn)速、冷卻液溫度這3個信號在結(jié)構(gòu)體CH_320_BW75中;換擋位置、發(fā)動機運行狀態(tài)在結(jié)構(gòu)體CH_2B0_BW75。模擬發(fā)送的數(shù)據(jù)如表1所示。
表1 模擬發(fā)送CAN數(shù)據(jù)表
對應(yīng)的八位數(shù)據(jù),控制部件的實際值可根據(jù)給出的公式確定,計算結(jié)果見表2所示。
實際值=(數(shù)據(jù)*精度值)+偏移量值 (1)
表2 計算結(jié)果
圖6 行車記錄儀計算結(jié)果
行車記錄儀計算結(jié)果如圖6所示。
經(jīng)對比,手算結(jié)果和行車記錄儀計算結(jié)果相同,CAN總線數(shù)據(jù)傳輸安全可靠。
3.2 視頻存儲模塊軟件設(shè)計
本模塊設(shè)計主要實現(xiàn)對于四路視頻采集信息的視頻處理編碼等,并將處理后的數(shù)據(jù)存儲至硬盤或U盤中。視頻存儲模塊軟件流程圖如圖7所示。
為方便進(jìn)行視頻回放,首先進(jìn)行時鐘同步,然后檢測設(shè)備是否插入存儲卡,若檢測到存儲卡則調(diào)用start_storage Stream()函數(shù)開始視頻壓縮并存儲,同時判斷存儲卡是否拔出,拔出后調(diào)用stop_storage Stream()函數(shù)停止存儲程序。當(dāng)數(shù)據(jù)存儲至硬盤后,釋放緩存,進(jìn)入下一次存儲,以防止緩存不足導(dǎo)致漏秒現(xiàn)象的發(fā)生。存儲的文件名稱依次以視頻開始創(chuàng)建的時間命名,文件格式為.h264。
圖7 視頻存儲模塊軟件流程圖
測試過程中存儲于硬盤中的視頻文檔如圖8所示。
圖8 存儲文件截圖
圖9 視頻回放流程圖
3.3 視頻回放模塊軟件設(shè)計
視頻回放的實現(xiàn)過程和視頻存儲的過程剛好相反,調(diào)用了Hi3520D芯片的視頻解碼以及視頻輸出單元。軟件流程圖如圖9所示。
當(dāng)按下回放鍵時,系統(tǒng)調(diào)用start_play back()函數(shù)開始視頻回放,直到再次按下回放鍵,調(diào)用stop_play back()函數(shù)停止回放。具體start_play back()函數(shù)工作流程為:(1)對系統(tǒng)初始化,開啟顯示器,配置視頻輸出通道。(2)依次對視頻解碼通道的碼流緩存大小、所支持的解碼圖像的最大分辨率、解碼協(xié)議類型和優(yōu)先級進(jìn)行配置。(3)調(diào)用SAMPLE_VOMM_VDEC_Bind VO()函數(shù)將視頻解碼和視頻輸出設(shè)備相關(guān)聯(lián)。(4)通過對文件名,存儲時間的檢索在硬盤中找到需要的文件,按照設(shè)置的傳輸方式發(fā)送至視頻解碼通道進(jìn)行調(diào)用SAMPLE_VDEC_Send Stream()函數(shù)進(jìn)行視頻解碼,完成回放。查找回放視頻文件界面如圖10所示。
圖10 查找視頻文件界面
為測試行車記錄儀的性能,對其進(jìn)行了裝車測試,如圖11所示為裝車測試圖。測試結(jié)果表明系統(tǒng)運行良好,穩(wěn)定。
本設(shè)計以CAN總線為基礎(chǔ),實現(xiàn)了對車輛行駛過程中的信息采集和視頻記錄,為行車安全提供了有力的保障,具有較高的應(yīng)用價值。
圖11 裝車測試圖
[1] Wu Jian,Li Yabin,Li Jing.CAN Bus of Automotive Driving Force Control System Based on SAE Protocol[J]. Journal of Jilin University(Engineering and Technology Edition).2009,39(4):855-858.
[2] 于成毅. CAN總線數(shù)據(jù)記錄儀的研究與設(shè)計[D]. 太原:中北大學(xué),2011.
[3] 劉火良,楊森. STM32庫開發(fā)實戰(zhàn)指南[M]. 北京:機械工業(yè)出版社,2013:213-234.
[4] Li Ran,Wu Junfeng,Wang Haiying. Design Method of CAN BUS Network Communication Structure for Electric Vehicle[C]//Strategic Technology(IFOST). 2010 International Forum. 2010:326-329.
[5] 亢雪琳. 基于STM32的CAN總線通信設(shè)計[D]. 長春:吉林大學(xué),2013.
[6] Hi3520D/Hi3515A/Hi3515C H.264編解碼處理器用戶指南[M]. 海思公司,2013:3-7.
[7] William Prodanov,Maurizio Valle,Roman Buzas. A Controller Area Network Bus Transceiver Behavioral Model for Network Design and Simulation[J]. IEEE Transactions on Industrial Electronics,2009,56(9):3762-3771.
[8] 李平,魏長寶. CAN總線檢測系統(tǒng)的多接口設(shè)計研究[J]. 電子器件,2015,38(4):917-921.
Design of the Vehicle Traveling Data Recorder Based on the CAN Bus
WEIWei1,WENLiqun1*,DILixia2,FENGTieshan3
(1.North University of China School of Chemical Engineering and Enivironment,Taiyuan 0300511,China;2.North Automatic Control Technology Institute,Taiyuan 030006,China;3.Beijing Institute of Astronautics System Engineering,Beijing 100076,China)
In order to ensure traffic safety,a vehicle traveling data recorder based on CAN bus communication technology was designed. In the hardware part of the vehicle,the STM32F105V8 microprocessor was used to receive various states of vehicle information,and the Hi3520D multimedia chip was chose to video monitoring the vehicle surroundings information. This technology realized the video storage,video playback and other functions based on embedded Linux platform on the software. The long term results show that,this design can effectively monitor all kinds of information in the process of driving and has higher application value.
car driving recorder;CAN bus;data processing;Hi3520D chip;video playback
2016-03-30 修改日期:2016-05-03
C:8520
10.3969/j.issn.1005-9490.2017.02.047
TP391
A
1005-9490(2017)02-0500-06