保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

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


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消息,表明录音结束。

    在放音时,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芯片及其数字录放音系统(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/162348.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。