《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于ARM11平臺(tái)和GPRS遠(yuǎn)程 無線圖像報(bào)警系統(tǒng)的研究
基于ARM11平臺(tái)和GPRS遠(yuǎn)程 無線圖像報(bào)警系統(tǒng)的研究
2015年微型機(jī)與應(yīng)用第2期
徐媛媛,匡 斐,,鐘璐遠(yuǎn)
(西南石油大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,,四川 成都 610500)
摘要: 設(shè)計(jì)和實(shí)現(xiàn)了一種基于ARM11平臺(tái)和GPRS通信技術(shù)的無線遠(yuǎn)程圖像報(bào)警系統(tǒng),論述了系統(tǒng)的總體結(jié)構(gòu)及其設(shè)計(jì)思路,。利用嵌入式ARM11和GPRS協(xié)議進(jìn)行數(shù)字圖像處理,,完成了圖像報(bào)警終端的軟硬件設(shè)計(jì),使報(bào)警終端通過無線網(wǎng)絡(luò)與手機(jī)等設(shè)備連接,,最終實(shí)現(xiàn)實(shí)時(shí)截圖報(bào)警監(jiān)控的功能,。
Abstract:
Key words :

  摘  要: 設(shè)計(jì)和實(shí)現(xiàn)了一種基于ARM11平臺(tái)和GPRS通信技術(shù)的無線遠(yuǎn)程圖像報(bào)警系統(tǒng),論述了系統(tǒng)的總體結(jié)構(gòu)及其設(shè)計(jì)思路,。利用嵌入式ARM11和GPRS協(xié)議進(jìn)行數(shù)字圖像處理,,完成了圖像報(bào)警終端的軟硬件設(shè)計(jì),使報(bào)警終端通過無線網(wǎng)絡(luò)與手機(jī)等設(shè)備連接,,最終實(shí)現(xiàn)實(shí)時(shí)截圖報(bào)警監(jiān)控的功能,。

  關(guān)鍵詞: ARM11;GPRS,;嵌入式系統(tǒng),;圖像報(bào)警系統(tǒng)

0 引言

  近幾年,隨著嵌入式技術(shù)迅速發(fā)展,,數(shù)字化的圖像監(jiān)控技術(shù)出現(xiàn)了新的特點(diǎn):嵌入芯片更小,,集成度更高,而且在某些工業(yè)應(yīng)用領(lǐng)域中,,利用無線網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)的傳輸逐漸成為了最為理想的選擇,。然而傳統(tǒng)的圖像監(jiān)控系統(tǒng)采用“單片機(jī)+GPRS”的系統(tǒng)結(jié)構(gòu),這樣的系統(tǒng)架構(gòu)由于其硬件運(yùn)算能力有限,,導(dǎo)致整個(gè)系統(tǒng)的功能較弱,,實(shí)時(shí)性較差,不能很好地滿足監(jiān)控需要,。這使得該圖像監(jiān)控系統(tǒng)很難應(yīng)用在一些特殊的環(huán)境監(jiān)控中,,例如教學(xué)大樓、家庭防盜,、工廠或其他無人值守的場合,。

  本文以ARM11開發(fā)板結(jié)合ET-GPRS模塊的系統(tǒng)架構(gòu)取代傳統(tǒng)的圖像監(jiān)控系統(tǒng),ARM11開發(fā)板通過控制攝像頭對(duì)其部署區(qū)域進(jìn)行安防監(jiān)控,,能夠獲取圖像數(shù)據(jù),,并設(shè)計(jì)了報(bào)警系統(tǒng),使其通過GPRS無線通信模塊將報(bào)警信息傳送到至有信號(hào)的任何地方,,實(shí)現(xiàn)無線監(jiān)控報(bào)警,。

