名廠專場:詳解I2C總線的圖像傳感器配置
發布時間:2015-06-25 責任編輯:sherry
【導讀】基於I2C總線的圖像傳感器配置在視頻圖像采集處理係統中非常普遍,本設計結合了FPGA 的可編程特性,采用模塊化的方法設計方法完成了I2C 配置電路的設計,詳細介紹了各個模塊的設計流程和實現方式,最後對整個設計進行了仿真,驗證了設計的正確性。
基於FPGA deqianrushituxiangjiancexitongyinqikuaisudechulinenglihelinghuodebianchengshejishidetazaigongyexianchangdeyingyongfeichangguangfan,tongchangzhexiexitongdoushitongguocaijituxiangshujuliubingduitashishichulidedaosuoxudetezhengxinxi。tuxiangshujudehuoqushizhenggexitongdediyibu,zuoweizhenggexitongdezuiqianduan,tajuedingleyuanshishujudezhiliang,shizhenggexitongchenggongdeguanjian。CMOS 圖像傳感器采用CMOS 工藝,可以將圖像采集單元和信號處理單元集成到同一塊芯片上,因而在集成度、功耗、成本上具有很大優勢,這使得它在嵌入式圖像處理領域的運用越來越多。CMOS 圖像傳感器芯片大都把 I2C zongxiandeyigezijizuoweikongzhijiekou,yonghukeyihenfangbiandiduixinpianjinxingbianchengcaozuo,genjushejiyaoqiudebutongpeizhituxiangchuanganqineibujicunqishuju,yihuoquqiwangdetuxiang。
本文以Aptina 公司的MT9P031 圖像傳感器為例,用Verilog 硬件描述語言設計了I2C 總線的接口電路,以FPGA 作為核心控製器實現了對MT9P031 初始化操作,不僅驗證了I2C 總線的配置效果,得到了理想的圖像數據,還為後續線結構光圖像的處理係統奠定了基礎。
1 I2C 總線協議及MT9P031 配置過程介紹
1.1 I2C 總線協議
I2C(Inter-Integrated Circuit Bus) 總線是由PHILIPS 公司開發的兩線式用於芯片之間連接的總線,由於其接口線少,控製方式簡單,通信速率較高等特點,在單片機、串行EEPROM 等器件中有著廣泛的使用。I2C 總線用兩根信號線來進行數據傳輸,一根為串行數據(SDA, Serial Data),另一根為串行時鍾線(SCL, Serial Clock)。若幹兼容器件(如存儲器、A/D、D/A、LCD 驅動器等)可以共享I2C 總線。I2C 總線上所有器件依靠SDA 發送的地址信號尋址,不需要片選線。任何時刻總線隻能由一個主器件控製,各從器件在總線空閑時啟動數據傳輸。
1.2 MT9P031 配置時序分析
youyujiancexitongxuqiudebutong,tuxiangchuanganqikenengyaogongzuozaibutongdemoshi,yincixuyaotongguowaibukongzhiqiduiqineibujicunqijinxingduxiecaozuo,wanchengjutidepeizhi。dianxingdexieMT9P031 寄存器時序如圖1 所示,起始信號過後,FPGA 先寫入設備(即MT9P031)的地址0xBA,然後釋放SDATA 數據總線,隨後MT9P031 返回一個應答信號ACK,FPGA 獲取應答信號後,經過一個時鍾周期再傳送待配置的寄存器地址0x09,在獲取應答信號後再傳送16 位的寄存器數據,由於每次隻能發送8 位數據,所以這16位的寄存器數據要分兩次才能發送完畢,先發送的是高八位數據,後發送的為低八位數據,每發送完一個字節的數據,FPGA均會獲取一位的應答信號,然後結束一個傳送周期,完成一個寄存器的配置,即IDAddress+ SUB-Address + W-Data 總共32位的數據。重複上述過程可以對不同的寄存器進行不同的參數配置。

圖1 寫MT9P031 時序圖
2 FPGA 模塊設計
為了實現對圖像傳感器的正確配置,必須嚴格按照MT9P031 的配置時序完成設計,本設計中I2C 總線配置模塊主要由三個小模塊構成,它們分別是I2C_Clock_Generator、I2C_Controller 和Register_Value,各模塊之間的連接如圖2 所示。

