陳永昌,逯力紅,孫可亮
(天津工業(yè)大學(xué),天津 300387)
基于COMS數(shù)字?jǐn)z像頭的低速單片機的實時采集研究
陳永昌,逯力紅?,孫可亮
(天津工業(yè)大學(xué),天津 300387)
以國內(nèi)大學(xué)生智能車設(shè)計競賽及相關(guān)電子信息類競賽為背景,主要針對智能車所用COMS數(shù)字?jǐn)z像頭的圖像輸出與單片機的采集速度不匹配問題,提出一種基于COMS數(shù)字?jǐn)z像頭的低速單片機的實時采集方案。具有低成本、易實現(xiàn)、高分辨率、全速幀率等優(yōu)點,能夠?qū)⒉杉直媛蕪拿啃?60個像素點提高到每行320個像素點,整張圖片無噪點。實驗證明此方法可以在降低對硬件要求的同時進(jìn)行高速數(shù)據(jù)采集,節(jié)省成本,為低速單片機的高速數(shù)據(jù)采集的提供了一種新思路。
圖像采集、單片機、COMS、并口擴展
智能車及相關(guān)的電子信息類競賽主要是以迅猛發(fā)展的汽車電子為背景,該類比賽涵蓋了自動控制、計算機軟件技術(shù)、嵌入式編程、系統(tǒng)調(diào)試等多個交叉學(xué)科的知識。攝像頭智能小車以攝像頭為主要傳感器提取賽道引導(dǎo)線信息,并在規(guī)范的賽道內(nèi)自主尋線[1-2]。圖像采集系統(tǒng)是智能車主要用來獲取賽道信息的裝置,直接影響圖像采集的質(zhì)量和圖像處理的難易程度,對智能車的精確控制和穩(wěn)定運行具有不可或缺的決定性作用[3-4]。
目前國內(nèi)智能車比賽中,舉辦方基于開發(fā)難度、軟硬件資源等原因的考慮,選用的MCU的速度往往難以捕捉或丟失攝像頭傳來的高速信號,以“飛思卡爾”智能車競賽中較為主流Freescale公司的K60芯片為例,其Core Clock最大值為100MHZ(以單指令周期來算),當(dāng)選用OV7620數(shù)字?jǐn)z像頭進(jìn)行圖像采集,圖像分辨率最大達(dá)到(H)664×(V)492,幀率可達(dá)30幀,內(nèi)置10位雙通道 A/D轉(zhuǎn)換器,輸出8位像素點[5]。采集OV7620攝像頭圖像時,要根據(jù)行場中斷信號來區(qū)分一幅圖像和一行圖像。若不通過SCCB協(xié)議設(shè)置OV7620的寄存器,默認(rèn)輸出有效像素(H) 640×(V)480。因為采用隔行掃面的方式又分為奇偶場,這樣計算的話,每秒將產(chǎn)生60幅圖像,每幅圖像有效像素位(H)320×(V)240。所以為使MCU有效響應(yīng),允許中斷間隔將小于73ns,一般單片機是無法達(dá)到的。因此通常采用低分辨率或者低幀率的方案來完成采集,一方面犧牲了圖像質(zhì)量,另一方面圖像信息易造成丟失,喪失其完整性。不難發(fā)現(xiàn),對于圖像采集的速率和采集到的圖像的分辨率并不能令人滿意。為保證圖像采集的速率,通常采用降低分辨率的方案,效果不好。
一方面限于采集用芯片的學(xué)習(xí)難度和開發(fā)難度,不易上手,且研發(fā)成本高;另一方面源于競賽方限制(不允許使用其他可編程芯片與存儲介質(zhì)),兩者即限制了人們的開發(fā)能力又限制了設(shè)計者的創(chuàng)新能力。隨著比賽水平越來越高,對采集到的圖像也要求更加清晰,采集速率更快。而越是簡單的芯片越穩(wěn)定,采用單片機和邏輯門足夠?qū)崿F(xiàn)所需功能[6]。文章中將闡述利用OTV公司的OV7620、Freescale公司的K60芯片以及一些常用的74系列邏輯門設(shè)計一套基于并口擴展技術(shù)的能夠同時滿足分辨率和采集幀率的圖像采集系統(tǒng),并給出具體實驗方案[7]。相比于國內(nèi)智能車類電子信息競賽中的圖像采集系統(tǒng),文章中設(shè)計的系統(tǒng)可以獲得320×240的分辨率,其圖像采集速率可高達(dá)每秒30幀。
實現(xiàn)低速單片機的高速數(shù)據(jù)采集的關(guān)鍵在于充分利用單片機豐富的IO口資源。通過設(shè)計相應(yīng)電路,把CMOS攝像頭輸出的八位灰度值圖像數(shù)據(jù)轉(zhuǎn)換十六位數(shù)據(jù),一次性讀入。將CMOS的像素同步時鐘信號被分頻電路分成奇偶兩列脈沖,其中奇數(shù)列脈沖觸發(fā)74LS374把當(dāng)前輸出的數(shù)據(jù)鎖存起來,等待偶數(shù)列脈沖到來觸發(fā)K60的中斷,當(dāng)中斷響應(yīng)時,同時讀取IO口D0~D15的值,即完成一次圖像數(shù)據(jù)的采集。
整個分頻電路由:74LS04、74LS08、74LS160芯片組成。通過邏輯門(與門、非門、計數(shù)器)電路將采集速率分頻,構(gòu)成的四分頻電路能夠?qū)⒉杉俾事槐?能夠確保圖像信息完整不丟失。為了避免電路造成的延時干擾,選用74LS574芯片等器件組成鎖存電路,將采集到的八位灰度數(shù)據(jù)鎖存到鎖存器中,圖像同步信號在采集過程中將使得OUT1、OUT2觸發(fā)鎖存信號,奇數(shù)次采集到的八位圖像數(shù)據(jù)將由OUT1信號(奇分頻)觸發(fā)鎖存[8],同理,偶數(shù)次采集到的八位圖像數(shù)據(jù)將由OUT2信號(偶分頻)觸發(fā)鎖存,并且偶分頻信號將觸發(fā)中斷,將兩次八位圖像灰度值轉(zhuǎn)換成十六位數(shù)據(jù)發(fā)送給K60。硬件原理圖如圖1所示。
圖1 硬件原理圖
在電路圖(如圖2所示)中,IN輸入攝像頭像素時鐘信號,OUT1、OUT2輸出的是時鐘信號分頻后的信號。
圖2 分頻電路圖
圖3 分頻時序圖
(由上至下依次為IN_CLK、OUT1、OUT2)
從時序圖(如圖3所示)中可以看出來,OUT1和OUT2均是從CLK的四分頻后分頻信號,其中OUT1定為奇分頻(即鎖存),OUT2即為偶分頻(鎖存并觸發(fā)發(fā)送中斷)。采用四分頻的原因是:對于K60來說使用二分頻的采集過程還是不夠穩(wěn)定,采集效果不佳。圖4和圖5分別是OUT1與IN_CLK實際信號圖和OUT1與OUT2實際信號圖。
圖4 OUT1與IN_CLK實際信號圖
圖5 OUT1與OUT2實際信號圖
整個分頻電路可分解成兩個部分,第一部分是分頻電路部分完成對圖像信息的采集,第二部分是鎖存電路分別將兩次采集到的數(shù)據(jù)鎖存,并且在第二次鎖存結(jié)束后將相鄰兩次的八位數(shù)據(jù)組合成十六位發(fā)送給K60,構(gòu)成完整的圖像采集數(shù)據(jù)。
實驗中采用并口擴展技術(shù)。該技術(shù)有兩個主要特點:一是同時并行傳送的二進(jìn)位數(shù)就是數(shù)據(jù)寬度;二是在嵌入式系統(tǒng)與外設(shè)之間采用應(yīng)答式的聯(lián)絡(luò)信號來協(xié)調(diào)雙方的數(shù)據(jù)傳送操作,這種聯(lián)絡(luò)信號又稱為握手信號。實驗中使用不可編程并行口芯片74LS373,實現(xiàn)并口擴展。其內(nèi)部結(jié)構(gòu)圖如圖6所示。
圖6 74LS373內(nèi)部結(jié)構(gòu)圖
該實驗方案使得圖像質(zhì)量得到提升,分辨率將達(dá)到320?240,其采集速率相比同類型單片機將高達(dá)30幀/秒。
K60的圖像采集工作主要包括下面幾個方面:
(1)圖像傳感器寄存器配置;
(2)場同步,行同步信號的處理;
(3)像素同步時鐘信號的處理;
(4)DMA配置與傳輸。
將D0~D7的數(shù)據(jù)鎖存在74LS374中,數(shù)據(jù)流直接讀取,當(dāng)?shù)诙尾杉綌?shù)據(jù)有D8~D15接收,并且直接發(fā)送到K60上,此時的該段數(shù)據(jù)流將觸發(fā)中斷,進(jìn)入中斷服務(wù)程序,將74LS374中鎖存的數(shù)據(jù)釋放,再調(diào)用子函數(shù),將兩次采集到的八位數(shù)據(jù)整理成十六位數(shù)據(jù)進(jìn)行處理,實際上是做一個并行計算的處理??紤]到圖像信息數(shù)據(jù)量大、易丟失,故采取DMA方式進(jìn)行數(shù)據(jù)傳輸及處理。DMA方式具有如下特點:
1、外部設(shè)備的輸入輸出請求直接發(fā)給主儲存器。
主存儲器既可以被CPU訪問,也可以被外圍設(shè)備訪問。因此,在主存儲器中通常要有一個存儲管理部件來為各種訪問主存儲器的申請排隊,一般計算機系統(tǒng)把外圍設(shè)備的訪問申請安排在最高優(yōu)先級。
2、不需要做保存現(xiàn)場和恢復(fù)現(xiàn)場等工作,從而使DMA方式的工作速度大大加快。
由于在外圍設(shè)備與主存儲器之間傳送數(shù)據(jù)不需要執(zhí)行程序,因此,也不動用CPU中的數(shù)據(jù)寄存器和指令計數(shù)器等。
3、在DMA控制器中,除了需要設(shè)置數(shù)據(jù)緩沖寄存器、設(shè)備狀態(tài)寄存器或控制寄存器之外,還要設(shè)置主存儲器地址寄存器,設(shè)備地址寄存器和數(shù)據(jù)交換個數(shù)計數(shù)器。
外圍設(shè)備與主存儲器之間的整個數(shù)據(jù)交換過程全部要在硬件控制下完成。另外,由于外圍設(shè)備一般是以字節(jié)為單位傳送的,而主存儲器是以字為單位訪問的,因此,在DMA控制器中還要有從字節(jié)裝配成字和從字拆卸成字節(jié)的硬件。
4、在DMA方式開始之前要對DMA控制器進(jìn)行初始化,包括向DMA控制器傳送主存緩沖區(qū)首地址、設(shè)備地址、交換的數(shù)據(jù)塊的長度等,并啟動設(shè)備開始工作。在DMA方式結(jié)束之后,要向CPU申請中斷,在中斷服務(wù)程序中對主存儲器中數(shù)據(jù)緩沖區(qū)進(jìn)行后處理。如果需要繼續(xù)傳送數(shù)據(jù)的話,要再次對DMA控制器進(jìn)行初始化。
5、在DMA方式中,CPU不僅能夠與外圍設(shè)備并行工作,而且整個數(shù)據(jù)的傳送過程不需要CPU的干預(yù)。如果主存儲器的頻帶寬度足夠的話,外圍設(shè)備的工作可以絲毫不影響CPU運行它自身的程序。
基于DMA方式的工作,對于圖像采集設(shè)備來說:從輸入介質(zhì)上讀一個字節(jié)或字到DMA控制器中的數(shù)據(jù)緩沖寄存器BD中,如果輸入設(shè)備是面向字符的,則要把讀入的字符裝配成字。若一個字還沒有裝配滿,則返回到上面;若校驗出錯,則發(fā)中斷申請;若一個字已經(jīng)裝配滿,則將BD中的數(shù)據(jù)送入主存數(shù)據(jù)寄存器。把主存地址寄存器BA(在DMA控制器中)中的地址送入主存地址寄存器,并且將BA中的地址增值至下一個字地址。把DMA控制器內(nèi)的數(shù)據(jù)交換個數(shù)計數(shù)器BC中的內(nèi)容減“1”。若BC中的內(nèi)容為“0”,則整個DMA數(shù)據(jù)傳送過程全部結(jié)束,否則返回到最上面繼續(xù)進(jìn)行。
而對于輸出設(shè)備:把主存地址寄存器BA(在DMA控制器中)中的地址送入主存地址寄存器,并啟動主存儲器,同時將BA中的地址增值至下一個字地址。將主存儲器數(shù)據(jù)寄存器中的數(shù)據(jù)送入DMA控制器的數(shù)據(jù)緩沖寄存器BD中。如果輸出設(shè)備是面向字符的,則要把BD中的數(shù)據(jù)拆卸字符。把BD中數(shù)據(jù)逐個字符(對于面向字符的設(shè)備)或整個字寫到輸出介質(zhì)上。把DMA控制器內(nèi)的數(shù)據(jù)交換個數(shù)計數(shù)器BC中的內(nèi)容減“1”。若BC中的內(nèi)容為“0”,則整個DMA數(shù)據(jù)傳送過程全部結(jié)束,否則返回到最上面繼續(xù)進(jìn)行。
目前使用的DMA方式實際上有如下3種:
1、周期竊取方式
在每一條指令執(zhí)行結(jié)束時,CPU測試有沒有DMA服務(wù)申請,如果有,則CPU進(jìn)入一個DMA周期。在DMA周期中借用CPU完成上面所列出的DMA工作流程。包括數(shù)據(jù)和主存地址的傳送,交換個數(shù)計數(shù)器中的內(nèi)容減“1”,主存地址的增值及一些測試判斷等。
采用周期竊取方式時,主存儲器可以不與外圍設(shè)備直接相連接,而只與CPU連接,因為外圍設(shè)備與主存儲器的數(shù)據(jù)交換與程序控制輸入輸出方式和中斷輸入輸出方式一樣都是要經(jīng)過CPU的。
周期竊取方式與程序控制輸入輸出方式和中斷輸入輸出方式的不同處主要在:它不需要使用程序來完成數(shù)據(jù)的輸入或輸出,只是借用了一個CPU的周期來完成DMA流程。因此,其工作速度是很快的。
周期竊取方式的優(yōu)點是硬件結(jié)構(gòu)很簡單,比較容易實現(xiàn)。缺點是在數(shù)據(jù)輸入或輸出過程種實際上占用了CPU的時間。
2、直接存取方式
這是一種真正的DMA方式。DMA控制器的數(shù)據(jù)傳送申請不是發(fā)向CPU,而是直接發(fā)往主存儲器。在得到主存儲器的響應(yīng)之后,整個DMA工作流程全部在DMA控制器中用硬件完成。
直接存取方式的優(yōu)點與缺點正好與周期竊取方式相反。
目前的多數(shù)計算機系統(tǒng)均采用直接存取方式工作。
3、數(shù)據(jù)塊傳送方式
在設(shè)備控制器中設(shè)置一個比較大的數(shù)據(jù)緩沖存儲器,一般要能夠存放下一個數(shù)據(jù)塊,如在軟磁盤存儲器中通常設(shè)置512個字節(jié)的數(shù)據(jù)緩沖存儲器。與設(shè)備介質(zhì)之間的數(shù)據(jù)交換在數(shù)據(jù)緩沖存儲器中進(jìn)行。設(shè)備控制器與主存儲器之間的數(shù)據(jù)交換以數(shù)據(jù)塊為單位,并采用程序中斷方式進(jìn)行。
文章中采用的是第一種方式,程序流程圖如圖7所示。
圖7 程序流程圖
4、實驗效果圖
采用該技術(shù)處理前后的圖像對比如圖8(a) (b)所示。
圖8 (a) 處理前
圖8 (b) 處理后
通過對比可明顯看出兩者之間的差異,圖8 (a)中噪點較多,畸變明顯,圖像分辨率差,可處理性差;而在圖8(b)中,不難看出圖像質(zhì)量明顯改善,分辨率大幅度提高,圖像平滑無噪點。證明該方案切實可行。
圖9 實物電路連接圖
為保征該方案能在各個智能車類電子信息類競賽中占得先機,其運行穩(wěn)定性、可靠性及精度將是決定比賽勝負(fù)的關(guān)鍵,為實現(xiàn)這幾點,實驗中通過分頻鎖存的手段保證了圖像信息的完整性,在保證圖像采集速率的前提下,提高了圖像的分辨率、確保軟硬件運行的穩(wěn)定性、可靠性,在DMA及并行口擴展技術(shù)的模式下使圖像采集精度將大大提高,既滿足了對采集速率的要求又滿足了對分辨率的需求,進(jìn)而保證圖像信息處理的時效性,一舉多得。
根據(jù)總體設(shè)計思路,搭建電路,對?;者M(jìn)行實時采集。實物連接圖如圖9所示,采集效果圖如圖10所示。
圖10 采集效果圖
由于單片機、邏輯芯片的研發(fā)成本低、研發(fā)難度小,對于初學(xué)者來說功能易于實現(xiàn),仍有較高的實踐及利用價值。
文章中采用FreescareK60搭配邏輯門電路,設(shè)計一種基于COMS數(shù)字?jǐn)z像頭的低速單片機的實時采集方案,并對硬件電路和軟件實現(xiàn)流程進(jìn)行了說明。該方案能夠?qū)⒉杉直媛蕪拿啃?60個像素點提高到每行320個像素點,確保整張圖片無噪點。實驗結(jié)果表明:采取此方案,圖像采集速度、圖像質(zhì)量都有大幅提高,此方案切實可行。
[1] 徐利文.智能車電機控制和圖像采集系統(tǒng)設(shè)計與研究[D].長安大學(xué),2012.
[2] 朱江轉(zhuǎn),羅鍛斌.全息照相實驗中圖像采集數(shù)碼裝置的應(yīng)用[J].大學(xué)物理實驗,2014(6):17-20.
[3] Bishop R.Survey of Intelligent Vehicle ApplicationsWorldwide[J].Proceedings of the IEEE Intelligent Vehicles Symposium.2000,108(16):509-516
[4] 薛志文,周敏,楊傲雷,等.攝像頭智能車調(diào)試系統(tǒng)的設(shè)計與開發(fā)[J].儀表技術(shù),2014(11):47-51.
[5] 鄭建英.數(shù)字圖像處理技術(shù) [J].內(nèi)蒙古科技與經(jīng)濟(jì),2002(5):58-59.
[6] 王詩元,呂子豪,田洪亮.攝像頭組智能車圖像預(yù)處理算法研究[J].無線互聯(lián)科技,2014(11):136 +164.
[7] 胡房武.基于圖像采集的智能車系統(tǒng)設(shè)計[D].大連海事大學(xué),2011.
[8] 張春生,常青.特殊分頻電路設(shè)計[J].現(xiàn)代電子技術(shù),2006(6):112-113+116.
The Real-Time Acquisition of Low Speed M icrocontroller Based on COMSDigital Video Camera
CHEN Yong-chang,LU Li-hong,SUN Ke-liang
(Tianjin Polytechnic University,Tianjin 300387)
The domestic undergraduate intelligent vehicle design competition and relevant electronic information competition is set as the background in this paper.In order to solve themismatch problem between image output of COMS digital video camera used on the intelligent vehicle and sampling speed ofmicrocontroller,a real-time acquisition scheme of low speed microcontroller based on COMSdigital video camera is proposed.It has advantages of low cost,easy realization,high resolution and full frame rate,and so on,which can increase acquisition resolution from 160 pixel points per row to 320 pixel points per row.Thewhole picture has no error point.The experiment shows that thismethod can reduce the requirements of the hardware,carry out high speed data acquisition at the same time,save cost and provide a new way for high speed data acquisition of low speed microcontroller.
image acquisition;microcontroller;COMS;parallel ports expansion
O 4-39
A
10.14139/j.cnki.cn22-1228.2015.006.006
1007-2934(2015)06-0018-06
2015-07-17
國家級大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃(201310058047)
?通訊聯(lián)系人