SD-Host 控制器设计

9 篇文章 37 订阅
2 篇文章 1 订阅

摘要

随着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_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模块: https://blog.csdn.net/zgezi/article/details/107296862.
• DMA模块: https://blog.csdn.net/zgezi/article/details/107022620.

  • 15
    点赞
  • 129
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值