基于多线程的串口通信软件的设计与实现

基于多线程的串口通信软件的设计与实现

ID:33488725

大小:199.29 KB

页数:4页

时间:2019-02-26

基于多线程的串口通信软件的设计与实现_第1页
基于多线程的串口通信软件的设计与实现_第2页
基于多线程的串口通信软件的设计与实现_第3页
基于多线程的串口通信软件的设计与实现_第4页
资源描述:

《基于多线程的串口通信软件的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、2004年3月控制工程Mar.2004第11卷第2期ControlEngineeringofChinaVol.11,No.2文章编号:167127848(2004)0220171204基于多线程的串口通信软件的设计与实现吴先亮,刘春生(南京航空航天大学自动化学院,江苏南京210016)摘要:针对串口通信实时性和系统资源利用的不足,提出了基于多线程技术和自定义消息机制的异步串口通信的设计思想。结合串口通信的机理和多线程同步方式,分析了Win32系统下多线程异步串口通信程序的开发方法。用Delphi实现了加油站中央控制系统中PC机与单片机间的串行通信软件,给出了软件的设计思路,

2、一般步骤和部分程序代码。目前该通信软件已稳定地运行在各加油站中央控制系统中,促进了石油行业自动化的发展,也为相关行业实现自动化提供了帮助。关键词:多线程;串口通信;Delphi;消息机制中图分类号:TP311文献标识码:A间无人加油、数据库管理以及应用IC卡技术和油1引言站网络实现加油一卡通等。系统的组成结构如图串行通信是计算机与其他设备进行数据交换1所示。后台监控机是系统的心脏,要求后台监时经常使用的方法之一,它具有实现简单、使用灵控软件具有良好的兼容性和扩展性,所以独立设活方便、数据传输可靠等优点,因而在工业监控、计了一套基于多线程的通讯软件,物理位置与后数据采集和实时

3、监控系统中得到广泛应用。在台监控软件在同一台计算机上,它与前端的加油Windows系统中,通过基于多线程和消息的多任机串口通信是典型的主从式,在硬件上通过moxa务处理编程可以有效地解决通信的实时性,且能公司的多串口卡实现,与后台监控软件通过标准提高数据的吞吐量和应用程序的可靠性。的Windows消息机制实现数据交换。在单任务操作系统中,不能同时处理两件以上不同的任务。Win32是基于线程的抢先式多任务操作系统,使得应用程序能同时执行多个任务,即在一个进程中可同时运行多个线程。一个线程是指程序的一条执行路径,它在系统指定的时间图1加油机监控系统结构片中完成特定的功能。系统不

4、停地在多个线程之间切换,由于时间很短,看上去多个线程在同时运3多线程程序设计行。对于通讯这种需要花费大量的时间来测试1)Windows串行通信机理Windows是与I/O操作,同时又要保持响应用户其他操作的应用程序来说,创建多线程是最佳选择。本文介绍设备无关的操作系统,在通常的情况下,严格禁止的是某公司开发的加油站监控系统中使用的多线用户模式的应用程序直接对硬件进行访问,应用程的串行通信设计方法,可对从事类似开发任务程序对硬件的访问是通过Win32子系统传递的人员有所帮助。IRP给I/O管理器,再传递给合适的硬件驱动程序,由硬件驱动程序对硬件进行访问,驱动程序提2系统结构供

5、应用程序接口函数(API)为应用程序调用。具加油站监控系统一般采用MCS251单片机作体结构如图2所示。为前端加油机的主控CPU芯片,利用计算机作为对PC机串口进行操作,至少要有以下几个后台监控机来实现实时监控、司机自助式加油、晚步骤:①打开进行通讯的串口;②串口进行初始收稿日期:2003207211;收修定稿日期:2003209225作者简介:吴先亮(19752),男,安徽枞阳人,硕士研究生,主要研究方向为工业自动化等。·172·控制工程第11卷化;③根据通讯事件对数据进行发送和接收;④通①应用程序介绍根据多线程程序的开发方讯结束关闭通讯串口。法,该串口通信软件由负责人机

6、交互的多线程和对串口进行处理的后台辅助线程组成。主线程是串口通信程序的管理者,用来初始化串口(通过调用Win32API函数),自定义通信事件消息,创建、删除辅助线程,进行人机交互的操作及协调好各线程运行。应用程序流程如图3所示。图2应用程序操作硬件机理2)设计思想①串口操作方式的选择在加油站监控系统串口通信中,采取的是典型的主从式通信方式(即前端加油机完全处于被动应答状态),应用程序发送、接收数据时,对I/O口的读写操作有两种方式,即同步方式与异步方式(重叠)。同步方式执行时,必须等到事件和错误的发生才能返回,图3串口通信程序框图可能会导致线程的阻塞。异步方式执行时,将等②

7、后台辅助线程分析后台辅助线程是串口待的动作放到后台去执行,再由程序去判断是否通信软件的核心,包括串口监视线程,读线程,写线已经完成,即使操作未完成函数也会立即完成,避程。串口监视线程在后台对串口进行实时监视,当免了同步的缺陷。所以,系统设计采用了异步方监测到预定义的事件时,立即调用相应的线程进行式读取I/O口。处理并向主线程发相应的消息,如接收到数据就调②线程间的同步在有若干线程并行运行的用读线程自动接收数据并进行处理,同时向主线程环境里,为避免对共享资源的访问冲突,同步各不发送接收到数据的消息(WM-COMMRE

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。