邵陽學院信息工程系 張勇強 陽 泳 余建坤
?
基于STM32的圖像采集與顯示系統的設計與實現
邵陽學院信息工程系張勇強陽泳余建坤
【摘要】圖像顯示與圖像采集技術的發展與廣泛運用使得人們的生活與工作簡便、快捷。針對圖像采集與圖像顯示技術的研究具有重要的社會價值和經濟價值,圖像采集與顯示系統最為重要的就是圖像的處理能力與顯示清晰度的,基于這兩點問題,本文就以STM32F4系列單片機作為主控處理芯片、圖像采集則是使用OV7670攝像頭模塊,將采集圖片存儲在AL422芯片中并且其通過3.5寸的TFT液晶顯示屏顯示出來,期望對圖像采集與顯示技術的研究有所幫助。
【關鍵詞】圖像采集與顯示;stm32F4單片機;ov7670攝像頭模塊;AL422芯片
隨著對圖像采集技術與圖像顯示技術的研究,圖像采集與顯示系統在各個領域中得到了廣泛運用,例如運用在社會社交、安防領域、遠程醫療及實時監控等各個方面,所以針對攝像頭圖像采集與顯示技術具有重要意義,而且其在未來擁有廣泛的應用市場和發展前景。本文就使用STM32F4單片機所設計的簡易圖像采集系統為例子進行詳細的分析與論述,本系統核心在于通過OV7670攝像頭采集圖像數據,在通過STM32處理相應的數據,主要是以軟件的處理圖像數據以及將其通過TFT液晶屏顯示出來。
系統控制核心以STM32高位單片機來控制,通過軟件編程來控制OV7670攝像頭模塊的內部參數來實現其采集圖像數據,攝像頭將采集的圖像信息轉化成為數字信號以幀的形式存儲在AL422芯中,而單片機通過控制IO讀取的Al422里面的幀數據,之后通過相應的幀處理算法將數據顯示的TFT液晶屏上,所以本次系統主要分為圖像采集模塊、圖像存儲模塊、數據處理模塊以及數據顯示模塊等四個模塊,以下是每個模塊具體分析。
1.1數據采集
圖像數據的采集使用的OV7670攝像頭模塊,主要通過SCCB總線接口實現伽瑪曲線、白平衡、飽和度、色度等圖像處理功能,由于OV7670攝像頭模塊小巧方便,適用于各種場景。而為了提高的圖像質量,彌補電子設備的光學缺陷,使用如固定圖案噪聲、托尼、浮散等方式提高圖像質量質量,以方便得到清晰的彩色信息。同時使用OV7670模塊能夠有效的較少系統的外部硬件電路配置,將OV7670攝像頭模塊的功能與數據引腳直接與STM32單片機連接,通過軟件編程來實現控制OV7670模塊。
1.2數據存儲
采用AL422芯片作為視頻緩沖器,將攝像頭采集到的數據以幀的形式存儲到AL422芯片中,一幀圖像信息通常包含640x480或720x480個字節,而AL422芯片的容量足夠存儲一幀完整的數據信息,且能夠自動刷新芯片內部數據,而且對于本系統而言,AL422芯片價格比較便宜,適合本圖像系統的圖像數據的緩沖器,故使用作為圖像信息存儲器,通過軟件編程的來控制AL422芯片,實現數據存儲的與讀取。
1.3數據處理
為了能夠得到更加高質量的圖像,需要高位單片機來對攝像頭采集的信息進行處理,所以選擇arm cortex-m3內核的STM32F4單片機作為系統主控,STM32單片機操作簡單,數據處理能力高且快,并且擁有大容量得到Flash存儲器,所以綜合各方面需求,故采集用STM32F4單片機作為本系統的主控芯片。
1.4數據顯示
系統采用3.5寸的TFT彩屏顯示,分辨率為480x320,屏幕驅動則是由屏幕的廠商提供,不需要自己去寫,所以只需要控制屏亮度以及的顯示內容,此部分主要是通過編寫軟件程序來實現。
軟件程序主要是為了使用各種硬件資源需要配置相應的時鐘、IO、引腳以及各種總線接口,通過STM32的數據手冊進行相應的操作來控制。本次的攝像頭主要是的作為視頻圖像采集而不是拍照作用,所以此次可以不進行圖像格式的處理,例如BMP、JPG解碼操作,當然如果要提高此系統的功能,可以將圖片解碼操作加上去,增加照相功能。
2.1OV7670攝像頭模塊驅動控制編寫
攝像頭模塊根據圖像傳感器的不同可以分為CCD與CMOS兩種,本系統使用的OV7670是CCD型模塊,而FIFO緩沖器的則是用于驅動攝像頭與做圖像緩存的作用,所以對于攝像頭模塊模塊控制主要通過對其采集的數據進行處理,至于攝像頭驅動則有FIFO芯片進行驅動。程序只需要通過控制單片機引腳來時控制數據端口和攝像頭的控制接口即可,通過控制接口操作控制攝像頭模塊的寄存器,使得攝像頭進行采集數據。
2.2AL422存儲芯片驅動編寫
AL422芯片也是屬于FIFO器件、是一種先進先出的數據緩存器、沒有外部讀寫地址線,
通過編寫相應的程序要控制IO引腳進行數據的順序的寫入以及數據的讀出,AL422內部能夠自動刷新數據,主要是用于不同時鐘域之間的數據傳輸、主要有兩種結構:觸發導向結構和零導向傳輸結構,通過編寫STM32程序控制IO引腳對AL422芯片的數據的存入與讀出。
2.3圖像數據處理
幀數據處理為本系統主要部分,數據幀就是數據鏈路層的協議數據單元,它包括三部分:幀頭,數據部分,幀尾。其中,幀頭和幀尾包含一些必要的控制信息,比如同步信息、地址信息、差錯控制信息等。通過視頻幀數據的處理,已得到更高質量的圖像信息,所以此部分的幀數據算法的處理要求很高,本次采用的是MP4文件的分割算法處理,所謂“分割”,就是把大文件切成小文件,要實現mp4的分割,首先需要獲取到關鍵幀列表;然后選擇要分割的時間段(比如從關鍵幀開始);接著重新生成moov box(注意所有相關的box 以及 box size都需要改變);最后拷貝對應的數據,生成新文件。大致為這樣,所以為了提高圖像質量,此部分的算法處理要好。
2.4圖像顯示程序編寫
3.5寸的屏幕驅動由屏幕廠家提供,通過屏幕驅動編寫相應的顯示函數,將處理好的視頻幀數據通過顯示函數顯示在在液晶屏上。
綜合上述,通過本次設計中,通過對系統不斷測試與調試,最后能夠通過將OV7670攝像頭采集圖像通過TFT彩屏顯示出來,并且總結以下幾點經驗:(1)選取的攝像頭的類型要合適。不同類型的攝像頭有各自的適用環境,其在參數和功能上有很大的差別,選擇不合適會嚴重影響采集數據的準確性;(2)應將采集到的數據先存儲再進行數據處理。將采集到的數據線存儲起來再處理,一方面可以防止數據丟失,另外一方面可以避免一下處理太大的數據;(3)為了提高圖像質量,針對采集到的信息算法應該加強處理,以得到更高質量的圖像。
參考文獻
[1]李德明,韓劍,江國強.基于ov7670的圖像采集及顯示系統設計[J].儀器儀表學報,2010(08):30-33.
[2]龔躍玲,汪玲彥.基于stm32 的usb otg 數據通信的實現[J].微型機與應用,2011(30):32-34.
[3]何華芝.基于stm32的車載監控設備的硬件設計[J].電子測量技術,2008(12):139-141.
張勇強(1992—),男,福建三明人,大學本科,現就讀于邵陽學院信息工程系通信工程專業,研究方向:嵌入式系統。
陽泳(1994—),男,湖南人,瑤族,大學本科,現就讀于邵陽學院信息工程系電子信息工程專業 ,研究方向:嵌入式系統。
余建坤(1966—),男,湖南冷水江人,碩士,副教授,研究方向:現電子設計理論。
通訊作者:
作者簡介: