SD卡信号
<p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/d45399f389f762d6ca1e3ac8eb5b4ed7?showdoc=.jpg" alt="" />
<img src="https://www.showdoc.cc/server/api/common/visitfile/sign/a3aa145bdff1943ff648ff7dd8f58420?showdoc=.jpg" alt="" /></p>
<h3>SD卡相关寄存器</h3>
<p>SD卡内部有7个寄存器,其中OCR,CID,CSD和SCR寄存器保存卡的配置信息;RCA寄存器保存着通信过程中卡当前暂时分配的地址;卡状态(Card Status)和SD状态(SD Status)寄存器保存着卡的状态,这两个寄存器的内容与通信模式(SD模式或SPI模式)相关
<img src="https://www.showdoc.cc/server/api/common/visitfile/sign/4290492ed25b372aae3f9bb1315b92a5?showdoc=.jpg" alt="" /></p>
<h4>命令传输</h4>
<p>命令是用于启动操作的令牌。命令在<code>CMD</code>线上以串行的方式传输。所以命令都为固定长度48位。命令路径以半双工模式运行,因此可以发送和接收和响应。
最大支持64个命令:<code>CMD0~CMD63</code>(其中<code>CMD57~63</code>是保留的),另外还有<code>ACMD</code>应用命令。
(本章不打算详细介绍SD各条命令的含义,而且我们编写程序的时候也不会用到,只需大概了解一下即可)
<img src="https://www.showdoc.cc/server/api/common/visitfile/sign/3304859bb19557631f0117da39f4385f?showdoc=.jpg" alt="" />
<img src="https://www.showdoc.cc/server/api/common/visitfile/sign/98c5abc3ea04695aa05ef8bf32b57502?showdoc=.jpg" alt="" />
响应是一个令牌,作为对先前接收命令的应答,从卡发送到主机,响应在CMD线上以串行方式传输。
SDMMC支持两种响应类型,48位短响应和136位长响应。两种类型均使用CRC错误检验。
<img src="https://www.showdoc.cc/server/api/common/visitfile/sign/39988c64a043f11683797a83ab5eac51?showdoc=.jpg" alt="" /></p>
<h4>数据传输</h4>
<p>SD的读写操作是以块为操作对象。先发送命令开始传输,然后传输数据块,传输完数据块紧接着传输CRC检验值。最好发送停止命令停止数据传输。
<img src="https://www.showdoc.cc/server/api/common/visitfile/sign/75b1c7fffd6fd2f249541b317a170dae?showdoc=.jpg" alt="" /></p>
<h5>SD卡识别流畅图和数据传输流程图:</h5>
<p>(本章不打算详细介绍SD的状态图,编写程序的时候也不会用到,只需大概了解一下即可)
<img src="https://www.showdoc.cc/server/api/common/visitfile/sign/bc067121c948d23635762ceede70f855?showdoc=.jpg" alt="" />
<img src="https://www.showdoc.cc/server/api/common/visitfile/sign/609634839c1c1c6d926fbb685d10d183?showdoc=.jpg" alt="" /></p>