《電子技術應用》
您所在的位置:首頁 > 微波|射頻 > 設計應用 > 基于CMOS圖像傳感器OV7720的網絡攝像機設計
基于CMOS圖像傳感器OV7720的網絡攝像機設計
劉春保 洪鎮(zhèn)南 張小偉 廖旭輝
摘要: 本文利用CMOS圖像傳感器設計了一款嵌入式網絡攝像機。經測試,系統穩(wěn)定、可靠、實時性好,圖像清晰度明顯好于同價位的產品,完全可滿足目前網絡攝像頭市場對中、低端產品的要求,具有良好的市場前景。
Abstract:
Key words :

0 引言
    CCD和CMOS圖像傳感器作為固體圖像傳感器領域的競爭對手,在性能表現上各有優(yōu)劣。相較于CCD圖像傳感器,CMOS圖像傳感器的功耗低,結構簡單,集成度高,體積小,成本低,這就使產品的便攜性和可靠性得以極大的提高。由于CMOS圖像傳感器的內部結構,使其具有高抗輻照和強抗干擾能力,因此在圖像傳感器、天文觀測、小衛(wèi)星、星敏感器等應用領域表現極大的應用潛力。另外,基于CMOS圖像傳感器的加工工藝,可以較容易地制造出大面陣的CMOS體傳感器器件,更加擴展了CMOS圖像傳感器的應用范圍。
    網絡攝像機具有聯網功能,又最大限度地保持了模擬攝像機的功能,無疑是監(jiān)控領域的新星。網絡攝像機一般使用成品CCD攝像頭做視頻捕捉前端,CCD攝像頭在硬件成本中占了很大的分量,且CCD攝像頭輸出的是模擬信號,系統中必須加視頻A/D轉換器。開發(fā)用于網絡攝像機的CMOS攝像頭對降低設計成本和復雜度有重要意義。

1 圖像采集系統采用的芯片介紹
1.1 圖像傳感器OV7720

    OV7720是一個高集成度的CMOS Camera Chip傳感器,在單芯片上提供了VGA圖像處理器的全部功能。OV7720的一個獨特性能就是有很大的主光線角度,它能顯著減小模塊高度,而高度是讓相機能夠裝配進當前超薄筆記本電腦的關鍵因素;OV7720的第二大亮點是能夠工作在60f /s的VGA模式下,或工作在120 f/s的QVGA模式下實現設備的最佳性能。OV7720內部集成了對圖像傳感器的完善控制,包括曝光控制、伽馬校正、白平衡、色彩飽和以及色調控制,所有的圖像處理功能都可以通過它的串行相機控制總線(SCCB)接口實現對內部控制寄存器組的編程。OV7720采用專有傳感器技術來提高圖像質量,并通過減少或消除諸如固定圖案噪聲、拖尾和浮散等不良因素來產生明晰、純凈和完全穩(wěn)定的彩色圖像,其主要技術參數如表1所示。


1.2 相機控制芯片OV529
   
OV529是一種相機控制芯片,它可以將來自圖像傳感器(例如OV7720)的信號轉換成壓縮圖像格式的數據。圖1給出了OV529與傳感器、主機以及E2PROM之間連接的邏輯關系。該芯片具有的技術特征是:可用于移動PDA系統、筆記本電腦中低成本、低功耗、高分辨率的單片相機控制器;不需要附加DRAM;有8位并行相機芯片數據接口;內建采樣電路、箝位電路和窗口電路;可用于VGA,CIF,SIF,QCIF,160×128,160×120,128×128,80×64以及更多的圖像分辨率;內建彩色轉換電路可用于4 b/8 b灰度,16 b YUV,12 b/16 b/24b RGB圖像預覽;有串行相機控制總線、內置微控制器、可選的串行E2PROM存儲器、通用I/O引腳和2個主機接口(RS 232,5wire)等。



