摘要:本文介绍了基于TMS320DM642和Philips视频编解码芯片的视频处理系统,给出了视频接口的连接图。在分析I2C总线协议的基础上,文中详细叙述了DM642通过I2C模块对视频编解码芯片的寄存器进行配置、校验的流程及程序。
关键词:嵌入式视频系统;TMS320DM642;SAA7113H;SAA7126H;I2C总线
1.引言
随着多媒体技术的发展,视频处理技术已经广泛应用到视频监控、电视会议、电视机顶盒等各个领域。视频采集和输出作为视频处理的重要组成部分,人们对其性能要求越来越高。在传统方案中,视频输入、输出处理模块采用分立元件、缓冲器和逻辑控制器件,使得电路复杂、成本高、可靠性差、难于调试。然而许多视频编解码芯片将复杂的转换电路集成在一块芯片内,如Philips公司的SAA71XX系列产品。而TI公司生产的TMS320DM64X系列DSP具有视频外设接口,使得通用DSP不需要复杂的外围电路,就可以与视频编解码芯片无缝连接。
本文提出了以TMS320DM642为核心,以Philips公司视频解码芯片SAA7113H和视频编码芯片SAA7126H为输入输出的视频处理系统。系统通过DM642的I2C模块对视频编解码芯片进行配置和校验,使得视频处理系统的输入输出可以满足各种需求。
2. 基于TMS320DM642视频处理系统的组成
系统采用TI公司的TMS320DM642作为核心处理器。DM642时钟频率可以达到720MHz其内部有6个ALU (32-/40-Bit),每个功能单元支持每个时钟周期进行一个32bit、两个16bit或四个8bit算术运算。DM642具有视频接口、多通道音频接口(McASP)、10/100M bps以太网介质接入控制器(EMAC),以适应网络和多媒体的需要。[1]
DM642的片内的视频端口(VP0、VP1、VP2)可以用作视频捕获端口、视频显示端口、视频流传输端口。每个视频在捕获模式或显示模式时可以采用8/10-bit分辨率的ITU-R BT.656的YUV 4:2:2格式。或者作为一个Y/C 16/20位视频通道,以YCbCr4:2:2格式的Y和Cb/Cr分离的形式输入输出。传输流接口(TSI)捕获模式为8位并行格式,速度达30MB/s视频接收接口。[2]
SAA7113H是Philips公司的9位视频模数转换(ADC)芯片,输入可以被配置成4路CVBS或2路S视频(Y/C)信号,对所选的CVBS(或Y/C)通道进行编程可实现静态增益控制或自动增益控制,且有两个内置的模拟抗混叠滤波器。其输入兼容PAL,NTSC,SECAM 多种制式,可以自动检测50 Hz或60 Hz的场频在PAL、NTSC制式之间切换,输出为标准的ITU-656 YUV 4:2:2(8 bit)信号。[3]SAA7126H是Philips公司的数字PAL/NTSC编码器。四个数模转换器(DACs),包括CVBS、RED、GREEN和BLUE。其中RED、GREEN和BLUE为9位分辨率,CVBS信号为10位分辨率。[4]
在本系统中VP1口的作为视频捕获端口,选用8位ITU-R BT.656捕获模式(内嵌式同步信号)。VP2口的作为视频显示端口,选用8位ITU-R BT.656显示模式。
I2C总线是一种用于IC器件间的二线制总线,它是通过SDA(串行数据线)和SCL(串行时钟线)两根线在连接到总线上的器件之间通信。大多数嵌入式系统经常使用处理器的I/O口来模拟I2C协议进行外部器件配置,因为在一些简单的应用场合,通过两个I/O口来模拟I2C要比用硬件I2C模块简单。而在本系统中采用DM642内部集成I2C模块,将其作为主器件,两个编解码芯片作为从器件,由主对从进行写入和读取,使得视频接口芯片满足各种要求,因此I2C总线在系统中起到了“神经控制中枢”的作用。系统的组成框图如图1所示:

图1 视频处理系统的组成框图
3. DM642和视频编解码芯片的I2C模块特性[1] [5]
DM642内部的I2C模块与Philips I2C规范修订版2.1兼容;高速模式达400Kbps;7位或10位器件寻址模式;主(发/收)或(发/收)功能;驱动事件为:DMA、中断、查询。DM642的I2C模块通过控制其内部寄存器来实现各种功能,内部时钟寄存器的框图如图2所示:

图2 DM642的I2C模块内部时钟寄存器的框图
从图2中可以看出,I2C模块的输入时钟(input clock frequency)为DM642的外设总线时钟(peripheral Clock=CPU/4)。外设总线时钟通过预分频器(I2CPSCx)产生模块时钟(module clock frequency),再通过分频器(I2CCLKHx中的ICCH、I2CCLKLx中的ICCL)产生I2C总线上(SCL)的主时钟(master clock frequency),各个时钟的比例关系如下所示:

分频寄存器(I2CCLKHx中的ICCH、I2CCLKLx中的ICCL)的对SCL控制如下所示,其中Tmod为模块时钟周期,即Tmod=1/ module clock frequency:

