《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于FPGA的MT9P401圖像傳感器驅(qū)動設(shè)計
基于FPGA的MT9P401圖像傳感器驅(qū)動設(shè)計
來源:電子技術(shù)應(yīng)用2011年第6期
張 帆,馮桂蘭,田維堅
(中國計量學(xué)院 光學(xué)與電子科技學(xué)院,浙江 杭州310018)
摘要: 針對目前道路抓拍相機(jī)分辨率低的現(xiàn)狀,提出一種基于FPGA的大面陣CMOS圖像傳感器驅(qū)動設(shè)計。設(shè)計采用Micron公司的CMOS圖像傳感器MT9P401,以Altera公司生產(chǎn)的EP2C8T144C8為硬件平臺,將Verilog HDL編寫的I2C總線模塊嵌入FPGA內(nèi)部實現(xiàn)對CMOS圖像傳感器參數(shù)的設(shè)置。軟件仿真和實驗結(jié)果表明驅(qū)動設(shè)計合理,CMOS圖像傳感器在驅(qū)動時序的作用下,進(jìn)入正常工作狀態(tài)。
中圖分類號: TP212.1
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2011)06-0062-03
Design of driving for MT9P401 image sensor based on FPGA
Zhang Fan,F(xiàn)eng Guilan,Tian Weijian
College of Optical and Electronic Technology, China Institute of Metrogy,Hangzhou 310018,China
Abstract: Aiming at the condition that the capture camera has low resolution,one design of driving circuit for large resolution CMOS image sensor based on FPGA is proposed. The CMOS image sensor MT9P401 produced by Micron was adopted in the design.The EP2C8T144C8 produced by Altera was adopted for the hardware platform. The I2C bus module written by Verilog HDL was embeded in the FPGA to achieve the setting of CMOS image sensor's parameters. It is can be seen from the software simulation and experimental results that the design of driver is reasonable and the CMOS image sensor can work normally under the control of the driving time.
Key words : FPGA;MT9P401;CMOS image sensor;I2C bus


    汽車在給人們生活帶來便利的同時也帶來了交通事故。其中超速行駛是造成交通事故的重要隱患之一。據(jù)研究表明,目前針對車輛超速行駛情況的道路抓拍系統(tǒng)中所使用的圖像傳感器大多為小面陣器件,普遍為100萬~200萬像素,從而導(dǎo)致抓拍圖像的像素比較低、能夠同時抓拍的車道數(shù)較少等等問題。面對這一系列問題,大面陣的圖像傳感器便逐漸成了人們關(guān)注的熱點。在設(shè)計過程中,分析了具有500萬像素的CMOS圖像傳感器MT9P401的工作模式,選用QuartusⅡ做為開發(fā)工具,使用Verilog HDL語言對驅(qū)動電路設(shè)計方案進(jìn)行了硬件描述,并對所設(shè)計的驅(qū)動時序進(jìn)行仿真和驗證。
1 MT9P401圖像傳感器介紹
1.1 主要特點

    MT9P401是Micron公司的一款具有500萬像素的CMOS圖像傳感器。該芯片的主要特點有:圖像分辨率為2 592 H×1 944 V,像元尺寸為5.7 mm×4.28 mm,最大傳輸速率為96 Mb/s,相應(yīng)的采樣速率為14 f/s,動態(tài)范圍為70.1 dB。
    MT9P401圖像傳感器將像素矩陣、串行接口、陣列控制器、A/D轉(zhuǎn)換電路等集成在一起。當(dāng)MT9P401的像素矩陣受到光照時,由于光電效應(yīng)使光信號轉(zhuǎn)變?yōu)殡娦盘枺纱水a(chǎn)生的模擬信號傳送至內(nèi)部A/D轉(zhuǎn)換器,輸出相應(yīng)的數(shù)字信號??刂葡袼鼐仃嚨男盘栍删仃嚳刂破鳟a(chǎn)生,矩陣控制器通過串行接口操作。
