基于STM32F417的圖像采集系統(tǒng)設計
摘要:設計了一種基于STM32F417的圖像采集系統(tǒng)。以STM32F417微控制器為核心,通過CMOS圖像傳感器OV7670獲取圖像信息,在微控制器的控制下,將圖像信息經FIFO緩存后存入SD卡中,并通過LCD實時預覽。該系統(tǒng)硬件資源精簡,采集的圖像顯示清晰,可擴展性強,適合便攜式圖像采集系統(tǒng)使用。
關鍵詞:圖像采集;STM32F417;OV7670;FIFO
引言
視頻圖像采集處理系統(tǒng)廣泛應用于工業(yè)控制、工業(yè)檢測、醫(yī)學、機器視覺等領域,并且視頻通信是3G時代多媒體應用的重要部分,日常生活中所見到的數碼相機、可視電話、電話會議等產品,實時圖像采集是其最核心的技術。圖像采集的速度與質量直接影響產品的整體效果。大多數嵌入式圖像采集系統(tǒng)都是基于DSP、ARM技術,一些系統(tǒng)比較復雜、成本高、實時圖像處理比較困難。本文所設計的基于STM32F417的圖像采集系統(tǒng)具有采集圖像質量無損、實時性好、功耗低、成本低等優(yōu)勢,適合在對信息采集的實時性和圖像質量方面有較高要求的系統(tǒng)中應用。
1 系統(tǒng)硬件平臺
圖像采集系統(tǒng)主要由STM32F417微處理器、CMOS攝像頭、幀緩存器、SD卡、LCD液晶屏及其他外設組成。圖像采集系統(tǒng)整體框圖如圖1所示。
1.1 核心微控制器
嵌入式微處理器以其高性能、低功耗等優(yōu)勢成為便攜式系統(tǒng)的最佳選擇。ST公司開發(fā)的STM32F417是基于ARM Cortex-M4內核的32位閃存微控制器。其主頻為168 MHz,在此工作頻率下其處理性能可達210 MIPS,且電流消耗僅為38.6 mA;支持多種低功耗工作模式;內部集成DSP和FPU指令,具備高性能的信號處理和浮點運算能力;同時帶一個8~14位并行照相機接口。此外,STM32F417片上集成1 MB的Flash和196 KB的SRAM。采用STM32F417作為圖像采集系統(tǒng)的控制核心,將大大提高系統(tǒng)的性能,降低功耗和成本。
1.2 CMOS攝像頭
CMOS攝像頭選用OmniVision公司的OV7670。其內嵌一個10位A/D轉換器,可輸出8位RGB/YCbCr/YUV格式的圖像數據,最高幀頻可達30幀/s,最大圖像分辨率為640×480,供電電壓為3.3 V。O7670帶有標準SCCB總線接口,并兼容I2C總線接口。
1.3 幀緩存器
選用美國Averlogic Technologies公司的大容量AL422B作為采樣處理的共享數據RAM。它是一款存儲容量為384 K×8 B的FIFO存儲芯片,工作頻率可達50 MHz。所有的尋址、刷新等操作都由集成在芯片內部的控制系統(tǒng)完成。在本設計中,1幀圖像數據包含320×240個像素,完整存儲一幀圖像需要153 600字節(jié),AL422B所具有的容量完全符合系統(tǒng)的設計要求。
1.4 SD卡
SD卡是一種基于半導體快閃存儲器的新一代記憶設備,有著廣泛的應用領域。本設計選用金士頓8 G的SD存儲卡存儲采集信息,方便系統(tǒng)對信息的進一步處理。
1.5 LCD液晶屏及其他外設
LCD液晶屏選用3.2寸TFT液晶屏320QVT,分辨率為240×320,其數據引腳直接與FSMC總線接口相連。其他外設包括LCD接口電路、ZigBe e無線模塊、JTAG調試電路、復位電路、晶振電路等。
1.6 圖像采集電路的設計
攝像頭圖像采集電路采用24 MHz有源晶振為OV7670提供系統(tǒng)時鐘。為了解決微處理器與攝像頭間的數據傳輸速率不一致問題,在二者之間加入一片AL422B幀緩存器,將攝像頭采集的圖像數據緩存后再送給微處理器。為實現將OV7670輸出的圖像信號自動地存入AL422B芯片,電路采用了一片與非門芯片74HC00,以便產生符合AL422B要求的寫時序。需要注意的是,由于AL422B芯片正常工作需要3.3 V供電,如果STM32 F417使用3 V電壓供電時,需要在兩芯片接口之間增加一個74HC573 D鎖存器,以滿足高/低電平的要求。圖像采集電路圖如圖2所示。
圖像采集模塊與STM32F417的接口電路示意圖如圖3所示。
在圖3中,利用STM32F417的PC0~PC7口接收OV7670輸出經過AL422B緩存后的8位圖像數據。OV7670的SIO_D、SIO_C接口與STM32F417的PA6、PA7引腳相連,通過該接口實現對攝像頭的初始化配置。STM32F417的PE0、PE1、PB7、PB8分別控制AL422B的時鐘信號、寫復位、讀復位以及讀使能信號。PB9與OV7670輸出的行掃描信號通過與非芯片實現對幀緩存器寫使能的控制,STM32F417的PA10引腳通過中斷的方式檢測攝像頭是否輸出一幀完整的圖像。
由于OV7670帶有標準SCCB接口,同時兼容I2C總線接口,本設計采用STM32F417產生的I2C總線信號模擬SCCB,實現對攝像頭內部寄存器的初始化配置以及對其行場同步信號、開窗及輸出格式的設置。對OV7670寄存器的配置方法如下:首先,發(fā)送OV7670的寫地址0x42,然后發(fā)送寫數據的目的寄存器地址和數據,從而初始化寫操作;通過發(fā)送OV7670的讀地址0x43,完成對讀操作的初始化,從而實現對OV7670攝像頭的初始化配置。
在對攝像頭工作參數配置過程中,將OV7670的寄存器DBLV設為0x80,對輸入時鐘倍頻數進行控制。設置寄存器BRIGHT、CONTRAS,控制圖像的亮度和對比度。通過寄存器REG75、REG76設置圖像邊緣增強上、下限。在對攝像頭測試階段,首先將寄存器ACALING_YSC設為0x85,顯示8色彩條,測試階段結束后將該寄存器設為0x00,進入非測試模式。
OV7670輸出同步信號包括:場同步信號VSYNC、行同步信號HREF、像素時鐘PCLK。根據OV7670數據手冊提供的同步信號時序圖可知,OV76 70攝像頭的像素時鐘PCLK與FIFO寫時鐘WCLK相連接,在PCLK有效時將數據寫入FIFO。場同步信號VSYNC為掃描一幀圖像定時,在兩個正脈沖之間完成一幀圖像的掃描。
當STM32F417第一次檢測到VSYNC下降沿時,系統(tǒng)第一次產生中斷,表明OV7670開始輸出一幀圖像,STM32F417將FIFO_WEN置高電平,當HREF有效(高電平)時,FIFO_WEN與HREF通過與非門使能FIFO的WCK,將有效圖像數據自動寫入FIFO中。
當第二次VSYNC中斷產生時,表明已經將一幀完整的圖像寫入FIFO,系統(tǒng)通過將FIFO_WEN置低,鎖存一幀圖像數據,實現圖像的靜態(tài)存儲。此時,STM32F417送給FIFO的讀時鐘RCLK一個上升沿,將數據從FIFO中讀出來,完成圖像數據的實時采集與提取。
1.7 存儲模塊
SD卡支持SPI和SD兩種模式,本設計采用SPI模式,將SD卡的CMD引腳與SFM32F417的SPI3_MOSI相連,CLK連接STM32F417的SPI3_SCK引腳,DATA0連接STM32F417的SPI3_MISO引腳,DATA3作為片選CS與STM32F417的PA15相連;在SD卡收到復位命令時,若CS為有效電平則啟動SPI模式,SD卡在SPI3_SCK的控制下通過DATA0完成數據的讀寫。
2 系統(tǒng)軟件設計
在圖像采集軟件設計中,對系統(tǒng)各個部分的初始化是最為關鍵的一步,只有對各部分初始化成功以后,才能實現圖像采集功能。圖像采集初始化程序主要包括對系統(tǒng)、SCCB接口、OV7670攝像頭、FIFO緩存器ALA22B等的初始化。在系統(tǒng)初始化設置成功以后,微控制器不斷監(jiān)測VSYNC信號電平變化,根據VSYNC產生的中斷情況,控制FIFO對圖像數據的讀/寫。圖像采集程序流程圖如圖4所示。
2.1 設置SCCB的相關參數
由于對攝像頭工作參數的配置主要通過SCCB來實現,因此,在系統(tǒng)進行軟件設計時,首先設計SCCB相關程序,進而通過SCCB設置攝像頭的相關參數。SCCB設計的重要函數如下。
(1)模擬SCCB接口初始化函數
(2)SCCB的起始信號函數
2.2 OV7670的寄存器配置
在完成SCCB初始化、起始與停止等相關程序后,配置OV7670寄存器完成工作參數的設置,包括顯示模式、輸出格式、增益控制等。OV76 70的寄存器配置如下:
2.3 AL422B的初始化
由于OV7670輸出的圖像信息首先存入AL422B進行緩存,因此,還需要對AL422B進行初始化。AL422B的初始化函數如下:
系統(tǒng)啟動后,首先利用各部分初始化函數對系統(tǒng)進行初始化,在整個系統(tǒng)初始化成功后,打開系統(tǒng)中斷,準備進行圖像采集。當VSYNC產生第一次中斷時,開始采集圖像信息,微處理器通過控制AL422B的讀寫使能完成圖像信息的實時采集,最終將提取的圖像數據存入SD卡。
3 實驗結果
圖像采集示意圖如圖5所示,預覽圖片大小為VGA(320×240)。實驗結果表明,本系統(tǒng)實現了對圖像的實時采集功能,同時圖像質量損失較小,顯示效果良好。
結語
本系統(tǒng)采用STM32F417實現了對OV7670的功能控制、時序同步、數據采集以及本地存儲等功能。在實際應用過程中,顯示效果良好,圖像質量損失小。該系統(tǒng)的圖像采集效率高、體積小、功耗低、可擴展性強。通過對采集到的信息進行壓縮編碼后,利用USB和ZigBee接口,圖像數據可以通過有線或無線網絡傳輸到上位機,可實現圖像信息的遠程采集。