前言:
老衲我近期研究的是sd/mmc卡驅動,研究過的sd/mmc驅動的貧僧們都應該知道sd/mmc協議是必不可少的一部分,除非你不想研究透sd/mmc驅動,那你大可只研究driver/mmc/host目錄下的檔案即可。說到sd/mmc協議,網上一搜,sd3.0的協議只有英文版的資料,要想真正理解協議,英文水平差的貧僧就可吃力了,老衲英文水平實在是一般,但是網上對sd3.0協議的解讀相關的中文資料實在是少的可憐。老衲怒想寫寫對sd3.0協議的理解,於是這一系列的sd3.0協議解讀將會陸續問世.....
系統特徵:
卡容量:
1.標準容量卡(sdsc):最大容量為2gb
2.高容量卡(sdhc):容量大小為2~32gb的卡
3.擴充套件容量卡(sdxc):容量大小為32gb~2tb的卡
問:這有什麼用呢?在**會用到?
答:sd卡一般作為外接擴充套件容量,那麼不同使用者用的卡肯定不一樣,那為了區分不同的卡,sd3.0協議中在初始化和識別卡的過程中會判斷使用者插入的卡是sdsc/sdhc/sdxc中的哪一種卡,比如在r3中的第38bit的ccs = 0b時,表示插入的卡為sdsc卡,而ccs = 1b時,表示插入的卡為sdhc或者sdxc卡。不同的卡在cammand和response中有微小的區別,具體用到的時候再回頭再說。
電壓範圍:
工作電壓範圍為:2.7~3.6v
問:告訴你電壓範圍有什麼用呢?
答:卡的工作不是單邊性的,它是和cpu理的卡控制器(host)之間互動的,那麼host端也有自己支援的電壓,card端也有自己支援的電壓,而這二者支援的電壓或許不一樣。比如:host支援1.8~3.8v,而card支援2.7~3.6v,而協議就是完成取交集的作用,幫助host和card協調乙個大家都支援的電壓。
卡的屬性:
卡可以設計為只讀卡和可讀/可寫的卡
四線匯流排速率模式:
大家都應該看的懂什麼意思吧?英文水平不至於比老衲還差吧?實在太差的就裝個金山詞霸唄~~這裡要解釋二個縮寫,sdr的意思是single data rate(單邊資料取樣,換句話說就是,要麼上公升沿取樣,要麼下降沿取樣),ddr的意思是double data rate(雙邊資料取樣,換句話說,雙邊沿取樣)。
注意了,這些匯流排速率模式是在四線的模式下才支援的,如果是1線的模式下,那可能就不一樣了,而且並不是所有的host都支援所有的模式,比如並不是所有的cpu都支援sdr104模式,這個需要很強的io輸入輸出能力,即便你的主頻可以跑1.8ghz,但是到了sd卡這邊的io可不一定支援208mhz,這個具體要看cpu的spec。
好了,這篇就寫這麼多,注意了,老衲並不是單純的將sd3.0的英文協議翻譯過來,翻譯只是對英文的解析,這並不是對協議的理解,這裡是解讀協議!
SD3 0協議解讀三
sd卡功能描述 所有主機和sd卡間的通訊都是由主機控制的,這和usb是一致的,例如 u盤並沒有主動通知usb控制器的能力,usb滑鼠也沒有主動通知usb控制器的能力,當然,sd卡也是沒有主動通知sd控制器的能力的。主機傳送的命令有兩種,一種是一對多,另一種自然是一對一了,他們分別是 1.廣播命令 廣...
SD3 0協議解讀四
前面的文章提到過sd卡主要分為兩個操作模式,一是初始化和識別操作模式,另一種就是這篇文章需要分析的資料傳輸模式啦。資料傳輸模式 資料傳輸模式主要有六種狀態,分別是stand by狀態 transfer狀態 sending data狀態 receive data狀態 programming狀態 dis...
SD卡協議學習點滴(一)
首先sd卡有所謂操作模式 operation mode 的概念,每種操作模式又具體對應一種或多種狀態,主機通過傳送命令可以使sd卡在不同的狀態間轉換,sd卡則接受命令,並根據自己現在所處狀態做出不同的響應。系統上電時刻或者搜尋sd卡時,sd卡控制器應該處於sd卡識別模式 sd卡在剛接入系統時刻也處於...