当前位置:首页 > 模拟 > 模拟
[导读]一种运行测试G.723.1、G.729等常用低码率语音压缩标准算法的硬件平台的设计方法。使用浮点型DSP TMS320C6713做编解码处理器,EZ-USB FX2系列芯片CY7C68013作为主机通信和引导接口。具有高速、实时、稳定及支持软件升级等特点。

本系统使用TI公司浮点型DSP TMS320C6713实现G.723.1等语音编解码,为G.723.1、G.729等常用的低码率语音压缩标准提供运行及测试硬件平台。有别于大多数编解码系统,本设计采用了性能更好的浮点型处理器和20位以上的数模模数转换器,总线带宽提高为16位,并采用主控性更强的HPI 接口。系统设计具有以下优势:(1)数据的传输通过USB口完成,完全支持速度在5.3 Kb/s或6.3 Kb/s的多路编码输出,方便用户使用,并可使用USB独立供电。(2)利用USB控制芯片的GPIF模式与DSP连接,程序简单、修改灵活。(3)采用主频300 MHz、处理速度2 400 MIPS/1 800 MFLOPS的TMS320C6713,可以使每帧数据的处理时间小于37 ms的帧延迟,满足系统运行的实时性。(4)数据的传送工作交由USB控制芯片68013完成,可使DSP从繁琐的数据搬运及USB协议处理工作中独立出来,使更多的资源用于数据处理。(5)采用由主机加载固件的方法,节省数据处理端的硬件与软件资源,而且便于固件的更新升级。(6)采用DSP中的外设接口HPI与主机相连,由主机掌握主控权,既能够使数据访问得到简化还可以通过HPI实现DSP自举。
1 基本概念介绍
1.1 CY7C68013性能特点
  CY7C68013(EZ-USB FX2)是Cypress半导体公司的新一代高速USB系列,可以用USB2.0最大数据传输率传输数据。该芯片基于EZ-USB FX芯片开发,集成有发送器、SIE、8051微控制器、存储器和可编程IO接口,是一种完全集成的USB2.0方案[2]。
1.2 G.723.1简介
  G.723.1是一种低码率语音压缩标准,是H.324标准系列的一部分,也是VoIP的常用解决方案之一,可在低比特率通信终端(PSTN和无线网络)上进行多媒体通信。使用G.723.1标准能够将8 kHz采样l6 bit的线性PCM语音信号压缩成6.3 Kb/s或5.3 Kb/s的比特流,其压缩比例较高,占用带宽较低,而且具有很好的音质。
2 硬件设计
2.1 TMS320C6713外设接口HPI
  TMS320C6713是一款高性能的32位浮点DSP,适用于专业音频信号处理。HPI即主机接口,是TMS320C6713片上集成的外设接口之一。通过HPI 可以方便地实现多处理器系统,外部处理器作为主处理器,DSP作为从处理器。通过HPI 接口,外部主机可以访问DSP除L2控制寄存器、中断选择寄存器、仿真逻辑之外的全部存储器映射空间。
2.2 读写时序
  本实验采用CY7C68013和TMS320C6713芯片。在GPIF接口部分,IFCLK设置为48 MHz内部时钟,使用16位宽的数据总线(设置WORDWIDE=1),分配CTL[2:0]控制HPI的时序。使用GPIF Tool生成波形描述符,分别用于HPIC/HPIA/HPID的读写控制。值得注意的是:由于HDS1*/HDS2*/HCS*相关,可以使HCS*有效,HDS2*置“1”,并通过HDS1*控制选通;HHWIL控制传输的是第一半字还是第二半字;HCNTL[1:0]决定哪个寄存器正被访问[3]。由于采用DIN连接器,其传输速率最高可达几十兆赫兹,这也是其传输瓶颈。如果采用手工单独装配的SMA硬件连接器,其硬件连接的速度完全可以满足GPIF和HPI的要求。当然,前者每个引脚的成本不到后者的百分之一[1]。图1为GPIF和HPI读写HPID寄存器的时序关系图。


  通过FX2固件、利用非GPIF I/O信号引脚可实现更多的信号输出。使用DM74LS573N锁存器,采用数据锁存的办法可以减小由布局布线等原因带来的互感、串联电感、寄生电容等减缓信号传播的影响,在硬件测试阶段能够有效解决传输误码的问题。由于74LS573的传输延迟,系统的可靠性建立在牺牲系统带宽的基础上。改用74LVC16245双向缓冲器,可以实现GPIF主控的数据读、写功能。图2为带锁存器的GPIF和HPI读写HPID寄存器的时序关系图。

