基于ARM的遠(yuǎn)程無線視頻監(jiān)控終端設(shè)計(jì)
1.2 中央管理控制模塊
中央管理控制模塊是以嵌入式ARM微處理器為核心,實(shí)現(xiàn)視頻圖像信號(hào)的采集與壓縮管理、視頻圖像數(shù)據(jù)的收發(fā),以及控制信號(hào)的解釋執(zhí)行等。該中央管理控制模塊包括:電源和復(fù)位電路、系統(tǒng)時(shí)鐘電路、Flash存儲(chǔ)器接口電路、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多時(shí)隙功能,class-B操作模式,支持增強(qiáng)型AT命令集,模塊自帶TCP/IP協(xié)議棧。嵌入式微處理器S3C2440通過串口與GPRS Modem提供的串口相連,所有數(shù)據(jù)都通過串口實(shí)現(xiàn)交換。嵌入式微處理器S3C2440與GPRS Modem連接的電路原理圖如圖4所示。
2 監(jiān)控終端的軟件設(shè)計(jì)
監(jiān)控終端的軟件設(shè)計(jì)是基于嵌入式Linux操作系統(tǒng)的,其模塊框圖如圖5所示。
1)在監(jiān)控終端硬件基礎(chǔ)上搭建一個(gè)軟件平臺(tái)即操作系統(tǒng)層,搭建的軟件開發(fā)平臺(tái)需要完成系統(tǒng)啟動(dòng)代碼的設(shè)計(jì)(U-BOOT的修改與移植)、嵌入式Linux操作系統(tǒng)內(nèi)核的移植以及設(shè)備驅(qū)動(dòng)程序的開發(fā)等。系統(tǒng)啟動(dòng)代碼即Bootloader是在操作系統(tǒng)內(nèi)核之前運(yùn)行的一段小程序。通過這段小程序,可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。通過對(duì)U-Boot-1.3.3的修改和移植完成系統(tǒng)啟動(dòng)代碼的設(shè)計(jì)。監(jiān)控終端軟件的核心是嵌入式Linux操作系統(tǒng),一切功能的實(shí)現(xiàn)都基于Linux操作系統(tǒng)完成的。嵌入式Linux操作系統(tǒng)內(nèi)核采用Linux 2.6.26的內(nèi)核版本,并對(duì)其進(jìn)行配置,實(shí)現(xiàn)操作系統(tǒng)在監(jiān)控終端硬件平臺(tái)上的移植。根文件系統(tǒng)是指嵌入式Linux系統(tǒng)啟動(dòng)時(shí)所使用的第一個(gè)文件系統(tǒng),在啟動(dòng)內(nèi)核時(shí)需要掛載根文件系統(tǒng)來支持訪問外部設(shè)備,以及裝載和運(yùn)行內(nèi)核模塊與應(yīng)用程序,通過BusyBox1.6.1進(jìn)行配置實(shí)現(xiàn)了根文件系統(tǒng)的建立,同時(shí)通過Cramfs工具包,制作了Cramfs文件系統(tǒng)。
嵌入式Linux系統(tǒng)內(nèi)核通過設(shè)備驅(qū)動(dòng)程序與外圍設(shè)備進(jìn)行交互,設(shè)備驅(qū)動(dòng)程序是一組數(shù)據(jù)結(jié)構(gòu)和函數(shù),它們通過定義的接口控制一個(gè)或多個(gè)設(shè)備,設(shè)計(jì)了IME6400驅(qū)動(dòng)程序和MC55驅(qū)動(dòng)程序。將IME6400按照字符設(shè)備來處理,編寫一個(gè)字符設(shè)備驅(qū)動(dòng)。字符設(shè)備是Linux中最簡單的設(shè)備,應(yīng)用程序使用標(biāo)準(zhǔn)的系統(tǒng)調(diào)用打開、讀取、寫和關(guān)閉。內(nèi)核使用file_operations結(jié)構(gòu)訪問驅(qū)動(dòng)程序的函數(shù),open()函數(shù)用于完成設(shè)備打開計(jì)數(shù)、中斷申請(qǐng)和環(huán)形緩沖區(qū)的初始化工作;release()函數(shù)的用法和作用正好與open()函數(shù)相反;ioctl()函數(shù)用于提供各種各樣的硬件控制,即應(yīng)用程序需要通過ioctl()函數(shù)來讀取和修改環(huán)形緩沖區(qū)的標(biāo)識(shí)變量。MC55的設(shè)備驅(qū)動(dòng)程序主要包括MC55的file_operations數(shù)據(jù)結(jié)構(gòu)及MC55的打開、關(guān)閉、讀、寫,MC55的硬件初始化等函數(shù)。MC55的打開函數(shù)MC55_open()用于實(shí)現(xiàn)GPRS設(shè)備的打開;關(guān)閉函數(shù)MC55_close()用于實(shí)現(xiàn)GPRS設(shè)備的關(guān)閉;讀函數(shù)MC55_read()用于實(shí)現(xiàn)數(shù)據(jù)的讀取接收;寫函數(shù)MC55_write()用于實(shí)現(xiàn)數(shù)據(jù)的發(fā)送;I/O初始化程序MC55_ hardware_init()實(shí)現(xiàn)對(duì)GPRS設(shè)備輸入、輸出端口的初始化;MC55的初始化程序void_initMC55_init()完成對(duì)GPRS設(shè)備的初始化工作。
2)在軟件平臺(tái)的基礎(chǔ)上,開發(fā)系統(tǒng)的應(yīng)用程序即應(yīng)用層。借助交叉編譯工具,開發(fā)視頻監(jiān)控終端上運(yùn)行的采集、壓縮、傳輸程序。監(jiān)控終端的應(yīng)用程序主要包括MPGE4壓縮編碼模塊控制程序和GPRS模塊傳輸數(shù)據(jù)的程序,同時(shí)還要對(duì)視頻A/D轉(zhuǎn)換器SAA7111A的工作方式進(jìn)行配置。
SAA7111A工作方式的配置是微處理器S3C2440通過I2C總線對(duì)其內(nèi)部32個(gè)寄存器的配置實(shí)現(xiàn)的。SAA7111A初始化設(shè)定為:1路模擬視頻信號(hào)輸入(AI11)、自動(dòng)增益控制、PAL制式、YUV4:2:2的16位數(shù)字視頻信號(hào)輸出。由于輸入視頻信號(hào)屬于PAL制式,需要把寄存器08H中的FSEL(50、60 Hz場頻選擇)位設(shè)置為0;另外還需要把該寄存器中的HPLL(鎖相環(huán)使能選擇)位設(shè)置為O,使HREF(行輸出參考)、VREF(場輸出參考)信號(hào)輸出同步;把寄存器11H中的COLO位設(shè)置為1。表示Y和C通道同時(shí)工作;把11H中的OEHV、OEYC位設(shè)置為11,功能是使能芯片的VPO、HS、VS、HREF、VREF這些輸出端口。
評(píng)論