新型網(wǎng)絡(luò)數(shù)字攝像系統(tǒng)的設(shè)計
1 圖像處理模塊
1.1 芯片介紹 圖像采集芯片采用OmniVision公司的CMOS彩色圖像傳感器OV6620[1]。在它內(nèi)部集成了一個356×292的彩色圖像陣列。該圖像傳感器能對所拍攝的圖像進行預(yù)處理,包括自動曝光控制、自動白平衡調(diào)節(jié)、gamma校正、自動圖像增強;并可通過與DSP芯片相連的串行通信接口,對傳感器內(nèi)部的92個寄存器的參數(shù)進行設(shè)置。
圖像壓縮芯片采用TI公司的TMS320VC5416[2]定點運算數(shù)字信號處理器(DSP),其內(nèi)部采用一種改進型的哈佛總線結(jié)構(gòu)(一條程序總線,三條數(shù)據(jù)總線),數(shù)據(jù)總線寬度為16
bit。分開的數(shù)據(jù)和指令空間使該芯片具有高度的并行操作能力,在單周期內(nèi)允許指令和數(shù)據(jù)同時存取,再加上其高度優(yōu)化的指令集,使得該芯片具有很高的運算速度,最高可達
160MIPS。
VC5416芯片的外部程序存儲空間為8M×16bits,外部數(shù)據(jù)存儲空間為64K×16bits。在芯片內(nèi)部還集成了128K×16bits片上存儲器。該芯片具有多種片上外部設(shè)備單元,包括一個16位計時器,一個6通道DMA傳輸控制器,三個帶緩沖器的串行通信接口(McBSP
)和一個8/16位的主機通信接口(HPI8/16)。
1.2 功能介紹
圖像處理模塊主要負責模擬圖像的采集、數(shù)字化、壓縮等工作。首先,在系統(tǒng)加電運行后,由NetMCU模塊對VC5416芯片復(fù)位,然后VC5416芯片運行固化在芯片內(nèi)的BootLoader程序,將存儲在外部程序存儲器上的應(yīng)用程序復(fù)制到內(nèi)部存儲器中,并開始運行應(yīng)用程序。應(yīng)用程序的任務(wù)主要有以下三個方面:
(1)通過VC5416芯片的1號串行通信接口(McBSP1)對OV6620的內(nèi)部寄存器進行參數(shù)配置。主要參數(shù)包括:將輸出圖像分辨率設(shè)置為352×288,將輸出圖像幀的速率設(shè)置為25幀/秒,將數(shù)字圖像的輸出格式設(shè)置為YUV分量4:2:2格式。
(2)將OV6620芯片輸出的圖像數(shù)據(jù)利用JPEG算法進行數(shù)字圖像壓縮。在本設(shè)計中采用一種改進的JPEG算法[4]。將二維DCT變換分解成兩次一維快速DCT變換。對8×8象素塊的DCT變換,共需176次乘法和464次加法,比標準DCT算法的1024次乘法和896次加法在運算速度上有極大提高。
(3)VC5416芯片通過與NetMCU模塊相連的0號串行通信接口(Mc BAP0),接收改變傳輸圖像的分辨率、幀速、曝光時間等參數(shù)的命令,并及時調(diào)整OV6620芯片的內(nèi)部寄存器參數(shù)。
OV6620芯片和VC5416芯片之間存在大量的數(shù)據(jù)傳輸,因此在系統(tǒng)中采用一片ALTERA公司的FPGA(FLEX10K20)芯片作為數(shù)據(jù)傳輸接口,代替VC5416芯片管理外部數(shù)據(jù)存儲區(qū)。在FPGA芯片中集成了一個512×16bits的FIFO和一個存儲控制器。通過OV6620芯片輸出的圖像象素移位脈沖和圖像的行、場同步脈沖的控制,將原始圖像數(shù)據(jù)存入FIFO中。由于JPEG圖像壓縮以8×8象素塊基本運算單位,需要存儲控制器將FIFO中以行順序輸入的原始圖像數(shù)據(jù)進行存儲地址調(diào)整,變換成按8×8像素塊順序存入外部數(shù)據(jù)存儲區(qū)。同時,由于受VC5416芯片的外部數(shù)據(jù)存儲區(qū)容量的限制,存儲控制器將一幀原始圖像數(shù)據(jù)分成上下兩個半?yún)^(qū),各占用一個64KB地址空間。當VC5416芯片讀數(shù)據(jù)時,存儲控制器會自動在這兩個半?yún)^(qū)之間切換,使得DSP芯片能夠處理一幀圖像。
2 NetMCU模塊
2.1 芯片介紹
本系統(tǒng)采用三星公司的S3C4510B[3]芯片作為主控制器。芯片內(nèi)部結(jié)構(gòu)見圖3。S3C4510B芯片集成了ARM公司的32位精簡指令集處理器ARM7TDMI核。ARM7TDMI核采用馮·諾依曼體系結(jié)構(gòu),使用單-32位總線傳送指令和數(shù)據(jù),使用三級流水線操作以提高處理器執(zhí)行速度。ARM7TDMI核可以使用兩種指令集:一種是32位ARM指令集;一種是16位Thumb指令集。Thumb指令集是ARM指令集的子集,但它能提供比16位體系結(jié)構(gòu)更高的性能、比32位體系結(jié)構(gòu)更高的代碼密度。因此,Thumb指令集使ARM7TDMI核非常適合有存儲器寬度和代碼密度限制的嵌入式場合。 S3C4510B芯片的存儲空間最大可達16M×32bits(包括程序存儲區(qū)、數(shù)據(jù)存儲區(qū)和I/O設(shè)備區(qū)),它內(nèi)部集成了一個存儲控制器,具有自動刷新存儲區(qū)數(shù)據(jù)和自動插入可編程等待周期的功能,可以支持多種類型的存儲芯片(包括ROM、SRAM、FLASH和DRAM)。在芯片內(nèi)部還集成有8K×8bits的指令/數(shù)據(jù)Cache,采用pseudo-LRU(Least Recently Used)算法,大大提高了芯片的性能。
評論