基于Windows平台设备驱动模块的开发
PCI 设备Windows 通用驱动程序设计

PCI设备Windows通用驱动程序设计摘要通用高速PCI总线目标模块全面地讨论了Windows 设备驱动程序编写时所面临的主要问题及解决方案关键词经常要在机的软件中访问和控制硬件设备包括Windows95/98Windows 2000为了保证系统的安全性对应用程序访问硬件资源加以限制Windows下的驱动程序不仅仅包括物理设备的驱动程序为了简化问题本文将以撏ㄓ酶咚伲校茫勺芟吣勘昴探讨PCI设备的驱动程序设计方案它可以完成一般PCI设备驱动所需的功能Çý¶¯³ÌÐò²»»á¶ÀÁ¢µØ´æÔÚͨ¹ýÉ豸Çý¶¯³ÌÐò´Ó¶ø¿ÉÒÔʵÏÖ¶à½ø³Ì²¢ÐÐÔËÐн«µ÷ÓÃÉ豸Çý¶¯³ÌÐòµÄpc机程序称为用户程序所以大多数情况下驱动程序也不能通用一般至少要设计Windows 9X和Windows NT两个驱动程序版本同时它又推出一个新的Win32 Drivers Mode (WDM)驱动类型如USB 设备这个新的类型实际是在Windows NT的驱动模型的基础上增加了即插即用等内容先前叫Windows NT5.0´Ó³¤Ô¶µÄ½Ç¶È¿´µ«´ÓĿǰµÄÊг¡Çé¿öÀ´¿´ËùÒÔWDM在近一两年还无法替代其它类型的设备驱动0级2级和3级而用户程序运行在3级上具体的限制在不同的操作系统中是不同的Windows 95支持的驱动类型很多主要是VxD和打印机驱动两类VxD运行在Intel系统的0级上对任何I/O设备有全部访问权VxD驱动通常以放在Windows\System目录下也可以在程序运行时根据需要动态地载入但打印机驱动程序不是VxDͬWindows 95类似Kernel ModeUser Mode)之分PCI通用驱动程序要求对各种硬件资源访问开发设备驱动采用的主要开发工具是微软为设备开发者提供的软件包Device Driver Kit (DDK)±àÒëÐèÒªµÄÍ·ÎļþºÍ¿âÎļþÔÚDDK中还定义了一些设备驱动可以调用的系统底层服务中断服务可安装文件系统服务等等但Windows 95的DDK由于主要使用汇编语言描述因此VtoolsD是基于C/C++的使用和维护都较Windows DDK容易 PCI驱动程序的特点在设计驱动程序之前更需要详细了解硬件设备的特性需要了解的最主要的硬件特性包括设备的总线结构设备采用什么总线结构非常关键如ISA和PCIËùÒÔÇý¶¯³ÌÐòÉè¼ÆÒ²²»Í¬寄存器要了解设置的控制寄存器以及这些寄存器工作的特性设备错误和状态要了解如何判断设备的状态和错误信号port也就是通过CPU的IN/OUT指令进行数据读写但PCI规范不包括从属DMA的说明设备内存许多设备自身带有内存有的设备还要通过驱动程序设置设备的接口寄存器在DDK文档中有规定这是根据设备的不同而不同的但基本功能就是完成设备的初始化中断的设置如前面所说但驱动程序所要完成的工作却是相同的仅在需要的地方指出两个操作系统的不同ѰַPCI器件的资源和对PCI器件中断的服务所有软件扩展ROM码PCI BIOS规范有完整的有关PCI BIOS功能的描述[在PCI设备驱动程序的初始化过程中devicevendor indexͨ¹ýµ÷ÓÃPC IBIOS确认其存在总线号这是该器件利用总线号功能的PCI配置空间设备驱动就需要从配置空间获得硬件的参数包括所用的中断号存储器的地址存储器映射方式等读写配置空间可以调用BIOS中断1AHÔÙ¶ÔÅäÖÿռäÊý¾Ý¼Ä´æÆ÷(0CFCH)进行读写最重要的是获得基址寄存器(BADR)ϵͳ¿ÉÄÜ»á¸ù¾ÝÓ²¼þÇé¿öΪPCI设备分配新的资源而基址4是按内存方式映射的可以读对应端口的配置寄存器(Configuration Register)ÅÐ¶ÏÆä0位表示其是按内存方式设置的内存方式和I/O方式的配置寄存器的含义参见文献[如果要获得基址的大小然后读基址寄存器从第4位开始的0的数目表示基址的大小则从第2位开始的0的数目表示基址的大小查找PCI设备的工作是由HalGteBusData完成的但DDK推荐使用HaiGetBusDataOffset函数)端口操作在PC机上所以处理方法也不同它不象内存有实模式和保护模式之分在Windows 9X下而不一定非通过专门的驱动程序来完成甚至可以不用专门设计驱动程序由于PCI总线是32位的总线标准而且以前大多数C/C++编译软件都没有提供双字的函数在Windows NT下级的用户程序和用户模式驱动程序直接 使用I/O指令所以任何对I/O的操作都需要借助内核模式驱动来完成一是在驱动程序中使用IoReportResourceUsage报告资源占用PORTWRITEXXX函数读写另一种是驱动程序修改NT的I/OPermissions Map(IOPM)ÕâʱÓû§³ÌÐò²ÉÓÃͨ³£µÄI/O指令进行操作用户程序设计简单程序不能移植到非Intel的系统中±£»¤Ä£Ê½ÓëʵģʽµÄ¸ù±¾Çø±ðÔÚÓÚCPU寻址方式上的不同Windows采用了分段分页机制如图这样使应用程序产生一种错觉这样做最大的好处就是一个程序可以很容易地在物理内存容量不一样的编程人员使用虚拟存储器可以写出比任何实际配置的物理存储器都大得多的程序通过分段机制再通过分页机制线性地址被分割成页目录(Page Directory)µ±½¨Á¢Ò»¸öеÄWin32进程时并建立它自己的页目录页目录的地址也同时放入进程的现场信息中系统首先从CPU控制器CR3中读出页目录所在的地址再根据页表得到实际代码最后再根据页偏移访问特定的单元但应用程序读写的是虚拟地址从物理地址到线性地址的转换工作也是由驱动程序来完成的使用DDK的VMMCallÇý¶¯³ÌÐòµÄÄÚ´æÓ³É䲿·ÖÖ÷ÒªÊǵ÷ÓÃVxD的系统服务MapPhysToLinearPVOID MapPhysToLineag(CONST VOID * PhysAddr,DWORD nBytes,DWORD Flags);其中第一个参数PhysAddr就是要映射的内存的物理地址的起始位置Flags必须设置为0Èç¹ûÖ¸¶¨µÄÄÚ´æ²»ÄÜ´æÈ¡比如要映射物理内存ED000000H开始的4096个字节PCHAR *PointerToPage=(PCHAR)MapPhysToLinear((PVOID)OxED000000,4096,0);而将PointerToPage传递给调用驱动的用户程序而通过对这个指针的操作就可以实现对物理内存ED000000H进行读写首先调用IoReportResourceUsage请求使用设备的内存再使用MmMapIoSpace把设备的内存映射到虚拟空间调用MmUnmapIoSpace 断开设备的内存和虚拟空间的连接)中断的设置响应与调用应该在驱动程序中完成Int完成DDK还提供了响应中断事件的服务VPICD服务用来管理所有硬件中断事件对一个特定的IRQ中断源或者允许其它VxD重载中断处理函数要处理硬件中断应该从VHardwareInt继承一个类个类中在Windows NT中设备驱动首先使用HalGetInterrupuVector将与总线有关的中断向量转换为系统的中断向量×ÜÊÇÐèÒªÓÉÓû§³ÌÐòÀ´µ÷ÓÃÇý¶¯²¢ÊµÏÖÒ»¶¨µÄ¹¦Äܵõ½Ò»¸öÎļþ¾ä±úʹÓÃÈçϵÄÓï¾ä¾Í¿ÉÒÔ´ò¿ªÎļþµ÷ÓÃDeviceIoControl函数就可以同设备驱动程序交换数据了可以调用CloseHandle(hVxD)这种调用方式也是Windows NT调用设备驱动的标准方法如DPMI方式在两个操作系统下Íê³ÉÁ˶ÔÇý¶¯³ÌÐòµÄ³õ²½Éè¼Æ³ÌÐòÒ²²»Ì«ÈÝÒ×¾ßÓÐͨÓÃÐÔÔÚÓÐЩ¿ª·¢¹¤¾ßÖÐ不包括直接读写I/O端口的语句目前ActiveXDLL可以在大多数软件环境中进行调用VCL可以在Delphi和C++ Builder中使用所以也提供了C++类库方式 马卫国通用高速PCI总线目标模块的设计1999;25(1)±±¾©1997。
WDM驱动

