基于FPGA視頻采集中的I2C總線設(shè)計(jì)與實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
l I2C總線的特點(diǎn)和協(xié)議
I2C總線協(xié)議作為一個(gè)串行總線標(biāo)準(zhǔn),盡管沒有并行總線的數(shù)據(jù)吞吐能力,但是它的特點(diǎn)和協(xié)議使其有著廣泛的應(yīng)用。其特點(diǎn)和協(xié)議主要有:
只需兩條總線即串行時(shí)鐘線(SCL)和串行數(shù)據(jù)線(SDA),使得IC引腳數(shù)目降低;且連接到總線的器件都是惟一地址、從節(jié)點(diǎn)關(guān)系軟件設(shè)定地址,主節(jié)點(diǎn)可以發(fā)送或者接收數(shù)據(jù)。是真正的多主總線,當(dāng)兩個(gè)或更多主節(jié)點(diǎn)同時(shí)初始化數(shù)據(jù)傳輸時(shí),可以通過沖突檢測和仲裁防止數(shù)據(jù)被破壞。串行的8位雙向數(shù)據(jù)傳輸速率在標(biāo)準(zhǔn)模式下可達(dá)100 Kb/s,快速模式下達(dá)400 Kb/s,高速模式下達(dá)3.4 Mb/s,連接到相同總線的IC數(shù)量只受到總線的最大電容(400 pF)限制。片上的濾波器可以濾去總線數(shù)據(jù)線上的毛刺波,保證數(shù)據(jù)完整。
一般在總線不忙的情況下,數(shù)據(jù)傳送才能開始,在數(shù)據(jù)傳送期間,無論何時(shí)時(shí)鐘線為高,數(shù)據(jù)線必須保持穩(wěn)定,而且數(shù)據(jù)線和時(shí)鐘都必須保持為高電平。當(dāng)時(shí)鐘線為高時(shí),數(shù)據(jù)線的變化將認(rèn)為是傳送的開始或停止,在這里,數(shù)據(jù)線由高到低的變化決定開始條件。而且數(shù)據(jù)線由低到高的變化決定停止條件。在滿足開始條件后,串行時(shí)鐘線(SCL)為低電平期間,串行數(shù)據(jù)線(SDA)允許發(fā)生變化,但每位數(shù)據(jù)需一個(gè)時(shí)鐘脈沖,當(dāng)串行時(shí)鐘線(SCL)為高電平時(shí),串行數(shù)據(jù)線(SDA)必須穩(wěn)定,不能發(fā)生任何變化。主控器在應(yīng)答時(shí)鐘脈沖高電平期間釋放串行數(shù)據(jù)線(SDA)線高,轉(zhuǎn)由接收器控制。受控器在應(yīng)答時(shí)鐘脈沖高電平期間必須拉低串行數(shù)據(jù)線(SDA)線,使穩(wěn)定的低電平作為有效應(yīng)答。
2 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
現(xiàn)有一些可編程視頻輸入處理芯片,如:SAA7111,它的配置是通過I2C總線實(shí)現(xiàn)的,這種總線接口協(xié)議解決了設(shè)計(jì)數(shù)字控制電路時(shí)所遇到的許多接口問題,大大降低了視頻輸入處理部分的設(shè)計(jì)難度。因此,它被廣泛應(yīng)用于視頻桌面系統(tǒng)、圖像多媒體、數(shù)字電視、圖像處理、視頻電話和音頻等領(lǐng)域。SAA7111芯片作為視頻的輸入處理部分,用來實(shí)現(xiàn)模擬輸入視頻信號(hào)的數(shù)字化。系統(tǒng)上電時(shí),F(xiàn)PGA首先從外部配置芯片中讀取配置數(shù)據(jù),進(jìn)入工作模式狀態(tài)。隨后I2C配置模塊完成對(duì)SAA7111的初始化。初始化結(jié)束后,F(xiàn)PGA等待采集圖像的命令,F(xiàn)PGA收到采集命令后,視頻信號(hào)將進(jìn)入視頻解碼器SAA7111進(jìn)行A/D轉(zhuǎn)換,以將模擬信息變成標(biāo)準(zhǔn)的YUV數(shù)字圖像信息。系統(tǒng)功能框圖如圖1所示。
3 I2C總線的實(shí)現(xiàn)方法
在對(duì)I2C總線設(shè)計(jì)中,通過SAA7111上的I2C接口對(duì)其工作方式寄存器進(jìn)行設(shè)置實(shí)現(xiàn)其功能。SAA7111是一款功能強(qiáng)大的模擬前端和數(shù)字視頻譯碼器,常應(yīng)用在嵌入式視頻應(yīng)用的高度集成的電路中。內(nèi)部包含兩路模擬處理通道,能實(shí)現(xiàn)視頻源的選擇、抗混疊濾波、A/D轉(zhuǎn)換、自動(dòng)嵌位、自動(dòng)增益控制、時(shí)鐘產(chǎn)生、多制式解碼以及亮度、對(duì)比度和飽和度的控制,從而將PAL,NTSC等不同制式的模擬復(fù)合視頻數(shù)據(jù)解碼成亮度、色度和相關(guān)同步的數(shù)字信號(hào)。SAA7111內(nèi)有32個(gè)寄存器(SLLbaddress00~1FH),其中22個(gè)是可編程的。其中,OOH,1A~lCH,lFH是只讀寄存器。00H描述的是芯片版本信息;1A~1CH是文本信息檢測和解碼寄存器,一般很少用到;lFH用來描述芯片的狀態(tài)。02H~12H是可讀/寫寄存器,其中:02H~05H是模擬輸入控制寄存器,02H用于設(shè)置模擬視頻信號(hào)輸入方式(共8種);03H~05H用于設(shè)置增益控制方式;06H~12H主要用于設(shè)置解碼方式,通過配置這些寄存器可以設(shè)置行同步信號(hào)的開始和結(jié)束位置,并可確定亮度、色度、飽和度的大小以及輸出圖像數(shù)據(jù)信號(hào)的格式。01H,13H~19H,1DH~1EH寄存器保留使用。
由于SAA7111加電復(fù)位之后,各寄存器處于不確定狀態(tài),因此需要采用I2C總線協(xié)議由FPGA作為主方對(duì)SAA7111的相關(guān)寄存器進(jìn)行設(shè)置。從SAA7111的四個(gè)模擬輸入端AIll,AI12,AI21,AI22的某一引腳輸入的視頻圖像信號(hào)經(jīng)模擬處理后,一路可通過緩沖器輸出到AOUT端用于監(jiān)視,另一路經(jīng)A/D轉(zhuǎn)換器后則產(chǎn)生數(shù)字色度信號(hào)和亮度信號(hào)。在分別進(jìn)行亮度信號(hào)處理和色度信號(hào)處理后,其亮度信號(hào)處理結(jié)果的一路將送到色度信號(hào)處理器進(jìn)行綜合處理,產(chǎn)生的Y和UV信號(hào)經(jīng)格式化后從VPO(16位)輸出;另一路則進(jìn)入同步分離器,并經(jīng)數(shù)字PLL產(chǎn)生相應(yīng)的行和場同步信號(hào)HS和VS。同時(shí),PLL將驅(qū)動(dòng)時(shí)鐘發(fā)生器,以產(chǎn)生HS鎖定的時(shí)鐘信號(hào)LLC和LLC2,SAA7111的所有功能均是在I2C總線控制下完成的。SA-A7111相應(yīng)的寄存器初始化值見表1。
I2C總線控制讀/寫操作過程如表2、表3所示(S:開始,Sr:重開始,P:停止,-S:從設(shè)備,-M:主設(shè)備,W:寫位,R:讀位):
在設(shè)計(jì)中主要實(shí)現(xiàn)以下四種功能:開始條件功能、字節(jié)發(fā)送功能、應(yīng)答條件功能和停止條件功能。四種功能信號(hào)的時(shí)序和數(shù)據(jù)總線傳遞如圖2、圖3所示。
為了完成上述要求和功能,本文采用VHDL語言編寫邏輯的方法來模擬I2C總線接口時(shí)序邏輯,配置數(shù)據(jù)可以由主機(jī)發(fā)送,也可以預(yù)先存放,同時(shí)用VHDL編寫時(shí)序邏輯對(duì)SAA7111進(jìn)行初始化配置。根據(jù)設(shè)計(jì)要求,在不同的進(jìn)程下對(duì)串行時(shí)鐘線(SCL)和串行數(shù)據(jù)線(SDA)進(jìn)行設(shè)計(jì)。時(shí)鐘信號(hào)源采用10 MHz的晶振,分頻后作為進(jìn)程激勵(lì)信號(hào),基本能夠滿足SAA7111芯片的數(shù)據(jù)率要求。但如果在一些更高速的情況下,需要快速通過I2C總線對(duì)被控器件進(jìn)行設(shè)置,這里只需將行時(shí)鐘線(SCL)和串行數(shù)據(jù)線(SDA)的頻率進(jìn)行修改即可,其接口控制如圖4所示。
4 設(shè)計(jì)仿真結(jié)果
設(shè)計(jì)中利用QuartusⅡ集成環(huán)境采用VHDL語言實(shí)現(xiàn)了I2C總線對(duì)SAA7111中集成的symbol進(jìn)行實(shí)驗(yàn)仿真。reset信號(hào)為外接復(fù)位信號(hào),時(shí)鐘信號(hào)根據(jù)需要外接所需頻率時(shí)鐘信號(hào)(clk),并根據(jù)要求對(duì)信號(hào)進(jìn)行16分頻作為進(jìn)程激勵(lì)信號(hào)(clkin)。對(duì)于上述初始化數(shù)據(jù),仿真波形如圖5所示仿真結(jié)果輸出正確后,配置與電路設(shè)計(jì)相符的入/輸出引腳。根據(jù)測試結(jié)果,該設(shè)計(jì)可以穩(wěn)定可靠地對(duì)SAA7111進(jìn)行參量控制,如果需要修改只需更換程序中參量,再次編譯下載即可。
5 結(jié)語
該設(shè)計(jì)在視頻采集處理系統(tǒng)中已得到應(yīng)用,I2C總線接口數(shù)據(jù)采集正確、穩(wěn)定,并且在實(shí)現(xiàn)過程中,占用資源少,僅為總資源的40 %。核心器件與圖像數(shù)據(jù)采集芯片配合使用,節(jié)省核心處理芯片的通用I/O接口,使系統(tǒng)整體電路十分簡潔、可靠性高、集成度高、接口方便等優(yōu)點(diǎn)。