中国·芯片交易在线
首页 | 供应信息 | 求购信息 | 库存查询 | 新闻中心 | 展会资讯 | IC厂商 | 技术资料 | 自由区域
   新闻首页 |  行业动态 | 新品发布 | 政策法规 | 科技成果 | 模拟技术 | 嵌入系统 | 传感控制 | 存储设计  
当前位置:IC72首页>> IC新闻中心>> 科技成果 >>电子行业新闻正文

适于语音处理的SDA80D51芯片及其数字录放音系统

时间:2008/5/12 9:18:00  作者:  来源:ic72  浏览人数:1172
 
 

      摘要:SDA80D51 UNISPEECH是Infineon公司新推出的具有DSP和单片机双核的芯片。介绍了该芯片的组成框图及各功能模块,并且用该芯片完成一个硬件系统,实现了语音的G.723.1编码存储和解码放音。

      目前市场上有很多语音录放系统,如录放音玩具、录音笔等,大多采用了单片机控制一个语音芯片,再接一个FLASH存储器的结构。由于语音芯片都是固定的编码算法,使得系统用途单一,不利于进一步改进,缺乏灵活性,如日本OKI公司的MSM6588只能完成ADPCM编码。

      用SDA80D51芯片实现的语音录放音系统,系统硬件简单、工作可靠。所有的编解码算法都由软件来完成,设计者可以编制自己的软件,完成不同的功能。它既可以作为简单的数字录放音系统,也可以通过改变程序做语音识别、语音合成等多种系统。用途灵活、功能强大。该系统选用G.723.1语音编解码算法来完成语音的录放。

      1 SDA80D51芯片介绍

      SDA80D51芯片是德国Infineon公司生产的适合语音处理的芯片,它采用0.18μm工艺,核的工作电压为1.8V,I/O电压为3.3V,模拟Codec部分电压2.5V,功耗是150mW。该芯片相当于一个片上系统(SOC),内部集成了许多功能模块,如图1所示。由于它集成了许多功能模块,如图1所示。由于它集成了许多功能块,几乎只需要一片芯片就能完成语音处理和系统控制。

      该芯片含有两个处理器,分别是16位DSP(OAK)和8位MCU(M8051 E-Warp)。M8051 E-Warp核由美国Mentor Graphics公司设计,它是与一般8051兼容的MCU,具有很多的增强功能,最高工作速度可达50MIPS(Million Instruction per Second),是目前为止最快的增强8051。传统8051的一个机器周期是12个时钟周期,而这个核心只需2个时钟周期,速度传统8051的6倍。许多指令都能在一个机器周期内完成。由于指令与8051兼容,使得程序员不用花许多时间学习新指令,而直接采用传统的8051编程方式就行。芯片集成有JTAG口,用Mentor Graphics公司的FS2(First Silicon Solutions)仿真器就可以实现在线仿真。