2.3 硬件连线
  系统整体硬件连线示意图如图3。

  图4为带锁存器的GPIF和HPI硬件连线示意图。

3 软件设计
  此方案包括4个方面的程序设计:固件程序、驱动程序、主机应用程序和DSP数据处理程序。
3.1 固件程序
  固件程序是指运行在CY7C68013 51内核中的程序,主要包括设备描述符信息、设备功能代码和USB同DSP处理器间的通信控制功能代码。对于使用GPIF的FX2系统,固件还应能够分配FIFO读和写波形到4个FIFO中的任何一个。
3.1.1 固件程序设计
  固件程序开发基于KEIL C51,使用Cypress公司提供的固件函数库Ezusb.lib和固件框架以提高开发效率。固件函数库提供了一系列与USB协议有关的函数,固件框架已经实现了初始化、重枚举、电源管理等功能。
  固件程序由以下文件组成[5]:
  FX2.h  共同的FX2常数、宏、数据类型以及函 数库内库函数的原型框架。
  FX2regs.h   FX2寄存器的声明及位屏蔽常数
  Fw.c    框架源代码
  Ti6713HPI2cy13.c  用户函数挂钩的相关定义
  Gpif.c    由GPIF_Designer生成,用以匹配HPIC、HPIA、HPID时序
  Dscr.a51 USB 描述符表的范例
  Ezusb.lib   EZ-USB 函数库目标代码
  USBJmpTb.OBJ USB中断向量表和GPIF中断源
  其中Fw.c、Ti6713HPI2cy13.c和Gpif.c是固件程序的核心内容。
  在Fw.c中主要包括任务分配器(TD)函数和设备请求(DR)函数。Ti6713HPI2cy13.c中定义这些关键函数。Gpif.c由GPIF_Designer生成,本设计将GPIF_Designer的4组波形分别定义为:第一半字写、第二半字写、FIFO写和FIFO读。其中前两组波形配合任务分配器函数TD_Poll()完成DSP中寄存器HPIC和HPIA的写,后两组波形配合TD_Poll()完成自增模式下HPID的读写。波形的设计要严格遵守HPI总线访问时序。
 在TD_Init()中设置整体状态变量的初始值并规定各种端点资源的使用(包含中断)以及配置外围接口的输入输出。为匹配HPI通信所需数据总线宽度,寄存器EPxFIFOCFG中 WORDWIDE位置1。PORTB配置为FD[7:0],PORTD配置为FD[15:8]。为了达到最大的USB2.0带宽,设计中将AUTOOUT/AUTOIN位置1。主机与主控制器被直接连接,CPU被旁路,OUT FIFO自动从主机提交到FIFO。
  TD_Init()定义中的程序片段:
   ……
  EP2CFG=0xA0;  //端点2可用、输出、数据流、512 B、
            //4倍缓冲模式
  SYNCDELAY;
  EP4CFG=0x00;  //端点4不可用
  SYNCDELAY;
  EP6CFG=0xE0;  //端点2可用、输入、数据流、512 B、4倍缓冲模式
  SYNCDELAY;
  EP8CFG=0x00;  //端点8不可用
  SYNCDELAY;
  FIFORESET=0x80; //暂不接受主机请求
  SYNCDELAY;
  FIFORESET=0x02; //将EP2 FIFO恢复为缺省状态
  SYNCDELAY;
  FIFORESET=0x06; //将EP6 FIFO恢复为缺省状态
  SYNCDELAY;
  FIFORESET=0x00;  //重新开放主机请求
  SYNCDELAY;
  EP2FIFOCFG=0x01; //
  SYNCDELAY;
  EP2FIFOCFG=0x11;  //数据宽度16 bit、AUTOOUT模式
  SYNCDELAY;
  EP6FIFOCFG=0x09;  //数据宽度16 bit、AUTOIN模式
  SYNCDELAY;
   ……
  TD_Poll()中最核心部分在于完成写HPIC寄存器、写HPIA寄存器、以自增模式读写HPID。
  (1)写HPIC寄存器。
  EP0BCL=0;     //激活EP0缓冲器以接收主机的下一个请求
  while(EP01STAT & bmEP0BSY);//等待EP0空闲可用
  while(!HPI_RDY);  //等待HPI准备好接收数据
  IOA=bmHPIC;    //PA2、PA3选通HPIC
  GPIFWFSELECT=0xB9;  //选择写入第一个半字的GPIF波形
  GPIF_SingleByteWrite(EP0BUF[0],EP0BUF[1]);
                //写入一个16 bit半字
  其中GPIF_SingleByteWrite()定义为:
  void GPIF_SingleByteWrite(BYTE gdatah,BYTE gdatal)
  {
   while( !(GPIFTRIG & 0x80) ) {;} //轮询GPIFTRIG.7
                   //Done位查看上一次事务是否完成
  XGPIFSGLDATLX=gdatal; //高8位写入XGPIFSGLDATLX
  XGPIFSGLDATH=gdatah; //低8位写入XGPIFSGLDATH
  }
  对于16位模式,把高8位写入XGPIFSGLDATLX,低8位写入XGPIFSGLDATH就可以自动启动一个单向写事务。当这个事务完成时,GPIFTRIG.7 Done置1,触发GPIFdone中断,68013使XGPIFSGLDATLX和XGPIFSGLDATH中的数据出现在16位数据总线FD[15:0]上。
  (2)写HPIA寄存器。
  与写HPIC基本相同,只是将IOA=bmHPIA,使PA2、PA3选通HPIA。
  (3)自增模式下写HPID。
  if(GPIFTRIG & 0x80)      //检查当前GIPF是否空闲
  {
  if (!(EP24FIFOFLGS & 0x02 ) )  //检查外围是否有
                  //数据等待传入EP2,EP2非空
   {
  IOA=bmHPID_AUTO;     //PA2、PA3选通自增模式HPID
  while(!HPI_RDY);       //等待HPI准备好传输数据
  SYNCDELAY;
  GPIFTCB1=EP2FIFOBCH;
  SYNCDELAY;
  GPIFTCB0=EP2FIFOBCL;   //将EP2FIFO中字节数设置为TC的值
  SYNCDELAY;
  GPIFTRIG=GPIF_EP2;     //写寄存器GPIFTRIG触发 EP2 OUT事务
  SYNCDELAY;
  while( !( GPIFTRIG & 0x80 ) );  //等待本次事务处理完毕
  SYNCDELAY;
      }
   }
  (4)自增模式下读HPID。
  与自增模式下写HPID写过程基本相同。不同点在于:事务计数器的值不是端点6中字节的个数,而是应当由主机方通过控制端点EP0告知FX2;读EP6前要检查EP6 FIFO非满,触发时将GPIFTRIG设置成EP6IN。