图3分频寄存器对SCL的控制
DM642作为主模块时,7位寻址模式的数据格式如下

S:启动标志;
Slave address:从器件地址;
:读写控制位,决定数据的方向,0表示主模块写(发送)数据到指定地址的从模块;1表示主模块从从模块读(接收)数据;
ACK:应答标志;
Data:数据位;
P :停止标志。
SAA7113H和SAA7126H的写寄存器数据格式如下:[3] [4]

SAA7113H和SAA7126H的读寄存器的数据格式如下:

Sr :重新启动标志;
Slave address W:从器件的写地址,SAA7113H为4AH(也可通过外部引脚设为48H),SAA7126H为88H(也可通过外部引脚设为8CH);
Slave address R:从器件的读地址,SAA7113H为4BH(也可通过外部引脚设为49H),SAA7126H为89H(也可通过外部引脚设为8DH);
Subadress:寄存器子地址;
ACK-S :从器件产生的应答;
ACK-M :主器件产生的应答。
4. 本系统中DM642的I2C模块初始化
视频处理系统DM642软件初始化流程如图3所示,从中可以看出初始化I2C模块和通过I2C初始化视频编解码芯片是初始化系统中的重要组成部分:

图4 软件初始化流程
通过比较DM642和视频编解码芯片的I2C时序图可以看出,对SAA7113H和SAA7126H写读时从地址的最低位即为DM642的I2C模块数据格式中的 ,这一位由硬件I2C模块自动设定。因此DM642对SAA7113H初始化时从地址寄存器(I2CSAR)配置为25H;对SAA7126H初始化时从地址寄存器(I2CSAR)配置为44H。
系统DM642的外部输入时钟频率为50MHz,通过引脚设置在时钟模块进行12倍频后CPU的频率为600MHz,因此输入I2C模块的输入时钟Peripheral Clock(CPU/4)为150MHz;I2CPSC设为14,经过预分频器(IPSC)分频后产生I2C模块的运行时钟为10MHz;I2C模块采用400Kbps的高速传输模式,于是根据I2C协议设置I2CCLKL0=6、I2CCLKH0=7。
DM642的I2C模块初始化子程序如下:
void init_I2C( )
{ I2CPSC0=14; //I2C module clock is 10MHz, Tmod=1/10MHz=0.1us
I2CMDR0=0x00000020; //enable the I2C module
I2CIER0=0x00000000; //disable the interrupts
I2CCLKL0=6; //Low-time duration: Tmod*(ICCL+6) =1.2us
I2CCLKH0=7; //High-time duration: Tmod*(ICCH+6) =1.3us
I2COAR0=0x00000001; //own slave address to distinguish it from other slaves
}
5. DM642通过I2C总线初始化视频编解码芯片[5] [6]
根据I2C总线的传输协议和视频编解码芯片的I2C总线的数据格式,DM642采用主发送模式,通过查询状态寄存器对视频编解码芯片进行初始化。初始化的寄存器的值是在参考Philips的SAA7113H和SAA7126H的数据手册的基础上,按照对输入输出接口的需要进行设置。I2C总线初始化视频编解码芯片SAA7113H和SAA7126H的流程完全一致,初始化子程序流程图如图4所示:

图5 初始化子程序流程图
在配置完视频编解码芯片的各个功能寄存器后,DM642通过I2C总线可以读取SAA7113H和SAA7126H的寄存器配置后的数值,以验证寄存器配置成功。读取寄存器子程序的流程图如图5所示:

图6 读取寄存器子程序的流程图
6. 编程中的注意事项
a) 在对SAA7126H进行初始化之前,一定先设定与之连接的TMS320DM642的视频口数据总线信号方向;
b) 用硬件I2C模块控制I2C总线必须加入适当的延时,如果用C语言不易准确确定延时的时间,可以在满足实时性的条件下加大延时时间;
c) 对视频编解码芯片中的某一个子地址操作后,其子地址的指针会自动增加,然而视频编解码芯片可配置的寄存器不一定是连续分布的,因此每当要配置一个子地址,都由TMS320DM642输出寄存器的地址。
结束语
本文介绍了基于DM642的视频处理系统,介绍视频接口的连接,对系统通过I2C模块配置和校验视频编解码芯片作了分析,通过实际应用证明该方案能够使得视频编解码芯片按照特定要求成功初始化。
参考文献:
[1] TMS320DM642 Video/Imaging Fixed-Point Digital Signal Processor Data Manual,SPRS200B,July 2002 – Revised May 2003,Texas Instruments;
[2] TMS320C64x DSP Video Port/VCXO Interpolated Control (VIC) Port Reference Guide,SPRU629,April 2003,Texas Instruments;
[3] SAA7113H Product specification,1999 Jul 01,Philips Semiconductors;
[4] SAA7126H/SAA7127H Product specification,2002 Oct 15,Philips Semiconductors。
[5] TMS320C6000 DSP Inter-Integrated Circuit (I2C) Module Reference Guide,SPRU175A , October 2002,Texas Instruments;
[6] THE I2C-BUS SPECIFICATION VERSION 2.1,JANUARY 2000,Philips Semiconductors。
|