SD Card Driver on wince2

来源:互联网 发布:反美颜软件作文 编辑:程序博客网 时间:2024/05/21 06:55
 

WinCE 5.0SD Stack

       一共可以分为3个部分:a bus driver, host controller driver client drivers,现分别介绍:

1 Bus Driver

       顾名思义,总线,连接client driverhost controller driver之间的一个管理层。这部分代码微软已经写好了,也就是说定义好了clienthost之间的通讯接口。(是不是可以这么说:编写SD WIFI的程序员可以不用知道是什么SDHC,从而达到驱动的跨硬件性)

参考代码:

D:/WINCE500/PUBLIC/COMMON/OAK/DRIVERS/SDCARD/SDBUSDRIVER/

2 Host Controller

       控制硬件并且通过上述的BUS driver来和client进行通讯。

参考代码:

D:/WINCE500/PLATFORM/Mx31/Src/Drivers/Sdhc

D:/WINCE500/PUBLIC/COMMON/OAK/CSP/ARM/FREESCALE/Mxarm11/Drivers/Sdhc

3 Client Driver

       通过BUS driverSD设备进行通讯。

Windows CE 5.0中的SDIO支持如下:

l         动态插入和拔出

l         DMA方式 (平台相关)

l         SDIO 中断

l         动态的时钟控制

l         错误恢复

l         唤醒

l         v1.0 多功能和组合设备

l         CE Power Manager来处理电源管理

l         MMC

下图可以清晰的表达基于WINCE5.0的一个SD STACK模型:

安全性

SDA 中的SD Memory specification 有种机制可以在特定机器上锁定卡里面的内容。WINCE 5里并没有显示的支持该机制。但是可以自己来做,比如一个文件系统的FILTER等。

Bus Driver

主要功能如下:

l         枚举板上的卡,并决定他们的类型(MMC, SD Memory or SDIO

l         配置合适的电流给卡。

l         根据注册表的值加载clients

l         把总线要求入队列

l         把来自host controller的异步通知入队列

l         总线要求完成,SDIO 中断,设备插入/拔出

l         出错时重试

参考代码:

D:/WINCE500/PUBLIC/COMMON/OAK/DRIVERS/SDCARD/SDBUSDRIVER

貌似此部分代码非微软原创:

// Copyright (c) 2002 BSQUARE Corporation.  All rights reserved.

// DO NOT REMOVE --- BEGIN EXTERNALLY DEVELOPED SOURCE CODE ID 40973--- DO NOT REMOVE

Host Controller Driver

主要功能:

l         HCD通知总线驱动卡的插入和拔出

l         给卡上电,SD定义了可接受的初时电压范围。

l         在总线驱动何客户端设置完时钟速度后,打开客户端卡的时钟(80个周期)

l         初始,把总线宽度设置成1。如果有需要的话(4-bit mode),把总线宽度设成4bit

l         传输SD 命令和数据到/来自卡上。

l         负责给槽上电,关电。

l         IST 在这里存在

l         可选的)唤醒支持(插入,拔出,SDIO中断)

原创粉丝点击