2011年3月21日 星期一

SD Card Driver Design (intro.)

SD卡算是目前在市面上
普為流行的隨身儲存媒介
講白話一點
就是隨處可見啦
當然, 在一個系統當中
SD卡是否支援
變成一個相當大的issue
除了apple不吃這套之外...
(但實際上它內部的記憶體也是用SD卡喔!!!)

SD卡之所以廣為使用
除了容量大之外
另一個最誘人的因素在於價格便宜
(so far 除了SDXC規格以外...)
而整體運作方式又與flash原理相通
因此只要做適當的初始化
我們就可以把一大~塊SD卡當成是個外接的記憶體
這對於一個embedded system的designer而言
是個既省成本又多空間的solution
(當然不敢保證performance)

廢話不多說
要認識女生之前
一定也要先打聽一下她的身家背景吧
運氣好點搞不好可以少奮鬥十年......
(以上純屬廢話, 請自行略過)

SD卡的外型分為SD miniSD microSD
只是外型大小不同, 功能是一模一樣的
(怎麼感覺有點A......)
在初期 SD卡是由MMC所轉變過來的
因為MMC卡對內部資料的保護性不高
很容易就會遭人複製, 產生法律issue
為了推廣防護性更佳的卡片
才在MMC卡中加入了安全機制
也就成為了現在的SD(Secure Digital)卡

隨著IC製程的進步(反正跟IC有關的一定會講到這句話)
SD卡的容量也越來越大
直到2G的時代出現了一些問題

首先是SD卡本身的問題
因為在SDA 1.x的規範中
SD卡最大內容量只定址在2G
但是SD控制器(SD卡內部的)卻已保留了延伸功能
有些廠商為了賺錢偷跑
擅自更改定址位址
破壞SDA的規範, 形成"偽"SD卡
所以市面上可以買到4G的SD卡
(注意喔, 是4G的SD, 不是4G的SDHC喔!!!)
這點並不符合當初SDA的預期
因此隨即推出了SD 2.0的規範
也就是現在所看到有SDHC的SD卡了
而SDHC最高定址在32G
如果要在高容量的話
就是要SDA 3.0的SDXC了

再者是檔案系統的問題了
這個部分我會另闢專區跟大家交流

SDA為了市面上已經流通的"非規格內"的SD卡
因此以2G劃下了一條界線
凡是超過2G的 一律規在SDHC
而2G的則有SD和SDHC

容量加大固然可喜可賀
但也產生了另一個嚴重的問題
就是傳輸速率
早期的SD卡傳輸速慮僅有1MB/s(甚至更慢)
到了後期才以class分級
共分五個等級 2, 4, 6, 8 ,10
分別表示 2MB/s 4MB/s 6MB/s 8MB/s 10MB/s
到了SDA 3.0時代
又制定了新的速度規格
UHS-I 104MB/s
並且已經宣告未來會走向312MB/s的UHS-II
不過那是在SDA 4.0的規範中

說到這裡
各位對SD卡是否已經有更一步的了解呢
不管你是否已經了解這些東西
接下來的文章才是重點喔
所以...(待續...)

沒有留言: