半导体扩散炉组监控软件的通讯模块设计_綦声波

  • 格式:pdf
  • 大小:113.17 KB
  • 文档页数:3

技术创新中文核心期刊《微计算机信息》(测控自动化)2006年第22卷第10-1期

360元/年邮局订阅号:82-946《现场总线技术应用200例》数采与监测半导体扩散炉组监控软件的通讯模块设计Developmentofcommunicationmoduleofdiffusiontubemonitoringsoftware(1.中国海洋大学;2.青岛海迪克公司)綦声波1李君峰1梅兴东2Qi,ShengboLi,JunfengMei,Xingdong摘要:本文以微型计算机在半导体扩散炉控制中的应用为例,对上位机监控软件的通讯和组成模块进行了探讨,并使之能与半导体扩散炉组实现高效、可靠通讯。文中给出了相应的软件流程。关键词:半导体扩散炉;串口通讯;VisualC++中图分类号:TP311.文献标识码:BAbstract:Itisthemaintopicofthispapertodiscusshowmonitoringsoftwareincomputercommunicateswithdiffusiontubegroupefficientlyandstably.Theflowchartofthecommunicatingmoduleisgiveninthepaper.Keywords:DiffusionTube,Serialcommunication,VisualC++文章编号:1008-0570(2006)10-1-0244-03

1引言高温扩散氧化系统是半导体器件、集成电路制造过程中用于对晶片进行扩散、氧化、退火及合金等工艺的一种热加工设备,也适用于对其他材料的特殊温度工艺处理,是一种用于长时间连续工作、高精度、高稳定性的大型设备,主要由加热炉、净化工作台、推拉舟系统、气源柜等组成。在传统的控制中,扩散炉的控制管理都是由基于单片机的仪器仪表来完成,由于仪器仪表本身资源的限制,它所能实现的控制管理功能非常有限,集中管理更是难以实现。微型计算机的迅速发展明显改善了这一状况,可以以微型计算机作为主控上位机、以仪器仪表作为下位机组成一整套监控系统,由上位机监控软件监控管理一台或者多台设备。由于微型计算机处理速度越来越快,还可以有光盘、磁盘等多种存储方式,而且存储容量也与日俱增,所以可以对设备长时间段的数据信息进行整理保存或者进行更为复杂的分析。在此监控系统中,监控软件如何与多台设备通讯以及如何提高通讯质量将是决定此监控系统优劣的重要因素,本文就以青岛海迪克公司的HDC8000A系列半导体扩散系统为例,详细介绍通讯模块的实现方案。2系统整体介绍在本系统中,通讯信道选取RS-485。微型计算机一般都配有RS-232串口,只要在微型计算机串口上接一个RS-232到RS-485的转换器就可以使用通讯信道与下位机通讯。同时,RS-485具有良好的抗噪声、抗干扰、长的传输距离的能力,能够满足工业恶劣环境的要求,提高数据传输质量。另外RS-485具有多站点的能力,将数个扩散炉控制仪表接到RS-485总线上并赋予每一个仪表一个唯一的识别号,微型计算机就可以复用总线与各个仪表通讯,简化网络。上位机与下位机要进行可靠的通讯,一套良好的通讯协议是必不可少的。本系统采用的通讯协议如表1所示。其中,引导码为一个数据包的开始标示符,地址码为接收端的唯一识别号,接收端接收到引导码后假设随后的数据为要接收的数据,进而判断地址标示符、命令标示符、数据个数与数据以及校验的合法性,如果不合法则将已经接收到的数据丢弃,如果合法则根据命令码提取相应的数据进行处理。表1通讯协议格式VisualC++6.0是Windows环境下的一个可视化软件开发平台,由于开放式的结构,VisualC++6.0允许外挂控件,因此有更多的厂商为VisualC++6.0撰写控件,供系统开发者选用,从而为开发者提供了更方便的系统开发方案。这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。所以本方案采用VisualC++6.0作为监控软件的开发平台。3监控软件通讯模块实现方案在本系统通讯中,主控上位机处于主动方式,下位机处于被动方式,一次通讯总是由上位机发起,当下位机收到合法的数据包时才进行动作,如果收到不合法的数据包则忽略。由于RS-485为半双工工作方式,某一时刻通讯信道上只能有一个方向的数据流,所以不论是监控多台设备,还是只监控一台设备,都要将各种通讯数据包分时发送,以防止数据冲突。本綦声波:副教授教育部科学技术研究重点项目(02131)资助244-

邮局订阅号:82-946360元/年技术创新数采与监测

