《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 列車車載嵌入式監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)
列車車載嵌入式監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)
來源:電子技術(shù)應(yīng)用2011年第12期
吳小飛,,馬永杰
(西北師范大學(xué) 物理與電子工程學(xué)院,甘肅 蘭州730070)
摘要: 通過分析車載監(jiān)控系統(tǒng)的功能,設(shè)計了系統(tǒng)的結(jié)構(gòu),以Hi3512為主控芯片,以嵌入式Linux為操作系統(tǒng),完成了車載嵌入式監(jiān)控系統(tǒng)的硬件和軟件設(shè)計。經(jīng)一年多的實際運(yùn)行測試,,該系統(tǒng)穩(wěn)定可靠,各項指標(biāo)均已經(jīng)達(dá)到設(shè)計要求,。
中圖分類號: TP277
文件標(biāo)識碼: B
文章編號: 0258-7998(2011)12-0025-04
Design and implementation of vehicle embedded monitoring system for train
Wu Xiaofei,,Ma Yongjie
College of Physics and Electronic Engineering,Westnorth Normal University,,Lanzhou 730070,,China
Abstract: On the basis of analysis of the function of the vehicle monitoring system, block diagram of the system is designed with Hi3512 as the main control chip, embedded Linux as operating system, which complete vehicle embedded control system hardware and software design. The system is actually tested and running more than a year,the results have to meet the design requirements.
Key words : embedded,;vehicle monitoring system,;Hi3512 main control chip;TAX


    在嵌入式車載監(jiān)控終端的應(yīng)用中,,設(shè)備運(yùn)行穩(wěn)定可靠,、監(jiān)控視頻壓縮率和分辨率及多種功能可根據(jù)需要定制等性能指標(biāo),已成該領(lǐng)域關(guān)鍵的應(yīng)用需求,。但已有的解決方案存在如下不足:(1)按照視頻服務(wù)器來設(shè)計[1],,只能點播回放而不能做進(jìn)一步的數(shù)據(jù)分析;(2)設(shè)備主要目的是用于定位移動設(shè)備的位置,,而對視頻和信息數(shù)據(jù)的處理不夠詳細(xì)[2],;(3)作為通用型的設(shè)計[3],并不適應(yīng)特定的環(huán)境。本文針對列車使用的特定環(huán)境及以上方案的不足,,設(shè)計了適應(yīng)列車特點的可定制,、可分析監(jiān)控數(shù)據(jù)的列車專用型監(jiān)控系統(tǒng),。
    本系統(tǒng)使用的主控芯片為Hi3512,,是深圳華為海思半導(dǎo)體有限公司推出的第二代嵌入式高性能通信多媒體處理芯片,其硬件支持H.264和MJPEG等多種協(xié)議[4],,可廣泛應(yīng)用于實時視頻通信,、數(shù)字圖像監(jiān)控、網(wǎng)絡(luò)攝像機(jī)等領(lǐng)域,。
1 列車車載監(jiān)控的總體結(jié)構(gòu)
    車載監(jiān)控主要用于汽車,,列車使用相對較少,主要原因在于列車上的電源系統(tǒng)差異較大,,同時列車對車載產(chǎn)品的安全等級要求較高,,需要經(jīng)過相關(guān)部門的嚴(yán)格檢驗才能使用。
    本文設(shè)計的嵌入式列車車載監(jiān)控系統(tǒng)由嵌入式列車車載錄像機(jī)和PC端錄像回放分析系統(tǒng)兩部分組成,。由于列車存在移動距離遠(yuǎn),、行駛地點偏僻等特點,使得實時監(jiān)控并不適用于列車,。同時考慮到列車的運(yùn)行時間較長,,因此選擇較低成本較大容量的硬盤作為監(jiān)控錄像存儲介質(zhì)。列車運(yùn)行到站后,,將硬盤取下到PC端做回放分析,。
    PC端回放分析軟件不僅要回放音視頻監(jiān)控畫面,更重要的是要取出混合于視頻中的機(jī)車號,、機(jī)車速度,、機(jī)車位置、車重,、計長等信息數(shù)據(jù)和各種報警信息,。這些信息數(shù)據(jù)和報警信息是通過串口從機(jī)車安全信息綜合監(jiān)控裝置(TAX箱)采集進(jìn)監(jiān)控系統(tǒng),然后與音視頻文件一起混合打包,,最后在PC端分離,,做進(jìn)一步分析。通常的機(jī)車TAX箱上能夠監(jiān)控到機(jī)車運(yùn)行狀況的各種信息,,并且可以實時顯示出來,,但是并不能保存下來。而通過本系統(tǒng),,就可以在回放視頻監(jiān)控畫面的同時,,回放機(jī)車運(yùn)行的一切操作信息,對分析監(jiān)控機(jī)車的運(yùn)行狀況,有非常重要的作用,。
    本文設(shè)計的列車車載監(jiān)控系統(tǒng),,可以同時錄制4路視頻,其中有2路視頻用于監(jiān)控機(jī)車主要部件的運(yùn)行狀況,,傳輸至駕駛艙進(jìn)行實時顯示,,并同時寫入錄像文件中;另2路視頻監(jiān)控并記錄駕駛員的操作,,以預(yù)防操作失誤,。這樣一個文件就能全面監(jiān)控列車的運(yùn)行信息、機(jī)器狀況,、駕駛員操作,、現(xiàn)場環(huán)境狀況等各種信息,為列車的運(yùn)行提供了安全保障,,可以滿足分析潛在隱患,、查找分析事故原因等多種功能要求。