1 硬件平臺(tái)的選擇與設(shè)計(jì)

  本系統(tǒng)采用了Samsung公司的S3C6410嵌入式處理器和嵌入式Linux 2.6.36操作系統(tǒng),。S3C6410采用ARM1176JZF-S的內(nèi)核,主頻可以達(dá)到533 MHz/667 MHz,,最大支持到8 bit糾錯(cuò),,實(shí)現(xiàn)了MMU、AMBA BUS和Harvard高速緩沖體系結(jié)構(gòu),,集成了通用的串口控制器,、A/D轉(zhuǎn)換器、GPIO等功能,,還集成了一個(gè)USB HOST插口,,支持USB1.1協(xié)議,可插鼠標(biāo),、U盤等,。圖1所示的是運(yùn)動(dòng)圖像檢測系統(tǒng)的硬件模塊圖,該系統(tǒng)通過USB控制器控制攝像頭對(duì)可疑運(yùn)動(dòng)物體跟蹤拍照,,然后經(jīng)過編碼,、DMA傳輸?shù)酱鎯?chǔ)器中,同時(shí)檢測終端驅(qū)動(dòng)MIC接口的音響發(fā)出警笛,,當(dāng)檢測到運(yùn)動(dòng)時(shí),,GPRS無線通信模塊被激活,檢測終端發(fā)出AT指令驅(qū)動(dòng)GPRS發(fā)送短信告知用戶,。

001.jpg

  GPRS模塊采用飛凌公司的TE-GPRS,,可以搭載西門子MC39i、華為GTM900-C等多種GPRS模組,,具備5線串口,,內(nèi)部集成了TCP/IP協(xié)議棧,并且擴(kuò)展了TCP/IP AT指令,,使得用戶利用該模塊開發(fā)數(shù)據(jù)傳輸設(shè)備變得簡單方便,,通過20P排線連接開發(fā)板的COM口和GPRS的CON8接口。

2 系統(tǒng)軟件的移植和配置

  無線圖像報(bào)警系統(tǒng)分為兩個(gè)部分,,即系統(tǒng)軟件的移植與配置[1]和高級(jí)應(yīng)用程序的開發(fā),,其中前者是后者實(shí)現(xiàn)的基礎(chǔ)。

  2.1 嵌入式操作系統(tǒng)移植

  Linux是一種類Unix操作系統(tǒng),,穩(wěn)定性好,,開源免費(fèi),功能強(qiáng)大,,并且支持眾多的CPU架構(gòu),,同時(shí)對(duì)網(wǎng)絡(luò)有著良好的支持,支持TCP/IP,、IPv4,、IPv6,、PPP、IGMP,。一個(gè)完整的嵌入式操作系統(tǒng)包括:Bootloader、內(nèi)核,、根文件系統(tǒng),,三者缺一不可。本系統(tǒng)采用穩(wěn)定性較高的Linux 2.6.36版本,,為滿足系統(tǒng)的要求,,對(duì)系統(tǒng)源代碼作了以下改動(dòng):

  (1)改寫網(wǎng)卡驅(qū)動(dòng)程序,。ARM1176JZF-S芯片支持的網(wǎng)卡為DM9000,,而實(shí)際的u-boot網(wǎng)絡(luò)驅(qū)動(dòng)是CS8900,從而導(dǎo)致無法ping通宿主機(jī),,tftp網(wǎng)絡(luò)服務(wù)無法使用,。因此本文對(duì)其發(fā)布源碼中的網(wǎng)卡驅(qū)動(dòng)程序進(jìn)行了改寫,使其能夠啟動(dòng)網(wǎng)絡(luò)服務(wù),。

 ?。?)添加日志型文件系統(tǒng)支持。該系統(tǒng)需要斷電后能保存數(shù)據(jù)和配置參數(shù),,所以更改根文件系統(tǒng),,把只讀文件系統(tǒng)RAMDISK升級(jí)為YAFFS2文件系統(tǒng),這種支持讀寫的日志型文件系統(tǒng)能夠記錄存儲(chǔ)大量的圖片信息,。

  2.2 運(yùn)動(dòng)圖像動(dòng)態(tài)監(jiān)測算法及程序移植

  背景差分算法是常用的基于圖像信息的運(yùn)動(dòng)檢測算法之一,,其特點(diǎn)是運(yùn)算速度快,位置精確,,能夠分割出完整的運(yùn)動(dòng)對(duì)象,。背景圖像差分算法的公式如下[2]:

  ID(x,y)=|I(x,,y)-BN(x,,y)|(1)

  其中,ID(x,,y)是當(dāng)前檢測到圖像差分后在(x,,y)處的灰度值,I(x,,y)為當(dāng)前檢測圖像在(x,,y)處的灰度值BN(x,y)更新后的背景圖像在(x,,y)處的灰度值[2],。一般情況下,,由于運(yùn)動(dòng)物體在灰度上與背景存在很明顯的差異,選取合適的閾值,,差值圖像的灰度值大于閾值,,則判定有運(yùn)動(dòng)物體在監(jiān)視現(xiàn)場中,從而得到運(yùn)動(dòng)目標(biāo)圖像,,如圖2所示,。通過大量實(shí)驗(yàn)得出當(dāng)系統(tǒng)取閾值為120時(shí),能夠很好地進(jìn)行監(jiān)控并排除由照明或天氣的緩慢變換而導(dǎo)致的背景變換,。如圖3所示,,當(dāng)現(xiàn)場異常活動(dòng)圖像與背景圖像的閾值超過了系統(tǒng)設(shè)定值120時(shí),,則認(rèn)為現(xiàn)場有異常,,即有人闖入。

