在這篇文章,進入正題,說一說怎么通過FPGA采取SD模式來實現Micro SD 卡的驅動,也就是怎么去讀寫 Micro SD 卡。
1 先來看看 Micro SD 卡的引腳:
【Micro SD 引腳】
【Micro SD 卡座原理圖】
除開電源相關引腳,其他可用的管腳都連接到了 FPGA 上。
對于這些引腳的介紹,先看下 SD 協議手冊上對于 SD 總線的引腳描述:
這個表格上的引腳描述是給的 SD 卡的引腳信息,與Micro SD 卡的引腳序號是不一樣的,大家要辯證對待,主要是參考下 Micro SD 卡各引腳的介紹。
從表格中的引腳信息也可以看出,Micro SD 卡是兼容 SPI 操作模式的。
2 在正式操作 Micro SD 卡之前,需要對其進行初始化。初始化的操作可以參考下面兩個流程圖。
【SD 卡的識別流程】
這個圖告訴咱們可以通過 CMD0 + CS置0 進入 SPI 模式。
【SD 模式下的初始化和識別流程】
初始化完成了,咱們就需要看到另外一個圖了。
在初始化流程中,執行 CMD3 之后就實現了從 card identification mode 到 data transfer mode 的跨越。
進入到 data transfer mode ,就可以對 SD 卡進行數據傳輸了,也就是讀寫操作。
3 根據上面的三個流程圖,自己再看看手冊,找找相關的指令怎么實現,其實就可以正常的操作 SD 卡了。說完上邊的三個流程圖,其實這篇文章也可以結束了。不過,這種說一半藏一半,完全不是我的風格。我們再繼續說一說流程圖中的這些指令如何實現。
SD 模式的命令格式如下:
命令總共由 48 bit 組成,start bit 總是為0,表示命令的開始,最后一個bit,也就是 end bit 總是為 1 。這種方式倒是和 IIC 的 SDA 數據線有點類似。當主機沒有發送命令時,可以將 CMD 這根管腳拉高,你要是不小心把 CMD 這根線拉低了,那 Micro SD 卡有可能就會當成是一個命令的開始。
transmitter bit:為 1 ,表示這是從主機到 SD 卡的命令,表示命令方向。
CRC:有7個bit,也就是用的CRC7。
以CMD8為例,可以看看命令格式到底是怎么樣的。
具體的命令參數,還需要根據很多情況進行設定。
命令索引和參數都確定好之后,剩下的就是怎么來搞定 CRC 7 ?
對于 CRC 7 ,咱們就直接貼代碼吧。
這些值都確定好之后,再通過 CMD 這個管腳串行的發送出去就可以了!
對于有寫命令,會收到 Micro SD 卡的響應。而對于不同的操作指令,也會有不同的響應。
而不同的響應,與之對應的就是在 CMD 線上收到 Micro SD 卡發送的不同數據。
有些指令前面有字母 A,如下圖所示:
那這些指令與沒有帶字母 “A” 的指令有什么區別呢?
以 ACMD6 為例,它要先執行 CMD55 ,之后再執行類似于 CMD6 指令,就是說ACMD6 是由兩個指令組合在一起的。
4 說完指令,接下來再說一說怎么寫數據,怎么讀數據。
寫數據和讀數據都是這樣的數據包格式,start bit總是為0,end bit 總是為 1 。
在執行完寫指令之后,相應的在DAT 數據線上構造這樣的數據包格式就行。
在執行完讀指令之后,相應的在DAT 數據線上就會接收到這樣的數據包格式。
稍復雜一點的,也就是如何構造 CRC,數據包使用的是 CRC 16。
5 咱們現在基本上已經把 Micro SD 卡的操作流程都已經說完了。接下來說一說我在這個項目中從初始化到讀寫數據的命令執行流程是怎么樣的。
CMD0 -> CMD8 -> ACMD41 -> CMD2 -> CMD3 -> CMD 7 -> ACMD6 -> CMD25 (WRITE_MULTIPLE_BLOCK ) / CMD17 (READ_SINGLE_BLOCK)-> CMD12。
好了,這篇文章寫到就結束了。
我自己寫的這個項目的完整代碼,畢竟這是人家花了錢的,是絕對不會公開的,所以大家也不用在微信里邊私聊我要代碼了哈!
但是可以附上一套源碼給大家參考,這套代碼是 Lattice 給出的 關于 SD 卡控制器的 IP Core。當時 Kevin 也是參考了這個 IP Core 的一些代碼才順利的調通。
審核編輯:湯梓紅
-
FPGA
+關注
關注
1629文章
21736瀏覽量
603319 -
原理圖
+關注
關注
1298文章
6343瀏覽量
234027 -
Micro
+關注
關注
2文章
262瀏覽量
34839 -
SD卡
+關注
關注
2文章
565瀏覽量
63899 -
引腳
+關注
關注
16文章
1196瀏覽量
50476
原文標題:基于FPGA的Micro SD卡控制器(SD模式實現)
文章出處:【微信號:FPGA研究院,微信公眾號:FPGA研究院】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論