基于FPGA視頻采集中的I2C總線設計與實現
l I2C總線的特點和協議
I2C總線協議作為一個串行總線標準,盡管沒有并行總線的數據吞吐能力,但是它的特點和協議使其有著廣泛的應用。其特點和協議主要有:
只需兩條總線即串行時鐘線(SCL)和串行數據線(SDA),使得IC引腳數目降低;且連接到總線的器件都是惟一地址、從節點關系軟件設定地址,主節點可以發送或者接收數據。是真正的多主總線,當兩個或更多主節點同時初始化數據傳輸時,可以通過沖突檢測和仲裁防止數據被破壞。串行的8位雙向數據傳輸速率在標準模式下可達100 Kb/s,快速模式下達400 Kb/s,高速模式下達3.4 Mb/s,連接到相同總線的IC數量只受到總線的最大電容(400 pF)限制。片上的濾波器可以濾去總線數據線上的毛刺波,保證數據完整。
一般在總線不忙的情況下,數據傳送才能開始,在數據傳送期間,無論何時時鐘線為高,數據線必須保持穩定,而且數據線和時鐘都必須保持為高電平。當時鐘線為高時,數據線的變化將認為是傳送的開始或停止,在這里,數據線由高到低的變化決定開始條件。而且數據線由低到高的變化決定停止條件。在滿足開始條件后,串行時鐘線(SCL)為低電平期間,串行數據線(SDA)允許發生變化,但每位數據需一個時鐘脈沖,當串行時鐘線(SCL)為高電平時,串行數據線(SDA)必須穩定,不能發生任何變化。主控器在應答時鐘脈沖高電平期間釋放串行數據線(SDA)線高,轉由接收器控制。受控器在應答時鐘脈沖高電平期間必須拉低串行數據線(SDA)線,使穩定的低電平作為有效應答。
2 系統結構設計
現有一些可編程視頻輸入處理芯片,如:SAA7111,它的配置是通過I2C總線實現的,這種總線接口協議解決了設計數字控制電路時所遇到的許多接口問題,大大降低了視頻輸入處理部分的設計難度。因此,它被廣泛應用于視頻桌面系統、圖像多媒體、數字電視、圖像處理、視頻電話和音頻等領域。SAA7111芯片作為視頻的輸入處理部分,用來實現模擬輸入視頻信號的數字化。系統上電時,FPGA首先從外部配置芯片中讀取配置數據,進入工作模式狀態。隨后I2C配置模塊完成對SAA7111的初始化。初始化結束后,FPGA等待采集圖像的命令,FPGA收到采集命令后,視頻信號將進入視頻解碼器SAA7111進行A/D轉換,以將模擬信息變成標準的YUV數字圖像信息。系統功能框圖如圖1所示。
3 I2C總線的實現方法
在對I2C總線設計中,通過SAA7111上的I2C接口對其工作方式寄存器進行設置實現其功能。SAA7111是一款功能強大的模擬前端和數字視頻譯碼器,常應用在嵌入式視頻應用的高度集成的電路中。內部包含兩路模擬處理通道,能實現視頻源的選擇、抗混疊濾波、A/D轉換、自動嵌位、自動增益控制、時鐘產生、多制式解碼以及亮度、對比度和飽和度的控制,從而將PAL,NTSC等不同制式的模擬復合視頻數據解碼成亮度、色度和相關同步的數字信號。SAA7111內有32個寄存器(SLLbaddress00~1FH),其中22個是可編程的。其中,OOH,1A~lCH,lFH是只讀寄存器。00H描述的是芯片版本信息;1A~1CH是文本信息檢測和解碼寄存器,一般很少用到;lFH用來描述芯片的狀態。02H~12H是可讀/寫寄存器,其中:02H~05H是模擬輸入控制寄存器,02H用于設置模擬視頻信號輸入方式(共8種);03H~05H用于設置增益控制方式;06H~12H主要用于設置解碼方式,通過配置這些寄存器可以設置行同步信號的開始和結束位置,并可確定亮度、色度、飽和度的大小以及輸出圖像數據信號的格式。01H,13H~19H,1DH~1EH寄存器保留使用。
評論