以文本方式查看主题

-  曙海教育集团论坛  (http://sun4.cn/bbs/index.asp)
--  Windows驱动开发  (http://sun4.cn/bbs/list.asp?boardid=75)
----  【WinCE】SD card技术了解并WINCE下SDHC驱动开发(updated)  (http://sun4.cn/bbs/dispbbs.asp?boardid=75&id=2721)

--  作者:wangxinxin
--  发布时间:2010-12-17 12:01:31
--  【WinCE】SD card技术了解并WINCE下SDHC驱动开发(updated)
Driver on ADS Summary

了解SD card. 1

WinCE 5.0SD Stack. 6

Bus Driver
7

Host Controller Driver
8

Client Driver
10

SD on MX31 ADS. 14

Secure Digital Host Controller
14

LP1070 Secure Digital I/O Wi-Fi Driver
17

SD on EVT. 19

附录... 19







AuthorTitan.Song


Suumary:

简单介绍了一下SD卡的历史和发展,同时结合MX31 ADS上的WINCE SDHC驱动更深入的了解该硬件的一些行为特点。


了解SD cardSDSecure Digital Card卡的简称,直译成汉语就是安全数字卡,是由日本松下公司、东芝公司和美国SANDISK公司共同开发研制的全新的存储卡产品。SD存储卡是一个完全开放的标准(系统),多用于MP3、数码摄像机、数码相机、电子图书、AV器材等等,尤其是被广泛应用在超薄数码相机上。SD卡在外形上同Multimedia Card卡保持一致,大小尺寸比MMC卡略厚,容量也大很多。并且兼容MMC卡接口规范。不由让人们怀疑SD卡是MMC升级版。另外,SD卡为9引脚,目的是通过把传输方式由串行变成并行,以提高传输速度。它的读写速度比MMC卡要快一些,同时,安全性也更高。SD卡最大的特点就是通过加密功能,可以保证数据资料的安全保密。它还具备版权保护技术,所采用的版权保护技术是DVD中使用的CPRM技术(可刻录介质内容保护)。

规格


图片点击可在新窗口打开查看
主要特点:

1.精巧而且超薄

SD记忆卡的尺寸只有24毫米x 32毫米 x 2.1毫米。作为“桥梁媒体”的重要特征,它精致小巧,方便您在不同设备上使用。兼容SD记忆卡的设备可以采用解码器软件来播放音乐、影像短片以及更多其他类型的内容,无需像CD播放机或DVD播放机那样采用驱动装置。从而使设备的外形更加精巧,同时也赋予了产品设计者发挥自由创意的全新空间。由于消除了播放音乐时的跳音现象,提高了播放的稳定性。

2.大容量栽体

目前,SD记忆卡已经具备各种容量可供选择,同时,2GB4GB8GBSDHC也出现了。

3.高速数据传输

为了提供快速响应和容易处理数字内容,SD记忆卡可以用每秒10MB的速率写入和读取数据。当其能够用于远程通信终端,直接下载内容时,记忆卡的高速传送能力将可使存取时间和通信成本降至最低,同时可减轻网络压力。

4.拥有版权保护功能

先进的数码技术使高保真音乐和其他高质量内容的录制成为现实。日新月异的数码技术,借助因特网,实现了全球范围的信息快速共享。这一进步也带来了对原版内容的大量复制,因此,作为21世纪的一种切实可行的记忆载体就必须具备高水平的版权保护技术,这样才能保护大量高质的数码数据。SD记忆卡可以自由复制各种数码数据,并采用独特的内置CPRM技术保存和转移版权所有的内容,这也是建立一个全新的音乐及其他商业媒体的发布体系的关键所在。


硬件结构


图片点击可在新窗口打开查看
(参看附录中
SD卡和其他卡的一个对比表)

SDIO
SDIO(输入/输出)卡是一种扩展带SD卡插孔设备之功能的接口。正在开发各种SDIO卡,如相机、Bluetooth GPS802.11b等。
图片点击可在新窗口打开查看





如果编写以上设备的驱动,当然前提是有一个合格的SD Host Controller。如同编写USB STORAGE/HID设备的驱动一样,需要USB HCD支持。MX31ADS支持基于SDIOLP1070 SDIO WLAN Card(在Wince 5.0SD卡驱动模型里,这种驱动称为client driver)。

SD_SDIO_SPEC.PDF

SDIO features
l
Targeted for portable and stationary applications
l
Minimal or no modification to SD Physical bus is required
l
Minimal change to memory driver software
l
Extended physical form factor available for specialized applications
l
Plug and play (PnP) support
l
Multi-function support including multiple I/O and combined I/O and memory
l
Up to 7 I/O functions plus one memory supported on one card.
l
Allows card to interrupt host
l
Initialization Voltage: 2.0 to 3.6V
l
Operational Voltage range: 3.1 to 3.5V

图片点击可在新窗口打开查看




  图片点击可在新窗口打开查看

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中断)