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