摘 要: 針對校車經常發生交通事故的現狀,提出了校車監控終端系統的設計方案。該系統以處理器S3C6410為硬件核心,以WinCE6.0操作系統為軟件平臺,通過USB攝像頭實現視頻采集并對校車進行無線網絡實時監控;該系統也利用MMA7361L加速度傳感器和STC12C5410AD單片機采集加速度信號,監控服務器端可通過設定加速度報警閾值來控制加速度的輸出,實現了校車的加速度測量與監控。
關鍵詞: MMA7361L;視頻采集;三軸加速度;串口通信
隨著社會經濟的快速發展和人們生活水平的不斷提高,車輛在人們生活中的地位越來越重要,我國車輛的保有量也持續增加。與此同時,交通事故也在頻繁發生,尤其是近年來的多次重大校車事故,對道路交通和人身安全造成極大的影響[1],而且到目前為止還沒有一套完整的校車安全監管實施方案。因此,針對各種機動車輛特別是校車,建立良好的安全監控平臺十分必要。
本文將視頻采集技術與加速度采集技術相結合,通過無線網絡將校車的視頻數據和加速度數據傳輸到服務器端。該系統可對校車進行實時視頻監控和加速度監控,及時掌握校車的行駛狀況,防止超載,必要時進行簡單控制從而減少校車事故的發生。
1 系統總體設計
該系統以基于ARM11的S3C6410處理器為硬件核心。S3C6410處理器主頻667 MHz以上,內置完備的外部資源,包括SDRAM控制器、NAND Flash控制器、LCD控制器、支持4通道的UART、通用I/O口、I2C總線接口、高速USB OTG、SD Host和USB Host等[2]。
系統選用開發相對容易、實時性和穩定性良好、具有豐富的API等特點的WinCE6.0操作系統為軟件開發平臺。
校車監控終端系統硬件結構圖如圖1所示。系統主要由主控制器模塊、視頻采集模塊、加速度采集及報警電路模塊和無線傳輸模塊四部分組成。
視頻采集部分采用中星微的USB攝像頭ZC0301,它由CMOS圖像傳感器和攝像頭控制器組成。加速度采集部分采用Freescale公司的三軸加速度傳感器MMA7361L和宏晶科技的STC12C5410AD單片機。MMA7361L可采集到三軸加速度的模擬電壓信號,然后通過STC12C5410AD內置的A/D轉換將模擬信號轉換為數字信號。S3C6410處理器可接收攝像頭的視頻信號并采集加速度數據,利用內部的編碼器對視頻進行基于H.264的壓縮編碼。
2 視頻采集模塊硬件設計
2.1 攝像頭硬件電路結構
CMOS圖像傳感器和攝像頭控制器兩部分間的數據和命令通過總線進行傳輸。攝像頭內部有A/D轉換芯片和DSP芯片,USB攝像頭ZC0301的硬件結構如圖2所示。
3 加速度采集與報警模塊硬件設計
MMA7361L[3]是一種低成本微型電容式三軸向高靈敏度加速度傳感器芯片??蛇x擇1.5 g和6 g兩種量程。MMA7361L內部采用開關電容濾波器,有時鐘噪聲產生,需在XOUT、YOUT、和ZOUT 3個輸出端分別接3.3 nF的電容來減少時鐘噪聲。
加速度數據處理單元選用具有8路高速10位A/D轉換的STC12C5410AD芯片,具有高速、高可靠、寬電壓、低功耗和超強抗干擾等特點,芯片上的資源可以滿足功能需求,增強系統的抗干擾能力,降低系統的開發難度,提高系統的穩定性能。加速度采集與報警系統電路圖如圖4所示。
圖4(a)為STC12C5410AD單片機報警電路原理圖,電源選用5 V穩壓電源供電,由于設計中用到了串行通信,對系統時鐘有較高的要求,所以用外接晶振電路提供時鐘,晶振為11.059 6 MHz,采用聲光報警,當加速度值超過設定的上限報警值時自動報警[4]。
圖4(b)為MMA7361L的電路原理圖。MMA7361L輸出的三軸模擬加速度信號可通過STC12C5410AD的3路ADC通道進行A/D轉換[4];采用3.3 V電壓給MMA7361L供電,因此加入一個5 V轉3.3 V的RT9161電路,穩壓芯片RT9161具有更低的壓降,更快的負載相應速度,適合高噪聲電源環境,降低噪聲的干擾,提高A/D轉換的精確度。STC12C5410AD的P1.4端口控制MMA7361L是否休眠,當在Sleep引腳上輸入一個低電平信號時,傳感器處于休眠模式,這時傳感器停止數據采集,而Sleep置高電平時傳感器開始恢復工作。在設計加速度采集硬件電路時,為了最大化地使用MMA7361L加速度芯片,將0g-Detect、g-Select和Self Test三個引腳均由單片機IO口來控制,可以在不同的環境下,靈活改變加速度的測量范圍。
圖4(c)為串口電路原理圖,采集到的三軸加速度數據可通過RS232串口發送到S3C6410,然后通過無線網絡傳輸到監控端。
4 系統軟件設計
4.1 視頻采集軟件設計
本文采用WinCE6.0操作系統下的流接口函數來實現USB驅動程序[5]。在流接口驅動函數中,CIS_Init( )函數用來對USB攝像頭驅動進行初始化, CIS_Open( )函數打開USB攝像頭的驅動程序,應用程序通過CreateFile( )函數調用該函數。CIS_IOControl( )接口函數用于向設備發送命令,應用程序采用DeviceIOContol( )函數傳遞不同的參數給CIS_IOControl( )函數。
接著調用CAM_Init( )函數來初始化USB攝像頭,CAM_IOControl( )函數對攝像頭進行控制,這些IO控制指令通過USB通道發送來控制USB攝像頭[6]。
視頻采集采用多線程和內存映射的方式,創建GetYUVThread線程采集視頻幀,創建H264EncodeThread線程把視頻幀映射到H.264編碼器的buffer中,加快了視頻讀取的速度,節省了CPU的處理時間和帶寬資源。視頻采集流程圖如圖5所示。
視頻監控流程圖如圖6所示[7]。
4.2 加速度采集軟件設計
由于車輛在制動時,其加速度變化范圍大約在±1 g,因此選擇MMA7361L的量程范圍為±1.5 g,此時加速度傳感器靈敏度為800 mV/g。單片機P1.6引腳置為低電平,當MMA7361Sleep=1時,MMA7361L加速度傳感器開始工作,可以定時采集車輛的三軸加速度的模擬電壓信號[8],STC12C5410AD對采集到的模擬信號進行A/D轉換,數據處理后(加速度單位:m/s2)發送到主控制器,然后主控制器創建TCP Socket線程,通過無線網絡把數據包傳輸到監控服務器端[9]。加速度采集流程圖如圖7所示。
參考文獻
[1] 張金玲.基于智能交通的車載平臺的設計與實現[D].北京:北京郵電大學,2011.
[2] Samsung.S3C6410 User′s Manual[S].2009.
[3] Freescale Semiconductor.MMA7361L Datasheet[S].2008.
[4] 何小虎,李現明.基于STC12C5410AD單片機的傾角監控系統設計[J].工業控制計算機,2010,23(10):97-98.
[5] 汪冰.Windows CE嵌入式高級編程及其實例詳解[M].北京:中國水利水電出版社,2008.
[6] Liang Huijun,Wang Sheng.Network video capture based on ARM S3C2410 and streaming media technology[J]. Computer,2007,23(5):163-167.
[7] Ye Hua,Ding Gang.Digital vehicle monitoring system based on 3G for public security[C].Computer and Information Application(ICCIA),2010:146-148.
[8] Jin Anmin,Yin Bin,MORREN G,et al.Performance evaluation of a tri-axial accelerometry-based respiration monitoring for ambient assisted living[C].31st Annual International Conference of the IEEE EMBS,2009:5677-5680.