1、設計方案
系統采用Altera公司提供的DEl開發平臺,檢測傳感器組包括:震動、加速度傾角傳感器,完成對汽車監控系統中的加速度、傾角、震動能量參數的測量。CMOS圖像傳感器完成圖像的采集工作,經FPGA圖像預處理后于VGA口實時監控,經JPEG編碼器將圖像進行壓縮。采用雙核Nios II進行系統控制和圖像處理運動目標檢測。射頻模塊完成GPRS無線通信,將圖像數據以及監控信息通過GPRS網絡發送到監控中心和用戶手機。其系統硬件框圖如圖l所示。
2、系統硬件設計
2.1 異構多核體系
在設計中,由于有大量的實時圖像數據運算,一塊CPU的計算速度無法滿足要求,甚至出現錯誤結果,這里采用兩塊NIOS II構成雙核系統,同時設計硬件DSP處理IP作為雙核系統的協處理器,共同完成任務。
Nios II Corel作為主控核,運行UCOS II操作系統,管理所有任務的調度工作,完成汽車傳感器的采集、加速度傾角震動的計算、短信彩信的發送等。Nios II Core2作為輔助核,完成采集連續兩幀的視頻圖像,并進行實時運動目標檢測算法。雙核之間的通信通過Mailbox IP核共享On Chip Memory實現。同時設計Sobel算子邊界檢測硬件圖像預處理模塊和JPEG圖像壓縮IP作為雙核系統的協處理器,構成異構多核的嵌入式系統。結構框圖如圖2所示。由于SDRAM作為視頻圖像的緩存,這里將Corel運行于SRAM。Core2運行于Flash,讀寫數據和堆棧存儲于SRAM中。
2.2 汽車傳感器采集板設計
汽車傳感器信號采集板采用AD公司的加速度傳感器ADXL202AQC,用于對汽車的X/Y方向加速度、傾角以及震動值進行測量,傳感器采集系統框圖如圖3所示。ADXL202AQC采用MEMS工藝制作,是一種低價格、低功耗、單芯片集成雙軸加速度傳感器,3~5.25V單電源供電,工作電流小于6mA,可以測量0~5kHz、±2g范圍內的動態或靜態加速度,60Hz時分辨率為2mg,可以數字、模擬信號形式輸出。
ADXL202AQC采集雙軸加速度值,通過Xout、Yout輸出數字量,以和加速度值對應的不同占空比方波輸出,將這兩路數字信號通過PIO口采集入 SOPC系統,通過Timer X、Timer Y定時器計算出精確的加速度值,NiosII Corel對兩個加速度值和重力加速度值確定三維空間的加速度傾角值。
同時通過Xfilt、Yfilt輸出加速度的模擬信號量,通過帶通濾波器將信號范圍控制在10~200Hz,微小的震動量可以通過,經放大、ADC轉換通過PIO口采集入SOPC系統,處理器對這些值進行計算,得到震動幅值。
2.3 圖像的采集、處理與壓縮
系統的圖像采集用Terasic公司的TRDB-D5M攝像頭,實際像素2592H×1944V,顏色陣列為RGB(紅綠藍)模式,數據傳送速度為96MHz時鐘下 96Mb/s,VGA(640×480)輸出幀率可達70f/s,內置12位ADC轉換器,3.3V單電源供電,I/O口電壓范圍1.7~3.1v。完全滿足系統要求,系統將攝像頭采集的信號經過Soble算子邊緣檢測預處理,同時通過VGA口實時監控,然后將圖像數據送Nios IICore2進行運動目標檢測,當監控區域內檢測到運動目標后,對圖像進行JPEG壓縮便于GPRS的數據發送。下面對各模塊加以介紹。
2.3.1 Sobel算子邊緣檢測預處理
圖像邊緣往往攜帶一幅圖像的大部分信息,是圖像基本的特征之一。圖像邊緣檢測是圖像處理、圖像分析、模式識別以及計算機視覺的基本步驟,其結果的正確性和可靠性將直接影響到機器視覺系統對客觀事物的理解。本系統采用經典的Sobel算子邊緣檢測算法,將圖像像素的左右、上下領域的灰度加權,根據在邊緣點處達到極值這一原理進行邊緣檢測。該算法處理的數據量大,通過軟件程序實現將比較慢,無法滿足實時性要求,本系統用Verilog設計硬件模塊實現該功能。將CMOS攝像頭采集的圖像進行預處理,其邊緣檢測結果送VGA實時監控(如圖4所示),同時圖像數據交NiosⅡCore2進行計算。設計中需要3×3的像素塊和大量乘加運算,這里用到Altem公司的Megafuncation)庫,如ALTSHIFT_TABS移位寄存器對三行像素進行緩沖,然后將各條緩沖線送入 ALTMULT ADD乘加塊。
2.3.2 運動目標檢測模塊
視頻圖像是三維圖像的二維投影。當三維圖像發生變化時,二維圖像也會發生相應的變化,通過對連續幀間的變化進行實時計算,當有運動目標時,會引起幀差。系統中采用10級幀差法,可以根據對檢測靈敏度的要求設置報警級別,同時對監控區的不同范圍采用不同的權值,以提高運動目標的判斷準確度。由于實行幀差算法要求很高的實時性,對連續采集的大量圖像信號要即時處理,否則影響測試結果,系統中用處理器NIOS II Core2單獨完成這份工作。用SDRAM作為攝像頭采集的圖像信號緩存,這里采用Teraisc公司提供的4 PortsSDRAM Controller-IP核,將CMOS攝像頭采集經轉換的RGB信號以16位存儲于SDRAM中。在SDRAM中存儲連續的兩幀圖像信號,通過4 Ports SDRAM Controller IP的兩個輸出Port(端口)同時傳輸給NIOS II Core2處理。其中的一個輸出Port再接VGA口。圖像存儲關系如圖5所示。
2.3.3 JPE6圖像壓縮IP核設計
為了便于GPRS的圖像傳輸,需要對圖像進行壓縮,這里采用JPEG壓縮標準對圖像進行壓縮,用Verflog設計JPEG圖像壓縮DSP模塊作為系統的協處理器,并掛接于系統Avalon總線。JPEG標準中壓縮算法的步驟包括二維DCT、量化、熵編碼等。其編碼過程框圖如圖6所示。
在設計編碼器時,先對圖像進行分塊,對RGB信號進行YCbCr轉換,YCbCr信號進行2D-DCT轉換,并同時進行ZigZag掃描將二維數據轉換為系數連續相關的一維數據。根據JPEG組織提供的量化表對數據進行量化壓縮,對量化結果進行VLC編碼和Haffman編碼得到壓縮結果。其中核心的部分是2D-DCT轉換,這里介紹其設計過程:離散余弦變換是一種正交變換,2D-DCT的變換公式如下:
系統采用矩陣乘法,查找系數表和矩陣轉置的方法實現2D-DCT。在設計過程中多次用到Altera提供的Megafuncation 庫:ALTMULT_ADD乘加運算、LPM_ADD_SUB交替加減運算、ALTSHIFT_TABS移位寄存器等加速設計。這里以《Image and Video CompressionStandard))中給出的測試矩陣RAW作為輸入,MATLAB的計算結果和Modelsim的時序仿真結果如圖7所示,結果表明誤差在l左右,完全滿足系統要求。
2.4 GPRS無線通信模塊
GPRS是一種基于GSM的新型移動分組數據承載業務,其速率可達到170kb/s。GPRS允許業務用戶在端到端分組轉移模式下發送和接收數據,而不需要利用電路交換模式的網絡資源,能夠確保分組模式數據應用的成本效益和網絡資源的有效利用。系統通過GPRS無線通信模塊發送中文短信和彩信,采用 SIMCOM公司的SIM300Z芯片。當系統檢測的加速度傾角或震動能量超過所設定的閾值時,將計算值以短信發送給用戶。當系統檢測到運動目標時,先發送短信提示,隨后將壓縮的JPEG圖片以彩信發送到客戶端。
3、系統軟件設計
3.1 系統的軟件層
系統的驅動程序都是基于HAL層的方式編寫,包括:GPRS通信模塊的驅動、檢測傳感器驅動、DMA驅動、JPEG編碼器驅動、CCD控制器驅動。主核NlOS II Corel上運行UC/OS II完成多任務的調度,PPP協議棧完成網絡傳輸功能。所有應用程序在操作系統的管理下工作,包括對檢測傳感器信號的采集應用程序、GPRS通信功能、圖像傳感器配置與采集、圖像數據處理分析存儲等。其軟件層圖如圖8所示。
3.2 UC/OS ll操作系統的多任務設計
為保證系統軟件的實時性,在Nios II Corel上運行UCOSⅡ實時操作系統,同時方便地管理系統多任務運行。這里設計7個任務和兩個中斷,任務以及中斷間的通信通過信號量、郵箱、全局變量等實現。任務及中斷間的關系如圖9所示。
Taskl:X/Y方向加速度、傾角信號采集計算及判斷;
Task2:震動能量信號的采集計算及判斷:
Fask3:運動目標檢測結果采集;
Task4:X/Y方向加速度、傾角提示短信發送:
Task5:震動能量提示短信發送;
Task6:運動目標檢測結果短信發送;
Task7:JEPG彩信發送:
ISR1:Nios II Core2發送來檢測到運動目標消息;
ISR2:JPEG編碼完成:
4、結束語
本方案通過汽車傳感器采集板采集信號,計算出X/Y方向加速度、傾角、震動能量,當超過所設定閾值時通過GPRS無線模塊發送信息給客戶端。CMOS攝像頭D5M完成視頻圖像的采集,做Sobel算子邊緣檢測圖像預處理,通過VGA實時輸出監控。對連續兩幀的信號做運動目標檢測,當檢測到運動異物時以短信提示用戶,同時拍攝下此時的照片,對照片進行JPEG圖像壓縮,進行GPRS彩信發送與客戶端。其設計特點為實時性強、誤報率低、傳輸速度快、穩定性好等,具有很好的實用性。