基于嵌入式系統(tǒng)的SD卡接口設(shè)計(jì)
為降低系統(tǒng)功耗,非活躍線程平時(shí)是被掛起的。如果總線上掛有多個(gè)SD卡,就需要用CMD7命令退出當(dāng)前SD卡,選擇其他CD卡操作。CMD7命令為選擇卡或取消卡,在初始化的時(shí)候發(fā)送CMD7命令,SD卡將進(jìn)入數(shù)據(jù)發(fā)送模式,在數(shù)據(jù)模式里發(fā)送CMD7則退出當(dāng)前卡的操作。需要注意的是,在數(shù)據(jù)模式里不同的狀態(tài)只支持特定命令,如在數(shù)據(jù)模式里發(fā)送讀ID指令則無效。同時(shí),為減少SD Host驅(qū)動程序設(shè)計(jì)的復(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主控制器時(shí)鐘等SD接口的硬件操作;SD總線驅(qū)動則負(fù)責(zé)上層卡驅(qū)動的裝載和移除,維護(hù)每一個(gè)插槽的總線請求隊(duì)列等。該結(jié)構(gòu)的設(shè)計(jì)很大程度上減少了SD Host驅(qū)動程序設(shè)計(jì)的復(fù)雜性,使SD Host控制器驅(qū)動程序設(shè)計(jì)可以專注于硬件相關(guān)的部分??偩€驅(qū)動是SD卡客戶端驅(qū)動程序和SDHost驅(qū)動程序之間的一個(gè)抽象層,它為SD卡客戶端驅(qū)動提供平臺獨(dú)立的服務(wù)接口。SD Host驅(qū)動程序需要完成處理器和硬件平臺相關(guān)的處理,向上層驅(qū)動提供統(tǒng)一的服務(wù)接口。
4 結(jié)束語
SD卡是目前廣泛應(yīng)用的可擦除的大容量存儲設(shè)備,其接口設(shè)計(jì)可作為各類嵌入式系統(tǒng)中存儲單元的一般解決方案。
評論