TI PGA308模擬傳感器信號調(diào)理方案
0引 言
本文引用地址:http://www.ex-cimer.com/article/90075.htm與視頻采集卡等傳統(tǒng)圖像采集系統(tǒng)相比,嵌入式圖像采集系統(tǒng)具有體積小、成本低、可靠性高等優(yōu)點(diǎn),在智能交通、遠(yuǎn)距離監(jiān)控、汁算機(jī)視覺等領(lǐng)域應(yīng)用廣泛。本文所設(shè)計(jì)的嵌入式圖像采集系統(tǒng)是采用以ARM7為內(nèi)核的LPC2106作為主控芯片和,先控制CMOS傳感器OV6620進(jìn)行圖像采集,然后由LPC2106控制先將圖像數(shù)據(jù)存放人FIFO存儲器AL4V8M1440中,最后將圖像采集結(jié)果通過多種通信接口進(jìn)行傳輸,或者通過SD卡來提取該圖像采集系統(tǒng)中的圖像數(shù)據(jù)。該圖像采集系統(tǒng)僅用一個(gè)ARM芯片就實(shí)現(xiàn)了對OV6620的功能控制、時(shí)序同步、數(shù)據(jù)采集與處理等功能,系統(tǒng)結(jié)構(gòu)緊湊,功能強(qiáng)大。
1系統(tǒng)總體方案
如圖1所示,在檢測時(shí),光線會照射在被攝物體表面,ARM控制面陣CMOS攝像頭采集圖像,再把獲得的圖像數(shù)據(jù)送入FIFO存儲器中緩沖一下,然后通過串口傳輸給電腦,也可通過SD卡接口將圖像存放入SD卡中。
2系統(tǒng)硬件設(shè)計(jì)
2.1 ARM與CMOS的接口
OV6620是CMOS彩色/黑白圖像傳感器。它支持連續(xù)和隔行2種掃描方式,CIF與QCIF兩種圖像格式;最高像素為352×288,幀速率為26 fps;數(shù)據(jù)格式包括YUV、YCrCb、RGB三種,能夠滿足一般圖像采集系統(tǒng)的要求。OV6620內(nèi)部可編程功能寄存器的設(shè)置有上電模式和SCCB編程模式。本系統(tǒng)采用SCCB編程模式,連續(xù)掃描,8位RGB數(shù)據(jù)輸出。系統(tǒng)硬件結(jié)構(gòu)框圖如圖2所示。
ARM芯片選用具有ARM7TDMI內(nèi)核的LPC2106,通過LPC2106的GPIO模擬SCCB總線協(xié)議設(shè)置OV6620的功能寄存器。使用LPC2106中斷口引入OV6620的圖像輸出垂直同步信號VSYNC,以中斷方式同步圖像數(shù)據(jù)輸出。OV6620的Y0~Y7通道輸出的8位并行數(shù)據(jù)先通過AL4V8M440緩存,再進(jìn)入LPC2106中。
AL4V8M440為FIFO存儲器,作用是對CMOS傳感器所采集的圖像數(shù)據(jù)進(jìn)行緩存,調(diào)節(jié)ARM同CMOS之間速度的差異,從而采集到完整圖像。
2.2 ARM與SD卡接口
SD卡(secure digiatl memory card)是一種基于半導(dǎo)體快閃記憶器的新一代記憶設(shè)備。SD卡由日本松下、東芝及美國SanDisk公司于1999年8月共同開發(fā)研制。SD卡有著廣泛的應(yīng)用領(lǐng)域,音樂、電影、新聞等多媒體文件都可以方便地保存到SD卡中。本文加入該接口,可以方便提取圖像采集系統(tǒng)的數(shù)據(jù)。
SD卡支持SPI和BUS兩種接口模式,本系統(tǒng)采用SPI接口模式。SD卡的DAT0接到MOSI,CLK(時(shí)鐘線)接到SCK,CMD(命令線)接到MOSI,CS接到P0.14。SD卡支持單線和4線讀/寫,前者通過DAT0進(jìn)行數(shù)據(jù)串行傳輸,CS作為中斷口,最高傳輸速率25 Mbps;后者通過DAT0~DAT3分別進(jìn)行串行數(shù)據(jù)傳輸,最高傳輸速率100 Mbps。本系統(tǒng)選用的是前者,可以節(jié)省硬件資源,實(shí)現(xiàn)方便,ARM與SD卡接口的硬件結(jié)構(gòu)框圖如圖3所示。
3系統(tǒng)軟件設(shè)計(jì)
3.1 ARM與CMOS的軟件接口設(shè)計(jì)
3.1.1 OV6620的寄存器設(shè)置
由于SCCB不支持多字節(jié)的讀寫,NA位必須為高電平。另外,SCCB沒有重復(fù)起始的概念,因此在SCCB的讀周期中,當(dāng)主機(jī)發(fā)送完片內(nèi)寄存器地址后,必須發(fā)送總線停止條件。不然在發(fā)送讀命令時(shí),從機(jī)將不能產(chǎn)生Don't care響應(yīng)信號。
由于I2C和SCCB的一些細(xì)微差別,所以采用普通IO口P0.22,P0.23模擬SCCB總線的方式。SCCB的寫周期直接使用I2C總線協(xié)議的寫周期時(shí)序;而SC-CB的讀周期,則增加一個(gè)總線停止條件。OV6620功能寄存器的地址為0x00~0x50(其中,不少是保留寄存器)。通過設(shè)置相應(yīng)的寄存器,可以使OV6620工作于不同的模式。
例如,設(shè)置OV6620為低分辨率、自動曝光、自動白平衡和設(shè)置幀時(shí)鐘周期,需要進(jìn)行如下設(shè)置:
camera_set_register()為設(shè)置寄存器函數(shù),它的第1個(gè)參數(shù)OV6620_addr為宏定義的芯片地址0xC0,第2個(gè)參數(shù)為片內(nèi)寄存器地址,第3個(gè)參數(shù)為相應(yīng)的寄存器設(shè)定值。
3.1.2 OV6620采集過程
OV6620有4個(gè)同步信號:VSYNC(垂直同步信號)、FODD(奇數(shù)場同步信號)、HREF(水平同步信號)、PCLK(像素同步信號)。當(dāng)采用連續(xù)掃描方式時(shí),只使用VSYNC和HREF、PCLK三個(gè)同步信號,如圖2所示。
LPC2106的1個(gè)外部中斷引腳分別作為VSYNC信號的輸入,相應(yīng)的中斷服務(wù)程序分別為Vsync_IRQ(),HREF接LPC2106的普通IO口,PCLK接FIFO存儲器的讀時(shí)鐘。
圖像采集的基本流程為:當(dāng)用SCCB初始化好OV6620后,使能VSYNC對應(yīng)的中斷,在Vsync_IRQ()中斷服務(wù)程序中判斷是否已取得一幀圖像數(shù)據(jù)。若不是,則打開FIFO的寫使能,將一幀圖像數(shù)據(jù)寫入FIFO存儲器中;若是,則關(guān)閉FIFO的寫使能,CMOS不向FIFO存儲器,而等待ARM讀取FIFO存儲器的一幀圖像數(shù)據(jù)。
3.1.3圖像提取過程
圖像提取的基本流程為:當(dāng)采集數(shù)據(jù)已經(jīng)存放在FIFO中,利用ARM取出數(shù)據(jù),再傳輸給上位機(jī)。先對FIFO進(jìn)行讀復(fù)位,使FIFO指針指向首地址,再根據(jù)OV6620所輸出RGB數(shù)據(jù)的格式進(jìn)行讀取。
其中,提取過程最重要的是OV6620所輸出RGB數(shù)據(jù)格式,它影響到提取圖像的準(zhǔn)確性。本系統(tǒng)應(yīng)用的是8位輸出,其數(shù)據(jù)格式見表1所示。
從表1中可以看出,第一行Y通道是無效數(shù)據(jù)應(yīng)該去除,從第二行開始讀取,在一行之內(nèi),B、R數(shù)據(jù)只在奇次項(xiàng)出現(xiàn),G數(shù)據(jù)只在偶次項(xiàng)出現(xiàn)。而在每一行內(nèi),偶數(shù)點(diǎn)的R數(shù)據(jù)、B數(shù)據(jù)可通過分別對其兩側(cè)的2個(gè)點(diǎn)的R和B數(shù)據(jù)求平均值得到。
這樣,一幅圖像就提取完了,可以直接存成二進(jìn)制文件(本系統(tǒng)采用串口輸出到PC進(jìn)行顯示處理)或者存儲到SD卡上。
3.2 ARM與SD卡的軟件接口設(shè)計(jì)
ARM同SD卡接口有SPI和BUS兩種接口模式,本系統(tǒng)采用SPI接口模式,這樣可以直接利用LPC2106自帶的SPI接口進(jìn)行數(shù)據(jù)傳輸,實(shí)現(xiàn)方便。SD卡的SPI通道由以下4個(gè)信號組成:CS(片選),CLK(時(shí)鐘),DataIn(主機(jī)到卡的數(shù)據(jù)信號)和DataOut(卡到主機(jī)的數(shù)據(jù)信號)。CS是SD卡的片選信號線,在整個(gè)SPI操作過程中,必須保持低電平有效,CLK用于同步,DataIn不但傳輸數(shù)據(jù),還發(fā)送命令,同樣DataOut除了發(fā)送數(shù)據(jù)外還傳送應(yīng)答信號。
在SPI模式中,SD卡可以支持單塊以及多塊數(shù)據(jù)的讀寫。這里以單塊數(shù)據(jù)的寫入和讀取為例。其中單塊數(shù)據(jù)寫入SD卡的步驟是先向SD卡發(fā)送單塊寫命令CMD24以及寫地址,卡將發(fā)送給主機(jī)一個(gè)應(yīng)答信號,并且等待主機(jī)發(fā)送一個(gè)數(shù)據(jù)塊來,當(dāng)應(yīng)答信號reasult為0時(shí),說明可以發(fā)送數(shù)據(jù),一塊的大小為512個(gè)字節(jié)??▽γ總€(gè)發(fā)送給自己數(shù)據(jù)塊通過一個(gè)應(yīng)答信號確認(rèn),它有1字節(jié)長,當(dāng)其低4位十六進(jìn)制為0x05時(shí),數(shù)據(jù)塊才被正確寫入SD卡。所以在發(fā)送完單塊數(shù)據(jù)后,將判斷應(yīng)答信號是否為0x05。單塊數(shù)據(jù)寫入SD卡流程圖如圖4所示。而從SD卡讀取單塊數(shù)據(jù)的步驟是先向SD卡發(fā)送單塊寫命令CMD17以及讀地址,卡將發(fā)送給主機(jī)一個(gè)應(yīng)答信號,并且向主機(jī)發(fā)送單塊數(shù)據(jù),當(dāng)應(yīng)答信號reasult為0時(shí),說明可以接收數(shù)據(jù),接著判斷接收的第一個(gè)字節(jié)是否為起始字節(jié)0xFE,是的話就接收5112 B,否則就讀取數(shù)據(jù)失敗。寫入和讀取SD卡單塊數(shù)據(jù)流程圖如圖4、5所示。
4實(shí)驗(yàn)結(jié)果
根據(jù)以上的設(shè)計(jì)思路搭建了一個(gè)圖像采集系統(tǒng),進(jìn)行圖像采集實(shí)驗(yàn),并將所采集到的圖像數(shù)據(jù)添加上BMP位圖文件頭信息用bmp格式文件存入SD卡,便于在電腦上讀取SD卡上的圖像數(shù)據(jù)。
現(xiàn)以拍攝運(yùn)動中的商標(biāo)帶為例,在運(yùn)動中的某一時(shí)刻拍攝圖片如圖6所示。從圖6上表明該圖像采集系統(tǒng)可以實(shí)現(xiàn)實(shí)時(shí)采集,且所采集圖像的圖案清晰,準(zhǔn)確率較高,基本滿足設(shè)計(jì)的要求。
5結(jié)語
本文主要介紹了利用LPC2106硬件平臺和OV6620攝像頭進(jìn)行圖像采集,以及將采集到的圖像數(shù)據(jù)通過SD卡進(jìn)行圖像存儲的方法。與普通的視頻采集卡相比,此嵌入式圖像采集系統(tǒng)極大地簡化了系統(tǒng)結(jié)構(gòu),降低了系統(tǒng)設(shè)計(jì)成本,縮短了開發(fā)周期;圖像數(shù)據(jù)的采集與處理均由ARM芯片完成,因而降低了數(shù)據(jù)中轉(zhuǎn)過程中傳輸錯(cuò)誤的幾率,提高了系統(tǒng)的可靠性。
評論