圖2 I2C 總線配置模塊結構框圖
I2C_Clock_Generator 主要產生負責產生I2C 串行時鍾信號,根據協議數據傳輸有三種速度模式:正常模式100Kb/s、快速模式400Kb/s、高速模式3.4Mb/s,為了保證配置的準確性和成功率,設計中采用了100Kb/ 的速度模式,即SCLK 的頻率為100KHz,因為FPGA 外部輸入的時鍾為50MHz,所以需要對其分頻獲得。同時該模塊還負責產生數據傳輸有效信號,保證SDAT 的改變發生在SCLK 的低電平時段。
Register_Value 其實一個查找表,負責保存MT9P031 內部需要配置的寄存器地址和數據,查找表內數據的位數都是24bit,單獨作為一個模塊的目的是為了方便用戶改變配置數據,決定圖像傳感器的不同工作狀態。
I2C_Controller 是圖像傳感器配置設計的核心模塊,主要完成了啟停命令產生、字節發送和讀取、應答信號采集等功能。同時,I2C_Controller 模塊還產生I2C讀寫時序,由狀態機嚴格按照I2C 協議實現,將Register Value 部分送出的24 位操作碼I2C_DAT 轉化成為正確的I2C 時序。一個寄存器的數據傳輸完成後,模塊還將判斷寄存器配置數據是否發送順利,如果一切正常,LUT_INDEX 信號會自動加一,控製Register Value 查找表產生下一個寄存器的地址和數據。
3 I2C 接口的仿真及調試
為了驗證MT9P031 配置過程中I2C時序的正確性,本設計在Modelsim Se10.1c 版軟件平台中對整個模塊進行了功能仿真,在Test bench 中模擬了50MHz 控製時鍾以及複位信號,觀察最終輸出端的波形情況。圖3 是對MT9P031 的寄存器地址0x00 進行讀操作的仿真波形圖,圖4是對寄存器地址0x01 寫入0x01EA 的仿真波形圖。

圖3 讀取寄存器0x00 的波形仿真

圖4 向寄存器0x01 寫入數據0x01EA 的波形仿真
4 總結
基於I2C總線的圖像傳感器配置在視頻圖像采集處理係統中非常普遍,本設計結合了FPGA 的可編程特性,采用模塊化的方法設計方法完成了I2C 配(pei)置(zhi)電(dian)路(lu)的(de)設(she)計(ji),詳(xiang)細(xi)介(jie)紹(shao)了(le)各(ge)個(ge)模(mo)塊(kuai)的(de)設(she)計(ji)流(liu)程(cheng)和(he)實(shi)現(xian)方(fang)式(shi),最(zui)後(hou)對(dui)整(zheng)個(ge)設(she)計(ji)進(jin)行(xing)了(le)仿(fang)真(zhen),驗(yan)證(zheng)了(le)設(she)計(ji)的(de)正(zheng)確(que)性(xing)。綜(zong)合(he)調(tiao)試(shi)後(hou)占(zhan)用(yong)資(zi)源(yuan)極(ji)小(xiao),可(ke)靠(kao)性(xing)高(gao),而(er)且(qie)利(li)用(yong)Verilog 硬件描述語言的設計使得可移植性很強,具有廣泛的應用價值。
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 大聯大世平集團首度亮相北京國際汽車展 攜手全球芯片夥伴打造智能車整合應用新典範
- 2026北京車展即將啟幕,高通攜手汽車生態“朋友圈”推動智能化體驗再升級
- 邊緣重構智慧城市:FPGA SoM 如何破解視頻係統 “重而慢”
- 如何使用工業級串行數字輸入來設計具有並行接口的數字輸入模塊
- 意法半導體將舉辦投資者會議探討低地球軌道(LEO)發展機遇
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
接口IC
介質電容
介質諧振器
金屬膜電阻
晶體濾波器
晶體諧振器
晶體振蕩器
晶閘管
精密電阻
精密工具
景佑能源
聚合物電容
君耀電子
開發工具
開關
開關電源
開關電源電路
開關二極管
開關三極管
科通
可變電容
可調電感
可控矽
空心線圈
控製變壓器
控製模塊
藍牙
藍牙4.0
藍牙模塊
浪湧保護器