1.2 電子曝光方式
    MT9P401圖像傳感器有兩種電子曝光方式,分別對應(yīng)兩種不同的快門模式。
    (1)電子卷簾快門(Electronic Rolling Shutter):對任一像素,在曝光開始時將其清零,等待曝光時間過后,將信號值讀出。數(shù)據(jù)的讀出是串行的,所以清零、曝光、讀出也只能逐行順序進(jìn)行,通常是從上至下,和機(jī)械的焦平面快門非常像。此曝光方式的特點是每個像素曝光時長相同,但曝光時間點不同。
    (2)全局快門(Global Shutter/Snapshot Shutter):每個像素點增加了采樣保持單元,在指定時間內(nèi)對數(shù)據(jù)進(jìn)行采樣,然后順序讀出,這樣雖然后讀出的像素仍然進(jìn)行曝光,但存儲在采樣保持單元中的數(shù)據(jù)卻并未改變。因圖像的積分時間相等,所以每個像素點在同一瞬間曝光。此曝光方式的特點是能同時復(fù)位所有像素,但曝光時長不同,可用機(jī)械快門實現(xiàn)同時結(jié)束曝光。
1.3 像素數(shù)據(jù)讀出時序分析
    MT9P401圖像傳感器共有256個內(nèi)部寄存器,內(nèi)部寄存器的設(shè)置決定了MT9P401的工作狀態(tài)。MT9P401與外部控制器的通信依靠I2C總線[1],在I2C總線協(xié)議下輸出每一幀圖像數(shù)據(jù)。默認(rèn)情況下,MT9P401的像素時鐘與外部輸入時鐘同步,MT9P401一幀圖像的像素包括1 944行和2 592列,每經(jīng)過一個像素時鐘周期,都有一個12 bit的像素數(shù)據(jù)通過數(shù)據(jù)輸出引腳輸出,幀有效信號(Frame_Valid)的周期為70 ms,行有效信號(Line_Valid)的周期為35 μs。當(dāng)幀有效信號(Frame_Valid)和行有效信號(Line_Valid)均為高電平時,輸出像素數(shù)據(jù)。當(dāng)幀有效信號(Frame_Valid)為低電平時,出現(xiàn)垂直消隱。當(dāng)行有效信號(Line_Valid)為低電平時,出現(xiàn)水平消隱。像素數(shù)據(jù)讀出時序如圖1所示。

 

 

