说说这三四年我用过的语音IC架构

来源:互联网 发布:关羽看不起黄忠 知乎 编辑:程序博客网 时间:2024/05/17 16:57

这两年用过IC不少。真正算是用到比较熟练的算是两颗语音IC,sonix的7232和JL的AD100。下面就谈谈他们的一个IC架构,硬件资源,还有程序运行方式。

IC跑程序架构

7232

7232属于ROM Code+OTP code+flash这样组合方式来运行,缺一不可。

64K ROM Code

存放7232这颗IC特色功能,演算法固化在rom里面,相当于一个标准品。包括decode/encode算法,变音算法,flash读写代码,等等。内部code跑快,但是用户无法改变,只能去适应他,调用他。

32K OTP Code

16K的OTP空间,可以用来存放用户代码,跑的慢。用户可以写一些简单的程序。7232这些特性决定了他不够灵活,当然这也考察程序员功底了。

SPI Flash

主要用来存放语音数据,也可以用来存放一些用户表格。作为一个语音IC,没有语音内容还怎么叫语音IC,所以flash也是必备的。
说白了,7232感觉是比较传统意义上的运行方式,IC内部存放程序(rom code 和OTP code),然后读取 SPI Flash语音数据,播放语音;或是存放录音数据到SPI Flash。

GPCE2P064系列

这个系列相当于与sonix系列旗鼓相当的老竞争对手了。硬件资源也差不多,无须赘述。这个系列相当于OTP Code或是OTP Code+Flash

ROM code

没有rom code,也就是说没有标准程序固化在IC内部。

OTP Code

64K OTP code。所有的标准演算法都是打包成一个lib,供用户调用。也就是说客户可以自主选择是要哪种压缩算法,录音,变音的演算法都可以自主选择。这样一来节约了OTP 空间。用法很灵活,而且这种全OTP的速度也足够快,跟7232 rom code一个等级,2064 OTP可以跑49MPS。(7232 rom code 跑48MIPS,OTP 才1.5MIPS)。
得益于OTP 空间的节约,还可以把少量的语音放在OTP 里面。这样一来flash也省掉了。

SPI FLASH

与7232一样,flash主要用来存放语音数据,或是用户表格。

AD100

AD100跟前面两种又不一样,属于IC(PRAM)+Flash的应用。不过AD100毕竟是应用简单些,只是单纯的播声音功能,没有变音,录音那些功能。

RAM

AD100 IC内部没有存放程序的地方,只有RAM。除了用来存放变量以外(iData Ram),还把flash中的代码load 进入xData Ram
这里写图片描述

10K byte xData Ram

这里写图片描述这里写图片描述
公共区bank只有2.25K,常驻程序放在这。
其他都是1.5K的程序bank,每次只能load一个进来。所以这就限制了每一个功能模块都要限制在1.5K以内。好在总共有64个程序bank。这相当于一个动态载入的机制,不停的吧程序块切换到PRAM里面运行。

SPI FLASH

AD100的这种机制,注定了程序还有语音数据全部放在flash中的。
这里写图片描述

1 0