嵌入式网络终端的语音传输系统设计_第1页
嵌入式网络终端的语音传输系统设计_第2页
嵌入式网络终端的语音传输系统设计_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    嵌入式网络终端的语音传输系统设计    嵌入式网络终端的语音传输系统设计    类别:电子综合      引言 嵌入式系统因其满足系统对功能、可靠性、成本、体积、功耗的要求,已经被广泛地应用在交通、商业金融、工业控制、医疗等各个领域。目前,嵌入式网络应用技术已经成为了国际研究的热点技术,许多IT行业的公司也都在研发相应的嵌入式网络终端。    电话是人们最常使用的交流工

2、具,随着互联网的迅速发展,基于IP网络的语音通信成为了人们研究的热点。传统电话的语音传输质量和可靠性都很好,但资费较高,特别是打国际长途时;而基于IP网络的语音通信由于是在Internet上传输信号,大大节省了通信线路的成本,从而降低了VOIP资费,使其拥有了巨大的市场潜力。 目前,VOIP系统现有的终端软件,如Skype、UUCall、KC、Mierosoft公司的Netmeeting等,都是基于PC机的,难以运行在嵌入式网络终端这种资源有限的设备上。同时,许多类库中的函数在PC机上可以正常运行,而WinCE嵌入式操作系统却不支持,因此不能直接对VOIP系统现有的终端软件进行简单的裁剪。 1

3、 嵌入式网络终端的硬件设计 11 系统硬件结构 如图1所示,系统由嵌入式网络终端、电源模块、以太网口模块、串口和USB接口模块、显示模块(触摸屏)、语音采集和播放模块、外部数据存储模块以及系统工作状态指示和接口模块构成。其中,嵌入式网络终端采用三星公司专门针对手持设备而设计的S3C2440A-40微处理器。 12 语音采集和播放模块 语音采集和播放模块的作用是将音频模拟信号转换为数字信号,并对信号进行PCM编码。其电路如图2所示。采用Philips公司的UDA1341 TS型立体声音频CODEC进行音频编解码。该芯片提供2个麦克风输入,可实现单端输入、差分输入等灵活配置,并设置了可编程增益放大

4、器和自动增益控制器,可保证高质量的音频获取;同时,还集成了听筒和喇叭输出的驱动器,喇叭音量可以通过编程调整。S3C2440A-40微处理器与UDA1341TS编解码器通过I2S总线直接相连,并采用DMA发送接收方式,完成系统的录音和放音。 13 嵌入式操作系统 嵌入式操作系统采用了微软公司研发的WinCE。它是一款功能强大的32位嵌入式实时操作系统,具有多线程、多任务、完全抢占式的特点,是专为各种受到严格资源限制的硬件系统所设计的。WinCE支持多种硬件外围设备,同时内置的标准通信能力使WinCE能够访问Internet并收发E-mail或浏览Web。除此之外,WinCE特有的与Windows

5、类似的用户界面使最终用户易于使用。 2 VOIP技术 21 VOIP的基本原理 VOIP(Voice Over Internet Protocol)是以IP分组交换网络为传输平台,通过语音压缩算法对语音数据进行压缩编码处理,然后把这些语音数据按IP等相关协议进行打包,经过IP网络把数据包传输到接收地,再把这些语音数据包串起来,经过解码解压处理后恢复成原来的语音信号,从而达到由IP网络传送语音的目的。其特点是可以将一路语音数据压缩为8 kbs甚至更低,同时可使用户不需要独占医疗线路资源,从而提高了线路利用率,并大大降低了资费成本。 22 VOIP协议 VOIP技术中最主要的两种呼叫控制协议为H3

6、23协议和SIP协议。H323是ITU的一个标准协议簇,制定了无服务质量保证的分组网络(PBN)上的多媒体通信系统标准,已在VOIP领域的到了广泛的应用,呼叫建立比较复杂。SIP协议是由IETF(国际互联网标准制定组织)制定的面向Internet会议和电话的信令协议,参照了HTTP和SMTP协议,呼叫控制在终端完成,呼叫建立相对简单。 23 语音压缩编码技术 语音压缩编码技术是VOIP技术的核心,其目的就是在保证语音音质和可懂的条件下,采用尽可能少的比特数来表示语音。常用的语音编码方式有G7231、G729、G729A等,其中G729可将采样为64 kbs的话音以几乎不失真的质量压缩至8kbs