002.jpg

 ?。?)移植motion程序

  在宿主機(jī)Linux系統(tǒng)中打開motion程序并交叉編譯得到motion應(yīng)用程序的可執(zhí)行文件,,motion.conf是程序與操作者的接口文件,通過修改motion.conf的配置來實(shí)現(xiàn)多重功能,。

 ?。?)配置motion.conf

  On_event_start motion_start:當(dāng)探測到運(yùn)動(dòng),執(zhí)行所設(shè)定目錄中的文件腳本motion_start,,該腳本用來連接motion程序,、報(bào)警程序和GPRS主程序。

  Target_dir/sdcard/motion:當(dāng)探測到運(yùn)動(dòng)時(shí),,截取圖片并存儲(chǔ)在SD卡的motion文件夾中,。

  Threshold 120定義比較的閾值,對(duì)兩幀圖像進(jìn)行比較時(shí),,變化的像素點(diǎn)超過閾值則認(rèn)為圖像發(fā)生變化,。

  2.3 GPRS聯(lián)網(wǎng)

  GPRS的網(wǎng)絡(luò)連接是整個(gè)無線圖像監(jiān)控的基礎(chǔ),它是通過PPP協(xié)議來完成的,。PPP協(xié)議主要是用來通過撥號(hào)或?qū)>€方式進(jìn)行點(diǎn)對(duì)點(diǎn)連接發(fā)送數(shù)據(jù),,使其成為各種主機(jī)、網(wǎng)橋和路由器之間連接的一種共通的解決方案,。嵌入式Linux系統(tǒng)已完整實(shí)現(xiàn)了PPP協(xié)議,,Linux內(nèi)核關(guān)于PPP協(xié)議的配置選項(xiàng)都包含在“Network device support”選項(xiàng)中,需要通過make menuconfig打開內(nèi)核文件并勾選包括PPP協(xié)議支持,、PPP壓縮,、PPP異步/同步串口通信。完成配置后,,重新編譯內(nèi)核文件,。

