Linux设备驱动程序架构分析之SD Spec摘要
作者:劉昊昱?
博客:http://blog.csdn.net/liuhaoyutz
?
本文是對SDSpecifications Part 1 Physical Layer Simplified Specification Version 4.10的摘要記錄,具體信息可參考該文檔。
?
3、SD Memory Card System Concept
3.1 讀-寫屬性
按照讀/寫屬性分,SD Memory Card可以分為兩種類型:
u? Read/Write(RW) cards(例如Flash,One TimeProgrammable - OTP,Multiple Time Programmable - MTP)。這種類型的卡通常以空白卡的形式銷售,用來存儲數據、用戶視頻、音頻、圖片等等。
u? Read Only Memory(ROM) cards。這種卡內容是固定的,不能更改或刪除,通常用來分發軟件、音頻、視頻等等。
?
3.2 工作電壓
按照工作電壓分類,SDMemory Card可以分為兩種類型:
u? High Voltage SD Memory Cards,工作電壓為2.7 - 3.6V。
u? UHS-II SD Memory Card,工作電壓 VDD1為2.7 - 3.6V, VDD2為1.7 - 1.95V
?
3.3 卡容量
3.3.1 用戶空間和保護空間
SD Memory Card有兩種相互獨立的存儲空間:用戶空間和保護空間。用戶空間是主要的存儲空間,而保護空間必須通過認定機制才能訪問。卡容量是用戶空間和保護空間的總和。
?
3.3.2 卡容量分類
按照卡容量,SDMemory Card可以分為三類:
u? Standard Capacity SD Memory Card(SDSC),支持的容量最大為2Gbytes。
u? High Capacity SD Memory Card(SDHC),支持的容量從2G到32G bytes。從Physical Layer SpecificationVersion 2.00開始支持這種卡。
u? Extended Capacity SD Memory Card(SDXC),支持的容量從32Gbytes到2TB。
?
3.4 速度分類
SD Memory Card的速度可以分為5個級別:
u? Class 0,它包括Physical Layer Specification Version 2.00之前的所有早期卡,不考慮其速度性能。
u? Class 2,速度大于或等于2MB/sec。
u? Class 4,速度大于或等于4MB/sec。
u? Class 6,速度大于或等于6MB/sec。
u? Class 10,速度大于或等于10MB/sec。
SDHC和SDXC卡的速度級別必須大于或等于Class2。
?
3.5 總線拓撲
空
?
3.6 總線協議
3.6.1 SD總線協議
SD總線通信基于命令和數據流。
u? 命令:命令是標志著一個操作開始執行的令牌。命令從host發出,可以傳遞給單個Card(單一地址命令),也可以傳遞給所有連接的Card(廣播命令)。命令在CMD線上串行傳輸。
u? 應答:應答是一個Card或所有連接的Card發送給host的一個令牌,做為對前面接收到的命令的回應。應答在CMD線上串行傳輸。
u? 數據:數據可以從card傳送到host,也可以從host傳送給card,數據的傳輸是通過數據線進行的。
card地址是一種動態分配的會話地址,在卡的初始化階段分配。我們將在第4章介紹命令、應答、數據的具體結構。最基本的傳輸是命令/應答傳輸,如下圖所示:
這種傳輸直接通過命令/應答傳遞信息,但是,有些操作需要傳輸數據。
數據傳輸以塊為單位進行,數據塊之后緊跟著CRC校驗位。我們可以定義傳輸單個數據塊或傳輸多個數據塊。多個數據塊傳輸以一個stop命令結束。host可以配置數據傳輸使用一條或多條數據線。
塊數據傳輸如下圖所示:
塊寫操作使用在DAT0數據線上的一個busy信號表明寫操作正在進行中,不論數據傳輸過程中使用了多少根數據線。
命令具有如下格式:
每個命令由一個起始位0開始,由一個結束位1結束。命令由CRC校驗位進行校驗,命令長度為48個bit。
應答依據其內容,有4種格式,如下圖所示:
應答長度為48 bit或136 bit。具體定義我們將在第4.7節介紹。
在CMD線上,最高有效位(MSB, Most Significant Bit)先傳送,最低有效位(LSB, Least SignificantBit)最后傳送。
當使用寬總線模式,數據一次傳輸4 bit,每條數據線上有自己對應的開始位、結束位和CRC校驗位,CRC校驗報告和Busy報告只通過DAT0數據線傳遞給host,此時,DAT1 – DAT3被忽略。
對于SD卡,有兩種數據包格式:
l? Usual data(8-bit width):usual data的最低有效字節(Least Significant Byte)首先傳送,最高有效字節(Most Significant Byte)最后傳送。但是在每個獨立的字節中,最高有效位(MSB, Most Significant Bit)先傳送,最低有效位(LSB, Least Significant Bit)最后傳送。
l? Wide width data(SD Memory Register):wide width data從最高有效位開始傳送。
?
3.6.2 SPI總線協議
我們將在第7章詳細介紹SPI總線協議
?
3.6.3 UHS-II總線協議
UHS-II總線協議的內容在UHS-II附件中介紹。
?
3.7 SD Memory Card引腳與寄存器
3.7.1 SD總線引腳分配
SD卡尺寸為24mmx 32mm x 2.1mm或者24mmx 32mm x 1.4mm,其外形和引腳如下圖所示:
下表描述了SD卡的引腳:
每個SD卡中都有如下表所示的寄存器,我們將在第5章對這些寄存器進行詳細說明:
host可以通過將供電電源關閉再打開而達到重置SD card的目的。每個SD card都有自己的上電檢測電路,上電后,SD card將進入一個預定義的狀態。host也可以發送GO_IDLE(CMD0)命令讓SD card進入重置狀態。
?
3.7.2 UHS-II引腳分配
UHS-II Card外形如下圖所示:
UHS-II的引腳安排在第二行,第一行引腳在非UHS-II模式下與SD Card引腳作用完全相同。在UHS-II模式下,第一行中的第7和8針引腳用作PCLK。
UHS-II引腳的作用如下表所示:
UHS-II Card在UHS-II模式下不使用SD I/F相關引腳。host不能將這些未使用的引腳懸空,而應該將它們保持在一個預定義的高或低電平,怎樣保持依賴于具體host的實現。例如使用上拉電阻,或者host不使用上拉電阻而直接驅動這些線為低電平。
在休眠狀態下,未使用的線應該在關閉VDD1之前被設置為低電平。
?
3.8 ROM Card
ROM Card是只讀的存儲器,一個永久或臨時寫保護的SD Card不屬于ROM Card。
ROM Card滿足下面的要求:
3.8.1 寄存器設置要求
下表是ROM Card的寄存器設置要求:
?
3.8.2 不支持的命令
ROM Card認為下面的命令是非法命令:
CMD24、CMD25、CMD27、CMD28、CMD29、CMD30、CMD32、CMD33、CMD38
?
3.8.3 可選命令
ROM Card認為下面的命令是可選命令
CMD42、安全命令
l? 如果不支持CMD42命令,CCC的第7位應該被設置為0。此時CMD42被認為是非法命令。
l? 如果ROM Card支持CMD42,應該通過預先設置密碼支持“Unlocking the card”和“Locking the card”功能。當接收到CMD42的其它不支持的功能時,標示LOCK_UNLOCK_FAILED。
l? 如果不支持安全命令,SD_SECURITY應該被設置為0,此時安全命令被認為是非法命令。
l? ROM Card不支持寫或擦除保護區域。
?
3.8.4 WP開關
一個full-size的ROM Card沒有WP開關。
?
3.9 Ultra High Speed Phase I(UHS-I)Card
UHS-I在4-位 SD總線單一接口的情況下支持最高104MB/sec的傳輸速度。
3.9.1 UHS-I Card操作模式
l? DS:Default Speedup to 25MHz 3.3Vsignaling
l? HS:High Speed upto 50MHz 3.3V signaling
l? SDR12:SDR up to25MH 1.8V signaling
l? SDR25:SDR up to50MH 1.8V signaling
l? SDR50:SDR up to100MH 1.8V signaling
l? SDR104:SDR up to208MH 1.8V signaling
l? SDR50:SDR up to50MH 1.8V signaling
注意:1.8V信號時鐘與3.3V不同
?
3.9.2 UHS-I卡類型
UHS-I支持兩種類型的卡:
l? UHS50
l? UHS104
UHS-I不支持SDSC卡,支持SDHC和SDXC卡。
下面的兩幅圖顯示了UHS-I支持的模式:
?
3.9.3 UHS-I host與card的連接
host可以使用SDR50、DDR50和SDR104模式連接UHS50卡或UHS104卡。
下表顯示了不同類型的host和card連接時UHS性能:
UHS-I對于可插撥卡假設只有一個卡連接到總線上。最高性能104MB/s只有有host支持SDR104模式并且card是UHS104卡(支持SDR104模式)。如果卡是UHS50卡,或者host不支持SDR104模式,性能則會被限制在50MB/s以內。
?
3.9.4 UHS-I總線速度模式選擇流程
上圖顯示了使用UHS-I的命令流。上電后,card處于3.3V信號模式。第一個命令CMD0選擇總線模式:SD模式或SPI模式。1.8V信號模式只能使用SD模式。一旦card進入1.8V信號模式,除非重新上電,card就不能切換到SPI模式或3.3信號模式。如果card收到CMD0命令,card就進入idle狀態但是仍然以SDR12時序在工作。UHS-I只支持SD模式,而不支持SPI模式。
因為高總線速度需要低電平信號,UHS-I為SDR50、DDR50、SDR104模式采用1.8V電平,card仍然使用由host提供的3.3V電源,SDCLK、CMD和DAT[3:0]采用由3.3V電源線轉換過來的1.8V電平信號。為了避免host和card之間電平不匹配,在初始化階段使用電壓切換器改變電平信號。host和card使用ACMD41命令通信是否支持1.8V信號模式。如果host和card都支持1.8V電平,則表示可以使用UHS-I。CMD11調用電壓切換流程。card進入UHS-I模式,當電壓切換成功后,card的輸入輸出時序都發生變化(默認為SDR12)。
除了CMD42,UHS-I只支持4位總線模式。如果卡被鎖定,host需要使用CMD42在1位模式下解鎖卡,然后發出ACMD6轉換為4位總線模式。
host可以通過CMD6 Function Group 3選擇合適的output driver strength。
host可以通過CMD6 Function Group 1選擇一種UHS-I模式。
當卡被解鎖后,CMD19可以執行1.8V信號模式轉換,其它情況下,CMD19被認為是非法命令。
?
3.9.5 UHS-I系統模塊圖
空
?
3.9.6 UHS-I card總線速度模式總結
下表顯示了不同總線速度模式下對card的需求:
下表顯示了對于不同的card類型,可選/強制(option/mandatory)的總線速度模式:
?
3.10 Ultra High Speed Phase II(UHS-II)Card
3.10.1 UHS-II Card操作模式
SD總線接口模式
l? DS:Default Speedup to 25MHz 3.3V signaling
l? HS:High Speed upto 50MHz 3.3V signaling
l? SDR12:SDR up to25MHz 1.8V signaling
l? SDR25:SDR up to 50MHz1.8V signaling
l? SDR50:SDR up to 100MHz1.8V signaling
l? SDR104:SDR up to 208MHz1.8V signaling (Optional)
l? DDR50:DDR up to 50MHz1.8V signaling (Optional forStandard Size Card)
UHS-II接口模式
l? FD156:Full Duplexmode up to 156MB/s at 52MHz in Range B
l? HD312:Half Duplexwith 2 Lanes mode up to 312MB/s at 52MHz in Range B (Optional)
?
3.10.2 UHS-II Card類型
UHS-II只支持一種卡類型。
l? UHS156:這種類型的UHS-II卡在FD156模式下速率可達到1.56Gbps,在HD312模式(可選)下可達到312Gbps。
?
3.10.3 UHS-II host與card的連接
?
3.10.4 UHS-II接口選擇流程
支持UHS-II的host將同時支持SD Bus Interface (I/F)和UHS-II I/F??梢苿覷HS-II卡槽也將同時支持這兩種I/F。所以,UHS-II卡可以初始化為UHS-II模式也可以初始化為SD總線模式。
下圖顯示怎樣選擇UHS-II模式。上電后,UHS-II卡的SD bus I/F和UHS-II I/F都被使能。支持UHS-II的host提供PCLK和STB.L到D0線。host等待D1線將EIDL改變為STB.L,如果STB.L在D1線上被檢測到,host就開始初始化UHS-II.如果經過200us后,D1線上仍沒有檢測到STB.L,host就初始化card為SD Bus I/F模式。
?
下圖顯示了UHS-II初始化流程。第一步是PHY初始化。PLL被激活并同步。在結束PHY初始化之前,SD Bus I/F是禁用的。第二步是設備初始化,設備的backend function被初始化。第三步是枚舉。唯一的4位設備ID被分配給每個設備,通過設備ID就可以選擇一人的設備。第四步是配置。UHS-II寄存器被配置為能以優化的總線順序使用UHS-II設備。第五步是SD-TRAN初始化。UHS-II通過SD-TRAN模擬SD命令。SD-TRAN初始化等同于SD總線初始化,但是host以UHS-II包的形式發送SD命令。除了一些特別的命令,UHS-II card接受大部分SD命令。如果收到了CMD0命令,UHS-II card重新回到SD-TRAN初始化階段。
下圖顯示了UHS-IICard的SD Bus I/F初始化序列。在ACMD41命令執行結束之前,UHS-II card應該禁用UHS-II接口。
?
3.10.5 UHS-II Card總線速度模式總結
下表顯示了Card類型和支持的總線速度模式:
推薦UHS-II host實現UHS-I模式(至少SDR50),以實現向后兼容UHS-I卡。
?
4、SD Memory Card功能說明
4.1 概述
host與card之間的通信是由host控制的,host發送的命令有兩種類型:廣播命令和指定地址命令(也叫點對點命令)。
u? 廣播命令:廣播命令是發送給所有card的命令,有些廣播命令要求一個應答。
u? 指定地址命令(點對點命令):指定地址命令是發送給指定地址card的命令,并且還要要求從這個card得到一個應答。
對于SD MemoryCard系統(包括host和card),有兩種操作模式:
u? card識別模式
對于host來說,重置之后,當它正在探測總線上的card時,該host處于card識別模式。
對于card來說,重置之后,直到接收到SEND_RCA命令(CMD3),該card處于card識別模式。
u? 數據傳輸模式
對于host來說,當總線上的所有card都被識別之后,host進入數據傳輸模式。
對于card來說,當它的RCA第一次被發送之后,該card進入數據傳輸模式。
下表列出了操作模式與card狀態的關系,每種card狀態都與一個操作模式相關聯:
?
4.2 Card識別模式
在Card識別模式下,host重置所有的card,驗證操作電壓范圍,識別卡并且要求他們發送Relative CardAddress(RCA)。這些操作是在每個卡自己的CMD線上完成的。在Card識別模式中,所有的數據通信都是在CMD線上完成的。
在卡識別過程中,card是在SD時鐘頻率下執行相應操作的。
?
4.2.1 Card重置
在SD模式下,命令GO_IDLE_STATE(CMD0)是軟重置命令,它設置card進入idle狀態。如果card當前處于inactive狀態,則不響應這個命令。
由host供電后,所有的卡都進入idle狀態,包括之前處于inactive狀態的卡。
當接收到CMD0或者由host供電后,所有card的CMD線都處于輸入模式,等待下一個命令的起始位。card初始化后,使用默認的relativecard address(RCA=0x0000),使用默認的driver strength和400KHz時鐘頻率。如果使用3.3V信號,默認driver strength由Driver Stage Register(DSR)指定。如果使用1.8V信號,默認driverstrength由B類型driver指定。
在UHS-II模式下,RCA并不是由CMD0設置為0x0000,而是保持它的設備ID,設備ID是由枚舉決定的。
?
4.2.2 操作條件確認
host與card剛開始通信時,host不知道card支持的工作電壓,card也不知道它是否能在當前的電壓下工作。當host發出重置命令CMD0時,同時發出一個特定電壓給card,host假設card能在這個電壓下工作。
為了驗證電壓,在PhysicalLayer Specification Version 2.00中,定義了一個新的命令CMD8。
SEND_IF_COND(CMD8)命令用來驗證SDMemory Card interface操作條件。card通過分析CMD8的參數來檢查操作環境的有效性;host通過分析CMD8的應答查檢有效性。提供的電壓由參數的VHS域指定。card假定VHS指定的電壓為當前供應電壓。在任何時候,VHS只能有一位被設置為1。CRC和檢查樣式都被host用來檢查host與card通信的有效性。
如果card在給定的電壓下能工作,應答返回供應電壓和檢查樣式。
如果card不能在給定的電壓下工作,它不進行應答保持在idle狀態。
初始化SDHC或SDXC card時,強制要求在發送ACMD41命令前先發送CMD8命令。如果card收到CMD8命令,它就可以知道host支持PhysicalLayer Version 2.00或之后的版本,card就可以使能新的功能。
SD_SEND_OP_COND(ACMD41)命令被設計用來使得SD Memory Card host能夠拒絕不匹配VDD范圍的card,host通過將需要的VDD電壓窗口作為命令的操作數發送出去達到這個目的。在指定VDD范圍不能進行數據傳輸的card將被拋棄,該card進入inactive狀態。OCR寄存器的值將進行相應設置。
注意ACMD41是應用程序特有的命令,因此APP_CMD(CMD55)命令必須在ACMD41之前執行。在idle狀態下CMD55命令使用的RCA是card的默認RCA=0x0000。
host發出CMD0命令重置card后,host應該在發送ACMD41命令前先發出CMD8命令重新初始化card。
下圖是SD I/F card識別模式的狀態圖:
?
4.2.3 Card初始化和識別
總線被激活后,host就開始card的初始化和識別,具體過程如下圖所示:
初始化過程開始于SD_SEND_OP_COND(ACMD41)命令,通過設置該命令的操作環境和設置OCR的HCS位。HCS(Host CapacitySupport)位被設置為1,表明host支持SDHC或SDXC card。HCS(Host CapacitySupport)位設置為0,表示host不支持SDHC或SDXC card。
CMD8命令擴展了ACMD41的功能,參數中的HCS和CCS(Card Capacity Status)在應答中。HCS被不應答CMD8的card忽略,如果card不應答CMD8,host將設置HCS為0。Standard Capacity SD Memory Card忽略HCS,如果HCS設置為0,SDHC和SDXC永遠不會返回ready狀態(保持busy位為0)。
OCR中的busy位被card用來通知host ACMD41初始化是否已經完成。將busy位設置為0表示card仍然在初始化過程中。將busy位設置為1表明初始化已經結束。Card初始化應該在從第一個ACMD41開始的1秒鐘內結束。host重復發送ACMD41至少1秒鐘或者直到busy位被設置為1。cardk只在第一個ACMD41檢查操作條件和OCR中的HCS位。
如果card應答CMD8,則ACMD41的應答中包括CCS域信息。當card返回read狀態時(busy位被設置為1),CCS有效。CCS=0意味著card是SDSC,CCS=1意味著card是SDHC或SDXC。
host對系統中所有的card執行相同的初始化流程,不兼容的card被設置為inactive狀態。接下來host會發送ALL_SEND_CID(CMD2)命令到每個card,獲取每個card唯一的CID號。還沒有被認證的card(即處于ready狀態的card)將發送它的CID號應答(使用CMD線)。當card的CID被發送之后,card進入identification狀態。然后,host發送CMD3(SEND_RELATIVE_ADDR)命令要求card發送一個新的relativecard address(RCA),該RCA比CID短,用來在后面的數據傳輸階段尋址card。一旦card的RCA被接收,card就進入Stand-by狀態。此時,如果host想為這個card分配另外一個RCA,它可以向這個card再發送一個CMD3命令要求card發送一個新的RCA。最后的發送的RCA是該card真正的RCA。
host對每個card重復上述認證過程,即對每一個card重復CMD2和CMD3命令。
初始化SDXC的過程與初始化SDHC的過程一樣,SDXC card的用戶空間容量由C_SIZE指定,大于或等于32GB。
?
4.2.3.1 初始化命令(ACMD41)
下面是ACMD41的參數的一般原則:
(1)?????? 如果參數的voltage window field(bit 23-0)被設置為0,則稱之為“inquiry ACMD41”,“inquiry ACMD41”不會啟動初始化過程,它用來獲取OCR。“inquiryACMD41”忽略參數的其它部分(bit31-24)。
(2)?????? 如果參數的voltage window field(bit 23-0)第一次被設置為非0值,則稱之為“first ACMD41”,它用于啟動初始化過程,參數的其它部分(bit 31-24)有效。
(3)?????? 接下來的ACMD41命令的參數與第一個ACMD41命令的參數相同。
下圖顯示了ACMD41參數格式:
下圖顯示ACMD41應答格式:
?
4.3 數據傳輸模式
Card識別模式結束之前,host將保持fOD頻率,因為一些card在卡識別模式下具有操作頻率限制。在數據傳輸階段,host將在fPP頻率下操作card。
host發送SEND_CSD(CMD9)命令來獲得card相關數據(CSD寄存器),例如,塊長度、card存儲容量等等。
廣播命令SET_DSR(CMD4)配置所有已識別卡的driver stages。它根據總線布局、總線上卡的數量以及數據傳輸頻率配置卡的DSR寄存器,同時,時鐘頻率也從fOD轉換到fPP。SET_DSR命令對host和card來說是一個選項。
CMD7用于選擇一個card,使之進入TransferState。在同一時刻,只能有一個card進入Transfer State。如果之前有一個card處于Transfer State,它與host的連接將被釋放,該card返回Stand-by狀態。如果CMD7以預留的relative card address “0x0000”發出,所有的card將被退回到Stand-by狀態。
各種數據傳輸模式之間的關系總結如下:
u? 所有的數據讀命令可以在任何時候被stop命令(CMD12)中斷,此時,數據傳輸將終止,card返回Transfer State。讀命令包括讀一個塊命令(CMD17)、讀多個塊命令(CMD18)、發送寫保護(CMD30)、發送SCR(ACMD51)以及一般命令在讀模式(CMD56)。
u? 所有的數據寫命令可以在任何時候被stop命令(CMD12)中斷。在使用CMD7命令取消選擇card之前,寫命令將被停止。寫命令包括寫一個塊(CMD24、CMD25)、設置CSD(CMD27)、加鎖/解鎖(CMD42)以及一般命令在寫模式(CMD56)。
u? 一旦數據傳輸完成,card將退出數據寫狀態,或者轉到Programming State(傳輸成功時),或者進入Transfer State(傳輸失敗時)。
u? 如果塊寫操作被停止,并且塊長度和最后一個塊的CRC有效,數據將被programmed。
u? card可能為塊寫操作提供緩沖區,這意味著當前一個塊正在被programmed時,下一個塊就可以被發送給card。如果所有的緩沖區都被占用著,只要card正處于ProgrammingState,則DAT0線將被拉低(BUSY)。
u? 對于寫CSD、寫保護和擦寫命令來說,沒有緩沖區選項。這意味著當card正在執行這三個命令的任意一個時,不接受任何其它數據傳輸命令。
u? 當card正在programming時,不允許執行參數設置命令。參數設置命令包括:設置塊長度(CMD16)、擦除塊起始(CMD32)、擦除塊結束(CMD33)。
u? 當card正在programming時,不允許執行讀命令。
u? 其它card從Stand-by轉換為Transfer State時(使用CMD7),擦除和programming操作不會被終止。card將切換到Disconnect State并釋放DAT線。
u? 可以用CMD7重新選擇一個處于Disconnect State的card,該card將轉為ProgrammingState并重新激活busy標志。
u? 重置一個card(使用CMD0或CMD15)將終止所有掛起或正在進行的programming操作,這可能會破壞card上的內容。host應該防止這種情況發生。
u? CMD34-37、CMD50、CMD57被保留,用于SD命令系統擴展。
?
4.7 命令
具體命令描述表參考SPEC,這里不再詳細列出。
4.7.1 命令類型
SD Memory Card有四種類型的命令:
u? Broadcast commands(bc):沒有應答。
u? Broadcast commands with response(bcr)
u? Addressed (point-to-point) commands(ac),沒有數據在DAT上傳輸。
u? Addressed (point-to-point) data transfer commands(adtc),有數據在DAT上傳輸。
?
4.7.2 命令格式
所有的數據都有固定的格式,長度為48 bits,如下圖所示:
命令由一個start bit(總是為0)開始,緊跟著是一個標志傳輸方向的位(host = 1),接下來6位表示命令編號(0到63),接下來是32位命令參數,有些命令需要參數,有些不需要。上表中的“x”表示依據具體命令而定。所有的命令都由CRC進行校驗。所有的命令都以一個endbit結束(總是為1)。
?
4.7.3 命令類別
SD Memory Card的命令被分為幾個類別,每個類別支持一系列card功能。
Class 0、2、4、5、8命令強制要求所有類型的SDMemory Card都必須支持。Class 7命令除了CMD40外,強制要求SDHC和SDXC card支持。其它class的命令是可選的。一個card所支持的Card Command Classes(CCC)做為參數被寫到Card Specific Data(CSD)寄存器中,為host怎樣訪問card提供信息。
具體commandclass信息參考SPEC。
總結
以上是生活随笔為你收集整理的Linux设备驱动程序架构分析之SD Spec摘要的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【电力电子】【2016.02】三相可控逆
- 下一篇: Android开发面试:架构设计和网络知