ic72新闻中心

      OAK核是美国DSP Group公司设计的16位低功耗、低电压和高速定点DSP。采用双金属CMOS,在0.6μm或0.5μm以下工艺生产。工作电压范围在2.7V~5.5V。在5V 80MHz工作条件下,消耗电流38mA;在3.3V 80MHz条件下,消耗电流25mA。该核采用Harvard总线结构,工作速度可达100MIPS。

      Codec部分由I2S、ADC和DAC组成。I2S口可用来外接一些通用的模/数芯片。两路的12位8kHz采样率的ADC,可接峰峰值为1.03V的差分电压。片内有数字AGC,可放大0到42dB(8档,6dB步长);模/数转换采用Sigma-Delta调制技术并经过一度的换算,得到16bit的PCM码流,送往处理器。两路11位8kHz采样率的DAC可软件调节增益,可放大0到-18dB(-6dB步长)。所有Codec部分可通过ASI接口连到OAK或M8051上。

      SDA80D51芯片还有I2C、SPI和PWM接口模块,可以通过M8051来控制。另外在不同版本的芯片上还有多达50到250之间的GPIO(通用的输入输出口),这可以保证系统控制的灵活性。

      该芯片最有特点的功能模块是存储器管理单元MMU(Memory Manage Unit),它可以管理两个核的存储区映射。物理存储器(RAM或ROM)被看成由多个块组成,每个块的大小在不同版本的芯片上定义是不同的,本系统中,块的大小是16K字节(或8K节)。MMU既可以把块(8K字)映射给OAK的程序区或数据区,也可以把块(16K字节)映射给M8051的程序区或数据区。这些完全由写M8051的特殊功能寄存器来完成。存储空间的自由挂接使得完成两个核之间的数据转换变得非常容易。此外,程序装载和启动也需要MMU的控制。

      整个芯片的工作方式是M8051作为主控制芯片,完成对各种接口的控制和系统的配置。OAK作为协处理器,完成语音编解码算法等计算。两个核之间还有两个64字深的FIFO。它们用于双核通信。

      2 G.723.1语音编解码

      语音编解码算法一般分为三类:波形编码、参数编码(声码器)和混合编码。波形编码技术是在不建立语音模型的情况下,直接对语音波形用编码方式逼近,可有时域的脉冲编码调制和变换域编码;参数编码是在一定的语音模型基础上,在编码端分析出该模型参数,并选择适当的方式对其进行高效率的编码,而在解码端利用这些参数和语音模型,用合适的激励源(excitation)重新合成语音;混合编码则保留了参数编码的语音模型的假定,又利用了波形编码的准则优化激励信号。

      G.723.1算法属于混合编码。语音模型是基于线性预测理论的全极点模型。输入是16bit的PCM码流,然后采用合成分析、矢量量化等方法,以感觉加权后的语音基音残差信号能量最小为准则进行编码。有两种类型编码方式,一种是6.3kb/s多脉冲最大似然量化方法(压缩率20:1),另一种是5.3kb/s代数码本激励线性预测ACELP(压缩率24:1)。后者的压缩率高,编码速率低,这可以降低系统存储语音时所需存储器的容量。而且解码算法简单,回放语音时不会有延迟感,语音清晰。

ic72新闻中心

      3 语音录放音系统硬件设计

      语音录放音系统硬件电路的系统框图如图2所示。由于芯片内(虚线内)集成了许多功能模块,使得电路的结构变得非常简单。

      SDA80D51的RS232串行口通过MAX3222匹配电压后,连接到计算机。

      芯片的启动支持SPI、I2C和RS232串口三种方式。本系统采用I2C启动方式,选用ATMEL公司的24C64。上电后,片内固化在ROM上的程序会从选定的I2C芯片拷贝256字节客户启动程序到片内程序区ff00h~ffffh处,最后把程序指针指向ff00h,开始执行。

      系统程序存在SST28LF040中,由启动芯片中的用户启动程序把系统程序装载到芯片内部的RAM里,然后处理器会执行RAM中的程序指令。

      语音经过编码压缩后存储在三星公司的KM29U128T(16M×8bit)内。它的寻址采用串行方式,即8根数据线既作地址线也作数据线,先输入地址,再传送数据。这样,用很少的SDA80D51地址线就可寻址很大的空间,记录大量的语音数据很方便。

      用8根GPIO线实现一个4×4的小键盘,可用来作为控制接口。在录放音时,可以通过对键盘的扫描来决定下一步骤。

      4 软件设计

      由于要对芯片内的功能模块、系统控制和编解码算法进行编程,这使得软件设计量比较大。考虑到本文的篇幅,这里只介绍总程序结构和录放音的控制部分。

      总程序框架采用前后台的工作方式。前台轮寻各个任务引擎,判断是否有任务需要处理。若有,切换状态并执行该任务;若没有,就继续查询。后台主要完成对硬件的接口、中断处理程序以及缓冲硬件数据。前台和后台的通讯是靠共享缓冲区来完成的。这种前后台的工作方式可处理多任务,每个任务只占用一个时间片。

      数字录放音程序在整个软件设计中只有一个任务,它提供一个任务引警程序,由前台来调用。具体工作过程是OAK接CODEC模块,负责采集数据、编码和解码算法以及语音的回放;M8051负责配置系统工作寄存器和对FLASH的读写。两个核之间通过FIFO发消息,消息的定义格式(C语言)如下:

      typedef union tag_FIFO_MESSAGE
     
      {

      struct

      {

      struct

      {

      BYTE bIdSource://发送方ID

      BYTE bIdDest: //接收方ID

      WORD wMsgType; //发送消息类型

      WORD wDataLen; //数据长度

      WORD wSeq; //消息序号

      }uHead;//消息头

      WORD wData[27]; //消息数据内容

      WORD wCRC; //校验

      }uForm;

      WORD wBuf[32];

      }FIFO_MESSAGE;

      两个核的任务引擎程序分别用C语言编写,程序结构基本相同,都采用状态跳转的方式,即每个子程序模块都是一个状态,满足一定条件就跳到下一状态;若都不满足,就退回到前台轮寻程序。由前台程序在下一时间片继续调用停留在当前状态的程序。

      如图3所示,每个圆圈都是一个状态,两个核之间的横向的箭头表示消息,向下的箭头表示状态的跳转。

      在录音时,M8051的“录音初始化状态”先做初始化并发送START消息,表明录音开始,然后跳到“存语音数据状态”,等待OAK的消息。OAK的“录音初始化状态”接收到START消息后,先做初始化,然后跳到“语音采集编码状态”,在这里会不停地采集语音并用G.723.1编码,采满8K字后,向M8051发送STORE消息。M8051收到消息后,用存储器切换程序,拷贝数据到M8051的RAM区,并存到FLASH里,这由“存语音数据状态”来完成。若FLASH存满,M8051会发送STOP消息,然后OAK和M8051都进入“录音结束状态”。OAK结束后还会给M8051发送DONE消息,表明录音结束。

