基于STM32F417的圖像采集系統(tǒng)設計
圖像采集模塊與STM32F417的接口電路示意圖如圖3所示。本文引用地址:http://www.butianyuan.cn/article/159684.htm
在圖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所示。
評論