王玨
(廣東東箭汽車用品制造有限公司,廣東佛山528315)
汽車行駛記錄儀外圍擴展器的設(shè)計與開發(fā)
王玨
(廣東東箭汽車用品制造有限公司,廣東佛山528315)
汽車行駛記錄儀外圍擴展器是在車輛行駛狀態(tài)記錄儀的基礎(chǔ)上,增加了視頻監(jiān)控、語言播報、文字信息處理以及司機身份識別等功能的電子器件。介紹了基于ARM7的擴展器軟硬件系統(tǒng)設(shè)計開發(fā)關(guān)鍵技術(shù)及其解決方案。借鑒C++面向?qū)ο蟮乃枷?,提出了嵌入式系統(tǒng)開發(fā)的結(jié)構(gòu)模塊加功能核設(shè)計思想。該設(shè)計思想及實現(xiàn)方法對于嵌入式軟件開發(fā)有參考價值。
汽車行駛記錄儀;嵌入式系統(tǒng);面向?qū)ο螅荒K
車輛行駛記錄儀或汽車黑匣子主要借助于GPS技術(shù)和網(wǎng)絡(luò)以及軟件技術(shù)將車輛行駛的基本信息記錄下來。車輛行駛記錄儀一問世即顯示出了強大的生命力和廣闊的應(yīng)用前景,并產(chǎn)生了巨大的社會效益和經(jīng)濟效益。我國汽車行駛記錄儀的研究開發(fā)始于上世紀(jì)80年代[1-3],經(jīng)過數(shù)十年的發(fā)展,目前已廣泛應(yīng)用于各種營運車輛和小車。
早前的汽車行駛記錄儀沒有國家標(biāo)準(zhǔn),導(dǎo)致相應(yīng)的產(chǎn)品處于無序開發(fā)狀態(tài),研究成果主要集中在嵌入式、ARM結(jié)構(gòu)以及Linux環(huán)境方面[4]。從2009年開始,相關(guān)的產(chǎn)品演變成車載終端,并向多功能化發(fā)展,分別在數(shù)據(jù)存儲、圖像處理、攝像、3G通信、數(shù)據(jù)統(tǒng)計分析等方面增強了功能。但由于缺乏標(biāo)準(zhǔn),研究趨于分散化,主要在總體結(jié)構(gòu)的優(yōu)化[5-6]、基于ARM9的結(jié)構(gòu)設(shè)計優(yōu)化[7-8]、多功能擴展設(shè)計[9-10]以及導(dǎo)航軟件等方面開展研究。2012年,交通部發(fā)布了《GB/T 1.1-2012汽車行駛記錄儀》(簡稱部標(biāo)協(xié)議),從而統(tǒng)一了記錄儀的技術(shù)規(guī)范。
車載終端擴展器本質(zhì)上是多功能車載終端的一個標(biāo)準(zhǔn)化產(chǎn)品,它是為了滿足公交車輛的營運與管理要求與車載主機接口的一個獨立系統(tǒng),主要與主機進行信息交換,以擴展車載主機在視頻監(jiān)控、語言播報、簡單文字信息、司機身份識別、連接電子票箱、歷史軌跡查詢、公交線路設(shè)定、事故疑點信息、出租車調(diào)度以及公共事件管理等方面的功能。近幾年,筆者的工作主要是開發(fā)佛山公交車載終端,即佛山公交車行駛記錄儀外圍擴展器的開發(fā),本文總結(jié)了開發(fā)工作的幾個關(guān)鍵技術(shù)及其實現(xiàn)的方法。
外圍擴展器擴展了車載主機的功能,使主機在公交出租行業(yè)中,能夠發(fā)揮更大的效益。擴展器與車載主機相連結(jié),它是具備數(shù)據(jù)收集與處理、外設(shè)對接、語音視頻處理、簡單文字處理以及司機調(diào)度管理等功能的車載輔助設(shè)備,它與主機之間的關(guān)系如圖1所示。
圖1 公交主機外圍擴展器功能示意圖
根據(jù)公交擴展器的功能要求,擴展器主要包括信號輸入、數(shù)據(jù)保存和處理、數(shù)據(jù)顯示、數(shù)據(jù)通信、復(fù)位電路、掉電保護以及其他輔助功能,相應(yīng)的設(shè)計必須通過嵌入式系統(tǒng)。參考國內(nèi)外的普遍做法,擴展器的硬件系統(tǒng)以STM32處理器為核心,對外部模擬輸入、數(shù)字輸入以及開關(guān)量輸入的信號進行采集。將需要保存的數(shù)據(jù)經(jīng)過處理后存于內(nèi)部大容量存儲器。硬件系統(tǒng)的總體結(jié)構(gòu)設(shè)計如圖2所示。
圖2 擴展器硬件系統(tǒng)的總體結(jié)構(gòu)示意圖
由圖2可以看出,擴展器設(shè)備除了能夠與主機通信以外,還能夠在車輛行駛的環(huán)境下,隨著車輛的運轉(zhuǎn)而運作。利用CPU-STM32芯片的串口映射功能,對接來自不同廠家的不同外圍設(shè)備進行接口,使得公交出租車輛的電子設(shè)備能夠統(tǒng)一管理而又獨立運行。如果其中一個設(shè)備出現(xiàn)故障,則售后管理人員只需將替代者連接到擴展器對應(yīng)接口的設(shè)備替換即可,而不會影響其他外圍設(shè)備的工作。
軟件系統(tǒng)是支持?jǐn)U展器工作的基礎(chǔ)。除了需要服從硬件系統(tǒng)的要求以外,軟件還需要符合用戶的功能需求。鑒于用戶需求的豐富性,本文僅介紹驅(qū)動擴展器工作的部分。由于擴展器的硬件是基于ARM7系統(tǒng),因此驅(qū)動系統(tǒng)包括10個主要模塊,分別是:
(1)主控模塊:用于協(xié)調(diào)主程序的重啟、恢復(fù)出廠設(shè)置。
(2)中斷處理模塊:用于主程序中的時間中斷、定時處理。
(3)數(shù)據(jù)處理模塊:用于各個外部設(shè)備與擴展器的數(shù)據(jù)采集、數(shù)據(jù)解析。
(4)顯示模塊:向LED、導(dǎo)航屏傳輸數(shù)字信號和模擬信號。
(5)故障和報警模塊:用于處理特殊事件和報警類事故信息。
(6)GPS定位模塊:用于GPS實現(xiàn)衛(wèi)星定位,并接受衛(wèi)星數(shù)據(jù)。
(7)數(shù)據(jù)存儲模塊:完成常規(guī)數(shù)據(jù)、一些重要數(shù)據(jù)以及異常時的數(shù)據(jù)記錄。
(8)硬件初始化模塊:完成軟硬件初始化以及系統(tǒng)參數(shù)設(shè)置。
(9)PC機通信模塊:用于參數(shù)設(shè)置和測試通信。
(10)ARM平臺接口模塊:實現(xiàn)測試、數(shù)據(jù)轉(zhuǎn)發(fā)、外圍擴展接口。
上述各個模塊之間通過中斷、時鐘、循環(huán)相互調(diào)用的關(guān)系,實現(xiàn)擴展器在其工作過程中的邏輯原理,主要程序及子程序流程圖如圖3所示。
圖3 軟件系統(tǒng)各結(jié)構(gòu)模塊的數(shù)據(jù)關(guān)聯(lián)關(guān)系示意圖
軟件設(shè)計方面,Boot-APP的系統(tǒng)布局、系統(tǒng)控制優(yōu)先級的設(shè)計以及數(shù)據(jù)透傳機制的設(shè)計是十分關(guān)鍵的技術(shù)問題。
(1)Boot-APP的系統(tǒng)布局。根據(jù)擴展器設(shè)備的運行特點,將整體程序設(shè)計成兩個大的部分,分別是BOOT和APP程序。BOOT是擴展器的底層程序,在ARM7中其地址在0x8000之前,負(fù)責(zé)完成擴展器的初始化工作,然后引導(dǎo)擴展器執(zhí)行功能區(qū)的APP。APP應(yīng)用層程序,將在大循環(huán)中實現(xiàn)擴展器的全部功能工作,同時擴展器在準(zhǔn)備遠(yuǎn)程更新程序版本時,它將從大循環(huán)中跳出,進入BOOT區(qū)域,升級后回到APP區(qū)域,運行新的更新程序。圖4給出了這種Boot-APP分工布局原理圖。
圖4 Boot-APP分工布局原理圖
(2)系統(tǒng)控制優(yōu)先級的設(shè)計。在APP應(yīng)用程序中,大循環(huán)首先需要執(zhí)行的是擴展器與各個串口之間的數(shù)據(jù)通信。只有在通訊良好的情況下,才能夠處理來自外部設(shè)備的數(shù)據(jù)。因為擴展器與不同外部對接設(shè)備,可能在短時間內(nèi)發(fā)送不同廠家協(xié)議的數(shù)據(jù)到達(dá)CPU,導(dǎo)致數(shù)據(jù)堵塞。因此數(shù)據(jù)處理機制尤為重要,它是全部功能優(yōu)先級判定的依據(jù)。此外,擴展器將根據(jù)不同外部設(shè)備的需求分類處理不同的信息。例如,它在同一時間收到了攝像頭的圖片抓拍數(shù)據(jù)和投幣機的投幣信息,此時需要將這些數(shù)據(jù)送達(dá)監(jiān)控中心或后臺服務(wù)器。由于攝像頭的圖片數(shù)據(jù)大量連續(xù),占據(jù)很多時間,而來自投幣機的數(shù)據(jù)則只需很少時間處理。因此需要將事件分級建立優(yōu)先機制。優(yōu)先處理機制如圖5所示。限于篇幅,這里略去具體分級的介紹。
(3)數(shù)據(jù)透傳機制。擴展器對接不同的外部設(shè)備,這就需要擴展器與主機通信的過程中采用新的框架協(xié)議以區(qū)別來自不同設(shè)備的數(shù)據(jù)含義。該框架協(xié)議既要符合廣東省和國家規(guī)定的車輛部標(biāo)協(xié)議,又要統(tǒng)一不同外部設(shè)備的不同協(xié)議。為此筆者設(shè)計了雙重嵌套的方式,將外部設(shè)備的數(shù)據(jù)透傳給主機。例如,將來自LED顯示屏的數(shù)據(jù)和來自客流統(tǒng)計的數(shù)據(jù),按其各自的協(xié)議發(fā)送到達(dá)擴展器后,擴展器將其變換具備透明傳輸?shù)牟繕?biāo)協(xié)議發(fā)送給主機。主機只需將這些數(shù)據(jù)依透傳方式反編碼發(fā)給后臺服務(wù)器。圖6給出了這種內(nèi)部透傳機制的作業(yè)原理示意圖。
圖5 數(shù)據(jù)處理的優(yōu)先級控制機制示意圖
圖6 內(nèi)部數(shù)據(jù)透傳機制作業(yè)原理圖
由于嵌入式系統(tǒng)的資源有限,因而無法像PC機的Windows程序設(shè)計一樣給每個功能模塊以足夠的資源。硬件需要結(jié)合嵌入式的作業(yè)特征來設(shè)計。本系統(tǒng)設(shè)計中,功能模塊是處理某個具體功能需求信息的信息處理方法集合,它由一個具體功能信息分析處理內(nèi)核與單一或者多個基礎(chǔ)結(jié)構(gòu)模塊組合而成。可見,每個功能模塊都具有一個分析計算特定信息的內(nèi)核,并且需要一個或者多個結(jié)構(gòu)模塊協(xié)同才能完成其信息處理的功能。功能模塊與結(jié)構(gòu)模塊之間存在一個1對多的映射關(guān)系,如圖7所示。
例如,擴展器的視頻監(jiān)控功能模塊,主要用于將視頻設(shè)備的圖片、圖像信息轉(zhuǎn)換成為可視化的模擬信號。其中涉及主控模塊、中斷處理模塊、顯示模塊、數(shù)據(jù)采集模塊、數(shù)據(jù)存儲模塊以及圖片圖像信息轉(zhuǎn)換,如圖8所示。圖8中,圓角矩形表示功能核部分,方角矩形表示結(jié)構(gòu)模塊部分。
圖7 功能模塊的組成特征
圖8 視頻監(jiān)控功能模塊組成示意圖
基于這樣的分析,硬件系統(tǒng)采用了面向?qū)ο蟮乃枷?,即將功能模塊定義為功能核+一系列結(jié)構(gòu)模塊,類似面向?qū)ο箢愔械乃接泻凸袑傩?,如圖9所示。
圖9 功能模塊的組成特征示意圖
采用這樣的設(shè)計,功能核不受結(jié)構(gòu)模塊的影響,二者之間僅通過通訊聯(lián)絡(luò),可實現(xiàn)分包任務(wù),也可使系統(tǒng)占有最小的資源。這也是嵌入式程序設(shè)計的基本要求。在此基礎(chǔ)上,將相應(yīng)的軟件系統(tǒng)設(shè)計成若干個公有的基礎(chǔ)結(jié)構(gòu)模塊與處理特定信息的功能核組成。這樣一來實現(xiàn)軟硬件的協(xié)調(diào)設(shè)計。限于篇幅,相關(guān)的實現(xiàn)將在另文給出,這里不再贅述。
應(yīng)用于公交出租的行駛記錄儀外圍擴展器,可加強車載終端的功能,實現(xiàn)標(biāo)準(zhǔn)化和模塊化。借鑒C++面向?qū)ο蟮乃枷?,筆者提出了嵌入式系統(tǒng)開發(fā)的結(jié)構(gòu)模塊加功能核實現(xiàn)功能模塊的設(shè)計思想和方法,對過去的工作有很大的指導(dǎo)和促進,它不僅能讓技術(shù)人員從單一技術(shù)的角度從事開發(fā),還能從整體和全局考慮技術(shù)方案。該設(shè)計思想對于嵌入式軟件開發(fā)有參考價值。
[1]徐忠陽,鄒勝勇,俞宇萍.交通信息化——汽車行駛記錄儀和車載GPS的應(yīng)用[J].交通標(biāo)準(zhǔn)化,2005(7):124-126.
[2]張明明,陳天翼,樊晶光,等.我國汽車行駛記錄儀應(yīng)用現(xiàn)狀及對策建議[J].中國安全生產(chǎn)科學(xué)技術(shù),2006,2(4):91-95.
[3]潘寒盡,邱學(xué)軍.GPS發(fā)展現(xiàn)狀及其軍事應(yīng)用[J].數(shù)字通信世界,2011(2):64-66.
[4]彭李明,連迅.多功能汽車行駛記錄儀的系統(tǒng)設(shè)計[J].電子測量技術(shù),2009,34(3):143-147.
[5]龐丹,任曉奎.汽車行駛記錄儀的研究設(shè)計[J].微計算機信息,2010,26(8):145-147.
[6]陳艷海.基于Arm-Linux的汽車行駛記錄儀的設(shè)計[J].中國科技信息,2011(13):84,89.
[7]呂思楊.基于ARM9平臺的GPS定位系統(tǒng)的研究與實現(xiàn)[D].長春:吉林大學(xué),2012.
[8]高衛(wèi)燕.基于ARM_Linux的公交車載GPS定位終端系統(tǒng)設(shè)計[D].重慶:重慶大學(xué),2012.
[9]羅亞男.車載導(dǎo)航系統(tǒng)關(guān)鍵技術(shù)的研究與實現(xiàn)[D].哈爾濱:哈爾濱工程大學(xué),2013.
[10]賀大勝.智能交通發(fā)展現(xiàn)狀及在我國的應(yīng)用研究[D].西安:長安大學(xué),2013.
Design and development of periphery expander for vehicle traveling data recorder
WANGJue
(Guangdong East Arrow Auto Supplies Manufacturing Co.Ltd,Foshan 528315,China)
Periphery expander of vehicle traveling data recorder is an electronic device that adds extra functions to vehicle traveling data recorder in video-monitoring,voice-broadcasting,text-message treating,driver-identification,etc.This article introduces the key issues of developing software and hardware of the periphery expander on ARM 7 system.Based on the thought of C++object oriented programming,the article puts forwards a new embedded-system-developing idea of developing an embedded-system module with a functional kernel module and several constructive modules.The idea and thought are a valuable reference in embedded-system developments.
vehicle traveling data recorder;embedded system;object oriented;module
U463.859
A
2016-12-01
王 玨(1988-),男,湖北安陸人,廣東東箭汽車用品制造有限公司工程師。
1008-0171(2017)05-0060-06
【責(zé)任編輯:王桂珍 foshanwgzh@163.com】