2 系統總體設計
2.1 系統組成

    系統總體設計分為硬件設計和軟件設計兩個部分。硬件設計模塊主要包括微控制器模塊、網絡接口模塊和相機控制模塊三部分。微控制器模塊主要由主控芯片、DATAFLASH和SDRAM組成,其中主控芯片是整個系統的核心,負責整個系統的調度工作。DATAFASH里固化了嵌入式Linux內核及其文件系統、應用軟件和系統配置文件。SDRAM作為內存供系統運行使用。網絡接口模塊主要是配合主控芯片傳送MPEG-4碼流。相機的控制模塊主要是由OV529和OV7720芯片組成,通過SCCB(Serial Camera Control Bus)將傳感器的視頻流傳送到OV529;OV529通過控制OV7720將視頻流轉化成MEPG-4碼流,并完成轉發(fā)控制相機命令的功能。當系統啟動時,微控制器通過SPI將Linux內核轉入SDRAM中,系統從SDRAM中啟動。
    軟件設計部分主要包括嵌入式Linux移植、CGI控制程序和MEPG-4解碼程序三個部分。嵌入式Linux系統存放到由AT91SAM7X256控制的DAT-AFLASH中,它負責整個系統軟件的調度工作。CGI控制程序主要負責對攝像機的控制和對MPEG-4視頻流的相關設置。MEPG-4解碼程序主要負責對通過網絡得到的MPEG-4數據流的解碼工作。
2.2 SCCB通信規(guī)范
    SCCB(Serial Camera Control Bus)是OminiVision公司定義的主從模式串行通信協議,用于控制該公司圖像傳感器系列芯片的內部寄存器。該協議有通信使能信號SIO_E、時鐘信號SIO_C和數據信號SIO_D,在簡化引腳的封裝中不再提供SIO_E引腳,協議也變成了兩線串行通信。協議支持的最高串行通信速率是400 Kb/s,規(guī)定圖像傳感器在通信中只能作為SLAVE工作。一SCCBMASTER可以控制1~8個SLAVE工作,由不同的ID來識別,在只有一個SLAVE時固定SLAVE的ID為42H(寫)和43H(讀)。該協議符合網絡攝像機CPU的I2C口時序子集,設計中OV529作為SCCB的MASTER,并且只帶1個SLAVE OV7720。協議要求數據線必須在時鐘信號高電平期間穩(wěn)定,在低電平時更新。協議支持3字節(jié)寫、2字節(jié)寫和2字節(jié)讀三種傳輸模式。傳輸數據時每個字節(jié)包括9位串行數據位,除了8位數據,還有第9位不相關位或NA位,用在有多個SLAVE的系統來標識通信是否完成。SLAVE可以用兩種方式應答該位,一種是正在被寫的SLAVE在收到數據后驅動該位為0表示成功;另一種是SLAVE不應答該位,這種情況下所有SLAVE的第9位保持懸空。在3字節(jié)寫周期MASTER必須提供子地址,即芯片中寄存器的地址,第3字節(jié)為所寫數據。讀周期不提供子地址,但必須由MASTER把數據后的NA位(第9位)驅動為高電平。所以在每個讀周期前必須有3字節(jié)或2字節(jié)寫操作,使SLAVE獲得寄存器地址,其中的2字節(jié)寫周期并沒有寫數據,它的用途是在讀操作前提供給SLAVE子地址。

3 硬件系統實現
3.1 微控制器模塊
   
微控制器模塊是該系統的核心部件,采用Atmel公司的ARM7芯片AT91SAM7X256作為系統的主控芯片。它是一款Atmel 32位ARM RISC處理器小引腳數FLASH微處理器,主頻為55 MHz,處理速度快,功能強,性價比高,能很好地滿足嵌入式Linux系統的需求。它在系統中的主要作用是在系統上電時配置其他芯片的功能寄存器,在正常工作狀態(tài)下調度整個系統工作,通過片內以太網控制器控制物理層芯片發(fā)送碼流,并通過片內的SPI總線實現對外圍DATAFLASH和SDRAM的控制。
3.2 網絡模塊
   
