PS型数据采集接口板卡的驱动模块开发
- 格式:pdf
- 大小:88.32 KB
- 文档页数:4
驱动板卡开发方案驱动板卡开发是一项技术密集的任务,需要考虑硬件和软件的兼容性,以及系统的稳定性和可靠性。
下面是一个关于驱动板卡开发方案的建议。
第一步是确定需求。
首先,需要明确开发的驱动板卡的功能和特性。
这包括所需的输入输出接口、通信接口以及所支持的设备类型和规格。
在确定需求时,需要考虑到市场需求和竞争对手的情况,以便设计出满足用户需求并具有竞争力的产品。
第二步是进行硬件设计。
在进行硬件设计之前,需要对目标设备进行调研,了解其硬件规格和接口要求。
然后,根据需求进行电路设计和布局。
硬件设计需要考虑到供电需求、信号处理和保护等方面,以确保板卡的性能和可靠性。
此外,还需要进行测试和验证,以验证硬件设计的正确性和稳定性。
第三步是进行软件开发。
驱动板卡的软件开发包括底层驱动程序和应用程序的开发。
底层驱动程序负责与硬件进行通信,控制和管理硬件资源。
应用程序则是为用户提供驱动板卡的功能和接口。
在软件开发过程中,需要进行需求分析、系统设计、编码和测试等步骤。
为了提高开发效率和代码质量,可以使用现代化的软件开发工具和技术。
第四步是进行系统集成和测试。
在进行系统集成之前,需要对硬件进行详细的测试,以确保每个功能都能正常工作。
在系统集成过程中,需要对硬件和软件进行整合,并进行整体功能验证和性能测试。
此外,还需要进行兼容性测试和可靠性测试,以确保驱动板卡可以在不同的硬件和操作系统环境中正常运行。
最后一步是进行产业化和市场推广。
在完成驱动板卡开发和测试之后,可以进行批量生产,并进行市场推广。
可以通过与合作伙伴合作、参加行业展览和推广活动等方式,将产品推向市场。
此外,在发布后,还需要进行用户支持和售后服务,以提高用户满意度和品牌形象。
总体而言,驱动板卡开发方案需要综合考虑硬件和软件的开发,以及系统的稳定性和可靠性。
通过明确需求、进行设计、开发和测试,并进行市场推广,可以开发出符合用户需求的产品,并取得市场竞争优势。
第29卷第12期2008年12月微 计 算 机 应 用M I CROCOMP UTER APP L I CATI O NSVol129No112Dec12008基于PS/2协议的条码扫描器与单片机接口设计3李建国 赵战民 刘 卿(石家庄经济学院 信息工程学院 石家庄 050031)摘要:基于对PS/2接口协议和条码扫描器输出数据格式的认识,从触发方式和接收方式两个方面详细分析了单片机读取条码数据的原理与实现方法,同时给出了扫描码与ASC II码的转换程序设计。
在应用中,给出了条码扫描器与MCU的接口电路及通行方案,并介绍了单片机对条码数据识别系统一种典型应用方法。
关键词:PS/2协议 条码扫描器 单片机 接口设计I n terface D esi gn Between the Bar Code Reader and M CUBa sed on PS/2ProtocolL I J ianguo,ZHAO Zhanm in,L I U Q ing(School of I nfor mati on Engineering,Shi J iaZhuang University Of Econom ics,Shi J iaZhuang,050031,China)Abstract:The PS/2p r ot ocol and the data signal out put style of bar code reader are discussed in this paper,On the basis of this,It de2 tailed analyses the stri pe code detect theory and realize methods of MCU in trigger mode and receive mode,als o the design of conver2 si on p r ocess bet w een scanning code and ASC II code is given.I n app licati on,the circuit of interface and communicati on sche me be2 t w een bar code reader interface and MCU are p r ovided,It als o intr oduces a typ ical utility of this syste m..Keyword:PS/2p r ot ocol,bar code reader,MC U,interface design1 引言条码扫描器是计算机系统的标准输入设备之一,由于它在I B M PC及其兼容机中很大程度上代替了键盘的部分输入操作,而且某些方面又具有键盘操作所不具有的方便性,因而在PC机系统中的应用越来越普及,尤其在商业数据管理领域已成为必不可少的输入设备。
多速率POS测试CPCI模块设计原理及方法段美霞【摘要】对POS传输网络进行严格的测试是检验IP over SDH网络的必经途径,根据IP映射和解映射到SDH帧不同层次的协议及方法,阐明了设计原理,提出了相应的测试方案和设计实现方案,采用多速率接口芯片实现对SDH层次的适配,采用FPGA对SDH、IP层协议进行解析和发生的方法,实现了对SDH层和IP层的测试,实验结果证明设计实现方案是可靠的和行之有效的。
%The strict testing for POS( IP over SDH) transmission network is the necessary way to inspect IP over SDH network. The design principles are clarified according to the standard which defines how to map IP data to SDH frame and demap ip data from SDH frame at different levels,putting forward the test scenarios and design implemen-tations,the project apply the multi-rate interfacechip to match the test requirment on SDH layer,the generation and analysis of SDH and IP layer protocol is realized in the FPGA. The experimental results proved that the design is reliable and works well.【期刊名称】《电子器件》【年(卷),期】2014(000)004【总页数】5页(P617-621)【关键词】POS传输;多速率;映射;去映射;隔离字符【作者】段美霞【作者单位】华北水利水电大学信息工程学院,郑州450011【正文语种】中文【中图分类】TP393.11POS(IP over SDH)技术是通过SDH高速传输通道直接传送IP分组,POS技术主要应用于数据传输骨干网,使用PPP点到点协议将IP数据包映射到SDH帧上[1-2,8],按各次群相应的线速率进行连续传输,其网络主要由大容量的高端路由器经由高速光纤传输通道连接而成。
[导读]根据高精度光电位置灵敏探测器(PSD)的工作原理及输出特性,本文介绍了一套基于单片机技术的PSD输出信号数字采集电路的设计方案。
通过Atmega16型单片机控制AD1674模/数转换、AD7501多路转换等实现对PSD输出模拟信号的数字化转换和采集。
电路结构简单、成本低廉、体积较小,广泛适用于各实验室的PSD输出信号采集模拟实验。
0 引言PSD作为一种精密的光电位置传感器,具有灵敏度高、响应时间短、位置分辨率高、光谱响应范围大等特点,因此被广泛应用于现代光电检测技术中,尤其是高精度、高速度的数据采集技术中。
如何在极短的响应时间内实现多数据的采集,成了采集PSD输出数据的关键。
本文基于单片机技术,设计搭建了一套高速的PSD输出数据采集及控制电路,通过在实验室条件下对PSD输出数据进行采集,从而为后续的PSD定位精度以及抗干扰研究奠定理论基础。
1 PSD 的工作原理光电位置敏感器件PSD(Position Sensitive Detector)是一种基于横向光电效应、连续分布的半导体位置探测器件,能快速、准确给出入射光点在光敏面上的位置,即PSD输出的信号与光点在光敏面上的位置有关。
如图1所示,表面P+层为感光面,两边各有一信号输出电极。
中间为I层,底层的公共电极用于加反向偏压。
当光线入射到光敏面上时,由于与结面平行的横向电场作用,光生载流子形成向两端电极流动的电流X1 和X2,且总电流X0 = X1 + X2.当入射光斑与两电极的间距发生变化时,两电极的输出电流也随之变化,从而实现了位置测量功能。
如图2 所示,如果PSD 的面电阻是均匀的,且阻值R1 和R2 远大于负载电阻RL,则R1 和R2 的值仅取决于光点的位置,即:式中:L 为PSD 中点到信号电极的距离;x 为入射光点到PSD中点的距离。
将X0 = X1 + X2 代入式(1),即可得到光点坐标:显然上式与入射光强X0 无关,这就是一维PSD 的定位原理。
嵌入式技术 电 子 测 量 技 术 EL ECTRON IC M EASU REM EN T TECHNOLO GY第33卷第1期2010年1月 QNX 6下PXI 高速数据采集卡驱动程序开发侯轶宸 苗克坚(西北工业大学计算机学院测控系统体系结构教研室 西安 710129)摘 要:针对航空设备测试系统中需要长时间高速数据采集的问题,为PXI 总线专用高速数据采集卡研发了基于QNX6实时操作系统的设备驱动程序。
论文分析了QNX6的资源管理器层次结构以及PXI 总线的特点,简要说明高速数据采集系统原理,详细阐述了QNX6系统下基于PXI 的高速数据采集设备驱动程序的结构特点与实现难点。
最后以ARINC429数据作为采集源,提出一个具体的测试方案,用软件分析采集到的数据,并绘出ARINC429数据波形图。
经过验证,高速数据采集系统满足某航空测试设备的需求。
关键词:PXI ;QNX6;资源管理器;设备驱动程序中图分类号:TP2 文献标识码:ADevelopment of driver of PXI high 2speed data acquisition card in QNX 6Hou Y ichen Miao Kejian(Test and Control System Architecture Lab ,School of Computer Science ,Nort hWestern Polytechnical University ,Xi πan 710129)Abstract :In order to solve the problem that we need to collect high 2speed data in a long time for aviation equipment ,we develop the driver of PXI high 2speed data acquisition in QNX6.QNX6is a real 2time OS.The architecture of the resource manager in QNX6and the features of PXI bus are analyzed.We also introduce briefly the principle of high 2speed data acquisition system.On the basis of this ,we focus on how to develop the driver of PXI high 2speed data acquisition card.At last ,we take ARINC429data as acquisition source.A test method is proposed.We use the software to analyze the data and draw the waveform of ARINC429.The example proves that the method is effective.The high 2speed data acquisition system meets the real 2time requirement of the test device in aviation area.K eyw ords :PXI ;QNX6;resource manager ;device driver0 引 言数据采集是从传感器和其他待测设备等模拟和数字被测单元中自动采集非电量和电量信号,送到上位机中进行分析处理。
・118・ 计算机测量与控制.2003.11(2) Computer Measurement &Control 数据采集收稿日期:2002-06-12。
作者简介:梅辉(1977-),男,四川省简阳市人,博士生,主要从事民航材料表面工程,超高温结构复合材料以及材料损伤监测,环境模拟,生产工艺模拟等方面的研究。
文章编号:1671-4598(2003)02-0118-04 中图分类号:TP31111 文献标识码:APS 型数据采集接口板卡的驱动模块开发梅 辉,费敬银,成来飞(西北工业大学民航学院,陕西西安 710072)摘要:采用Vireo S oftware 公司出品的VxD 开发软件包VtoolsD ,开发出了Windows98环境下的数据采集卡虚拟设备驱动程序。
VxD 部分完成对物理设备的直接控制和通讯,DLL 部分完成设备驱动(Ring0)与应用程序(Ring3)之间的接口,Microsoft Visual C ++开发的应用程序通过调用Windows 系统函数,实现对采样的精确定时,其周期最小可达011ms 。
关键词:Windows98;虚拟设备驱动程序VxD ;中断;定时器Development of a Virtual Device Driver for PS Data -collection C ardM EI Hui ,FEI Jing 2yin ,CHEN G Lai 2fei(Civil Aviation Engineering College ,NPU ,Xi ′an 710072,China )Abstract :With the software kit VtoolsD of the Vireo S oftware Inc.to develo p VxD ,a virtual device driver for PS2116data -collection card is developed.The VxD is used to take charge of control and communication of the physical device ,the DLL is the interface programme between the virtual device driver and the a pplication.With the function provided by Windows Operation system ,the minimum cycle of time is able to reach 011ms.K ey w ords :Windows98;virtual device driver VxD ;interru pt ;timer1 引言Windows98是现今应用最为广泛的32位操作系统。
Windows98的结构组件包括3个:虚拟机(Vir 2tual Machine )、虚拟管理器(Virtual Machine Manag 2er )和虚拟设备驱动程序VxD (Virtual Device Driv 2er )。
在Win98下,应用程序是在虚拟机中执行的。
虚拟管理器在Windows 虚拟环境中处于核心地位。
由于每个虚拟机都可使用系统的所有软硬件资源,这就存在着资源怎么被无冲突共享问题。
为解决此问题,Win98把各个硬件抽象成一个个虚拟设备,用户要访问底层硬件,则实际上是访问这些虚拟设备驱动程序。
也就是说,它是虚拟机上运行的任务和各软硬件资源之间的接口。
正是为此编制了PS 系列某型数据采集接口板卡的驱动程序以及相关的动态连接库文件DLL 。
2 VxD 的功能结构与运行原理211 VxD 功能结构虚拟机管理器和VxD 的集合是构成Win98系统的核心,在一般情况下,VxD 的作用是用来支持硬件设备管理的,是虚拟化的某一具体硬件设备的驱动程序。
其功能是向应用程序提供与硬件接口环境,用以同步和协调各虚拟机对设备的访问,并可以向其它的VxD 通过服务,还能为实模式软件提供应用程序编程接口。
而VxD 的作用不仅仅限于此,它还可作为设备驱动程序而不是虚拟化设备,还有些VxD 与硬件并没有什么关系,它仅向其它的VxD 或应用程序提供服务。
这样软件在虚拟机上运行时并不认为虚设备和实设备有什么不同,在软件一级来看,它们是完全一样的。
一个标准的VxD 由5部分组成,这5部分分别存放在5个不同的段中:(1)VxD -CODE (必须段)保护模式代码段;(2)VxD -DA TA (必须段)保护模式数据段;(3)VxD -ICODE (可选段)保护模式初始化段;(4)VxD -IDA TA (可选段)保护模式初始化数据段;(5)VxD -REAL -IN IT (可选段)实模式初始化段。
212 运行原理每个VxD 的初始化过程是不同的,而且模式不同过程也不同。
总的来说,过程大致是:Windows 在初始化时,每一个VxD 按照设备描述块中定义的初始化顺序进行初始化工作。
第2期梅辉:PS型数据采集接口板卡的驱动模块开发・119・ VxD被正确初始化载入后,一个运行在虚拟机上要和系统软硬件打交道的程序对设备的访问过程是: (1)此程序发出访问请求,这个请求经过各种渠道最后到达虚拟机管理器;(2)VMM将请求解释后传给该设备的VxD;(3)VxD对请求进行理解,协调处理当前转台后将请求发送给物理设备;(4)物理设备返回数据由VxD传给VMM,VMM再传递给虚拟机上的程序。
3 数据采集虚拟设备驱动程序(VxD)开发311 开发工具简介VxD的开发,通常只能使用DD K,用32位汇编语言开发,但这需要对Win9x的内核结构相当了解,另一方法是借助Vireo Software公司出品的VxD开发软件包VtoolsD。
VtoolsD开发包包括1个可视化编程的VxD代码生成器QucikVxD、ANSI C的运行库、VMM/VxD 服务库、VxD的C++类库、使用工具以及大量实例和文档。
VtoolsD的类库提供了VxD程序框架,绝大部分的VMM和VxD的服务都可以通过引用类成员函数来实现。
312 数据采集卡接口板卡结构选择PS某型号的数据采集接口板卡,它采用IBM-PC总线标准所设计的12位A/D卡,主要包括一片16路多路开关、一片A/D转换器、采样保持器、24路数字量并行I/O接口。
该数据采集接口板卡的主要技术指标如下:(1)A/D通道数:单端16路;(2)A/D转换器位数:12位;(3)输入信号电压范围:0~±5V;(4)转换时间:≤25μs;(5)总误差:≤011%FSR;(6)输出码制:偏移二进制码;(7)I/O通道数:24路;(8)输入/输出电平:TTL电平;(9)输入阻抗:≥10MΩ;出厂时将I/O端口基地址设为0100H。
在本系统中,8255以方式2工作。
313 数据采集设备驱动数据采集系统通过采集卡上的A/D芯片将模拟信号数字化,每次采样结束后直接触发中断。
为了实现和控制以上过程,驱动程序需解决以下问题:(1)I/O端口读写:采集卡的命令字和状态字的读写多通过I/O端口操作实现。
虽然I/O操作可在Ring3级代码实现,但是优先级太低,延时大,不符合实时要求。
(2)访问物理地址:保护模式下,程序运行在线性物理地址空间,内存采用平板模式(Flat Mode),不能直接访问物理地址。
这就需要设备驱动程序实现物理地址到线性地址的转换。
(3)中断:中断信号接收和中断服务程序都属于Win98系统核心级操作,在Ring3级代码中无法实现,必须由VxD处理。
这也是设备驱动程序要解决的核心问题。
为了解决以上问题,解决方案由虚拟设备驱动程图1 设备驱动解 决方案流程图序Ps1vxd和Ring3间接口程序Ps1dll两部分构成,其流程如图1所示。
其中VxD部分完成对物理设备的直接控制和通讯,DLL部分完成设备驱动(Ring0)与应用程序(Ring3)间的接口。
这样,应用程序就感觉不到Ring0级的设备驱动存在,只需调用DLL就可以完成对物理设备的控制。
31311 VxD的编制(1)I/O操作:I/O读写实现较简单,可调用VtoolsD的VMM的服务函数-outp,outpb,-inp和-inpb。
(2)访问物理地址:Ring3代码不能实现访问物理地址,这是由于它只能读写线性地址。
VtoolsD提供VMM服务函数Map PhysToLinear可实现物理地址到线性地址转换。
函数原形为PVO ID Map PhysTo2 Linear(CONST VO ID3PhysAddr,DWORD nBytes, WORD Flags),其中参数PhysAddr、nBytes分别为物理地址和此物理内存大小,Flags必须置为0,函数返回值为线性地址。
(3)中断处理:VtoolsD提供类Vhardware Int来实现对某个IRQ端口的虚拟化,并处理该IRQ的中断服务。
使用Vhardware Int首先应该调用构造函数Vhardware Int创建实例,在重载OnVirtual Int成员函数,实现中断服务;最后调用hook成员函数,将IRQ虚拟化并与Vhardware Int类OnHardware相挂接。
中断信号可由应用程序传入,且应用程序事先将窗口句柄和自定义的待检测消息值由DLL传入设备驱动程序,并建立此消息与自定义的处理函数相映射。
中断发生后,中断服务函数OnVirtual Int中仅向用户程序窗口发送指定消息。
用户程序收到驱动程序发出的消息后,将自动调用处理函数。
对应用程序来说,对中断的处理变成对指定消息的处理。
(4)VxD与Win32的通信机制:VxD与Win32的通信是通过一个特殊的消息:W32-DEV ICEIO2 CON TROL来实现的。
VMM代替DeviceControl函数 ・120・计算机测量与控制 第11卷的应用向VxD发送此消息,消息参数可确定VxD消息响应函数、输入输出缓冲区指针及缓冲区大小,并绑定在DIOCPARAM ETERS结构中。
通过这一接口,不仅仅可以读写设备,而且还能在应用程序和VxD之间互传指针,从而达到特殊应用目的,完成以上操作由类VDevice的成员函数OnW32Device IoContaol完成。
下面是虚拟驱动程序Ps.vxd的源码中的关键部分:Ps.h头文件#include<vtoolscp.h>...//常量定义路calss HydrDevice:public Vdevice{//继承虚拟机类public:virtual BOOL OnSysDynamicDeviceInit();virtual BOOL OnSysDynamicDeviceExit();virtual DWORD OnW32DeviceControl(PIOCTL PARAMS pDIOCParam);HwInt3p IRQ;};class HwInt:public VhardwareInt{//继承中断类public:HwInt(int IRQ-NO):VhardwareInt(IRQ-NO,0,0,0){}; virtual VOID OnHardwareInt(VMHANDL E);}Ps//主模块......int IRQ-NO;DWORD uMsg;HANDL E hWnd;BOOL HydrDevice::OnSysDynamicDeviceInit(){//VxD加载入口,初始化p IRQ=NULL;return true;}BOOL HydrDevice::OnSysDynamicDeviceExit(){//VxD卸载出口,回收资源if(p IRQ){p IRQ->unhook();//解除中断与OnHardwareInt的连接;delete p IRQ;}return true;}VOID HwInt::OnHardwareInt(VMHANDL E hVM){//VxDSHELL-PostMessage(hWnd,uMsg,0,0,NULL, NULL);SendPhysicalEOI();//通知VPICD中断结束}DWORD HydrDevice::OnW32DeviceIoControl(PIOCTL2 PARAMS pDIOCParams){//VxD与Win32的接口函数 switch(pDIOCParams->dioc-IOCtlCode){ case SET-IRQ://中断初始化 pReq=3(pDevice-request3)pDIOCParams-> dioc-InBuf; IRQ-NO=pReq->irq.IRQ-NO; hWnd=pReq->irq.hWnd; uMsg=pReq->irq.uMsg; p IRQ=new HwInt(IRQ-NO); pback->success=p IRQ->hook();//挂接中断 break; case MASK-IN T: p IRQ->physicalMask();//屏蔽中断 break;l case UNMASK-IN T: p IRQ->physicalUnmask();//允许中断 break; case MAP-PHYSICAL-L IN EAR://物理内存映射 pReq=3(pDevice-request3)pDIOCParams-> dioc-InBuf; pback=3(pDevice-request3)pDIOCParams-> dioc-OutBuf; WORD ph-addr=pReq->map.ph-addr; DWORD mem-size=pReq->map.size; pback->map.linear-addr=(DWORD)Map Phys2 ToLinear((PVOID) ph-addr,mem-size,0); break; case PORT-WRITE-B YTE://I/O字节写 pReq=3(pDevice-request3)pDIOCParams-> dioc-InBuf; base=pReq->port.base; -outp(base,pback->port.b-value); break; case PORT-WRITE-WORD://其它I/O操作略 ......}return0;}因为数据采集卡上有16个数据采集通道,可以进行单通道数据采集,也可以进行多通道数据采集,系统应该能够满足这两种要求,为此在VxD中,包含了单通道和多通道数据采集程序。