3.1.2 固件代码的存储位置
  本设计将固件代码存在主机中,设备上电以后由下面要介绍的驱动程序将固件下载到FX2片内RAM后执行,这一过程也就是重枚举。这种方法便于系统的调试和升级,用户可以根据自己的需要将相应驱动下载到PC上,从而使设备呈现出不同的属性功能,并可以进行适当的软升级。这种方法对片外EEPROM或ROM的存储空间要求很低,便于实现,使用灵活。
  另外还可以把固件代码固化到一片EEPROM中,上电后FX2通过I2C总线下载到片内RAM后执行;或者把程序固化到一片ROM中充当外部程序存储器,连接到FX2总线上。
3.2 设备驱动程序
  设备驱动程序提供用户访问设备的接口。EZ-USB系列芯片都具有通过下载固件和重枚举的方式来动态改变设备特性的能力,这就需要一个特殊的具有下载固件并完成设备重枚举功能的设备驱动程序,也可以叫做固件下载驱动程序。Cypress公司发布的EZ-USB软件开发包中提供了一个固件下载驱动程序的模版,即EZ-LoaderDriver。通过它可以方便地将自己的固件程序嵌入固件下载驱动程序。主要步骤包括:(1)设定固件下载前后两次枚举的不同VID和PID;(2)修改ezloader中source文件的目标名称;(3)修改Dscr.a51中的VID、PID;(4)利用ezloader提供的工具将用Keil编写固件所生成的.hex文件转换成.sys文件;(5)编写与.sys文件相对应的安装信息文件(.inf);(6)修改EEPROM,将VID、PID写入,并设置成C0引导加载模式。
