当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]嵌入式网络终端的语音传输系统设计


摘要:根据嵌入式网络终端的特点及VOIP技术原理,设计了一款基于WinCE的嵌入式语音传输系统。此系统实现了嵌入式网络终端之间的语音通信,以及网络终端和PC机之间的语音通信功能,具有较强的可扩展性。
关键词:嵌入式网络终端;语音;VOIP;WinCE

引言
    嵌入式系统因其满足系统对功能、可靠性、成本、体积、功耗的要求,已经被广泛地应用在交通、商业/金融、工业控制、医疗等各个领域。目前,嵌入式网络应用技术已经成为了国际研究的热点技术,许多IT行业的公司也都在研发相应的嵌入式网络终端。
    电话是人们最常使用的交流工具,随着互联网的迅速发展,基于IP网络的语音通信成为了人们研究的热点。传统电话的语音传输质量和可靠性都很好,但资费较高,特别是打国际长途时;而基于IP网络的语音通信由于是在Internet上传输信号,大大节省了通信线路的成本,从而降低了VOIP资费,使其拥有了巨大的市场潜力。
    目前,VOIP系统现有的终端软件,如Skype网络电话、UUCall网络电话、KC网络电话、Mierosoft公司的Netmeeting等,都是基于PC机的,难以运行在嵌入式网络终端这种资源有限的设备上。同时,许多类库中的函数在PC机上可以正常运行,而WinCE嵌入式操作系统却不支持,因此不能直接对VOIP系统现有的终端软件进行简单的裁剪。

1 嵌入式网络终端的硬件设计
1.1 系统硬件结构
    如图1所示,系统由嵌入式网络终端、电源模块、以太网口模块、串口和USB接口模块、显示模块(触摸屏)、语音采集和播放模块、外部数据存储模块以及系统工作状态指示和接口模块构成。其中,嵌入式网络终端采用三星公司专门针对手持设备而设计的S3C2440A-40微处理器。


1.2 语音采集和播放模块
    语音采集和播放模块的作用是将音频模拟信号转换为数字信号,并对信号进行PCM编码。其电路如图2所示。采用Philips公司的UDA1341 TS型立体声音频CODEC进行音频编解码。该芯片提供2个麦克风输入,可实现单端输入、差分输入等灵活配置,并设置了可编程增益放大器和自动增益控制器,可保证高质量的音频获取;同时,还集成了听筒和喇叭输出的驱动器,喇叭音量可以通过编程调整。S3C2440A-40微处理器与UDA1341TS编解码器通过I2S总线直接相连,并采用DMA发送/接收方式,完成系统的录音和放音。


1.3 嵌入式操作系统
    嵌入式操作系统采用了微软公司研发的WinCE。它是一款功能强大的32位嵌入式实时操作系统,具有多线程、多任务、完全抢占式的特点,是专为各种受到严格资源限制的硬件系统所设计的。WinCE支持多种硬件外围设备,同时内置的标准通信能力使WinCE能够访问Internet并收发E-mail或浏览Web。除此之外,WinCE特有的与Windows类似的用户界面使最终用户易于使用。

2 VOIP技术
2.1 VOIP的基本原理
    VOIP(Voice Over Internet Protocol)是以IP分组交换网络为传输平台,通过语音压缩算法对语音数据进行压缩编码处理,然后把这些语音数据按IP等相关协议进行打包,经过IP网络把数据包传输到接收地,再把这些语音数据包串起来,经过解码解压处理后恢复成原来的语音信号,从而达到由IP网络传送语音的目的。其特点是可以将一路语音数据压缩为8 kb/s甚至更低,同时可使用户不需要独占医疗线路资源,从而提高了线路利用率,并大大降低了资费成本。
2.2 VOIP协议
    VOIP技术中最主要的两种呼叫控制协议为H.323协议和SIP协议。H.323是ITU的一个标准协议簇,制定了无服务质量保证的分组网络(PBN)上的多媒体通信系统标准,已在VOIP领域的到了广泛的应用,呼叫建立比较复杂。SIP协议是由IETF(国际互联网标准制定组织)制定的面向Internet会议和电话的信令协议,参照了HTTP和SMTP协议,呼叫控制在终端完成,呼叫建立相对简单。
