小型智慧卡如:多媒體卡(Multimedia Card;MMC)與安全數位卡(Secure Digital Card;SD Card)已成為許多消費性電子產品之必要設計:例如MP3隨身聽、手機、PDAs、數位相機、資料記錄器、GPS等等產品。雖然這些擴充卡設計提供給廣泛產品之使用,但是工程師在設計擴充卡所用的擴充槽前有許多需要考慮選擇之處;這些設計上的考量包含終端產品如何處理時脈延遲、匯流排種類選用、關閉模式選用,以及其他的選項。本文將提供最佳建議管理的方式。
時脈
對於工程師設計整合MMC卡與SD卡方面的產品,有著下列幾項重要時脈的相關問題。
時脈規格
產品設計工程師必須考量符合SD卡和MMC卡匯流排時脈上升、下降、結構與延遲方面所需之規格,假如工程師想讓其設計能支援MMC卡,時脈速度應可由主機來控制,主要因為MMC卡的open-drain mode;在open-drain mode下提供MMC卡電源,因此無法處理超過400kHz速度的時脈。一旦MMC卡完成啟動程序後,MMC卡就會切換到push-pull mode;在該模式下,MMC卡可以最快的時脈速度進行操作。
讀寫次數
對於產品設計正確性來說,讀寫次數也是相當重要的。假如無法符合讀寫的暫停時間值(time-out value),從MMC卡與SD卡上所讀寫的資料可能就會錯誤或無效。由於製造商所製造的MMC卡與SD卡有著不同的讀寫暫停時間值(time-out value),因此產品設計工程師必須確定產品的暫停時間值(time-out value)不得低於規格中所規定的最高值。MMC卡與SD卡的最高讀寫暫停時間值(time-out value)如(表一)所示。
MultiMediaCard and SD Card Maximum Read/Write Time-out Values |
Product |
Time-out Values |
MultiMediaCard Typical |
Maximum |
Read (TACC+NSAC) |
10*(TACC+NSAC) |
Write (TACC+NSAC)*R2W_FACTOR |
(TACC+NSAC)*R2W_FACTOR*10 |
SD CARD |
|
Read (TACC+NSAC) |
100ms |
Write (TACC+NSAC)*R2W_FACTOR |
250ms |
|
表一中計算數值所使用的因子──TAAC、NSAC和R2W_FACTOR可直接從MMC卡與SD卡的CSD暫存器讀取。TAAC因子的單位為時間,而NSAC因子以100個時脈為單位。利用數值乘以時s脈頻率將TAAC單位轉換為時脈週期,然後以時脈週期為單位來計算想要的暫停時間值(time-out value)。或者已知時脈頻率,則可將NSAC單位轉換為時間,然後以時間為單位再計算暫停時間值(time-out value)。
R2W_FACTOR為讀寫因子,產品設計工程師可使用由CSD暫存器所得知的暫停時間值(time-out value),不論客戶使用的產品品牌為何,均能進行所有MMC卡與SD卡的相容設計。
介面
MMC卡與SD卡能支援多重匯流排,這兩種卡均支援包含DATAin、DATAout、CLK和CS匯流排接腳的1-bit SPI匯流排;SPI匯流排一般裝設在Motorola及其它主要MCU製造商的產品內。
SD卡也能支援4-bit及1-bit SD雙向匯流排模式;在1位元模式中,SD匯流排接腳為CLK、CMD和DATA;而在4位元模式,則為CLK、CMD和DATA[0:3]。
MMC卡也能支援CLK、CMD和DATA匯流排接腳的1-bit MMC雙向匯流排模式;在SD 1-bit、SD 4-bit與MMC 1-bit模式中,CMD和DATA接腳為雙向性。MMC卡與SD卡能達到的最高瞬間速率,跟時脈速度及匯流排模式有關;瞬間速率為儲存卡緩衝器與主機之間的資料傳輸速率。
MultiMediaCard and SD Card Clock Speed and Burst Rate |
Product |
Maximum Clock Speed and Burst Rate |
MultiMediaCard Clock Speed |
Burst Rate 2.5MB/s |
SPI Bus mode |
20MHz 2.5MB/s |
MMC 1~bit mode |
20MHz |
SD Card |
|
SPI Bus mode 25MHz |
3.125MB/s |
SD 1-bit mode 25MHz |
3.125MB/s |
SD 1-bit mode 25MHz |
12.5MB/s |
|
MMC卡與SD卡的讀寫處理率比瞬間速率慢,這是因為每張儲存卡包含從緩衝器到其內部快閃記憶體的資料寫入處理時間,是包含從內部快閃記憶體到儲存卡緩衝器的資料讀取處理時間。由於大部分的產品設計使用這種讀寫處理時間方式來完成其他的處理程序,因此可以選擇1-bit或4-bit匯流排模式,讓SD卡具有提供4倍速的效果。
(表三)中所說明的範例顯示,512 bytes的資料使用不同匯流排模式的MMC卡和SD卡內部緩衝器移往間之差異性。
MultiMediaCard and SD Card Clock Speed and Burst Rate |
Product |
Maximum Clock Speed and Burst Rate |
MultiMediaCard Clock Speed |
Burst Rate |
SPI Bus mode 20MHz |
2.5MB/s |
MMC 1-bit mode |
2.5MB/s |
SD Card |
|
SPI Bus mode |
3.125MB/s |
SD1-bit mode |
3.125MB/s |
SD 4-bit mode |
12.5MB/s |
|
讀寫模式選擇
MMC卡與SD卡的另一主要設計考量就是使用單一區塊或多重區塊指令模式(Singleblock or Multiblock command modes),單一區塊模式(Singleblock mode)為在某一時間內讀寫單一區塊的資料;在停止指令收到後,多重區塊模式(Multiblock mode)才開始進行多重區塊資料的讀寫。
多重區塊模式(Multiblock mode)利用所有MMC卡或SD卡內所出現的多重區塊緩衝器,進行資料讀寫功能。在多重區塊模式(Multiblock mode)下,寫入時若單一區塊緩衝器裝滿資料,MMC卡或SD卡在進行第一個區塊寫入時,會給予主機存取填滿其他空著的區塊緩衝器。在所有區塊緩衝器填滿資料後,MMC卡或SD卡才會進入忙碌狀態。
在單一區塊模式(Singleblock mode)下,填滿第一個區塊時MMC卡或SD卡會強迫DATA線成為低電位,因而進入忙碌狀態;直到寫入程序完成後,才維持忙碌狀態。在此狀態時,因為MMC卡或SD卡會強迫DATA線成為低電位,所以主機無法送出任何額外的資料給MMC卡或SD卡。
假如速度在設計上為主要考量,多重區塊模式(Multiblock mode)在速度上較快故可建議使用此模式。在多重區塊模式(Multiblock mode)下可寫入越多的區塊,產品設計的性能也就越好。因此在規劃設計時,先確定設計足夠的系統記憶體來支援多重區塊功能,性能就會比額外增加記憶體的成本考量還要重要。假如速度不是相對重要時:以每分鐘只紀錄512 bytes的資料記錄器為例,單一區塊模式則比較合適。
電源與時脈控制
在使用MMC卡或SD卡進行產品設計時,電源控制也應為考量因素之一。MMC卡或SD卡可透過軟體來控制電源,讓產品設計上更具靈活性與完整性;不論MMC卡或SD卡為插入或拔出的狀態,主機可控制MMC卡或SD卡電源開關。MMC卡或SD卡插入時發生接觸反饋,這樣的功能可協助MMC卡或SD卡重新啟動;提供MMC卡或SD卡電源並開始啟動程序之前,主機會在MMC卡或SD卡插入後等待一段時間。同樣地,假如MMC卡或SD卡進入不明狀態,主機可將電源循環再次進入開始啟動程序。當不必要進行存取時,MMC卡或SD卡可讓主機關閉電源,匯流排則可降低電源消耗。
時脈控制則是MMC卡或SD卡在設計上的另一種考量,如同時脈部分所說明的,若設計上需要支援MMC卡,在啟動時則時脈頻率應該低於400kHz或更低。當啟動程序完成後,主機可以將時脈速度提升到MMC卡或SD卡的最高速度。
啟動規則
啟動規則僅需要考量支援MMC卡與SD卡或SD卡之產品設計,SD插槽實際上比較厚,所以MMC卡與SD卡可以插入。因此,主機需要能夠偵測哪一塊卡插入插槽。
當SD啟動指令優先使用時,這個指令會造成MMC卡傳回主機辨識插入卡型的錯誤。假如主機支援此兩種卡的話,則可繼續使用MMC指令來啟動;假如主機不被允許支援這兩種卡的話,主機則會發出錯誤訊息,教導使用者如何插入SD卡。假設產品設計使用MMC卡插槽的話,主機將會以MMC指令開始啟動程序。主機不需偵測哪一塊卡插入插槽,因為實體上SD卡並不會安裝在MMC插槽內。
檔案系統支援
SD卡與MMC卡一般以512 bytes作為讀寫量,但是清除量通常發生在較大的區塊上。現今大多供應商所使用的NAND架構,要視儲存卡的容量,分別為32或64個512 bytes的區塊清除大小;為了重新寫入單一512 bytes區塊,所有屬於同一清除區塊的其他區塊會被清除,而且將會被重新寫入。
例如:若將檔案寫入FAT檔案系統的設計中,則需要三個FAT系統區寫入/更新方式,以及一個資料區寫入/更新方式來完成檔案寫入。第一,必須用新檔名來更新目錄;第二,實際的檔案被寫入資料區;第三,以檔案資料位置來更新FAT表;最後,會以檔案修改的開始位置、大小、日期與時間來更新目錄。因此,選擇檔案大小寫入設計時,檔案大小應該儘可能的大,同時為清除區塊大小的倍數;這樣才可符合此架構的要求。
有些設計會更新每個寫入資料檔案叢集的FAT table,這樣會降低寫入的效能,因為FAT table時常會被清除與被重新寫入;最佳的方式就是寫入所有的檔案叢集,然後更新FAT table一次,在清除區塊倍數時間內,避免所有區塊清除和重新寫入時發生重疊。在此不建議將其生產的產品作為生命維持系統方面之應用,尤其在產品故障時可能直接威脅著人類的生命或造成傷害。(本文由SanDisk撰寫;正達國際提供)
產業縱橫:SanDisk簡介 |
SanDisk為全球專業具規模性的快閃記憶裝置(Flash Memory Card)品牌,由Eli Harari 於1988年創立於美國加州,專精於設計、
研發、製造以及行銷快閃記憶裝置,1995年以SNDK上市於美國NASDAQ,至今員工人數已達800餘人,所設立的80萬個行銷據點片佈全球,涵蓋了
中國、台灣、香港、澳洲、紐西蘭、馬來西亞、菲律賓、日本、德國、瑞典、英國等地。
SanDisk為提供客戶所有記憶卡的需求,提供全系列各式記憶卡,包括CF Card、SD Card、MMC、Smart Media、Memory Stick、Memory Stick
Pro、xD等,除了記憶卡外,SanDisk提供更多元的配套週邊產品,如讀卡機、數位照片播放器、無線網路卡、隨插即用存取碟等,如此多元的
系列商品,目的即是為了滿足消費者的數位生活,豐富消費者的數位體驗。 |