目前在視頻監(jiān)控系統(tǒng)領(lǐng)域中,有線視頻監(jiān)控系統(tǒng)較為普遍,,然而其有效距離短,、成本高,僅適用于小范圍的區(qū)域監(jiān)控,,而對于一些特殊的監(jiān)控場合,,如油田采油現(xiàn)場、遠(yuǎn)程環(huán)境采樣,、災(zāi)害或突發(fā)事件現(xiàn)場等,,由于監(jiān)控點的分布范圍比較廣,難以架設(shè)線纜,,因此有線視頻監(jiān)控受固有物理布線的限制無法實現(xiàn),。但遠(yuǎn)程無線視頻監(jiān)控卻不受限制,可以擺脫線纜的束縛,,具有安裝周期短,、維護方便、擴容能力強等優(yōu)點,。同時隨著計算機技術(shù)和通信技術(shù)的發(fā)展,,將嵌入式系統(tǒng)技術(shù)、無線通信技術(shù)和基于TCP/IP的Internet技術(shù)結(jié)合在一起的嵌入式遠(yuǎn)程無線視頻監(jiān)視系統(tǒng)已成為可能,。
監(jiān)控系統(tǒng)大多都符合“控制中心一監(jiān)控終端”的構(gòu)建模式,。控制中心負(fù)責(zé)收集各監(jiān)控終端上傳的監(jiān)控信息,,發(fā)送各種操作命令,,控制監(jiān)控終端。監(jiān)控終端置于遠(yuǎn)離控制中心的各監(jiān)控點,,負(fù)責(zé)信息采集,、傳輸和響應(yīng)控制中心發(fā)出的控制命令。由于監(jiān)控終端對信息數(shù)據(jù)處理的能力和精度將影響整個系統(tǒng)的最終性能,。ARM微處理器是一款高速,、高性能的嵌入式處理器,適合加入操作系統(tǒng),,完成代P/IP協(xié)議,,USB通信等復(fù)雜功能;速度快,存儲空間大,,適用于視頻處理,;具有很強的控制和事物調(diào)度能力,適用于那些既有數(shù)據(jù)處理又有大量事務(wù)需要處理的場合,。因此,,提出了一種基于ARM的監(jiān)控終端設(shè)計方案。
1 監(jiān)控終端的硬件設(shè)計
監(jiān)控終端的硬件設(shè)計主要由3部分組成,,1)由視頻解碼器和視頻編碼壓縮器組成的視頻采集處理模塊,;2)以ARM微處理器,、存儲器等組成的中央管理控制模塊,;3)以GPRS為主的無線傳輸模塊。現(xiàn)場信息通過攝像頭進(jìn)入SAA7111A進(jìn)行A/D轉(zhuǎn)換,,將模擬視頻信息變成數(shù)字信息,,然后再經(jīng)過IME6400進(jìn)行MPEG-4編碼壓縮,壓縮后的數(shù)據(jù)進(jìn)入嵌入式處理器S3C2440,,最后S3C2440將壓縮數(shù)據(jù)通過GPRS發(fā)送出去,。其中ARM微處理器控制整個監(jiān)控終端。ARM微處理器采用16/32位RISC嵌入式處理器S3C2440,。它利用ARM920T內(nèi)核為手持設(shè)備和一般類型應(yīng)用提供了低價格,、低功耗、高性能小型微控制器的解決方案,。監(jiān)控終端的硬件結(jié)構(gòu)框圖如圖1所示,。
1.1 視頻采集處理模塊
視頻采集處理模塊主要由視頻A/D轉(zhuǎn)換解碼器SAA7111A和視頻編碼壓縮器IME6400組成。SAA7111A是一種增強型視頻輸入處理器,,它集A/D轉(zhuǎn)換與解碼功能于一身?,F(xiàn)場視頻信息通過攝像頭從SAA7111A的4個模擬輸入端AI11、AI12,、AI21,、AI22的某一引腳引入。經(jīng)A/D轉(zhuǎn)換后,,產(chǎn)生的Y和UV信號經(jīng)格式化后從VPO[15:0]引腳輸出,。SAA7111A的所有功能均是在I2C總線控制下完成的,嵌入式微處理器S3C2440通過I2C總線對SAA7111A內(nèi)部的32個寄存器進(jìn)行配置,。SAA7111A內(nèi)部功能原理如圖2所示,。
IME64400支持MPEG-1、MPEG-2和MPEG-4 3種格式的視頻壓縮編碼標(biāo)準(zhǔn),;其圖像大小可以編程設(shè)定,,最大尺寸可達(dá)2 048x2 048;碼率支持固定和可變碼率壓縮,并且支持動態(tài)檢測,。IME6400將SAA7111A數(shù)字化后的視頻數(shù)據(jù)送入到IME6400內(nèi)部進(jìn)行MPEG-4壓縮編碼,,編碼后的數(shù)據(jù)流經(jīng)SDRAM進(jìn)行緩存,然后流經(jīng)1 KB的FIFO緩沖區(qū)用來滿足編碼數(shù)據(jù)的快速傳遞,,當(dāng)FIFO溢出時,,其GPI00引腳將產(chǎn)生一個下降沿的中斷通知主控芯片讀取FIFO中的數(shù)據(jù)。S3C2440通過數(shù)據(jù)線與IME6400的主機接口相連并對其內(nèi)部的一系列的寄存器進(jìn)行設(shè)置,,IME6400的內(nèi)部功能框圖如圖3所示,。
1.2 中央管理控制模塊
中央管理控制模塊是以嵌入式ARM微處理器為核心,實現(xiàn)視頻圖像信號的采集與壓縮管理,、視頻圖像數(shù)據(jù)的收發(fā),,以及控制信號的解釋執(zhí)行等。該中央管理控制模塊包括:電源和復(fù)位電路,、系統(tǒng)時鐘電路,、Flash存儲器接口電路、SDRAM接口電路,、JTAG接口電路,、串行接口電路等。
1.3 無線傳輸模塊
無線傳輸模塊采用GPRS Modem傳輸壓縮后的視頻圖像數(shù)據(jù),,GPRS Modem中的MC55無線模塊闈具有3頻段,,適用于歐洲和亞洲的頻段:90 0,1 800和1 900 MHz,,其3種頻段的切換可由AT指令控制,。MC55模塊是系統(tǒng)的無線網(wǎng)絡(luò)接口,具有GPRS class-10多時隙功能,,class-B操作模式,,支持增強型AT命令集,模塊自帶TCP/IP協(xié)議棧,。嵌入式微處理器S3C2440通過串口與GPRS Modem提供的串口相連,,所有數(shù)據(jù)都通過串口實現(xiàn)交換。嵌入式微處理器S3C2440與GPRS Modem連接的電路原理圖如圖4所示,。
2 監(jiān)控終端的軟件設(shè)計
監(jiān)控終端的軟件設(shè)計是基于嵌入式Linux操作系統(tǒng)的,,其模塊框圖如圖5所示。
1)在監(jiān)控終端硬件基礎(chǔ)上搭建一個軟件平臺即操作系統(tǒng)層,,搭建的軟件開發(fā)平臺需要完成系統(tǒng)啟動代碼的設(shè)計(U-BOOT的修改與移植),、嵌入式Linux操作系統(tǒng)內(nèi)核的移植以及設(shè)備驅(qū)動程序的開發(fā)等。系統(tǒng)啟動代碼即Bootloader是在操作系統(tǒng)內(nèi)核之前運行的一段小程序,。通過這段小程序,,可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),,以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境,。通過對U-Boot-1.3.3的修改和移植完成系統(tǒng)啟動代碼的設(shè)計。監(jiān)控終端軟件的核心是嵌入式Linux操作系統(tǒng),,一切功能的實現(xiàn)都基于Linux操作系統(tǒng)完成的,。嵌入式Linux操作系統(tǒng)內(nèi)核采用Linux 2.6.26的內(nèi)核版本,并對其進(jìn)行配置,,實現(xiàn)操作系統(tǒng)在監(jiān)控終端硬件平臺上的移植,。根文件系統(tǒng)是指嵌入式Linux系統(tǒng)啟動時所使用的第一個文件系統(tǒng),在啟動內(nèi)核時需要掛載根文件系統(tǒng)來支持訪問外部設(shè)備,,以及裝載和運行內(nèi)核模塊與應(yīng)用程序,,通過BusyBox1.6.1進(jìn)行配置實現(xiàn)了根文件系統(tǒng)的建立,同時通過Cramfs工具包,,制作了Cramfs文件系統(tǒng),。
嵌入式Linux系統(tǒng)內(nèi)核通過設(shè)備驅(qū)動程序與外圍設(shè)備進(jìn)行交互,,設(shè)備驅(qū)動程序是一組數(shù)據(jù)結(jié)構(gòu)和函數(shù),,它們通過定義的接口控制一個或多個設(shè)備,設(shè)計了IME6400驅(qū)動程序和MC55驅(qū)動程序,。將IME6400按照字符設(shè)備來處理,,編寫一個字符設(shè)備驅(qū)動。字符設(shè)備是Linux中最簡單的設(shè)備,,應(yīng)用程序使用標(biāo)準(zhǔn)的系統(tǒng)調(diào)用打開,、讀取、寫和關(guān)閉,。內(nèi)核使用file_operations結(jié)構(gòu)訪問驅(qū)動程序的函數(shù),,open()函數(shù)用于完成設(shè)備打開計數(shù)、中斷申請和環(huán)形緩沖區(qū)的初始化工作,;release()函數(shù)的用法和作用正好與open()函數(shù)相反,;ioctl()函數(shù)用于提供各種各樣的硬件控制,即應(yīng)用程序需要通過ioctl()函數(shù)來讀取和修改環(huán)形緩沖區(qū)的標(biāo)識變量,。MC55的設(shè)備驅(qū)動程序主要包括MC55的file_operations數(shù)據(jù)結(jié)構(gòu)及MC55的打開,、關(guān)閉、讀,、寫,,MC55的硬件初始化等函數(shù)。MC55的打開函數(shù)MC55_open()用于實現(xiàn)GPRS設(shè)備的打開,;關(guān)閉函數(shù)MC55_close()用于實現(xiàn)GPRS設(shè)備的關(guān)閉,;讀函數(shù)MC55_read()用于實現(xiàn)數(shù)據(jù)的讀取接收;寫函數(shù)MC55_write()用于實現(xiàn)數(shù)據(jù)的發(fā)送;I/O初始化程序MC55_ hardware_init()實現(xiàn)對GPRS設(shè)備輸入,、輸出端口的初始化,;MC55的初始化程序void_initMC55_init()完成對GPRS設(shè)備的初始化工作。
2)在軟件平臺的基礎(chǔ)上,,開發(fā)系統(tǒng)的應(yīng)用程序即應(yīng)用層,。借助交叉編譯工具,開發(fā)視頻監(jiān)控終端上運行的采集,、壓縮,、傳輸程序。監(jiān)控終端的應(yīng)用程序主要包括MPGE4壓縮編碼模塊控制程序和GPRS模塊傳輸數(shù)據(jù)的程序,,同時還要對視頻A/D轉(zhuǎn)換器SAA7111A的工作方式進(jìn)行配置,。
SAA7111A工作方式的配置是微處理器S3C2440通過I2C總線對其內(nèi)部32個寄存器的配置實現(xiàn)的。SAA7111A初始化設(shè)定為:1路模擬視頻信號輸入(AI11),、自動增益控制,、PAL制式、YUV4:2:2的16位數(shù)字視頻信號輸出,。由于輸入視頻信號屬于PAL制式,,需要把寄存器08H中的FSEL(50、60 Hz場頻選擇)位設(shè)置為0,;另外還需要把該寄存器中的HPLL(鎖相環(huán)使能選擇)位設(shè)置為O,,使HREF(行輸出參考)、VREF(場輸出參考)信號輸出同步,;把寄存器11H中的COLO位設(shè)置為1,。表示Y和C通道同時工作;把11H中的OEHV,、OEYC位設(shè)置為11,,功能是使能芯片的VPO、HS,、VS,、HREF、VREF這些輸出端口,。
MPGE4壓縮編碼模塊控制程序主要由Firmware的下載及其寄存器的設(shè)置,,以及MPEG4數(shù)據(jù)的傳送組成。Firmware下載程序是一個內(nèi)部SRMA的寫操作循環(huán),,下載時首先向Control寄存器寫入Ox4000,,告知IME6400初始化下載;然后將Firmware看成一個16位的二進(jìn)制數(shù)組,,每次向Ba-seAddress0寫入下載的目的地址偏移,。而且向Data寫入要下載的16位數(shù)據(jù)下載一個16位字,,如此循環(huán)直到按順序下載完整個Firmware。IME64 00接收連續(xù)的視頻圖像數(shù)據(jù)流,,也相應(yīng)地輸出連續(xù)的壓縮視頻圖像數(shù)據(jù)流,。IME6400工作在異步模式下,F(xiàn)IFO中有NFIFOSIZE(通常是1 024)字節(jié)以上的數(shù)據(jù)之后,,將GPI00引腳狀態(tài)置為低,。主控處理器檢測到GPI00上的低電平之后,從IME6400讀取NFIFOSIZE字節(jié)的數(shù)據(jù),。結(jié)束之后向HI用戶寄存器USER4中寫入一個不同的值,,通知IME6400傳輸結(jié)束。IME6400將新的數(shù)據(jù)繼續(xù)寫入FIFO中,。這樣一個循環(huán)允許嵌入式處理器從IME6400中連續(xù)讀取連續(xù)的數(shù)據(jù)流,。同時使用IME6400的設(shè)備驅(qū)動程序來完成IME6400接收編碼數(shù)據(jù),把數(shù)據(jù)搬運到一個可見的緩沖區(qū)中,,并協(xié)調(diào)對數(shù)據(jù)的處理,。
GPRS模塊傳輸數(shù)據(jù)的程序主要包括接入GPRS網(wǎng)絡(luò)程序和Socket通信程序2部分。接入GPRS網(wǎng)絡(luò)程序主要由pppd程序調(diào)用chat會話程序來完成,。采用pppd-2.4.3源碼包,,經(jīng)過交叉編譯后生成pppd、chat,、pppdump和pppstats4個可執(zhí)行文件,,最后就可以在嵌入式Linux終端下直接運行ppp-on腳本程序即可實現(xiàn)GPRS撥號接入CMNET中國移動無線網(wǎng)絡(luò),。監(jiān)控終端接入中國移動GPRS無線網(wǎng)絡(luò)后,,獲得了一個IP,通過使用中國移動的CMNET網(wǎng)關(guān),,終端就可以與連入Internet網(wǎng)絡(luò)的監(jiān)控中心之間進(jìn)行數(shù)據(jù)交換,。監(jiān)控中心與監(jiān)控終端使用Socket(套接字)通信。套接字Socket的基本模式采用C/S(客戶/服務(wù)器),,遠(yuǎn)程終端設(shè)備工作在客戶模式,,而Internet網(wǎng)上的監(jiān)控中心工作在服務(wù)器模式??蛻舳顺绦蚧玖鞒淌牵簞?chuàng)建套接字,,綁定套接字到服務(wù)器端口上,然后請求連接,,最后調(diào)用數(shù)據(jù)收發(fā)函數(shù)進(jìn)行數(shù)據(jù)的傳輸,。在客戶端通信程序執(zhí)行前,服務(wù)器端的程序必須完成初始化并開始偵聽,?;赟ocket網(wǎng)絡(luò)通信的客戶端系統(tǒng)流程如圖6所示,。
圖6中,調(diào)用Socket()函數(shù)用來實現(xiàn)建立一個Socket,,接著發(fā)起一個請求,,通過調(diào)用connect()函數(shù)來實現(xiàn),一旦客戶機和服務(wù)器套接字建立了連接,,雙方就可以通過send()和recv()函數(shù)的調(diào)用來發(fā)送和接收數(shù)據(jù)了,。如果想斷開連接,調(diào)用close()函數(shù)釋放和套接字相關(guān)的系統(tǒng)資源即可,。
3 測試結(jié)果
通過實驗測試,,一幅分辨率為360x288的視頻圖像,經(jīng)無線網(wǎng)絡(luò)GPRS進(jìn)行傳輸,,其傳輸速度可達(dá)到約2幀/秒,,滿足無線視頻監(jiān)控系統(tǒng)要求。
4 結(jié)論
經(jīng)過測試分析,,基于ARM的遠(yuǎn)程無線視頻監(jiān)控終端的設(shè)計方案具有實時性好,、功耗低、工作可靠等優(yōu)點,,適用于移動環(huán)境,、難于布線的場所和邊遠(yuǎn)地區(qū),具有較好的市場應(yīng)用前景,。