中国·芯片交易在线
首页 | 供应信息 | 求购信息 | 库存查询 | 新闻中心 | 展会资讯 | IC厂商 | 技术资料 | 自由区域
   新闻首页 |  行业动态 | 新品发布 | 政策法规 | 科技成果 | 模拟技术 | 嵌入系统 | 传感控制 | 存储设计  
当前位置:IC72首页>> IC新闻中心>> 嵌入系统 >>电子行业新闻正文

CE下基于Zylonite平台的SD卡驱动开发1

时间:2008/2/26 10:07:00  作者:  来源:ic72  浏览人数:1790
 
 

      0、引言

      随着通信领域新业务需求的不断增长及计算机技术,半导体技术和电子技术的术的迅速发展,嵌入式系统异军突起,已经渗透到社会生活的方方面面了。它是集软件,硬件于一体的高可靠性系统。其最大特点即为可以通过裁减装卸系统模块来配置整个平台所要求的功能。

      Windows CE是由微软公司所开发的一个嵌入式操作系统,它与Windows平台的编程接口有很强的兼容性。其平台开发工具Platform Builder是一个完全集成的开发环境(IDE)。本项目所涉及的硬件开发套件Intel Zylonite Development System装配有Intel的Xscale芯片处理器Monahans L(PXA300),并配有相关外设电路接口(USB2.0,SD/MMC,音频,以太网口等)及外设(触摸屏,KEYPAD,扬声器,听筒,话筒等)。其独特的结构优化能力保证了操作环境和通用应用设备可以在高频率和的情况下快速处理任务。

      1、WINCE 下的SD卡驱动架构

      Wince 下SD卡驱动协议栈组成 :

      u       HOST硬件底层部分 (主控制端驱动)       SDHC_XXX.DLL

      u       BUS 中间逻辑命令层 (总线驱动)           SDBUS.DLL

      u       CLIENT上层(客户端驱动)                     SDMEMORY.DLL

ic72新闻中心

      1.1、主控制端驱动

      主控制端驱动控制包含主控制器硬件,遵循主控制端驱动接口,它被用于总线驱动通信和设置操作参数。主控制器驱动接口提供一个硬件提取层,在总线和主控制端执行之间。即:SDHC_XXX.DLL是最底层,因为这层是硬件关联层,因此取名XXX便是为了对应的具体的硬件BSP包(如本项目的硬件平台是ZYLONITE,其硬件供应商给的BSP包名即为ZYLONITE,在实际项目中我们便将SDHC_XXX.DLL取代为SDHC_ZYLONITE.DLL),它负责具体的发命令,大多数情况下都需要修改。

      1.2、总线驱动

      总线驱动作为提取和管理层处于主控制驱动和客户端驱动之间。它包括在SDbus.dll文件。为客户端驱动提供了标准的API,允许运行在任何的基于windows ce设备。总线驱动将是独立于应用程序和主控制端驱动,在不同的处理器之间移植,并不需要改动。SDBus.dll是中间层,负责整合命令和管理。

      1.3、客户端驱动

      客户端驱动和SD客户端驱动通信接口允许客户端驱动去和SD设备通信。客户端驱动接口是有计划地抽象SD总线物理设备的执行,提供了客户端驱动最大的弹性。客户端驱动接口允许客户端驱动去衡量一个单一的,同步的访问存储卡驱动使用一个线程,异步通信设备驱动。SDMemory.dll是最高层,类似于应用层。

      2.立足微软SD卡协议栈开发Zylonite 的BSP包的SD卡驱动

      当我们开发SD卡驱动时,并详细分析比较了Microsoft的SD驱动架构和Intel所提供的BSP内的参考SD卡驱动以后,可以得出如下结论:

      针对主控制端驱动(SDHC_XXX.DLL):因为这一层是直接操作硬件的一层,所以大多数情况下都需要修改。修改的内容基本为收发命令部分以及数据传输和硬件初始化部分.

      针对总线驱动(SDBUS.DLL):因为这一层处于主控制驱动和客户端驱动之间,用于他们之间的通信,SD卡总线请求都放在它里面,微软提供了非常完备的样例代码,所以我们一般都不需要改动,直接调用它的接口就可以了。

      针对客户端驱动( SDMEMORY.DLL):因为SDMemory就是所谓的Client层,类似于应用层,它还可用来识别卡的,不同种类的卡,比如sd memory card等,鉴于我们只需开发SD卡部分的驱动,所以也不需要怎么修改了(如果我要开发SD接口的SDIO设备,那么就得在这层做比较大的改动了)。

      Intel所提供的BSP内的参考SD卡驱动自己实现了主控制端驱动(SDHC_ZYLONITE.DLL),而调用并保留了总线驱动(SDBUS.DLL)和客户端驱动( SDMEMORY.DLL)。因此结合具体的硬件设计(SD卡的CONNECTOR等),我们的主要任务便是利用BSP内的SD卡主控制端驱动代码,开发(配置并改进)我们实际项目内的SD卡驱动。

      2.1、Zylonite BSP内的SD卡主控制端驱动概述

      SD卡的驱动程序是以流的形式提供的,而该SD卡主控制端驱动以sdhc_zylonite.dll 的形式提供,入口在: \WINCE500\PLATFORM\Zylonite\public\csp\monahans\sdhc

      有如下两个文件:

      sdcontrol.c:内含一个非常重要的线程---SDControllerISTHandler,主要负责卡与控制器的交互,处理控制器接收的消息等,具体的控制和处理函数均在此文件中。

      main.c: SDH(主控制端驱动)的导出流接口在该文件中实现,并包含有主控制端驱动的(sdhc_zylonite.dll)的入口点。

      SD卡硬件初始化及其主控制端驱动的注册表信息设置路径为:

      \WINCE500\PLATFORM\Zylonite\Platform\ZYLONITE\SRC\DRIVERS\SDHC

      主要文件为:

      impl.c: 主要是在加载SD卡主控制端驱动时初始化硬件。内含一个非常重要的线程---- SDCardDetectIstThread,专门处理SD卡的插拔操作。但是具体的插拔操作也是在Sdcontrol.c文件实现的。

ic72新闻中心

 

 
【相关文章】
·CE下基于Zylonite平台的SD卡驱动开发1
 
 
IC新闻搜索
 
热点新闻
基于红外超声光电编码器的室内移动小车定位系
基于闪烁存储器的TMS320VC5409DSP并行引导装载方法
非移动市场需求飙升,ARM预计2010年出货量超50亿片
一种快速响应的电容式湿度传感器感湿薄膜设计
利用特殊应用模拟开关改进便携式设计
无线传感器网络跨层通信协议的设计
基于ARM9内核Processor对外部NAND FLASH的控制实现
基于GSM技术的汽车防盗系统的设计
热电阻在烟叶初烤炕房温度控制中的应用
高速数据转换系统对时钟和数据传输的性能要求
友情连接
 关于我们  IC论坛  意见反馈  设置首页  广告服务  用户帮助  联系我们
copyright:(1998-2005) IC72 中国·芯片交易在线
(北京)联系电话:(010)82614113、82614123 传真:(010)82614123 客户服务:service@IC72.com 库存上载:IC72@IC72.com
在线MSN咨询:ic72sale8@hotmail.com 通信地址:北京市西城区西直门内大街2号大厦15层 邮政编码:100013
(深圳)联系方式: 在线MSN咨询:ic72sale6@hotmail.com 在线QQ咨询:191232636 通信地址:深圳市福田区振华路
注 册 号: 1101081318959(1-1)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9