Windows驱动开发模型WDM学习笔记绪言 (4)1.WDM驱动程序开发基础知识 (5)1.1WDM简介:Win32 Driver Model Win32驱动程序模型 (5)1.2 Win32 API (5)1.3 WDM特性 (5)1.4 WDM工作原理 (6)1.5 WDM与其它驱动程序的比较 (6)2.WDM驱动程序开发环境DDK设备驱动程序开发包 (6)2.1■安装DDK (6)2.1.1.Windows 98 DDK的安装 (7)2.1.2.Windows 95 DDK的安装 (7)2.1.3.NT DDK的安装 (8)2.2 ■构造环境:建立WDM驱动程序构造环境的方法 (8)2.2.1. 用SETENV.bat来安装驱动程序构造环境 (9)2.2.2. 手工运行SETENV.bat (9)2.2.3. 构造WDM驱动程序 (9)2.2.4.构造驱动程序 (9)2.2.5.检查Windows 98 DDK的安装 (9)3.WDM驱动程序的设计与开发 (10)3.1■WDM 驱动程序的运作流程 (10)3.2■驱动程序设计 (10)3.3■驱动程序开发 (11)3.3.l.编写驱动程序框架 (11)3.3.2.测试驱动程序 (11)4.WDM驱动程序编译运行:编译和安装设备驱动程序的方法 (12)4.1■编译设备驱动程序的方法 (12)4.1.1.举例分析 (12)4.1.2.编译的基本步骤 (13)4.2■设备驱动程序的安装和启动 (13)4.2.1.添加注册表中的键值 (13)4.2.2.控制驱动程序的装入次序 (14)4.2.3.驱动程序的Start值 (14)4.2.4.修改注册表的方法 (15)4.2.5.启动设备驱动程序 (15)4.2.6.调试工具 (16)5.wdm驱动开发基础-一些需要注意的问题汇总 (16)5.1注册表的角色 (16)5.2.如何命名注册表键 (16)5.3从用户模式中访问设备键 (17)5.4 函数原型“IN”关键字 (17)5.5 注册设备接口 (18)5.6 初始化设备扩展 (18)5.7 注意侧效 (19)5.8 try-finally中的控制流程 (20)5.9 生成异常 (22)5.10 __Leave语句 (23)5.11 简化页大小 (24)5.12 页故障关于分页 (24)5.13 alloc_text的使用 (25)5.14 关于段布置 (26)5.15 服务函数描述 (26)5.16 ExAllocatePoolWithTag (28)5.17 ExAllocatePool的其它形式 (29)5.18 单链表 (30)5.19 lookaside链表的服务函数 (31)5.20 打开注册表键 (31)5.21 删除子键或键值 (32)5.22 枚举子键或键值 (33)5.23 IRQL限定 (35)5.24 IRQL的明确控制 (35)5.25 自旋锁 (36)6. wdm驱动开发基础代码分析解析 (36)绪言在Windows的不同版本上开发的驱动程序“模型”(模型这个词语应该来源于单词“Mode”。
Windows CE

Windows CE下设备驱动的研究与实践作者:高守生来源:《现代电子技术》2009年第22期摘要:介绍Windows CE及其特点,深入研究Windows CE本机设备驱动程序和流接口驱动程序模型及工作方法。
在多主总线模式下,根据S3C2440处理器的集成功能和接口模式,以S3C2440处理器的寄存器物理地址和虚拟地址来捆绑和配置总线控制器设计为例,着重阐述了嵌入式Windows CE流接口驱动程序的开发过程,为此类设备驱动的快速开发提供了很好的思路。
关键词:Windows CE;设备驱动中图分类号:TP3340 引言伴随着后PC时代的到来,人们越来越多地接触到一个新的概念即嵌入式技术。
嵌入式技术已被广泛地应用于科学研究、工程设计、军事技术,以及文艺商业等方方面面,成为后PC时代IT领域发展的主力军。
这也极大地刺激了嵌入式系统的发展和产业化的进程。
嵌入式操作系统作为嵌入式系统的核心,是连接嵌入式设备和应用的重要部件。
它一方面要支持各种功能及规格的硬件设备,另一方面要为各种应用程序提供一致的功能调用接口,同时还需要在有限的系统资源上尽可能快地完成应用的计算需求。
目前,主流的嵌入式操作系统有嵌入式Linux,Palm OS,VxWorks,Windows CE等。
1 Windows CE简介Windows CE是一个开放的、可裁剪的、32位实时嵌入式窗口的操作系统。
与其他桌面版窗口操作系统相比,它具有可靠性好,实时性高,内核体积小及可伸缩性,通信能力强等特点。
所以被广泛用于各种嵌入式智能设备的开发中,是当今应用最多,增长最快的嵌入式操作系统。
Windows CE是从整体上为有限资源平台设计的多线程、完整优先权、多任务的操作系统。
它采用高度的模块化设计,这些模块之间可能是独立的,也可能有一些依赖关系。
在Windows CE中最主要的系统模块有五个,它们是(1) 内核:Windows CE的内核可以非常小,最小的内核只有500 KB。
windowCE_BSP开发

创建BSP的两种方法 创建BSP的两种方法
编写全新的BSP 编写全新的BSP
需要编写所有的部分包括 OEM抽象层, 驱动, OEM抽象层 驱动, 抽象层, 引导程序 20人 大约消耗 20人/月工作量
改写现有的BSP 改写现有的BSP
对与目标板具有相似硬件组成的BSP的基础上 对与目标板具有相似硬件组成的BSP的基础上 进行某些改写,使其适用与目标板, 进行某些改写,使其适用与目标板,这是最简 单的方式. 单的方式.
引导程序(Boot 引导程序(Boot Loader)
引导程序(Boot Loader)是在硬件开发板上执行 引导程序(Boot Loader)是在硬件开发板上执行 的一段代码. 的一段代码. 主要功能
初始化硬件 加载操作系统映像到内存 跳转到操作系统代码去执行 EBoot:Boot Loader通过以太网从工作站下载操作系统 Loader通过以太网从工作站下载操作系统 映像到目标机,然后把映像放到内存里执行,称之为 映像到目标机,然后把映像放到内存里执行, EBoot(Ethernet Boot的简称). Boot的简称 的简称)
OAL开发 OAL开发
类似于引导程序的开发 可以重用引导部分的代码
OAL架构 OAL架构
内核开发
黑体显示的函数需要由OEM厂商来实现
内核工作流
KITL
这样的设计可以很容易加 入任何调试服务功能 把通信协议和与之直接通 信的硬件层分离开来 减少用户在创建硬件独立 层的工作量 在系统映象中包含对 KITL的支持 的支持
引导程序 -- OEMPlatformInit
各种OEM 硬件平台初始化函数,包括时钟, 各种OEM 硬件平台初始化函数,包括时钟, PCI接口 或者NIC接口 PCI接口,或者NIC接口. 接口, 接口. NIC接口用于下载映象, NIC接口用于下载映象,另外服务于后面 接口用于下载映象 一些函数. 一些函数.
WindowsCE下USB摄像头驱动开发以OV511为例附带全部源代码以及讲解

这部分讲解如何在Windows 下实现 一样的功能。
Windows 的控制传输
查看MSDN,IssueControlTransfer和 IssueVendorTransfer是用来进行控制传输的,但两个函数 有什么区别呢? 看MSDN,IssueControlTransfer的第一个参数是 hPipe,就是说,在使用IssueControlTransfer之前,必须 用OpenPipe打开管道。 OpenPipe函数需要端点描述作为参数。但是,端点0是 没有这个描述可以用的(MSDN: However, endpoint zero (0) never has a USB_ENDPOINT structure)。 我没测试自己指定描述是否可以,但是, IssueVendorTransfer提供了更为方便的途径。这个函数默 认从端点0进行控制传输。 如果是其他端点的控制传输,是要用 IssueControlTransfer的。
Windows 下 流接口USB驱动程序加载的流程
6.接着CAM_Init函数被调用,参数就是ActiveDevice函数的 参数1,然后依据这个参数,在注册表中找到USB驱动程序的上下 文,并返回,这样对该流接口驱动的操作,就可以找到USB驱动 的上下文,并且交换数据。 以上这些工作完成之后,USB设备的信息被保存,并且USB 驱动程序上下文也被流接口驱动所记载。流接口USB驱动的加载 完成。我们就看见那个输入驱动程序名称的对话框消失了。如果前 面6个步骤中任何一步不成功,将不会使用这个驱动程序,会反复 弹出这个对话框,提示输入驱动程序名称,直到这些过程全部正确 完成。
HKEY_LOCAL_MACHINE\Drivers\Active中的项目。 注意:USB驱动程序不通过注册表API来操作注册表,而是通过 USBD提供的函数。
Windows CE.net的AD7854驱动程序开发

维普资讯
学 习 园 地
W
的
■ 东南 大学 周 怡 君 金 振 兴
介 绍基 于 Wid wsC n t AD7 5 n o E. e 的 8 4流接 口驱 动 程 序 的 开发 。 以 AD7 5 8 4与嵌 入 式 处理 器 ¥ C2 1 3 4 0接
. .
口电 路 为依 据 , 细 阐述 Wid wsCE n t 中 断 处理 过 程 , 出驱 动 开 发 的 具 体 实现 过 程 、 详 no .e 的 给 涉及 的 内核 文 件 以及 部 分 源 代 码 。该 驱 动 程 序 的 实现 为 基 于 Wid wsC n t的 嵌 入 式 系统 引进 AD7 5 n o E. e 8 4提 供 了
方便 。
关键词
Wid wsCE n t AD7 5 中断 处 理 设 备 驱 动 n o . e 84
引 言
AD7 5 8 4是 一 款 高 速 、 功 耗 的 1 低 2位 并 行 接 口模 数
2 W i o sC .e 设 备驱 动 简 介 n w E nt d
< == >
1 B?
都需 要 2 读 或 写 操 作 , 个 因此 , 一 使 用 2个 读/ 操 作 完 统 写
成 对 AD7 5 8 4的操 作 , 即仅 选 用 AD 8 4的 低 8位 数 据 线 75
Windows CE.net设备驱动程序开发研究

p e ito u e h e e o me t r c s f e ie d v rfrW i d wsCE. i , r d c st e d v l p n o e so vc r e o n o n p d i Ke r s: y wo d Emb d e p r t g s s m ; a v e i e d i e ; t a d vc r e ; a e e r e ; e d do ea n yt i e N t e d vc rv r S r m e ie d i r L y rd d v r i e v i
Mo o i i rv r n lt c d i e h
1 引 言
wid w C . E n 0 s E N T是 Mirsf 全 新 设 计 开 发 的 coo t
Widw E N T支 持 两 种 驱 动 程 序 模 型 : 地 驱 no sC . E 本 动程 序 ( a v ei r es 和 流 接 口驱 动 程 序 ntedv ed vr) i c i (t a ei r es 。本 地驱 动程 序是 指驱动 程 sems vc d vr) r d e i 序作 为操 作 系统 平 台 的 一 个部 件 实 现 , 于原 始 开 用 发商 集成 在 Widw E平 台 内的设 备 , L D、 no sC 如 C 键
盘、 C卡插槽 等 , 系统启动 时必须加载 的设 备。 P 是 流接 口驱动 程 序 是 用 户 一级 的 动态 链 接 库 ( L ) DL , 用 于驱 动可 安 装 的外 围设 备 , 打 印机 和 P 如 c卡 设 备等 , 由设备管理程序 自动检测并动态加载 。所有 的流接 口驱 动 程序都 要 提供 相似 的流接 口函数供 应 用程序调用 , 本地驱动程序则提供定制的接 口, 各种 本地驱动程序一般不会采用相同的接 口。图 2 显示 了 Widw E驱 动程 序 系统 结构 。 no s C
基于WINDOWS DDK的USB键盘驱动开发

基于WINDOWS DDK的USB键盘驱动开发
卢晓娟;陈根生
【期刊名称】《电子世界》
【年(卷),期】2013(000)010
【摘要】USB接口具有方便快速等优点,已经发展成为一种比较普遍的计算机与外设的接口。
基于微软windows系统DDK,本文介绍了一种非标准USB键盘的windows设备驱动程序的开发过程与方法。
【总页数】2页(P83-84)
【作者】卢晓娟;陈根生
【作者单位】江西赣州农业学校;江西赣州农业学校
【正文语种】中文
【相关文献】
1.基于VxWorks的USB键盘驱动开发研究 [J], 白丽;任恩恩;朱娜敏
2.基于DDK的USB接口WDM驱动开发 [J], 邓玖根;张正荣;胡松;唐小萍
3.Windows CE下USB设备流驱动开发与设计 [J], 慕晓蕾
4.基于DDK的PCI总线数据交互驱动开发 [J], 段晗晗;
5.用DDK开发Windows USB驱动程序 [J], 杨成
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Ke r s d vc rv r d l; mo i rn ; c n g rto ; h d reitra e d n mi ikl rr ywo d : e iedie mo u e nti g o o f u ain i r a wa e fc ; y a cl b ay n n i
类 不 同设 备 的驱 动模 块 具有 开发 周 期短 、 试 方便 、 调 软件 可 靠等 特 性 , 而且对 开发 不 同种 类 的设 备驱 动模 块 也 同样 具 有这
些特 性 。
关键 词: 设备 驱动模 块 ;监控 ; 组态 ;硬件 接 口; 动态链接 库
中 图法分 类号 : P 1. T 3 11
计 算 机 工 程 与 设 计 C m u r ni en d e g 2 1, o 3, o 33 o pt E g er g n D s n 0 1 V 1 2 N . 25 e n i a i . 9
基于 Wi o s n w 平台设备驱动模块的开发 d
冯 克 平 ( 海工程 技 术 大学 资产 管 理及 保 障处 ,上海 2 16 ) 上 0 2 0
读 写 、数 据 显 示 打 印 等 分 成 若 干 个 任 务 线 程 来 完 成 。 主 要 模
功能 , 而且有其 独特 的优 点: 时多任务 、 口开放 、 实 接 使用灵
活 、功 能 多 样 、运 行 可 靠 和 可 扩 充 性 。工 业 实 时 监 控 组 态 软 件 , 名 思 义 它 是 以灵 活 多 样 的 组 态 方 式 而 不 是 编 程 方 式 为 顾 用 户 提 供 良好 的开 发 界 面 和 简 捷 的使 用 方 法 , 预 设 的 各 种 其
文 献标识 码 : A
文章编 号 :0 07 2 2 1) 93 3 -5 10-0 4(0 1 0 —2 50
De e o m e t f e i ed i e d l s a e nW i d ws lto m v lp n v c rv r o d mo u e s do n o af r b p
软 件 模 块 可 以 非 常 容 易 地 实 现 和 完 成 监 控 层 的 各 项 功 能 。
评 价 一 个 工 业 实 时 监 控 组 态 软 件 的优 劣 , 先 要 看 它 支 首
持 I 设 备 的种 类 是 否 丰 富 , 及 在 组 态 了多 种 I 设 备 下 的 / O 以 / 0 目标 应 用 程 序 的 运 行 速 度 ,然 后 还 要 看 它 是 否 便 于 功 能 扩 展 及版本 升级 。 以, 何 开发一个 具有支持 丰富的 I 所 如 / O设 备 并 有 很 好 的 数 据 通 讯 的实 时 性 , 在 开 发 工 业 实 时 监 控 组 态 软 这 件 中 占 据 了重 要 的 地 位 。
wi i e e ty e f rv rmo u e , wh c r h a t r e y s f r l b l y e s e u g n d s o t y lso d v l p e t h t d f r n p so d i e d l s t ih a ec a ce i db t er i i t , a yd b g i ga h r c ce f e e o m n . r z o wa e a i n h s o i v e t r s s h w ms l e e i e e t y e fd v c r e d l r e eo e  ̄i e ̄a e r . T e ep s i ef a u e lo s o t e ev s t a h wh n d f r n p so e ie d i r f t v mo u e a ed v l p d wi n t h m wo k
F N G e p n E K — ig
( seMa ae n d rtc o vs n h n hi nvri f n ier g n c n e h n h i0 0 hn ) A st ng metn oet n io ,S a g aU iesy E gnei dSi c,S ag a2 6 ,C ia a P i Di i to na e 1 2
Ab t a t T h re et e d dt e e o e ied i e d l s t r et p so c mm o a d r t ra ea eca sf d o e s r c : o s o tn t men e e d v l p d v c r r h i o v mo u e , h e e f o y n h r wa ei e f c ls i e n t n r i h b sso esu y a d a a y i fi d s il e lt n t r g e u p n o a i f h t d n n l sso u t a a — memo i i q i me tc mmo l s d i ec n g r t n s fwa e it ra e a d t n r r i o n n y u e t o f u ai o t r e f c n h i o n n d t a n i r c s e . Dr e d l p l a i n fa e r n a as u t r e e o e o t eW i d wsb s dp af r a e aar da dwr ep o e s s e t i r v mo u ea p i t m wo k a dd t t c u ed v l p df m n o — a e l t m r c o r r r h o p tf r r d T e s r lc mmu ia in ca s i r s n e sa x mp e t u l e t e ma n c l n u c i n o e i e d v r T e u o wa . h e a o i n c t l s sp e e t d a n e a l o o t n h i al g f n t fd v c r e. h o i i o i s c e s l p l ai n d sr a ep o e a efa e r f h r g a a dd t r cu ef cl ae ed v l p e t f e ie u c s f p i to s n i u tyh v r v dt t h m wo k o t e o r m aas u t r a i tt s h e e o m n d v c s u a c i n h t r p n t i t o
本 文 以从 事 开 发 工 业 实 时监 控 组 态 软 件 和 设 备 驱 动 模 块
的 经 验 , 析 当今 各 种 主 流 工 控 设 备 和 标 准 通 信 协 议 , 讨 如 分 探
何 在 Widws 台上 构 建 一 个 适 用 于 各 种 I 通 讯 方 式 的 设 no 平 / O
监 控 组 态 软 件 的 出现 , 根 本 改 变 这 一 状 况 提 供 了可 能 。 为 工 业 实 时 监 控 组 态 软 件 是 从 分 布 式 监 控 系 统 (ir ue dsi td tb cnrl yt DC ) 展 而 来 。 它 不 仅 保 留 了 DC ot s m, S发 os e S所 具 有 的 大 规 模 数 据 采 集 处 理 功 能 、 据 通 讯 及 信 息 管 理 和 操 作 显 示 数
.
.n c
3 3 2 1, o.2 o9 2 6 0 1 V 1 ,N . 3
计算机工程 与设 计 C mp t E gnei dD s n o ue n ier ga ei r n n g
机 的 总 线 槽 里 , 通 过 IA 或 P I 线 扩 展 槽 与 计 算 机 进 行 数 S C总 据 通 信 。 每 块 板 都 有 一 个 基 地 址 范 围 , 算 机 通 过 访 问该 基 计 地址 即可达到 输入输 出数据 。 在 Widws 台 下 , 产 板 卡 类 的 厂 家 ~ 股 会 提 供 以 下 no 平 生
摘 要 : 缩短设 备驱 动模 块 的开发 周期 , 工 业实 时监控 组 态软件 中常用 的设 备接 口及其 数据读 写流程进 行 了研 究分析 , 为 对
归类 出3类通 用硬 件 接 口, 出 了基 于 Wid ws 台下 开发设 备 驱 动模 块 的程序 框 ห้องสมุดไป่ตู้及 数据 结构 , 以 串口通讯 类 为例 , 给 no 平 并 简述 其程 序框 架 中的主要 调 用 函数 。 实际开发 和 工 业现 场 的应 用结 果表 明, 在此 程序 框 架及 数据 结构 下 , 不仅 对 开发 同种
4 主 要 的 Widws P 函 数 : 种 no A I
态 、 备驱 动模块等 … 通常工业 实时监控 组态软 件系统 是 由 设 。
组 态 子 系 统 和 运 行 子 系 统 两 大 部 分 构 成 的 :
() 态 子 系 统 自动 化 工 程 设 计 师 为 实 施 其 控 制 方 案 , 1组 常 在 组 态 子 系 统 支 持 下 进 行 应 用 程 序 的 系 统 生 成 工 作 。 过 建 通 立 一 系 列 用 户 数 据 文 件 ( : 备 配 置 文 件 1 . i图 形 目标 文 如 设 0i , n 件 Mo i rn)供 运 行 子 系 统 运 行 时 使 用 。 态 子 系 统 可 由 若 nt .i, oi 组 干 个 组 态 程 序 模 块 组 成 , 设 备 驱 动 组 态模 块 、 据 采 集 组 态 如 数 模块、 图形 显 示 组 态 模 块 、 时 数 据 库 组 态 模 块 等 。 实 () 行 子 系 统 在 系 统 运 行 环 境 下 , 2运 目标 应 用 程 序 被 载 入 计 算 机 内 存 并 投 入 实 时 运 行 。系 统 任 务 管 理 模 块 会 根 据 已 组 态 好 的用 户 数 据 文 件 以 多 线 程 方 式 启 动 各 个 运 行 模 块 , 成 完 采 集 和 监 控 现 场 设 备 的数 据 , 现 场 工 程 运 行 状 况 以 图形 或 将 报 表 的方 式 显 示 出 来 。运 行 子 系 统 由画 面 显 示 模 块 、数 据 采