《PLC技术应用200例》您的论文得到两院院士关注文以分时监控4台半导体扩散炉为例,设置通讯周期为4秒,每一个通讯周期又分为4段,每一段用时1秒,分别用来与一台半导体扩散炉仪表通讯。此通讯模块主要有三个部分组成:状态控制模块、命令队列模块、接收发送模块,各个模块采用面向对象的设计风格“类”来封装它的数据和函数,使各个模块结构清晰、功能明确。3.1状态控制模块状态控制模块主要用来管理设备运行状况及通讯状态,由它来记录4台半导体扩散炉的运行状态、通讯地址、通讯错误等信息。监控软件运行时周期性激活此模块,查询内部参数,并根据结果执行相应的通知操作。例如,当内部参数标示与某台设备的通讯从未成功时,状态控制模块就要通知命令队列模块继续尝试与设备进行握手通讯,直到握手成功。每台半导体扩散炉的状态由一个结构体来存储,可以用一个结构体数组来管理4台半导体扩散炉。typedefstruct{boolOnline;unsignedcharAddress;unsignedcharErrNum;boolFlag;}BLOCK;BLOCKBlocks;其中Online表示某台炉子是否处于运行状态,监控软件启动时首先检查炉子是否处于运行状态,若处于运行状态则置为True,则标识可以与其进行通讯;否则需要继续检查炉子是否处于运行状态,并且认为一次通讯失败,记录在通讯错误ErrNum里。当正常通讯过程中发生异常情况,如下位机断电、通讯线路断开等,而导致通讯数据包无法正常发送或接收也会记录在Er-rNum,并且当出错次数达到上限值时就进行报警处理。Address用来记录下位机的地址。Flag用来判断上一次通讯过程中有无出错,对于某一台半导体扩散炉,在一个通讯周期开始时将其置为true,在这个通讯周期里收到正确的数据就置为false,这样在下一个通讯周期开始时就可以检查Flag来判断上次通讯是否成功。3.2命令队列模块如果由于用户的操作等原因,监控软件需要向下位机发送的数据包类型不定,个数不定,这将成为分时监控的一大难点。在本方案里,采用一个先进先出命令队列来管理和优化处理通讯数据包的发送。当一个通讯周期来到时,状态控制模块会根据其内部参数的设置通知命令队列需要发送什么数据包,这时有可能用户正在操作,也需要发送数据包以完成某种通讯,对于这些数据包命令队列模块并不是立即将它们提交给发送模块,而是按先后次序压入队列里,此时命令队列不为空并激活命令队列,命令队列模块将按照一定策略依次取出队列中的数据包提交给发送模块,直到命令队列为空。只要命令模块采取的策略合适,使得上行数据包和下行数据包不发生冲突,就可以实现数据包的可靠发送,而软件上位于命令模块之上或者之下的软件模块就不必考虑目前的通讯状况,极大减小了模块之间的耦合。在这里命令队列选择的策略将决定分时监控优劣,太快则造成数据冲突,太慢则浪费机时甚至影响整个通讯周期的完成。本方案采用优化传输策略,由于各种回复数据包的数据个数已知,所以根据串口波特率就可以计算出回复数据包被上位机接收所需要的时间。其时间T可以用公式1来计算。公式中一定余量的延迟可以用实验的方法得出,在本系统中将其设为30毫秒。先进先出的命令队列就是一个线性表,在这里可用数组或者链表来实现,每一个数组或者链表元素为结构体。typedefstruct{unsignedcharAddress;unsignedintDataNum;unsignedcharOrder;CByteArrayDatas;unsignedcharAnswerNum;}QUEUE;其中Address为接收此数据包的下位机地址,即标明了此数据包的发送目的地。DataNum为此数据包中包含的数据个数,即Datas数组的大小。Datas为要发送的数据,它为一个动态数据,可以根据需要传送任意个数的数据。Order为通讯命令码。AnswerNum为下位机回复数据包的大小,主要根据它的大小来设置发送两个数据包之间的时间间隔。3.3接收发送模块本模块采用Microsoft公司提供的简化Windows下串行通信编程的MSComm控件。设置MSComm控件为事件驱动模式,当串口接收缓冲区中的数据个数达到MSComm控件的属性Rthreshold所规定的个数后,就会激发MSComm控件的OnComm

事件

在On-Comm事件里就可以把串口接收缓冲区中的数据接收上来。由于下位机上传的各种数据包大小已知,所以在串口发送命令时,可以根据此命令得知下位机回复此命令的数据包大小N,设置MSComm控件的In-245--

技术创新中文核心期刊《微计算机信息》(测控自动化)2006年第22卷第10-1期

