首页 > 其他分享 >SD-Host控制器设计架构

SD-Host控制器设计架构

时间:2023-11-21 23:47:41浏览次数:34  
标签:控制器 总线 发送 Host 模块 SD sd

SD Host功能列表

  • 系统挂接在SoC中的
  • 有控制寄存器和状态寄存器
  • 内建DMA-数据需要从外部将数据读取到buffer中,然后再对于SD卡进行写操作;对于读操作,首先先将SD卡读取到控制器中buffer中,再从buffer中将数据存储到SoC中的存储单元中,数据搬移需要使用DMA
  • DMA也是挂接在AHB总线上的
  • 数据缓存的FiFo和内嵌DMA模块
  • SD卡的时钟频率比较低,所以需要分频电路
  • 读操作,硬件停时钟功能 - 数据-->SD Host中的buffer-->SRAM和eFlash,在数据从数据到buffer中的时候,此时不能再进行读,此时可以关闭时钟

架构

  • 先将外部需要的接口画出来:AHB总线和SD总线
  • SD Host是基于AHB总线的,并且有一些控制和状态寄存器,所以需要设置ahb_slave_if模块,处理AHB信号
  • ahb_slave_if中有控制寄存器,进行任务驱动,产生任务信息给到sd_ctrl模块
  • 设置一个sd_ctrl模块发起对于sd总线的请求
  • sd_ctrl与sd总线的交互除了有命令总线还有数据总线,都是双向的
  • ahb时钟比较快,sd时钟比较慢,所以需要有 一个时钟分频模块
  • 根据配置信息,产生命令,启动SD ctrl进行一些命令的发送
  • 需要有一个缓存存储数据(FiFo),对于读数据,sd_ctrl控制数据总线,读取数据从sd总线上读取出来存储到fifo中,fifo中的数据满了之后,通过DMA将数据存储到SoC中的存储单元中
  • DMA-搬运数据的时候是一个master,控制总线,发送数据
  • ahb_slave_if模块是slave

sd_ctrl模块

  • 对于sd card进行读写,当上电之后,sd card处于idle状态,需要通过命令发送跳转到data transfer state,才可以进行数据的读写
  • sd协议的状态机比较复杂,有两种设计思路
    1.通过硬件实现所有的状态机,包括卡识别模式和数据传输模式
    每一步操作都需要很多的指令,首先需要在ahb_slave_if模块中通过软件配置所有的操作
    优点:集中式的配置,事先将所有的操作都配置好,发起启动信号之后,由硬件进行执行,和CPU交互频率较低,CPU负担较轻
    缺点:硬件实现非常复杂,后期更改软件灵活性差
    2.将硬件的执行力度降低,硬件操作的时候有两种:一种进行数据传输或者只进行命令传输,可以以一条指令的数据传输为力度进行设计状态机,硬件只实现一条CMD的发送和response的接收,只实现一条CMD对应的data的发送和接收
    整个流程的控制权全部交给CPU,也就是软件,硬件只实现最小粒度的命令发送和接收,以及数据发送和接收
    优点:硬件实现代价小,软件的灵活性非常大
    缺点:CPU需要和SD Host进行大量的交互,CPU负担较重
  • amd发送和response返回都是类似的
    CPU与SD Host通过中断进行交互,SD Host也会发送中断给到中断控制器,CPU收到中断之后,需要进入中断处理程序处理中断

CMD发送

  • CMD发送的时序是类似的,可以设置一个状态机,实现CMD的发送和response接收
  • 接收来自ahb_salve_if的配置
  • 再设置一个状态机,实现data的发送和接收

SD Host控制功能列表

SD Host控制器软硬件模块划分


SD Host控制器模块功能描述

  • 通过异步fifo实现不同时钟域之间数据的传递

SD Host模块功能简述

SD Host架构设计文档




标签:控制器,总线,发送,Host,模块,SD,sd
From: https://www.cnblogs.com/Icer-newer/p/17847762.html

