魏 巍,聞利群*,邸麗霞,馮鐵山
(1.中北大學化工與環境學院,太原 030051;2.北方自動控制技術研究所,太原 030006;3.北京宇航系統工程研究所,北京 100076)
基于CAN總線的行車記錄儀設計
魏 巍1,聞利群1*,邸麗霞2,馮鐵山3
(1.中北大學化工與環境學院,太原 030051;2.北方自動控制技術研究所,太原 030006;3.北京宇航系統工程研究所,北京 100076)
為保障行車安全,設計了一種基于CAN總線通信技術的行車記錄儀。該行車記錄儀硬件部分選用STM32F105V8微處理器實現了對車輛各種狀態信息的接收,并選用Hi3520D多媒體芯片,實現了對車輛四周環境信息的視頻監控,軟件部分基于嵌入式Linux平臺,實現了視頻存儲、視頻回放等功能。長期試驗證明,該系統可有效監控行車過程中的各種信息,穩定可靠,有較高的應用價值。
行車記錄儀;CAN總線;數據處理;Hi3520D芯片;視頻回放
隨著社會經濟的快速發展,汽車大量普及,然而汽車為大眾帶來便利的同時交通事故的發生率也逐年遞增。為保證車輛安全有序的行駛以及在事故發生時能夠正確的判斷責任,交管部門在事故頻發路段都安排有攝像頭和交警。但是,這些監督措施并不能滿足安全行車的多方面監督要求,如:高速行駛時中的行駛監控、車輛的自身狀態和“碰瓷”現象等。本文將安全要求和電子技術相結合,設計了記錄行車過程中各種信息的智能設備——行車記錄儀[1]。
為實時監督汽車行駛中的各項數據,汽車上安裝有多個電子控制裝置,如發動機轉速控制器、車速控制器、油溫控制器等。為了使這些控制器在不斷地和被控制部件交換信息的同時實現全車信息實時共享,CAN總線應運而生[2]。CAN總線具有數據傳輸靈活可靠、容量大、容錯率高、實時性好等多個優點,滿足了各部件之間的通訊要求。
本文中設計的行車記錄儀主要可分為6個模塊:最小系統模塊、視頻采集模塊、視頻存儲模塊、CAN數據接收模塊、顯示模塊、視頻回放模塊。具體的系統框架圖如圖1所示。
該設備采用主從板結構,主板以中央處理器Hi3520D芯片為核心,負責采集車輛四周的視頻環境信息;從板以微處理器STM32F105V8芯片為核心,和收發器TJA1040組成CAN總線節點,接收CAN總線上車輛行駛過程中的各項狀態信號,如:車速、發動機轉速、水溫、油溫等。最后,車輛的狀態信息和四路視頻信息經處理后經顯示器顯示。

圖1 系統框架圖
2.1 CAN總線電路設計
CAN總線通信網絡主要由CAN_High、CAN_Low信號線和通信節點3部分組成,以差分信號進行通信[3]。作為汽車通信的標準協議,CAN總線通信距離可達40 m,最高傳輸速度為1 Mbyte/s,通過了ISO11898以及ISO11519協議進行標準化[4]。當CAN通信節點需要發送信息時,CAN控制器由CAN_Tx發送命令至CAN收發器,經轉換為差分信號傳送至CAN通信網絡。當CAN通信節點接收信息時,和發送信息的流程相反。具體通信網絡圖如圖2所示。

圖2 CAN總線通信網絡圖

圖3 CAN總線通信節點電路圖
本設計選用內部集成了CAN控制器的STM32F105V8微處理器和CAN總線收發器TJA1040組成通信節點[5]。STM32F105V8是基于ARM的32位微處理器,內核頻率高達72 MHz;內置Flash和SRAM存儲器;具有豐富的外設接口,同時內部集成CAN控制器,具有高效處理數據的能力。具體的CAN總線節點電路圖如圖3所示。
2.2 Hi3520D中央處理器
中央處理器作為系統的核心,擔負著數據處理和命令收發的責任。本設計中,中央處理器主要功能為實現采集和處理車輛四周的視頻信息,故選用Hi3520D芯片。Hi3520D芯片基于ARM Cortex-A9內核,內置多種高速Cache,最高工作頻率可達660 MHz,可實現視頻硬件加速,符合錄制車輛四周視頻信息的實時性要求;且芯片內部集成了多功能視頻解碼器、VCMP、VPSS和TDE多個模塊,在抓拍的同時可實現同編同解,視頻處理能力強大,滿足了設計所需的要求[6]。
2.3 視頻采集電路
車輛行駛過程中的視頻信息作為事故處理時的重要憑證,是行車記錄儀需要記錄的最主要信息。本設計選用RN6318A芯片實現對四路攝像頭采集到的視頻信息進行A/D轉換,并傳送至Hi3520D芯片進行后續處理。該芯片支持8路視頻輸入,兩路視頻輸出,滿足了四路攝像頭的輸入要求。具體的視頻采集電路如圖4所示。
本文的軟件設計分為兩部分,一部分是從板對于CAN總線數據接收的軟件設計,采用開發工具MDK,實現了對車輛自身信息的采集;另一部分是主板實現視頻監控的軟件設計,針對Hi3520D芯片采用嵌入式Linux操作系統。Hi3520D芯片具有完整的開發函數庫,本設計利用所提供的函數實現了其他模塊的設計。實現方法為:四路視頻采集到的視頻信息轉換為模擬信號后,通過存儲模塊存放在硬盤和U盤中,或者經過通過視頻回放功能直接顯示,同時CAN節點讀取的車輛信息傳送到顯示器顯示車輛信息。
3.1 CAN總線接收解析數據軟件實現
如圖5所示,是CAN總線接收解析數據的流程圖。首先,對各個接口進行初始化,然后進入等待中斷階段。軟件中設置有標志性變量flag,當接收到中斷信號時flag=1,根據不同的id選擇不同的函數。解析結束后flag=0,重新進入中斷等待下一次數據接收。

