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