2 電路設(shè)計
2.1 電路硬件設(shè)計
    電路硬件由電源模塊、時鐘模塊、CMOS圖像傳感器與FPGA通信模塊構(gòu)成。
    (1)電源模塊
    CMOS圖像傳感器部分按照MT9P401數(shù)據(jù)手冊上的要求應(yīng)提供5種電源,分別為:+1.8 V的數(shù)字電源VDD、+2.8 V的IO口驅(qū)動電源VDDIO、+2.8 V的模擬電源VAA、+2.8 V的成像核心電源VDDPIX、+2.8 V的鎖相環(huán)電源VDDPLL。FPGA部分按照EP2C8T144C8數(shù)據(jù)手冊要求提供3種電源,分別為+1.2 V的數(shù)字電源VDD、+3.3 V的IO口驅(qū)動電源VDDIO、+1.2 V的模擬電源VAA。
    由于CMOS圖像傳感器的供電電源需要有較高的紋波抑制和噪聲,同時輸出壓降要低,結(jié)合設(shè)計低成本、低功耗等因素,在電源部分選擇TI公司的單端輸出LDO[2](TPS77001、TPS79003)作為供電模塊。LDO的工作原理是通過負(fù)反饋調(diào)整輸出電流使輸出電壓保持不變。LDO是一個降壓型的DC/DC轉(zhuǎn)換器,因此Vin>Vout,它的工作效率可以用式(1)表示:
  
    LDO的工作效率一般在60%~75%之間,產(chǎn)生的靜態(tài)電流較小。
    (2)時鐘模塊
    時鐘是整個電路中最重要、最特殊的信號,電路中各器件的動作基本在時鐘的跳變沿上進(jìn)行,這就對系統(tǒng)時鐘信號的時延差要求非常小,否則容易造成時序邏輯狀態(tài)的錯誤。因而在電路設(shè)計中保持時鐘信號的穩(wěn)定性有著非常重要的意義。在本設(shè)計中,F(xiàn)PGA的控制時鐘由外部50 MHz的有源晶振提供。為了防止振蕩器干擾電源,在有源晶振旁加上104去耦電容。CMOS圖像傳感器的外部輸入時鐘EXTCLK需要100 MHz,其由FPGA中的PLL[3]倍頻得到。
    (3)CMOS圖像傳感器與FPGA通信模塊
    MT9P401圖像傳感器的內(nèi)部寄存器決定了圖像傳感器的工作狀態(tài),在圖像傳感器復(fù)位后,需要對這些內(nèi)部寄存器進(jìn)行配置,從而需要選用合理的外部控制器對其內(nèi)部寄存器進(jìn)行相關(guān)讀寫操作。本設(shè)計選用Altera公司生產(chǎn)的EP2C8T144C8作為MT9P401圖像傳感器的外部控制器,其有足夠的邏輯容量、PLL和I/O數(shù)量。通過EP2C8T144C8對MT9P401的內(nèi)部寄存器進(jìn)行設(shè)置,配置方式采用串行模式,通信協(xié)議采用I2C總線傳輸協(xié)議,從而驅(qū)動出MT9P401的幀有效信號(Frame_Valid)和行有效信號(Line_Valid)。
    除此之外,考慮到數(shù)字系統(tǒng)設(shè)計中的信號完整性(Signal Integrity,SI)、電源完整性(Power Integrity,PI)和電磁完整性(Electromagnetic Integrity,EMI),在PCB板布線過程中盡量避免過孔,采用差分對設(shè)計走線,增加PCB電源/地平面的層數(shù),等等,使設(shè)計整體的性能達(dá)到最優(yōu)狀態(tài)。
2.2 電路軟件設(shè)計
    根據(jù)具體應(yīng)用環(huán)境,選用MT9P401的電子卷簾快門模式作為圖像采樣模式。為了采集到連續(xù)的幀有效信號(Frame_Valid)和行有效信號(Line_Valid),通過I2C總線對MT9P401內(nèi)部的(11)H和(30)H兩個寄存器分別進(jìn)行設(shè)置,其余內(nèi)部寄存器保持默認(rèn)值。整個程序采用Verilog HDL語言編寫,采用自頂向下的設(shè)計方法,根據(jù)MT9P401的驅(qū)動時序分析劃分功能模塊,將各個輸入輸出信號分配給相應(yīng)功能模塊,并對各功能模塊進(jìn)行Verilog HDL設(shè)計輸入以及仿真。各功能模塊的功能都實現(xiàn)后,再完成頂層的Verilog HDL設(shè)計輸入以及仿真。整個程序主要包括時鐘產(chǎn)生模塊和I2C總線控制模塊[4]兩部分。
    時鐘產(chǎn)生模塊主要提供I2C總線的串行時鐘SCL和CMOS圖像傳感器的外部輸入時鐘EXTCLK。由于I2C總線協(xié)議一般有3種速度模式:正常速度模式100 kb/s、快速模式400 kb/s、高速模式3.5 Mb/s[5]。設(shè)計中采用速度模式為500 kb/s,F(xiàn)PGA的外部輸入時鐘為50 MHz,所以I2C總線的串行時鐘SCL需由FPGA分頻得到,通過設(shè)計時鐘計數(shù)器的方式來編寫時鐘分頻程序。CMOS圖像傳感器的外部輸入時鐘EXTCLK需要較高的穩(wěn)定性,為了產(chǎn)生合理的時鐘信號,利用Altera的IP工具,在QuartusⅡ軟件中通過MegaWizard設(shè)計一個PLL倍頻時鐘,使其輸出頻率為100 MHz,滿足CMOS圖像傳感器的外部輸入時鐘要求。
    I2C總線控制模塊是程序設(shè)計的核心模塊,主要完成控制I2C總線上主從設(shè)備的起始、讀寫、停止等狀態(tài)的轉(zhuǎn)換。首先對EP2C8T144C8的內(nèi)部寄存器進(jìn)行初始化,此時如果寫使能信號(wr_enable)為高,則EP2C8T144C8向MT9P401發(fā)送從器件寫地址(BA)H,收到響應(yīng)位后發(fā)送需要進(jìn)行寫操作的MT9P401的內(nèi)部寄存器地址,收到響應(yīng)位后繼續(xù)發(fā)送需要寫入寄存器的數(shù)據(jù)。若寫使能信號(wr_enable)為低,則開始對MT9P401的內(nèi)部寄存器進(jìn)行讀操作。其程序流程如圖2所示。

