- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网口虚拟串口通信技术设计与实现
网口虚拟串口通信技术设计与实现
摘要:串口通信是目前较常见的一种通信方式,为了实现串口设备的网络通信功能,该文介绍了UMDF驱动模式、TCP/IP工作模式、虚拟串口通信及Socket通信等相关技术,详细介绍了创建虚拟串口驱动和串口与网口通信的三种工作模式的工作原理及设计过程,最后通过测试实现了虚拟串口通信。由于是通过程序设计实现,不需要对设备进行改装或是添加新设备,极大地简化了工作和降低了硬件成本。
关键词:虚拟串口;Socket通信;TCP/IP模式
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)14-3245-08
串行通信是目前广泛存在的一种通信方式,很多计算机外设是通过串行接口连接的。但通过串口设备联网时,其通信的传输速度低,影响通信效率;为了使串口设备更好地实现联网功能,目前新产品设备通信接口转换的方式实现了联网功能,但是仍有一些旧设备不具备接口转换功能,而是借助硬件设备联网,如MOXA公司的串口设备联网服务器,但是通过硬件方式实现联网会增加硬件成本,具有一定的局限性。因此通过程序设计方式,即在本机虚拟出一个和真实串口一样的虚拟串口设备来实现联网通信,操作方便且降低了成本。
1 课题关键技术
1.1 基于UMDF驱动模式
大多数的驱动程序都是运行在Microsoft Windows 内核模式下的,应用内核模式来完成系统地址空间和内部结构的访问。但是内核驱动程序会影响系统的运行,内核程序受到损害会直接影响系统的运行甚至导致机器的瘫痪。为此,从Vista开始,微软推出基于用户的UMDF(User-Mode Driver Framework)驱动模式。基于用户模式的驱动程序,它只是访问用户地址空间,和内核模式驱动程序相比,用户模式驱动具有更好的安全性与稳定性,不会像内核模式驱动一样因为驱动有问题而造成系统崩溃。
1.2 TCP/IP工作模式
由于串口协议不具有网络层和传输层,所以串口转网口的通信,实际是将串口数据作为TCP/IP的应用层数据,用TCP封装传输的方式。由于TCP/IP协议的传输层包含了TCP协议和UDP协议,而TCP协议具有客户端和服务端两种工作模式,所以串口转网口通信的工作模式可以分为:TCP服务器端???式(TCP Server)、TCP客户端模式(TCP Client)和UDP模式三种。
TCP模式:TCP模式采用数据可靠传输机制,所以可以保证数据基本不误码、不丢失。在TCP通信中,必须由通信两端构成,即一方为TCP客户端,另一方为TCP服务端。此种模式类似于打电话机制,打电话的人是TCP客户端,而接电话的是TCP服务端。
1.3 虚拟串口通信
目前在Windows下,较常用的串口通信编程方法主要有:
1)利用MSComm控件编程
Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件, 它为应用程序提供了通过串行接口收发数据的简便方法。MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。 MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。
具体的来说,MSComm控件提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。
2)利用CSerialPort类
CSerialPort类是由Remon Spekreijse提供的免费串口类,它支持线连接的串口编程操作。与MSComm控件相比,这个类打包时,不需要加入其他的文件,而且函数都是开放透明的,允许改造。
3)Windows API串口编程
Windows API是所有Windows应用程序的根本。API是一系列的例程,应用程序通过调用这些例程来请求操作系统完成一些低级服务。在Windows这样的图形用户界面中,应用程序的窗口、图标、菜单和对话框等就是由API来管理和维护的。
1.4 Socket通信
Socket套接字是网络上服务器端与客户机端之间进行双向通信双方,可以发送或接受连接请求,Socket将通信双方一端写入的信息发送至另一端的Socket中,利用Socket套接字可以方便地进行数据的传输。
1)客户端应用程序流程
打开一通信通道(申请套接字),并连接到指定主机上某一特定地址,向服务器发出请求报文,等待接收应答。
给服务进程发送服务请求报文并接收应答,只要需要就一直做这一步。
关闭通信通道并终止。
2)服
文档评论(0)