欢迎来到天天文库
浏览记录
ID:34515399
大小:336.96 KB
页数:6页
时间:2019-03-07
《wince.net下串口驱动程序设计new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、http://www.paper.edu.cnWinCE.NET下串口驱动程序设计李振兴,邓中亮北京邮电大学电子电子工程学院计算机应用技术专业,北京(100876)E-mail:lizhenxing.bupt@gmail.com摘要:本文介绍WinCE.NET下设备驱动程序模型,并以S3C2410下串口驱动程序设计为例,分析了串行设备的命名规则,并在此基础上深入分析、探讨了ARM体系下WinCE.NET串口注册表的设置方式以及串口地址的分配方式,最后给出了一种向平台添加一个额外串口的方法,实验结果证明了方法的有效性。关键词:WinCE.NET,驱动程
2、序,串口,注册表1.引言WinCE.NET是微软公司向嵌入式领域推出的一款紧凑、高效的32位嵌入式操作系统,[1]具有多任务、实时性、模块化及可伸缩性、强大的通信和多媒体能力等特点,在移动计算、工业控制和信息家电等诸多领域都有广泛的应用。通讯能力是基于WinCE.NET设备的一个关键性特征。在嵌入式系统开发过程中,常常需要面临与外围设备通信的问题,对此WinCE.NET提供了广泛的硬件支持和通讯方式,对于用电缆、调制解调器或者红外传输介质连接的设备提供了串行通信支持。尽管在计算机外围通讯中已经有了比串口更快、更稳定的接口,但是在基于WinCE.NET
3、的嵌入式设备中,串行通讯仍然是最基本、最常用的通讯方式,被绝大部分WinCE.NET设备所支持。例如,目前流行的基于WinCE.NET的手持设备一般都具有导航和电话功能,而GPS和GSM/GPRS模块都是外置串口的终端设备。因此,在很多基于WinCE.NET的嵌入式系统开发中,串行通信的实现是一个重要环节。本文利用工具PlatformBuilder、以串口驱动程序为例,探讨WinCE.NET下的驱动程序开发,分析串口注册表的设置方式以及串口地址的分配方式,以及向平台添加串口驱动的方法。2.WinCE.NET下的驱动程序[2]目前基于WinCE.NET
4、的两种模型是本机设备驱动程序和流接口驱动程序。本机设备驱动程序用于低级、内置设备,提供一组定制的接口,可通过移植、定制微软提供的驱动样例来实现。流接口驱动程序实现一组固定的流接口函数,所有的CE设备皆可使用此模型实现。开发工具PlatformBuilder中包含的样本设备驱动程序分为两种:单片驱动程序和分层的驱动程序,如图1所示。单片驱动程序基于单个码片,该码片直接把硬件设备的功能传递给操作系统。与单片驱动程序相比,分层驱动程序由两个设置好的层组成,上层是模型设备驱动程序(ModelDeviceDriver,MDD),下层是依赖平台的驱动程序(Pla
5、tformDependentDriver,PDD)。大多数的样本设备驱动程序都配置成分层的。-1-http://www.paper.edu.cnGWESDeviceManagerDDIfunctionsDDIfunctionsStreaminterfacefunctionsDevicedriverDevicedriverMDDlayerMDDlayerModolithicdeviceDDSIfunctionsDriverDDSIfunctionsPDDlayerPDDlayerHardware图1单体驱动程序与分层驱动程序微软为链接驱动程序提供了模型
6、设备驱动程序(MDD)。对平台和函数来讲,模型设备驱动程序(MDD)是通用的,既是源代码也是库。模型设备驱动程序(MDD)执行下列任务:(1)链接PDD层,并定义它希望调用的函数,通常这些函数叫做设备驱动程序提供器接口(DeviceDriverServiceProviderInterface,DDSI);(2)把不同的函数集提供给操作系统,通常这些函数叫做设备驱动程序接口(DeviceDriverInterface,DDI);(3)处理像中断处理这样复杂的任务;(4)负责与GWES模块和内核通信。不像MDD层,依赖平台的驱动程序(PDD)层与MDD和
7、硬件都有接口,这就意味着必须适合目标平台的需要。一个PDD由针对具体硬件的函数组成。而这些函数与一个MDD相对应、但这种对应不是直接的一一对应。MDD函数实现独立的任务,而MDD则通过使用这些任务来实现其目标。因为PDD是硬件相关的,因此必须生成一个设置好的PDD并输出到平台硬件。像其他计算机结构一样,当设备需要驱动程序的服务时,基于WinCE.NET的平台要使[3]用中断通知操作系统。WinCE.NET把中断处理分两部分,中断服务例行程序(InterruptServiceRoutine,ISR)和中断服务线程(InterruptServiceThr
8、ead,IST)。实质上,中断服务例行程序把物理中断映射为逻辑中断,并以中断标识号实现形式返回给系统任务调度
此文档下载收益归作者所有