MS320DM642(共6篇)
MS320DM642 篇1
0 引 言
随着现代飞行技术的发展, 以及飞机性能的日益提高, 飞行员需要实时获取的信息越来越多, 飞行员不仅要不断接收和处理各种仪表信息及地面或空中的通报和指挥信息, 还需要对各种危险警告和异常信号做出迅速的反应。特别是当飞机进行进场着陆或者起飞及做战术动作时, 飞行员的操作负荷较大。因此如何有效地将各传感器信息综合地显示出来, 不仅可以降低飞行员的劳动负荷, 还能增强其态势的感知能力。传统的飞行员座舱系统包含大量的机械式仪表, 飞行员的操作负荷大, 态势感知能力弱, 而根据对航空事故的调查统计显示, 85%的航空事故是因为飞行员失去态势感知能力造成的。因此通过对飞行员座舱系统的良好设计, 提高信息的综合显示水平能有效地提高飞行员的态势感知能力, 从而减少飞行事故。
在飞行员座舱系统中采用增强视景和合成视景技术, 不仅可以减少飞行员座舱系统中仪表的数量, 还能提高信息的综合显示水平, 降低飞行的劳动负荷, 增强飞行员的态势感知能力。所谓视景增强系统, 就是把机载红外传感器和毫米波雷达输出的图像叠加在平显上, 在为机组提供机外真实视景的同时, 显示一些下显给出的重要数据指示[1]。
在此, 研究和开发了基于实时采集图像传感器的图像数据, 并在图像数据上叠加相应的飞行姿态信息增强视景系统。系统采用TI公司的视频处理专用芯片DM642, 实现了对4路D1 (720×576) 格式视频数据的实时采集和显示。
基于DM642的增强视景系统实现的功能有:
(1) 拥有16×8, 8×8, 5×7的完全ASCII码点阵字符集, 可以自由显示任意的字符和数字信息;
(2) 支持自定义汉字点阵字符集的显示;
(3) 支持基本图元的绘制, 如直线、圆、矩形、圆弧、多边形、矩形填充等基本GUI功能的实现;
(4) 支持静态图片的加载, 如logo、静态仪表盘等图形信息的透明和不透明叠加显示;
(5) 实现罗盘仪表的绘制操作, 可自由绘制各种数字仪表;
(6) 实现导航和预警仪表盘的绘制与显示;
(7) 支持4路视频的实时采集, 可实现多种模式的显示操作界面, 各种模式可以相互自由切换。
1 系统的硬件设计
基于DM642的增强视景系统主要由TMS320 DM642数字信号处理器、视频编解码模块、存储模块、电源和可编程控制器模块组成。整个系统结构见图1。
1.1 系统主控制器及存储空间拓展
系统采用TMS320DM642作为核心处理器, 它基于C64X内核, 采用VLIW (超长指令字) 结构, 最高时钟可达720 MHz, 采用二级缓存结构, 拥有丰富的外设接口:拥有3个可配置视频口, 可实现与视频输入/输出的无缝连接;拥有64路可配置EDMA, 可灵活实现数据搬移操作;具有64位外部存储器接口 (EMIFA) , 可以连接同步或者异步的存储器和外设;拥有I2C总线接口, 可实现对外部编解码芯片的配置[2]。
TMS320DM642的EMIF[3]在内存中的地址映射分为4个可独立寻址的空间CE[0:3], 自地址0x80000000起各占256 MB空间。根据设计中所选芯片的数据宽度等特点, 可以对这4个寻址空间进行配置。其中, CE0空间配置成64位宽, 只用于SDRAM内存的映射;CE1空间配置成8位宽度, 用于FLASH的映射;CE2CE3在该设计中未使用, 留作将来拓展使用。系统中利用DM642的EMIFA外部存储器接口进行存储空间拓展, 外扩有2片4M×32 b SDRAM, 共64 MB, 其占用外部存储空间的范围为0x8000000~0x81FFFFFF, 用于存储视频帧数据和程序代码;系统同时外接了4M×8位FLASH芯片, FLASH在CE1子空间占据的内存映射空间为0x90000000~0x9007FFFF, 共512 KB空间, 用于固化程序和初始化数据。由于TMS320DM642的外部总线只有EA[22:3], 所以CE1子空间的最大寻址范围为1M×8 b。系统中CE1子空间除了分配给FLASH空间外, 还分配给状态/控制寄存器等资源使用, FLASH只占据CE1子空间的一半寻址空间, 最大可寻址范围为512K×8 b, 而FLASH的设计容量为4M×8 b。所以为了访问整个FLASH空间, 需将FLASH进行分页, 每页为512 KB, 共分8页, 具体的分页逻辑将在CPLD控制逻辑部分进行详细介绍。
1.2 视频解码模块
视频解码模块也称为视频采集模块, 它由数字视频解码芯片SAA7113和视频源 (模拟CVBS信号) 组成。对于输入的图像, 经过视频解码模块A/D转换后才能送给视频处理模块。该解码模块采用Philips公司的SAA7113H芯片来进行采集。图像传感器输出的模拟CVBS信号经SAA7113视频芯片转化为数字信号, 输出的数字信号经过视频口的内部FIFO缓冲后, 由DM642的EDMA通道将数据传送到片外SDRAM中, 以便视频处理程序使用。DM642通过I2C控制器对SAA7113进行配置, 使其输出BT.656格式4∶2∶2的YUV视频数据流。
1.3 视频编码模块
视频编码模块也称为视频显示模块, 本模块由两部分组成, 即输出两种模式的视频信号, 可以外接CVBS和VGA的显示终端。
(1) CVBS编码模块
该模块由Philips的编码芯片SAA7121H和显示终端组成。它将DM642处理后的BT.656格式视频信号转化成模拟CVBS视频信号, 并通过显示器显示处理结果。
(2) VGA编码模块
该模块由VX1128, ADV7125等芯片完成。将BT.656格式的视频数据转换成模拟RGB信号, 通过VGA接口与显示终端连接。其中, VX1128接收DSP视频口输出的BT.656格式数据流和行场同步信号, 输出24位RGB数据流送给视频编码芯片ADV7125;视频编码芯片ADV7125将数字格式的RGB信号转换成模拟的RGB信号, 并通过VGA接口送到显示终端。
1.4 CPLD逻辑部分
CPLD逻辑在系统中的主要功能是完成系统的辅助控制功能, 如拓展外部键盘、FLASH分页操作及I/O拓展等, CPLD顶层逻辑如图2所示。这里主要介绍利用CPLD逻辑来拓展外部键盘及FLASH分页的操作。
为了实现增强视景中模式的切换功能, 需要外扩一个3×3的键盘阵列。在系统实现中, 利用CPLD逻辑完成键盘信号KEY1:KEY9的相与操作, 将相与之后的信号接DM642的外部中断5。当有键按下时, DSP_INT5将产生一个下降沿, 从而触发DSP产生中断, 在中断服务程序中, 进行键值扫描, 判断是哪个按键按下, 然后设置相应的标志位, 作为模式选择信号。
CPLD除了完成按键拓展外, 还有一个很重要的功能就是完成FLASH的分页操作[4]。系统中, 将CE1子空间配置成8位异步静态存储器接口连接FLASH, 由于DM642的只有20根 (EA3:EA20) 外部总线, 所以CE1的最大可寻址空间为1 M×8 b, CE1只将前一半的寻址空间分配给FLASH, 后一半空间作为控制逻辑寄存器使用, 所以FLASH映射空间为0x90000000~0x90007FFFF, 共512K×8 b。
为了完成对外部4M×8 b FLASH空间的访问, 需要利用CPLD逻辑完成对FLASH的分页管理, 共将FLASH分成8页。
系统中, 利用CPLD逻辑分配了一个页地址控制寄存器, 地址为0x90080060, 通过改变页地址寄存器的值来改变页选通信号PA19∶PA21的值, 从而完成FLASH的分页操作。
2 系统软件设计
基M642的视景增强系统软件的实现是在TI公司提供的CCS2.2编译环境下进行的。采用了DSP/BIOS[5]嵌入式操作系统, 利用硬件中断和任务调度实现视频数据的采集、任务的显示及各种显示模式的相互切换。在程序设计中利用了RF5及同步通信等相关技术。DSP/BIOS程序模型如图3所示。
2.1 软件实现总流程
DSP/BIOS是一种抢先型、可裁剪的实时操作系统, 由3部分组成:DSP/BIOS实时内核与API、DSP/BIOS分析工具、DSP/BIOS配置工具。DSP/BIOS操作系统支持多线程管理和调度, 共有4种线程:硬件中断、软件中断、任务、空闲循环;支持任务间同步通信, 提供邮箱、信号灯、队列等方式。在DSP/BIOS操作系统下, 可方便地实现对片上外设及外部存储芯片的配置和管理, 利用它开发的程序具有更好的移植性能。
系统软件的实现基于DSP/BIOS微操作系统, 利用图3所示基于任务的应用程序实现模型进行编写。系统的总流程如图4所示。
2.2 系统设备驱动的设计与实现
在系统中, 综合运用了DSP/BIOS, DDK, RF5等技术编写设备驱动程序, 使用标准的类/微驱动程序模型来开发视频驱动程序, 使硬件驱动程序与上层应用程序开发剥离开, 提高程序的可移植和复用性能。当开发好硬件驱动程序后, 上层的应用程序开发人员只需知道设备驱动程序提供的接口, 而不需要了解底层硬件的工作原理及如何配置。
在系统中, 当配置好硬件的底层驱动后, 在图像采集时, 底层驱动提供给上层应用程序的接口就是存放图像传感器数据的帧缓冲地址;而在图像显示时, 应用程序只提供要显示图像的帧缓冲地址。这些功能的实现都是通过帧视频驱动程序 (FVID) 来实现的, 它不仅完成对视频采集与显示设备的配置, 还完成视频帧缓冲区的管理工作。
FVID函数是对GIO类函数的简单封装, 是为GIO类设备提供的一组宏。FVID/GIO类驱动程序不仅可以完成对片上视频口外设的配置, 还能与外部设备接口 (EDC) 配合实现对外部编解码芯片的配置。在程序中, 除了完成对3个视频口的配置外, 还需对外部编解码芯片的配置, 现以视频口0配置成采集通道为例来说明具体的操作过程[6]:
(1) 先在DSP/BIOS操作系统下的静态配置工具中创建一个设备驱动, 取名为“VPOCAPTURE”, 在属性页面完成设置操作。
(2) 在采集任务开始前, 利用FVID_create () 函数完成分配, 并初始化FVID通道对象。FVID_create () 函数可以配置视频口是采集模式, 还是显示模式。在采集和显示时, 使用视频口哪个通道来配置这个通道的参数。
(3) 利用FVID_control () 函数发送命令给下层的微驱动 (Mini-driver) , 以实现对外部编解码芯片的配置。
(4) 在采集和显示任务中, 调用FVID帧缓冲管理函数, 以完成视频帧缓冲的管理。
2.3 飞行仪表画面的绘制与叠加
增强视景系统中除了实时采集的图像外, 还有一个很重要的功能就是要能够显示当前飞机的飞行姿态、飞机发动机及航电系统的状态、敌我信息的显示等。而这些信息的显示都是用仪表的形式显示出来的, 这些仪表可以透明或者不透明地叠加在实时采集的传感器图像上, 从而增强飞行员态势感知的能力。在系统中主要设计了以下几种飞行仪表:
PFD (Primary Flight Display) [1]仪表画面是飞机飞行中最重要的飞行仪表, 在PFD仪表中应该包含的信息包括航向角、飞行姿态、空速以及高度等。PFD画面以综合的显示方式包含了上面的信息, 主飞行画面如图5所示。
除了PFD画面以外, 还设计了发动机参数界面, 用来显示发动机参数信息。同时设计了NVD (Navigation Display) 导航信息界面, 用电子罗盘指示当前飞机所飞行的磁航向角等, 其界面如图6所示。
3 结 语
该系统基本实现了增强视景系统的功能, 能够在不低于25 f/s的图像采集速率下, 同时采集4路图像传感器数据, 实时动态叠加飞行仪表信息, 以便明显提高飞行员态势感知能力。
参考文献
[1]HE Gang, FEYSREISEN Thea, WILSON Blake.Syntheticvision primary flight displays for helicopters[C]//2008Proc.of SPIE Enhanced and Synthetic Vision.Orlando, USA:SPIE, 2008, 6957:117-125.
[2]Texas Instruments.The TMS320DM642 video port mini-driver[R].USA:Texas Instruments, 2003.
[3]Texas Instruments.TMS320DM642 DSP external memoryinterface (EMIF) reference guide[Z].USA:Texas Instru-ments, 2004.
[4]张志涛, 梁光明.基于DM642的FLASH分页二级引导程序设计[J].现代电子技术, 2009, 32 (22) :210-212.
[5]Texas Instruments.TMS320 DSP/BIOS user′s guide[M].USA:Texas Instruments, 2002.
[6]鹿宝生, 陈启美.基于TMS320DM642的视频采集驱动程序的实现[J].电子技术应用, 2005 (11) :66-68.
[7]胡涛, 刘颖娟.用类/微驱动模型开发DSP视频驱动程序[J].单片机与嵌入式系统应用, 2007 (5) :15-17.
[8]王强, 倪国强, 李江涛, 等.使用DSP/BIOS开发DM642图像融合系统驱动程序[J].激光与红外, 2006 (11) :1070-1075.
[9]Texas Instruments.TMS320DM642 video/imaging fixed-point digital signal processor[R].USA:Texas Instru-ments, 2004.
[10]KRAMER Lynda J, WILLIAMS Steven P, BAILEY Ran-dall E.Synthetic vision systems:operational considerationssimulation experiment[C]//Proc.of SPIE Enhanced andSynthetic Vision.Orlando, USA:SPIE, 2007, 6559:3-6.
[11]KORN Bernd R.Enhanced and synthetic vision system forautonomous all weather approach and landing[C]//2007Proc of SPIE Enhanced and Synthetic Vision.Orlando, USA:SPIE, 2007, 6559:191-198.
MS320DM642 篇2
1 系统设计的总体框架
红外监控系统的设计,是基于DSP实现红外视频数据从前端光源红外探测器到上位机PC端的实时显示,主要由前端视频源、DSP服务器及PC客户端构成,如图1所示。系统前端红外图像采集设备采用FLIR公司的红外热成像仪,能够提供320×240像素的红外图像,数据经过DSP端采集模块、存储模块、压缩模块及网络模块的处理后,H.264数据流在以太网的另一端PC上位机端经过解码后,红外图像数据保存或显示于客户端。
2 系统模块设计与实现
2.1 视频采集模块
DM642无法处理红外热像仪输出的PAL模拟信号,所以本系统首先采用视频解码芯片TVP5150解码红外视频数据。TVP5150是TI公司生产的超低功耗(115 mW)、可编程高性能视频解码器[3]。本设计中TVP5150接收热像仪输出的红外图像PAL信号,输出8位4∶2∶2格式的的ITU-R BT.656视频解码信号,芯片与DM642的硬件连接如图2所示。
视频采集模块的驱动设计遵循TI公司针对DSP驱动开发专门定义的基于DSP/BIOS双层外设驱动模型[4],该模型从功能上分为与硬件无关的类驱动和硬件相关的微驱动,类驱动(Class Driver)负责互连顶层应用程序和微驱动[5]。而微驱动(Mini Driver)与具体应用到的外设相关,针对TVP5150芯片只需要简单修改EDC(External Device Control)函数即可控制视频解码芯片的打开、关闭以及控制。如调用mdBindDev函数对数据通道进行绑定;调用mdCreateChan函数完成通信对象的创建[6];调用mdDeleteChan函数删除通信对象并释放相关资源;调用mdControlChan函数向TVP5150发送控制命令等。
2.2 存储模块
系统采用两片共4M×64 b的动态随机存储器SDRAM存放视频数据[7],一片4M×8 b的FLASH存储程序。红外图像的压缩等处理均是在SDRAM内部完成的,FLASH芯片接收并存储通过仿真器JTAG接口下载到开发板的DSP程序,在系统启动时加载程序并运行。
(1)FLASH。本系统采用4M×8 b的Am29LV033C,DM642通过分别控制FLASH的片选信号、读使能和写使能,其与DM642的连接如图3所示。
(2)SDRAM。由于在整个图象处理过程中需要缓存大量的图像数据,而DM642芯片内部只集成了256 KB的SRAM,显然不能满足需求,TMS320DM642外挂两片SDRAM来扩展存储空间,保证了系统实时运行时,图像的缓存功能。SDRAM采用2M 64 b存储空间的HY57V643220,并与EMIF的CE0接口相接,如图4所示。
2.3 压缩模块
系统的视频压缩模块采用H.264技术对红外图像进行编码,加入了多模式宏块划分、高精度运动估计、整数变换与量化等诸多技术亮点[8]。设计采用调用H.264视频编码库h264enc.lib对红外图像进行处理,视频压缩流程如图5所示。
2.4 网络传输模块
TMS320DM642的网络通信接口由EMAC(Ethernet Media Access Controller)控制模块、EMAC模块与MDIO(Management Data Input/Output)模块3部分组成的[9]。本系统设计时采用Broadcom公司的BCM5221作为10/100Base-TX以太网收发器,与DM642连接如图6所示。
3 客户端解码器的设计
在上位机PC端的红外视频图像解码器是基于Windows环境下VC 6.0的基础类库MFC(Microsoft Foundation Classes)设计的[10],主要负责接收DSP网络模块发送来的红外图像数据码流,对码流进行解码并正确显示。解码器的界面如图7所示。
客户端解码器可在网络设置区域配置服务器端IP地址、子网掩码及默认网关等信息以便进行通信,并配置相应码率;客户端还集成了图像处理与录像的功能,图像增强采用直方图均衡方式对红外图像进行处理,录像时保存文件为*.264格式数据,方便对关键视频信息保存及回放。
4 系统测试及评价
红外监控系统的成像效果主要取决于红外热成像仪、压缩传输的嵌入式平台以及图像的接收与显示终端三部分,其中压缩与传输的嵌入式DSP平台H.264压缩比率以及网络传输速率成为本系统的主要评价指标。系统正常工作情况下测试了30 s,60 s和90 s三组时间下服务器与客户端的之间红外视频数据的平均传输速率,如表1所示。
MB
红外监控系统服务器与客户端的以太网平均传输速率为0.087 MB/s,又由热像仪输出红外图像分辨率为320×240,每秒钟原始图像数据量约为0.608 MB/s,估算系统压缩率约为7∶1。系统正常工作时客户端成像效果如图8所示。
5 结语
作为红外技术领域的重要应用,红外监控系统克服了传统视频监控系统的缺点。本文设计了以TMS320DM642为核心的嵌入式红外视频采集压缩传输平台,并且开发了配套解码与显示客户端软件,使得无论在视频处理芯片TMS320DM642还是在H.264视频编解码算法都体现了远程红外视频监控系统的技术亮点,系统工作稳定、图像还原质量较高、占用带宽低,以太网的平均传输率为0.087 MB/s,图像压缩率约为7∶1,达到了设计要求。
参考文献
[1]袁华,王召巴.红外探测技术的原理及发展前景[J].科技信息,2008,29(5):15-17.
[2]何伟,焦斌斌,薛惠琼,等.非制冷红外焦平面阵列进展[J].电子工业专用设备,2008,160(5):18-23.
[3]Texas Instruments.TVP5150PBS datasheet[M].USA:Texas In struments,2006.
[4]Texas Instruments.DSP/BIOS user's guide[M].USA:Texas In struments,2003.
[5]徐志伟,马登极,林峰,等.基于DM642的视频解码设备TVP5150驱动程序的设计[J].电子器件,2006,29(3):945-950.
[6]臧博,吴裕斌,曹丹华.基于GIO/FVID的DSP视频处理驱动程序[J].单片机与嵌入式系统应用,2006(6):27-30.
[7]刘洲峰,徐庆伟,朱亚伟.TMS320DM642为核心的视频图像处理器外围电路设计[J].现代电子技术,2008,31(14):167-169.
[8]王蒿,薛全,张颖,等.H.264视频编码新标准及性能分析[J].电视技术,2003,25(6):25-27.
[9]刘钊江,郑红,吴兴华,等.基于TI C6000系列DSP的网络开发研究[J].仪器仪表用户,2010,17(3):60-62.
MS320DM642 篇3
由于基于嵌入式的视频监控方案具有稳定性高、功能专一、体积小、易于安装维护等优点,得到越来越多企业和个人的青睐。嵌入式监控系统依据其采用的核心芯片的不同在视频处理性能、网络传输性能等方面有很大的区别。本文系统采用TI公司的TMS320DM642[1]处理器(简称DM642),该处理器具有很强的图像和视频处理能力,而且由于其具有丰富的在片外设,内置了网络接口、视频接口等,使其在图像和视频应用中具有视频数据输入简便、视频及图像处理能力强、网络接口方便和传输容易等优点,大大提高了视频监控的实用性。
视频监控系统一般包括两大部分,视频监控终端和视频监控中心。视频监控终端和视频监控中心可以采用Client/Server(C/S)或者Browser/Server(B/S)模式,B/S模式严格说也是一种C/S形式,只不过它用Internet Browser作为Client。本设计所实现的监控系统将采用B/S模式,监控中心运行在Client模式,它直接用IE浏览器请求并查看监控视频,监控终端设计为视频服务器,它守候客户端(监控中心)的连接请求,并为合法的请求端提供监控视频服务。本文将重点讨论工作在Web Server方式下的视频监控终端的实现方法。监控系统的总体框图如图1所示。
由图1可知,视频监控终端输入部分由CCD摄像机采集视频图像、CCD摄像机通过S-Video端子接入视频解码器,视频解码器可以将NTSC格式或PAL格式的视频信号转换成包含有数字色差信号(YUV422)的BT656格式的视频流,再由DM642从中提取YUV422格式的视频信号,一路送到本地的视频显示模块进行本地显示,另一路通过DM642的视频格式转换软件模块将YUV422格式的视频转换成YUV420格式,再将YUV420格式的视频数据交由DM642进行视频压缩编码,编码后的数据放到运行在DM642上的视频发布脚本,该视频发布脚本包含于运行在DM642上的Web服务器内。视频监控中心通过Windows系统自带的Internet浏览器向监控终端的Web服务器发出连接请求,被验证合法后可以通过网络查看监控终端所提供的监控画面,压缩的视频码流需要经过浏览器的解码插件进行解码,然后再进行显示。监控中心还可以通过网络发出一些控制命令到终端,这些控制命令控制终端运行的一些参数,如视频图像的压缩比、摄像机云台和镜头等参数。
2 系统的硬件结构
整个系统以DM642作为核心芯片,包括视频输入、视频输出、网络传输和存储器几个主要部分。DM642自身带有视频口(Video Port)和以太网接口模块(EMAC及MDIO),它可以方便的与视频输入芯片(TVP5150)、视频输出芯片(SAA7121)及物理层的网络器件(BCM5221)实现无缝连接[2]。系统的硬件结构如图2所示。
3 系统的软件设计
视频监控终端的软件部分应该包含视频采集、视频回放、视频压缩和视频数据传输等基本任务。TI公司针对这种复杂的多任务应用发布了DSP/BIOS程序包,DSP/BIOS是一个简易的实时多任务操作系统,是一种可裁剪的实时处理内核[3]。它具有实时操作系统的诸多功能,如任务的调度管理、任务间的同步和通讯、内存管理、实时时钟管理、中断服务管理、外设驱动程序管理等。本系统是基于TI的DSP/BIOS设计软件部分设计的。
系统中定义了5个任务,包括图像输入任务(函数为_tsk Video Input)、图像编码任务(函数为_tsk Process)、控制任务(函数为_task Control)、网络任务(函数为_network_main)、空闲任务(函数为IDL_F_loop)。一旦DSP/BIOS启动后,DSP/BIOS将在这几种任务之间调度。当没有前4种任务或硬件中断任务执行时,将执行空闲任务,调用函数为IDL_F_loop循环程序,执行后台的IDL线程。各任务之间通过各种消息来完成同步和通信,视频输入帧准备好后会发送消息from Inputto Proc通知视频处理任务(tskprocess),视频压缩完成后,需要通过消息from Procto Input来告诉视频输入任务接着采集下一帧图像,还需要通过消息from Procto Net来告诉网络传输任务(Network)进行视频流的网络传输,同时还需要通过消息from Procto Out通知视频输出任务(Tsk Video Output)本地显示视频。消息在各任务之间是双向传送的。
4 视频压缩编码的实现
本系统采用JPEG作为视频压缩编码算法,在监控终端将视频图像当作静态图像来进行压缩处理,在监控中心利用IE浏览器的JPEG解码插件将压缩的数据流解压播放,就能实现动态视频效果。
DM642拥有720 MHz的高主频,配以内部为视频和图像处理专门设计的专用模块,完全可以实现目前主流的视频和图像处理算法,并能达到实时性要求。本系统的JPEG编码算法的流程如图3所示。
从图3可以看出二维DCT变换在整个过程中运算量最大,通过测试分析,发现DCT几乎占用进行JPEG编码耗时的70%,因此在实现DCT变换的过程中,需要着重考虑算法和程序的优化。JPEG编码将图像分成8×8的块,即DCT处理的基本单元是8×8的子块。因此,定义8点二维DCT变换如式(1),分解成2次一维DCT可以简化运算,如式(2)~(3)。
本系统采用Loeffler快速算法来实现最为耗时的DCT变换[4]。在对本系统的JPEG编码单元中DCT变换的速度进行测试可以得出对1个8×8块进行DCT变化仅需大约120多个周期(DM642的指令周期为1/(720×106)),约0.175μs,由于DM642具有多个并行处理单元,在进行多个8×8块的DCT变换时,每个8×8块所需的时间会更少,进一步可以测试出一帧720×576的YUV420格式的图像进行DCT变换需要的周期数大约为738 000个,约为1/30 s,这一变换速度为利用JPEG对720×576的YUV420视频序列进行实时编码奠定了基础。JPEG编码中分块、量化、Huffman编码等部分实现起来比较简单,耗时也很少,不需要过多地考虑算法和程序优化问题,在此不详述。
为了使监控画面的图像质量可控制,本系统在设计JPEG压缩编码时,加入了品质因子参数Q,通过品质因子Q改变量化所用到的量化表中的量化步长来改变量化结果中“0”的数量。Q与量化表之间的关系由下列公式确定
式中:Init Qtable Y[i]和Init Qtable UV[i]分别为标准亮度量化表和色度量化表;Final Qtable Y[i]和Final Qtable UV[i]分别为本文系统用于对亮度分量和色度分量的DCT系数进行量化的量化表,称为最终量化表。从上式可以看出,Q值越大,mul_factor值越小,最终量化表中各元素也越小,量化后的“0”的个数越少,压缩后的图像质量就越高[5]。在本系统由监控中心通过IE浏览器设置Q值大小,再通过网络将Q值传输给视频监控终端。
5 结果分析
图4给出了监控终端所提供的监控画面在Q=95,50,25,5时的图像。从图4可以看出Q值越大图像质量越好,当Q=25时图像质量明显下降,Q=5时图像质量最差。
系统设计完成后,通过网络抓包软件sniffer,对系统的网络性能进行抓包测试,得出如表1的网络流量情况,监控的视频图像大小为720×576,格式为YUV420,帧率为20 f/s(帧/秒)。
从表1可以看出,Q=95时,每秒网络数据流量较大;Q=50时,每秒网络数据流量适中,较Q=95时有较大幅度下降,从图6可以看出此时的图像质量较Q=95时无明显下降;Q=25时的图像质量明显下降。
6 小结
笔者提出的基于DM642的嵌入式视频监控系统设计方案具有稳定性高、图像质量较好、网络传输性能好等特点。该系统操作简单,只需用户配置IP地址就可以运行,系统的监控图像质量能满足大多数用户对画面质量的要求,另外,该视频服务器对网络带宽的需求适中,完全适合局域网中使用。
参考文献
[1]Texas Instruments.TMS320DM642video/lmaging fixed-point digital signal processor[EB/OL].[2008-05-20].http://focus.ti.com/lit/ds/symlink/tms320dm642.pdf.
[2]刘源,朱善安,叶旭东.基于DM642的嵌入式视频监控系统硬件设计[J].电子器件,2006,29(3):905-908.
[3]金春莲,黄迅.实时操作系统DSP/BIOS在DSP开发中的应用[J].电子产品世界,2002(17):61-63.
[4]LEOFFLER C,LIGTENBERG A,MOSCHYTZ G S.Practical fast1D DCT algorithms with11multiplications[C]//Proc.IEEE International Conference Acoustics,Speech and Signal Processing(ICASSP).[S.l.]:IEEE Press,1989:988-991.
MS320DM642 篇4
在数字视频应用方案中,视频编码器是核心,其中编码器的硬件运算能力是系统实时性的保证,而视频压缩标准的高压缩比为编码器适应各种传输带宽信道提供了必要的保障。视频编码工程X264是一款开源的、按照H.264标准在PC平台开发的视频编码器,如果直接移植到TMS320DM642(以下简称DM642)平台[1,2,3],则实际的编码速度一般低于视频应用方案所需要的实时性要求。为了提高编码工程的编码速度,需要对移植到DM642平台的X264进行优化,整个优化的流程如图1所示。
2 DM642硬件介绍
DM642采用TI开发的第二代高性能先进Veloci TI技术的VLIW架构Veloci TI1.2,在主频600 MHz下处理速度达到4 800 MI/s(兆指令/秒)。DM642 CPU核内部具有64个32位通用寄存器和8个独立的32位运算单元(2个乘法器和6个算数逻辑单元),确保每个周期能够提供4个16位介质访问控制(Medium Access Control,MAC)。
DM642使用两级缓存L1和L2[4]。其中一级缓存L1包括一级程序缓存L1P和一级数据缓存L1D;二级缓存L2可配置为片内存储器、高速缓存或两者结合。外设包括[4,5,6]:3个可配置的视频端口;1个10/100 Mbit/s的以太网控制器(EMAC);1个管理数据输入输出(MDIO);1个内插VCXO控制接口;1个Mc ASP0;1个I2C总线;2个Mc BSPs;3个32位通用定时器;1个用户配置的16位或32位主机接口(HPI16/HPI32);1个PCI;1个16引脚的通用输入输出口(GP0),具有可编程中断/事件产生模式;1个64位IMI-FA,可以与同步和异步存储器的外围设备相连。
DM642与传统的DSP一样,采用哈佛结构[7,8],即把数据与程序分开存放于不同的存储区内,保证在DSP的实际工作中,从程序存储区取指令与从数据存储区取运算数据是互相独立的,另外在CPU内部设计了8个不同的处理单元,可使在运行过程中,CPU是按照流水线流程进行操作的。
3 DM642平台优化方案介绍
3.1 算法和系统程序结构的优化
系统结构优化主要是合理安排程序中各个模块在DSP的存储区间中所放的位置,也就是解决存储区间的映射问题;在数据处理方面,尽量减少待处理数据的无谓搬移。算法优化主要体现在分析算法有没有更好更简单的替代方法,算法是否有某种对称性,可否采用更合适的数据结构等。在X264的优化中,首先考虑系统结构的合理安排,譬如程序到内存映射方面,首先利用CCS的CODE_SECTION[9]伪指令把X264中的9个大的模块,依次映射到9个大的子区间里面,把频繁使用到的DCT/IDCT模块、QUANT/DEQUANT模块、SAD/SATD模块放到DM642的片内存储区(L2 SRAM)中,把其他模块映射到片外存储区中。在数据访问方面,考虑到X264编码分别为编码帧和帧间预测时的参考帧分配了存储空间,在移植的过程中,存在着编码帧和参考帧的存放位置问题。从访问速度来看,片内存储区的访问速度要远远高于片外存储区的速度,但片内存储区的空间却要远远小于片外存储区,这样出现了访问速度与有限空间之间矛盾。考虑到实际编码流程中,编码的基本单元是16×16的亮度宏块加上2个8×8的色度模块,这里用CCS的DATA_SECTION[9]伪指令在DM642的片内存储区(L2SRAM)中申请2个大小为(16×16+8×8+8×8)的存储区,来存放编码像素值;用DATA_SECTION伪指令在片内存储区内申请一些空间,临时存储编码过程中编码宏块的帧内预测模式信息、帧间预测运动矢量信息以及离散余弦变换系数和量化系数;最后,为了运动估计和帧内预测参考,给参考宏块分配一定存储空间。而整个当前编码帧和运动估计参考帧则放在DM642映射的片外存储区。
3.2 EDMA和乒乓缓存的优化
EDMA(Enhanced Direct Memory Access)是增强型直接内存访问的英文缩写。DMA技术指的是在嵌入式处理平台或者大型计算平台上,外设与外设之间、外设与存储器之间、存储器与存储器之间可以在不需要CPU干预的情况下,进行数据搬移和访问。这样可以保证CPU在对一组数据进行运算时,存储器把即将要处理的新的实验数据准备好,减少CPU等待时间,特别是在一些需要进行大量数据搬移的情况下,能够显著提高系统的运算速度。DM642具备64个EDMA物理传输信道,能够保证数据在极短时间内,在DM642外设的缓存区间和DM642存储器之间进行搬移。DM642的EDMA[10]主要有3种启动模式:CPU启动,同步事件启动,外部事件启动。CPU启动指的是CPU通过调用EDMA的应用程序接口(Application Programming Interface,API)去启动预先设置好的EDMA搬移任务。同步事件启动一般指的是一个EDMA信道完成了搬移任务,会产生激发信号,从而激发其他的EDMA信道开始数据搬移。外部事件启动一般指的是DSP的外设完成与外界的数据交换后,激发EDMA信道进行数据搬移。
在对X264进行EDMA优化中,采用双buffer机制,也就是俗称的乒乓缓存(ping-pong buffer)机制。具体操作代码示例为:
示例中,除了数据搬移中必需的数据存放源地址和目的地址之外,还定义了变量Ping_Pong和DAT_ID。其中Ping_Pong是一个标志变量,用来表示当前存放搬移数据的目的存储区是Ping存储区还是Pong存储区,DAT_ID是正在进行的EDMA搬移的句柄变量。在进入正式的编码循环体以前,EDMA会事先把一个要编码的宏块像素值搬移到Ping存储区(假设Ping_Pong=0表示Ping存储区)。进入循环体以后,首先进行目标存储区的交替(Ping_Pong=1-Ping_Pong,此时Ping_Pong=1,表示Pong存储区),接着等待前一次搬移是否完成(DAT_wait(DAT_ID)),如果前一次搬移完成,就可以立即开始下一次搬移,同时CPU立即进行对本次搬移数据的处理。以后的操作类似,直至所有的宏块都完成编码,结束循环体。
3.3 循环体的优化
在X264视频编码器中,循环体出现的频率比较高,而且往往循环体是在整个编码器中比较占用时间的部分。尤其是当出现循环体嵌套,或者循环体内部存在逻辑判断语句或者函数调用时,编译器一般不会对该循环进行优化。针对这些问题,比较常用的方法有嵌套循环体内部循环展开,用条件操作符代替逻辑判断语句,使用内联函数[11,12],使用MUST_ITERATE伪指令操作符[11,12],将大循环体拆成几个小循环体。笔者使用的循环体优化的例子代码为:
在上面示例中,伪指令MUST_ITERATE主要是告诉编码器,本次循环总共要执行396次,这样编译器就可以进行软件流水来优化这个循环。
3.4 编译器优化选项
在完成上述的手工优化后,接下来通过设置编译器选项来使用编译器优化,本文采用的编译器优化选项[11,12,13,14]有:-pm(在程序级别进行优化),-o3(对文件级别进行最强的优化),-op3(速度最重要),-ml3(缺省情况下将全部数据和函数作为far型)。
3.5 DSP汇编优化
假如使用上述优化策略对编码工程进行优化后,编码器的速度还不能达到应用要求,就需要编写手工汇编程序。编写手工汇编程序之前,首先要用CCS的profile工具对编码工程进行剖析,找出比较耗时或频繁调用的函数部分,把这些部分改写成汇编函数。
DSP采用的是哈佛体系结构,将数据和程序分开存放。大体上来说,编写汇编语言函数主要步骤为:把操作数从内存中取出来放到CPU的寄存器中,然后在CPU内部用不同的运算单元对寄存器里的操作数进行运算,最后把运算的结果存到内存中。其中,函数参数传递、函数返回值寄存器、条件寄存器、栈指针寄存器的保存都必须按照规定使用相应的寄存器,否则会出现错误。
在编写汇编语言的过程中要考虑下方面:1)充分理解待编写的函数的逻辑功能。只有真正理解了函数实现的功能和具体的数据流程图,才能使汇编语言的构架比较高效;2)数据结构的选择和安排。由于DM642允许数据打包处理,即一条指令可以同时对几个字节进行操作,这对于图像和视频处理非常有益,所以能够打包处理的就尽可能打包处理;3)寄存器的分配和指令的先后顺序。DM642的CPU有2套完全对称的运算单元和寄存器。只要把操作数分别存、取到隶属于不同套的寄存器里面,采用不同的运算单元,合理安排指令的先后顺序,保证在资源不冲突的条件下尽量在一个周期内安排更多的指令,实现指令运行的高效性、并行性。
下面举一个SAD_4×4的例子来说明上述各项是如何实现的。SAD_4×4的C语言版本的代码为:
完成汇编指令的编写后,进行汇编语言的调试。由于X264工程比较大,如果直接在工程中调试,难度较大,所以在调试过程中建立一个小工程,从文件中读出一段数据来测试汇编语言功能的正确性。具体的步骤是:采用单步调试的同时,开启调试器CCS里面的view memory和view core registers选项来观察相应的memory和寄存器里面的值是否按照逻辑设计进行改变。如果结果不对,则考虑是否错误地使用了寄存器,或者是没有等待足够多的延时周期,或者是出于软件流水的目的错误地安排了指令的顺序,直到找出错误的地方。
4 小结
笔者首先分析了从PC平台移植到DSP平台后的X264编码工程,其编码速率低,满足不了视频压缩实时性要求。接着从提高编码器的编码速度角度出发,对编码工程进行了优化,介绍了在实际中用到的几种DSP平台优化方法:算法与程序系统结构的优化,EDMA与乒乓缓存优化,循环体的优化,编译器优化和DSP汇编。对CIF格式图像采用BASE_LINE进行编码,优化前X264编码速度约为5~8 f/s(帧/秒),优化后的编码速度为20 f/s左右,速度得到明显提升,基本能够实现实时编码。
摘要:简单介绍了TMS320DM642数字信号处理器的硬件构成,简要给出了DSP平台的程序优化一般流程。着重研究了TMS320DM642平台优化X264视频编码器,包括算法与系统结构优化,乒乓缓存优化,循环体的优化以及DSP汇编实现。
MS320DM642 篇5
1视频图像数字处理器的构成
采用TMS320DM642的实时视频图像数字处理器,主要功能有:视频采集(视频解码)、高速处理卡(DSP)、数/模转换(视频编码)、视频合成(复合视频、超级视频)[2]。外围电路主要包括CCD高速摄像机、视频解码器、视频编码器、执行机构CPLD和TMS320DM642外部存储器接口(EMIF)连接的SDRAM图像帧存储器、FLASH程序存储器,及其他DSP外围电路(复位、电源连接、JTAG调试端口)等。图1为该处理器的结构图。
2TMS320DM642芯片简介
TMS320C6000系列DSP芯片是目前最先进、性价比最优的DSP芯片之一。采用TMS320DM642,高性能32位定点DSP,工作主频最高达720 MHz,处理性能可达5 760 MIPS。可实时实现多路数字视频/音频的编码运算。 其主要特点包括:具有VelociTI先进VLIW结构内核;片内集成大容量SRAM;16/32/64 b高性能外部存储器接口(EMIF)提供与SDRAM,SBSRAM和SRAM等同步/异步存储器的直接接口;片内提供多种集成外设(多通道DMA/EDMA控制器、多通道缓冲串口McBSP、多通道音频串口McASP、32 b通用计数器 Timer、支持多种复位加载模式Boot);内置灵活的PLL锁相时钟电路[3]。
3视频图像处理器外围电路
3.1 视频采集与数/模转换电路
视频采集电路选用的主要芯片为解码器TVP5150,它可以接收2路复合视频信号(CVBS)输入和1路超级视频信号(Y/C)输入。如图2所示。
视频信号输入范围为0.75 Vpp,而外部视频信号输入范围一般为1 Vpp,所以外部视频输入与TVP5150视频输入之间串接18 Ω和56 Ω到地分压电阻网络,使用前一定要将视频信号输入范围调整到1 Vpp。
DM642用通用I/O口GP0[0]控制I2C总线的切换,GP0[0]为“0”时,选通第1和第2通道TVP5150,而GP0[0]为“1”时,则选通第3和第4通道TVP5150。
数/模转换电路芯片为编码器为SAA7121H,DM642的4个VP口已经均被TVP5150所使用,因此,SAA7121H只能与其中的的一TVP5150复用一个VP端口,这里选择VP0A端口。图3所示为视频输入输出接线图。
3.2 执行机构CPLD
CPLD(复杂可编程逻辑器件),是在传统的PAL、GAL基础上发展而来。凭借半导体工艺技术及CAD工具的发展,如今1片CPLD可以代替几十乃至上百片PAL,GAL,可提供十万门以上的可用门。与FPGA相比,CPLD比较适合计算机总线控制、地址译码、复杂状态机、定时/计数器、存储控制器、DMA控制器、CACHE控制器、图形控制器、数据压缩编码等I/O密集型应用,且具备无需外部配置ROM、时延可预测等特性。目前的CPLD普遍基于E2和FLASH电可擦技术,可实现100次以上擦写循环。考虑到该系统设计方案,选用了型号为CY37064P100的复杂可编程逻辑器件,工作电压为3.3 V。
3.3 外部存储器接口(EMIF)电路
数据存储器采用SDRAM有2个优点:一是速度高,由于同步存储,存取时间可达6~7 ns;二是单片的容量大,有利于减小整个图像处理系统的体积。注意并非所有的SDRAM器件都能够实现与TMS320DM642的无缝接口(glueless interface)。只有那些Precharge(Deactive)管脚对应为A10的SDRAM才能与TMS320DM642的EMIF完全兼容[4]。
其中SDRAM对应DM642上的CE0映射的地址空间,使用2片32位数据总线的同步动态RAM,高32位存储在1片RAM中,低32位存储在另一片RAM中,满足DM642 64位数据总线要求。SDRAM在CE0子空间的具体定位为:0x80000000H~0x81FFFFFFH。
系统的代码固化在FLASH中,FLASH在CE1子空间占据的具体空间定位为:0x90000000H~0x9007FFFFH。DM642只提供20根外部地址总线,所以CE1子空间最大寻址范围为1 M×8 b,SEED-VPM642板上CE1子空间除了分配给FLASH以外,还分配给状态/控制寄存器、UARTA、UARTB等资源使用,其中FLASH只占CE1子空间的前一半的寻址空间,即最大可寻址范围为512 k×8 b,而FLASH的设计容量为4 M×8 b,所以采用分页技术实现对FLASH的访问,即将整个4 M×8 b的FLASH分成8个512 k×8 b的页,而页地址PA21,PA20,PA19则由页地址寄存器提供(页地址寄存器位于CPLD中)。
TMS320DM642有多种上电自举方式,通过复位时AEA[22:21]引脚的状态来选择,有FLASH,HPI或PCI三种自举方式。该电路默认方式为EMIFA通过8 b的FLASH自举[5]。
3.4 其他DSP外围电路
时钟电路为TMS320DM642提供时钟。输入时钟CLKIN为50 MHz,CLKMODE[1:0]上拉或下拉为10,即片内PLL设置为×12,CPU内核频率为600 MHz。而片上外设总线、EDMA传输和L2存储器的工作频率为CPU内核的1/2,即300 MHz;片上定时器工作频率为75 MHz。
TMS320DM642的核(CORE)电压为1.4 V,I/O电压为3.3 V,因为需要2种电源,所以要考虑供电系统的配合问题。在加电过程中,应当保证内核电源先上电,最晚也应该与I/O电源一起加。关闭电源时,先关闭I/O电源,再关闭内核电源。
讲究供电次序的原因在于:如果仅CPU供电,I/O对芯片不会产生损害,只是没有输入、输出能力而已;如果反过来,周边I/O得到供电,而CPU内核没有加电,那么芯片缓冲/驱动部分的晶体管将在一个未知状态下工作,这是非常危险的。
正因为如此,电路中设计了复位电路,它不仅提供系统上电、工作电压异常时的自动复位及人工控制复位,而且也方便调试电路。
TMS320DM642的仿真接口为JTAG形式,能与各种形式的仿真器相连接。JTAG端口为整个系统的仿真调试提供了方便,借助于TI公司的CCS开发环境以及与JTAG端口相连的硬件仿真器C64xx XDS510 Emulator,可以实时监控TMS320DM632的内部工作状态。
4视频图像处理过程中图像数据的存放
在由内部数据RAM,片外数据RAM构成的DSP数据系统中,为了获得较快的处理速度,必须注意数据的存放位置。这里,针对视频图像处理算法的性质给出以下原则[4]:
(1) 帧内处理算法,处理时所用到的只是当前帧的一部分数据。需要存放的数据量很小,此时待处理以及处理过的视频数据可以同时存放于片上RAM;
(2) 帧间处理算法,涉及到的数据量超过2帧以上,则待处理的数据及处理过的数据均存于SDRAM上。片内RAM只存放运算的中间结果;
(3) 片上数据的存放应注意地址冲突问题。
5结语
该图像处理器方案具有处理速度快、实时性相对较好的特点。使过去因运算量太大而无法实现的算法,在高速DSP系统上就可以实现,并且该系统控制灵活,有HPI(PCI)以及通用异步串行接口,可以方便地与单片机连接。这样,许多系统级的控制工作就可由单片机来完成。目前,TMS320DM642 DSP芯片超强的运算性能正日益受到重视,它的发展前景不可估量。
参考文献
[1]张雪松,倪国强,周立伟.带有DSP芯片的新型实时数字图像处理系统[J].光学技术,1997,4(4):16 18.
[2]Downton A,Crookes D.Parallel Architectures for Image Pro-cessing[J].Electronics&Communication Engineering Journal,1998,10(3):139 151.
[3]李方慧,王飞,何佩琨.TMS320C6000系列DSPs原理与应用[M].北京:电子工业出版社,2003.
[4]任丽香.TMS320C6000DSPs的原理与应用[M].北京:电子工业出版社,2000.
[5]陆佩芸,宋莹,季晓勇.TMS320C6000 DSP系统的引导设计[J].微型机与应用,2004(3):9 11.
MS320DM642 篇6
1 TL16C752B芯片的简介
TL16C752B是德州仪器公司推出的UAR专用芯片其内部具有64字节发送/接收FIFO接收FIFO的启动和停止可通过软件编程实现, 支持多种波特率、多种串行数据格式。提供RS-232C数据终端设备 (包括含有UART模块的各种单片机) 接口, 在输出数据时, 该芯片将DSP通过双向8位数据线传送过来的并行数据转换为串行数据流, 从发送数据端口 (TXA或TXB) 输出。在输入数据时, 该芯片将来自数据接收端口 (RXA或RXB) 的串行数据转换为存储在指定区域的字节, 供DSP内部程序调用处理。
1.1 TL16C752B芯片的主要特点
TL16C752B是TI公司推出的新型UART (Universal Asynchronous Receiver and Transmitter) 收发器。该器件的主要特点如下:1.1.1引脚和ST16C2550兼容, 内置两套UART系统, 可独立工作;1.1.2工作时, 最高波特率可以达到1.5Mbps (使用24MHz晶体时) 或3Mbps (使用48MHz振荡器或时钟源时) ;1.1.3具有64字节发送/接收FIFO (接收FIFO包含错误标志) 。由于收、发FIFO的触发等级可通过软件编程实现, 因而减少了CPU的中断次数;1.1.4接收FIFO的启动和停止等级可以通过软件编程来实现;1.1.5具有两种控制模式:其中软件流控制模式可通过编程Xon/Xoff字符来实现;而硬件流控制模式则可通过设置RTS和CTS引脚及相应的寄存器来实现;1.1.6波特率可编程;1.1.7可编程下列串行数据格式:
——5、6、7、8四种字符;
——数据奇偶校验或者无校验;
——1、1.5、2bits停止位;
1.1.8内部闭环。
1.2 TL16C752B芯片的引脚
TL16C752B芯片的封装如图1所示。
TL16C752B内含双UART, 并自带64字节收发FIFO, 可自动进行软件流和硬件流控制, 最大波特率可达3Mbps。此外, TL16C752B还提供了其它一些增强功能, 可通过设定EFR寄存器的相关位来实现。通过FIFO RDY寄存器可读取TXRDY/RXRDY引脚的状态;而通过片内寄存器则可为使用者提供接收数据的错误识别、操作状态以及MO-DEM的接口控制信号。TL16C752B的引脚排列如图所示, 各主要引脚的功能如下:
A0~A2:地址线, 通过这几个引脚以及读写信号IOR和IOW可以访问及设定片内寄存器;
D0~D7:双向8位数据线;CSA、CSB:两套UART的片选信号;TX-A/RXA、TXB/RXB:分别表示所要发送和接收的数据端口;INTA/INTB:中断信号;RESET:芯片复位信号;XIN/XOUT:时钟输入/输出信号。
1.3 TL16C752B的内部寄存器
TL16C752B的内部寄存器如表1所示, 其中:
“*”表示仅当LCR的第7位为1时, 访问DLL/DLH。
“**”表示仅当LCR为0x BF时, 访问EFR以及Xon1/2, Xoff1/2。
“+”表示当EFR[4]为1, 且MCR[6]为1时, 访问TCR/TLR。
“++”表示当片选信号有效、MCR[2]为1且处于非闭环模式时, 访问FIFO RDY。
此外, 对于MCR[7], 只有当EFR[4]为1时才可以更改。在上述说明中, []表示该寄存器的第几位。
TL16C752B芯片内部共有20个寄存器, 这些寄存器可分别用于实现通信参数的设置、对线路及MODEM状态的访问、数据的发送和接收以及中断管理等功能。其地址可分别通过A0~A2地址线和某些寄存器的特定位来确定, 由于有些寄存器的地址是重叠的, 所以还必须通过读/写信号加以区分。所以在我们读写的时候, 不要同时对地址重复的寄存器操作:
(1) 000:RHR和DLL
(2) 001:IER和DLH
(3) 010:IIR和EFR
(4) 100:MCR和Xon-1
(5) 110:MSR和TLR和Xoff-1
(6) 111:SPR和FIFO RDY和Xoff-2
2 硬件电路
TL16C752B与PC的串行通信部分的硬件连接原理图如图2所示, 图中, 数据线D0-D7和地址线A0-A2分别连接DSP的外部数据线D0-D7、地址线A0-A2和TL16C752B的数据线D0-D7、地址线A0-A2, 而选通信号CSA/CSB、读写信号IORD/IOWR、以及复位信号RESET则接入CPLD芯片并由其产生, 用的是Littice公司生产的LV4128芯片。同时DSP端的EXTINT5、EXINT6、EXINT7也同时接入CPLD生成控制信号。
PC机端串口采用RS232电平标准, 因此TL16C752B之后需要连接MAX232A完成TTL到232电平转换。数据发送、接收采用查询方式。在XTAL1和XTAL2之间连接的晶振为18.432MHz, 波特率设为115200bps, 所以DLL和DLH分别设置为10h和00h。
3 软件设计
该系统软件设计主要是DSP初始化, TL16C752B初始化以及数据的收发。在对TL16C752B访问之前要对其初始化, 在这里要设置波特率等一些参数。主要是设置线路控制寄存器 (LCR) 、除数锁存寄存器 (DLL、DLH) 、FIFO控制寄存器 (FCR) 和中断使能控制寄存器 (IER) 。查询方式读取数据:判断线状态LSR寄存器的位0, 如果位0=1, 表示RHR中至少有一个数可以读。循环读, 直到RHR中没有数为止, 位0=0, 表示RHR中没有数, 结束读取数据。查询方式写数据:读线状态寄存器, 判断线状态LSR寄存器的位5, 如果位5=0, THR中有数据, 结束写数据。如果位5=1, THR中没有数, 向THR写数据。由于TL16C752B被映射在DSP的CE1空间, 所以在DSP访问其寄存器的时候只需要基地址加上相应的偏移量就可以了。
结束语
本文介绍了通过扩展串口完成TMS320DM642通过TL16C752B与PC机通信的方法, 并给出硬件及软件的实现方法。这种方法简单、实用、可靠。
摘要:高速数字信号处理芯片 (DSP) 在各个领域得到了广泛的应用, 在这类器件中, TMS320DM642在视频方面得到了应用。介绍了TMS320DM642数字信号处理芯片和TL16C752B双路通用异步接收/发送接口芯片的功能。给出了TMS320DM642通过TL16C752B接口芯片与PC之间通信的电路原理图, 软件初始化程序, 解决了高速DSP与PC通信的问题。
关键词:DM642,TL16C752B,串行通信
参考文献
[1]TL16C752 3.3-V DUAL UART WITH 64-BYTE FIFO.1999.
[2]李方慧, 王飞, 何佩琨.TMS320C6000系列DSPs原理与应用[M].北京:电子工业出版社, 2003
[3]卞红雨, 纪祥春, 乔钢等.TMS320C6000系列DSP的CPU与外设[M].北京:清华大学出版社, 2007
[4]王卫, 陶然, 徐元军.DSP与PC间高速串口通信的实现[J].电子产品世界:2001 (9)
[5]TMS320DM642 Video/Imaging Fixed-Point Digital Signal Proces-sor.2003.
[6]TMS320C6000 DSP EMIF Rererence Guide (Rev B) .2004.
[7]杨稳积, 王新宏.鱼雷数字信号处理机异步串口通信接口电路设计[J].鱼雷技术:2006 (10)
【MS320DM642】推荐阅读: