TMS320DM642的视频实时处理和显示系统的设计
2012-06-25唐刚李朝海左洪成
唐刚,李朝海,左洪成
(电子科技大学 电子工程学院,成都 611731)
唐刚(硕士研究生),主要研究领域为视频无线传输。
引 言
随着电子技术的发展,数字信号处理器的应用越来越广泛。涉及的应用领域大到航空航天器材,如飞机、飞船等;小到日常电子产品,如手机、数码相机、MP4、多媒体和通信设备等。TMS320DM642(以下简称DM642)是TI公司推出的一款32位定点DSP芯片,主要面向数字媒体,特别适合于音视频信号的处理。
然而目前国内基于DM642的视频显示方案大多采用飞利浦公司的SAA71XX系列视频编码芯片,而这些芯片的工作温度都不能满足标准工业温度范围(-40~+85℃)。本文提出的方案采用的全部芯片的工作温度范围均能满足工业温度标准,因此具有更广泛的适用环境。
1 DM642结构特点
DM642保留了C64x原有的内核结构,工作频率由内部倍频器设置,可以达到500MHz、600MHz和720 MHz。相应的时钟周期为2ns、1.67ns和1.39ns。每秒可执行指令数为4 000MIPS、4 800MIPS和5 760MIPS。DM642采用TI公司第二代增强型超长指令集(VelociTI.2),它的EMIFA接口数据总线宽度为64位,最高数据存取频率为133MHz,可直接与大容量、低成本的SDRAM芯片无缝连接。DM642片上带有3个双通道数字视频接口,可同时处理多路数字视频流。
TMS320DM642的片上存储空间分为L1存储区和L2存储区两部分。L1存储区又分为程序存储空间和数据存储空间,程序存储空间和数据存储空间的容量均为16K×8位;L2存储区为单一的RAM,其容量为256K×8位,L2存储区管理外部扩展的数据存储器和程序存储器[1]。
2 ADV7179硬件特性
ADV7179是ADI公司生产的一款数字视频编码芯片,它能将8位CCIR-601 4:2:2格式的数字视频信号分量转换为标准的模拟基带电视信号。ADV7179是一款高性能、小尺寸的芯片,40引脚的LFCSP封装大小仅为6mm×6mm,而且具有出色的APM(Advanced Power Management,高级电源管理)功能,特别适合应用于手机、数码相机及手持视频设备上。ADV7179具有标准I2C总线接口,支持I2C总线快速通信模式,能通过主机对其进行方便的配置。ADV7179具有3个可编程控制的高性能10位视频DAC,可分别输出CVBS、Y/C或RGB信号,为了节省功率消耗,可关闭DAC中的一个或几个。ADV7179的工作电压可选2.8V或3.3V,在两种工作电压下的工作温度分别可达-20~+85℃和-40~+85℃,因此ADV7179可应用在温度要求较高的场合[2]。
3 硬件设计
本设计的系统硬件结构框图如图1所示。其中虚线框部分为本系统所需外接的硬件资源。DM642的GPIO模块接收从外部SPI接口输入的视频TS流,并将其存储在外部SDRAM中以待处理。DSP按帧读取SDRAM中的TS流数据,进行解复用和解压缩,输出BT656格式的视频数据到ADV7179。ADV7179将接收到的视频数据进行D/A转换编码,输出PAL/NTSC制的模拟视频信号到显示器。
图1 系统硬件结构框图
3.1 时钟模块
本系统时钟源选择了50MHz的高精度有源晶振,晶振输出的时钟信号经时钟缓冲器芯片ICS551后为DM642提供时钟。设计中DM642的CLKMODE1和CLKMODE0引脚分别接高电平和低电平,因此DSP倍频因子设置成12,即DM642的工作主频为50MHz×12=600MHz。另一方面,为了给EMIF接口扩展SDRAM提供备用时钟方案,设计了备用时钟电路。25MHz高精度无源晶振输出的时钟信号输入钟乘法器ICS512,通过对ICS512的S1、S0引脚高低电平的不同设置,可以得到125 MHz、133.33MHz、150MHz等不同频率的时钟信号,作为EMIF接口的备用同步时钟选择。本设计采用1/4×CPU时钟作为EMIF接口的同步时钟。
3.2 GPIO接收模块
DM642共有16个GPIO引脚,引脚的输入/输出方向(输入/输出/高阻)可以通过编程设置。GPIO接口部分输入/输出引脚与其他接口引脚复用,可通过设置相关寄存器的值确定各GPIO引脚的工作方式。本设计采用DSP 16个GPIO引脚中的11个接收外部SPI接口传来的TS流数据。
SPI接口是MPEG-2视频码流传输接口标准之一,共11位并行信号,处理简单且扩展性强,目前一般的MPEG-2视频编码器的输出和视频解码器的输入都是标准的SPI接口信号。并行传输系统SPI包括1位时钟信号、8位数据信号、1位帧同步信号和1位数据有效信号。帧同步信号对应TS包的同步字节为047H,数据有效信号用来区分TS包的长度为188个字节或204个字节。当TS包长188字节时,数据有效信号一直为高电平,同时所有信号都与时钟信号保持同步。
3.3 外部存储器模块
外部存储器包括2片128Mb的SDRAM和一片4MB的Flash芯片,这3片存储芯片都连接在DM642的64位外部存储接口(EMIF)上。
SDRAM选用的是Micron公司的MT48LC4M32B2,这种内存颗粒的架构为1M×32位×4,即每片芯片有4个bank,每bank行地址数为12(A0~A11),列地址数为8(A0~A7)。2片32位的SDRAM扩展成64位,且映射在EMIF的CE0空间。SDRAM的时钟由EMIF接口的AECLOUT1引脚提供,本设计中CPU主频采用600 MHz,AECLOUT1输出配置为4分频的DSP主频时钟,即150MHz。
DM642片内无集成Flash或EEPROM,系统掉电后其内部存储器和外部SDRAM中的程序和数据将会全部丢失,因此DM642外部需要扩展Flash存储器,用来存储程序和重要的数据。本设计中Flash芯片选用的是AMD公司的32Mb(4M×8位)异步存储器AM29LV033C。由于DM642的EMIF接口支持异步存储器,因此可直接与Flash相连。AM29LV033C内部的存储空间是分页的,共划分为64个大小为64KB的扇区,通过地址线选择不同的扇区。AM29LV033C芯片有A[0:21]共22条地址线,但是DM642总共只有20条地址线(AEA[3:22]),由于二者地址线数量不同,DM642不能遍历Flash的所有地址单元。为了解决这个问题,在系统中采用CPLD对Flash进行页选控制。CPLD利用从DM642输入的空间片选信号ACE1、高位地址信号EA22、读写控制信号和输出使能控制信号,经逻辑运算输出页选控制信号FLASH_EXT[19:21],FLASH_EXT[19:21]接Flash的最高3位地址线,此3路信号把Flash存储器划分为8个页,每页存储器包含8个扇区[3]。
3.4 I 2C总线接口
DM642集成有I2C总线接口,用于与I2C总线外设通信。本设计中DM642就是通过I2C总线模块对ADV7179进行配置的。TMS320DM642的I2C总线接口包括13个寄存器,分别为I2C总线时钟分频寄存器I2CCLKH及I2CCLKL、数据计数寄存器I2CCNT、数据接收寄存器I2CDRR、数据发送寄存器I2CDXR、中断使能寄存器I2CIER、中断源寄存器I2CISR、模式寄存器I2CMDR、主地址寄存器I2COAR、设备ID寄存器I2CPID、预分频寄存器I2CPSC、从地址寄存器I2CSAR和状态寄存器I2CSTR。通过对这些寄存器进行相应的读写操作即可完成和 ADV7179的通信[4]。DM642和ADV7179的接口如图2所示。由DM642产生与I2C总线外设通信所需的时钟信号。
图2 DM642与ADV7179的接口
3.5 视频显示模块
TMS320DM642处理器集成了3个功能丰富的视频口VP0~VP2,每个视频口包括20位数据信号VPxD[19:0],2路时钟信号VPxCLK[1:0]以及3路控制信号 VPx-CTL[2:0]。时钟信号 VPxCLK[1:0]作为视频口和外部编码、解码电路的同步时钟,控制信号VPxCTL[2:0]用于视频同步(如行同步、帧同步、场同步)和视频口使能控制。每个视频口划分为A、B两个通道,每个通道既可以配置为视频输入口,也可以配置为视频输出口,但是A、B两个通道在使用过程中必须设置为相同类型的输入或输出,不能一个通道配置为视频输入,另一个通道配置为视频输出。本设计中仅用到了视频口的输出功能,视频编码芯片ADV7179与DM642的视频口1相连接,具体信号线连接方式如图2所示。
4 软件设计
系统软件的设计和调试是在TI公司的集成开发环境CCS3.3(Code Composer Studio 3.3)下完成的,系统软件流程如图3所示。整个系统软件是在BIOS下基于RF-5(参考设计框架)设计的,设计得到了简化[5]。
在进行DSP/BIOS任务调度前,程序进行了以下几个部分的初始化:
① 初始化系统和处理器。
◆ 初始化BIOS和CSL(Chip Support Library);
◆设置使用64KB的二级高速缓存,并将其映射到EMIF的CE0和CE1空间;
◆设置DMA的优先级序列长度;
图3 系统软件流程
◆将二级高速缓存的请求优先级设为最高。
② 初始化RF-5模块。
◆系统初始化RF-5通道模块;
◆系统初始化RF-5框架中用于内部单元间通信和传递消息的ICC和SCOM模块;
◆各通道在内部的、扩展的和临时的堆上完成建立。
③ 建立输入和显示通道。
◆建立和启动一个输入通道的实例;
◆建立和启动一个显示通道的实例。
④ 建立算法实例。
◆在通道中建立和注册TS流解复用单元;
◆在通道中建立和注册PES(打包基本码流)解包单元;
◆在通道中建立和注册MPEG-2解码单元;
◆打开通道,建立TS流解复用、PES解包和MPEG-2解码单元的实例。
以上初始化工作全部完成后,系统则进入DSP/BIOS调度程序管理以下的4个任务系统。4个任务通过RF-5的SCOM模块相互发送消息,任务调度示意图如图4所示。
图4 任务调度示意图
4个任务各自实现的功能如下:
①TS流采集任务。TS流采集任务完成数据的采集和存储。在该任务中,DSP从外部SPI接口获得一帧最新的视频图像TS流,并将其存储在外部SDRAM中。TS流采集任务接着发送消息到TS流解复用、解包任务,消息中包含TS流数据指针,然后等待输出任务发送来的消息以便接收下一帧TS流数据。
②TS流解复用及解包任务。TS流解复用、解包任务通过RF-5通道实现TS流的解复用和PES包解包。该任务当接收到TS流采集任务发送来的消息时被激活开始运行,TS流解复用单元将TS流数据小包解复用,生成PES包,PES解包单元再将PES包解包成基本码流(ES)。这一系列过程完成后,任务发送消息到MPEG-2解码任务,消息中包含解包后ES数据指针,然后等待TS流采集任务发送新的消息。
③ MPEG-2解码任务。解码任务通过RF-5通道实现基本码流ES的解码。该任务接收到TS流解复用、解包任务发送来的消息后立刻被激活开始运行。MPEG-2解码单元将ES解码,生成图像数据,接着发送消息到输出任务,消息中包含图像数据的指针。解码任务接下来等待接收TS流解复用、解包任务发送来的新消息,用来进行下一帧图像ES的解码任务。
④ 输出任务。输出任务接收到MPEG-2解码任务发送来的消息后开始启动运行,利用输出驱动程序将图像数据输出到视频编码器ADV7179。一帧图像数据搬运完成后,发送消息给TS流采集任务,接着等待解码任务发送来的新消息。
5 实验结果
将编译好的程序文件通过FlashBurn烧写到Flash存储器中,连接好TS流输入接口和显示设备,去掉仿真器,复位DSP目标板,使程序自动加载运行。实验得到的显示效果如图5所示。视频显示清晰无抖动,达到了项目设计要求。
结 语
本文设计了基于TMS320DM642和ADV7179的符合工业工作温度标准的视频实时处理和显示系统。在硬件方面对各主要模块分别进行了详细的设计描述,在软件方面重点介绍了DSP/BIOS下各处理任务的实现方式及其调度策略。最后通过实验验证了系统能够正常工作,并且能够得到较好的显示效果。
图5 实验显示效果图
DM642出色的图像处理能力可以使该系统实现边缘检测、图像增强、图像二值化和滤波等任务。由于本系统工作温度范围较通常的视频处理设备大,因而具有更广阔的应用空间。
[1]王跃宗,刘京会.TMS320DM642DSP应用系统设计与开发[M].北京:人民邮电出版社,2009:7-8.
[2]ADI.Chip Scale PAL/NTSC Video Encoder-ADV7174/ADV7179[EB/OL].[2011-07].http://www.analog.com.
[3]Texas Instruments Incorporated.TMS320C6000系列DSP的CPU与外设[M].卞红雨,等译.北京:清华大学出版社,2007.
[4]韩非,胡春梅,李伟.TMS320C6000系列DSP开发应用技巧:重点与难点剖析[M].北京:中国电力出版社,2008:434-435.
[5]王军宁,何迪,马娟,等.TI DSP/BIOS用户手册与驱动开发[M].北京:清华大学出版社,2007.