微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 低成本的MP3播放机系统集成技术

低成本的MP3播放机系统集成技术

时间:10-07 来源:互联网 点击:

MP3播放机虽然是可携式多媒体(PMP)装置中,集成技术比较单纯的一种。但是,这种单纯性是来自于SoC处理器的强大功能,简化了工程师原本繁复的工作。本文将介绍成本低、功能简单的MP3播放机系统集成技术。

MP3播放机虽然是可携式多媒体(PMP)装置中,集成技术比较单纯的一种。但是,这种单纯性是来自于SoC处理器的强大功能,简化了工程师原本繁复的工作。当然要获得这样的单纯性和便利性,是要付出代价的──须支付SoC处理器和操作系统软件的授权金和权利金。这就像Wintel集团的PC解决方案一样,虽然开发方便,可以及早量产,但是其核心的技术知识(know-how)是近似于封闭和不可探知的。

 


功能单元

成本低、功能简单的MP3播放机至少需要以下的基本单元:处理器/微控制器、MP3译码器、DMA、内存、硬盘、电源电路、DAC或I2S,LCD和键盘则是选项。当然还需要外接扬声器。为了减少组件的数量、提高设计的弹性、缩小体积,可以使用FPGA来设计DMA、内存控制器、IDE控制器。如附(图一)所示。

 


FPGA电路

在附图一的FPGA电路中,列举其中功能比较重要者说明如下:
●主电路:这是完整的数据路径----从微控制器总线到可共享的参数/地址映像内存、到DRAM/IDE总线。它包含了微控制器能够存取的所有外部缓存器、事件侦测(event detection)和移动请求位(action request bits)。外部缓存器组是位于DRAM内,执行各种特定的任务;当关机时,这些缓存器将会消失。事件侦测、移动请求位都是为了让微控制器得知目前的状态,并采取适当的移动、或执行特定的韧体程序。

●控制用的状态机:负责接收各种移动请求位,并使所有的控制线生效(assert),最后导致数据移动。它是一种简单的,但大型的状态机;平时它处于闲置和等待的状态,直到要采取移动。所有的状态是采用S_state_#的方式命名的。OR闸在适当的状态下,会使正确的控制讯号生效,如附图二所示。这个电路也包含了「优先级编码器(priority encoder)」。在闲置状态时,若搁置了许多个请求,则优先级编码器可以决定哪一个要先执行。这种电路虽然有点复杂,但是它使用「一热(one-hot)」的简单概念。所谓「一热」是指每一个状态是使用一个正反器(flip-flop)实现的,在每一个状态下,只有一个正反器是处于高值,其余都是低值,而且「热位(hot bit)」会一直移动,直到回到闲置状态。在DMA路径上,具有一个正反器(也可以省略不用),当结束DMA作业的条件成立时(ISZERO),此正反器会收到「热位」。所有的控制讯号是由OR闸产生的,只要输入的状态讯号群组中有一个是高值,OR闸就会输出高值(使控制讯号生效)。例如:若(图二)的OR2的S_RD_IDE_1或S_WR_IDE_1为高值,则IDE_ADDR的输出也会是高值,因此IDE_ADDR生效了。不过,有一些对时间要求很严格的(timing critical)讯号,并不是使用OR闸产生的,它们是使用建立/重置(set/reset)缓存器产生的。建立/重置缓存器的功效和OR闸一样,但是没有延迟。
 

微控制器总线MOVX侦测
倾听微控制器总线,当没有MOVX指令要执行时,使DMA_OK讯号生效。当DMA_OK未生效时,优先级编码器不会让任何非CPU的硬件单元存取DRAM。所以,它对微控制器的读取和写入请求是立即响应的,不会有延迟发生。这对8051微控制器而言,是很重要的,因为8051没有等待状态。如果有侦测到一个MOVX作业码,但是MOVX没有被执行,一个31周期的定时器可以使DMA_OK再次生效。

■微控制器的地址译码
这些讯号生效后,可以使外部缓存器在微控制器的内存映像区域内使用。通常,这是将地址排线和REG_RD讯号或REG_WR讯号AND在一起;REG_RD和REG_WR讯号是由状态机产生的。

■DRAM/IDE地址多任务器(mux)
在DRAM的行列式地址位(address bits)、IDE的地址位(来自于微控制器)之间,做DRAM/IDE地址脚位的切换;或为零,当执行IDE DMA的直接传输作业时(类似PIO)。

■MP3输出位移缓存器(shift register)
这是16位的位移缓存器,它从IDE接口得到一个16位的字组(word),并以位移的方式将此字组送至 MP3译码器。

■MP3位计数器
计算位移缓存器送至MP3译码器的位数目。当所有的16位都被移出时,会产生一个讯号,此时,位移缓存器准备供给STA013 DMA使用,以继续从DRAM中读取和传送下一个字组。

■DRAM的重清(refresh)时脉
这个电路会每15.2 ?s 产生一个脉冲,要求状态机执行一个DRAM重清周期。此脉冲会在主电路内,建立一个请求旗标,当总线可以使用时,状态机会开始执行重清作业,而且优先等级比较高的请求不会被搁置。

■DRAM/IDE地址缓冲器(buffer)
保存地址,这些地址是用来驱动DRAM和IDE接口。

■32-byte的SRAM内存
使用两个16×16宽度的DRAM内存,将它们虚拟成具有地址或数据锁定(latch)功能的SRAM。其中一个保存DRAM的分页(page)号码,这些分页是映像至微控制器的地址空间0xFF00至0xFF1F的区域(DRAM_PAGE_CFG缓存器),它们和微控制器的12个地址位一起被送至DRAM/IDE地址多任务器,最后可以为DRAM的读写作业,产生一个唯一的地址。第二个SRAM负责保存DMA的参数值(在0xFF20至0xFF3F的区域内)。微控制器的外部内存(DRAM)空间映像如附(表一)所示。
 

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top