在上一篇博客中,我写了NANDFLASH的相关操作,书接上文。由于不同厂家生产的NANDFLASH在接口时序、内部组织架构等方面的不同,导致其在移植时比较麻烦。
与之相比,MMC卡/SD卡有统一的接口,统一的协议,并且将NANDFLASH卡片化。而eMMC(embedded MMC)是将MMC卡做成嵌入式芯片的形式,满足了现代嵌入式对芯片体积的要求,而且eMMC与SD卡的各种操作基本一致
iNAND则是eMMC的代表之一。

1. iNAND与SD卡接口



有以下几点需要注意:

  • SD卡与iNAND都由数根数据线,一根命令线,一根时钟线组成。
  • iNand的IO线有8根,支持1、4、8线并行传输模式;SD卡IO线有4根,支持1、4线并行传输模式。
  • SD/iNAND的控制是有时钟线的,Soc会给SD/iNAND一个时钟信号,跟NANDFLASH使用各种使能线来控制的方式不同。

2. SD/iNAND的控制——命令+响应

2.1 命令

对于SD卡/iNAND的控制都是依赖于发送命令与接收响应的。下图是从SanDisk的资料“SD卡的官方资料”中截出来的部分指令。


注意,除了CMD命令之外,还有ACMD指令,ACMD指令是由两个CMD指令组合而成,可以认为ACMDx = CMDy+CMDz(y一般是55)。

2.2 响应

有的指令需要响应,有的指令不需要响应。
同样从上面的文档中摘取一种响应,如下。


响应类型R3长度为48位,是ACMD41指令的回复,其主要内容是将SD卡的OCR寄存器的内容发送到Soc,数据格式如图所示。

2.3 卡状态

SD/iNAND有不同的状态,如空闲状态、数据发送状态、断开连接状态等,**在不同的状态下能处理的命令是有差别的。**SD卡本身的控制器相当于一个状态机,从下图可以看出。


对图中内容稍作解释:SD卡在初始化之后将进入”Stand-by State”状态,接收到CMD7后,将进入”Transfer State”,做好了数据传输的准备,这时如果接收到的是”CMD 6,17,18,30,56/ACMD 13,22,51”中的一个将进入”Sending data State”开始发送数据,发送完成或是接收到CMD12命令将会回到”Transfer State”状态。

3. SD/iNAND的初始化操作

初始化过程包括:配置响应的IO口,设置Soc控制器和SD的操作时钟,确定接在Soc上的卡种类(SD V1/SD V2/SD HC/MMC)。其中,确定卡种类的流程图如下所示。


包括读写SD卡以及上述初始化过程,根据现成的程序查询数据手册慢慢看就好了。

S5PV210 iNAND/SD卡相关推荐

  1. S5PV210裸机之SD卡

    主流的外存设备介绍 内存和外存的区别: 一般是把这种RAM(random access memory,随机访问存储器,特点是任意字节读写,掉电丢失)叫内存,把ROM(read only memory, ...

  2. S5PV210体系结构与接口09:SD卡启动详解

    目录 1. MMC技术演进 1.1 NandFlash & NorFlash芯片 1.2 MMC卡 & SD卡 & MicroSD卡(TF卡) 1.2.1 代际关系 1.2.2 ...

  3. ARM芯片开发(S5PV210芯片)——SD卡启动

    1.SD卡启动 顾名思义就是启动代码存放在SD卡中,设备从SD卡中启动.用SD卡启动有一些好处:譬如可以在不借用专用烧录工具(类似Jlink)的情况下对SD卡进行刷机,然后刷机后的SD卡插入卡槽,So ...

  4. S5PV210开发与学习:1.1烧写系统:SD卡、fastboot、DNW刷机

    1.开发板示意图 2.刷系统 就是利用刷机工具,向开发板中烧录预先编译好的系统镜像,使之在开发板上运行起来. //默认的启动命令设置 x210 # printenv bootcmd=movi read ...

  5. S5PV210开发系列五 sd卡驱动实现

    SD卡(Secure Digital Memory Card)具有体积小.容量大.数据传输快.可插拔.安全性好等优点,被广泛应用于便携式设备上.例如作为数码相机的存储卡,作为手机.平板多媒体扩展卡用的 ...

  6. 第十一天: SD卡原理分析及SD卡启动详解

    主流的外存设备 内存和外存的区别: 一般是把这种(random access memory,随机访问存储器,特点是任意字节读写,掉电丢失)叫内存,把ROM(read only memory,只读存储器 ...

  7. 外设篇:SD卡等外存设备

    主流的外存设备介绍 内存和外存的区别:一般是把RAM(random access memory,随机访问存储器,特点是任意字节读写,掉电丢失)叫内存,把ROM(read only memory,只读存 ...

  8. 常见存储介质介绍以及SD卡启动系统方法

    主流的外存设备介绍 内存和外存的区别: 一般是把这种RAM(random access memory,随机访问存储器,特点是任意字节读写,掉电丢失)叫内存: 把ROM(read only memory ...

  9. ARM裸机的知识点总结---------10、SD卡启动详解

    Author: 想文艺一点的程序员 自动化专业 工科男 再坚持一点,再自律一点 CSDN@想文艺一点的程序员 来自朱有鹏嵌入式的学习笔记 目录 一.主流的外存设备介绍 1.磁存储 2.Flash存储. ...

最新文章

  1. LLVM一些语法规则
  2. TFF 官方demo解释
  3. 【Paper】2013_Cooperative control of multi-agent systems 二阶动态一致性
  4. 编写优秀缺陷报告(Bug report)的艺术
  5. 《Linux高性能服务器编程》学习笔记
  6. 查看回调函数执行在那个线程中的方法
  7. 追新求快的时代,别让 Java Web 开发必备工具 Tomcat 变成“熟悉的陌生人”!
  8. JS、Java、C 依然强势,Go、Kotlin、Python 成为潜力股,2020 开发者生态系统报告揭晓!...
  9. 关于Django ORM filter方法小结
  10. C#利用Process关闭所有的IE窗口
  11. 一张图解释什么是遗传算法_什么是智慧水务决策支持系统?从一张图说起
  12. 【笔记篇】01初识供应链——之《实战供应链》
  13. VOC2007数据集
  14. 串行通讯控制器8250
  15. 经纬度坐标二维数组检验正则表达式
  16. android studio代理设置
  17. 记一次失败的项目经历
  18. bat——批量删除文件文件夹
  19. 链改重塑信任,打造零风险的产业生态体系!
  20. 【编译原理】构造产生如下语言的上下文无关文法各一个:

热门文章

  1. Java实现 LeetCode 765 情侣牵手(并查集 || 暴力)
  2. 微信如何根据经纬度坐标查询具体地理位置
  3. linux wifi6,iPhone11支持WiFi6是什么意思 WiFi 6是什么东西
  4. 安卓开发 Fragment的简单使用与解析
  5. SDKMAN 安装软件失败
  6. 八大排序算法--堆排序
  7. 一文彻底弄清4G/蓝牙/WiFi/TCP/IP之间的关系
  8. 计算机网络基础之数据链路层的功能与服务
  9. OpenGL地球(自转+贴图)
  10. 【无人机航测实习简明教程】1 无人机航测常见名词术语解释