2011年3月22日 星期二

SD Card Driver Design (imple.)

話說SD卡的控制方式
大致上可分為三種
SD mode, SPI mode, SDIO
比較常見的為SD mode與SPI mode
(SDIO有, 但這方面本人並沒做太多survey)
其中SD mode又分成三線式(3-wire)與四線式(4-wire)
以3-wire最為常見
(4-wire似乎是為了UHS規格而新增的)

介紹控制方式之前
得先介紹一下SD卡內部的構造


sd.PNG

從上面的圖可以看到
在SD卡內是有一個控制器存在的
當然在它週邊也是存在著一堆暫存器
至於interface driver的部分
就看我們所使用控制的mode是哪一種
它會自行切換
(因為它採用"command flow"來決定控制模式)
圖中的pin assignment是採SD mode的方式
如果以SPI模式
pin assignment當然不一樣
下表為SD mode與SPI mode的差異

pin.PNG

至於為何會選擇SPI模式
是有幾個原因的
首先SPI在embedded system中是蠻常使用的一個module
通常會透過SPI interface與flash做bridge
如此一來可以省去自行設計SD Bus的困擾
也增加driver的portable(可攜性)
再者是因為SPI為series傳輸
針對單筆(或多筆)資料傳輸的正確性(correctness)比較高
相對產生data lost的機會也較小
最後是因為公司需求= = (這是無可抗拒之因素......)

說了這麼多
這篇SD卡驅動的方式呢
就是藉由SPI的傳輸模式來進行SD卡的控制
當然
假如看倌們是打算以SD mode來控制的話
接下來的文章參考就好
若剛好您有打算使用SPI mode來控制
相信這篇文章會對您有所幫助

在下一回, 應觀眾要求
在"有code有真相"的前提下
將會以"圖code並茂"的方式一一解說控制流程
敬請待續.......

1 則留言:

匿名 提到...

I'm linking this webpage from my personal weblog . this has all the usefull info necessary.

Here is my blog :: how to increase chances of getting pregnant