SD Host控制器的系统集成
控制器集成需求

- SD Host可以从外部读取数据存储到SRAM和eFlash或者可以从内部读取数据输出到外部存储
AHB Bus


- slave接口用于配置
- master接口作为主设备,DMA可以控制总线,传输数据
SD Bus

- CMD和data都是inout类型的,可以出入和输出
- cmd_oe - (output enable)
- cmd_oe = 1,输入的信号就是rsp_in,命令反馈输入接口
- cmd_oe = 0,输入的就是cmd_out,cmd_out = 1 输出数据,cmd_out = 0,输出z
- 将一个cmd分为三部分,再将这三部分驱动到pad上,芯片内部不实现三态逻辑
- data总线也是同样的道理,分成data_oe,data_out,data_in
DFT & Interrupt

- 在进行设计模块的时候,可以预估面积,可以考虑将面积比较大的模块和其他比较类似的模块进行复用
控制器集成需求



SD Host集成需求文档





SD Host微架构设计文档
SD_if模块
ahb总线接口模块,用于软件的访问控制
接口在微架构设计文档阶段确定的
1、先定义明确的接口
2、按照需求方的角度收集信息



reponse0-response3 -- 是读取回来的数据,ahb总线是32bit,就按照ahb总线的宽度来
reponse中的start bit,index,crc是不需要回传的,只要将content回传就可以
sd_clk输入,ahb_slave_if(sd_if)模块,既需要和ahb bus通信又需要和sd bus进行交互,所以需要进行数据的同步处理(通过打拍的方式),所以需要输入sd_clk
sd_fifo_full 和 sd_fifo_empty - fifo的空满状体需要上传给cpu,fifo为空的时候才能发起读命令,fifo满之后需要cpu驱动dma将fifo中的数据搬移,fifo的空满状态需要以中断的形式上报,所以需要输入fifo的空满状态
了解cpu需要获取那些状态信号
sd_fifo_re - fifo读请求
in_end_command - host发送完成,信号来自于sd时钟域,如果要使用这个信号需要对其进行打拍处理
in_end_cmd_and_resp - 表示当前命令和相应都结束了,resp结束之后,cpu会读取resp的寄存器,查看其中的内容
in_transfer_complete - 表示数据传输操作完成
sd_clk_enable - 软件时钟门控
hw_stop_clk - 硬件停止sd_clk模块时钟输出


dma_en - 软件的置位,是dma启动
clr_dma_en - 硬件的清0信号
sd_clk模块


sd_cmd_fsm





sd_cmd_send_shift_register模块


sd_cmd_receive_shift_register模块


