- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于TMS320DM642的IP视频电话的设计
随着网络技术和多媒体技术的广泛应用,数字网络视频技术得到了飞速的发展。在网络视频会议和网络监控等多个领域中,将传统的模拟视频信号转换成数字视频信号处理,并且借助于现有的IP网络进行传输已成为当今的一大热点。
1. 视频电话工作原理
电话按键经过DTMF(双音多频)技术转换成内部的数字串(一般是电话号码和功能键值),系统内部拨号程序按SIP(Session INItiation Protocol)格式将拨号消息封装在SIP数据包中,开始向目标机发送invite(请求)信令,SIP包首先发给与它相连的PROXY(代理服务器),然后通过代理发送呼叫。代理在Internet上找到与对方相连的PROXY,对方的PROXY向目标机发送消息,目标机如空闲且状态良好就发回一个“180”(!响铃),否则发回“486”(忙音)或超时信令。然后被叫方提起话筒同时向呼叫方发回“200”(表示话筒提起开始通话),双方开始通话,双方摄像头和话筒开始工作,电话机接口芯片将信号转成数字信号,然后编码程序把数据进行音/视频压缩编码,再以RTP(实时传输协议)格式封装,经UDP/IP协议函数处理、打包、分组,通过双方的一个UDP的Socket对来承载数据输入和输出。
因为每个RTP包含有时间戳和序号的报头,当通话双方收到对方的RTP数据包后,在接收端配以适当的缓冲,利用时间戳和序号信息重组、还原数据包,检包进行音/视频解码输出,这样双方就可以同时看到和听到对方的信息。
2. 系统硬件的设计
2.1 嵌入式处理其TMS320DM642
TMS320DM642[1]是TI公司2003年推出的一款多媒体处理器,它是基于第二代高性能的VelociTI VLIW结构,非常适合数字多媒体应用。IP视频电话[2-3]不但要有很强的处理能力的芯片,使系统能够做到实时;而且还需要有通过网络传输,使双方进行通信。DM642正是一款这样的芯片,它的最高主频可以达到600MHz,指令速度最高达4800MIPS。这款DSP芯片的两大特点在于:第一,拥有三个可配置的视频接口,可同时采集三路视频信号;第二,集成了以太网接口,10/100Mbps模式自适应,能工作在全双工或者半双工模式下,并具有硬件控制和服务质量保证(QoS)支持。DM642的功能十分强大,它是构成多媒体通信系统的最佳平台之一。
2.2 硬件整体构架
本系统的硬件平台主要由下面几个部分组成,分别是视频采集、数据处理、控制部分、视频显示、音频采集播放、网络和电源部分。硬件系统结构框图如图1所示。
该视频采集部分采用模拟PAL制摄像头,配合高精度视频A/D转换器TVP5150PBS得到数字视频,其采用精度是8bit,输出支持CCIR-656和BT656等格式。数据处理部分的SDRAM采用两片Hynix的HY57V283220T,单片容量为128Mbit,其位宽为32bit,配合DM642的64位EMIF。数据存储部分采用Spansion公司的AM29LV033C的FLASH,其容量为32Mbit,数据总线为8bit。本系统中的SDRAM用来存放系统运行的代码以及临时图像数据,FLASH用来保存系统自启动代码和系统程序代码。视频显示部分采用模拟LCD,由视频A/D芯片SAA7121H输出模拟Y/C信号,然后由模拟LCD输出。控制部分使用使用TI的MSP430单片机作为上位机,通过HPI口对DM642进行控制及其拨号等。DM642的以太网控制器[4]属于数据链路层,需要外层物理层芯片BCM5221才能进行网络通信,然后通过网络变压器H1102与外部网络连接进行通信。
3. 系统软件的设计
3.1 软件总体框架
在明确各模块功能后,进一步分析各模块采用的协议、技术以及各部分之间的接口关系,从而规划出系统的软件构架,如图2所示。
从图中可以看出软件构架分为3层设计:
1) 底层基于硬件的驱动程序,这些驱动分别控制着网络、音频驱动、LCD驱动、摄像头驱动、面板按键与DM642间的A/D或者D/A转换,向下控制着硬件工作,向上提供接口个操作系统和应用层协议调用。
2) 中间层是操作系统和协议栈程:
(1) 嵌入式操作系统:负责管理系统资源和任务调度的DSP/BIOS程序。
(2) 协议堆栈传输程序:通过TCP/UDP/IP[5]传输协议栈程序从网口接收输入的数据包,然后根据序号重组数据包,复原音视频压缩数据作为音视频解码的输入;另外通过协议栈把音视频编码产生的数据打包、分组传输。
3) 上层应用程序包括:
(1) 视频编解码程序:从网络输入数据缓冲中读取视频数据解码通过LCD显示;另一方面根据H.264视频标准把摄像头采集输入的YUV视频数据进行压缩编码,然后按照RTP传输协议进行数据封装,再调用协议栈程序打包,分组输出。
(2) 语音编解码程序:根据ITU公布的G.711标准编写的语音编解码程序,一方面从网络输入缓冲中读取音频压缩数据进行解码输出;另一方面把编码后的音频数据封装成RTP数据包,再调用协议栈处理程序打包,分组输出。
(3) 电话拨号呼叫和接听程序:键盘按键产生的DTMF通过MSP430由HPI控制DM642产生DTMF信号经A/D转换成数字信号的字串消息,然后封装在SIP数据包,再调用协议栈处理程序输出SIP包,向目标机发出呼叫功能,实现用户之间建立信道的连接服务。来电时接收SIP数据包,然后开始电话接听服务。通过MSP430可以控制电话接听时,只要由HPI口控制DM642是否开启视频采集可以屏蔽视频功能等。
3.2 设备驱动设计
TI为DM642的音视频驱动开发都是包括一个两层设备驱动模型。上层驱动为类驱动,用于连接应用程序和下层驱动;下层驱动为迷你驱动,靠近底层硬件。应用时只需要根据这个模型编写你的驱动程序就可以了。
对于以太网口,TI提供了一个网络开发组件(NDK),为在DSP上开发网络应用程序提供了平台。有了这个平台,在开发网络应用程序时,就不用过多考虑数据如何封装成IP包,也不用过多关心TCP/IP协议内部的工作机制,这样可以缩短开发周期。
1) 视频端口的驱动模型
两层设备驱动模型如图3所示。最上层是应用层程序,最下层是底层硬件,包括DM642的VP口和视频A/D芯片。中间部分即为设备驱动,图中还有一层芯片支持库(CSL),它提供配置及控制片上外设的C语言接口。
设备驱动的两层驱动模型每一层又分为两层。从图3可以看出类驱动分为FVID Class Driver和GIO Class Driver两个部分,FVID类驱动靠近应用层程序,它提供一些特别适用于图像的API函数;GIO类驱动提供与迷你驱动进行通信的API函数。迷你驱动也可以分为通用部分和特殊部分,这样可以提高驱动代码的重复使用性,通用部分驱动主要是EDMA用来从视频口传输数据;特殊部分主要用来视频采集与播放驱动,初始化TVP5150PBS和SAA7121H芯片。
2) 音频端口的驱动模型
音频部分和视频部分驱动非常类似,也包括两层设备驱动模型如图4所示。最上层是应用层程序,最下层是底层硬件。
它与视频驱动唯一不同的地方就是类驱动部分,DM642没有像视频类驱动专用的FVID类驱动。
3) 网络开发组件
网络开发组件的核心即一系列TCP/IP协议栈库。主要包括:栈库和网络工具库,它含有一些经过优化编译的协议栈代码;操作系统适应库,它用来协调TCP/IP协议栈和DSP/BIOS之间的接口;网络控制及调度库,它决定TCP/IP环境的初始化以及网络相关事件是如何被调度的;多种硬件抽象层平台库,为TI公司的多种开发库(比如DSK、TEB和EVM等)提供支持。
4. 结论
本文创新点就是基于DM642上网络开发组件的核心即一系列TCP/IP协议栈库开发出IP视频电话,该系统可以通过上位机实现对视频电话的控制。系统设计主要从以下几个方面进行:栈库和网络工具库,它含有一些经过优化编译的协议栈代码;操作系统适应库,它用来协调TCP/IP协议栈和DSP/BIOS之间的接口;网络控制及调度库,它决定TCP/IP环境的初始化以及网络相关事件是如何被调度的;多种硬件抽象层平台库,为TI公司的多种开发库(比如DSK、TEB和EVM等)提供支持。
5. 参考文献
[1] TMS320DM642 Data Sheet. Texas Instruments, 2004
[2] 许海燕, 闫健恩, 陈静. H.264视频编码在DM642上的实现与优化[J]. 微计算机信息, 2006,22(8-2):160-162
[3] Shashi Kaunt, Mithun U and PSSBK Gupta. Real time H.264 Video EnCODer Implementation on A programmable DSP processor for Videophone Applications[J]. IEEE Digest of Technical Papers, 2006,1,93-94
[4] TMS320C6000 DSP Ethernet Media Access Controller (EMAC) /Management Data Input/Output (MDIO) Module Reference Guide. Texas Instruments, 2004
[5] TMS320C6000 TCP/IP Network Developer s Kit Programmer s Reference Guide. Texas Instruments, 2003
上一篇:探析水利工程建设现代化的管理
下一篇:基于单片机和AD9858的4频点快速跳频设计