3 電路仿真與實現(xiàn)
    本設(shè)計選用Altera公司的QuartusⅡ6.0軟件工具進(jìn)行開發(fā)。通過QuartusⅡ6.0建立系統(tǒng)工程文件,根據(jù)設(shè)計要求設(shè)置文件類型和參數(shù),在工程文件下建立各個功能模塊的Verilog HDL文件,再對整體進(jìn)行編譯、綜合和仿真,然后下載配置到EP2C8T144C8中進(jìn)行板級調(diào)試[6]。
    如圖3所示,I2C總線控制仿真時序一共包含兩個輸入端和三個輸出端的波形狀況。其中EP2C8T144C8的控制時鐘CLK為50 MHz,MT9P401的輸入時鐘EXTCLK為100 MHz,復(fù)位信號RST為高電平,I2C的串行時鐘SCL為500 kHz。同時通過I2C的串行數(shù)據(jù)線SDA依次對MT9P401內(nèi)部的(11)H和(30)H兩個寄存器進(jìn)行配置,配置過程遵循I2C總線傳輸協(xié)議。

    對EP2C8T144C8下載配置完成后,用示波器探頭測量MT9P401的幀有效信號(Frame_Valid)和行有效信號(Line_Valid)輸出引腳,查看輸出波形,如圖4和圖5所示。從圖中可以看到有連續(xù)的幀有效信號和行有效信號輸出,而且?guī)行盘柕闹芷诩s為70 ms,行有效信號的周期約為35 μs,符合MT9P401的驅(qū)動時序要求,說明FPGA完成了對MT9P401的驅(qū)動設(shè)置。

    實測數(shù)據(jù)證明I2C總線控制時序設(shè)計正確,MT9P401圖像傳感器在I2C總線控制作用下,工作狀態(tài)正常,能夠輸出有效的數(shù)據(jù)信號。同時結(jié)合復(fù)雜可編程邏輯器件使設(shè)計的驅(qū)動電路具有集成度高、功耗低、速度快、接口方便等優(yōu)點,為基于大面陣CMOS圖像傳感器的抓拍相機(jī)系統(tǒng)的研究提供了可能性。另外FPGA的可編程性和Verilog HDL編程語言的可移植性,使得該設(shè)計具有更加廣范的應(yīng)用價值。
參考文獻(xiàn)
[1] 夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計教程(第2版)[M].北京:北京航空航天大學(xué)出版社,2008.
[2] 程軍,鄔小林,周民,等.一種LDO線性穩(wěn)壓電路設(shè)計[J]. 現(xiàn)代電子技術(shù),2010(6):16-19.
[3] 梁九鵬,李永亮,鄭佳.FPGA器件中PLL的設(shè)計應(yīng)用[J]. 無線電工程,2007,37(9):62-64.
[4] BRUCE J W.Personal digital assistant(PDA)based I2C bus  analysis[J].IEEE Transactions on Consumer Electronics,2003(11):1482-1485.
[5] 劉韜,樓興華.FPGA數(shù)字系統(tǒng)設(shè)計與開發(fā)實例導(dǎo)航[M]. 北京:人民郵電出版社,2005.
[6] 王誠,吳繼華,范麗珍,等.Altera FPGA/CPLD設(shè)計(基礎(chǔ)篇)[M].北京:人民郵電出版社,2005.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。