新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 嵌入式系統(tǒng)的SD卡接口技術(shù)分析與研究

嵌入式系統(tǒng)的SD卡接口技術(shù)分析與研究

作者: 時間:2011-07-13 來源:網(wǎng)絡(luò) 收藏

摘要 卡是一種基于半導(dǎo)體快閃記憶器開發(fā)的新一代記憶設(shè)備,被廣泛應(yīng)用于各種便攜裝置上。許多設(shè)備也選擇使用卡提高的穩(wěn)定性、降低成本。文中的特點(diǎn),然后,就基于硬件設(shè)計和軟件設(shè)計進(jìn)行了探討。
關(guān)鍵詞 嵌入式系統(tǒng);SD卡;硬件設(shè)計

SD卡是一種基于半導(dǎo)體快閃記憶器開發(fā)的新一代記憶設(shè)備,目前SD卡被廣泛應(yīng)用于各種便攜式裝置上,一般重量約為2 g,擁有較好的安全性、移動靈活性、快速數(shù)據(jù)傳輸率和高記憶容量。許多嵌入式設(shè)備都選擇使用SD卡以提高系統(tǒng)的穩(wěn)定性、降低成本。

1 嵌入式系統(tǒng)的特點(diǎn)
因為嵌入式系統(tǒng)是一種特殊的計算機(jī)系統(tǒng),所以它和計算機(jī)系統(tǒng)一樣,由軟件和硬件構(gòu)成。以PC為代表的通用計算機(jī)系統(tǒng)和嵌入式系統(tǒng)相比,不同的嵌入式系統(tǒng)有不同的特點(diǎn),但是其主要特點(diǎn)一樣。
(1)嵌入式系統(tǒng)是一種專用計算機(jī)系統(tǒng)。嵌人式系統(tǒng)的軟件和硬件是針對特定任務(wù)和應(yīng)用對象進(jìn)行設(shè)計的,具有較強(qiáng)的多樣性和專用性。嵌入式系統(tǒng)所能夠提供的功能,均可提前預(yù)知,相對較為固定。
(2)嵌入式系統(tǒng)需要滿足環(huán)境對其的要求。因為嵌入式系統(tǒng)需要被嵌入到特定的對象系統(tǒng)之中,所以它必須滿足對象系統(tǒng)對嵌入式系統(tǒng)的環(huán)境要求,例如能耗少、成本低以及電氣環(huán)境、物理環(huán)境等特定要求,除此之外還需要滿足對壓力、濕度、溫度這些自然環(huán)境的要求。
(3)嵌入式系統(tǒng)是集各行業(yè)應(yīng)用和計算機(jī)為一體的集成系統(tǒng)。嵌入式系統(tǒng)是利用先進(jìn)的電子、半導(dǎo)體、計算機(jī)技術(shù)與其他各行業(yè)應(yīng)用相結(jié)合后的產(chǎn)物,這個特定就決定了嵌人式系統(tǒng)是一個不斷創(chuàng)新、高度分散、資金密集、技術(shù)密集的知識集成系統(tǒng)。
(4)嵌入式系統(tǒng)與其他產(chǎn)品相比,有很長的生命周期。嵌入式系統(tǒng)能夠緊密地應(yīng)用于實際生產(chǎn),它的更新?lián)Q代與實際的產(chǎn)品同時進(jìn)行,所以基于嵌入式系統(tǒng)開發(fā)的產(chǎn)品,得具有強(qiáng)大的競爭力和很長的生命周期。

2 基于嵌入式系統(tǒng)的SD卡硬件設(shè)計
SD卡的接口可以支持兩種操作模式:一種是SD卡模式,另一種是SPI模式。SD接口允許1~4線數(shù)據(jù)信號設(shè)置。加電后,SD卡使用DAT0。初始化后,主機(jī)可以改變線寬。Freescale公司設(shè)計開發(fā)的MCF51QE128是一款32位低功耗嵌入式微控制器,該嵌入式微控制器采用SPI的模式實現(xiàn)和SD卡的接口。因為MCF51QE128的最佳工作電壓為3.6 V,功耗較低,可以和SD卡的工作電壓進(jìn)行兼容處理,可以無需利用電平轉(zhuǎn)換電路,可以直接與SD卡連接,這里選用嵌入式微控制器的第2個SPI口,硬件連接如圖1所示。SD卡的接口主要能支持兩種操作模式:一種是SD卡模式;另一種是SPI模式。主機(jī)系統(tǒng)可以根據(jù)需要,選擇一種模式,SD卡的可以允許4線同時進(jìn)行數(shù)據(jù)傳輸。接到復(fù)位命令時,低電平有效,
SPI模式啟用。SPI模式可以允許那些簡單且通用的SPI通道接口,SPI模式與SD模式相比而言,喪失了速度優(yōu)勢。

