基于数字信号处理器与以太网传输的远程语音网络通信技术

   2023-07-11 互联网3080
核心提示:  1 引言  本系统主要功能是通过dsp5416(数字信号处理器)采集语音信号并利用以太网传输实现远程的网络语音通信,可用于远程网

  1 引言

  本系统主要功能是通过dsp5416(数字信号处理器)采集语音信号并利用以太网传输实现远程的网络语音通信,可用于远程网络电话通信等场合。系统设计包括以下主要部分:语音的采集和播放;以太网传输部分;语音存储和处理。系统组成见图1。

  图1 系统总体图

  2 系统硬件设计

  2.1 dsp的以太网接口设计

  (1) dsp

  tms320vc5416是ti公司推出的一款高性能定点dsp,应用一种高性能修正哈佛体系结构,具有专用的指令集,具有强大的运算能力、高度的并行性和良好的灵活性。程序与数据分开存放,内部具有8条高速并行的总线。片上集成有128k字的数据存储器和16k字的程序存储器以及专门用途的的硬件逻辑, 同时还集成有dma控制器、主机接口(hpi)、中断选择器等外设能够方便快速地同外部设备进行数据交换。再加上采用模块化的设计以及先进的集成工艺,芯 片的功耗小,具有很强的数字处理能力,目前广泛应用于语音处理等数字信号处理场合[1][2]。

  (2) 太网控制器

  rtl8019as是台湾realtek公司生产的以太网控制器,支持ieee802.3;支持8位或16位数据总线;内置16k的sram,用于收发缓冲,全双工,达到10mbps;提供100脚的tqfp封装,其主要引脚功能如附表所示。它与主机有3种接口模式,即跳线模式,pnp模式和rt模式。

  附表 rtl8019as部分引脚

  ●跳线模式

  这种模式与早期网络控制器兼容。rtl8019as的端口基地址、中断口等都由开关或跳线器决定,跳线模式简单,但配置资源麻烦。

  ●pnp 模式

  与微软的pnp协议兼容。在这种模式下,rtl8019的端口基地址、中断口等都由eeprom93c46设定,但需要进行pnp芯片的识 别,不便与dsp接口。

  ●rt模式

  为了避免pnp模式下的芯片识别和配置过程,re- altek公司提供rt模式。在rt模式下,rtl8019as的端口基地址、中断口等也是由eeprom93c46设定的。[3]

  (3) 设计

  为了简化dsp网络接口的软、硬件设计,不使用远程自举加载功能,并且选用跳线接口模式,用c5416的扩展i/o口代替跳线器对rtl8019as进行 初始化配置,这样既省去了eeprom,又避免了跳线器配置资源的麻烦。

  另外,考虑到系统的通用性,本系统采用ide接口将网卡网络接口与dsp系统分开,这样可以将网卡单独做成一个查检,使用中一旦发现网卡出现故障,可以更换网卡不需要更换整个系统板。如图2、图3所示。

  图2 vc5416与ide接口

  图3 rtl8019与ide接口

  (4) 设计说明

  ●选择rtl8019为跳线模式,将其jp引脚经10k电阻上拉到5v电 源上。

  ●smemrb/smemwb 这2个信号是主机对网卡的共享存储器进行读写时的控制信号,这里将其接高电平,屏蔽了远程自举加载功能。

  ●地址线sa19-sa0,选择基地址为300h,将sa6-sa19接地,sa5接ide_cs,将其配置到dsp的i/o空间。

  ●需要注意的是,rtl8019as的中断请求信号是高电平有效,而dsp的中断请求输入信号是低电平有效,所以在int0接入dsp的int1前要经过逻辑反向。

  ●iocs16 接到高电平使它工作在16位数据总线方式。其逻辑关系为:

  /ior=~r/w+/is+/iostrb;

  /iow=r/w+/is+/iostrb;

  ready=iochrdy;

  /int1=~int0;

  2.2 语音采集设计

  由于tms320c5416的串行口时序可以软件编程,这为与CODec接口提供了极大的方便。语音信号的a/d,d/a转换及编解码功能是利用 mc14lc5480完成的。mc14lc5480是摩托罗拉专门用于语音处理和ip电话的芯片,内置13位a/d和d/a,pcm编码器和模拟滤波器, 具有平衡输入、输出功能,增加抗噪声性能,输出可直接推动350欧的扬声器,功耗低。mc14lc5480与c5416的接口线包括数据输入输出(dr和 dt),主时钟线(mclk),收发时钟线(bclkr和bclkt)和收发帧同步时钟线(fsr和fsx)。

  mc14lc5480与codec与tms320c5416的硬件接口电路如图4所示。

  图4 mcbsp与mc14lc5480接口电路

  3 系统软件设计

  本系统是基于网络传输的,tcp/ip协议栈可以兼容多种网络技术。本系统软件设计主要任务就是网卡的初始化程序、dsp对mc14lc5480的控制和 tcp/ip协议的实现。

  3.1 tcp/ip协议的简化及其本系统的实现

  tcp/ip协议是一组完整的网络协议栈,用于实现不同的网络结构和不同的操作系统之间的互连,已成为工业标准。

  (1) tcp/ip协议各层功能[4]:

  ●应用层:应用层向用户提供一组常用的应用程序,它包含tcp/ip协议中的所有高层协议,如:虚拟终端协议(telnet)、文件传输协议(ftp)、电子邮件协议(smtp)、域名系统服务(dns)、和超文本传输协议(http)等。

  ●传输层

  传输层提供面向连接的数据传输,确保源主机传送的数据报正确的到达目标主机。传输层提供两个协议:tcp协议和udp协议。tcp协议提供端到端的可靠性高的数据传输。udp协议只是提供简单的把数据从一端发送到另一端的服务。

  ●网络层

  负责相邻计算机之间的通信。处理来自传输层的分组发送请求,收到请求后将分组装入ip数据报,填充报头,选择路径将数据报发到目标接口。处理输入输入数据 报,首先检查其合法性,去掉报头,将其余部分传送给适当的协。

  ●链路层

  实现本层协议,是tcp/ip协议与各种物理网络之间的接口。

  通常pc机上实现了比较完整地tcp/ip协议,而在dsp系统中由于运算速度和内存的限制,不可能支持所有的协议,一般只实现需要的部分,可以根据硬件的具体情况和实现的需求进行必要的简化。结合本系统,在传输层选择udp协议。另外在网络层必须实现arp、ip协议。

  (2) 主程序流程图

  如图5所示。

  图5 tcp/ip协议主程序流程图

  (3) 函数调用

  当dsp接到正确的以太网数据包以后,调用recevie _process,如果是arp请求,则发送一个arp应答;如果是arp应答,则把对方的ip地址和以太网地址放到arp缓存中,如果是ip包,则调用 ip处理模块处理。该函数如下:

  receive_process:

  arp: cmpm *(rxbuf.ethernet.protocal),#0x0608;判断是否是arp协议

  nop

  nop

  bc ip,ntc

  call arp_process

  st #askfree,*(task)

  b taskfree

  ip: cmpm *(rxbuf.ethernet.protocal),#0x0008;判断是否是ip协议

  nop

  nop

  cc ip_process,tc

  st #taskfree,*(task)

  b taskfree

  当接收到ip数据包后,判断该协议类型,如果是17,则是udp协议,调用udp_process处理,系统会给上位机一个应答信息,发送数据包前首先进行协议封装,调用create_ip_PACket函数完成数据包的封装。最后调用send_packet函数完成发送。该函数如下:

  create_ip_packet:

  st #0x0045,*(txbuf.ip.verh1)

  st #0x0,*(txbuf.ip.crc)

  addm #0x0800,*(txbuf.ip.frameindex)

  st #0x1234,*(txbuf.ip.frameindex)

  st #0x0040,*(txbuf.ip.segment)

  ldu *(send_packet_len),a

  add #10,a

  stl a,1,*(send_packet_len)

  ld a,1,a

  stl a,-8,*(txbuf.ip.len)

  ld a,8,a

  add *(txbuf.ip.len),a

  stl a,*(txbuf.ip.len)

  call create_tx_ipcrc

  addm #14,*(send_packet_len)

  call send_packet

  3.2 dsp对网卡的控制

  配置命令寄存器cr:将该寄存器设为22h,禁止dma操作,将页0作当前页。

  配置数据配置寄存器pstart和pstop:分别设置为4ch和80h,表示接收缓冲区的地址从4ch到7fh页。其中80h是停止页,不包括在接收缓 冲区中。

  配置边界寄存器bnry:设置为40h,表示发送缓冲区从40h开始。

  配置传送页面开始寄存器tpsr:设置位40h,表示传送数据包开始页面地址。

  配置发送字节计数器tbcr0和tbcr1:预置为0。

  配置接收配置寄存器rcr:设置为cch,表示长度小于64字节的数据报和收到错误信息的数据包被拒绝。

  配置发送配置寄存器tcr:设置为e0h,表示工作在正常工作模式下,发送帧后添加crc校验码。

  配置数据配置寄存器dcr:设置为c8h,表示以16位dma数据传输。

  对rtl8019接收数据操作有中断两种方式。本设计选用中断方式,控制器每收到一个完整的以太网数据包后,向cpu发送中断请求,cpu响应 rtl80


 
举报收藏 0打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  隐私政策  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