SD-Host 控制器设计

目录

  • 摘要
  • SD Host 控制器设计
    • 架构设计
      • SD Host 控制器功能特性
      • 软硬件协同工作的实现
      • 系统框图和模块简述
    • 各模块详细描述和实现(更新中...)
  • 学习总结

摘要

随着SoC芯片复杂度的提高,IP核复用(Intellectual Property Core Reuse)技术开始成为当今SoC设计中的一个热点,它可以使设计者专注于 整个系统的设计,充分利用已有资源,提高设计速度,降低芯片开发成本。

为了满足SoC芯片对SD卡(Secure Digital Card)高速存取数据的要求,设计了基于高 速AHB(Advanced High Performance Bus)总线并支持DMA(Direct Memory Access)传输的SD控制器,借助于AHB的标准接口和丰富灵活的配置可以方便地将该IP集成于SoC芯片中。

SD Host 控制器设计

架构设计

SD Host 控制器功能特性

此控制器完成符合SD接口协议的命令和数据操作。其功能和特性如下所示:

  1. 控制器AHB总线接口数据处理符合AMBA 2.0 协议
  2. SD 2.0 协议
  3. 具备多个控制配置寄存器,可以实现对命令和数据的控制
  4. Built-in DMA,支持AHB总线字(word)single&inc模式传输;
  5. 支持对卡的单块、多块读写
  6. 内含相应寄存器和分频电路,实现SD总线的时钟控制
  7. 允许读操作时,硬件停时钟功能.

软硬件协同工作的实现

软件:

  • 底层驱动:主要对控制器的配置,实现时序的配置,命令和数据的输入,从实现上述所要实现的功能。

硬件:

  • AHB总线接口;
  • SD总线接口;
  • 命令和数据处理模块;

软件访问SD card时会选择相应的驱动程序进行具体的操作,底层驱动初始化SD卡,根据功能需要配置控制寄存器实现对SD卡的读写访问;

硬件给出不同操作模式下的状态信号和中断信号,供CPU查询。软件根据查询到的有效状态位,进行不同的工作(重新配置命令,数据搬移等)。硬件工作的启动需要软件配置寄存器的使能,工作过程需要和软件交互,同时软件可以强制结束硬件的工作。

系统框图和模块简述

SD-Host 控制器设计_第1张图片
设计包括以下模块:
sd_if 模块:ahb_slave接口模块,内含控制寄存器,供CPU访问,决定HOST的工作模式;
sd_clk模块:hclk分频电路,作为HOST模块时钟输入;
sd_cmd_fsm模块:命令操作控制模块,控制 sd_cmd_send_shift_register(SD卡命令发送)和
sd_cmd_receice_shift_register(SD卡命令接收)模块;
sd_data_fsm模块:数据操作控制模块,控制 sd_data_send_shift_register(SD卡数据发送)和sd_data_receice_shift_register(SD卡数据接收)模块;
FIFO模块:数据缓存模块;
DMA模块:数据搬移模块。

各模块详细描述和实现(更新中…)

• sd_if 模块: https://blog.csdn.net/zgezi/article/details/107024063.
• sd_clk 模块: https://blog.csdn.net/zgezi/article/details/107010823.
• sd_cmd 控制模块:https://blog.csdn.net/zgezi/article/details/107015443.
• sd_data 控制模块: https://blog.csdn.net/zgezi/article/details/107017640.
• FIFO模块:
• DMA模块: https://blog.csdn.net/zgezi/article/details/107022620.

学习总结

你可能感兴趣的:(AHB,数字IC设计,SD-Host)