陶杰,王欣
(軍械工程學(xué)院,石家莊050003)
本系統(tǒng)著眼于經(jīng)濟型視頻監(jiān)控系統(tǒng),可應(yīng)用于工業(yè)自動化設(shè)備、汽車安全駕駛、醫(yī)療設(shè)施或大樓供水、供電等系統(tǒng)的監(jiān)控,應(yīng)用前景廣闊、成本低廉、系統(tǒng)簡潔。
本系統(tǒng)采用的處理器是意法半導(dǎo)體公司的STM32F407,該處理器以32 位Cortex-M4 為內(nèi)核,具有浮點運算功能的低端高速ARM,其內(nèi)部集成了大量可供立即使用的資源,如TFT 液晶顯示器接口(Flexible Stactic Memory Control,F(xiàn)SMC)、攝像頭接口(Camera Interface)、DMA 控制器[1]等,方便且實用。
OV7670是OmniVision公司基于CMOS VGA 的圖像傳感器,可通過SCCB總線控制輸出整幀、子采集、取窗口等操作,其VGA 圖像最高可達到30fps[2]。其對外重要接口有:XCLK(時鐘輸入)、HREF(輸出行同步信號)、VSYNC(輸出場同步信號)、PCLK(輸出像素時鐘)、RESET(復(fù)位輸入信號)、PWDN、SIO_C(SCCB 總線時鐘信號)、SIO_D(SCCB總線數(shù)據(jù)信號)、D0~D7(攝像頭輸出數(shù)據(jù)信號)。
本系統(tǒng)采用的OV7670不帶FIFO,由STM32F407直接通過SCCB總線讀取數(shù)據(jù),并顯示在LCD上。
本系統(tǒng)硬件電路實現(xiàn)簡單,微處理器與系統(tǒng)主要外設(shè)連接如圖1所示,主要涉及STM32F407與TFT 液晶模塊連接以及與OV7670 圖像傳感器的連接,接口電路如圖2、圖3所示。
圖1 微處理器與系統(tǒng)主要外設(shè)連接
STM32F407與TFT 液晶模塊連接時,僅需將該模塊考慮成一個SRAM 即可,具體連接方式見圖2。唯一需要注意的是,液晶模塊RS和CS端與STM32F407的FSMC控制器的連接,本系統(tǒng)中RS連接FSMC_A0(PF0),CS連接FSMC_NE4(PG12),這些連接直接關(guān)系到軟件初始化時相關(guān)寄存器地址設(shè)置。
如圖3所示,STM32F407與OV7670連接時,OV7670的XLCK PC9 可 以 選 擇STM32F407 的 MCO1 或MCO2引腳,同時PCI SOIC和SOID PC2 引腳可以連接至I2C總線,也可以根據(jù)軟件設(shè)計定義其他I/O 引腳(本系統(tǒng)采用了這種方案),OV7670的其他端口連接至DCMI相應(yīng)接口即可。
圖2 TFT液晶顯示器與STM32F407接口電路
圖3 OV7670與STM32F407接口電路
本系統(tǒng)的軟件設(shè)計關(guān)鍵點在于系統(tǒng)時鐘的配置、TFT液晶模塊初始化、OV7670圖像傳感器初始化、SCCB總線時序模擬。軟件程序流程圖如圖4所示。
圖4 系統(tǒng)軟件流程
系統(tǒng)時鐘配置由RCC_Config()函數(shù)完成,函數(shù)內(nèi)部結(jié)構(gòu)如下:
TFT液晶模塊初始化關(guān)鍵點在于FSMC控制器的配置和寄存器地址的計算。STM32F407 的FSMC 使用了AHB3提供的時鐘信號,因而需要使能AHB3 時鐘以及FSMC控制器復(fù)用的其他I/O 端口所在時鐘信號。寄存器地址則需要根據(jù)液晶模塊的RS和CS端與FSMC接口的具體連接方式計算。由于STM32F4 系列微處理器的FSMC控制器對外設(shè)備地址映射從0x60000000 開始到0x9FFFFFFF結(jié)束,共有4個BANK 組成,每個BANK 大小為256 MB,每個BANK 又分為4個小塊,每塊大小為64 MB。
在TFT 液晶初始化程序中選擇了BANK1,且CS連接FSMC_NE4(PG12),故TFT 液晶模塊的寄存器起始地址為0x6C000000;RS連接FSMC_A0(PF0),故TFT 液晶模塊的RAM 為0x6C000000+20×2=0x6C000002。如果在TFT 液晶初始化程序中選擇了BANK1,且CS連接FSMC_NE1(PD7),TFT 液晶模塊的寄存器起始地址為0x60000000;RS連接FSMC_A18(PD13),TFT 液晶模塊的RAM 為0x60000000+218×2=0x60080000。
依次類推可以計算其他連接方法時,液晶模塊的寄存器起始地址和RAM 地址。代碼如下:
OV7670圖像傳感器初始化關(guān)鍵點有兩個,首先是微處理器的DCMI接口及DMA 部分的配置,這些配置主要體現(xiàn)在DCMI接口、DMA 控制器以及圖像傳感器用到的其他I/O 端口所在時鐘總線使能方面;其次是OV7670本身寄存器配置方面。由于篇幅所限,現(xiàn)將一些重要的函數(shù)列出,并給出重要注釋,僅供參考。
圖5 圖像效果
SCCB總線時序模擬可以根據(jù)SCCB標準中定義的時序進行程序編寫,這一部分為大家所熟知,不再贅述。
通過以上程序編寫、軟件和硬件的調(diào)試,最終得到比較滿意的結(jié)果,如圖5所示。
雖然視頻圖像顯示有點模糊,且畫面略有頓挫感,但是可以通過軟件、硬件的再優(yōu)化提升畫面效果,同時也為STM32F407和OV7670在視頻監(jiān)控系統(tǒng)中的應(yīng)用提供思路。
[1]STM32FX7 Datasheet[EB/OL].[2013-10].http://www.st.com.
[2]OV7670 Datasheet [EB/OL].[2013-10].http://www.ovt.com.