王露露,王 利,胡增康
(中北大學(xué)機(jī)電工程學(xué)院,山西 太原 030051)
視頻圖像采集系統(tǒng)是多媒體信息處理、視頻監(jiān)控等系統(tǒng)的前端子系統(tǒng),視頻圖像采集系統(tǒng)的實現(xiàn)是進(jìn)行數(shù)字圖像處理、多媒體和網(wǎng)絡(luò)傳輸?shù)那疤?。目前國?nèi)外的研究主要集中于圖像采集系統(tǒng)采集速度的提高、新算法的研究以及算法的優(yōu)化等方面[1],對于大容量視頻圖像數(shù)據(jù)存儲的研究較少。
在視頻圖像存儲技術(shù)領(lǐng)域,普通的外擴(kuò)XDRA M存儲容量小,存儲數(shù)據(jù)的速率較慢,占用I/O端口太多,影響視頻系統(tǒng)整體的傳輸速率。因此,文中提出了基于閃存卡的視頻圖像數(shù)據(jù)存儲方法。
傳統(tǒng)的視頻圖像采集系統(tǒng)如圖1所示。
圖1 傳統(tǒng)視頻圖像系統(tǒng)原理圖Fig.1 Schematic diagram of traditional video i mage system
其工作原理:視頻圖像采集端為CCD相機(jī),控制芯片將采集到的視頻圖像數(shù)據(jù)存儲到與控制芯片相連接的外擴(kuò)XDRA M,視頻圖像數(shù)據(jù)經(jīng)過計算機(jī)處理后顯示出來。
隨著CMOS工業(yè)的發(fā)展,近幾年來數(shù)字圖像傳感器得到迅速的發(fā)展。數(shù)字圖像傳感器在片內(nèi)對信號進(jìn)行數(shù)字化,即在片內(nèi)集成ADC。
OV7670是Omni Vision公司生產(chǎn)的1/6英寸,30萬像素低功耗CMOS彩色圖像傳感器,提供單片VGA攝像頭和影像處理器的所有功能。該產(chǎn)品VGA圖像最高達(dá)到30幀/s,用戶可以完全控制圖像質(zhì)量、數(shù)據(jù)格式和傳輸方式。所有圖像處理功能過程可以通過SCCB總線進(jìn)行內(nèi)部寄存器編程控制,SCCB總線與I2C 總線兼容[2-3]。
隨著單片機(jī)在各領(lǐng)域全面深入地發(fā)展與應(yīng)用,出現(xiàn)了高速、大尋址范圍、運算能力強(qiáng)的高速單片機(jī)。
C8051F340是CYGNAL公司生產(chǎn)的完全集成的混合信號片上系統(tǒng)型MCU,其資源豐富,外圍電路非常簡單,兼容性好。其主要特點為:1)高速、流水線結(jié)構(gòu)的8051兼容的微控制器內(nèi)核,速度最高可達(dá)48 MIPS;2)硬件實現(xiàn)增強(qiáng)型SPI串行接口;3)4個通用的16位定時器;4)多達(dá)40個端口I/O;5)具有5個捕捉/比較模塊和看門狗定時器功能的可編程計數(shù)器/定時器陣列(PCA)[4]。
SD卡(Secure Digital Memory Card)是一種基于半導(dǎo)體快閃記憶器的新一代記憶設(shè)備,它廣泛地使用在便攜式裝置上,例如數(shù)碼相機(jī)、個人數(shù)碼助理(PDA)和多媒體播放器等。
德城區(qū)1997年一、二、三產(chǎn)業(yè)的產(chǎn)值比例分別占地區(qū)經(jīng)濟(jì)發(fā)展總數(shù)的12.8%,58.02%,29.08%,到2017年3個產(chǎn)業(yè)的比例分別為2.13%,38.05%,59.80%.德城區(qū)第一、二產(chǎn)業(yè)比值有所下降,第三產(chǎn)業(yè)迅速發(fā)展,第二產(chǎn)業(yè)比值雖有所下降,但由于經(jīng)濟(jì)總量的增加,第二產(chǎn)業(yè)的經(jīng)濟(jì)產(chǎn)值也有大幅度上升.由于二、三產(chǎn)業(yè)的大幅度上升,大量工廠、服務(wù)產(chǎn)業(yè)占地面積擴(kuò)大,直接表現(xiàn)為城市建成區(qū)面積的擴(kuò)大.
SD卡由日本松下、東芝及美國San Disk公司于1999年8月共同開發(fā)研制。大小猶如一張郵票的SD記憶卡,重量只有2 g,但卻擁有高記憶容量、快速數(shù)據(jù)傳輸率、極大的移動靈活性以及很好的安全性[5]。
SD卡的出現(xiàn)提供了一個便宜的、結(jié)實的、卡片式的存儲媒介,容量從16 MB到最高32 GB不等,可為眾多應(yīng)用提供充足的外部存儲空間[6-7]。
視頻圖像采集系統(tǒng)由圖像數(shù)據(jù)采集模塊與圖像數(shù)據(jù)存儲模塊兩大部分組成。其包括:1)OV7670 CMOS圖像傳感器;2)FIFO緩存AL422B數(shù)據(jù)存儲器;3)C8051F單片機(jī);4)SD卡;5)TFT液晶。系統(tǒng)原理框圖如圖2所示。
圖2 系統(tǒng)原理框圖Fig.2 Schematic diagram of the system
圖1 與圖2經(jīng)過比較分析可知:采用傳統(tǒng)的視頻圖像采集系統(tǒng)有三大不足:1)CCD光敏陣列難與驅(qū)動電路及信號處理電路單片集成,并且CCD陣列驅(qū)動脈沖復(fù)雜,需要使用相對高的電壓;2)視頻圖像數(shù)據(jù)的存儲由于使用傳統(tǒng)的外擴(kuò)XRA M,存儲數(shù)據(jù)的速度較慢,其占用的I/O端口太多,浪費I/O端口資源,影響整個系統(tǒng)的傳輸速率;3)傳統(tǒng)的視頻數(shù)據(jù)顯示通過計算機(jī)顯示,很難脫機(jī)進(jìn)行視頻圖像數(shù)據(jù)處理,顯示結(jié)構(gòu)龐大,攜帶非常不方便。
基于上述分析,傳統(tǒng)視頻圖像采集系統(tǒng)不能滿足多媒體信息處理、視頻監(jiān)控等場合的應(yīng)用。因此,文中采用C8051F單片機(jī)為核心處理器控制OV7670數(shù)字圖像傳感器對視頻圖像數(shù)據(jù)進(jìn)行采集,使用SD卡對視頻數(shù)據(jù)進(jìn)行存儲,視頻數(shù)據(jù)的存儲速率有了極大的提高。
在視頻圖像采集系統(tǒng)中,圖像數(shù)據(jù)量龐大,圖像數(shù)據(jù)采樣速率很快,這就必須利用高速的存儲器件對采集的圖像數(shù)據(jù)進(jìn)行存儲。因此,文中選取SD卡對視頻圖像數(shù)據(jù)進(jìn)行存儲。SD卡的存儲有SPI和SD兩種工作模式,相對于SD模式,SPI模式可以簡化主體,降低成本設(shè)計,C8051F340單片機(jī)具有增強(qiáng)型SPI串行接口,對SD卡操作容易。
圖3是SD卡與C8051F340單片機(jī)的接口電路圖,單片機(jī)作為主機(jī),SD卡作為從機(jī),使用單片機(jī)SPI的三線模式進(jìn)行數(shù)據(jù)存儲。
圖3 SD卡與單片機(jī)的接口電路圖Fig.3 Circuit diagram of SD car d and MCU
SD卡的讀寫操作是以塊為單位進(jìn)行的,一個數(shù)據(jù)塊的長度通常是一個扇區(qū),為512 B。SD卡在SPI模式下寫操作有兩種,一種是單塊寫(命令為CMD24)操作,另外一種是多塊寫(命令為CMD25)操作。單塊寫每次只寫一個扇區(qū),多塊寫操作是從指定的扇區(qū)開始寫。多塊寫操作的速率比多次單塊寫同樣扇區(qū)數(shù)的操作速率要快,因此為了提高圖像數(shù)據(jù)的存儲速率,采用SD卡的多塊寫操作,每次寫6個扇區(qū)。
多塊寫命令是SD卡存儲數(shù)據(jù)的主要操作,主要對這部分程序進(jìn)行優(yōu)化與改進(jìn)。原程序使用C語言編寫,現(xiàn)改成C語言中嵌入?yún)R編的辦法來優(yōu)化程序。寫多塊命令采用匯編語言進(jìn)行編寫,在很大程度上提高了代碼的執(zhí)行速度,從而提高了SD卡存儲數(shù)據(jù)的速率。
SD卡實際的寫入速率是數(shù)據(jù)存儲模塊的關(guān)鍵,采用16位自動重裝載定時器T2對SD卡存儲速率進(jìn)行測試。C8051F340的時鐘頻率為48 MHz,T2的時鐘源為系統(tǒng)時鐘的1/12,為4 MHz,T2計數(shù)初值設(shè)為15 A0 H,定時時間為15 ms,開定時器T2中斷,用變量Counter_ms記錄定時器中斷的次數(shù)。將512 B數(shù)據(jù)重復(fù)寫入SD卡的扇區(qū)中,數(shù)據(jù)寫入SD卡的時間用變量ti me(單位:ms)表示,可采用公式(1)來計算。
式中,T MR2 H為T2高字節(jié)值,T MR2L為T2低字節(jié)值。Ti me用unsigned long型表示,占用4個字節(jié)。將C8051F340單片機(jī)與PC機(jī)通過串口相連,計算出的ti me值通過串口調(diào)試助手顯示。
本文把調(diào)試好的系統(tǒng)進(jìn)行了實驗,分別進(jìn)行了靜態(tài)、動態(tài)實驗,采集到了正確的實驗數(shù)據(jù)。
在圖像采集模塊中,要采集到一幀正確的圖像數(shù)據(jù),最為關(guān)鍵的是要判斷OV7670的系統(tǒng)時鐘XCLK與像素時鐘PCLK的同步信號,OV7670的幀起始信號VSYNC和行同步信號HREF,采用GW雙通道示波器觀察并記錄以上兩種正常工作的時序信號。圖4為XCLK與PCLK的時序關(guān)系,圖5為VSYNC與HREF的時序關(guān)系。
圖4 XCLK與PCLK時序時序關(guān)系Fig.4 Ti ming relation of XCLK and PCLK
圖5 VSYNC與HERF時序關(guān)系Fig.5 Ti ming relation of VSYNC and HERF
系統(tǒng)中OV7670的外部時鐘選擇16 MHz的有源晶振,根據(jù)圖4可以知道,XCLK時鐘與PCLK同步為16 MHz,信號時序正確。在圖5中,當(dāng)HREF為低電平期間,VSYNC高電平持續(xù)300μs后,變?yōu)榈碗娖綍r一幀圖像開始,由于VSYNC脈寬持續(xù)時間很短,圖像采集時采取檢測VSYNC信號由低電平到高電平的變化開始一幀圖像數(shù)據(jù)的采集。以上兩幅圖的時序關(guān)系說明OV7670正常工作,可以采集到正確的圖像數(shù)據(jù)。
圖6和圖7是使用C語言和匯編語言對SD卡的多塊寫CMD25命令進(jìn)行軟件編程,分別寫入30 000個扇區(qū)所用的時間,實驗結(jié)果通過串口助手顯示。
圖6 使用C語言CMD25命令SD卡寫入時間Fig.6 SD card writing ti me by using C
圖7 使用匯編CMD25命令SD卡寫入時間Fig.7 SD car d writing ti me by using ASM
如圖6所示,C語言編程SD卡寫入時間為:011E24 H,011D49 H,011D72 H,選取一個中間值011D55 H=73 045 ms,則可算出向SD卡存儲數(shù)據(jù)的速率為:30 000×512×8/(73 045×10-3×1 024×1 024)=1.6 MB/s。
如圖7所示,匯編語言編程SD卡寫入時間為:74B8 H,744FH,7512 H,選取時間744FH=29 775 ms,可算出C8051F340單片機(jī)向SD卡存儲數(shù)據(jù)的速率為:30 000×512×8/(29 775×10-3×1 024×1 024)=3.94 MB/s。
基于上述分析可知,SD卡采用多塊寫CMD25命令,且使用匯編語言對多塊寫操作進(jìn)行編程,SD卡的存儲速率最高可達(dá)3.94 MB/s,SD卡實際的存儲速率達(dá)到了數(shù)據(jù)存儲模塊的設(shè)計要求。
本文提出了基于閃存卡的視頻圖像數(shù)據(jù)存儲方法。視頻數(shù)據(jù)存儲模塊中用SD卡替代了普通的外擴(kuò)XDRA M,利用匯編語言對SD卡多塊寫操作命令進(jìn)行了程序優(yōu)化。實驗表明:SD卡的視頻圖像數(shù)據(jù)存儲速率有了很大的提高,數(shù)據(jù)存儲速率最高可達(dá)3.94 MB/s,系統(tǒng)可以滿足低速微型飛行器偵察任務(wù)對圖像數(shù)據(jù)存儲速率的要求。SD卡的存儲中沒有涉及到文件系統(tǒng),在PC機(jī)上只能看見圖像數(shù)據(jù)的編碼,下一步工作是將圖像數(shù)據(jù)以b mp文件的格式存入SD卡,在PC上直觀的查看存儲的圖像數(shù)據(jù)。
[1]郭祥東.基于FPGA的視頻圖像采集系統(tǒng)的設(shè)計[J].九江學(xué)院學(xué)報,2009,155(6):15-19.GUO Xiangdong.Design of video capture system based on FPGA[J].Journal of Jiu Jiang University,2009,155(6):15-19.
[2]OV7670/OV7171 CMOS VG(640×480 CA MERACHIPT M Sensor with Omni Pixel Technology.Omni Vision Advanced Inf or mation Preli minary Datasheet Version 1.4[Z].USA:Omni Vision Technologies,2006.
[3]喬永征,梁志毅.基于OV7670和FPGA的圖像采集系統(tǒng)設(shè)計[J].計算機(jī)測量與控制,2009,17(9):1 857-1 859.QIAO Yongzheng,LIANG Zhiyi.Image acquisition system based on OV7670 and FPGA[J].Co mputer Measurement & Control,2009,17(9):1 857-1 859.
[4]Silicon Laboratories.C8051F34 xdata sheet[DB/OL][2012-01-22].http://www.sila-bs.com.Revision 0.
[5]竇振中.基于單片機(jī)的嵌入式系統(tǒng)工程設(shè)計[M].北京:中國電力出版社,2008.
[6]何立明.單片機(jī)應(yīng)用技術(shù)選編[M].北京:北京航空航天大學(xué)出版社,1997.
[7]謝瑞和.串行技術(shù)大全[M].北京:清華大學(xué)出版社,2003.