2 嵌入式車載系統(tǒng)的硬件設(shè)計
    主控芯片采用華為海思的Hi3512,,該芯片是基于H.264 BP算法的視頻壓縮芯片,,采用ARM9+DSP+硬件加速引擎多核的高度集成的SoC架構(gòu),具備強(qiáng)大的視頻處理能力,。片內(nèi)具有獨立的16 KB的指令cache和16 KB的數(shù)據(jù)cache,,內(nèi)置MMU。內(nèi)嵌的DSP內(nèi)核具有3個ALU,,8級流水線設(shè)計,,支持MPEG-4 AVC/H.264等協(xié)議。
    整機(jī)硬件框圖如圖1所示,,系統(tǒng)采集到的模擬視頻信號和模擬音頻信號,,經(jīng)過A/D轉(zhuǎn)換后送入Hi3512芯片中的DSP進(jìn)行壓縮;同時又將采集到的數(shù)字信號進(jìn)行合成,, 經(jīng)D/A轉(zhuǎn)換后送入駕駛艙實時顯示,。車次號、機(jī)車號,、機(jī)車速度,、機(jī)車位置、車重,、計長等信息數(shù)據(jù)和各種警報信息等TAX箱數(shù)據(jù),,通過RS485傳入主控芯片,與壓縮好的音視頻數(shù)據(jù)一起混合打包和存儲,。

    本系統(tǒng)的轉(zhuǎn)換器采用Techwell公司的TW2835,,該芯片可以同時支持4路模擬音頻輸入,,4路模擬視頻輸入,1路模擬音頻輸出,,2路模擬視頻輸出,。Flash用于存儲機(jī)內(nèi)嵌入式Linux操作系統(tǒng)和應(yīng)用程序等相關(guān)文件。DDR2作為程序運(yùn)行內(nèi)存使用,。SATA接口與硬盤連接,,用于存儲錄像文件。RS232接口用于調(diào)試機(jī)內(nèi)軟件,。網(wǎng)絡(luò)接口用于下載機(jī)內(nèi)軟件,。USB接口可以升級機(jī)內(nèi)軟件,,也可以用于存儲或?qū)С鲣浵裎募?br/>     列車上的電源為110 V直流電源,。由于列車上的用電設(shè)備多,電路復(fù)雜,,因此,,列車上的用電設(shè)備對可靠性、穩(wěn)定性等要求很高,,需要經(jīng)過相關(guān)部門專業(yè)檢測才能使用,。本系統(tǒng)電源部分電路可以適應(yīng)輸入電壓在60 V~130 V之間的變化,峰值可過濾300 V,,穩(wěn)定輸出為12 V且已經(jīng)通過相關(guān)部門的檢測,。圖2是車載監(jiān)控系統(tǒng)電源部分的電路。

