基于S3C2410的網絡式汽車防盜系統(tǒng)
引言
汽車的普及為人們的生活帶來了方便,同時也給人們提出了一大難題——汽車防盜。本設計是為了解決以往汽車防盜產品的缺點和不足而開發(fā)的集成傳感、報警和遠程圖像監(jiān)控3大功能模塊的汽車防盜報警系統(tǒng)。
系統(tǒng)工作原理及組成
本系統(tǒng)是把傳感器裝在車身的隱蔽位置,當有人走進監(jiān)控距離、車身移動或振動、車門被打開時,傳感器發(fā)出電信號,通過A/D轉換裝置,發(fā)送到主控制器??刂破鞲鶕盘柕膩碓矗褕缶譃?ldquo;有人靠近”、“車體振動”和“車門被開”3個等級,并用 GPRS/GSM終端將報警信息用短信的方式發(fā)送到用戶手機上。把“車門被開”作為高級別的報警,通知用戶的同時,啟動視頻驅動程序,通過車內的攝像頭把車內實況記錄下來,發(fā)送到車主手機。前兩種情況下系統(tǒng)不傳輸圖像,除非客戶端主動查看圖像,此時,系統(tǒng)幾乎不占用信道。當有入侵者進入防范區(qū)域時,MCU通過手機短信向用戶發(fā)出告警信息。由于此時發(fā)送的只是文字信息,信息量少,信息傳遞速度快。同時,系統(tǒng)將告警時的畫面存放在系統(tǒng)內的存儲器件中供用戶查看。
系統(tǒng)硬件設計
系統(tǒng)的總體框架
本系統(tǒng)硬件由以下幾個模塊組成:主控制器模塊、信息采集模塊(傳感器)、USB攝像頭模塊、無線通信模塊(GPRS MODEM )和圖像壓縮模塊。
主控制模塊
三星的S3C2410基于ARM內核,最大工作頻率能達到203MHz,能支持NAND閃存啟動,具有更高的性價比。另外,S3C2410在市場上己有很多成熟的應用,因此選用了S3C2410作為系統(tǒng)的CPU。
S3C410集成了一個LCD控制器(支持STN和TFT液晶顯示屏)、NAND閃存控制器、SDRAM控制器、3個通道的UART、4個通道的DMA、4個具有PWM功能的計時器和1個內部時鐘,以及8通道的10位ADC。
S3C2410還有很多豐富的外部接口,如觸摸屏、I2C總線、12S總線接口,以及2個US主機接口、1個USB設備接口、2個SPI接口、SD接口。在時鐘方面,S3C2410集成了一個具有日歷功能的RTC(實時控制)和具有PLL的芯片時鐘發(fā)生器。能產生200MHz的工作頻率。這樣的工作頻率能夠使處理器輕松運行WinCE、Linux等操作系統(tǒng),以及進行較為復雜的數據處理。
USB攝像頭
USB攝像頭主要由3部分構成:鏡頭、圖像傳感器和USB接口控制芯片。本系統(tǒng)采用的攝像頭是市面上比較常見的一款。它的USB接口控制芯片型號是301p,圖像傳感器芯片采用CMOS技術,因此性價比較高。該攝像頭可通過USB接口直接與主機通信,將采集到的圖像傳輸到主機。該芯片的特點如下:圖像最大為640×480像素,可根據不同攝像頭進行配置調整;圖像白平衡等參數可配置;可在Arm-Linux嵌入式系統(tǒng)下高效運行;通過I2C總線編程CMOS圖像傳感器內部的寄存器來改變缺省參數。
無線通信模塊
本系統(tǒng)采用GSM2406模塊,它接口簡單、使用方便,只需要單一的2.7V電源即可工作。采用AT指令對此模塊進行控制,初步計劃與控制器之間采用串口進行通信。同時,用此模塊實現語音通話功能。由于GPRS是基于IP協(xié)議的,所以,處理器在與GPRS網絡通信的時候要發(fā)送符合IP協(xié)議的數據包。
圖像壓縮模塊
因為視頻處理芯片1s輸出25幀圖像 ,一幀640×480的圖像大約2.45Mb,為了緩和存儲器的存儲壓力,圖像必須經過壓縮以提高存取速度。
系統(tǒng)設計采用集成JPEG編解碼的ZR36060圖像壓縮芯片。它可以方便地實現對視頻信號的實時壓縮/解壓縮。在進行壓縮時 ,ZR36060接收 YUV 4:2:2數字視頻信號,將其編碼為JPEG碼流輸出;在解壓縮時 ,它接收JPEG碼流 ,將其解碼為YUV 4:2:2數字視頻信號輸出。
ZR36060的接口分為3個部分,分別為視頻接口、代碼與主機接口和控制接口。視頻接口的功能是完成輸入/輸出視頻信號;代碼與主機接口的功能是通過主機完成對芯片控制字的初始化,并且在主動方式下,JPEG壓縮碼流也經過CODE[7:0]輸入/輸出;控制接口則完成一系列簡單的工作順序控制操作。兩種視頻同步方式為同步主模式和同步從模式。同步主模式指芯片內部產生所有的控制和定時信號;同步從模式則是芯片作為從機同步于一個外部的視頻源。
數據采集模塊
防盜系統(tǒng)的數據采集模塊由微波多普勒傳感器組、振動傳感器組、霍爾器件組和熱釋電紅外傳感器組組成,用于汽車防盜信息的采集以及數據的初步融合處理。數據采集模塊的構成如圖1所示。
圖1 數據采集模塊的構成
利用微波多普勒傳感器
對入侵范圍進行監(jiān)測
微波多普勒傳感器采用Agilis公司的HB100微波運動傳感器模塊。HB100的多普勒效應收發(fā)機模塊利用介質諧振振蕩器和微帶接插天線技術,可以實現低電流消耗、高溫穩(wěn)定性和高靈敏度。
利用加速度傳感器對車體振動與傾斜進行監(jiān)測
對車體的振動與傾斜狀況進行測量,可以對竊賊采用拖吊法盜竊車輛以及破壞車體的現象進行預警。由于加速度傳感器ADXL202E能夠測量0~5kHz、士2g范圍內的動態(tài)或靜態(tài)加速度:動態(tài)加速度的測量可以用于振動檢測,利用靜態(tài)的重力加速度作為輸入矢量,就可以確定物體的空間方向。因此可以利用ADXL202E同時對車體的振動和傾斜角度進行監(jiān)測。
利用霍爾開關器件
對車門的開關進行監(jiān)測
A3210E是霍爾效應開關器件。采用數字信號輸出,在南、北磁極的作用下均能產生霍爾效應:磁極靠近時,開關打開,輸出電平為低;磁極遠離時,開關關閉,輸出電平為高。該類傳感器的功耗非常低,如A3209E的功耗低達400mW,特別適合低功耗應用。
霍爾器件組的設計是將多個霍爾器件分布在汽車的4個車門,將車門打開時,霍爾器件會發(fā)出微弱的電信號,然后將每個開關器件的輸出信號送至器件組的局部決策中心進行融合,這里將4個車門的警報等級看作相同,可以直接采用硬件進行“或”運算,得到融合結果送至中央處理模塊。
設計中的關鍵技術
操作系統(tǒng)
Linux內核的配置
配置Linux內核的步驟如下:
首先,進入系統(tǒng)的源代碼目錄/Linux-2.4.18,運行menuconfig命令,系統(tǒng)就自動進入配置界面。界面很直觀,這里,需要分別對串口、網卡和攝像頭進行配置。
1. 網卡和串口的配置
內核映像的下載需要用到串口和網卡,必須對串口和網卡驅動進行修改,以保證能夠順利完成移植工作。為了使內核支持串口,在進行內核配置時,對串口必須要有以下的配置選項:
[*] ARM AMBA PLOT! serial port support
[*]Support for console on AMBA serial port
對網卡必須要有以下的內核配置選項:
*)Ethernet (10 or 100M)
Generic Media independent Interface device support
[*]SMC 91C9x/91Clxxx support
串口驅動程序位于源碼樹的///drivers/serial/amba.c,網卡驅動程序位于linux/drivers/net/ann/smc9lx.c和linux/drivers/net/arm/smc9lx.h。網卡的Memory map要比串口的簡單。
2. USB系統(tǒng)的配置
要啟用USB系統(tǒng),首先進入USB support一節(jié)并啟用Support for USB選項(對應模塊為usbcore.o)。接著,需要選擇USB主控制器驅動程序。選項是EHCI(對應模塊為ehci-hcd.o)、UHCI(對應模塊為usb-uhci.o)和OHCI(對應模塊為usb-ohci.o )。
每塊支持插入USB設備的主板都需要有USB主機控制器芯片。這個特別的芯片與插入系統(tǒng)的USB設備進行交互操作,并負責處理允許USB設備與系統(tǒng)其他部分通信所必需的所有低層次細節(jié)。
啟用了USB support和USB主機控制器驅動程序后,接下來應該啟用Preliminary USB devicefilesystem,然后啟用USB外圍設備的驅動程序。例如,為了啟用對USB攝像頭的支持,應該啟用USB Camera support。
一旦用新的內核重新引導后,目錄//proclbus/usb下應該有相應的USB設備信息。如若沒有信息,應輸入以下命令,將USB設備文件手動掛裝到//proc/bus/usb。
#mount-t usbdevfs none /proc/bus/usb
3. 攝像頭
本車載終端使用cam301p攝像頭,所以,在配制Linux系統(tǒng)內核時要選擇cam301p這一項。
Multimedia devices--->
<*>Video For Linux
Video For Linux--->
[*]V4L information in proc filesystem
USB support--->
<*>USB cam301p Camera support
編譯新內核
配置好內核后,進入//usr/src/linux-2.4.18目錄下執(zhí)行以下步驟:
1. $make dep,以正確設置所有的依賴關系。
2. $make clean,清除所有己存在的目標文件。如果忘記做這一步,生成的內核將會非常龐大。
3. $make zImage,生成一個經過壓縮的內核。
4. 運行make modules和make modules_install。
5. make install。
一旦為目標系統(tǒng)編譯了內核,通過使用引導裝載程序(bootloader),內核就被裝入到目標系統(tǒng)的內存。通過使用串口,引導裝載程序與主機通信,將內核傳送到目標機的DRAM中。將內核完全裝入目標機后,引導裝載程序將控制權交給內核。
圖像報警技術
圖像報警是系統(tǒng)的關鍵技術,也是系統(tǒng)的難點,通過對監(jiān)視圖像的分析和控制,實現報警和警情處理。該技術中融合了傳感器、數字化處理、攝像與圖像處理技術。報警流程圖如圖2所示。
圖2 報警流程圖
由于傳感器是一種微弱信號檢測設備,很容易受外界因素的影響而導致誤報警,有些通過用戶的努力是可以避免的;有些從原理上講是不可以避免的,如小動物和電磁波干擾引起的誤報警。為了盡量降低誤報率,該系統(tǒng)采用了一種數字化處理技術,即對模擬信號直接進行數字化處理,通過對各種入侵情況和干擾情況的綜合分析,在MCU上預先設定報警閾值。經傳感器采集到的信號送至MCU處理,超過報警閾值時,MCU啟動報警;在報警閾值以下則判為干擾信號,不報警。
結語
本設計以嵌入式系統(tǒng)為平臺,結合傳感器、數據采集、圖像處理和無線通信技術實現了對汽車的遠程監(jiān)控和防盜功能,有效減少了汽車報警系統(tǒng)的誤報。在理論和實踐上實現了對汽車全天候的圖像監(jiān)控。由于受網絡狀態(tài)的影響,報警信息可能會有延遲,隨著網絡和通信技術的發(fā)展,相信這些問題都會得到完美的解決。