基于CMOS圖像傳感器OV7720的網(wǎng)絡(luò)攝像機(jī)設(shè)計(jì)
3.3 相機(jī)控制模塊
相機(jī)控制模塊包括圖像采集傳感器OV7720和相機(jī)控制芯片OV529。OV7720內(nèi)含A/D轉(zhuǎn)換和DSP,能夠直接將圖像信號數(shù)字化,并通過相機(jī)接口向OV529直接輸出并行的數(shù)字化圖像信號。
OV529自帶的MCU進(jìn)行各種控制,它通過串行相機(jī)控制總線(SCCB)與OV7720交互控制信息實(shí)現(xiàn)對圖像傳感器的控制和數(shù)據(jù)采集。OV529包含一個(gè)壓縮引擎,對從OV7720采集的圖像信息幀進(jìn)行壓縮,壓縮后的信號經(jīng)OV529的串行通信傳給主控芯片AT91SAM7X512,再經(jīng)AT91SAM7X512上的MAC層處理,通過網(wǎng)絡(luò)接口將視頻流發(fā)送到網(wǎng)絡(luò)上。
4 軟件設(shè)計(jì)
嵌入式Linux系統(tǒng)由4個(gè)部分組成:引導(dǎo)內(nèi)核啟動的文件bootloader,Linux內(nèi)核文件kernel,虛擬磁盤文件ramdisk和用戶空間文件use-r。它們分別被放在DATAFLASH內(nèi)的4個(gè)分區(qū)模塊中。根據(jù)不同模塊的具體功能采用不同的文件系統(tǒng):bootloader,kernel,ramdisk。移植完成后不需要動態(tài)改變,使用較節(jié)省空間的ROMFS只讀文件系統(tǒng)。user模塊內(nèi)放置一些可以動態(tài)更新的配置文件等。需要進(jìn)行較多次的讀/寫操作,所以使用支持動態(tài)擦寫保存的JFFS2文件系統(tǒng)。
4.1 CGI控制程序設(shè)計(jì)
應(yīng)用程序接口(Common Gateway Interface,CGI),提供Web Server執(zhí)行外部程序的通道,CGI程序編譯成可執(zhí)行文件,放在服務(wù)器端運(yùn)行,服務(wù)器根據(jù)用戶的請求調(diào)用相應(yīng)的CGI程序,并將CGI程序得到的動態(tài)信息封裝到頁面中,發(fā)送到用戶瀏覽器上。該系統(tǒng)CGI的工作過程是在PC機(jī)端的IE瀏覽器中輸入網(wǎng)絡(luò)攝像機(jī)IP地址,嵌入式網(wǎng)絡(luò)服務(wù)器根據(jù)要求,將相應(yīng)的控制頁面反饋給IE瀏覽器,用戶填寫表單,然后提交,CGI程序提取信息,并根據(jù)得到的信息作相應(yīng)的處理,如調(diào)節(jié)相機(jī)的轉(zhuǎn)向、焦距等。CGI模塊的設(shè)計(jì)主要包括三部分:嵌入式Web服務(wù)器的配置、HTML頁面的編寫、CGI程序的設(shè)計(jì)。嵌入式Web服務(wù)器采用的是Apache,其配置是以配置文件的形式提供,放在Ramdisk中,其配置主要涉及配置根文件路徑、配置CGI外部程序所放的路徑和配置環(huán)境變量三個(gè)方面。網(wǎng)頁編寫采用HTML與SHTML相結(jié)合的方式。HTML的解析速度較快,SHTML可以在普通網(wǎng)頁中嵌入外部CGI程序,通過這種方式將系統(tǒng)的默認(rèn)配置反饋給客服端。CGI程序采用的是C語言和Shell腳本相結(jié)合的方式,具體編寫過程與Linux下編程相同。
4.2 解碼程序
該部分已成功做成Toolbox插件,該插件只要在PC機(jī)上注冊安裝后,就可方便地被網(wǎng)頁調(diào)用,從而實(shí)現(xiàn)在PC機(jī)上實(shí)時(shí)觀看視頻。安裝后的實(shí)圖如圖2所示。本文引用地址:http://www.ex-cimer.com/article/162198.htm
5 結(jié)語
本文利用CMOS圖像傳感器設(shè)計(jì)了一款嵌入式網(wǎng)絡(luò)攝像機(jī)。經(jīng)測試,系統(tǒng)穩(wěn)定、可靠、實(shí)時(shí)性好,圖像清晰度明顯好于同價(jià)位的產(chǎn)品,完全可滿足目前網(wǎng)絡(luò)攝像頭市場對中、低端產(chǎn)品的要求,具有良好的市場前景。
評論