3.3 主机应用程序
  为提高开发速度,本设计的主机应用程序在Cypress公司提供的USB Control Pane的基础上加以修改,增添了读取存储和分析音频文件(主要是.wav文件)的功能。
3.4 DSP数据处理程序
   将G.723.1公布的低码率语音压缩算法以C与汇编混合编程的方法[4]移植到TMS320C6713,并加以调整优化。
  本系统开发旨在为G.723.1以及G.729等常用的低码率语音压缩标准提供运行及测试的硬件平台。DSP系统中的程序采用C与汇编混合编程的方法。实验表明,USB的数据带宽完全可以满足多路音频数据实时处理的要求,并具有良好的稳定性和适应性,能够达到所要求的通信质量,实现较为完善的语音编解码系统。

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

厦门2023年9月21日 /美通社/ -- 声学滤波器作为射频前端解决方案关键器件之一,在通信系统的演进中也需要技术的迭代及突破。随着第五代(5G)移动通信技术的广泛推进,现实网络环境频谱复杂度提升。在3GPP发布PC1...

关键字: SAW HP 滤波器 器件

北京2023年9月14日 /美通社/ -- 生物医药高科技公司诺诚健华(港交所代码:09969;上交所代码:688428)今日宣布,新型蛋白酪氨酸磷酸酶SHP2变构抑制剂ICP-189联用针对表皮生长因子受体(EGFR)...

关键字: IC HP 代码 ARMA

北京2023年8月31日 /美通社/ -- 与狭义的人工智能相比,通用人工智能通过跨领域、跨学科、跨任务和跨模态的大模型,能够满足更广泛的场景需求、实现更高程度的逻辑理解能力与使用工具能力。2023年,随着 LLM 大规...

关键字: 模型 AI TOKEN GP

北京2023年8月31日 /美通社/ -- 进入2023年,ChatGPT推动世界步入一个全新时代——大模型时代,它不仅引发了AI产业的整体升级换代,同时也让各种大模型层出不穷,背后的关键原因在于,大模型能普遍提升生产力...

关键字: 模型 向量 开源 GP

昆明2023年8月30日 /美通社/ -- 8月25日晚间,沃森生物发布2023年半年报。报告显示,2023年上半年公司实现营业收入21.68亿元,归属于上市公司股东净利润4.55亿元,同比增长8.13%;报告期内,公司...

关键字: HP AC 管线 DAS

解决了人工智能模型落地方面最大的瓶颈-能源成本-与行业及以往耐能的芯片相比,KL730在能效方面的进步达到了3到4倍。 KL730芯片提供每秒0.35 - 4 tera有效计算能力,支持最先进的轻量级GPT大语...

关键字: AI芯片 GP 模型 人工智能

纽约2023年3月11日 /美通社/ -- 北京时间2月25日,由海投全球和学说平台联合推出的《全球资产配置》系列课程之《风险投资入门》公开课正式上线,同步在海投全球微信视频号和学说平台进行直播。本课程共6节,涵盖风险投...

关键字: GP PPM GE GO

-- 首场公益健康沙龙落地上海 上海2023年3月8日 /美通社/ -- 今天,由澎湃新闻发起、默沙东中国支持的"美好共建计划"在上海澎湃新闻北外滩世界会客厅正式启动,首场公益健康沙龙也圆满落幕。在...

关键字: HP 大众 AN BSP

厦门2023年3月1日 /美通社/ -- 2023年2月24日,普普文化集团—代码(CPOP)宣布,目前公司在AIGC和ChatGPT等人工智能领域已经取得了阶段性的成果,其中:ChatGPT技术应用方面,公司旗下的深圳...

关键字: AI 人工智能 数字化 GP

扬州2023年2月8日 /美通社/ -- 美华国际医疗技术有限公司("MHUA "或 "公司") (NASDAQ: MHUA)是一家在中国拥有运营子公司的信誉良好的第一、第二和第三...

关键字: 人工智能 GP BSP 医疗器械
关闭
关闭