2.3 语音压缩编码技术
    语音压缩编码技术是VOIP技术的核心,其目的就是在保证语音音质和可懂的条件下,采用尽可能少的比特数来表示语音。常用的语音编码方式有G.723.1、G.729、G.729A等,其中G.729可将采样为64 kb/s的话音以几乎不失真的质量压缩至8kb/s。本设计采用了G.729方式的语音压缩算法,结合实时传输协议RTP和UDP网络传输技术来实现语音传输。

[!--empirenews.page--]

3 系统设计
3.1 终端软件的功能模块
    终端软件功能模块如图3所示。此终端软件可为用户提供良好的交互界面。


3.2 VOIP终端软件主流程
    用户打开终端软件,可以根据自己的需要选择语音聊天、文本聊天或者收发邮件。进行语音聊天前,用户可以直接在好友栏中选择聊天对象,也可直接输入对方的IP进行连接。语音聊天的过程是:说话方,麦克风采集模拟语音信号→语音芯片采集量化编码→嵌入式系统对信号进行压缩编码→RTP格式打包→UDP格式打包→IP格式打包→Internet网络传输;收听方,接收语音数据→去IP/UDP/RTP包头→嵌入式系统对信号解码→语音芯片将数字语音信号转为模拟信号→扬声器播放。

4 系统实现
4.1 语音采集和播放
    语音信号的采集分为从网络上采集数据和从音频编解码器中获取数据。主要函数包括:语音采集函数VoiceCapture(),用线程控制语音采集函数Thread Voice Capture(),创建用于播放的音频设备对象函数Play Device(),创建音频捕捉设备对象函数Caputer Device(),创建音频捕捉缓冲区对象函数Capture Buffer(),创建辅助缓冲区函数Secondary Buffer(),音频格式设置函数Set Wave Format(),通知事件触发函数Notification(),停止语音采集函数Voice Stop(),从字节数组中获取音频数据并进行播放函数Get VoiceData()以及语音采集初始化函数Initialize Voiee()。
4.1.1 Get Voice Data()函数
    具体流程如图4所示。从网络上获取的数据实际是由Local Socket.Begin Receive From()函数提取网络数据,再经接收数据函数转移给Get Voice Data()函数,Get Voice Data()函数提取后放入语音缓冲区供音频编解码器提取并播放。Get Voice Data()函数首先用支持存储区为内存的流Memory Stream从缓冲区读取数据byte Receive,将字节块写入当前流:
    Memory Stream.Write(byte Receive,0,intReceive)


    当流中存储的数据达到一定数据量时就播放语音:SecondaryBuffer.Write(0,Memory Stream,int Postion Write-in-tPostioPlay,LockFlag.From Write Cursor)Secondary Buffer.Play(0,Buffer Play Flags.Default)
4.1.2 采集音频编码器语音数据
    从音频编解码器中获取数据时,首先通过UDA1341TS采集语音信号放入语音捕捉缓存区,应用程序再从语音捕捉缓冲获取语音信号并发送。具体程序流程如图5所示。

[!--empirenews.page--]


4.2 语音传输
    语音传输是主要包含监听函数Listen(),数据发送函数SendVoice(),数据接收函数Receive Data(),绑定自己IP和端口函数BindSelf(),远程终端IP端口设置函数SetRemoteIPEnd()、线程关闭函数ThreadStop()函数和初始化函数InitVoice()。
4.2.1 监听函数
    监听函数负责监听远程计算机发送到本机的信息。每隔一定时间查询一下网络,如果有可读的数据就接收:LocalSocket.BeginRecei-veFrom(byteData,0,byteData.Length,SocketFlags.None,ref endPoint,new AsyncCallback(ReceiveData),null)并且将此线程设置为后台线程,以便当主线程关闭时,此线程能自动结束。
4.2.2 数据发送函数
    数据发送函数的作用是将语音捕捉缓冲区的数据通过Client.SendTo(CaptureData,EndPoint)函数发送到网络上。当线程发现有数据要读取(即线程被触发)时,就会循环调用数据发送函数,直到没有可读的数据为止。CaptureBuffer为语音捕捉缓冲区对象。数据发送流程如图6所示。


4.2.3 数据接收函数
    数据接收函数的功能主要是调用GetVoiceData()函数从网络中接收语音数据并放入缓冲区。代码如下:



结语
    以Internet为标志的嵌入式系统是嵌入式系统发展的第四阶段。本文在基于ARM+网卡芯片+UDA1341TS音频编解码芯片模式的硬件平台实现与网络资源的对接及语音采集和播放的基础上,开发了基于WinCE嵌入式操作系统的VOIP系统终端软件,实现了网络终端间的语音通信。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