通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 MY小屋
联系我们
设为首页
加入收藏

 

QQ,ASP,PHP,JSP,XML,SQL,.Net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | Q Q 专栏 | 建站经验 | 在线工具 | 站长Club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>编程开发>>C#语言>>正文 新版上线![旧版]
注:打开慢时请稍等

Windows 9X硬件中断设备驱动程序的开发

http://www.iyit.net  日期:2006-7-18 22:56:08  来源:Internet  点击:
参加讨论
  关键词:控制系统 实时系统 虚拟设备驱动程序 VtoolsD

  一、绪言

  在计算机控制领域,随着硬件的发展,一些原本十分复杂的控制算法的设计和仿真变得越来越容易实现。与基于VME、MULTIBUS以及STD总线的平台相比,基于ISA总线的高性能PC工控机(IPC)无疑是近来应用最为广泛的主流产品。这主要得益于IPC与PC的软件兼容性,此外其开放性结构、外围高性能I/O模板的不断涌现以及实进工业网络的迅速发展都为IPC创造了有利的发展环境。可以说,IPC的时代已经到来。此外,在当今的计算机控制领域中,控制软件是否基于Windows平台已经成为产品是否有竞争力的重要标准之一[1]。目前基于Windows平台的相关产品已经占据了市场份额的90%。而Windows 9X和Windows NT凭借其出色的多任务、图形用户接口(GUI)、性能优越的硬件兼容性以及卓越的32位软件环境等性能已经越来越广泛地被应用于工业控制,成为实现实时控制的优秀平台。

  与Windows NT及其实时扩展PTX4.1[2]相比,Windows 9X的应用更为广泛灵活,而且对硬件的要求并不苛刻。本文将讨论在Windows 9X下实现实时控制的关键技术一一实时时钟中断驱动程序的设计及实现。

  二、Windows 9X下实时进钟的获得

  在实时控制中中断技术应用得十分广泛,其中实时时钟的获得基本上都是通过中断来实现的。时钟控制在实时控制中处于十分重要的地位,它负责推进控制过程、激活各控制任务或发关控制消息,起到了总控制器的作用。在Windows 9X下实时时钟的获得可以有不同的方法。设置Win32定时器并通过响应WM-TIMER消息来进行实时处理是最简单的方法。但是由于WM-TIMER消息的低优先级和未处理消息在消息队列中的组合造成了系统实时处理的不稳定,因此这种方法只适合实时性要求不高的应用。若采用Windows多媒体定时器,通过设置回调函数可以获得最高精度为Ims的定时信号,但是由于占用了系统宝贵的资源,而且当定时信号由用户提供或需要更高的中断频率时这种方法就显得无能为力了。与这些基于类似软件中断的方法相比,基于硬件中断的方法占据了主导地位,并在绝大多数的实时系统中得到了应用,因为它保证了对实时控制系统至关重要的可靠性。本文将讨论在PC和Windows 9X环境下对于实时控制系统的设计和实现中最为关键的硬件中断VxD的实现。

  三、VxD及VtoolsD

  VxD是32位保护模式下的可执行DLL,用于管理系统资源。所有的VxD运行于Windows VMM的监控之下。VMM和VxDs共同构成了Windows Ring 0层的系统内核。

  开发虚拟设备驱动程序(VxD)的常规方法是使用Microsoft出品的设备驱动程序开发工具包DDK(Device Developer Kit)。这要求设计者必须对Windows 95的体系结构、设备驱动程序的结构、VMM(Virtual Machine Manager,即虚拟机管理器)以及Intel CPU体系结构有深入的了解,而且需要保护模式的汇编语言编程经验[3]。但正如我们现在很少有人使用SDK开发Windows应用程序,取而代之以MFC或OWL等C++类库编程一样,DDK的开发人员现在可以使用类似VtoolsD、WinDriver等第三方的软件来编制驱动程序,笔者推荐使用VtoolsD。

  Vireo公司出色的VtoolsD由可视的VxD代码生成器QuickVxD、C运行库、VMM/VxD服务库、C++类库以及VxD的装入程序等组成。利用QuickVxD生成的框架程序和经充分测试过的C运行库或C++类库可以绕过DDK用C或C++来编制驱动程序,这就大大地简化了开发的难度,提高了可靠性。框架程序可以直接在Visual C++集成开发环境中用NMAKE编译为VxD。




编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:用控件聚合技术为FlexGrid增添PickList功能
下一篇:VC编程中如何操作数据库中的图像字段
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
TCP/IP Winsock编程要点 Windows 9X硬件中断设备驱动程序的开发 利用硬件信息实现共享软件的安全注册
托管C++程序开发—Win表单文档程序设计 托管C++程序开发—Win表单文档程序设计 TCP/IP Winsock编程要点
Windows Sockets API实现网络异步通讯 利用硬件信息实现共享软件的安全注册 托管C++程序开发—Win表单文档程序设计
托管C++程序开发—Win表单文档程序设计 利用WindowsAPI函数和注册表获取系统信 没见过 是读卡器也是刻录机!
微软Windows徽标做法一例 xp启动加速 启动优化 想慢都不行 CPU降温软件
CPU温度报警 CPU风扇的性能参数 降低CPU温度,提高电脑工作稳定性
AMD将在07年推出四个内核的处理器芯片 c#写的五子棋程序,供学习WinForms的鼠 如何在C#的WinForm中制作饼状图和柱状图
vb.net的windows窗体实现dos命令 如何用.NET创建Windows服务 C#中调用Windows API的要点
最新更新 热点排行 推荐新闻
VC++ SMTP协议电子邮件传送剖析
Managed C++设计新邮件检查器
解决两个难懂的安全性问题
高级扫描技术及原理介绍
VC的另类数据库编程
VC++ SMTP协议电子邮件传送剖析
Managed C++设计新邮件检查器
解决两个难懂的安全性问题
高级扫描技术及原理介绍
VC的另类数据库编程
托盘编程全接触
在Visual C++中使用内联汇编
理解 Visual C++ Extensions for ADO
TCP/IP Winsock编程要点
VC打造自己特色的屏幕保护
VC++ SMTP协议电子邮件传送剖析
Managed C++设计新邮件检查器
解决两个难懂的安全性问题
高级扫描技术及原理介绍
VC的另类数据库编程
编程解决注册表问题所需的函数详解
盛大龙与地下城1万人内测 双核用户先行
VB.NET注册表编程
体验Painter IX的新特性
Painter 8 教程:铅笔素描画
共享软件的十大破解工具推荐
在VB中使用注册表
韩国网站FLASH效果动画源码源文件
Fireworks轻松绘制banner广告
威金蠕虫肆虐互联网 中招用户数量过万
在ASP.net中保存/取出图片入/从SQL数据
一个.net 压缩位图至JPEG的代码
制服流氓:27种恶意软件安装卸载实录
不止上网 IE地址栏的妙用
入侵中国某大型商业网站服务器全记录
IRC波特病毒出变种 黑客可远程控制电脑
传AMD与ATI合并已谈妥 对中国影响不大
金山PK网易 网游核心开发人员相互跳槽
英特尔公开与AMD翻脸 “口水战”升级
共享软件的十大破解工具推荐
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyrights © 2004-2006 iYiT.Net All Rights Reserved.
网站合作、广告联系QQ:147007642、466949678
易特网络技术 点击这里给我发消息