预览加载中,请您耐心等待几秒...
1/3
2/3
3/3

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于AHB总线的SDSDHCMMC控制器设计 AHB是一种被广泛采用的高性能总线,其应用范围涵盖了嵌入式系统、数字信号处理器、网络交换机、计算机服务器等众多领域。而SD/SDHC/MMC卡则是一种常见的存储设备,其广泛应用于消费电子、汽车电子、医疗设备等领域。本文将介绍基于AHB总线的SD/SDHC/MMC控制器的设计。 一、AH管脚的配置 在AHB总线中,有一些管脚需要被配置。其中AH信号线包括地址线、数据线、控制线等,在本设计中,为了方便,使用了一个标准的AHB总线接口方式,包括了AMBA协议的控制线,如HADDR、HTRANS、HWRITE、HSEL、HREADY和HRESETn等等。 二、设计思路 本设计首先要理解SD/SDHC/MMC卡的工作方式。SD卡的主要特点是其复杂的协议,它需要使用SPI总线或SD协议通信,而MMC卡则可以通过SPI总线或MMC协议进行通信。而SDHC卡是SD协议的一种,具有高速传输的特点。同时,这几种卡之间也有很多差异,比如说MMC卡可以使用4位和8位数据线,而SD卡则只有4位数据线。 根据上述差异,本设计将分为三个部分来实现:SD卡控制器、MMC卡控制器和通用控制器部分。其中通用部分主要是将SD卡控制器和MMC卡控制器的共性部分提取出来,形成一个基础的控制器框架。 三、SD卡控制器设计 SD卡的控制器主要涉及到以下几个部分:时钟、CMD控制、数据传输、数据读写等等。其中时钟信号需要从AHB总线上获取,至于CMD控制信号,则需要定义自己的FIFO。 数据传输方面,则需要进行DMA传输以及预读/预写操作。对于DMA传输,我们可以使用AHB总线提供的DMA传输方式,在此不作过多讨论。而预读/预写操作,则是通过缓存区来实现的,其设计思路如下: 1.预读:将要读取的数据先放到缓冲区中,等到下一次读取时,再将数据从缓冲区传输到指定的注册或存储器中。 2.预写:将要写入的数据先放到缓冲区中,等到下一次写入时,再将数据从缓冲区传输到SD卡中。 四、MMC卡控制器设计 MMC卡的控制器与SD卡的控制器类似,主要涉及的部分包括时钟控制、CMD控制、数据传输和数据读写等。不同的是,MMC卡需要支持4位和8位的数据线,因此在设计时需要针对这个特点进行处理。 在MMC卡中,数据传输常常会采用DMA方式,因此需要支持DMA传输功能。与SD卡控制器类似,MMC卡控制器也需要设置缓存区以进行预读/预写操作。 五、通用部分设计 通用部分的设计主要是为了提取出SD卡控制器和MMC卡控制器的共性,形成一个基础的控制器框架。具体实现方式如下: 1.AH总线的处理:将AHB总线信号与控制器联系起来,以便可以在AHB总线上进行读写操作。 2.数据缓存:以下列方式来缓存传输数据: -缓存已读取的数据,以便可以快速读取第二个数据块 -预读取下一个数据块,以缓存预读的比特数。 3.CMDFIFO:FIFO可以接收命令,并通过数据寄存器将命令发出。 4.DMA控制:允许CPU交给DMA来进行读写操作,以便获得更好的性能。 六、总结 在本文中,我们介绍了基于AHB总线的SD/SDHC/MMC控制器的设计。我们首先理解了SD/SDHC/MMC卡的工作方式,然后设计了SD卡控制器、MMC卡控制器和通用控制器部分。设计过程中,我们遵循了AHB总线的协议,并在数据缓存、CMD控制、DMA传输等方面进行了优化,以达到更高的性能和更好的可靠性。