ic72新闻中心

      在放音时,M8051的“放音初始化状态”打开FLASH的文件系统并发送START消息。OAK收到后,发送INIT消息,请求M8051传送第一个数据包。M8051的“初始化确认状态”收到INIT消息后,从FLASH读取一个数据包,传送给OAK,若正确就发送ACK消息并跳转到“读语音数据状态”。要是失败的话,就发送STOP消息,这样OAK和M8051都会结束语音。当OAK收到ACK消息和一个语音数据包时,会跳到“解码放音状态”,在这里不停的把数据解码并发送给DAC。若放完这个语音数据包,就发LOAO消息,申请下一个,不停循环。同时M8051会准备语音数据包,并传送给OAK,若没有数据或按停止键,M8051会发STOP消息,结束发音。然后OAK会发FINISH消息,表明所有录音结束。接着M8051的“放音结束状态”会关闭文件系统,清空缓冲区。

      由上面的描述可看出,整个数字录放音的工作流程是M8051作主控制器,OAK作从控制器。M8051发起开始信号,收尾数字录放音,而OAK主要负责编解码。这种工作方式灵活可靠,程序很容易扩展,例如状态数的增加和消息类型的扩展都很容易。

      该系统的主要特点是充分利用SDA80D51的强大的功能集成,完成语音处理系统。完成一个大系统,几乎只需要一个芯片。相信该芯片在语音及相关领域一定会有很好的应用前景。

 
【相关文章】
·适于语音处理的SDA80D51芯片及其数字录放音系统
 
 
IC新闻搜索
 
热点新闻
基于红外超声光电编码器的室内移动小车定位系
基于闪烁存储器的TMS320VC5409DSP并行引导装载方法
非移动市场需求飙升,ARM预计2010年出货量超50亿片
一种快速响应的电容式湿度传感器感湿薄膜设计
利用特殊应用模拟开关改进便携式设计
无线传感器网络跨层通信协议的设计
基于ARM9内核Processor对外部NAND FLASH的控制实现
基于GSM技术的汽车防盗系统的设计
热电阻在烟叶初烤炕房温度控制中的应用
高速数据转换系统对时钟和数据传输的性能要求
友情连接
 关于我们  IC论坛  意见反馈  设置首页  广告服务  用户帮助  联系我们
copyright:(1998-2005) IC72 中国·芯片交易在线
(北京)联系电话:(010)82614113、82614123 传真:(010)82614123 客户服务:service@IC72.com 库存上载:IC72@IC72.com
在线MSN咨询:ic72sale8@hotmail.com 通信地址:北京市西城区西直门内大街2号大厦15层 邮政编码:100013
(深圳)联系方式: 在线MSN咨询:ic72sale6@hotmail.com 在线QQ咨询:191232636 通信地址:深圳市福田区振华路
注 册 号: 1101081318959(1-1)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9