3 高級(jí)程序設(shè)計(jì)[3-6]

  3.1 驅(qū)動(dòng)攝像頭工作

  在Linux下,,所有外設(shè)都被看成是一種文件,稱為設(shè)備文件,。設(shè)備驅(qū)動(dòng)程序就是外設(shè)與內(nèi)核之間的橋梁,,它完成設(shè)備的初始化和釋放、中斷處理和對(duì)設(shè)備文件的各種操作等功能,,能夠?yàn)橛脩艟帉懙膽?yīng)用程序屏蔽外設(shè)的硬件細(xì)節(jié),,使得應(yīng)用程序可以像普通文件一樣對(duì)外設(shè)進(jìn)行操作。對(duì)于USB攝像頭,,Linux內(nèi)核的驅(qū)動(dòng)程序?yàn)槠涮峁┝嘶镜腎/O操作的接口函數(shù)open、close,、read,、write,內(nèi)存映射功能,、中斷的處理以及對(duì)I/O通道的控制接口函數(shù)ioctl,,并將其定義在struct ile_operations的結(jié)構(gòu)體中。當(dāng)應(yīng)用程序?qū)ν庠O(shè)進(jìn)行訪問時(shí),,Linux內(nèi)核將通過對(duì)struct file_operations結(jié)構(gòu)來訪問驅(qū)動(dòng)程序提供相應(yīng)的函數(shù),。

  對(duì)USB攝像頭進(jìn)行驅(qū)動(dòng)時(shí),先將USB控制器的驅(qū)動(dòng)程序模塊靜態(tài)地編譯進(jìn)內(nèi)核文件中,,在使用攝像頭時(shí),,需使用insmode加載攝像頭驅(qū)動(dòng)文件,并在/dev目錄下創(chuàng)建video2文件,。

  3.2 報(bào)警主程序編程

  當(dāng)USB攝像頭檢測到運(yùn)動(dòng)物體時(shí),,系統(tǒng)將驅(qū)動(dòng)音響發(fā)出警笛聲,只需編寫一個(gè)播放軟件即可,。根據(jù)嵌入式系統(tǒng)開發(fā)特性,,需先在Linux宿主機(jī)上編寫應(yīng)用程序,在通過交叉編譯,、鏈接生成能在目標(biāo)板上運(yùn)行的可執(zhí)行文件,。

  由于系統(tǒng)的警笛文件格式是FLAC格式,則需要移植FLAC編碼庫文件,,使用其中的API函數(shù)實(shí)現(xiàn)音頻文件解碼工作,,首先通過函數(shù)FLAC_stream_decoder_new()申請(qǐng)解碼對(duì)象,然后對(duì)解碼音頻對(duì)象進(jìn)行相關(guān)的初始化FLAC_stream_decoder_init_file(),。利用函數(shù)FLAC_stream_cecoder_set_md5_checking()來對(duì)MD5值進(jìn)行相關(guān)的檢測,,通過函數(shù)FLAC_stream_decoder_process_single()進(jìn)行FLAC數(shù)據(jù)幀的解碼工作,完成后刪除解碼對(duì)象FLAC_stream_decoder_delete(),。每解碼一幀的數(shù)據(jù),,還會(huì)執(zhí)行一個(gè)回調(diào)函數(shù),,該函數(shù)會(huì)將解碼后的音頻數(shù)據(jù)送入到聲卡設(shè)備中播放。

  3.3 GPRS模塊編程

  AT即Attention,,AT指令集是從終端設(shè)備(Terminal Equipment,,TE)或者數(shù)據(jù)終端設(shè)備(Data Terminal Equipment,DTE)向終端適配器(Terminal Adapter,,TA)或者數(shù)據(jù)電路終結(jié)設(shè)備(Data Circuit Terminating Equipment,,DCTE)發(fā)送的。通過TA,、TE,,發(fā)送AT命令來控制MS(Mobile Station)的功能,與GSM網(wǎng)絡(luò)業(yè)務(wù)進(jìn)行交互,。圖4所示為GPRS系統(tǒng)結(jié)構(gòu)圖,。通過對(duì)TE、TA,、ME之間的控制,,用戶可以通過命令進(jìn)行呼叫、短信,、電話本,、數(shù)據(jù)業(yè)務(wù)、補(bǔ)充業(yè)務(wù),、傳真等方面的控制[1],。

