基于嵌入式系統(tǒng)的SD卡接口設計
為降低系統(tǒng)功耗,非活躍線程平時是被掛起的。如果總線上掛有多個SD卡,就需要用CMD7命令退出當前SD卡,選擇其他CD卡操作。CMD7命令為選擇卡或取消卡,在初始化的時候發(fā)送CMD7命令,SD卡將進入數(shù)據(jù)發(fā)送模式,在數(shù)據(jù)模式里發(fā)送CMD7則退出當前卡的操作。需要注意的是,在數(shù)據(jù)模式里不同的狀態(tài)只支持特定命令,如在數(shù)據(jù)模式里發(fā)送讀ID指令則無效。同時,為減少SD Host驅動程序設計的復雜性,使其具有較好的可移植性,可以采用Bsquare提供的SD Host DDK,它在Bsquare SD協(xié)議棧的基礎上,提供了平臺獨立的總線、客戶端驅動和一組標準化的API供使用。在該體系結構下,SD主控制器驅動負責檢查SD卡的插拔狀態(tài),檢測插入卡的類型,設置SD主控制器時鐘等SD接口的硬件操作;SD總線驅動則負責上層卡驅動的裝載和移除,維護每一個插槽的總線請求隊列等。該結構的設計很大程度上減少了SD Host驅動程序設計的復雜性,使SD Host控制器驅動程序設計可以專注于硬件相關的部分??偩€驅動是SD卡客戶端驅動程序和SDHost驅動程序之間的一個抽象層,它為SD卡客戶端驅動提供平臺獨立的服務接口。SD Host驅動程序需要完成處理器和硬件平臺相關的處理,向上層驅動提供統(tǒng)一的服務接口。
4 結束語
評論