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

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

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

0 引言

  近幾年,,隨著嵌入式技術(shù)迅速發(fā)展,,數(shù)字化的圖像監(jiān)控技術(shù)出現(xiàn)了新的特點:嵌入芯片更小,,集成度更高,,而且在某些工業(yè)應(yīng)用領(lǐng)域中,利用無線網(wǎng)絡(luò)進行數(shù)據(jù)的傳輸逐漸成為了最為理想的選擇,。然而傳統(tǒng)的圖像監(jiān)控系統(tǒng)采用“單片機+GPRS”的系統(tǒng)結(jié)構(gòu),,這樣的系統(tǒng)架構(gòu)由于其硬件運算能力有限,導(dǎo)致整個系統(tǒng)的功能較弱,,實時性較差,,不能很好地滿足監(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ā)板通過控制攝像頭對其部署區(qū)域進行安防監(jiān)控,能夠獲取圖像數(shù)據(jù),,并設(shè)計了報警系統(tǒng),,使其通過GPRS無線通信模塊將報警信息傳送到至有信號的任何地方,實現(xiàn)無線監(jiān)控報警,。

1 硬件平臺的選擇與設(shè)計

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

001.jpg

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

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

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

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

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

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

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

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

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

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

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

002.jpg

  (1)移植motion程序

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

 ?。?)配置motion.conf

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

  Target_dir/sdcard/motion:當探測到運動時,截取圖片并存儲在SD卡的motion文件夾中,。

  Threshold 120定義比較的閾值,,對兩幀圖像進行比較時,變化的像素點超過閾值則認為圖像發(fā)生變化,。

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

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

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

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

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

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

  3.2 報警主程序編程

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

  由于系統(tǒng)的警笛文件格式是FLAC格式,,則需要移植FLAC編碼庫文件,,使用其中的API函數(shù)實現(xiàn)音頻文件解碼工作,首先通過函數(shù)FLAC_stream_decoder_new()申請解碼對象,,然后對解碼音頻對象進行相關(guān)的初始化FLAC_stream_decoder_init_file()。利用函數(shù)FLAC_stream_cecoder_set_md5_checking()來對MD5值進行相關(guān)的檢測,,通過函數(shù)FLAC_stream_decoder_process_single()進行FLAC數(shù)據(jù)幀的解碼工作,,完成后刪除解碼對象FLAC_stream_decoder_delete()。每解碼一幀的數(shù)據(jù),,還會執(zhí)行一個回調(diào)函數(shù),,該函數(shù)會將解碼后的音頻數(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ù)進行交互。圖4所示為GPRS系統(tǒng)結(jié)構(gòu)圖,。通過對TE,、TA、ME之間的控制,,用戶可以通過命令進行呼叫,、短信、電話本,、數(shù)據(jù)業(yè)務(wù),、補充業(yè)務(wù)、傳真等方面的控制[1],。

003.jpg

  前面所述Linux的設(shè)備全都被看成特殊的文件,,所以對于串口等設(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)來打開串口文件,,串口對應(yīng)的設(shè)備文件為/dev/ttySAC1,fd是設(shè)備打開后返回的文件描述符(打開錯誤返回-1),。以后與之相關(guān)的操作都可以使用該文件描述符進行操作,,初始化串口并通過tcsetattr(fd,TCSANOW,,&newtio)設(shè)置終端控制屬性,。函數(shù)gprs_msg()通過tty_write()讀取串口信息,串口通過讀取如下相關(guān)GPRS指令來確定相關(guān)配置:

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

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

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

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

004.jpg

4 結(jié)論

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

參考文獻

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

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

  [3] 唐人財,,劉連浩.基于嵌入式Linux遠程圖像監(jiān)控系統(tǒng)的設(shè)計[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ā)完全手冊[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)載,。