新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ARM9的嵌入式网络语音终端系统设计

基于ARM9的嵌入式网络语音终端系统设计

作者:时间:2016-09-12来源:网络收藏
基于ARM9的嵌入式网络语音终端系统设计

其录音与播放过程都采用双缓存设计方案,以录音为例,程序流程图如图5所示。

基于ARM9的嵌入式网络语音终端系统设计

2.3 网络通信模块

处理器首先将从麦克风采样的数据信号封装成规定格式(其封装步骤如图6所示,封装到14字节以太网层),然后把封装好的数据交给DM 9000CEP驱动部分的发送函数dm_tran_packet(unsigned char*datas,intlength),通过设置TCR的发送请求位将数据发送出去,数据发送过程就是对数据打包的过程。而数据的接收是通过DM9000CEP的网络中断函数DM9000ISR()进行的,每接到一个数据包将会产生一个中断,进入中断处理函数,按规定的格式从数据包中取出其语音数据,之后数据经处理器处理送到扬声器上播放外音。网络各层数据封装如图6所示。

基于ARM9的嵌入式网络语音终端系统设计

语音数据进行封装之后,不管是发送数据帧还是接收数据帧,都需要底层驱动函数提供服务,本文以发送数据帧为例,简述底层驱动原理,在发送数据和接收数据过程中,特别需要注意的是关闭网卡中断,以防打断数据处理过程。DM9000CEP内部有3 KB的SRAM用于

发送数据缓存。在发送之前,数据是暂存在这个SRAM中的。当需要连续发送时,需要用DM9000CEP寄存器MWCMD赋予数据端口,这样就指定了SRAM中的某个地址,并且在传输完一个数据后,指针会指向SRAM中的下一个地址,从而达到连续访问数据的目的。如果在此过程中到达发送数据缓冲区末尾,指针将折回缓冲区的开头。发送数据帧的流程图如图7所示。

基于ARM9的嵌入式网络语音终端系统设计

3 终端语音测试结果

使用ADS软件将程序编译成可执行文件,下载到语音终端A和B上。在两个终端分别接上麦克风和耳麦进行话音通信,通过实验验证了系统可以进行清晰的语音对话。另外,可将终端A的麦克风接口与函数信号发生器相接,终端B的扬声器接口与示波器相连。函数信号发生器将正弦信号送给终端A,其频率为1 kHz,幅度为100mVpp。在示波器上可以看到经放大的正弦信号,其输出信号波形如图8所示。测试结果表明,该终端系统可以应用于远程通信。

基于ARM9的嵌入式网络语音终端系统设计

结语

本文作者利用嵌入式技术开发的终端具有可靠性高、控制界面强大以及可扩展性好的特点,使该终端可不通过计算机、直接连上网络进行数据传输,能充分利用现有网络通道实现快捷的语音通话。


上一页 1 2 下一页

关键词: 网络语音 网卡 音频

评论


相关推荐

技术专区

关闭