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 ...
随机推荐
- IntelliJ IDEA下载安装,以及关联gitee
https://www.jetbrains.com.cn/ 点击下载 IntelliJ IDEA Ultimate 旗舰版(收费) IntelliJ IDEA Community 社区版(免费) 安装 ...
- 基于Docker 部署 Seafile+OnlyOffice+Wiki插件
原文:基于 Docker 部署 SeafilePro + OnlyOffice(CentOS版) 官方文档:用 Docker 部署 Seafile 服务 CentOS 服务器 基于 Docker 部署 ...
- JPA复杂查询时间查询分页排序
JPA复杂查询时间查询分页排序 JPA复杂查询时间查询分页排序,工作上用到,因为项目是jpa,记录.代码囊括了:查询条件+时间范围+分页+排序 其实我也不太想用jpa,但是他也有优点,操作可以兼容多种 ...
- 面试Java时碰到过的那些问题
项目终于忙完了,难得不加班,但回到家中却不知道干啥,打开自己的云笔记,看到了以前面试时碰到的一些面试题,下面将会把以前面试时被问到的问题都分享出来,下面的题看看小伙伴们可以答的怎样吧 HashMap实 ...
- vue强制横屏
在app.vue中 <template> <div id="app"> <router-view /> </div> </te ...
- 第3章-图形处理单元-3.2-GPU管线概览
3.2 GPU管线概览 GPU实现了第2章中描述的概念:几何处理.光栅化和像素处理流水线阶段.这些阶段被分为几个具有不同程度的可配置性或可编程性的硬件阶段.图3.2显示了根据可编程或可配置程度对各个阶 ...
- 4大特性看Huawei Cloud EulerOS为开发者带来平滑迁移体验
摘要:本期<解密Huawei Cloud EulerOS算力释放技术>主题直播中,华为云DTSE技术布道师陆维迪通过剖析传统OS上云面临的性能,安全,弹性等问题,与开发者们分享Huawei ...
- TML转义字符:xss攻击与HTML字符的转义和反转义
xss与转义符 xss简单来说: XSS 攻击是页面被注入了恶意的代码 XSS 漏洞是 可以让攻击者注入恶意代码可执行的漏洞 具体参看之前写的: web开发前端安全问题总结--web前端安全问题汇总 ...
- ElasticSearch 实现分词全文检索 - filter查询
目录 ElasticSearch 实现分词全文检索 - 概述 ElasticSearch 实现分词全文检索 - ES.Kibana.IK安装 ElasticSearch 实现分词全文检索 - Rest ...
- 【设计模式】分享 Java 开发中常用到的设计模式(一)
分享 Java 开发中常用到的设计模式(一) 前言 不知道大家在开发的时候,有没有想过(遇到)这些问题: 大家都是按需要开发,都是一个职级的同事,为什么有些人的思路就很清晰,代码也很整洁.易懂:而自己 ...