隨著技術的進步,嵌入式系統的功能越來越強。現在基于高端32位ARM處理器的系統已經具備很強的信號處理能力,可以實時處理圖像數據,實現網絡可視電話、人眼虹膜識別和指紋識別等功能,但成本較高。在低端的嵌入式系統中,由于處理器的處理能力有限,圖像數據的數據量又比較大,實現實時圖像數據的處理比較困難,但通過采取一定的措施可以實現低成本的圖像采集和處理系統。圖像采集可以采用模擬攝像頭、CCD圖像傳感器或CMOS數字圖像傳感器。CMOS數字圖像傳感器由于其高性價比和直接輸出數字圖像數據而得到最為廣泛的應用。MT9V011就是一個這樣的CMOS數字圖像傳感器。本文介紹MT9V011 CMOS數字圖像傳感器在一個低端ARM7處理器系統中的應用。
1 圖像采集系統的應用現狀
實時圖像采集系統已經廣泛應用于手機、PDA、實時監控系統等高端嵌入式系統中。在這類系統中,處理器具有以下特點:具有較高的處理速度可以實時處理采集回來的大量圖像數據;具有較大的內存可以存放若干幀完整的圖像數據;具有豐富的外設接口可以比較容易的擴展大容量的存儲設備如CF卡、SD存儲卡等來備份一些圖像數據。然而在一些測控領域也需要采集圖像,以使管理人員能夠直觀的監控被測對象。由于被測量的變化比較緩慢不需要實時采集圖像,每隔一段時間傳回監控中心一幅圖像就能滿足要求。在這類系統中,處理器主要是面向控制領域,它們的特點是內存比較小,處理速度比較慢,外設接口也不多。因此在這類低端嵌入式系統中增加圖像采集功能要面臨處理器處理能力有限和硬件資源受限制的問題。
2 CMOS圖像傳感器MT9V011介紹
以創新的CMOS活躍象素技術,美光的超低功耗MT9V011圖像感應器融合了上乘的VGA分辨率和標準電荷耦合器件(CCD)所不具備的很多優越功能。它能以高達30fps的幀頻輸出高質量的逐行掃描圖像,而電池壽命卻比CCD競爭產品大幅度延長,因此成為手機、掌上電腦和PC機USB攝像頭的理想選擇。
MT9V011多種精密的相機功能(包括窗口化、行鏡像變換、左右和上下圖像翻轉、電子旋轉快門(ERS)、列鏡像變換)已被直接集成到芯片上,從而減少了CCD通常需要的額外組件,最大程度地縮小了產品尺寸和主板空間。其變量功能(也直接包括在芯片內)如可編程增益、幀頻和曝光控制等可以在默認模式操作,也可以由最終用戶通過一個簡單的兩線I2C接口進行編程。
圖1 CMOS攝像頭芯片MT9V011工作時序
MT9V011默認輸出的是一幅640ⅹ480象素的圖像。MT9V011芯片的工作時序如圖1所示。LINE_VALID是行有效信號,PIXCLK是象素時鐘信號,DOUT9-DOUT0是10位的圖像數據,FRAME_VALID是幀有效信號。其中LINE_VALID有效期間共有640個PIXCLK時鐘周期,FRAME_VALID有效期間共有480個LINE_VALID有效信號。默認情況下圖像數據從第一行第一列開始在PIXCLK信號的上升沿順序輸出。
MT9V011輸出的圖像格式是RGB Bayer類型,如圖2所示。每一個點只有一種顏色,箭頭所指的是第0行第0列。假設P0-0(9:0)至P0-639(9:0)是第0行的所有象素點的顏色數據,P1-0(9:0)至P1-639(9:0)是第1行所有點的顏色數據,則P0-0(9:0)代表綠色的顏色值,P0-1(9:0)代表紅色的顏色值,P0-2(9:0)代表綠色的顏色值,P1-0(9:0)代表的是藍色的顏色值,P1-1(9:0)代表的是綠色的顏色值,P1-2(9:0)代表的是藍色的顏色值等等。點P0-0、P0-1、P1-0、P1-1組合在一起便具備了R、G、B三色,可以合成一個真彩色的點在PC機屏幕上顯示。
圖2 MT9V011輸出的數字圖像格式
3 系統設計方案
圖3 嵌入式圖像采集系統框圖
本圖像采集系統基于菲利普的低端ARM7嵌入式微處理器
LPC2104,CMOS攝像頭芯片采用美光科技公司的MT9V011。由于MT9V011的圖像輸出速率最大可達30幀每秒,而LPC2104處理器的I/O口讀寫速度遠遠不夠,循環將它的某一個I/O口置為高然后立即置低,輸出的方波的頻率也不超過4MHz。圖像數據的數據量相對于資源有限的嵌入式系統來說太大了,MT9V011默認情況下輸出的一幅圖像的數據量大小為300K字節,而LPC2104處理器的內存大小僅為16K字節,而且沒有開放存儲器擴展總線,在處理器外部擴展存儲器很不方便。其它的低端的面向控制的處理器如AVR單片機、MCS51單片機等都存在這樣的問題,但是由于它們具有較高的性價比、開發調試比較方便和能夠比較快速的組建應用系統,因此它們在許多領域都還有廣泛的應用。針對此類處理器的一些資源和性能限制,我們可以采取一些輔助措施來解決。由于可編程邏輯器件(PLD)具有較快的速度和在線編程等諸多優點,十分適合與此類低端處理器相結合來解決一些純處理器系統無法解決的問題。隨著可編程邏輯器件技術的發展和相關技術的進步,此類系統得到了越來越廣泛的應用。本文就是采用這種方案來解決單一處理器無法完成圖像采集的問題。具體方案是由一片可編程邏輯器件來與MT9V011接口,控制圖像數據緩存到一片SRAM中,然后通知處理器讀取數據。這樣就同時解決了處理器I/O速度慢和內存不夠大兩個問題,能夠組建系統完成圖像采集功能。圖像采集系統框圖如圖3所示。系統由四大部分組成:CMOS攝像頭電路、攝像緩存控制邏輯電路、SRAM存儲器和32位嵌入式系統總線接口。系統攝像緩存控制邏輯電路由CPLD(可編程邏輯器件)EPM7128S實現。
4 CPLD控制邏輯設計
圖4 CPLD控制邏輯流程圖
因為系統主處理器LPC2104的I/O速度和內存的限制,無法完成采集一幀圖像并存儲的功能。這只能借助于在系統中擴展一片CPLD來協作完成系統功能。由CPLD片內的控制邏輯電路完成讀取圖像數據并緩存到SRAM中的功能。因為系統不是實時圖像采集與處理,可以降低CMOS數字圖像傳感器輸出圖像的速率。這可以通過改變它的輸入時鐘來實現。系統中CPLD的時鐘采用40MHz,經過10分頻以后的時鐘做為CMOS圖像傳感器的時鐘。這樣降低了圖像輸出的速率,減輕了處理器進行圖像數據處理的負擔,使處理器有空閑時間進行其它控制操作。由于CPLD要讀取CMOS圖像傳感器輸出的圖像數據并緩存到SRAM中,因此CPLD的片內邏輯主要是根據圖像傳感器輸出圖像數據的時序和SRAM的讀寫時序來編寫。CPLD片內的控制邏輯電路主要由一個用電子硬件描述語言verilog編寫的狀態機實現。另外還有一些附加的門電路、多路選擇器和加法器,它們和狀態機共同組成了系統的攝像頭緩存控制邏輯電路。CPLD控制邏輯流程圖如圖4所示。
5 功能驗證
為了驗證系統實現了圖像采集的功能,需要對CPLD緩存下來的數據進行處理并顯示出圖像。由于PC機具有豐富的軟硬件資源,因此我們利用PC機來顯示圖像,驗證圖像采集功能的正確性。具體方法是:系統主處理器LPC2104讀取SRAM中的圖像數據并通過串口傳送給PC機,在PC機上編寫軟件接收數據并做簡單的處理就可以在PC機屏幕上顯示出圖像,從而能夠驗證系統的功能。
通過在一個低端的嵌入式處理器系統中添加CMOS數字圖像傳感器,并編寫硬件描述語言程序、嵌入式處理器程序,實現了采集圖像的功能。
本文作者創新點:利用CPLD在一個低端嵌入式系統中實現了圖像采集功能。
參考文獻:
[1] (英)弗伯著,田澤等譯.ARM SoC體系結構.北京航空航天大學出版社,2002
[2] 杜春雷.ARM體系結構與編程.清華大學出版社,2003
[3] 李現勇.Visual C++ 串口通信技術與工程實踐.人民郵電出版社,2002
[4] 李侃,廖啟征.基于S3C2410平臺與嵌入式Linux的圖像采集應用.微計算機信息,2006,3-2:125-127
1 圖像采集系統的應用現狀
實時圖像采集系統已經廣泛應用于手機、PDA、實時監控系統等高端嵌入式系統中。在這類系統中,處理器具有以下特點:具有較高的處理速度可以實時處理采集回來的大量圖像數據;具有較大的內存可以存放若干幀完整的圖像數據;具有豐富的外設接口可以比較容易的擴展大容量的存儲設備如CF卡、SD存儲卡等來備份一些圖像數據。然而在一些測控領域也需要采集圖像,以使管理人員能夠直觀的監控被測對象。由于被測量的變化比較緩慢不需要實時采集圖像,每隔一段時間傳回監控中心一幅圖像就能滿足要求。在這類系統中,處理器主要是面向控制領域,它們的特點是內存比較小,處理速度比較慢,外設接口也不多。因此在這類低端嵌入式系統中增加圖像采集功能要面臨處理器處理能力有限和硬件資源受限制的問題。
2 CMOS圖像傳感器MT9V011介紹
以創新的CMOS活躍象素技術,美光的超低功耗MT9V011圖像感應器融合了上乘的VGA分辨率和標準電荷耦合器件(CCD)所不具備的很多優越功能。它能以高達30fps的幀頻輸出高質量的逐行掃描圖像,而電池壽命卻比CCD競爭產品大幅度延長,因此成為手機、掌上電腦和PC機USB攝像頭的理想選擇。
MT9V011多種精密的相機功能(包括窗口化、行鏡像變換、左右和上下圖像翻轉、電子旋轉快門(ERS)、列鏡像變換)已被直接集成到芯片上,從而減少了CCD通常需要的額外組件,最大程度地縮小了產品尺寸和主板空間。其變量功能(也直接包括在芯片內)如可編程增益、幀頻和曝光控制等可以在默認模式操作,也可以由最終用戶通過一個簡單的兩線I2C接口進行編程。
圖1 CMOS攝像頭芯片MT9V011工作時序
MT9V011默認輸出的是一幅640ⅹ480象素的圖像。MT9V011芯片的工作時序如圖1所示。LINE_VALID是行有效信號,PIXCLK是象素時鐘信號,DOUT9-DOUT0是10位的圖像數據,FRAME_VALID是幀有效信號。其中LINE_VALID有效期間共有640個PIXCLK時鐘周期,FRAME_VALID有效期間共有480個LINE_VALID有效信號。默認情況下圖像數據從第一行第一列開始在PIXCLK信號的上升沿順序輸出。
MT9V011輸出的圖像格式是RGB Bayer類型,如圖2所示。每一個點只有一種顏色,箭頭所指的是第0行第0列。假設P0-0(9:0)至P0-639(9:0)是第0行的所有象素點的顏色數據,P1-0(9:0)至P1-639(9:0)是第1行所有點的顏色數據,則P0-0(9:0)代表綠色的顏色值,P0-1(9:0)代表紅色的顏色值,P0-2(9:0)代表綠色的顏色值,P1-0(9:0)代表的是藍色的顏色值,P1-1(9:0)代表的是綠色的顏色值,P1-2(9:0)代表的是藍色的顏色值等等。點P0-0、P0-1、P1-0、P1-1組合在一起便具備了R、G、B三色,可以合成一個真彩色的點在PC機屏幕上顯示。
圖2 MT9V011輸出的數字圖像格式
3 系統設計方案
圖3 嵌入式圖像采集系統框圖
本圖像采集系統基于菲利普的低端ARM7嵌入式微處理器
LPC2104,CMOS攝像頭芯片采用美光科技公司的MT9V011。由于MT9V011的圖像輸出速率最大可達30幀每秒,而LPC2104處理器的I/O口讀寫速度遠遠不夠,循環將它的某一個I/O口置為高然后立即置低,輸出的方波的頻率也不超過4MHz。圖像數據的數據量相對于資源有限的嵌入式系統來說太大了,MT9V011默認情況下輸出的一幅圖像的數據量大小為300K字節,而LPC2104處理器的內存大小僅為16K字節,而且沒有開放存儲器擴展總線,在處理器外部擴展存儲器很不方便。其它的低端的面向控制的處理器如AVR單片機、MCS51單片機等都存在這樣的問題,但是由于它們具有較高的性價比、開發調試比較方便和能夠比較快速的組建應用系統,因此它們在許多領域都還有廣泛的應用。針對此類處理器的一些資源和性能限制,我們可以采取一些輔助措施來解決。由于可編程邏輯器件(PLD)具有較快的速度和在線編程等諸多優點,十分適合與此類低端處理器相結合來解決一些純處理器系統無法解決的問題。隨著可編程邏輯器件技術的發展和相關技術的進步,此類系統得到了越來越廣泛的應用。本文就是采用這種方案來解決單一處理器無法完成圖像采集的問題。具體方案是由一片可編程邏輯器件來與MT9V011接口,控制圖像數據緩存到一片SRAM中,然后通知處理器讀取數據。這樣就同時解決了處理器I/O速度慢和內存不夠大兩個問題,能夠組建系統完成圖像采集功能。圖像采集系統框圖如圖3所示。系統由四大部分組成:CMOS攝像頭電路、攝像緩存控制邏輯電路、SRAM存儲器和32位嵌入式系統總線接口。系統攝像緩存控制邏輯電路由CPLD(可編程邏輯器件)EPM7128S實現。
4 CPLD控制邏輯設計
圖4 CPLD控制邏輯流程圖
因為系統主處理器LPC2104的I/O速度和內存的限制,無法完成采集一幀圖像并存儲的功能。這只能借助于在系統中擴展一片CPLD來協作完成系統功能。由CPLD片內的控制邏輯電路完成讀取圖像數據并緩存到SRAM中的功能。因為系統不是實時圖像采集與處理,可以降低CMOS數字圖像傳感器輸出圖像的速率。這可以通過改變它的輸入時鐘來實現。系統中CPLD的時鐘采用40MHz,經過10分頻以后的時鐘做為CMOS圖像傳感器的時鐘。這樣降低了圖像輸出的速率,減輕了處理器進行圖像數據處理的負擔,使處理器有空閑時間進行其它控制操作。由于CPLD要讀取CMOS圖像傳感器輸出的圖像數據并緩存到SRAM中,因此CPLD的片內邏輯主要是根據圖像傳感器輸出圖像數據的時序和SRAM的讀寫時序來編寫。CPLD片內的控制邏輯電路主要由一個用電子硬件描述語言verilog編寫的狀態機實現。另外還有一些附加的門電路、多路選擇器和加法器,它們和狀態機共同組成了系統的攝像頭緩存控制邏輯電路。CPLD控制邏輯流程圖如圖4所示。
5 功能驗證
為了驗證系統實現了圖像采集的功能,需要對CPLD緩存下來的數據進行處理并顯示出圖像。由于PC機具有豐富的軟硬件資源,因此我們利用PC機來顯示圖像,驗證圖像采集功能的正確性。具體方法是:系統主處理器LPC2104讀取SRAM中的圖像數據并通過串口傳送給PC機,在PC機上編寫軟件接收數據并做簡單的處理就可以在PC機屏幕上顯示出圖像,從而能夠驗證系統的功能。
通過在一個低端的嵌入式處理器系統中添加CMOS數字圖像傳感器,并編寫硬件描述語言程序、嵌入式處理器程序,實現了采集圖像的功能。
本文作者創新點:利用CPLD在一個低端嵌入式系統中實現了圖像采集功能。
參考文獻:
[1] (英)弗伯著,田澤等譯.ARM SoC體系結構.北京航空航天大學出版社,2002
[2] 杜春雷.ARM體系結構與編程.清華大學出版社,2003
[3] 李現勇.Visual C++ 串口通信技術與工程實踐.人民郵電出版社,2002
[4] 李侃,廖啟征.基于S3C2410平臺與嵌入式Linux的圖像采集應用.微計算機信息,2006,3-2:125-127
評論
查看更多