您可以添加到网摘 让更多人关注此文章:
Implementation of SAA7111A EVIP configuration using I2C bus of DSP
Abstract: The configuration and operation principle of the I2C module within TMS320VC5509A,the characteristic of I2C bus data,the characteristic of I2C interface and the its registers are introduced.The method of initialization of I2C module inside DSP with the Chip Support Library (CSL) offered by CCS, and the implementation details of SAA7111A EVIP configuration using I2C bus are given. 关键词: I2C总线; DSP; SAA7111A EVIP; TMS320VC5509A; TMS320C55x片上支持库(CSL) Keywords: I2C bus; DSP; SAA7111A EVIP; TMS320VC5509A; TMS320C55x CSL 摘要: 介绍了TMS320VC5509A的 I2C模块的内部结构和工作原理、I2C总线数据特点以及增强型视频输入处理器SAA7111A EVIP(Enhanced Video Input Processor )的I2C接口的特点及其内部控制寄存器。在此基础上详细阐述了如何利用CCS提供的片上支持库(CSL)对DSP内部的I2C模块进行初始化,并通过I2C总线对SAA7111A EVIP进行配置的过程。 关键词: I2C总线; DSP; SAA7111A EVIP; TMS320VC5509A; TMS320C55x片上支持库(CSL)
1 引言
图像处理系统包括图像采集模块和图像处理模块。本系统设计采用SAA7111A EVIP(EnhancedVideo Input Processor)(简称SAA7111A)完成前端图像采集,使用TMS320VC5509A完成图像处理。在SAA7111A正常工作前需要对其进行初始化配置,由于这两款器件内部都集成有I2C模块,可利用I2C总线实现对SAA7111A的初始化配置。
2 TMS320VC5509A内部I2C模块
2.1 I2C模块内部结构
TMS320VC5509A内部集成有I2C模块,其内部结构框图如图1所示。
数据发送寄存器I2CDXR、发送移位寄存器I2CXSR、数据接收寄存器I2CDRR及接收移位寄存器I2CRSR负责数据线SDA上串行数据的发送与接收;时钟同步单元用于同步I2C的输入时钟(来自DSP时钟发生器)和SCL上的时钟,并在多主设备数据传输模式下保证多个主设备时钟完全同步;多主发送传输模式下,仲裁单元对数据总线上的数据进行仲裁;预分频器对I2C模块的输入时钟分频;I2C模块中断产生单元和DMA同步事件产生单元用于触发相应CPU中断和DMA传输。控制寄/状态存器用于实现I2C模块工作模式的设定和状态控制。I2C模块通过外设总线与CPU和DMA控制器进行通信。
2.2 I2C总线的数据传输
I2C总线为一条串行数据线(SDA)和一条串行时钟线(SCL)。SDA和SCL都支持输入/输出双向传输,连接时需上拉至高电平。则TMS320VC5509A内部I2C模块支持主设备和从设备两种模式,兼容Philip公司的I2C总线传输协议。
由连接至I2C总线的主设备提供时钟。时钟线SCL为高电平时,SDA上的数据须稳定,只有当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路视频输入中的一路或者两路组成不同的工作模式;能实现行同步、场同步信号的自动监测、分离,并且行同步信号的起始位置与结束位置均可编程控制;场频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相等,高电平时各输出信号稳定。VPO输出图像数据,每2个LLC周期输出1个16位YUV4:2:2格式的数据。同时产生的输出信号还包括水平参考信号HREF和垂直参考信号VREF。TMS320VC5509A的I2C模块的串行数据线(SDA)和串行时钟线(SCL)直接与SAA7111A的I2C总线SDA与SCL相连.并接上拉电阻,保证I2C总线处于空闲状态时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的配置。发送到I2C总线上的配置数据组:
 由于SAA7111A接收I2C总线发送的多个数据时,其子地址递增,因此在发送数据组里,第一个数据是子地址,后面依次是发送到该子地址及后面子地址的数据值。
调用写I2C总线函数,配置SAA7111A寄存器。
注意:发送从地址不包括读写位,而SAA7111A作为从设备的读地址为49H,写地址为48H都是包括读写位(Slave Address+W/R)。因此上面的发送从地址不是0x48,而是0x24。同样在利用芯片支持库函数进行读操作时,从地址不是0x49,而是0x24。
6 结束语
利用本文介绍的方法成功实现DSP对SAA7111A的初始化配置。SAA7111A与TMS320VC5509A都集成有I2C模块,便于配置SAA7111A。CCS提供强大的芯片支持库CSL,可直接使用这些函数便于访问片上外设。这些函数都是经过优化的,其执行效率高并不比直接使用汇编语言编写的代码低。
|