新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ReWorks平臺的SD卡驅動程序設計

        基于ReWorks平臺的SD卡驅動程序設計

        作者: 時間:2011-07-22 來源:網絡 收藏

        摘要:卡作為一種大容量、高性能的固體存儲設備廣泛應用于各類嵌入式系統。目前嵌入式系統的研究還比較少。為實現卡在上的數據存取,本文以S3C2440為處理器研究了SD總線模式的SD卡初始化過程和讀/寫過程,并根據系統關鍵數據結構和建立塊設備的工作流程,在ReWorks系統上實現了的SD模式下的SD卡程序。該程序的結構及實現細節時ReWor-ks的塊設備驅動開發以及其他系統平臺的SD卡驅動開發均有一定的借鑒意義。
        關鍵詞:驅動程序;ReWorks;SD卡;嵌入式系統

        0 引言
        SD卡(Secure Digital Memory Card)是由日本松下、東芝及美國SanDisk公司于1999年8月在MMC卡(Multi Media Card)基礎上共同研制而成的具有大容量、高性能、安全性好等特點的多功能存儲卡。由于SD卡通過9針的硬件接口與專門的驅動器接口相連接,不需要外接電源維持記憶信息,而且作為一體化固體介質,沒有任何移動部件,所以不用擔心機械移動帶來的損壞。由于SD卡讀/寫速度快、移動靈活性好、安全性強,加之體積很小,SD卡被廣泛使用于嵌入式便攜移動裝置上作為嵌入式系統的數據存儲設備,如:數碼相機、PDA和多媒體播放器等。SD卡用于ReWorks嵌入式系統,必須要開發相應的驅動程序。

        1 SD卡操作流程
        SD卡具備SPI和SD兩種總線模式,這兩種模式下的卡的初始化過程和讀/寫過程各有特點,具體驅動程序的實現細節不同。SD卡有SD和SPI兩種通信模式,前者可獲得比后者更高的通信速率。在SD模式下的總線協議類似于問答方式,先由主機向卡發送CMD指令接著被尋址的卡做出響應,根據接收的主機指令的不同,響應幀內容和長度也不同,具體有4種R1,R2,R3和R6,其中R1,R3,R6總長為48位,R2總長為136位,響應幀格式如圖1所示。幀傳輸總是以高位開始,低位結束。本文采用SD總線模式對SD卡進行操作。

        本文引用地址:http://www.104case.com/article/150446.htm

        a.JPG

        1.1 SD卡初始化過程
        在對SD卡進行讀/寫操作前必須對卡進行初始化,在卡的初始化過程中所有的主機與卡的通信都只走命令接口。在識別模式下主機對卡進行軟復位,由卡發布RCA(Relative Card Address)地址,主機對其確認,此后主機用RCA地址對相應的卡進行操作。上電復位或者發送CMD0可使SD卡進入空閑模式(IdleState),總線激活后,在SD模式下應該用CMD55(APP_CMD)命令(其中RCA=0x0000)對卡進行操作,以使卡將下一指令解釋為應用指令即ACMD,再用ACMD41(SD_SEND_OP_COND)對卡進行操作,卡對該指令的響應將記錄在操作條件寄存器中,同時不兼容韻卡將進入非活動狀態(Inactive State),此后主機發出CMD2(ALL_SEND_CID)指令,獲取卡的識別編碼,獲取識別碼后,主機將發出CMD3(SEND_RE-LATIVE_ADDR)指令獲取RCA地址。以上為SD卡初始化的基本流程,此后主機將用RCA地址對卡進行讀/寫操作,SD卡在SD模式下的初始化的詳細狀態轉換圖如圖2所示。


        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 湖南省| 龙门县| 宁阳县| 黎平县| 桂平市| 德昌县| 武夷山市| 七台河市| 华宁县| 靖安县| 延庆县| 鄱阳县| 彭阳县| 郎溪县| 凤翔县| 宽甸| 马龙县| 河北省| 秦皇岛市| 东海县| 宁城县| 扶余县| 曲阳县| 伊宁市| 黄梅县| 辉县市| 津南区| 炉霍县| 晋江市| 阿拉善右旗| 科尔| 丹江口市| 司法| 阿荣旗| 吕梁市| 林州市| 云南省| 金山区| 德化县| 阳春市| 五华县|