003.jpg

  前面所述Linux的設(shè)備全都被看成特殊的文件,所以對(duì)于串口等設(shè)備的函數(shù)完全可以使用Linux內(nèi)核提供的API函數(shù),。由于ARM11通過串口與GPRS模塊通信,,因此,首先通過get_baudrate(int argc,,char**argv)設(shè)置波特率,,從終端獲取參數(shù)。打開串口,,子函數(shù)tty_init()通過使用fd=open(“/dev/ttySAC1”,,D_RDWR)來打開串口文件,串口對(duì)應(yīng)的設(shè)備文件為/dev/ttySAC1,,fd是設(shè)備打開后返回的文件描述符(打開錯(cuò)誤返回-1),。以后與之相關(guān)的操作都可以使用該文件描述符進(jìn)行操作,初始化串口并通過tcsetattr(fd,,TCSANOW,,&newtio)設(shè)置終端控制屬性。函數(shù)gprs_msg()通過tty_write()讀取串口信息,串口通過讀取如下相關(guān)GPRS指令來確定相關(guān)配置:

  AT+CMGF=1,,表示英文發(fā)送短信方式,;

  AT+CMGS=電話號(hào)碼,表示GPRS需發(fā)送的電話號(hào)碼,;

  AT+CMGL,,表示列舉短息消息。

  每次配置的參數(shù)都會(huì)被存儲(chǔ)到ROM存儲(chǔ)器中,,如果下次沒有收到新的參數(shù)配置命令,,則會(huì)按保存的參數(shù)運(yùn)行。圖5所示為手機(jī)接收GPRS發(fā)送的警報(bào)短信提示,,系統(tǒng)工作時(shí),,GPRS連接到中國聯(lián)通的內(nèi)網(wǎng)中,圖像檢測終端通過控制GPRS工作實(shí)現(xiàn)報(bào)警,。

004.jpg

4 結(jié)論

  本文在深入研究了嵌入式技術(shù)和GPRS技術(shù)的基礎(chǔ)上,,結(jié)合數(shù)字通信技術(shù)、網(wǎng)絡(luò)技術(shù)和計(jì)算機(jī)技術(shù),,提出了一種基于嵌入式ARM11平臺(tái)和GPRS遠(yuǎn)程無線圖像監(jiān)控系統(tǒng)的設(shè)計(jì)方案。該系統(tǒng)采用三星公司的S3C6410為核心的硬件平臺(tái),,搭建嵌入式Linux操作系統(tǒng),,能夠把攝像頭拍攝的圖像信息保存在SD擴(kuò)展卡中,實(shí)現(xiàn)實(shí)時(shí)報(bào)警,,并發(fā)送報(bào)警短信到用戶手機(jī)中,。本系統(tǒng)具有很好的實(shí)時(shí)多任務(wù)性、穩(wěn)定性和可靠性,,能夠滿足大多數(shù)場合的使用需求,。

參考文獻(xiàn)

  [1] 河泰,王洪濤.Linux2.6內(nèi)核標(biāo)準(zhǔn)教程[M].北京:人民郵電出版社,,2008.

  [2] 曹丹華,,鄒偉,吳裕斌.基于背景圖像差分的運(yùn)動(dòng)人體檢測[J].光電工程,,2007,,34(6):107-111.

  [3] 唐人財(cái),劉連浩.基于嵌入式Linux遠(yuǎn)程圖像監(jiān)控系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)與現(xiàn)代化,,2010(1):31-34.

  [4] BLANCHETTE J,, SUMMERFIELD M. C++ GUI programming with Qt4(Sencond Edition)[M]. Prentice Hall, 2008.

  [5] 韋東山.Linux應(yīng)用開發(fā)完全手冊(cè)[M].北京:人民郵電出版社,,2008.

  [6] MICBAEL B.C C/C++F嵌入式系統(tǒng)編程[M].北京:中國電力出版社,,2004.


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