本文引用地址:http://butianyuan.cn/article/150475.htm

a.JPG



3 基于嵌入式系統(tǒng)的SD卡接口軟件設(shè)計
SD卡接口軟件設(shè)計,就是SD卡與嵌入式設(shè)備接觸時的接口驅(qū)動程序。驅(qū)動程序要實現(xiàn)相應(yīng)XXX_Open(),XXX_Close()等響應(yīng)的流式設(shè)備接口函數(shù),其中XXX為設(shè)備驅(qū)動的前綴,應(yīng)用程序可以通過文件操作來控制設(shè)備。例如:hDevice=Activate DeviceEx(szRegKey_SDMMC,NU-LL,0,NULL);/*加載SD/MMC卡驅(qū)動*/這個驅(qū)動代碼可以判斷SD卡插入事件。同時,SD卡的數(shù)據(jù)傳輸,基本是通過塊的讀寫實現(xiàn)。當(dāng)塊進(jìn)行讀取時,可以發(fā)送命令CMD17,接收到的應(yīng)答信號為0x00。這樣就能夠直接來接收SD卡數(shù)據(jù),接收到的數(shù)據(jù)的第1 Byte為數(shù)據(jù)令牌0xfe,后面為接收到的數(shù)據(jù),當(dāng)輸出口變?yōu)楦唠娖綍r,表明讀取操作完成,SD卡的讀操作與寫操作相同。
為降低系統(tǒng)功耗,非活躍線程平時是被掛起的。如果總線上掛有多個SD卡,就需要用CMD7命令退出當(dāng)前SD卡,選擇其他CD卡操作。CMD7命令為選擇卡或取消卡,在初始化的時候發(fā)送CMD7命令,SD卡將進(jìn)入數(shù)據(jù)發(fā)送模式,在數(shù)據(jù)模式里發(fā)送CMD7則退出當(dāng)前卡的操作。需要注意的是,在數(shù)據(jù)模式里不同的狀態(tài)只支持特定命令,如在數(shù)據(jù)模式里發(fā)送讀ID指令則無效。同時,為減少SD Host驅(qū)動程序設(shè)計的復(fù)雜性,使其具有較好的可移植性,可以采用Bsquare提供的SD Host DDK,它在Bsquare SD協(xié)議棧的基礎(chǔ)上,提供了平臺獨(dú)立的總線、客戶端驅(qū)動和一組標(biāo)準(zhǔn)化的API供使用。在該體系結(jié)構(gòu)下,SD主控制器驅(qū)動負(fù)責(zé)檢查SD卡的插拔狀態(tài),檢測插入卡的類型,設(shè)置SD主控制器時鐘等SD接口的硬件操作;SD總線驅(qū)動則負(fù)責(zé)上層卡驅(qū)動的裝載和移除,維護(hù)每一個插槽的總線請求隊列等。該結(jié)構(gòu)的設(shè)計很大程度上減少了SD Host驅(qū)動程序設(shè)計的復(fù)雜性,使SD Host控制器驅(qū)動程序設(shè)計可以專注于硬件相關(guān)的部分??偩€驅(qū)動是SD卡客戶端驅(qū)動程序和SDHost驅(qū)動程序之間的一個抽象層,它為SD卡客戶端驅(qū)動提供平臺獨(dú)立的服務(wù)接口。SD Host驅(qū)動程序需要完成處理器和硬件平臺相關(guān)的處理,向上層驅(qū)動提供統(tǒng)一的服務(wù)接口。

4 結(jié)束語
SD卡是目前廣泛應(yīng)用的可擦除的大容量存儲設(shè)備,其接口設(shè)計可作為各類嵌入式系統(tǒng)中存儲單元的一般解決方案。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