欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:3211936       资源大小:182.89KB        全文页数:12页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1、基于多线程的串口通信软件的设计与实现精收稿日期:2003207211;收修定稿日期:2003209225作者简介:吴先亮(19752,男,安徽枞阳人,硕士研究生,主要研究方向为工业自动化等。控制工程Control Engineering of China Mar .2004Vol.11,No.22004年3月第11卷第2期文章编号:167127848(2004022*基于多线程的串口通信软件的设计与实现吴先亮,刘春生(南京航空航天大学自动化学院,江苏南京210016 摘要:针对串口通信实时性和系统资源利用的不足,提出了基于多线程技术和自定义消息机制的异步串口通信的设计思想。结合串口通信的机理和

    2、多线程同步方式,分析了Win32系统下多线程异步串口通信程序的开发方法。用Delphi 实现了加油站中央控制系统中PC 机与单片机间的串行通信软件,给出了软件的设计思路,一般步骤和部分程序代码。目前该通信软件已稳定地运行在各加油站中央控制系统中,促进了石油行业自动化的发展,也为相关行业实现自动化提供了帮助。关键词:多线程;串口通信;Delphi ;消息机制中图分类号:TP 311文献标识码:A1引言串行通信是计算机与其他设备进行数据交换时经常使用的方法之一,它具有实现简单、使用灵活方便、数据传输可靠等优点,因而在工业监控、数据采集和实时监控系统中得到广泛应用。在Windows 系统中,通过基于

    3、多线程和消息的多任务处理编程可以有效地解决通信的实时性,且能提高数据的吞吐量和应用程序的可靠性。在单任务操作系统中,不能同时处理两件以上不同的任务。Win32是基于线程的抢先式多任务操作系统,使得应用程序能同时执行多个任务,即在一个进程中可同时运行多个线程。一个线程是指程序的一条执行路径,它在系统指定的时间片中完成特定的功能。系统不停地在多个线程之间切换,由于时间很短,看上去多个线程在同时运行。对于通讯这种需要花费大量的时间来测试I/O 操作,同时又要保持响应用户其他操作的应用程序来说,创建多线程是最佳选择。本文介绍的是某公司开发的加油站监控系统中使用的多线程的串行通信设计方法,可对从事类似开

    4、发任务的人员有所帮助。2系统结构加油站监控系统一般采用MCS 251单片机作为前端加油机的主控CPU 芯片,利用计算机作为后台监控机来实现实时监控、司机自助式加油、晚间无人加油、数据库管理以及应用IC 卡技术和油站网络实现加油一卡通等。系统的组成结构如图1所示。后台监控机是系统的心脏,要求后台监控软件具有良好的兼容性和扩展性,所以独立设计了一套基于多线程的通讯软件,物理位置与后台监控软件在同一台计算机上,它与前端的加油机串口通信是典型的主从式,在硬件上通过moxa 公司的多串口卡实现,与后台监控软件通过标准的Windows 消息机制实现数据交换 。图1加油机监控系统结构3多线程程序设计1Win

    5、dows 串行通信机理Windows 是与设备无关的操作系统,在通常的情况下,严格禁止用户模式的应用程序直接对硬件进行访问,应用程序对硬件的访问是通过Win32子系统传递IRP 给I/O 管理器,再传递给合适的硬件驱动程序,由硬件驱动程序对硬件进行访问,驱动程序提供应用程序接口函数(API 为应用程序调用。具体结构如图2所示。对PC 机串口进行操作,至少要有以下几个步骤:打开进行通讯的串口;串口进行初始化;根据通讯事件对数据进行发送和接收;通讯结束关闭通讯串口 。图2应用程序操作硬件机理2设计思想串口操作方式的选择在加油站监控系统串口通信中,采取的是典型的主从式通信方式(即前端加油机完全处于被

    6、动应答状态,应用程序发送、接收数据时,对I/O 口的读写操作有两种方式,即同步方式与异步方式(重叠。同步方式执行时,必须等到事件和错误的发生才能返回,可能会导致线程的阻塞。异步方式执行时,将等待的动作放到后台去执行,再由程序去判断是否已经完成,即使操作未完成函数也会立即完成,避免了同步的缺陷。所以,系统设计采用了异步方式读取I/O 口。线程间的同步在有若干线程并行运行的环境里,为避免对共享资源的访问冲突,同步各不同线程活动的能力非常重要。线程同步有以下几种基本的类型:事件、互斥、临界区、信号量等。本文采用Event 事件对象,用于发出可以访问变量过程的信号。消息方式的多线程设计理念在串口通讯中

    7、 ,很多开发人员经常采用端口巡回监控方式(使用一个和多个TIM ER 事件不停地对串口巡回监控,由于Windows 定时器消息不是异步的,而且WM -TIM ER 消息是低优先级的,必须和其他消息一起排队,一旦其他应用程序的执行时间被推迟或缩短,势必造成定时时间的精确,使通信缓冲区发生溢出,在加油站监控系统的串口通讯中,通过一个串口同时控制十几台加油机(有时甚至更多,如果采用这种方式,势必会造成系统资源的极度浪费,同时通讯的实时性也不能得到保证。鉴于此,笔者采用了消息方式的多线程设计方案, 使问题得到很好的解决。3程序设计应用程序介绍根据多线程程序的开发方法,该串口通信软件由负责人机交互的多线

    8、程和对串口进行处理的后台辅助线程组成。主线程是串口通信程序的管理者,用来初始化串口(通过调用Win32API 函数,自定义通信事件消息,创建、删除辅助线程,进行人机交互的操作及协调好各线程运行。应用程序流程如图3所示。图3串口通信程序框图后台辅助线程分析后台辅助线程是串口通信软件的核心,包括串口监视线程,读线程,写线程。串口监视线程在后台对串口进行实时监视,当监测到预定义的事件时,立即调用相应的线程进行处理并向主线程发相应的消息,如接收到数据就调用读线程自动接收数据并进行处理,同时向主线程发送接收到数据的消息(WM -COMMRECV ,串口监视线程发送完此消息后就执行后面的程序代码,继续对串

    9、口进行监视,做到了处理消息与监视串口两不误,既保证了通讯的实时性,又避免了资源的浪费,其处理过程如图4所示。图4串口监视线程的实现271控制工程第11卷4程序实现1程序初始化首先利用Win32API函数创建串口事件对象,即读、写线程事件和关闭线程事件。当设备驱动对硬件初始化后,打开串口就像读一个文件一样,打开失败,则程序返回。否则,通过Setupcomm设置输入、输出缓冲区大小, G etcommstate获得目前通信端口状态,通过dcb (设备程序块和Setcommstate设置通信端口状态,以及利用Setcommmask设置通信掩码等。下面是部分程序代码。ReadEvent:=Create

    10、Event(nil,true,true,nil;/创建读事件If ReadEvent=null then beginMessageBox(0,ReadEventCreate Error,Notice,MB-O K;Exit;WriteEvent:=CreateEvent(nil,true,true,nil;/建写事件If ReadEvent=null then beginMessageBox(0,ReadEventCreate Error,Notice,MB-O K;Exit;Shut Event:=CreateEvent(nil,true,true,nil;/创建关闭线程事件If ReadE

    11、vent=null then beginMessageBox(0,ReadEventCreate Error!,Notice,MB-O K;exit;end;hcomm:=createfile(com1,generic-reador generic-write,0,nil,open-existing,file-flag-overlaped,0/异步(重叠方式if(hcomm=invalid-handle-valuethen beginMessageBox(0,打开通信端口错误!,MB-O K;end;EvWait:=EV-RXCHAR+EV-TXEMPT Y+EV-ERR;If not Set

    12、CommMask(hcomm,EvWaitthenMessagebox(0,设置错误!,MB-O K;/设置事件掩码; Comm.-Thread:=create Thread(nil,0,CommWatch, nil,0,ThreadID/创建辅助线程;2后台辅助线程后台辅助线程由读线程、写线程和串口监视线程组成。下面是部分程序代码。fillchar(lpol,sizeof(Toverlapped,0;/lpol:Pover2 lappe;while true do beginwait:=waitcommevent(hcomm,Evwait,lpol/等待串行口事件if not wait th

    13、en beginerr:=G etLast Error(;/错误处理;endelseClearCommError(hcomm,errorflag,comstat;Evwait:=WaitforMultipleObjects(3,eventarray,false,infi2 nite;case Evwait of0:;/结束辅助线程1:;/读线程2:;/写线程end;end;3读线程当读事件ReadEvent变为发信号状态时,调用读线程从缓冲区里读取数据,写线程与其类似,下面给出读线程部分程序代码。clear:=ClearCommError(hcomm,errorflag,comstat;if

    14、clear then begincbnum:=ComStat.cbInQue;read:=ReadFile(hcomm,InputBuffer,CommStat.cbInQue,dwNumberOfBytesRead,Read-os;/读取串口数据if not read then beginerr:=G etLast Error(;end;Reset Event(readevent;/复位事件对象PostMessage(htemp,WM-COMMRECV,hcomm, 0;/向主线程发消息end;5结语在PC机与单片机、PLC等下位机的串口通讯中,如何保证通讯的效率及实时性以及节约系统的资源是

    15、设计者关心的问题。笔者利用上面介绍的方法,在Delphi的开发环境下,成功地开发了加油站监控系统中的基于多线程的串口通讯程序,运行结果良好,可供广大同行参考。371第2期吴先亮等:基于多线程的串口通信软件的设计与实现参考文献:1Chris Cant.孙义,马莉波,国雪飞,等译.WindowsWDM 设备驱动程序开发指南M .北京:机械工业出版社,2000.2Charles Petzold.北京博彦科技发展有限公司译.Windows 程序设计M .北京:北京大学出版社,1999.3Steve Teiceira.龙劲松,等译.Xavier Pacheoo Delphi6开发人员指南M .北京:机械

    16、工业出版社,2002.4范逸之,陈立元.Delphi 与RS 2232串行通信控制M .北京:清华大学出版社,2002.Programming of Serial Communication Design andImplement Based on Multi 2threadW U Xian 2liang ,L IU Chun 2sheng(College of Automation Engineering ,Nanjing University of Astronautics and Aeronautics ,Nanjing 210016,China Abstract :In light o

    17、f disadvantages of serial communication in real time and using of system resource ,the idea of asynchronous serial communication design based on the multi 2thread technology and self 2defined message is presented.The serial communica 2tion mechanism and thread synchronization are employed in the ach

    18、ievement to the idea.The way to 322bits operation system multi 2thread asynchronous serial communication programming is analyzed.The serial communication programming in Delphi language between PC and single 2chip is implemented in gas station computer central controlling system.And the idea and com

    19、2mon steps of programming and its implemented segment code are presented.The serial communication programming is devel 2oped successfully in gas station computer central controlling system.It promotes the automation of petroleum industry and helpes to develop automation of others correlation to petr

    20、oleum industry.K ey w ords :multi 2thread ;serial communication ;Delphi ;message mechanism(上接第131页4结论本文提出了使用最小方差自校正控制器来处理污水处理中的溶解氧浓度,并且通过仿真试验显示出了这种控制策略的可行性。另外,通过上述的研究可以看出,空气流量和氧气吸收率是分析大型活性污泥系统的两个重要参数,考虑通风密度的纵向和时间变化,本文使用适当的模型完全有可能实现对表征活性污泥过程的氧气吸收率以及氧气传送系数的在线估计,从而实现对溶解氧浓度的有效控制。参考文献:1Holmberg A.Modelin

    21、g of the activated sludge pro 2cess for microprocessor 2based state estimation and controlJ .Water Research ,1982,16(5:123321246.2Andrews J F.Dynamic models and control strategies for wastewater treatment processes J .Water Re 2search ,1974,8(3:2612289.3Dold P L ,Marais G R.Evaluation of the general

    22、 acti 2vated sludge model proposed by IAWPRC Task GroupJ .Water Science and Technology ,1986,18(6:63289.4杜树新.污水生化处理过程建模与控制J .控制理论与应用,2002,19(5:6602666.5Marsili 2libelli S.Adaptive estimation of bioactivities in the activated sludge process J .IEE Proc 2D ,1990,137(6:3492356.6谢新民,丁锋.自适应控制系统M .北京:清华大学

    23、出版社,2002.7李清泉.自适应控制系统理论、设计与应用M .北京:科学出版社,1990.Adaptive Control of Wastewater Treatment ProcessFA N S hi 2mei(College of Information Engineering ,Zhejiang University of Technology ,Hangzhou 310014,China Abstract :An adaptive control strategy of the wastewater treatment process is proposed ,espetially

    24、 the control of the dissolved oxygen (DO concentration.A bilinear model is used to simplify the DO dynamics.And for the estimation of key parameters of the process model that cannot be obtained from direct measurement ,a recursive least squares method is used.In order to obtain the minimum variance

    25、self 2tuning control strategy of the DO concentration ,a step predicted output is taken as the desired out 2put.Finally ,by simulations ,it is explained the influence of the air flowrate and the oxygen uptake rate (OUR for the DO concentration.K ey w ords :wastewater treatment process ;dissolved oxygen (DO concentration ;minimum variance self 2tuning control471控制工程第11卷


    注意事项

    本文(基于多线程的串口通信软件的设计与实现精.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开