碧波液压网 欢迎你,游客。 登录 注册

基于WinCE的手轮驱动程序设计

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。
液压导航网

  

?  0 引言

  随着以计算机技术、通信技术和软件技术为核心的信息技术的迅速发展,嵌入式系统在各行业得到了广泛的应用。W inCE是一种为多种嵌入式系统和产品设计的紧凑、高效、可升级的操作系统,采用标准模式,其最主要的特征是为有限的硬件资源提供了多线程、多任务和完全优先级的计算环境。作者主要针对三星公司ARM9内核的芯片S3C2410进行了分析,结合CPLD,介绍了在W indows CE5·0系统下进行底层设备驱动开发的方法、CPU外设扩展的方法以及具体的手轮驱动程序[1]。

  1 S3C2410芯片和CPLD介绍

  处理器芯片选用的是韩国SAMSUNG公司的S3C2410,这是一款具有ARM920T内核的微处理器,通过片内PLL可实现最大为203MHz的CPU操作频率[2]。S3C2410内部集成了串口以及IO端口,再配合网络、CAN、USB等外围接口芯片,可以方便地实现与外系统的各种通讯方式,是系统的控制核心。CPLD的逻辑单元功能强大,一般的逻辑在单元内均可实现,因而其互连关系简单,电路的延时就是单元本身和集总总线的延时(通常在数纳秒至十数纳秒),并且可以预测。这里使用的是Lattice公司的LCMXO640。

  2 W indowsCE系统驱动特点

  W indowsCE5·0驱动按照加载方式和结构类型,可分为本机设备驱动程序、流驱动程序和混合型驱动程序。本机设备驱动适于集成到基于W indowsCE5·0平台的设备,由GWES加载,驱动接口一般都是定制的。流接口驱动常由DeviceManager加载,拥有固定的流驱动格式。混合型驱动程序同时有定制式和流驱动接口,但和系统交互只使用流式驱动接口。

  根据驱动程序的结构可分为层次型驱动和独立驱动程序,如图1所示,分层驱动要利用微软提供的与应用程序通信的上层,称为模块驱动程序层MDD (ModelDevice Driver)。MDD层通过设备驱动程序接口DDI (Device Driver Interface)与应用程序通信,开发驱动程序通常不修改MDD层,主要关心与具体硬件相关的下层,依赖平台的设备驱动程序层PDDPlatform Depen—dentDriver), PDD层通过设备驱动服务接口fDeviceDriverSeviceProvider Interface)直接管理硬件。独立型驱动程序(Mono-lithic Driver)包含了MDD和PDD两方面的代码,适用于操作不复杂的驱动,减小了MDD和PDD之间传递消息对系统的开销,更具有实时性。

  W indowsCE下的设备驱动程序在与应用程序相同的保护级上工作。当系统启动时,大多数驱动程序是由设备管理进程(DEVICE. EXE)加载的,所有这些驱动程序将共享同一个进程地址空间[3]。

  3 手轮驱动程序的设计

  驱动程序只是整个嵌入式数控系统驱动程序的一部分,关于ARM与MCX314之间通信的驱动程序不做详细分析。驱动程序主要工作流程是手轮产生的脉冲送进CPLD, CPLD通过外部中断5 ( IN5)通知S3C2410接受数据线上传过来的脉冲数据。系统结构如图2所示。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码: 看不清?点击更换

最新评论