3 嵌入式車載系統(tǒng)的軟件設(shè)計
    該嵌入式列車車載監(jiān)控系統(tǒng)采用嵌入式Linux系統(tǒng)[5],,海思公司針對Hi3512芯片,,提供了一個Linux的軟件開發(fā)包(SDK)。SDK中包括基于U-boot1.1.4開發(fā)的Bootloader和基于標(biāo)準(zhǔn)Linux內(nèi)核2.6.14移植的Linux內(nèi)核文件,,以及基于busybox 1.1.2版本制作的根文件系統(tǒng),,也包含了一些常用的Linux命令。用戶程序開發(fā)庫則依賴于glibc 2.3.4版本,。同時還提供了音視頻開發(fā)工程的函數(shù)庫,,利用這些函數(shù)庫,用戶可以比較容易地直接使用硬件資源,,以快速開發(fā)充分利用芯片性能的用戶應(yīng)用程序,。
    本系統(tǒng)的應(yīng)用程序用來完成控制視頻的采集、壓縮,、存儲等功能,。應(yīng)用軟件采用模塊化設(shè)計,分為VI(VideoInput),、AI(AudioInput),、VIU(VideoInsertUserdate)等幾個模塊,,當(dāng)需要時可加載運(yùn)行。
    主控芯片硬件支持H.264編碼和解碼,,并且具有基于H.264視頻壓縮的一系列優(yōu)點[6],,本系統(tǒng)選擇H.264視頻編解碼處理視頻。音頻部分采用8 kHz采樣率,、16 bit精度的ADPCM(Adaptive Differential Pulse Modulation)編碼,。
    視頻、音頻,、信息數(shù)據(jù)分別按照各自規(guī)則壓縮編碼,、添加時間戳,最后混合打包成一個文件,。此文件可以在監(jiān)控機(jī)上回放,,也可以在PC端做進(jìn)一步分析。
    圖3為音視頻采集復(fù)合軟件模塊流程圖,,圖4為用戶數(shù)據(jù)插入軟件模塊流程圖,。

 

 

4 PC端分析回放系統(tǒng)設(shè)計
    錄制的音視頻文件有一個文件頭,其中保存一些固定信息,,如車次,、司機(jī)號、錄像文件通道,、制式,、碼率以及清晰度等,其后是交錯排列的音頻幀和視頻幀,。其中信息數(shù)據(jù)幀添加在視頻幀中,,根據(jù)H.264標(biāo)準(zhǔn),I幀包含的信息量大,,為關(guān)鍵幀,。以每秒25幀的錄制速度為例,每秒只有一幀I幀,,其余為P幀,,P幀包含的是與前一幀的差值。同時,,TAX箱中的數(shù)據(jù)并不是更新得很快,,所以在每秒1幀的I幀中插入TAX數(shù)據(jù),P幀為全部視頻數(shù)據(jù),,這樣就能夠滿足存儲所有的TAX箱數(shù)據(jù),,也大大減小了冗余數(shù)據(jù)的存儲。必要時也可添加TAX箱數(shù)據(jù)到P幀,,其中音,、視頻幀交錯排列,,音頻幀就可以不需要時間戳等與視頻幀同步的信息,解碼完一幀視頻數(shù)據(jù)后立即解碼音頻幀,,就可以做到音視頻同步,。
    視頻幀結(jié)構(gòu)如圖5所示。音頻幀結(jié)構(gòu)如圖6所示,。

    其中音視頻幀數(shù)據(jù)都是8 B對齊,,即包括幀頭在內(nèi),占用磁盤空間大小為8的整數(shù)倍個字節(jié),,當(dāng)一幀數(shù)據(jù)不是8的整數(shù)倍時,,末尾加0填充,這樣解碼時就可以快速搜索到幀頭,,在用戶拉動進(jìn)度條跳播時,,可以快速定位。
    根據(jù)視頻文件結(jié)構(gòu),,PC端視頻文件處理的主程序結(jié)構(gòu)如下:
