無(wú)線數(shù)字視頻監(jiān)控系統(tǒng)采用無(wú)線微波進(jìn)行數(shù)據(jù)傳輸,大大增強(qiáng)了監(jiān)控手段的靈活性和可擴(kuò)充性。此外,隨著視頻編、解碼技術(shù)的快速發(fā)展,嵌入式無(wú)線網(wǎng)絡(luò)產(chǎn)品以其體積小、成本低、使用靈活方便等優(yōu)點(diǎn),得到了越來(lái)越廣泛的應(yīng)用。
一、視頻監(jiān)控平臺(tái)的整體解決方案
1.組網(wǎng)方案
某大型高檔住宅小區(qū)計(jì)劃建設(shè)一套無(wú)線網(wǎng)絡(luò)系統(tǒng) 對(duì)小區(qū)內(nèi)的15個(gè)點(diǎn)進(jìn)行實(shí)時(shí)監(jiān)控。各點(diǎn)到控制中心的距離不等,近則幾十米,遠(yuǎn)則近千米。要求傳輸流暢的MPEG-4格式的圖像。由于小區(qū)的建筑物多,且各點(diǎn)分散,采用有線方式成本高,而且某些障礙無(wú)法布線。因此采用無(wú)線網(wǎng)絡(luò)。
由于監(jiān)控中心與各點(diǎn)都不可視,為保證傳輸質(zhì)量,選擇了三個(gè)制高點(diǎn)作為中繼點(diǎn)(圖1)。
圖1 監(jiān)控點(diǎn)分布圖
設(shè)計(jì)方案如下:
(1)在各監(jiān)控點(diǎn)與中繼點(diǎn)之間采用802.11g標(biāo)準(zhǔn)的設(shè)備,并在中繼點(diǎn)采用全向天線(圖2),由于802.11g協(xié)議的設(shè)備具備三個(gè)獨(dú)立信道,因此不會(huì)形成干擾。帶寬也完全滿足視頻傳輸?shù)囊蟆?/p>
(2)在各中繼點(diǎn)與監(jiān)控中心之間的傳輸鏈路采用兼容802.11a標(biāo)準(zhǔn)的設(shè)備和定向天線,以保證網(wǎng)絡(luò)視頻流傳輸?shù)母咂焚|(zhì)和穩(wěn)定可靠。
(3)在監(jiān)控中心附近的監(jiān)控點(diǎn)采用802.11b協(xié)議的設(shè)備直接與監(jiān)控中心形成一對(duì)三的連接。
二、系統(tǒng)整體結(jié)構(gòu)設(shè)計(jì)與工作原理
1.服務(wù)器端工作原理
如圖3所示,由CCD Sensor 和音頻端口進(jìn)來(lái)的輸入信號(hào),經(jīng)過(guò)視頻如A/D 和音頻A/D 轉(zhuǎn)換后,進(jìn)行MPEG4 視頻編碼和MPEG MP3 音頻編碼。編碼后的視音頻碼流送到網(wǎng)絡(luò)復(fù)用模塊打包后,將壓縮編碼后的數(shù)據(jù)流經(jīng)過(guò)802.11x無(wú)線網(wǎng)絡(luò)送到客戶端。
2. 系統(tǒng)客戶端工作原理
由無(wú)線網(wǎng)絡(luò)接收的音視頻碼流數(shù)據(jù),經(jīng)過(guò)網(wǎng)絡(luò)解復(fù)用模塊解復(fù)用后,獲得的視頻碼流和音頻碼流分別送至視頻解碼模塊和音頻解碼模塊進(jìn)行MPEG4 視頻解碼和MP3 音頻解碼。解碼后的數(shù)據(jù)經(jīng)過(guò)視頻模擬編碼、D/A和音頻D/A轉(zhuǎn)換后送到可視終端顯示,如圖4所示。
圖4 系統(tǒng)客戶端工作原理
三、硬件設(shè)計(jì)
1.主控芯片采用IDT RC32434
它是一款64位MIPS,內(nèi)部集成了NANDFlash控制器(FlashC)、32位PCI總線控制器(PCIC)、4通道DMA控制器、4通道SDRAM控制器(SDRAMC)、外部總線控制器(EBUSC)、外部總線接口(E—BUSI)以及2個(gè)通用串口等,并通過(guò)內(nèi)部總線對(duì)它們分別進(jìn)行控制。
2.CCD 攝像頭和A/D 轉(zhuǎn)換芯片
SAA7110是Philip s 公司生產(chǎn)的可編程前端視頻解碼器,它可將輸入的視頻模擬信號(hào)轉(zhuǎn)換為YUV數(shù)字信號(hào)。其內(nèi)部包含三路模擬處理通道, 能實(shí)現(xiàn)視頻源的選擇, 數(shù)據(jù)輸出格式有YUV 4:1:1 (8bit)和YUV4:2:2(8bit)兩種。
3.多媒體編解碼芯片
該系統(tǒng)采用VW2010作為多媒體編解碼芯片,它是一種實(shí)時(shí)MPEG-4音視頻壓縮/解壓芯片。其片內(nèi)集成有3個(gè)信號(hào)處理/控制單元,包括一個(gè)視頻編碼(壓縮)器、一個(gè)視頻解碼(解壓)器和一個(gè)片內(nèi)CPU(內(nèi)部擴(kuò)展一個(gè)音頻編碼DSP、一個(gè)音頻解碼DSP、一個(gè)多路復(fù)合單元和一個(gè)多路解復(fù)合單元)。
4.802.11b芯片
無(wú)線模塊采用的芯片是PHILIPS 公司的BGW200,該芯片通過(guò)高速串口SPI2與處理器的SPI1 口連接。SPI(Serial Peripheral Interface,串行外設(shè)接口)是一種同步外設(shè)接口,允許MCU 與各種外圍設(shè)備以串行方式進(jìn)行通信、數(shù)據(jù)交換。
四、軟件設(shè)計(jì)
本系統(tǒng)軟件設(shè)計(jì)按層次劃分主要分為三層:系統(tǒng)初始化引導(dǎo)和嵌入式系統(tǒng)內(nèi)核移植、外設(shè)驅(qū)動(dòng)程序編寫(xiě)(包括USB攝像頭驅(qū)動(dòng)、無(wú)線網(wǎng)絡(luò)模塊驅(qū)動(dòng)等)、數(shù)據(jù)采集與無(wú)線傳輸。
1.系統(tǒng)引導(dǎo)、內(nèi)核移植和文件系統(tǒng)的建立
嵌入式Linux系統(tǒng)主要由4個(gè)部分組成:引導(dǎo)內(nèi)核啟動(dòng)的文件( bootloader) 、Linux內(nèi)核文件(kernel)、虛擬磁盤(pán)文件(ramdisk)、用戶空間文件(user)。把它們分別放在DataFlash內(nèi)的4個(gè)分區(qū)模塊中。對(duì)于不需要?jiǎng)討B(tài)改變,使用較節(jié)省空間的ROMFS只讀文件系統(tǒng);user模塊內(nèi)需要進(jìn)行較多的讀寫(xiě)操作,所以使用支持動(dòng)態(tài)擦寫(xiě)保存的JFFS2文件系統(tǒng)。
2.USB 攝像頭驅(qū)動(dòng)
搭建好嵌入式Linux 的開(kāi)發(fā)環(huán)境后,下一步就首要完成USB 攝像頭驅(qū)動(dòng)工作。Video4Linux(V4L) 是Linux中關(guān)于視頻設(shè)備的內(nèi)核驅(qū)動(dòng),它為針對(duì)視頻設(shè)備的應(yīng)用程序編程提供一系列接口函數(shù)。對(duì)于USB口攝像頭, 其驅(qū)動(dòng)程序中提供了基本的I/O 操作接口函數(shù)open,read,write, close 的實(shí)現(xiàn)。
3.音視頻數(shù)據(jù)采集
在完成USB 攝像頭驅(qū)動(dòng)后,就可以針對(duì)設(shè)備文件/dev/video進(jìn)行視頻捕捉方面的程序設(shè)計(jì)。其中用到的主要函數(shù)有:Camera open( ):用來(lái)開(kāi)啟視頻設(shè)備文件;Camera get capability( ):取得設(shè)備文件的相關(guān)信息;Camera get picture():獲取圖像的相關(guān)信息;Camera close():用來(lái)關(guān)閉設(shè)備文件;Camera grab image( ):用來(lái)抓取圖像。
4.音視頻壓縮編解碼
獲取圖像數(shù)據(jù)后,可以直接輸出到FrameBuffer進(jìn)行顯示,由于本系統(tǒng)要將采集到的音視頻通過(guò)無(wú)線網(wǎng)絡(luò)傳輸出去,所以在傳輸之前要對(duì)原始的圖像數(shù)據(jù)進(jìn)行壓縮編碼, 在此選用VW2010 芯片來(lái)實(shí)現(xiàn)MPEG-4 視頻編解碼方案。
5.無(wú)線網(wǎng)絡(luò)模塊驅(qū)動(dòng)
無(wú)線驅(qū)動(dòng)模塊的軟件架構(gòu)分為三部分: 客戶驅(qū)動(dòng)(client driver) 、主機(jī)硬件抽象層(HHAL)、主機(jī)操作系統(tǒng)抽象層(HOSAL)。設(shè)備驅(qū)動(dòng)程序通常包含下面3 個(gè)最主要的部分: ① 驅(qū)動(dòng)程序的注冊(cè)和注銷(xiāo);②設(shè)備的打開(kāi)和釋放;③設(shè)備的讀寫(xiě)操作。對(duì)于需要?jiǎng)討B(tài)加載的模塊, 通過(guò)執(zhí)行Makefile 文件, 在當(dāng)前目錄會(huì)生成目標(biāo)文件wireless.o。將目標(biāo)文件wireless.o 下載到已經(jīng)寫(xiě)好的文件系統(tǒng)中。當(dāng)目標(biāo)板重新啟動(dòng)后, 運(yùn)行命令: insmodwireless.o 即可將無(wú)線驅(qū)動(dòng)模塊鏈接到內(nèi)核中。一旦驅(qū)動(dòng)程序被注冊(cè)到內(nèi)核表中,對(duì)驅(qū)動(dòng)程序的操作就和它的主設(shè)備號(hào)對(duì)應(yīng)起來(lái)了。當(dāng)應(yīng)用程序?qū)υO(shè)備文件進(jìn)行某種操作時(shí),內(nèi)核會(huì)從file-operations結(jié)構(gòu)中找到并去調(diào)用正確的函數(shù)。卸載模塊可輸入下面的命令:rmmod wireless.o。
(作者單位:廣東省交通高級(jí)技工學(xué)校)