sd_data_fsm
sd_data_send_shift_register模块
sd_data_receive_shift_register模块
SD Host控制器的系统集成的更多相关文章
- 8. [mmc subsystem] host(第二章)——sdhci
一.sdhci core说明 1.sdhci说明 具体参考<host(第一章)--概述> SDHC:Secure Digital(SD) Host Controller,是指一套sd ho ...
- 7. [mmc subsystem] host(第一章)——概述
一.host简单说明 host,也可以理解为host controller,是指mmc总线上的主机端,mmc总线的控制器,每个host controller对应一条mmc总线. host contro ...
- OpenRisc-30-SD card controller模块分析与验证
引言 ORPSoC的硬件平台是包含SD card controller控制器的,但是对应的linux里面却没有对应的linux的驱动程序,这使ORPSoC的SD card的使用收到了很大的限制.没有驱 ...
- sd 卡驱动--基于高通平台
点击打开链接 内容来自以下博客: http://blog.csdn.net/qianjin0703/article/details/5918041 Linux设备驱动子系统第二弹 - SD卡 (有介绍 ...
- Linux SD卡驱动开发(四) —— SD 控制器之真正的硬件操作
前面对SD卡控制器有了一个主要的介绍.事实上SD控制器层更过的意义是为core层提供一种操作SD卡硬件的一种方法.当然不同的控制器对硬件控制的方法不尽同样,可是他们终于都能像core层提交一个统一的封 ...
- linux驱动基础系列--Linux mmc sd sdio驱动分析
前言 主要是想对Linux mmc子系统(包含mmc sd sdio)驱动框架有一个整体的把控,因此会忽略某些细节,同时里面涉及到的一些驱动基础,比如平台驱动.块设备驱动.设备模型等也不进行详细说明原 ...
- 基于tiny4412的Linux内核移植 -- SD卡驱动移植(五)
作者信息 作者: 彭东林 邮箱:pengdonglin137@163.com QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本 ...
- STM32之SD卡
目录 一.SD卡概述 1.定义 2.容量等级 3.SD卡框图 4.SD卡与TF卡的区别 二. SD卡内部结构 1. SD卡内部结构简图 2. 存储阵列结构图 3.Buffer 4.“存储阵列Block ...
- 转:USB主机控制器(Host Controller)--深入理解
1. 主机控制器(Host Controller) • UHCI: Universal Host Controller Interface (通用主机控制接口, USB1.0/1.1) • ...
- SD card技术了解并WINCE下SDHC驱动开发(updated)
Suumary: 简单介绍了一下SD卡的历史和发展,同时结合MX31 ADS上的WINCE 下SDHC驱动更深入的了解该硬件的一些行为特点. 了解SD card SD是Secure Digital C ...
随机推荐
- 三维GIS渲染引擎盘点,以Cesium为核心的拓展优化
目前,以Cesium为核心的各类产品繁多,本文将挑选一些以Cesium为核心的软件案例,为大家进行介绍. 1. CesiumJS CesiumJS相信凡是GIS行业相关人员都特别熟悉了,CesiumJ ...
- mac如何访问同一wifi下的项目-mac-ru-he-fang-wen-tong-yi-wifi-xia-de-xiang-mu
title: mac如何访问同一wifi下的项目 date: 2022-03-28 20:14:06.341 updated: 2022-03-28 21:55:42.53 url: https:// ...
- ncurses 与 panel
ncurses 与 panel 一下是ncurses使用面板库panel的一个demo程序. #include <ncurses.h> #include <panel.h> # ...
- [Luogu 4912 帕秋莉的魔法] 题解报告
算法:DP, 背包,动态规划 简化版题目: 给定 \(n\) 个物品,物品的价值为 \(v_1 - v_n\),物品的体积为 \(w_1 - w_n\).需要选择一些物品,使它们的体积和为 \(V\) ...
- 日常Bug排查-应用Commit报错事务并没有回滚
日常Bug排查-应用Commit报错事务并没有回滚 前言 日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材_. 应用Commit报错并不一定回滚 事 ...
- 手把手教您在PyCharm中连接云端资源进行代码调试
摘要:ModelArts提供了一个PyCharm插件工具PyCharm ToolKit,协助用户完成代码上传.提交训练作业.将训练日志获取到本地展示等,用户只需要专注于本地的代码开发即可. 本文分享自 ...
- 华为云GuassDB(for Redis)发布全新版本推出:Lua脚本和SSL连接加密
摘要:9月8日,华为云GuassDB(for Redis)正式推出全新版本.新版本内核带来性能提升.无损升级.慢日志统计等多维度产品体验,同时推出Lua脚本和SSL连接加密两大重要功能,让业务设计更加 ...
- 告别数据开发中的人工审核!火山引擎 DataLeap 落地“自动校验开发规范”能力
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近期,火山引擎 DataLeap 智能市场上线"数仓建表规范"功能,该功能通过规范数仓场景下的 ...
- JS 判断域名并跳转到指定页面
判断访问指定域名,进行页面跳转 <!DOCTYPE html> <html> <head> <title>正在玩命加载中--</title> ...
- C#开源免费的Blazor图表库
前言 今天分享一款基于ApexCharts.js封装的.C#开源免费的Blazor图表库:Blazor-ApexCharts. 10款值得推荐的Blazor UI组件库 全面的ASP.NET Core ...