基于VC++的串口通信服务的开发
摘 要
随着计算机技术的发展和推广,利用串口进行数据通讯在通讯领域中占有着重要的地位。为了方便和快速的通过Internet网络访问串口服务器的串口,本课题把串口通信集成到Windows服务,由Windows服务完成串口通信的基本操作。文中详细描述了串口通信服务的原理和工作流程,还列举出了相关的核心代码。用流程图的方式来描述了各个模块的逻辑实现。串口通信服务中采用安全队列的机制来控制多线程访问多串口。在开发中按照软件工程的流程,从需求分析到概要设计,从详细设计到编码,以及最后的测试,利用软件工程的工具管理开发代码和文档。此外,还开发出了客户端来测试该服务工作是否正常。经过测试服务工作正常,能通过网络连接到服务器完成串口的通信。最后总结了开发和设计的不足之处,程序还有待进一步完善。http://www.16sheji8.cn/
关键词:串口通信;Windows服务;安全队列;多线程
The Development of Serial Communication Service
Based on VC++
Abstract
With the development and spread of computer technology, serial communication is an important part in the field of computer network communication. In order to access server's serial port more convenient and faster through the Internet, this topic put serial communication services integrated into Windows service, which completed the basic operation of serial communication services. The serial communications services and the workflow are in detail described. The core code of the services is also given. Flow chart is used to describe the handling process of the serial communications services. The services using safe queue mechanism to control multithreading visit serials. During the entire development, according to the software engineering flow, from requirements analysis to summary design, from detail design to coding, and the final test, uses the software engineering tools to management the code and documentation. In addition, I developed a client to test the service. Test results of the experiment indicate the services can work normally. In the end, summarizes the disadvantages of the design and development, and further perfection of studies is surely in need.http://www.16sheji8.cn/
Key words: Serial Communication; Windows Service; Safe Queue; Multithread
目 录
论文总页数:22页
1 引言 1
1.1 课题背景 1
1.2 研究现状 1
1.3 研究的意义 1
2 相关理论基础 1
2.1 WINDOWS NT 服务 1
2.2 串口通信 2
2.3 多线程及线程间通信 3
2.4 安全队列 4http://www.16sheji8.cn/
2.5 WINDOWS套接字规范 4
2.6 客户机服务器系统 5
3 需求分析及设计方案 6
3.1 功能需求 6
3.2 设计方案 7
4 具体设计流程与实现 8
4.1 安全队列 8
4.2 服务应用程序 10
4.3 串口通信 16
4.4 客户端 18
4.5 类图 19
5 调试与分析 19
结 论 20
参考文献 20
致 谢 21
声 明 22
1 引言
1.1 课题背景
计算机与外界的信息交换称为通信。基本的通信方式有并行通信和串行通信两种。串行通信是指一条信息额各位数据被逐位按顺序传送的通信方式。串行通信的特点是:数据位传送,按位顺序进行,最少只需要一根传输线即可完成,成本低但传送速度慢。串行通信的距离可以从几米到几千米。
1.2 研究现状http://www.16sheji8.cn/
串口通讯目前流行的方法大概有三种:一是利用Microsoft提供的CMSCOMM控件进行通讯,不过现在很多程序员都觉应该放弃这种方式。二是利用WINAPI函数进行编程,这种编程的难度高,要求掌握很多的API函数。三是利用现在网络上面提供的一些串口通讯控件进行编写。这三种方法都没有同Windows服务联系起来。
1.3 研究的意义
利用串口进行数据通讯在通讯领域中占有着重要的地位,串口通讯在通讯软件中有着十分广泛的应用。如电话、传真、视频和各种控制等。通过本文的研究和开发能更加方便的通过网络通信来实现串口通信,提高串口的利用率。为进一步的研究提供参考。http://www.16sheji8.cn/
2 相关理论基础
2.1 Windows NT 服务
有那么一类应用程序,是能够为各种用户(包括本地用户和远程用户)所用的,拥有用户授权级进行管理的能力,并且不论用户是否物理的与正在运行该应用程序的计算机相连都能正常执行,这就是所谓的服务了。每个操作系统都需要有在后台执行任务的方法,无论是谁正在使用这部机器,这些任务都可以继续运行,后台任务可以处理各种重要的服务,包括系统的或者用户的。
在Windows NT中,后台的任务被称为服务。服务可在每次NT启动的时候运行,并且不管是谁登陆,都会一直运行下去。服务是一类受到操作系 统优待的程序。一个服务首先是一个Win32可执行程序,通常以控制台程序的形式被编写,进入点函数是Main()而不是WinMain()。
一个Windows NT服务由三部分组成,第一部分是Service Control Manager(SCM)。每个Windows NT/2000系统都有一个SCM,SCM存在于Service.exe中,在Windows启动的时候会自动运行,伴随着操作系统的启动和关闭而产生和终止。这个进程以系统特权运行,并且提供一个统一的、安全的手段去控制服务。它其实是一个RPC Server,因此我们可以远程安装和管理服务,不过这不在本文讨论的范围之内。SCM包含一个储存着已安装的服务和驱动程序的信息的数据库,通过SCM可以统一的、安全的管理这些信息,因此一个服务程序的安装过程就是将自身的信息写入这个数据库。第二部分就是服务本身。一个服务拥有能从SCM收到信号和命令所必需的特殊代码,并且能够在处理后将它的状态回传给SCM。第三部分也就是最后一部分,是一个服务控制管理器(Service Control Dispatcher,SCP)。它是一个拥有用户界面,允许用户开始、停止、暂停、继续,并且控制一个或多个安装在计算机上服务的Win32应用程序。SCP的作用是与SCM通讯,Windows 2000管理工具中的“服务”就是一个典型的SCP。http://www.16sheji8.cn/