Windows CE平台上开发采集板驱动程序-_第1页
Windows CE平台上开发采集板驱动程序-_第2页
Windows CE平台上开发采集板驱动程序-_第3页
Windows CE平台上开发采集板驱动程序-_第4页
Windows CE平台上开发采集板驱动程序-_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、文章编号:1008-1658(200403-0022-05Windows CE 平台上开发采集板驱动程序王少红,徐小力,李海燕(北京机械工业学院机电系统测控北京市重点实验室,北京100085摘要:Windows CE 是一个新的、待深入开发的操作系统,能够适应广泛的系统需求,在最新一代的工业和家用电子设备中得到了广泛的应用。简单介绍了Windows CE 驱动的系统结构,以在分光光度计研制过程中应用的艾讯AX10410A 型高速数据采集板为例,介绍了Windows CE 操作系统的设备驱动程序的开发过程。经过测试,效果良好。关键词:数据采集板;Windows CE ;驱动程序中图分类号:TP

2、274文献标识码:ADevelopment of drivers for the Data Acquisition C ardon Windows CE platformW ANG Shao 2hong ,X U X iao 2li ,LI Hai 2yan(Beijing K ey Laboratory M easurement and C ontrol of M echanical and E lectrical System ,Beijing Institute of M achinery ,Beijing 100085,China Abstract :Windows CE is a n

3、ew operating system language that awaits for farthur study.It fits far 2ranging need ,and has been widely used in industry and electronic aid.A brief introduction is given to the system structure of Windows CE.By applying AX10410A high performance data acquisition card during the de 2velopment of sp

4、ectrophotometer ,how to design device drivers on Windows CE platform is introduced in the paper.It has been proved that the method is efficient and practicable.K ey w ords :Data Acquisition Card ;Windows CE platform ;driversWindows CE 是一个新的、可移植的、实时的、模块化的操作系统1,具有一个简捷、高效的完全抢先式多任务操作核心,支持强大的通信和图形显示功能,能够

5、适应广泛的系统需求,在最新一代的工业和家用电子设备中得到了广泛的应用。笔者在开发紫外-可见分光光度计的过程中,采用艾讯公司的SC B84500型CPU 板(233主频、64M 内存、64M 的CF 卡和AX10410A 型的高速数据采集板。它们都是基于PC/104总线结构的嵌入式模块,构成了分光光度计的控制中心。其外围支持设备有触摸屏、键盘、打印机等。由于数据采集板没有现成的可以参照修改的驱动程序,需要用户自己编写,因此本文重点介绍如何在Windows CE 平台下编写数据采集板的驱动程序。收稿日期:2004-02-21基金项目:北京市教委科技发展计划重点项目项目编号:K Z 20031123

6、2014作者简介:王少红(1977-,女,山东东营人,北京机械工业学院机电系统测控实验室教师,硕士,主要从事虚拟仪器应用技术方向的研究。1Windows CE 设备驱动程序要把Windows CE 移植到目标平台上,必须为在平台上已建立的设备提供驱动程序。作为通用型的嵌入式操作系统,Windows CE 并没有像桌面系统那样提供了通用设备各种类型的驱动,而只是提供了与此相关的例子代码,若不经改动,这些代码可能只适用于此类设备中的个别型号。一旦依照硬件组成进行了平台配置之后,必须对已选入平台的驱动组件进行测试、修改,使这些硬件能够正常工作。这时的修改,存在几种可能:一种是在Windows CE

7、系统给出的几个类型的驱动组件中另外选择;一种是对已选组件进行配置文件的更改,如platform.reg ,comm on.reg ,确保驱动加载正确;还有一种则是对已有的驱动代码进行修改,这往往是针对于与硬件相关的那部分代码,即Windows CE 驱动代码中的PDD (Platform Dependent Driver 层。此外,对于非常规性硬件设备(或者说对现有的Windows CE 应用系统是非常规的,微软并没有提供任何相类似的驱动代码,则需要获取第三方(硬件厂商的支持,由他们提供Win 2dows CE 的驱动,或者使用者自行开发。由于驱动涉及到直接与硬件对话,因而开发者不仅要了解硬件

8、所能实现的功能以及应用操作系统的驱动架构,而且必须清楚其内部的硬性约定逻辑,并拥有特定的测试手段和测试方法。这就是硬件驱动开发难于一般的软件开发之处。针对分光光度计系统的开发,串/并行口、打印机、触摸屏、网络适配器等组件都具有例子代码,其中串/并行口、网络适配器不需改动,触摸屏、打印机的驱动则需要修改代码,而数据采集卡板有相似的例子代码,需要自己编写。下面介绍一下Windows CE 驱动程序的类型。2Windows CE 驱动程序类型设备驱动程序是将操作系统和设备连接起来,使得操作系统能够识别设备,并为应用程序提供服务。Windows CE 系统中的设备驱动分为2种类型:单层(m onoli

9、thic 驱动程序和分层(layered 驱动程序。单层驱动程序是基于单个代码片(single piece of code ,该代码片直接把硬件的功能性传递给操作系统,而分层驱动程序是有2个设置好的层组成,上层是模型设备驱动程序(M DD ,下层是平台相关的设备驱动程序(PDD 。大多数基于Windows CE 的设备驱动程序都采用分层结构。模型设备驱动程序也可以称为类驱动程序,一个模型设备驱动包含了一类驱动程序所共有的代码,而与具体设备相关的部分则包含在PDD 层中,操作系统内核通过M DD 来调节某个特定的PDD 例程,从而达到控制和访问硬件信息的目的2。使用分层结构开发驱动程序时,开发者

10、可以重用由微软提供的M DD 层代码,其他的工作仅仅是编写与特定硬件相关的代码。多层结构并不适合所有的驱动程序开发,因为在代码层之间必须编写额外的调用操作,在一些对性能要求较高的应用中单层结构可能更符合要求。单层结构中包含了所有必须的操作,既有中断服务例程,也有与具体平台相关的代码,这种结构避免了层次之间的相互调用所造出的系统资源的浪费。也就是说单层结构与多层结构相比更为简单和高效,但缺点是移植性和可读性相对较差。在本质上,Windows CE 的设备驱动程序都是一些动态链接库(.dll 文件,这些D LL 向内核提供了一些入口函数,使设备管理模块可以通过这些函数与具体的硬件设备进行通信3。3

11、2第3期王少红等:Windows CE 平台上开发采集板驱动程序图1AX 10410A 数据采集板工作流程3硬件介绍艾讯AX10410A 型高速数据采集卡,支持12位的16通道单端或8通道差动模拟量输入,2通道12位模拟量输出,8位TT L/DT L 的数字输入输出,1通道计数器/定时器,可编程增益有1、2、4、8。是一个基于PC/104总线结构的嵌入式模块。数据采集板的工作流程如图1所示。4程序开发由于硬件制造商一般不提供Win 2dows CE 驱动程序,于是从应用角度出发只有自行开发CE 驱动,并进行了测试。驱动程序采用单层结构。在开发过程中,应用了带LE D 的实验板进行直观的测试。通

12、过它,8位的数字输出可以直接由8个发光二极管显示,亮代表此位为0、灭代表此位为1;通过跳线可以更改各数字输入位的值,未接地时输入位为1,跳线后输入位为0;在模拟输入端和地线间接入测试电压,通过万用表读数和程序输出之间的比较,可以检验模拟输入功能;当程序向采集板写出时,也可以用万用表测出真正的模拟输出。通过程序代码实现这些功能的关键点在于将采集卡的物理地址转换为CE 系统中的模拟地址。这是因为CE 系统中对物理地址的访问都是基于保护模式的,只有在物理地址映射为虚拟地址后,程序才能访问。下面给出由采集板实现数字输出、数字输入、模拟输入、模拟输出以及脉冲发送的主要代码。全局变量的定义:int iOu

13、tData ,iCinData ;/输出、输入变量int iChannel ,iG ain ;/通道、增益变量PHY SIC A L-ADDRESS P ortAddress ;/物理地址变量PUCH AR MappedBase =NU LL ;/基地址映射变量依据采集板上位置开关的设定给变量赋值:P ortAddress.LowPart =0x300;P ortAddress.HighPart =0;/将采集板的首地址赋给P ortAddress初始化:测试扫描寄存器(基地址加2:WRITE -PORT -UCH AR (MappedBase +2,0x55;/向扫描寄存器写入0xaaj =

14、RE AD-PORT -UCH AR (MappedBase +2;if (j !=0x5542北京机械工业学院学报第19卷MessageBox(NU LL,TEXT(“ax10410not exist”,TEXT(read data”,M B-OK;WRITE-PORT-UCH AR(MappedBase+2,0xaa;/向扫描寄存器写入0xaaj=RE AD-PORT-UCH AR(MappedBase+2;if(j!=0xaaMessageBox(NU LL,TEXT(“ax10410not exist”,text(“read data”,M B-OK;测试控制寄存器(基地址加9:WRI

15、TE-PORT-UCH AR(MappedBase+9,0x55;/向控制寄存器写入j=RE AD-PORT-UCH AR(MappedBase+9;if(j!=0x55MessageBox(NU LL,TEXT(“ax10410not exist”,TEXT(read data”,M B-OK;WRITE-PORT-UCH AR(MappedBase+9,0xaa;/向控制寄存器写入0xaaj=RE AD-PORT-UCH AR(MappedBase+9;if(j!=0xaaMessageBox(NU LL,TEXT(“ax10410not exist”,text(“read data”,M

16、 B-OK;数字输出(DO:MappedBase=(PUCH ARMm MapI oS pace(P ortAddress,16,FA LSE;/获取基地址映射WRITE-PORT-UCH AR(MappedBase+3,iOutData;/向数字输出寄存器写出数字输入(DI:iCinData=RE AD-PORT-UCH AR(MappedBase+3;/读取数字输入寄存器模数转换(ADCstart=stop=iChannel;/单通道转换iChannel=start|(stop<<4;WRITE-PORT-UCH AR(MappedBase+2,iChannel;/设置转换通道

17、WRITE-PORT-UCH AR(MappedBase+11,iG ain;/设置转换增益通过软件触发方式进行模数转换int data-h,data-1,ch,data;WRITE-PORT-UCH AR(MappedBase+9,0;/采用软件触发方式WRITE-PORT-UCH AR(MappedBase,0;/启动软件触发for(int i=0;i<1000,i+;/延迟while(i=RE AD-PORT-UCH AR(MappedBase+8&0x80!=0;/判断是否准备好AD转换dat-1=RE AD-PORT-UCH AR(MappedBase;/从base+0

18、中取出转换后的低字节dat-h=RE AD-PORT-UCH AR(MappedBase+1;/从base+1中取出转换后的高字节ch=(data-1&0x0f;/读取转换通道dat=(data-h<<4+(data-1>>4;if(i=RE AD-PORT-UCH AR(MappedBase+8&0x40=0/判断是否为双极模式MessageBox(NU LL,TEXT(“Now is Bipolar!”,TEXT(“B OR U”,M B-OK;52第3期王少红等:Windows CE平台上开发采集板驱动程序dat-=2048;wsprintf(sz

19、Bu f,TEXT(“Nchannel%dNdata%dn”,ch,data;MessageBox(NU LL,szBu f,TEXT(“DAT A:”,M B-OK;判断差动模式或单端模式:if(RE AD-PORT-UCH AR(MappedBase+8&0x20=0x20;/单极:bit5=1使用通道0:WRITE-PORT-UCH AR(MappedBase+4,dat-l;WRITE-PORT-UCH AR(MappedBase+5,dat-h;脉冲发送:int iPulseWide,iPusleNum;/定义脉冲宽度和脉冲数Bool Dir;/定义电机旋转方向MappedBase =(PUCH ARMm MapI oS pace(P ortAd

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论