while (1)
    {
    Int    nFrameType = 0;//取4 B的數(shù)據(jù),,標(biāo)識符以
//4 bit加以區(qū)別
        if(m_pVideoWnd->Search(filename,&nFrameType)==-1)
            break;
        switch (nFrameType)
        {
        case FRAME_I_TYPE://視頻I幀幀頭,標(biāo)識符x0dc
            {
                Userdate();  //提取用戶數(shù)據(jù),,如TAX箱數(shù)據(jù)
                Displayframe();  //送視頻解碼器,
//以及直接顯示到屏幕
            }
            break;
        case FRAME_P_TYPE://視頻P幀幀頭,,標(biāo)識符x1dc
            {
                Displayframe()//查找到本幀前一個I幀,,
//然后送解碼器并顯示
            }
            break;
        case FRAME_A_TYPE://音頻幀頭,標(biāo)識符x3wb
            {
                Playsound();//提取音頻幀數(shù)據(jù),,
//送音頻解碼器
            }
            break;
        default:
            break;
        }
    }
    其中,,視頻幀中的TAX箱數(shù)據(jù)和視頻數(shù)據(jù)是放在一起的,當(dāng)判斷出是視頻幀后,,程序立即進(jìn)入TAX箱數(shù)據(jù)提取,,提取的TAX箱數(shù)據(jù)送到TAX箱數(shù)據(jù)的處理線程,將車次,、司機(jī)號,、速度、公里標(biāo)等信息輸出到屏幕上相應(yīng)位置,。提取出TAX箱數(shù)據(jù)后的視頻幀數(shù)據(jù),,送入H.264視頻解碼器,視頻解碼后輸出的是YUV視頻數(shù)據(jù),,再借助微軟公司的DirectX SDK9.0中的Directshow,,將視頻YUV數(shù)據(jù)繪制到用戶屏幕。
    判斷出是音頻幀后,,將音頻幀中的音頻數(shù)據(jù),,送入音頻解碼器,。注意音頻幀數(shù)據(jù)中還包含有音頻幀頭,其幀頭中包含的信息是幀長度和循環(huán)次數(shù)信息,,解碼后輸出的是脈碼調(diào)制PCM(Pulse Code Modulation)錄音原始音頻采樣數(shù)據(jù),。PCM音頻數(shù)據(jù)也通過微軟公司的DirectX SDK9.0中的Directsound進(jìn)行回放。需要注意的是,,音頻壓縮幀是160 B/幀,,解碼后是480 B/幀。逐幀音頻回放時會有停頓的情況,,若將多幀融合,,再做回放,又會產(chǎn)生明顯的音視頻不同步現(xiàn)象,,所以最終是將兩幀音頻合在一起一次回放,。
    PC端軟件是基于Microsoft Visual Studio 2005 MFC文檔/視圖結(jié)構(gòu)開發(fā)的,其中,,視頻解碼和音頻解碼均使用了海思公司提供的解碼庫,,音視頻回放使用了DirectX SDK9.0。
    本文給出了一種基于Hi3512芯片的嵌入式列車車載監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)方案,,Hi3512采用ASIC芯片硬件實現(xiàn)視頻的編解碼,,與采用ARM芯片加DSP軟件編解碼方案相比,開發(fā)難度和成本都比較低,。使用與Hi3512芯片相配合的操作系統(tǒng)和應(yīng)用軟件開發(fā)包,,進(jìn)一步降低了系統(tǒng)的開發(fā)周期和成本。同時,,本文還介紹了一種視頻信號中混合機(jī)車TAX箱信號的方法以及視頻信號混合機(jī)車運(yùn)行信號的設(shè)計和回放分析提取的具體流程,。近一年的調(diào)試和實際運(yùn)行測試表明,本設(shè)計產(chǎn)品能夠完成最初的設(shè)計要求,,可以規(guī)?;褂茫袕V泛的應(yīng)用前景,。
參考文獻(xiàn)
[1] 孫戈,,郭小玄.基于Hi3510的Linux嵌入式視頻服務(wù)器的設(shè)計[J].煤炭技術(shù),2009,,28(11):146-148.
[2] 周輝,,葉樺,仰燕蘭.基于WebGIS與車載移動視頻的智能車輛監(jiān)控系統(tǒng)[J].東南大學(xué)學(xué)報,,2010,,40:192-197.
[3] 李淵,于海勛.基于Hi3510的車載監(jiān)控系統(tǒng)的設(shè)計[J].微計算機(jī)應(yīng)用,,2008,,29(1):67-69.
[4] 深圳市海思半導(dǎo)體有限公司.Hi3511/Hi3512硬件設(shè)計用戶指南[z].2009.
[5] 深圳市海思半導(dǎo)體有限公司.Hi3511/Hi3512_linux開發(fā)環(huán)境用戶指南[z].2008.
[6] 畢厚杰.新一代視頻壓縮標(biāo)準(zhǔn)—H.264/AVC[M].北京:人民郵電出版社,,2005.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。