引言
飛思卡爾智能車比賽已經成功舉辦4屆,,以攝像頭為主要傳感器的參賽隊伍大多數(shù)選用了模擬CCD或模擬CMOS攝像頭,。本文介紹了數(shù)字式CMOS 攝像頭MT9M011的性能特點和工作方式,給出了MT9M011在基于HCSl2單片機的智能車控制系統(tǒng)中的應用方案,,并分析了數(shù)字攝像頭的優(yōu)勢和不足,。
1 CMOS圖像傳感器的特點
CMOS圖像傳感器可通過CMOS技術將像素陣列與外圍支持電路(如圖像傳感器核心、單一時鐘、所有的時序邏輯,、可編程功能和A/D轉換器)集成在同一塊芯片上,。與CCD(電容耦合器件)圖像傳感器相比,CMOS圖像傳感器將整個圖像系統(tǒng)集成在一塊芯片上,,具有體積小,、重量輕、功耗低,、編程方便,、易于控制等優(yōu)點;同時,,可通過I2C,、SPI等接口配置其曝光時間、增益控制等功能,,可控性強,。因此,CMOS圖像傳感器的應用已經變得越來越廣泛,。
2 MT9M011的性能特點與工作方式
2.1 MT9M011的基本參數(shù)
MT9M011是一款:Mieron公司推出的RGB三基色的130萬像素數(shù)字式CMOS攝像頭,,具有可編程控制及數(shù)字信號輸出等功能。其輸出為Bayer彩色格式,,圖像尺寸為4.6 mm×3.7 mm,,像素尺寸為3.6 μm×3.6 μm,最大分辨率為1 280×1 024,,支持的最高時鐘頻率為25MHz,;A/D轉換精度為10位,最大信噪比為44 dB,,在最高分辨率模式下功耗為129 mW,。
MT9M011輸出為逐行掃描的數(shù)字信號,通過內嵌的10位ADC將模擬視頻信號采樣量化后同步輸出10位數(shù)據(jù)流,。同時,,MT9M011還提供像素時鐘(PIXCLK)、行有效信號(LVAL),、幀有效信號(FVAL),,以及配置MT9M011所需的I2C協(xié)議引腳SCLK和SDAT。
2.2 MT9M011的編程功能
MT9M011有25個寄存器,,涉及攝像頭的各個方面,通過與I2C兼容的串行總線時序讀寫,。結合智能車競賽應用重點介紹以下寄存器:
?、傩衅鹗技拇嫫?Ox01)和列起始寄存器(Ox02)。這兩個寄存器決定輸出圖像的起始點坐標。利用這兩個寄存器可以軟件調節(jié)攝像頭采集到的圖像整體位置,。
?、谛袑挾燃拇嫫?0x03)和列寬度寄存器(Ox04)。MT9M011的一大特色就是輸出數(shù)據(jù)的圖像大小可以任意調整,。通過這兩個寄存器可以針對當前的應用環(huán)境(即賽道)設置合適的圖像范圍,。
③曝光時間寄存器(Ox09),。該寄存器的值決定了攝像頭采集一幀圖像時感光元器件的感光時間,。通過調整該寄存器值的大小可以直接調整圖像的成像質量。
?、軘?shù)據(jù)讀取模式寄存器(Ox20),。該寄存器可以使輸出的行數(shù)據(jù)和列數(shù)據(jù)減少至1/2或者1/4,也可以使輸出的圖像鏡面對稱,。
?、?a class="innerlink" href="http://forexkbc.com/tags/增益設置" title="增益設置" target="_blank">增益設置寄存器。它又包含Greenl分量增益設置寄存器(Ox2B),、Blue分量增益設置寄存器(Ox2C),、Red分量增益設置寄存器 (Ox2D)、Green2分量增益設置寄存器(Ox2E)和全局增益設置寄存器(Ox2F)5個寄存器,。由于RGB分量對同一光源表現(xiàn)出不同的數(shù)值,,因此需要針對不同的光源情況分別調整前4個寄存器的值,而這也是這款攝像頭最大的缺點,。
2.3 MT9M011的數(shù)字圖像輸出
2.3.1 Bayer彩色格式輸出
MT9M011的輸出為Bayer彩色格式(Bayer color pattern),。這種輸出格式直接將濾波陣列上每一個像素點對應的保留基色模擬電平值,通過A/D轉換后按時序先后輸出,。圖1展示了這種輸出格式對應的局部像素點陣,。其中,黑色像素點為輸出有效數(shù)據(jù)的第一個點,。
2.3.2 MT9M011的輸出信號時序
像素數(shù)據(jù)輸出時序和幀與行有效信號時序分別如圖2和圖3所示,。像素時鐘與主時鐘同頻,在一幀圖像開始輸出時幀有效信號由低電平變?yōu)楦唠娖?,一幀輸出結束時由高電平變?yōu)榈碗娖?;而行有效信號則在一行數(shù)據(jù)輸出有效時由低電平變?yōu)楦唠娖剑恍袛?shù)據(jù)輸出完成后由高電平變?yōu)榈碗娖?。根?jù)MT9M0ll的輸出信號時序就能正確地采集整幀圖像,。圖3中,P為幀消隱區(qū),,A為有效數(shù)據(jù)區(qū),,Q為行消隱區(qū),。
3 MT9M011在智能車控制系統(tǒng)中的應用
3.1 硬件設計
MT9M011的電平是3.3 V,而HCSl2單片機系統(tǒng)的I/O電平是5 V,,因此需要通過電平轉換芯片將攝像頭輸出數(shù)據(jù)的電平提升到5V,。結合MT9M011的輸出信號時序關系和HCSl2單片機的特點,本文利用HCSl2的 ECT模塊提取MT9M011的幀有效信號的上升沿,,采用ECT模塊對應引腳的普通I/O口功能采集行有效信號的上升沿,。MT9M011的數(shù)據(jù)輸出信號有 10位,鑒于賽道環(huán)境相對簡單,,只截取高8位作為攝像頭信號輸出,,既可以保證圖像分辨率,又可節(jié)省HCSl2的存儲空間,。HCSl2單片機本身帶有一個標準的I2C模塊,,直接使用這個模塊與MT9M011的SCLK和SDAT相接。
3.2 軟件設計
3.2.1 HCSl2單片機I2C模塊配置
HCSl2單片機提供標準的I2C模塊,,SCLK引腳能產生多種時鐘頻率,,支持主從模式,設有多種標志位以供查詢,。初始化I2C模塊時需要完成以下工作:
?、僭O置IBFD寄存器,使產生的SCLK信號能夠對MT9M011進行正常的配置,;
?、谠O置IBEN寄存器位,使能I2C模塊,;
?、墼O置IBCR,確定I2C模塊的主,、從模式,,收、發(fā)模式以及是否使能中斷功能等,。
3.2.2 MT9M011圖像數(shù)據(jù)采集
受限于單片機時鐘的約束關系,,HCSl2的通用I/O口無法檢測攝像頭像素時鐘信號跳變,本文采取以固定周期采集一行數(shù)據(jù)的方法,。因此,,采集像素數(shù)據(jù)的關鍵是準確地采集幀有效信號的上升沿和行有效信號的上升沿。選用的方案是:使用HCSl2單片機的ECT模塊采集幀有效信號的上升沿,,使用ECT 模塊普通端口模式采集行有效信號的上升沿,。
采集對象要求縱、橫分辨率都不能過低,,而HCSl2內部存儲空間有限,,無法為高分辨率提供有利支持,。針對這一矛盾,利用一個像素
與其周圍點的值的關聯(lián)性,,以及攝像頭所具有的隔行和隔列輸出功能進行跳采集。確定了1 280x 480的分辨率和行列均跳4行采集的模式,,
同時軟件上再進行一次隔行采集,,最終可得80×60=4 800個像素數(shù)據(jù)。采集數(shù)據(jù)的流程如圖4所示,。
3.2.3 采集圖像時遇到的問題及解決方法
(1)攝像頭晶振的選擇
MT9M011晶振的選擇是一個很重要的問題,,如果一幀圖像的時間超過20 ms,就無法體現(xiàn)它的主要優(yōu)勢,。同時,,也要考慮到HCSl2單片機的限制,HCSl2的總線頻率最大可達到32 MHz,,而在此條件下如果MT9M011的晶振選取過大,,則每一行采集到的點數(shù)過少。
通過式(1)可計算出MT9M011輸出一幀圖像所需的時間:
式中:ColNum+HBlanking和RowNum+VBlanking分別表示包含空白數(shù)據(jù)的總列數(shù)和總行數(shù),;fcamera表示攝像頭晶振頻率,,在一幀圖像大小已經確定的情況下,該值越大則一幀時間越短,。
通過式(2)可計算出單片機一行采集像素點的個數(shù):
式中:RowPixNum表示一行能采集到的數(shù)據(jù),;ColNum表示每一行中輸出的像素數(shù)據(jù)個數(shù);Tcamera是攝像頭晶振,,fcamera 的倒數(shù),;Cycle表示一個采集周期使用的機器周期數(shù),在整個采集過程中固定不變的,;fbus表示單片機的總線周期,。從式(2)可知,在fbus一定的情況下,,camera越小,,則一行采集到的數(shù)據(jù)就越少,這樣不利于數(shù)據(jù)分析,。
綜合考慮,,最終確定使用8 MHz的晶振作為MT9M011的時鐘,而采用16 MHz晶振作為HCSl2的時鐘,,單行采集80個點,,可滿足路徑識別的需要。
(2)攝像頭曝光時間和增益的設置問題MT9M011是一款RGB三基色的彩色攝像頭,,采集到的數(shù)據(jù)為Bayer彩色格式,。由于提取的是賽道上的黑線信息,,圖像環(huán)境相對簡單,因此這里直接將每一個分量的值作為該點像素的灰度值處理,。
如圖5(a)所示,,在使用默認曝光時間和增益時采集得到的圖像有明顯的隔行噪聲效應,而且在一行間也有明顯的干擾噪聲存在,。這是因為同一光源對于RGB三種分量所體現(xiàn)出的數(shù)值不同,,直接將其當作灰度值處理會產生恢復的圖像不均勻、噪聲大的現(xiàn)象,。解決辦法是通過多次
實踐調整攝像頭的曝光時間和RGB每個分量的增益值,,使3個分量在同一光源下反應出的數(shù)值基本一致。經過調整后得到的圖像如圖5(b)所示,。
4 數(shù)字式CMOS攝像頭與模擬攝像頭比較
數(shù)字式CMOS攝像頭MT9M011最大的優(yōu)勢在于節(jié)約時間,。選用合適的晶振及圖像大小能將整個小車控制周期限制在20ms左右。筆者曾經做過實驗,,選用20MHz的晶振作為攝像頭時鐘,,將單片機倍頻到32 MHz。在這種條件下,,一個控制周期的反應時間甚至能縮短到4ms左右,,與模擬攝像頭的40 ms一幀圖像相比有明顯的優(yōu)勢。MT9M011的另一個優(yōu)勢是圖像大小可以任意設置,,因此筆者可以軟件調整圖像的大小和視野的高度,,且MT9M011與單片機接口簡單,很大程度上減輕了硬件負擔,。
MT9M011在智能車比賽應用中也具有一些缺點,。它不能自動適應各種光源,需要人工進行調整,;同時,,它的動態(tài)特性不如CCD攝像頭好,這點可以通過提高攝像頭晶振時鐘來縮短采集周期解決,。
結語
本文介紹了數(shù)字式CMOS攝像頭MT9MOll在基于HCSl2單片機的智能車中的應用,,并針對數(shù)字攝像頭與模擬攝像頭的各自特點進行了比較。實踐表明,,選用數(shù)字式CMOS攝像頭作為智能車路徑識別傳感器是可行的,。