360元/年邮局订阅号:82-946《现场总线技术应用200例》数采与监测putLen属性值为N,这样当从串口接收缓冲区中接收数据时,只接收N个字节的数据,即下位机回复此命令的整个数据包。当串口接收到一个合法的数据包后,判断数据包的类型,然后提交给相应的软件模块进行处理,如接收到设备的握手数据包后就将其提交给状态控制模块。串口数据的发送与接收相比相对简单,本模块将命令队列提交的数据包进行简单的登记,获得数据包的大小和回复数据包的大小,设置MSComm控件的Rthreshold属性和InputLen属性,然后调用MSComm控件的数据发送函数,将数据包发送出去。3.4程序流程程序流程框图如图1所示。由于Windows程序采用事件驱动模式,在编写程序时只需编写相关的事件处理函数,由Windows捕捉事件并调用事件处理函数。在本程序中,主要编写三个事件处理函数:定时器事件,队列激活事件,串口接收数据事件。设置1秒定时器和一个计数值,在每一秒中将计数值增一,根据计数值来标示通讯周期第i段,4段则为一个通讯周期。命令队列的操作可以在辅助线程中完成,当队列为空,将线程挂起,同时队列也被挂起,当需要激活队列,则唤醒线程,队列继续进行动作。

图14结束语本方案已经成功应用于青岛海迪克公司的HDC8000A半导体扩散系统并投入使用,上位机与下位机通讯可靠。如果系统要改为USB或者网络通讯,则只需更改接收发送模块的相关处理代码就可以应用到新的环境中,所以本设计方案具有一定的通用性。本文作者创新点:在模块化设计串口通讯的基础上,采用优化传输策略,使上位机软件与下位机组可以进行可靠、高效的通讯。参考文献:[1]范辉、刘惊雷、傅铭,VisualC++6.0程序设计简明教程[M],高等教育出版社,2001[2]王国印译,VisualC++技术内幕(第二版)[M],北京:清华大学出版社,1995.5[3]章学静、何宾、韩月秋,基于雷达信号模拟器的串口通信的设计[J],微计算机信息,2005,150-152作者简介:綦声波,男,1970年出生,现任中国海洋大学副教授。主要研究方向:嵌入式技术、智能仪器仪表及工业自动化,E-Mail::fashion_in@eyou.com。Biography:QiShengbo,male,bornedin1970,vice-professorofOceanUniversityofChina.majorinembeddedtechnology,intelli-gentinstrumentalsandfactoryautomation.(266071山东青岛中国海洋大学)綦声波李君峰(266000山东青岛青岛海迪克公司)梅兴东(OceanUniversityofChina,Qingdao266071,China)Qi,ShengboLi,Junfeng(QingdaoHidiconCorp.Ltd.,Qingdao266000,China)Mei,Xingdong通讯地址:(266071山东省青岛市中国海洋大学工程学院控制理论与控制工程2004级(研))李君峰(收稿日期:2006.2.10)(修稿日期:2006.3.8)(上接第260页)[4]罗兵[,徐雅骥,江楠].Microsoft.NETCompactframework技术内幕[M],北京:清华大学出版社,2003.285-325,352-389.[5]马英杰[,周蓉生,方方].基于掌上型电脑的便携式X荧光测量系统[J].核电子学与探测技术,2004,26(4):626-629.[6]马英杰[,周蓉生,刘银兵][,等].基于掌上型电脑的核数据采集系统的研究[J].物探与化探,2002,26(4):315-317.[7]DouglasBoling.WindowsCE程序设计[M],北京:北京大学出版社,1999.493-513.[8]王见,金涛,秦树人,等.基于PDA的虚拟仪器技术[J].重庆大学学报,2004,27(12):13-16.[9]王见.网络化虚拟仪器及其在PDA中的应用研究[D].重庆大学:重庆大学,2004.作者简介:陈秀宏,女,1979年生,汉,河北省唐山人,硕士研究生。主要从事计算机检测与自动控制方面的研究,E-mail:cxdhxm791117@yahoo.com.cn;钱东平,男,1955年生,汉,博士生导师。主要从事人工智能、计算机检测与自动控制方面的研究,E-mail:qdp106@yahoo.com.cn。Biography:ChenXiuhong,Female,Bornin1979,TheHannationality,Master;Researchdomain:ComputerMeasurementandControl,Automatization.(071001保定市河北农业大学机电工程学院)陈秀宏钱东平赵瑞明程浩赵东杰(CollegeofMechanicalandElectricalEngineering,HeBeiAgriculuralUniversity,BaoDing071001,China)Chen,XiuhongQian,DongpingZhao,RuimingCheng,HaoZhao,Dongjie通讯地址:(071001河北省保定市河北农业大学机电工程学院)陈秀宏(收稿日期:2006.2.5)(修稿日期:2006.3.5)246--