AT91SAM7X256的在片以太網卡端口與網絡物理層芯片DM9161E的MII接口通信。發(fā)送數據時首先置發(fā)送使能信號ETXEN有效。數據發(fā)送端ETX0~ETX1與DM9161E的ETX0~ETX1引腳對應連接,作為數據發(fā)送通道,以DM9161E的時鐘信號REF_CLK發(fā)送數據。數據接收端ERX0~ERX1與DM9161E的RXD0~RXD1引腳對應連接,作為數據接收通道。管理時鐘信號EMDC和管理數據輸入/輸出信號EMDIO用于芯片控制參數的寫入和讀取。DM9161E的MDINTR端用來產生中斷信號。片內以太網卡通過DMA通道進行數據發(fā)送,不影響AT91SAM7X256的正常運行。首先正確設置傳送控制寄存器和傳送地址寄存器的傳送數據塊字節(jié)數、數據塊存儲首地址等參數,隨后依次從指定數據存儲區(qū)地址讀取數據,送入內部發(fā)送緩沖器中,由MAC對數據進行封裝發(fā)送,同時記錄已傳送字節(jié)數,直到數據塊發(fā)送完畢。當發(fā)送完一組數據后,發(fā)出DMA中斷請求,由AT91SAM-7X256進行相應的處理。整個網絡子系統電路由AT91SAM7X256控制和調度。
3.3 相機控制模塊
   
相機控制模塊包括圖像采集傳感器OV7720和相機控制芯片OV529。OV7720內含A/D轉換和DSP,能夠直接將圖像信號數字化,并通過相機接口向OV529直接輸出并行的數字化圖像信號。
    OV529自帶的MCU進行各種控制,它通過串行相機控制總線(SCCB)與OV7720交互控制信息實現對圖像傳感器的控制和數據采集。OV529包含一個壓縮引擎,對從OV7720采集的圖像信息幀進行壓縮,壓縮后的信號經OV529的串行通信傳給主控芯片AT91SAM7X512,再經AT91SAM7X512上的MAC層處理,通過網絡接口將視頻流發(fā)送到網絡上。

4 軟件設計
   
嵌入式Linux系統由4個部分組成:引導內核啟動的文件bootloader,Linux內核文件kernel,虛擬磁盤文件ramdisk和用戶空間文件use-r。它們分別被放在DATAFLASH內的4個分區(qū)模塊中。根據不同模塊的具體功能采用不同的文件系統:bootloader,kernel,ramdisk。移植完成后不需要動態(tài)改變,使用較節(jié)省空間的ROMFS只讀文件系統。user模塊內放置一些可以動態(tài)更新的配置文件等。需要進行較多次的讀/寫操作,所以使用支持動態(tài)擦寫保存的JFFS2文件系統。
4.1 CGI控制程序設計
   
應用程序接口(Common Gateway Interface,CGI),提供Web Server執(zhí)行外部程序的通道,CGI程序編譯成可執(zhí)行文件,放在服務器端運行,服務器根據用戶的請求調用相應的CGI程序,并將CGI程序得到的動態(tài)信息封裝到頁面中,發(fā)送到用戶瀏覽器上。該系統CGI的工作過程是在PC機端的IE瀏覽器中輸入網絡攝像機IP地址,嵌入式網絡服務器根據要求,將相應的控制頁面反饋給IE瀏覽器,用戶填寫表單,然后提交,CGI程序提取信息,并根據得到的信息作相應的處理,如調節(jié)相機的轉向、焦距等。CGI模塊的設計主要包括三部分:嵌入式Web服務器的配置、HTML頁面的編寫、CGI程序的設計。嵌入式Web服務器采用的是Apache,其配置是以配置文件的形式提供,放在Ramdisk中,其配置主要涉及配置根文件路徑、配置CGI外部程序所放的路徑和配置環(huán)境變量三個方面。網頁編寫采用HTML與SHTML相結合的方式。HTML的解析速度較快,SHTML可以在普通網頁中嵌入外部CGI程序,通過這種方式將系統的默認配置反饋給客服端。CGI程序采用的是C語言和Shell腳本相結合的方式,具體編寫過程與Linux下編程相同。
4.2 解碼程序
   
該部分已成功做成Toolbox插件,該插件只要在PC機上注冊安裝后,就可方便地被網頁調用,從而實現在PC機上實時觀看視頻。安裝后的實圖如圖2所示。



5 結語
   
本文利用CMOS圖像傳感器設計了一款嵌入式網絡攝像機。經測試,系統穩(wěn)定、可靠、實時性好,圖像清晰度明顯好于同價位的產品,完全可滿足目前網絡攝像頭市場對中、低端產品的要求,具有良好的市場前景。

此內容為AET網站原創(chuàng),未經授權禁止轉載。