利用I2C總線實現(xiàn)DSP對增強型視頻輸入理器SAA7111A EVIP的配置
1 引言
圖像處理系統(tǒng)包括圖像采集模塊和圖像處理模塊。本系統(tǒng)設(shè)計采用SAA7111A EVIP(EnhancedVideo Input Processor)(簡稱SAA7111A)完成前端圖像采集,使用TMS320VC5509A完成圖像處理。在SAA7111A正常工作前需要對其進行初始化配置,由于這兩款器件內(nèi)部都集成有I2C模塊,可利用I2C總線實現(xiàn)對SAA7111A的初始化配置。
2 TMS320VC5509A內(nèi)部I2C模塊
2.1 I2C模塊內(nèi)部結(jié)構(gòu)
TMS320VC5509A內(nèi)部集成有I2C模塊,其內(nèi)部結(jié)構(gòu)框圖如圖1所示。
2.2 I2C總線的數(shù)據(jù)傳輸
I2C總線為一條串行數(shù)據(jù)線(SDA)和一條串行時鐘線(SCL)。SDA和SCL都支持輸入/輸出雙向傳輸,連接時需上拉至高電平。則TMS320VC5509A內(nèi)部I2C模塊支持主設(shè)備和從設(shè)備兩種模式,兼容Philip公司的I2C總線傳輸協(xié)議。
由連接至I2C總線的主設(shè)備提供時鐘。時鐘線SCL為高電平時,SDA上的數(shù)據(jù)須穩(wěn)定,只有當(dāng)SCL上的時鐘信號為低電平時,SDA上的數(shù)據(jù)才改變。I2C模塊在I2C總線配置為主模式時,產(chǎn)生START和STOP條件,如圖2所示。I2C總線的數(shù)據(jù)格式支持7-bit地址格式和10-bit地址格式,數(shù)據(jù)格式如圖3所示。
3.1概述
SAA7111A廣泛應(yīng)用于桌面視頻、多媒體、數(shù)字電視、圖像處理、視頻電話的高性能視頻輸入處理器。
SAA7111A主要有以下特點:SAA7111A共有4路模擬視頻信號輸入端,可以為4路CVBS或2路S視頻(Y/C),可編程設(shè)置4路視頻輸入中的一路或者兩路組成不同的工作模式;能實現(xiàn)行同步、場同步信號的自動監(jiān)測、分離,并且行同步信號的起始位置與結(jié)束位置均可編程控制;場頻50 Hz或60Hz自動檢測,對不同輸入制式的亮度信號、色差信號進行處理,實現(xiàn)亮度、色度以及飽和度的片內(nèi)實時控制;I2C總線接口,配置片內(nèi)寄存器,實現(xiàn)用戶所需功能;SAA7111A輸出為16位VPO總線,支持不同位寬的數(shù)據(jù)輸出格式;有片內(nèi)時鐘產(chǎn)生電路,通過數(shù)字PLL鎖定行同步。
3.2 I2C總線接口
SAA7111A作為從設(shè)備時,其寫地址為48H,讀地址為49H,配置寄存器時I2C總線上數(shù)據(jù)格式如圖4所示。
SAA7111A內(nèi)部有32個控制寄存器,22個可編程設(shè)置。本系統(tǒng)只用其中一部分寄存器,通過I2C總線配置這些寄存器,使其正常工作。SAA7111A片內(nèi)寄存器功能如表1所列。
系統(tǒng)選用模式0,視頻信號由SAA7111A的AIll引腳輸入。SAA7111A的時鐘由24.576 MHz的晶體振蕩器提供,數(shù)字PLL產(chǎn)生同步時鐘信號LLC,CREF是時鐘參考信號,其頻率與LLC相等,高電平時各輸出信號穩(wěn)定。VPO輸出圖像數(shù)據(jù),每2個LLC周期輸出1個16位YUV4:2:2格式的數(shù)據(jù)。同時產(chǎn)生的輸出信號還包括水平參考信號HREF和垂直參考信號VREF。YMS320VC5509A的I2C模塊的串行數(shù)據(jù)線(SDA)和串行時鐘線(SCL)直接與SAA7111A的I2C總線SDA與SCL相連.并接上拉電阻,保證I2C總線處于空閑狀態(tài)時SDA與SCL都處于高電平,這樣DSP利用I2C總線配置視頻采集器件。SAA7111A與DSP的接口原理圖如圖5所示。
將TMS320VC5509A的I2C模塊設(shè)定為I2C總線的主設(shè)備,地址為0000H,7位地址工作模式,傳輸速率為100 Kb/s;而SAA7111A作為從設(shè)備,讀地址為49H,寫地址為48H。
5.1 I2C模塊初始化
利用I2C總線配置SAA7111A之前,應(yīng)先初始化DSP的I2C模塊。
CCS提供強大的芯片支持庫,可直接調(diào)用I2C模塊的芯片支持庫函數(shù)完成I2C模塊的初始化以及SAA7111A的配置。調(diào)用庫函數(shù)之前應(yīng)包含頭文件csl i2c.h。I2C初始化結(jié)構(gòu)如下:
而調(diào)用初始化函數(shù)初始化DSP的I2C模塊I2C_setup(&My_Init)。
由于本系統(tǒng)的I2C模塊只用于配置SAA7111A,并不進行數(shù)據(jù)傳輸,無需中斷I2C模塊,因此中斷使能關(guān)閉。
5.2利用I2C總線配置SAA7111A
DSP的I2C模塊初始化后,則利用I2C總線配置SAA7111A。同樣,使用CCS的芯片支持庫函數(shù)實現(xiàn)SAA7111A的配置。發(fā)送到I2C總線上的配置數(shù)據(jù)組:
由于SAA7111A接收I2C總線發(fā)送的多個數(shù)據(jù)時,其子地址遞增,因此在發(fā)送數(shù)據(jù)組里,第一個數(shù)據(jù)是子地址,后面依次是發(fā)送到該子地址及后面子地址的數(shù)據(jù)值。
調(diào)用寫I2C總線函數(shù),配置SAA7111A寄存器。
注意:發(fā)送從地址不包括讀寫位,而SAA7111A作為從設(shè)備的讀地址為49H,寫地址為48H都是包括讀寫位(Slave Address+W/R)。因此上面的發(fā)送從地址不是0x48,而是0x24。同樣在利用芯片支持庫函數(shù)進行讀操作時,從地址不是0x49,而是0x24。
6 結(jié)束語
利用本文介紹的方法成功實現(xiàn)DSP對SAA7111A的初始化配置。SAA7111A與TMS320VC5509A都集成有I2C模塊,便于配置SAA7111A。CCS提供強大的芯片支持庫CSL,可直接使用這些函數(shù)便于訪問片上外設(shè)。這些函數(shù)都是經(jīng)過優(yōu)化的,其執(zhí)行效率高并不比直接使用匯編語言編寫的代碼低。