TC8831F芯片的DRAM接口最多可以支持4片4M×1bit的DRAM(或者烧录好的ROM)作为语音存储介质。在高质量的32kbps采样速率下,能够记录语音大约512s,熏所以市场上的这类语音复读机的录音时间大部分都是500s上下。为了降低成本,延长语音记录时间,增强产品在市场上的竞争力,应厂家要求,我们对基于TC8831F的复读机的电路作了改进,以极小的硬件代价和很小的控制软件修改量,成功地将TC8831F外接DRAM的接口能力从4片4M×1bit 扩展到4片16M×1bit(DRAM选用日立公司的HM5116100)。
1 硬件修改工作
TC8831F外接4片4M×1bit DRAM时的电路连接:4M×1bit DRAM的地址总线有22位,分为高位地址即行地址(Row address)和低位地址即列地址(Column address),两者通过分时复用,共用11根引脚A0~A10,每片DRAM的寻址范围为000000H~3FFFFFH,各片DRAM通过不同的CAS信号线来区别。在TC8831F内部,4片DRAM联合寻址,因此寻址范围是000000H~FFFFFFH。相邻存储器芯片之间,系统自动切换,无需用户干预。针对不同的系统读写速度要求,DRAM有多种不同的读写模式和存储单元的数据刷新方式。在本系统中,由于所需要的数据速率非常低,所以读写模式是最简单的普通读写模式,也就是读写每一位数据之前发送完整的地址信号,包括行地址和列地址,然后进行读写;而刷新模式采用cas-before-ras方式,并将刷新脉冲穿插到读写时序中间。
将TC8831F外接和DRAM从4片4M×1bit 扩展到4片16M×1bit之后,存储器的寻址空间增加到原来的4倍,因此DRAM的地址将增加两位,也就是说增加了一根地址引脚。4片16M×1bit的DRAM除了A11引脚外,其它引脚的连接4片4M×1bit的连接完全相同。对于A11引脚,需设计适当的逻辑控制电路以生成所需的时分控制信号,用以模拟该地址线的寻址控制信号。经过分析,采用MAX plus II仿真以及实际电路验证,A11引脚的控制信号可以通过图4所示的简单电路扩展得到。16M×1bit的DRAM的地址线有12根,对应着24位的地址ad0~ad23,按照DRAM的地址线分时复用的原则,ad12~ad23是高位地址线(行地址),ad0~ad11是低位地址线(列地址)。但由于TC8831F在读写DRAM单元时使用普通的读写模式(区别于快速读写模式),读写每一位数据之前都发送完整的地址信号,即先输出行地址,然后输出列地址,这样就为用简单的逻辑电路实现存储器寻址范围的扩展提供了可能。
扩展地址线仿真波形。XIN、/RAS、/CAS分别是该芯片的时钟源、DRAM行选通信号、DRAM列选通信号,PAGE0、PAGE1是由MCU输出的页面选择信号。在“PAGE1、PAGE0”分别为“00”、“01”、“10”、“11”时,A11引脚的控制信号在/RAS、/CAS的下降沿到来之前有效地建立了复用的地址信号00、01、10、11,这个信号就是访问不同的空间所需要的地址信号。扩展之后,访问DRAM的逻辑地址到DRAM的实际的物理地址的映射关系:上面的是逻辑地址,下面的是物理地址。映射之后,DRAM的A0~A10引脚对应着存储单元的逻辑空间低22位地址。因此在引脚A11的信号确定的情况下,就将由引脚A0~A10所能访问的每片DRAM上的各个分散的物理存储空间映射成连续的逻辑空间,每片DRAM对应的这个连续的逻辑空间大小就是4M×1bit,相当于扩展前的一片DRAM,4片16M×1bit DRAM对应的4片逻辑连续空间的总和与使用四片4M×1bit DRAM时提供的空间将是完全一样的。改变A11的控制信号,也就是通过MCU改变PAGE0、PAGE1,将获得4块不同的存储空间,从而完成最终的存储空间的扩展。
图4 扩展地址线电路原理图
经过扩展之后,DRAM的刷新脉冲(Cas-Before-Ras Mode)间隔不变,但是芯片的容量增加到原来的4倍;每一个刷新脉冲刷新一行信息,所以刷新周期延长到原来的两倍。但是延长之后的刷新周期仍然在DRAM的许可范围之内,完全保证了DRAM内数据的安全性。实际上,在使用具有待机模式的TC8832F芯片的系统中,采用这种改进方案,虽然待机情况下刷新周期已经超过了DRAM的芯片手册的规定值,但是经过大量的长时间的样机测试,证明该方案仍然是可靠的。
2 软件修改工作
上面介绍的存储空间扩展方法,除了PAGE0、PAGE1外,无需来自MCU的任何干预,工作情况和以前完全一样。MCU的控制程序所需要做的修改工作就是产生所需要的PAGE0、PAGE1控制信号,并作记录。也就是在录音开始时,输出某PAGE0、PAGE1信号,在语音存储空间用完的情况下,自动地通过PAGE0、PAGE1将存储空间切换到下一个页面,直到录音结束或者所有存储空间耗尽为止。然后记录下该段语音信息的开始地址、结束地址(包括PAGE0、PAGE1)。放音的时候,读出地址信息,然后设定语音存储空间的的起始地址(包括设定PAGE0、PAGE1),就可以放音了。如果语音存储空间跨页面,则在当前页面放音完毕之后自动切换到下一个页面(修改PAGE0、PAGE1),继续放音,否则停止放音。也就是说,只需要在原来的控制程序的基础上增加PAGE0、PAGE1的控制部分和信息存储部分。
3 应 用
利用上述方案对某语音产品实现了成功的改进。改进后的产品在高质量的32kbps的比特率下,语音记录时间延长到35分钟;使用较为满意的16kbps的比特率,录音时间延长到大约70分钟。而这种改进工作所付出的硬件成本非常小,控制软件则是在原来的基础上作了非常小的修改。
还可以看到,如果不需要延长语音记录时间,使用这种方法可以将外接的存储器减少到一片16M×1bit,这样就可以减少芯片数量,降低功耗,缩小PCB面积和线路板体积,对海量生产的复读机等语音产品带来非常明显的经济效果,值得推广使用。