说说这三四年我用过的语音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中的。
- 说说这三四年我用过的语音IC架构
- 说说我用过的博客系统
- 说说我面试过的那些公司
- IC设计笔记----记录我踩过的坑
- 我的第一个项目——说说那些年我们一起写过的代码
- 刚过30岁,说说我这一年坚持护肤,真实有效的东西 ZT
- 用过的几款步进电机驱动IC
- 我们工作的三四年
- 那些年,我用过的虚拟主机
- 说说我的理解。
- 说说我的生活
- 说说我的工作
- 说说我的
- 说说我的男友
- 说说我的感想
- 说说我的体会
- 说说我的学习计划
- 说说我的离职
- java 多线程简单的工具类
- 前序和中序建树,后序和中序建树
- 初识HTML
- 接口
- SOA (面向服务的架构)
- 说说这三四年我用过的语音IC架构
- Laravel控制器详解
- GDB常用命令
- Citrix Receiver 无法启动的问题处理
- POJ 2503 Babelfish <串的哈希>
- writeToFile 写入失败问题 --->字典去空值
- Leetcode学习(38)—— First Unique Character in a String
- Back Propagation后向传播算法 Python实现
- SWIFT逻辑控制之where与guard