<abbr id="kc8ii"><menu id="kc8ii"></menu></abbr>
  • <input id="kc8ii"><tbody id="kc8ii"></tbody></input><table id="kc8ii"><source id="kc8ii"></source></table><kbd id="kc8ii"></kbd>
    <center id="kc8ii"><table id="kc8ii"></table></center>
  • <input id="kc8ii"></input>
    <abbr id="kc8ii"></abbr>
  • <abbr id="kc8ii"></abbr>
  • <center id="kc8ii"><table id="kc8ii"></table></center>
    <abbr id="kc8ii"></abbr>
    你的位置:首頁 > 傳感技術 > 正文

    名廠專場:詳解I2C總線的圖像傳感器配置

    發布時間:2015-06-25 責任編輯:sherry

    【導讀】基于I2C總線的圖像傳感器配置在視頻圖像采集處理系統中非常普遍,本設計結合了FPGA 的可編程特性,采用模塊化的方法設計方法完成了I2C 配置電路的設計,詳細介紹了各個模塊的設計流程和實現方式,最后對整個設計進行了仿真,驗證了設計的正確性。
     
    基于FPGA 的嵌入式圖像檢測系統因其快速的處理能力和靈活的編程設計使得它在工業現場的應用非常廣泛,通常這些系統都是通過采集圖像數據流并對它實時處理得到所需的特征信息。圖像數據的獲取是整個系統的第一步,作為整個系統的最前端,它決定了原始數據的質量,是整個系統成功的關鍵。CMOS 圖像傳感器采用CMOS 工藝,可以將圖像采集單元和信號處理單元集成到同一塊芯片上,因而在集成度、功耗、成本上具有很大優勢,這使得它在嵌入式圖像處理領域的運用越來越多。CMOS 圖像傳感器芯片大都把 I2C 總線的一個子集作為控制接口,用戶可以很方便地對芯片進行編程操作,根據設計要求的不同配置圖像傳感器內部寄存器數據,以獲取期望的圖像。
     
    本文以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 配置時序分析
     
    由于檢測系統需求的不同,圖像傳感器可能要工作在不同的模式,因此需要通過外部控制器對其內部寄存器進行讀寫操作,完成具體的配置。典型的寫MT9P031 寄存器時序如圖1 所示,起始信號過后,FPGA 先寫入設備(即MT9P031)的地址0xBA,然后釋放SDATA 數據總線,隨后MT9P031 返回一個應答信號ACK,FPGA 獲取應答信號后,經過一個時鐘周期再傳送待配置的寄存器地址0x09,在獲取應答信號后再傳送16 位的寄存器數據,由于每次只能發送8 位數據,所以這16位的寄存器數據要分兩次才能發送完畢,先發送的是高八位數據,后發送的為低八位數據,每發送完一個字節的數據,FPGA均會獲取一位的應答信號,然后結束一個傳送周期,完成一個寄存器的配置,即IDAddress+ SUB-Address + W-Data 總共32位的數據。重復上述過程可以對不同的寄存器進行不同的參數配置。
    寫MT9P031 時序圖
    圖1 寫MT9P031 時序圖
     
    2 FPGA 模塊設計
     
    為了實現對圖像傳感器的正確配置,必須嚴格按照MT9P031 的配置時序完成設計,本設計中I2C 總線配置模塊主要由三個小模塊構成,它們分別是I2C_Clock_Generator、I2C_Controller 和Register_Value,各模塊之間的連接如圖2 所示。
     I2C 總線配置模塊結構框圖
    圖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 的仿真波形圖。
    讀取寄存器0x00 的波形仿真
    圖3 讀取寄存器0x00 的波形仿真
    向寄存器0x01 寫入數據0x01EA 的波形仿真
    圖4 向寄存器0x01 寫入數據0x01EA 的波形仿真
     
    4 總結
     
    基于I2C總線的圖像傳感器配置在視頻圖像采集處理系統中非常普遍,本設計結合了FPGA 的可編程特性,采用模塊化的方法設計方法完成了I2C 配置電路的設計,詳細介紹了各個模塊的設計流程和實現方式,最后對整個設計進行了仿真,驗證了設計的正確性。綜合調試后占用資源極小,可靠性高,而且利用Verilog 硬件描述語言的設計使得可移植性很強,具有廣泛的應用價值。
    要采購傳感器么,點這里了解一下價格!
    特別推薦
    技術文章更多>>
    技術白皮書下載更多>>
    熱門搜索
    ?

    關閉

    ?

    關閉

    亚洲AV无码一区二区三区系列| 亚洲AV无码久久精品成人| 欧美日韩中文在线| 特级无码毛片免费视频尤物| 91精品日韩人妻无码久久不卡| 中文字幕精品一区| 人妻中文字幕乱人伦在线| 最近更新中文字幕在线| 国模无码一区二区三区| 亚洲AV无码一区东京热久久| 亚洲精品欧美二区三区中文字幕| 亚洲美日韩Av中文字幕无码久久久妻妇 | 一级片无码中文字幕乱伦| 中文字幕本一道先锋影音| 亚洲AV无码不卡在线观看下载 | 精品无码人妻夜人多侵犯18 | 精品无码AV无码免费专区| 西西4444www大胆无码| 免费无遮挡无码永久视频| 亚洲一区无码中文字幕| 蜜桃视频无码区在线观看| 毛片无码免费无码播放| 狠狠躁夜夜躁无码中文字幕 | 精品人妻无码专区中文字幕| 天堂√最新版中文在线| 亚洲一本大道无码av天堂| 蜜臀AV无码国产精品色午夜麻豆 | 亚洲爆乳无码精品AAA片蜜桃| 国产AV无码专区亚洲Av| 精品久久无码中文字幕| 精品中文高清欧美| 欧美日韩中文字幕在线看 | 国产成年无码久久久免费| 中文资源在线官网| 日韩人妻无码精品专区| 久久亚洲精品无码播放| 亚洲gv天堂无码男同在线观看 | 激情欧美一区二区三区中文字幕| 亚洲中文精品久久久久久不卡| 99久久中文字幕| 青春草无码精品视频在线观|