Linux系統和SD卡讀寫部分程式
11.1.1 SD卡系統概念
Linux系統移植》第11章SD卡驅動移植,本章重點為SD卡協定介紹和SD卡驅動分析,後面也介紹SD卡驅動移植過程。随着SD卡存儲容量增加和價格下降,其應用越來越廣泛,SD卡驅動在嵌入式系統中也将會受到關注。本節為SD卡系統概念。
第11章? SD卡驅動移植
SD卡(Secure Digital Memory Card),安全數位卡,是一種基于Flash的新一代儲存設備,被廣泛地用于便攜式裝置,例如行動電話、數位相機、個人數位助理(PDA)和多媒體播放器等。SD卡擁有體積小,容量大、資料傳輸快、移動靈活及安全等優點。因其價格低廉,應用也越來越廣泛,本章将重點介紹其驅動分析和移植過程。
11.1? SD卡簡介
SD存儲卡是專門為滿足安全、大容量和内置于消費者的新型語音和視訊電子裝置中而設計的。SD記憶體卡将包含的機械保護裝置,遵循SDMI标準,具有安全、快速、大容量等特性。SD卡的安全系統采用互相認證和"新密碼算法"以防止卡中的内容被非法使用。下面将從以下幾個方面簡單介紹SD卡協定内容。
11.1.1? SD卡系統概念
下面分别描述SD卡的讀寫特性、容量、速度、電壓等特性和分類。
讀寫特性:根據讀寫特性可以将SD卡分為兩種。一種為讀/寫卡,這種卡生産出來就是一張空白卡,專門用于記錄使用者的視訊聲音、圖像的大容量記憶卡;另一種為隻讀卡,這種卡在制造時就定制了内容,其典型的應用是在軟體、音頻或視訊等的發行媒體中。
支援電壓:根據支援的電壓可以将SD卡分為高電壓SD卡和雙重電壓SD卡兩類。
卡容量:根據卡的容量大小将SD分為兩類型。一類為标準容量的SD卡,其支援的容量上線為2GB,包括2GB在内;另一種為高容量SD卡,其容量超過2GB,最大可達32GB。
速度:根據速度類可以将SD卡分為4種速度類。類0,這種類型卡兼具所有類型的優點;類2,其速度大于等于2MB/S;類4,其速度大于等于4MB/S;類6,其速度大于等于6MB/S。高容量SD卡支援速度類描述,其性能相當于或超過類2。
11.1.2 SD卡寄存器
《Linux系統移植》第11章SD卡驅動移植,本章重點為SD卡協定介紹和SD卡驅動分析,後面也介紹SD卡驅動移植過程。随着SD卡存儲容量增加和價格下降,其應用越來越廣泛,SD卡驅動在嵌入式系統中也将會受到關注。本節為大家介紹SD卡寄存器。
11.1.2? SD卡寄存器
每張卡都有一系列寄存器的資訊,寄存器的資訊如表11.1所示。
表11.1? SD卡寄存器資訊
名字
寬 度
描 述
CID
128
卡識别号,每張卡都有唯一的識别号
RCA
16
釋出卡的位址,卡的局部系統位址,
在初始化過程中,由主機和卡動态支援
DSR
16
驅動級寄存器,配置卡的驅動輸出
CSD
128
卡的協定資料,關于卡的操作狀态資料
SCR
64
卡配置寄存器,關于卡特性容量的資訊
OCR
32
操作狀态寄存器
SSR
512
SD狀态,有關卡擁有的特性資訊
CSR
32
卡狀态,有關卡狀态的資訊
11.1.3 SD功能描述
《Linux系統移植》第11章SD卡驅動移植,本章重點為SD卡協定介紹和SD卡驅動分析,後面也介紹SD卡驅動移植過程。随着SD卡存儲容量增加和價格下降,其應用越來越廣泛,SD卡驅動在嵌入式系統中也将會受到關注。本節為SD功能描述。
11.1.3? SD功能描述
主機與卡之間的通信都是由主機控制的,主機發送的指令有兩種類型,分别為廣播指令和位址(點對點)指令。
廣播指令:該指令是發給所有的卡,有些廣播指令需要響應。
位址(點對點)指令:這些指令發往具體位址的卡,并且從這些卡生成響應。
卡識别模式:主機被複位或者在總線上尋找新卡時,主機處于該狀态下。卡在複位以後和收到SEND_RCA指令以前都處于此模式下。
資料傳輸模式:卡在它們的RCA第一釋出後進入資料傳輸模式。主機識别總線上所有的卡後進入資料傳輸模式。
下面通過表11.2說明卡的狀态與操作模式之間的依賴關系,SD的每種狀态都關聯一種操作模式,其狀态圖将在随後進行介紹。
表11.2? 卡的狀态和操作模式的對應關系
卡 狀 态
操 作 模 式
無活動狀态
無活動
空閑态
卡識别模式
準備态
識别态
等待态
資料傳輸模式
傳輸态
發送資料态
接收資料态
程式設計态
斷開态
1.操作狀态的驗證
通過一系列過程後,主機才能識别卡。下面給出它們的通信過程。
在主機和卡通信前,主機不知道卡支援的電壓,卡也不知道是否支援主機目前提供的電壓。主機将釋出一個複位指令(CMD0),帶着它能提供給卡的電壓資訊。
為了驗證SD卡的接口操作狀态,主機發送SEND_IF_COND(CMD8),SD卡通過分析SEND_IF_COND指令參數檢查操作狀态的有效性,主機通過