圖5 CAN總線接收解析數據流程圖
詳細步驟為:(1)通過函數對CAN接口進行配置,包括GPIO初始化、中斷配置、模式配置以及過濾器配置。(2)選用STM32F105V8芯片的CAN1接口接收報文信息。接收到報文時,提前配置好的過濾器會對其進行篩選,若報文的ID和過濾器的標識符相同,則該報文會被存儲至FIFO的郵箱中[7~8]。應用程序訪問FIFO的郵箱,讀取收到的報文信息。讀取成功后釋放緩沖區郵箱,等待下一次的報文。(3)讀取報文結束后,根據接收報文的ID和存儲于Can data中的ECU單元進行比較,選擇對應的解析函數對數據進行下一步的處理。
根據協議書,Can data結構體中定義了各個ECD報文信號,具體定義如下:
Public Structure Can data
CH_2B0_BW75
CH_320_BW75
CH_326_BW75
CH_32A_BW75
……
CH_373_BW75
Can data中的每個成員也是一個結構體,例如CH_320_BW75結構體的的定義如下:
Structure CH_320_BW75
float ESP_Vehicle_Speed //行駛車速信號
float EMS_Engine Cool Temperature //冷卻液溫度信號
float EMS_Engine Speed //轉速信號
……
Int CH_Gate way Failure Flag //網關故障信號
例如接收到標識為0x00000320的報文時,會對應選擇CH_320_BW75的結構體,調用handle CH_320()函數對數據進行處理,得到車輛的狀態信息。
為實驗CAN總線接收數據的正確性,模擬發送一組數據對其進行測試。對照協議書可知,車速,發動機轉速、冷卻液溫度這3個信號在結構體CH_320_BW75中;換擋位置、發動機運行狀態在結構體CH_2B0_BW75。模擬發送的數據如表1所示。

表1 模擬發送CAN數據表
對應的八位數據,控制部件的實際值可根據給出的公式確定,計算結果見表2所示。
實際值=(數據*精度值)+偏移量值 (1)

表2 計算結果

圖6 行車記錄儀計算結果
行車記錄儀計算結果如圖6所示。
經對比,手算結果和行車記錄儀計算結果相同,CAN總線數據傳輸安全可靠。
3.2 視頻存儲模塊軟件設計
本模塊設計主要實現對于四路視頻采集信息的視頻處理編碼等,并將處理后的數據存儲至硬盤或U盤中。視頻存儲模塊軟件流程圖如圖7所示。
為方便進行視頻回放,首先進行時鐘同步,然后檢測設備是否插入存儲卡,若檢測到存儲卡則調用start_storage Stream()函數開始視頻壓縮并存儲,同時判斷存儲卡是否拔出,拔出后調用stop_storage Stream()函數停止存儲程序。當數據存儲至硬盤后,釋放緩存,進入下一次存儲,以防止緩存不足導致漏秒現象的發生。存儲的文件名稱依次以視頻開始創建的時間命名,文件格式為.h264。

圖7 視頻存儲模塊軟件流程圖
測試過程中存儲于硬盤中的視頻文檔如圖8所示。

圖8 存儲文件截圖

圖9 視頻回放流程圖
3.3 視頻回放模塊軟件設計
視頻回放的實現過程和視頻存儲的過程剛好相反,調用了Hi3520D芯片的視頻解碼以及視頻輸出單元。軟件流程圖如圖9所示。
當按下回放鍵時,系統調用start_play back()函數開始視頻回放,直到再次按下回放鍵,調用stop_play back()函數停止回放。具體start_play back()函數工作流程為:(1)對系統初始化,開啟顯示器,配置視頻輸出通道。(2)依次對視頻解碼通道的碼流緩存大小、所支持的解碼圖像的最大分辨率、解碼協議類型和優先級進行配置。(3)調用SAMPLE_VOMM_VDEC_Bind VO()函數將視頻解碼和視頻輸出設備相關聯。(4)通過對文件名,存儲時間的檢索在硬盤中找到需要的文件,按照設置的傳輸方式發送至視頻解碼通道進行調用SAMPLE_VDEC_Send Stream()函數進行視頻解碼,完成回放。查找回放視頻文件界面如圖10所示。

圖10 查找視頻文件界面
為測試行車記錄儀的性能,對其進行了裝車測試,如圖11所示為裝車測試圖。測試結果表明系統運行良好,穩定。
本設計以CAN總線為基礎,實現了對車輛行駛過程中的信息采集和視頻記錄,為行車安全提供了有力的保障,具有較高的應用價值。

圖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總線數據記錄儀的研究與設計[D]. 太原:中北大學,2011.
[3] 劉火良,楊森. STM32庫開發實戰指南[M]. 北京:機械工業出版社,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總線通信設計[D]. 長春:吉林大學,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總線檢測系統的多接口設計研究[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