a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于I2C總線圖像傳感器配置的FPGA實現

基于I2C總線圖像傳感器配置的FPGA實現

作者: 時間:2015-06-27 來源:網絡 收藏

  基于的嵌入式圖像檢測系統因其快速的處理能力和靈活的編程設計使得它在工業現場的應用非常廣泛,通常這些系統都是通過采集圖像數據流并對它實時處理得到所需的特征信息。圖像數據的獲取是整個系統的第一步,作為整個系統的最前端,它決定了原始數據的質量,是整個系統成功的關鍵。CMOS圖像傳感器采用CMOS工藝,可以將圖像采集單元和信號處理單元集成到同一塊芯片上,因而在集成度、功耗、成本上具有很大優勢,這使得它在嵌入式圖像處理領域的運用越來越多。CMOS圖像傳感器芯片大都把總線的一個子集作為控制接口,用戶可以很方便地對芯片進行編程操作,根據設計要求的不同配置圖像傳感器內部寄存器數據,以獲取期望的圖像。本文以Aptina公司的MT9P031圖像傳感器為例,用Verilog硬件描述語言設計了總線的接口電路,以作為核心控制器實現了對MT9P031初始化操作,不僅驗證了總線的配置效果,得到了理想的圖像數據,還為后續線結構光圖像的處理系統奠定了基礎。

本文引用地址:http://www.j9360.com/article/276397.htm

  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所示,起始信號過后,先寫入設備(即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的波形仿真

fpga相關文章:fpga是什么


傳感器相關文章:傳感器工作原理


風速傳感器相關文章:風速傳感器原理

上一頁 1 2 下一頁

關鍵詞: I2C FPGA

評論


相關推薦

技術專區

關閉