相关文章

  • Chinese Wisdom on Sewage Treatment in India
    ChinaprogramComprehensivelycontrolpollutantemissions(1)Paycloseattentiontothepreventionandcontrolofindustrialpollution.Banthe"tensmall"enterprises.Comprehensivelyinvestigatesmallindustrialenterpriseswithlowequipme......
  • ESD保护二极管 RCLAMP0521P-N参数详解
    市场上有选用东沃电子推出的RCLAMP0521P-N低电容ESD静电保护器件应用于天线静电防护。天线广泛出现于便携式电子产品中,众所周知,天线所接受的信号容易受到电磁、静电干扰,因此ESD静电保护器件成为了天线常见的搭配器件。考虑到天线所使用的频段,以及不同频段所能够接受的最小寄生电容......
  • 金士顿sd卡验真伪
    问题在某宝上一个普通的店铺购买了一张sd卡,不知道真假,毕竟它比官方旗舰店便宜啊,所以验证真伪。如何验证真伪呢?方法关注金士顿科技公众号,发送验真伪发送清晰的sd卡正反面照片等待反馈结果......
  • STM32使用SDIO模式和DMA实现SD卡的读写及擦除操作
    对于STM32操作SD卡来说,最重要的就算初始化、写操作、读操作、擦除这几个操作了。对于初始化部分上一篇文章已经分析,本篇就主要分析写、读、擦除操作。本篇函数来自于STM32提供的例程。参考野火的程序进行了解释,与野火函数有些不同。这几种函数完成之后,就是开始实现对SD卡进行操作了......
  • Cisco SD-WAN (Viptela) version 20.12.2 ED - 软件定义广域网
    CiscoSD-WAN(Viptela)version20.12.2ED-软件定义广域网请访问原文链接:https://sysin.org/blog/cisco-sd-wan-20/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org支持SASE的架构,其集成了面向多云、安全、统一通信和应用优化的各种功能,可用于轻松安全地将任何......
  • SDMMC调试
    1.SDMMC配置,SDMMChardwareflowcontrol使能GPIO都拉高   2.获取状态和SD卡信息charGetStatus(){intsdcard_status=0;sdcard_status=HAL_SD_GetCardState(&hsd1);if(sdcard_status!=HAL_SD_CARD_TRANSFER){return1;}......
  • PW6603USB PD 协议 SINK 端输出控制器芯片
    在当今的快充技术领域,USB PD 协议已经成为主流。而为了实现更高效的充电,一个关键的组件就是 SINK 端输出控制器芯片。在这个主题中,我们将深入探讨 泛海微PW6603USB PD 协议 SINK 端输出控制器芯片的相关特点和优势。首先,让我们了解一下 USB PD 协议。它是一种基于 USB......
  • 20231119 mac 使用dd 命令 烧写 linux img到sd卡
    https://docs.radxa.com/rock5/official-images?model=ROCK+5B下载rock5b官方操作系统文件是一个.img.xz文件打开一个mac终端,ls/dev关注/dev/disk相关的,插入SD卡读卡器到macmini,再次ls/dev 把sd卡格式化sudoddif=/dev/zeroof=/dev/disk4bs=64Mcoun......
  • 什么是美颜SDK?直播美颜SDK技术深度剖析
    在实现实时美颜的过程中,美颜SDK扮演着关键的角色,它为开发者提供了一套强大的工具,使得实时美颜效果能够轻松应用于直播平台。 一、美颜SDK的基本概念美颜SDK是一种软件工具包,通过集成了丰富的图像处理算法和实时计算技术,使得开发者能够在其应用中轻松嵌入实时美颜效果。这类SDK通常......
  • 控制器
    if分支packagecom.itheima.branch;publicclassifDemo1{publicstaticvoidmain(String[]args){//目标:if流程用法//需求:测量用户体温高于37度报警doublet=36.9;if(t>37){System.out.println("温度过高");......