7、。本设计采用了G729方式的语音压缩算法,结合实时传输协议RTP和UDP网络传输技术来实现语音传输。 3 系统设计 31 终端软件的功能模块 终端软件功能模块如图3所示。此终端软件可为用户提供良好的交互界面。 32 VOIP终端软件主流程 用户打开终端软件,可以根据自己的需要选择语音聊天、文本聊天或者收发邮件。进行语音聊天前,用户可以直接在好友栏中选择聊天对象,也可直接输入对方的IP进行连接。语音聊天的过程是:说话方,麦克风采集模拟语音信号语音芯片采集量化编码嵌入式系统对信号进行压缩编码RTP格式打包UDP格式打包IP格式打包Internet网络传输;收听方,接收语音数据去IPUDPRTP包头

8、嵌入式系统对信号解码语音芯片将数字语音信号转为模拟信号扬声器播放。 4 系统实现 41 语音采集和播放 语音信号的采集分为从网络上采集数据和从音频编解码器中获取数据。主要函数包括:语音采集函数VoiceCapture(),用线程控制语音采集函数Thread Voice Capture(),创建用于播放的音频设备对象函数Play Device(),创建音频捕捉设备对象函数Caputer Device(),创建音频捕捉缓冲区对象函数Capture Buffer(),创建辅助缓冲区函数Secondary Buffer(),音频格式设置函数Set Wave Format(),通知事件触发函数Notif

9、ication(),停止语音采集函数Voice Stop(),从字节数组中获取音频数据并进行播放函数Get VoiceData()以及语音采集初始化函数Initialize Voiee()。 411 Get Voice Data()函数 具体流程如图4所示。从网络上获取的数据实际是由Local SocketBegin Receive From()函数提取网络数据,再经接收数据函数转移给Get Voice Data()函数,Get Voice Data()函数提取后放入语音缓冲区供音频编解码器提取并播放。Get Voice Data()函数首先用支持存储区为内存的流Memory Stream从缓

10、冲区读取数据byte Receive,将字节块写入当前流: Memory StreamWrite(byte Receive,0,intReceive) 当流中存储的数据达到一定数据量时就播放语音:SecondaryBufferWrite(0,Memory Stream,int Postion Write-in-tPostioPlay,LockFlagFrom Write Cursor)Secondary BufferPlay(0,Buffer Play FlagsDefault) 412 采集音频编码器语音数据 从音频编解码器中获取数据时,首先通过UDA1341TS采集语音信号放入语音捕捉缓存

11、区,应用程序再从语音捕捉缓冲获取语音信号并发送。具体程序流程如图5所示。 图5 从音频编解码器中获取数据流程 42 语音传输 语音传输是主要包含函数Listen(),数据发送函数SendVoice(),数据接收函数Receive Data(),绑定自己IP和端口函数BindSelf(),远程终端IP端口设置函数SetRemoteIPEnd()、线程关闭函数ThreadStop()函数和初始化函数InitVoice()。 421 函数 函数负责远程计算机发送到本机的信息。每隔一定时间查询一下网络,如果有可读的数据就接收:LocalSocketBeginRecei-veFrom(byteData,0,byteDataLength,SocketFlagsNone,ref endPoint,new AsyncCallback(ReceiveData),null)并且将此线程设置为后台线程,以便当主线程关闭时,此线程能自动结束。 422 数据发送函数 数据发送函数的作用是将语音捕捉缓冲区的数据通过ClientSendTo(CaptureData,EndPoint)函数发送到网络上。当线程发现有数据要读取(即线程被触发)时,就会循环调用数据发送函数,直到没有可读的数据为止。CaptureBuffer为语音捕捉缓冲区对象。数据发送流程如图6所示。 423 数据接收函数 数据接

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论