S5PV210 iNAND/SD卡

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Setul/article/details/78975844

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

1. iNAND与SD卡接口


iNAND接口
这里写图片描述

有以下几点需要注意:

  • 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卡以及上述初始化过程,根据现成的程序查询数据手册慢慢看就好了。

猜你喜欢

转载自blog.csdn.net/Setul/article/details/78975844
今日推荐