基于现场总线LonWorks技术的智能节点的开发

基于现场总线LonWorks技术的智能节点的开发

ID:36772527

大小:2.40 MB

页数:87页

时间:2019-05-15

上传者:U-145848
基于现场总线LonWorks技术的智能节点的开发_第1页
基于现场总线LonWorks技术的智能节点的开发_第2页
基于现场总线LonWorks技术的智能节点的开发_第3页
基于现场总线LonWorks技术的智能节点的开发_第4页
基于现场总线LonWorks技术的智能节点的开发_第5页
资源描述:

《基于现场总线LonWorks技术的智能节点的开发》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

山东大学硕士学位论文摘要f现场总线是20世纪80年代中期在国际上发展起来的自动化领域的计算机局域网,是对传统控制系统的信号标准、通信标准、体系结构的变革。现场总线的出现标志着工业控制技术领域一个新时代的开始。LonWorks技术是美国Eche】on公司于1990年12月推出的全分布智能控制网络技术,是现场总线的一种。LonWorks技术包含了实现控制网络的一整套平台。网络中包含了可以相互作用,并且可以通过多种通信介质利用基于消息的协议进行通信的智能节点。LonWorks技术以其独特的优越性,一经引入我国就在工业控制、冶金、电力、船舶、交通、楼宇自控等行业获得了广泛的应用。因此,展开对LonWorks技术的研究具有重大意义。/骨本课题主要探讨的内容就是基于现场总线LonWorks技术的各种智能节点硬件、软件及智能网络适配器硬件和虚拟设备驱动程序VXD的设计、开发以及应用。智能节点包括热电阻、热点偶、数字量输入、数字量输出、模拟量输入、模拟量输出、继电器输出、自保继电器输出等。以上节点在工业控制、石油、化工以及楼宇自控等领域有着广泛的用途和市场前景。它们可以通过双绞线互连,方便地组成智能网络分布式控制系统。在一个完整的测控系统中,上位机监控软件与底层节点之间的信息交换是通过一个插在Pc机上的PCI总线或者ISA总线的智能网络适配器来实现的。ISA总线是早期的计算机总线,而PCI总线则是现代计算机最常见的总线也是最有前途的计算机总线。VXD是Windows95/98/Me操作系统中起主导作用的驱动程序,可以完成各种各样的系统物理层的访问。在本课题中,基于PCI总线以及ISA总线的智能网络适配器以及它们的虚拟设备驱动程序VXD都已经开发成功,并且PCI适配器的VXD很好地实现了即插即用(PnP)功能。利用VisualC++语言开发的上位机监控软件,配以智能网络适配器,再与各种智能节点互连,就形成了一个完全自主开发的基于现场总线LonWorks技术的智能网络分布式测控系统。5本课题是山东大学211工程立项项目,投资30多万元人民币,使用的开发:[具主要是LonBuiIder仿真器。但是,由于LonWorks智能控制网络技术的第4页 山东大学硕士学位论文LonBuilder丌发工具价格对于小用户来讲比较高,极大地限制了其在国内的推广。因此在本课题中实现了显式消息的方法,使智能节点的组网等可以脱离LonBu“der或LonMaker等工具,极大的降低了开发成本,更加适合中国的国情,有利于LonWorks技术在国内的推广。关键词:计算机局域网现场总线智能网络适配器ISA/PCI虚拟设备驱动程序第5页I,onWorks监控软件智能节点数据通信 山东大学硕士学位论文AbstractFieldBusiSonetypeofLocaIAreaNetworkdevelopedinthedomainofautomationscienceinthe1980。S.ItiSarevolutioninthesignaIstandard,communicationsstandardandsystemstructuretoconventionalcontrolsystems.anditiSamilestoneofthebeginningofanewerainautomationindustry.LonWorkstechnologywasfirstdevelopedbyEcheloncorporationinDecember.1990anditjSonetypeofFieldBus.LonWorkstechnologyisacompleteplatformforimplementingcontroInetworksystems.ThesenetworksconsistofintelligentdevicesornodesthatInteractwiththeirenvironment,andcommunicatewithoneanotheroveravarietyofcommunicationsmediausingacommon.message—basedcontroIprotoc01.1tiSmeaningfuItodoresearchesintheLonWorkstechnology.Thisthesismainlydealswiththehardware/softwaredesign,developmentandapplicationoftheintelligentnodesbasedonLonWorkstechnologyandPCIbusorlSAbusadaptersandtheirVirtuaIDeviceDriver(VXDl.TheseintelligentnodesincludeRTD,thermocouple,digitalinput,digitaloutput,analoginput,analogoutput,relayoutput,etc.Thesenodesarebeingusedwidelyinthepower,ship,buildingindustryandotherareas.TheintelligentnodesinteractwithoneanotherthroughtwistedpairandtheycancomposetheIntelligentNetworkDjstributedControISystems.SupervisoryandControISoftwareiSindispensibletoimplementacompletecontrolsystem.Theend—userscangetinformationaboutthenodesinthefield.theycanalsocontroIthenodesthroughsoftware.ThedataexchangesareimplementedthroughonePCJ第6页 山东大学硕士学位论文busorISAbusintelligentnetworkadapterpluggedinoneoftheslotsinthemainboardofaPC.ISAbusiSusedinearliercomputersandPCIbusiSmorepopularinmoderncomputers.VXDiSdominantdevicedriverinWindows95/98/Meoperatingsystem.TheauthorhassuccessfullydevelopedthehardwareboardsandtheirVirtuaIDeviceDrivers(VxDs)ofthePCIbusorISAbusintelligentnetworkadapters.TheSupervisoryandControlSoftware.thePCIorISAbusintelligentnetworkadaptersandvarioustypesofintelligentnodescomposeacompleteNetworkDistributedMeasuringandControlSystembasedonLonWorkstechnology.WhatthisthesisdealswithiSoneofthe“211Drojects”inShandongUniversity.Inordertoreducethedevelopmentcost,theauthorhasfoundoutthemethodofrealizingtheexplicitaddressinginLonWorkstechnologytoexpandtheapplicationofLonWorkstechnologytomoreareas.Keywords:LocaIAreaNetworkFieldBusLonWorksintelligentnodeintelligentnetworkadapterlSA,PCISupervisoryandControISoftwareDataCommunicationVirtuaIDeviceDriver第7页 山东大学硕士学位论文1.1现场总线技术简介第一章绪论在过程控制领域,从60年代一直使用着一种信号标准,那就是4~20mA电流环的模拟信号标准。70年代数字式计算机引入TN控系统中,而此时的计算机提供的是集中式控制处理。80年代微处理器在控制领域得到应用,微处理器被嵌入到各种仪器设备中,形成了分布式控制系统。随着基于微处理器的智能设备的发展和广泛采用,使用数字信号代替4~20mA模拟信号进行传输成为一种必然的同时也是日趋紧迫的要求。同时,随着控制、计算机、通信、网络等技术的发展,信息交换沟通的领域正在迅速覆盖从工厂的现场设备层到控制、管理的各个层次,覆盖从工段、车间、工厂、企业乃至世界各地的市场。信息技术的飞速发展,引起了自动化系统结构的变革,逐步形成以网络集成自动化系统为基础的企业信息系统。现场总线(FieldBus)就是顺应这一形势发展起来的新技术。现场总线是用于现场仪表与控制系统和控制室之间的一种全分散、全数字化、智能、双向、互联、多点多站的通信系统,属于局域网的范畴。也有人把现场总线叫做“3C”技术:即计算机技术、控制技术与通信技术。现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。它的出现标志着工业控制技术领域又一个新时代的开始,并将对该领域的发展产生重要影响。现场总线技术是当前控制和自动化领域中发展最快、最为活跃的一项新技术。现场总线技术集合了控制技术、自动化技术、数字技术、信息技术、微电子技术、网络技术、计算机技术和系统技术等多项技术的最新成果,是一门新兴的交叉学科。它的出现将使传统的分布式测控系统产生革命性的变革,传统的集散控制系统DCS(DistributedControlSystem)将被现场总线控制系统FCS(FieldBusControlSystem)所取代,用单一简洁的现场总线网络代替大量的现场信号连接电缆,从而大大减轻现场信号的繁琐与耗资,提高信号传输的第8页 山东大学硕士学位论文精度与灵活性,为工业现场用户带来巨大的好处。现场总线控制系统FCS是继集散式控制系统DCS后的新一代控制系统。现代工业控制思想的核心是“分散控制,集中监控”使得“控制分散,危险分散”。但流行的DCS控制与其工业过程打交道的过程控制站仍然还是集中的,这正是对分散控制,集中监控思想的违背。而FCS控制系统真正做到了这一点,它把控制功能彻底下放到现场,具有通信功能的现场智能设备,能完成诸如数据采集,数据处理,控制运算和数据输出等功能。只有一些现场仪表无法完成的高级控制功能才由上位机来完成。而且现场节点之间可以相互通信实现互操作,节点可以把自己的诊断数据传送给上位机,以便于设备管理。与传统的控制系统相比,现场总线控制系统(FCS)主要具有以下的优点:1.现场总线的信号传输实现了全数字化数字信号传输使现场总线打破了传统控制一对一单向传输的结构,实现了高速、双向、多节点传输,而且支持多传输介质和拓扑结构。数字信号提高了测量和控制精度,也加强了信号的抗干扰能力;一对传输线上能挂接多个现场设备,大大减少了设备投资和安装费用。从技术上说,现场总线与传统仪表和控制系统相比,最大的变化是在现场端的设备以及从现场到控制中心的信号传输方式上。传统的现场端设备(传感器、变送器和执行器),目前大多是基于模拟技术的电动式仪表,从现场端设备到控制中心则采用标准的4--20mA或其它电流、电压方式的模拟信号传输。而现场总线控制系统则采用数字信号传输,是一种全分散全数字控制系统,从而大大提高了控制的准确性、一致性和协调控制功能。模拟信号传输的最大特点是一对一的传输,因此在信号电缆的敷设方面,一直是控制系统工程中一项令人头痛不已的事,尤其是信号数量较大、控制对象分散的系统更是如此。据统计,在一个中型计算机控制系统中,控制中心的计算机设备、人机界面设备、数据记录及存储设备的费用总和与信号电缆的采购、施工费用总和的比例大约为l:0.5到1:1之间,如果将这些数量巨大的信号电缆日常维护费用考虑进去,则信号电缆费用在系统中所占的比例将更高。可见,在整个系统中这项费用的降低可对整个自动化系统的造价产生关键作用。另外,长距离的模拟信号传输会带来信号精度的损失、外界干扰的引入等问题,不够严格的施工还会对第9页 山东大学硕士学位论文系统造成破坏。作为~种现场端设备到控制中心传输信号的新技术,现场总线将数字化工作的地点从控制中心转移到了现场。而信号传输则由模拟方式变为数字方式。数字信号的优势在于其可采用线路复用方式使多个信号通过一条电缆实现传输,这就大大降低了现场端设备到控制中心之间的电缆的数量。根据不同的现场情况,信号电缆的减少可达90%左右,而且信号电缆的规格是整齐划一的。这对于电缆的采购、库存和施工无疑是有巨大好处的。由于现场总线采用了数字信号传输技术,因此可以采取有效的隔离和电磁干扰屏蔽措施。这对于提高控制精度和系统稳定性都是很有利的。另外,由于现场总线的数字化是在现场完成的,原来集中在控制中心的许多电子设备分散到了现场端,使控制中心的设备量大大减少。因此控制中心的占地面积相应减少,这也降低了控制中心的建设费用。目前各种现场总线在传输数字信号时,大多采用分时复用技术,与一对~的信号传输相比,带来的第一个问题是时间上的延迟。但由于目前很多现场总线的传输速率都很高,完全可以满足控制周期的要求。第二个问题是可靠性问题。由于多个信号共用一条线路,因此线路的损坏将引起多个信号的失效。和传统信号传输方式相比,线路损坏原因是相同的,如机械损坏、火灾或鼠害等等。在这些方面,应该说一旦损坏发生,不论是~对一还是一对多方式,其损失程度不会有很大差异。而从防护的角度看,电缆数量的减少将更有利于防护。第三个问题是数字化设备移到现场后,电子设备的抗恶劣环境要求提高了,这将提高电子设备的造价,大约提高了20%左右。但与其所带来的费用降低相比,还是值得的。2.现场总线实现了全分散控制和现场设备智能化由于内置了微处理器,现场设备能完成检测、变换、补偿和运算等简单的控制功能,把控制功能下放到现场,实现了真正意义上的分散控制,缩短了控制周期,提高了实时性;现场设备同时具有通信功能,节点和节点之间,节点和上位机之间能相互互连称网络,互换信息,协调控制。新型的现场总线控制系统突破了传统的控制系统如DCS系统中通信由专用的封闭系统来实现所造成的缺陷,把基于封闭、专用的解决方案变成了基于公开化、标准化的解决方案,即可以把来自不同厂商而遵守同~协议规范的自第10页 山东大学硕士学位论文动化设备,通过现场总线网络连接成系统,实现综合自动化的各种功能,同时把DCS集中与分散相结合的集散系统结构,变成了新型全分布式结构,把控制功能彻底下放到现场,依靠现场智能设备本身便可实现基本控制功能。3.现场总线控制系统是开放性的系统现场总线为开放性互连网络,从总线标准、产品检验到信息发布都是公开的,面向所有的产品制造商和用户。这种开放性增强了设备问的互操作性,遵守同一协议的不同厂家的产品可以进行统一组态,交换信息;不同协议的产品之间也可以通过特定的网关通信,给用户提供了很大的选择余地。用户可以自由集成不同制造商的产品,自由选择不同制造商所提供的性能价格比最优的现场设备或现场仪表。不同厂商的现场设备既可以互连也可以互换,并可以统一组态,彻底改变了传统控制系统的封闭性和专用性。现场总线系统既可以与同层网络互连,也可以与不同层网络互连。不同制造商的网络互连十分方便,用户不必在硬件或软件上花太多力气。开放式互连网络还体现在用户可极方便的共享网络数据库,通过网络对现场设备和功能块统一组态。从技术上说,FCS作为一种控制系统,它在控制策略方面并没有多大改进,但它在网络性能和硬件方面进行了很大的改进,这主要体现在它对通信技术的利用和设备的智能化改造上,它的通信技术尤具特色。从本质上说现场总线就是~种通信协议,是适合于工业控制要求的通信网络。现场总线中的通信与计算机网络通信不同,现场总线中的通信信息量小,信息传输任务相对简单,但实时性、可靠性要求高,因此各种现场总线在不同程度上对OSI的七层通信模型进行了简化,尽量减少中间环节,提高数据的通信速率以满足数据传输的实时性。现场总线把现场节点连接成类局域网形式,节点间必须共用传输介质进行数据传输,所以数据链路层是现场总线的核心。现场总线所带来的另一个革命性的变化,是在现场与控制中心之间,所传输的已不单纯是表明物理量值的信号,而是包含了各类不直接与控制有关,但与现场管理有关的各种设备运行和诊断信息。而这种革命性的变化将导致整个控制系统从单一的测量与控制功能发展为测量、控制和管理一体化的综合自动化功能。当然,这种功能的实现不仅仅是靠现场总线的发展,而要靠整个系统第ll页 山东大学硕士学位论文技术的发展才能实现。现在国外各大仪表及工控公司都把发展现场总线技术和产品放在公司技术进步的首位,许多公司根据自己的现场总线标准,生产出了相应产品。国内现场总线技术的应用研究刚刚起步,国家专门成立了现场总线专业委员会(CFFc),制定了现场总线发展的前景目标、发展方针和规划要点。1.2现场总线的几种类型现场总线诞生的初衷是要朝着统一标准的方向发展,但是由于各大公司商业利益等等原因,国际上已经承认并且获得广泛应用的现场总线就有多种:比如基金会现场总线FF、PROFIBUS、DeviceNet、CANBUS、LonWorks等等。1.FF(基金会现场总线)基金会现场总线FF是在过程自动化领域得到广泛支持和具有良好发展前景的现场总线,它以ISO/OSI开放系统互连模型为基础,取其物理层、数据链路层、应用层为FF通信模型的相应层次,并在应用层上增加了用户层。FF分低速H1和高速H2两种通信速率。2.PROFlBUSPROFIBUS是德国国家标准DINl9245和欧洲标准EN50170的现场总线标准。由PROFIBUS—DP、PROFIBUS.FMS、PROFIBUS.P:A组成了PROFIBUS系列。DP型用于分散外设间的高速数据传输,适合于加工自动化领域的应用。FMS意为现场信息规范,适用于纺织、楼宇自控、可编程控制器、低压开关等。而PA型则是用于过程自动化的总线类型。该项技术是西门子公司为主的十几家德国公司、研究所共同推出的,它采用了OSI模型的物理层、数据链路层。FMS还采用了应用层。传输速率为9.6kbps~12Mbps,最大传输距离在12Mbps时为100m,1.5Mbps时为400m,可用中继器延长至10km。传输介质可以是双绞线、光缆,最多可挂接127个站点,可实现总线供电与本质安全防爆。3CANBUSCAN是ControllerAreaNetwork的缩写,即控制器局域网,它主要用于各种过程监测及控制系统。CAN是由德国Bosch公司在90年代初为汽车的监测、控制系统而设计的,是实现现代汽车中众多的控制与测试仪器之间的数据交换第12页 山东大学硕士学位论文而丌发的一种串行数据通信协议。CAN是一种多主总线,通信介质可以是双绞线、『刊轴电缆或光导纤维。通信速率最高可达lMbps。CAN总线通信接口集成了CAN协议的物理层和数据链路层功能。CAN协议的一个最大特点是废除了传统的站地址编码,取而代之的是对通信数据块进行编码。采用这种方法可使网络内的节点个数在理论上不受限制,数据段长度最多为8个字节,可满足通常工业领域中控制命令、工作状态及测试数据的一般要求。同时,8个字节不会过长占用总线时间,从而保证了通信的实时性。CAN协议采用CRC检验并可提供相应的错误处理功能,保证了数据通信的可靠性。CAN总线卓越的特性、极高的可靠性和独特的设计,特别适合工业过程监控设备的互连,因此,越来越受到工业界的重视。4LONWORKSLON(Local0peratingNetwork)总线是美国Echelon公司1991年推出的局部操作网络,为分布式监控系统提供了强有力的实现手段。在其支持下,诞生了新~代的智能化、低成本的现场测控网络。为支持LON总线,EcheIon公司开发了LonWorks技术,它为LON总线网络设计、成品化提供了一套完整的开发平台。目前LonWorks技术的产品广泛应用在工业、智能大厦、交通、能源等自动化领域,因此,LON总线是一种通用的现场总线。本课题就是基于LonWorks技术实现现场控制网络的智能节点的开发的。与传统控制系统不同的是,现场总线可以采用不同的拓扑结构组成测控系统,采用合适的拓扑结构可以简化系统安装并且在扩展网络时使添加节点变得相当容易。网络的拓扑结构是指网络中节点的互连形式。现场总线可以采用总线拓扑、星型拓扑、环型拓扑、树型拓扑以及混合型拓扑等。综上所述,现场总线是网络技术、信息技术在控制领域的体现,它必将对控制领域产生划时代的影响。诚然,现场总线也有不足之处。现场总线在技术开发、生产供应、应用经验等方面还存在着一些缺陷。比如,由于软硬件水平的限制,现场节点的功能还比较简单,而复杂、先进的控制算法还无法在现场设备中实现。另外,现场总线诞生的初衷是朝着统一化方向发展,但是由于各个大公司集团利益等原因,现场总线目前还是多种形式并存,并没有完全统一的标准,现场总线的标准化道路也任重道远。第13页 山东大学硕士学位论文第二章LonWorks技术2.1LonWorks技术的发展及其特点LON(Local0peratingNetworks)总线是美国Echelon公司1991年推出的局部操作网络,为分布式监控系统提供了强有力的实现手段,在Echelon公司的支持下,诞生了新一代的智能化、低成本的现场测控网络。为支持LON总线,Echelon公司开发了LonWorks技术,它为LON总线网络设计、成品化提供了一套完整的开发平台。目前LonWorks技术的产品广泛应用在工业、智能大厦、交通、能源等自动化领域。LON总线也成为当前最为流行的现场总线之~。LonWorks使用的开放式通信协议LonTalk为设备之间交换控制状态信息建立了一种通用的标准,在LonTal_k协议的协调下,以往那些鼓励的系统和产品融为一体,形成了一个网络控制系统。LonTalk协议最大的特点是对0SI的七层协议的支持,是直接面向对象的网络协议,这是其他的现场总线所不支持的。具体实现就是网络变量这一形式。网络变量使节点之间的数据传递只是通过各个网络变量的帮定便可完成。又由于硬件芯片的支持,实现了实时性和接口的直观、简洁的现场总线的应用要求。Neuron芯片是LonWorks技术的核心,它不仅是LON总线的通信处理器,同时也是作为采集和控制的通用处理器,LonWorks技术中所有关于网络的操作实际上都是通过它来完成的。按照LonWorks标准网络变量来定义数据结构,也可以解决和不同厂家产品的互操作性问题。为了更好的推广LonWorks技术,1994年5月,由世界许多大公司,如ABB、Honeywell、Motorola、IBM、Toshiba、HP等,组成了一个独立的行业协会LonMark,负责定义、发布、确认产品的互操作性标准。LonMark是与Echelon公司无关的LonWorks用户标准化组织,按照LonMark规范设计的LonWorks产品,均可以非常容易地集成在一起,用户不必为网络日后的维护和扩展费用担心。LonMark协会的成立,对于推动LonWorks技术的推广和发展起到了极大的推动作用。到目前为止,许多公司在其产品上采纳了LonWorks技术,如Honeywell将LonWorks技术用于其楼宇自控系统,因此,LON总线第14页 山东大学硕士学位论文成为目前现场总线的主流之一。典型的LON现场总线的网络控制系统结构如图2.1所示。图2.1LON总线的网络控制系统LON现场总线除了具有现场总线的本质特点之外,还有以下优点:1.LonWorks技术所使用的通信协议称为LonTalk协议.LonTalk协议遵循国际标准化组织(ISO)的开放系统互连(鸺I)模型,并且提供了OSI参考模型所定义的全部七层服务,这是LonTalk区别于其他各种协议的重要特点.LonTalk协议改善了CSMA(Carrier-SenseMultipleAccess),采用PredictiveP-PersistentCSMA,在网络负载很重时也不会导致网络瘫痪。采用CSMA算法时,节点发送数据是随机的,必须在网络上争用传输介质,故称之为争用技术。若同一时刻有多个节点向传输线路发送信息,则这些信息会在传输线上相互混淆而遭到破坏,这称为“冲突”。为尽量避免由于竞争引起的冲突,每个节点在发送信息之前都要监听传输线上是否有信息在发送,这就是“载波侦听”。载波侦听CSMA的控制方案是先听后讲。一个节点要发送,首先需要监听总线,确定介质上是否存在其他节点的发送信号。如果介质是空闲的,则可以发送;如果介质是忙的,则等待一定间隔后重试。P一坚持CSMA使用的是分时隙介质访问控制方法,即时间被分成离散的区间(时隙)。当节点侦听到信道空闲时,以给定的概率P在一个随机分配的时隙第15页 山东大学硕士学位论文发送报文,丽以概率Q=l—P把发送推迟到下一个时间槽,重新监听信道。每一帧数据的发送都是在时隙开始的那一瞬间启动,时隙数目R=i/P;这种分时隙介质访问控制方法极大地降低了发送包产生冲突的概率。2.良好的互操作性LonWorks通信协议LonTalk是所有现场总线中唯一完全符合IS0/0SI全部七层模型的总线通信协议,任何符合OSI标准的产品都可以实现互操作。3.支持以不同通信介质分段的阿络所支持的介质包括双绞线、电力线、无线、红外线、同轴电缆和光纤。并且LonWorks的网络可以同时使用上述的各种介质。4.网络拓扑不受总线型网络拓扑单一形式的限制.LonWorks网络上可以有255个子网,每个子网可有127个节点,网络可大可小,网络拓扑形式可为总线型、星型、环型、混合型等任意形式的拓扑结构,LONWORKS直接通信距离可达2700m(双绞线,78Kbps,总线拓扑)、130m(双绞线,1.25Mbps,总线拓扑),另外加中继器还可以延长。另外,LON总线相对于其他现场总线还有~点不同就是:LON总线有一个网络管理工具,如图2一l所示。这个管理工具主要负责网络的安装、维护和监控。在安装阶段,它为节点动态分配网络地址,并通过网络变量和显示报文进行节点之间的通信。维护是在系统正常运行情况下,增加、减少节点,改变网络变量、显示报文的内部连接,以及检测修理错误的设备等。监控是指提供系统级的检测和控制服务,用户可以在网上,甚至是在Internet上远程监控整个系统。目前在自动化领域应用较为广泛的几种现场总线的各种性能的比较如表2一l所示。从表可以看出,LON总线同其他现场总线相比,具有通信介质多样化、访问方式多样、唯一支持OSI七层协议、网络结构灵活等特点,因此LON总线以其特有的优良性能成为众多现场总线产品中的佼佼者。2.2LonWorks的体系结构LonWorks技术包括以下几个组成部分i.LonWorks节点和路由器第16页 山东大学硕士学位论文2.LonTalk协议3.LonWorks收发器4.LonWorks网络和节点开发工具22.1LonWorks节点2.2.1.ILonWorks节点的结构LonWorks节点是指同物理上与之相连的I/O设备进行控制或信息交换并且在LON网络上使用LonTalk协议与其它节点相互通信的一类对象。LON节点有两种类型,一种节点中Neuron芯片是唯一的处理器,适合I/0设备较简单、处理任务不复杂的系统,我们称之为基于Neuron芯片的节点(NeuronChip--BasedNode)一个典型的基于Neuron芯片的节点包括以下几个组成部分:神经元芯片、i/0处理单元、收发器和电源。如图2.2所示:图2.2LonWorks现场控制节点结构框图另一种节点Neuron芯片仅仅作为通信协处理器,充当着LON网的网络接口,节点应用程序则由主处理器执行。这类节点适合于对处理能力、输入/输出能力要求较高的系统,称之为基于主机的节点(HostBasedNode),主处理器可以第17页 山东大学硕士学位论文是Pc机或者其他任何微处理器。在基于主机的节点中,采用MIP(MicroprocessorInterfaceProgram)接口可以实现PC机与LonWorks网络的联系,并可以开发自己的应用程序用于对网络监测、控制、网络管理等。Echelon公司提供了LONWORKSMIP/P20andMIP/P50Developer’SKit和LONWORKSMIP/DPSDeveloper’SKit来开发三种MIP接口:MIP/P20(主要用于3120芯片与CPU并行接口),mP/P50(主要用于3150芯片与CPU并行接口),MIP/DPS(主要用于使用DPRAM实现Neuron芯片与CPU通信)。其中,神经元芯片是其核心部分,主要包括3150和3120两大系列,3150支持外部存储器,适合较为复杂的应用,而后者不支持外部存储器。由于本课题采用的是TMPN3150,因此以后所述神经元芯片未经特别说明,均指TMPN3150。2.2.1.2神经元芯片神经元芯片的主要性能特点为:】.高度集成,所需外部器件较少。2.内有三个CPU,分别实现不同的功能,输入时钟可选范围:625kHz~10MHz。3.11个可编程FO口引脚可设置为34种预编程工作方式,其中104~107有可编程上拉电阻,IO肚103具有高电流吸收能力(20rnA)。4.两个16位定时/计数器,15个软定时器。5.网络通信端口可设置为单端、差分、专用工作方式。6.在外部存储器中可固化LonTalk协议、YO驱动程序、事件驱动多任务调度程序等固件。7.提供用于远程识别和诊断的服务引脚。8.48位的内部NeuronID,用于唯一识别Neuron芯片。Neuron芯片的内部结构和外部引脚如图2.3所示:第18页 山东大学硕士学位论文十+‘_飞√气lM。,AuCjj。1目,ul8ClP月U8iE,E,P:。R,O,。M。ll:KRA啦M。。。lI‘1Ⅱ1li7Ⅱ。‘f、‘Ⅱ1I介‘I77i『,16bit地址线IU。J8bit数据线JfIJ时序和控制—i—i1『1时钟控制和I/0模块网络定时器(包含16bits寄存器,脉冲计数器,20mA环电流)通信口f。f。I●+I+⋯+++I1....RESET一『cLKlCLK21001071081091010TCP0CP4图2.3Nellron芯片(TMPN3150)1为部结构和外部引脚图在神经元芯片内部有三个处理器:MAC处理器、网络处理器和应用处理器,图2.4所示为三个处理器和存储器结构的框图。MAC(MediaAccessContr01)处理器完成介质访问控制,也就是LonTMk七层协议的l、2层,这包括驱动通信子系统硬件和执行MAC算法。网络处理器完成LonTalk协议的3~6层,包括处理网络变量、寻址、认证、后台诊断、软件定时器、网络管理和路由等。同时,它还控制网络通信端口,物理地发送和接受数据包。应用处理器完成用户的编程,包括用户编写地代码以及用户程序第19页 山东大学硕士学位论文对操作系统的服务调用等。各处理器分别同时独立工作,通过缓冲器进行通信。网络处理器使用网络缓冲区和MAC处理器进行通信,使用应用缓冲区和应用处理器进行通信。崩越共享存储器图2.4Neuron芯片内部三个徽处理器结构框图神经元芯片与现场设备的互联是通过它的11个I/O口实现的。这11个I/O口可以根据不同的需求配置成34种预编程设置,例如:位输入、位输出、字节输入、字节输出、电平检测、并行I,o、多总线YO、位移输入、位移输出、12C、串行输入、串行输出、红外输入、脉冲计数输入等。其中,104~107可设置内部上拉电阻,100~103设置成高电流吸收(20mA,0.8V),100~1010带有TTL标准的迟滞输入功能,100~107可设置为低电平检测锁存输入。通过I1个I/O,借助于最小地外接电路实现灵活地输入输出功能。神经元芯片为防止软件失效和存储器错误,包含三个Watchdog定时器(每个CPU一个)。如果应用软件和系统没有定时地刷新这些Watchdog定时器,整个神经元芯片将自动复位。Watchdog定时器的复位周期依赖于神经元芯片输入时钟地频率。当神经元芯片处于睡眠状态时,所有的Watchdog定时器被禁止。在神经元芯片中,集强大的通信功能和现场采集控制功能于一体。因此,一个神经元芯片再加上几个现场传感器、执行器等外部器件,就是一个DCS系统中独立的控制单元。神经元芯片有一个多功能通信端口(cP0~CP4),可支持不同的通信介质,第加页 山东大学硕士学位论文可配置成三种不同的接口模式,以适合不同的编码方案和波特率,单端模式是LON总线中使用最广泛的一种模式,单端和差分模式的数据编码和解码采用差分曼彻斯特编码(differentialManchesterencoding)。由于突破了通信介质的限制,因此LON总线可以根据不同的现场需要选择不同的收发器和通信介质。LON总线的收发器有:双绞线收发器、电力线收发器、无线收发器、光纤收发器等,由于性能价格比的原因,最常用的是双绞线收发器以及电力线收发器。双绞线收发器有三种类型:直接驱动式、EIA一485、变压器耦合,其中由于变压器耦合接口能满足系统高性能、高共模隔离、噪声隔离等多方面的需要,因此得到了广泛的应用。TMPN3150片内没有ROM,然而可寻址64K,其中包括58K的外部存储器及6K的片内存储器,其存储器映像如图2.5所示:为存储器映像I/O保留的IK空间2.5KB保留空间0.5KBEEPROM2KBRAM42KB用户可用的存储器空间16103Neuron芯片固件片内片外图2.5TMPN3150存储器映像其中,O.5KBEEPROM中用来存储网络配置和网络寻址信息、48位的NeuronID码和用户写入的应用代码及一般只读数据。RAM作为堆栈段数据区、应用和系统程序数据区、LonTalk协议应用缓冲区和网络缓冲区。在外部存储器中,16KB用来存储LON操作系统,剩下的空间可作为用户编写的应用代码和应用程序所需要的额外数据区、应用缓冲区和网络缓冲区。外接存储器可以扩展FLASH、ROM、EEPROM、RAM以及它们的组合,以256B递增。第2l页 山东大学硕士学位论文2.2.2路由器路由器是LonWorks技术中很重要的一个部分,也是其他现场总线所不具备的。正是由于路由器的使用,使LON总线不受通信距离、介质和速率的限制,并且能够将不同的通信介质集成在同一个网络中(如图2.1所示)。路由器根据其路由算法的不同,分为四种:配置型路由器、学习型路由器、桥接器、中继器,前面两种属于智能型路由器。2.2.3LonTaIk协议LonTalk协议是专为LON总线设计的协议,它的特点是1.发送的报文都是很短的数据f0.228Bytes)2.通信带宽不高(几Kbps一2Mbps)3.网络上的节点往往是低成本、低维护的单片机4.多节点、多通信介质5.可靠性好6.实时性高LonTalk协议是现场总线中唯一完全符合ISO组织制定的OSI开放系统互联模型七层协议的总线协议。一个LonWorks节点所运行的应用程序通过使用LonTalk协议可以与在相同网络上运行在其他地方的LonWorks节点上的应用程序进行通讯。Neuron芯片中的处理器用来执行LonTalk协议软件和应用程序。LonTalk协议的主要特点如下:1.支持多种类型的传输介质神经元芯片处理的协议是与介质无关的。这就允许神经元芯片支持大量不同的通讯介质,包括双绞线、电力线、射频(RF)、红外线、同轴电缆和光缆。2.支持多种类型的信道信道是信息包的物理传输介质。网络可以包含一个或多个信道。为了将信息包从一个信道传向另一个,路由器或转发器的设备来连接两个信道。路由器具有两个收发器,用来在两个信道之间进行通信。LonTaIk协议支持路由器以第22页 山东大学硕士学位论文便构成多种传输介质的网络,通过通信局部化来优化网络负载。3.支持多种通讯速率用户可以把信道配置成不同的比特率。信道可达到的比特率为O6、1.2、2.4、49、9.8、19.5、39.1、78.1、156.3、3125、625和1250kbps。信道吞吐量依赖于比特率、晶振的频率和精确度、接收器性能、信息包的平均长度以及是否使用应答服务、优先级、证实。~个信息包的平均位长度为10到16字节,这与域标识符的长度、编址方式和一个网络变量的更新或显式消息的数据的大小有关。信息包的最大长度为255字节,包括数据,地址和协议开销。4.LonTaIk寻址界限编址的最高层是域。例如,如果在一个共享的通讯介质(如RF)中执行不同的网络应用,可以使用不同的域标识符来保持每个应用完全独立。域标识符的长度可以是0、1、3或6字节。每个独立节点最多属于两个域。编址的第二层是子网。每个域最多可有255个子网。子网是一个或多个信道上节点的逻辑分组。一个智能路由器在子网层进行操作。它判断子网位于它的哪一侧,据此转发信息包。编址的第三层是节点。每个子网最多有127个节点。于是一个单独的域最多可有255×127=32,385个节点。每个节点可属于一个或两个域,从而允许一个节点作为互连域的网关。例如,也允许~个传感器节点将其输出发送给两个不同的域。节点也可编组。在一个域中组可以跨越多个子网,也可以跨越不同的传输介质和信道。一个域中最多可指定256个组,当采用应答服务或请求,响应服务时一个组最多可有64个节点。在一个采用非应答服务的域中,一个组可以有无限个节点。单独一个节点最多可属于15个组来接收消息。另外,每个节点带有一个唯一的48位的神经元ID,这是在生产时指定的。此ID仅在安装和配置时作为网络地址。它也是可读的,可以被应用程序作为唯一的产品序列号使用。节点的信道不影响节点寻址方式。域可以包含多个信道。子网和组也可跨越多个信道。第23页 山东大学硕士学位论文5.消息服务LonTalk协议提供了四种基本类型的消息服务:应答服务(ACKD)、请求,响应服务(REQUEST)、重发服务(UNACKDRPT)、非应答服务(LTNACIKJ)),LonTaIk协议提供了重发消息检测机制,通常只发送一个消息到目标应用~次,即使是消息重复发送也是如此。当应答和晌应丢失时,或者当网络使用开放式的传输介质(比如RF和电线)信息包被干扰时,或者当使用非应答的重发服务时,会重复发送同一消息。只有在请求,响应服务中,响应除了消息代码外还包含数据,一个消息会不只一次的发送给目标应用。每个节点的接收事务数据库提供了重复发送检测能力。6.证实LonTalk协议支持证实消息,这就允许消息的接收方确定发送方是否有权发送该消息。这样可以避免对节点或他们的应用程序未授权的访问或控制。证实是在安装时通过分配给节点48位的密钥来实现的,每个域一个密钥。在接收方即将接收证实消息时发送方和接收方必须具有同样的密钥。这个密钥与节点的NeuronID不同。7.优先级LonTalk协议提供了一个可选择的优先级机制来减少对关键信息包的响应时间。该协议允许用户在信道上分配优先级时间槽,它用于具有优先级的节点。在一个信道上,每一个优先级时间槽增加了每个信息的传输时间,每个消息包的尾部具有专用的带宽用来进行优先级存取,而不需与信道争用带宽。8.冲突避免LonTaIk协议使用一个特殊算法来避免冲突,该算法具有如下特点:在超载的情况下信道仍然可以达到最大的通信量,而不会因为冲突太多使网络的吞吐量下降。9.冲突检测因为通讯收发器支持硬件冲突检测,LonTalk协议可以支持冲突检测和自动重发。这就允许一个节点检测到冲突后立刻重发信息包,这要比仅仅依赖上层超时要快得多。信息包重发必须遵守正常的介质访问延迟时序。冲突检测操作的其它的细节随通信端口的工作方式的不同而变化。第24页 山东大学硕士学位论文10.数据解释有一部分专门保留的消息代码用来实现对外来帧的传送。外来帧的一个信息包中最多可包含有228字节的数据,而且可以象其他消息一样传送。Lontalk协议没有对外来帧进行专门的处理,只是把它们看作简单的字节序列。应用程序可以按其需要以任何形式来解释数据。11.网络管理和诊断服务网络管理和诊断服务由两类特殊的消息来提供,这两类消息可由LonWorks的每个节点处理。2.2.4面向对象的开发语言一NeuroncNeuronC是专门为Neuron芯片设计的编程语言,它是从ANSIC派生出来的,相对ANSIC而言,它进一步扩展了用以支持由Neuron芯片中的固件提供的各种运行特性,使之成为开发LonWorks应用的强有力的工具。NeuronC对ANSIC的扩展包括如下几点:1.一个内部多任务调度程序:它允许程序员以自然的方式描述事件驱动的任务,同时控制这些任务的优先级的执行。2.将I,O对象直接映射到处理器的I/O能力。3.网络变量对象定义:提供一种简单的实现节点之间数据共享的方法。4.when语句:引入事件并定义这些事件的临时排序。5.显式消息(explicitmessage)传递:用于直接对LonTalk协议的底层进行访问。6.秒及毫秒级软件定时器对象:可随意激活用户的任务。7.函数库:当调用时,可以执行事件检测、输入,输出管理、网上发送或接收消息以及控制各种Neuron芯片的功能。NeuronC支持的数据类型有:整型、字符型、布尔型、枚举类型、数组类型、指针类型、结构类型、联合类型和定义类型(typedef)等。值得注意的是NeuronC不支持ANSIC的标准运行库的一些功能,如浮点运算、文件I/0等,然而为了满足Neuron芯片作为智能分布控制应用,Neuron第2S页 山东大学硕士学位论文c有自己的扩展运行库和语法。这些功能包括:定时器、网络变量、显示报文、多任务调度、EEPROM变量和其他多种功能等。NeuronC的任务调度是事件驱动(Event—driven)的:当一个给定事件发生的条件为真时,与该事件相关连的一段代码(称为任务)被执行;条件为假时跳过此任务。事件通过When0语句来定义,一个When0语句包含一个表达式,当表达式为真时,则表达式后面的任务被执行,另外,事件可以定义优先级以便优先执行。在NeuronC中共有五类事件:系统级事件、W0事件、定时器事件、网络变量和显式消息事件、用户自定义事件。一个运行在Neuron芯片的NeuronC程序是由多个When0事件组成的,程序按照When0事件的顺序执行,当程序执行完时,重新从头开始执行。同时,可以通过设置优先级的方式改变事件的执行顺序,优先执行某个重要的事件。在一个NeuronC程序中,最多可定义15个软件定时器对象:毫秒定时器(1~64000ms)或者秒定时器(165535s)。这些软件定时器在网络CPU运行,是与神经元芯片的两个硬件定时器/计数器分开的。LonWorks节点之间的数据传输主要通过网络变量实现。网络变量又称为隐式消息。定义网络变量后,只要在网络安装时用LonBuilder或者LonMaker进行网络变量的绑定就可以实现数据的传输,应用程序不必考虑发送和接收的问题,因而用它来开发网络应用系统比较方便,并且开发周期短。每个节点最多可以定义62个网络变量,每个网络变量的最大长度可达31个字节。网络变量的使用极大的简化了分散系统的开发和安装,各个节点可以独立定义,然后简单连接在一起或者断开某几个连接就可以构成新的LonWorks系统。网络变量通过提供给节点明确的网络接口而极大的提高了节点产品的互操作性。为了进一步提高互操作性,LonTalk协议还支持SNVT(标准网络变量类型)和LonMark对象。虽然大多数应用系统采用网络变量,但由于网络变量的数据长度一经确定就不能改变,且最多只有31个字节,所以NeuronC提供了另外一种机制——显式清息来进行数据的传送。显式消息的长度是可变的,并且最长可以是228个字节。第26页 山东大学硕士学位论文2.2.5LonWorks开发工具LonWorks技术包含了一系列的开发工具:节点开发工具NodeBuilder、节点和网络安装工具LonBuiIder、网络管理工具LonManager以及97年开发出来的客户/服务器网络构架一LNS技术。NodeBuiIder是基于节点的开发工具,包括一整套基于Windows的设备开发软件,一个Pc接口卡:PCNSS,一个LonWorks节点测试样机和两个LonWorks收发器,NodeBuilder是开发节点设备最好的工具。利用LonManagerDDE服务器,可以实现在Windows平台下的网络变量的用户接口程序的管理。LonBuilder是基于LON网络的开发工具,包括节点开发器、网络管理器、协议分析器和消息统计器以及例子程序和开发板。另外,LonBuilder还提供了LonManagerDDE服务器。LonManagerDDE服务器可以使用任何具备动态数据交换(DDE)功能的Windows应用软件为LonWorks网络快速建立图形化的用户界面。LonBuilder还提供了单通道PCLonTalk适配器一PcLTA,为使用LonManagerDDE服务器和用户应用程序提供了一个高性能的网络接口。其中,LonManagerDDE服务器和PCLTA可以从LonBuilder工具中分离出来而安装在PC机上,这样可以使主机应用程序的开发和应用节点的开发同时进行。本课题对于节点的开发过程中,NeuronC程序的编译、程序的下载、节点以及网络的安装、网络的管理都是通过LonBuilder来实现的。INS(LonWorksNetworkService)是Echelon公司97年开发出来的LON总线的开发工具,它提供给用户一个强大的客户/服务器网络构架,是未来LON总线的可互操作性的基础。使用INS提供的网络服务,可以保证从不同网络服务器上提供的网络管理工具可以一起执行网络安装、网络维护、网络监测;而众多的客户则可以同时申请这些服务器所提供的网络功能。使用INS的优点是:大大减少开发时间和费用,容许多个网络工具同时在网络上运行而不会产生冲突,保障用户可以方便地采用众多其他公司地网络产品:系统集成简单,对于OEM用户,特别是在Windows平台开发的用户,开发的任务只是处理网络对象服务的属性、事件和方法;数据访问不受限制,LNS容许用户同时使用多台人机接口(删I)、SCADA站、数据站,同时访问网络上的数据。第27员 山东大学硕士学位论文第三章LonWorks智能节点的开发3.1系统总体结构设计思路现场总线、VLSI、PC机和控制软件标准化等技术的突破,对设计低成本控制网络提供了支持。Echelon公司推出的Lon!Ⅳorks技术提供了构建控制网络的完整平台,包括:为控制网络提供只能、具备通信和控制功能的Neuron芯片;符合ISO/OSI七层通信协议的LonTalk协议;支持多种传输介质的收发器:用于节点研制、调试、组网的LonBuilder或NodeBuilder工具;能方便高效地管理网络安装、维护和监测,以保证整个网络具有互操作性的LonWorks网络服务体系架构LNS;用于应用软件开发的NeruonC等。减少系统开发与维护投资和降低成本,应是控制网络设计的原则。因此,具体的设计目标应包括:(1)用Neuron芯片、收发器等硬件和LonTalk协议固件自行设计分布在现场的智能节点:(2)从节省开发工具的昂贵费用出发,现场智能节点的设计、调试和组网均在NodeBuiider开发平台上实现,不再依赖其他组网工具,自行设计智能网络适配器、网络通信软件、DDE服务软件等,实现与InTouch等监控软件的数据共享和集成;(3)通过对LonTalk协议服务的直接访问,用显式消息实现网络数据通信,提高数据通信的灵活性,改善实时性能,并且脱离LonBuiIder仿真器。(4)利用自行设计的节点和开发的软件,完成控制网络的构建,使现场智能节点的安装和替换无需经历逻辑组网等步骤。控制网络可将数据检测、数据处理以及系统监控相结合,主要由Pc机、现场智能节点、智能网络适配器和通信介质组成,由LonWorks担任过程现场和安装在控制室中的PC机之间的串行数字通信链路。LonWorks工业网络测控系统的拓扑结构如图3.1所示:第28页 山东大学硕士学位论文120Q控制室fPCf|L。NIsA/PcI适配器0.6i1I1Il...........上I网釜”斟|FBL箸怫剌熙2亿f『B。?I1200其他网络图3.1LonWorks工业网络测控系统的拓扑结构LonWorks系统设计应在保证系统可靠工作和降低成本的前提下,具有通用性强、实时性好和可扩展性强等特点。本着上述原则,针对研究课题,本系统主要采用了如下的设计思路:1.网络拓扑采用了总线式拓扑结构这种结构比环形结构信息吞吐率低,但结构简单、成本低,并且采用无源抽头连接,系统可靠性高。采用了自由拓扑双绞线收发器FTT—IOA使节点之间通过双绞线进行互连,双绞线是目前应用最广的一种通信介质,成本低,易于维护,并且使在网络中扩展节点变得相当容易。2.上位计算机选用了Pc机因为PC机上面有多条ISA或PCI扩展槽,利用局域网络适配器,使得该系统很容易与其他生产管理部门联网,便于统一调度和管理。另外,选用PC机还可以充分利用现有的软件工具和开发环境,方便快捷地设计功能丰富的计第29页 山东大学硕士学位论文算机软件。实现网络管理方面的各种功能,监视和管理所连子网及所有现场智能节点,包括诊断节点、监视节点运行状态等。3.设计了一块LonWorksISA智能网络适配器,同时也设计了一块LonWorksPCI智能网络适配器LonWorksISA/PCI智能网络适配器是上位机与底层网络的接口,是用户上位机应用程序与底层网络中的各个节点进行数据交换、控制信息交换的桥梁。本系统中设计的ISA智能网络适配器可任意插在XT、AT兼容机的ISA总线上,方便地构成分布式工业测控系统,上面采用了自由拓扑双绞线收发器FTT—IOA,通过双绞线与底层节点互连。但是,ISA网卡的安装需要对扩展的存储器地址、邮箱所地址等进行跳线,这样对用户就提出了比较高的要求。同时,由于ISA总线本身固有的限制,使得ISA的网卡最大传输速率为16MB/S,况且,Micorsoft、INTEL的PC99规范也正在使ISA的消失成为一种趋势。而PCI总线最大传输速率可以达到132MB/S,支持PnP。因此,设计一种基于PCI总线的智能网络适配器成为一种必然的需求。在本系统中就利用了PLX公司的PCI9052桥接芯片设计了一块LonWorksPCI智能网络适配器,给用户的使用带来了极大的方便。4.设计了备种智能节点这主要包括LonWorks核心控制模块、3TC热电偶模块、4RTD热电阻模块、8AI模拟量输入模块、8AO模拟量输出模块、8DI数字量输入模块、8D0数字量输出模块、脉冲量计数模块、继电器输出模块等。这些模块可以应用在过程控制、楼宇控制等领域中,并可以用双绞线方便的组成分布式控制系统。智能节点开发的工作主要包括原理图的绘制、印刷电路板PCB的绘制、NeuronC程序的编写、硬件节点的调试以及使用LonBuilder或LonMaker进行组网等。5.软件的开发软件的开发主要包括下面几个方面:●底层网络各个节点应用程序的开发、LonWorksISA/PCI智能网络适配器上的TMPN3150监控程序的开发。这主要是使用NeuronC语言,编译与调试以及程序的下载都是通过LonBuilder来实现。·上位机监控软件的编写。主要是采用了vc++语言。第30页 山东大学硕士学位论文●LonWorksISA/PCI智能网络适配器的正常运行当然少不了驱动程序的支持。驱动程序的开发主要是采用了Numega公司的VtoolsD生成VXD框架,采用vc++进行代码的添加及编译,调试工具采用了SoftlCE。智能节点的开发主要包括LonWorks核心控制模块、3TC热电偶模块、4RTD热电阻模块、8AI模拟量输入模块、8AO模拟量输出模块、8DI数字量输入模块、8DO数字量输出模块、脉冲量计数模块、继电器输出模块等。限于篇幅,各个节点不能一一介绍,主要以FBLon.4RTD热电阻模块的开发过程为例,简要介绍智能节点的开发过程。3.2热电阻智能节点的开发3.2.1热电阻模块的功能需求温度是工业生产中的重要参数,在食品加工、化工、冶金、采矿、火力发电等各种工业现场都需要对温度进行测量和控制。80年代以前,我国对温度的测量显示大多使用动圈式仪表。这类仪表由于分辨率低,抗震性差以及存在视差和读数误差等缺点往往不能胜任对温度测量要求准确的场合。而现在热电阻、热电偶由于具有准确、稳定、可靠及价廉等优点已经在需要对温度进行检测和控制的工业现场得到了广泛的应用。热电阻测温是基于金属导体的电阻值随温度的增加而增加这一特性来进行温度测量的。热电阻大都由纯金属材料制成,目前应用最多的是铂和铜,此外,现在己开始采用甸、镍、锰和铑等材料制造热电阻。热电阻是中低温区最常用的一种温度检测器。它的主要特点是测量精度高,性能稳定。其中铂热电阻的测量精确度是最高的,它不仅广泛应用于工业测温,而且被制成标准的基准仪。因此,设计并开发热电阻温度测量模块具有很大的现时意义以及很广阔的市场前景。铂热电阻的温度特性:第3I页 山东大学硕士学位论文(1)在0~850℃范围内:Rt2‰(1+彳H研‘)(2)在一200~0℃范围内:R=Rol+At+Bt2+c(f~loo)t3】式中A、B、C的系数各为:A=3.90802X101C,B=-5.802X10‘7C,C=一4.27350X10。2C。铜热电阻的温度特性:在一50~150℃范围内:R=Ro(1+At+Bf。+Cf3)式中A=4.28899×lO。3C一;B一2.133X10一C2;C=I.233Xi01C。电阻阻值与温度的分度关系由上面的式子决定。而热电阻的温度与阻值的对应关系早已经在分度手册中被标准化。被测温度的变化是直接通过热电阻阻值的变化来测量的,因此,热电阻体的引出线等各种导线电阻的变化会给温度测量带来影响。热电阻一般有三种接法:二线制、三线制以及四线制。为消除引线电阻的影响同般采用三线制或四线制。3.2.1.1二线制V+一AINlAIN2图3.2热电阻二线制接线法第32页 山东大学硕士学位论文如图3.2,在二线制接法中,r表示导线电阻,n=(R+2r)1%=0n一%=IR+2Ir由此可见,在二线制接法中,理论误差为2Ir,在现场离中心控制室越远的场合,误差就越大。因此,二线制接线法智能用于一些测量精度不高的场合。3.2.1.2三线制V+V-+图3.3热电阻三线制接线法如图3.3,在三线制接法中圪=(R+r)I+2Ir%=Ir+2It■一%=IR由此可见,在三线制接法中r表示导线电阻理论误差为零。第33页AINlAIN2 山东大学硕士学位论文3.2.1.3四线制1nAINlAIN2幽3.4热电阻四线制接线法如上图,在四线制接法中,r表示导线电阻,■=(R+r)1%=/r圪一%=/R由此可见,在四线制接法中,理论误差也为零。但是四线制接法在现场离中心控制室比较远的情况下布线成本比较高。因此综合成本与测量精度等因素,工业现场一般都采用了三线制接线法。在本课题设计的FBLon-4RTD热电阻智能节点中可以通过跳线选择二线制、三线制或者四线制接法,极大地增强了其灵活性,可满足不同应用场合。如下面的测量电路图所示,当采用三线制时,现场端引来的输入信号接至RTDlB、RTDlC、RTDlD。JPl的2、3脚相连,JP2的1、2脚相连,这样,就通过选通MAX355的第一个通道来引入三限制接法中需要的两个恒流源,而这个恒流由ADSl216的恒流源输出引脚提供,并且电流大小可通过对ADSl216编程来设置。当采用四线制时,JPl的1、2脚相连,同样由ADSl216通过MAX355提供四线制中的恒流源。第34页 山东大学硕士学位论文3.2.2FBLon-4RTD热电阻模块的一般特点1.采用ADAM模块结构,能同时测量4路热电阻信号,如PtlO、Ptl00、Cu50、Cul00等。2.通过跳线器选择二线制、三线制、四线制恒流源输入方式。3.通过组态软件配置测量信息,如热电阻型号选择、测量范围、上下报警点等。4.智能节点上的TMPN3150神经元芯片根据配置的信息实现自动测量。5.采用24位△一∑模数转换器ADSl216进行热电阻信号的测量,精度高,内置恒流源和PGA,可直接输入传感器信号。6.具有低通滤波、过压保护及断线识别功能。7_丰中经元芯片与模拟信号测量之间采用光电隔离,抗干扰能力强。8.可安装于测量现场,通过Lon总线的78kbps自由拓扑双绞线收发器FTT—10A将测量信息传送到监控计算机,方便地构成智能分布系统(SDS)。3.2.3硬件构成该智能节点以日本TOSHIBA公司生产的Neuron芯片TMPN315081AF为核心,配以美国Echelon公司生产的78kbps双绞线收发器FTT-10A、Dallas公司的低电压监测器DSl233,MAXIM公司的MAX355高性能模拟开关、BB公司的高精度24位A一∑模数转换器ADSl216、光电隔离器PS2501、DC-DC电源模块等组成,其硬件构成框图如图3.5所示。第35页 山东大学硕士学位论文光莞电谣一^rN30(3UT雠^^¨3贰面嚣1(31~i]l,74|C3,1广恿l1>J持L一——-Z—../¨+杖l曲It。。嚣盯怛l囱。Xl13∞M●5^Dl—J拔^I’甘⋯‘。瑚={蛆纠一蠹“HⅢo丽JH一。图3.5热电阻温度测量智能节点硬件框图在上图中,通过MAC处理器的CPO、CPl、CLK2与FTT一10A双绞线收发器互连组成LON总线,网络处理器处理网络变量、地址、认证、后台诊断、软件定时器、网络管理和路由等进程,应用处理器与一般处理器相同,通过其三总线扩展一片AT29C512EEPROM,用以存放LON网络操作系统并下载用户程序。Neuron芯片可以方便地使用SPI接口与外部器件如A/D转换器、显示驱动器等接口,SPI接口由Neuron芯片固件所支持的NeurowireI/O对象来实现,108是时钟信号,109是串行数据输出信号,1010是串行数据输入信号,而片选信号可以在100--107之间任意选择定义。Neuron芯片利用SPI接口选择ADSl216某一路热电阻通道、启动A/D转换器并读取A/D转换结果。为了抗干扰,神经元芯片的输入输出口与测量电路之间采用了光电隔离措旖。3.2.4ADSl216在FBLon-4RTD中的应用ADSl216是BB公司的8通道,24位△一∑模拟/数字转换器,其主要特点第36页 山东大学硕士学位论文·24位无遗漏码●O.0015%积分非线性误差●22位有效分辨率(PGA=1),19位有效分辨率(PGA=128)·PGA增益从1至128可选●单周期设置模式●可编程数据输出,速率可达lkHz●25V/2.5V片内基准电压●1V至2.5V片外差分基准电压●片内校准●SPI⋯兼容●工作电压2.7V至5.25V●#include#defineMSG_CONFIGDATAOxFO#defineMSG_REQUEST0xFlmsg_tagbind_info(nonbind)TAG_OUT;//定义消息标签,不需要绑定eepromunsignedintRTD』pe;unsignedinttemperature[4J;//由A/D转换数据所得出的温度测量结果when(msg_arrives){switch(msg._in.data[1]){,,判断命令标志caseMSG_CONFIGDATA:RTD_type=msg__in.data[4];//断电复位后上位机所配置的热电阻型号不丢失break;caseMSG_REQUEST:msgout.tag=TAG_OUT;,,设置消息标签msg_out.code=0;,,设置消息代码memcpy(msg._out.data,temperature,size,of(temperature));//设置要传送到上位机的数据msg_out.dastaddr.bcast.type=BROADCAST;,,采用显式寻址的广播方式msg__out.dest_.addr.beast.domain=O;//设置域索引,只有一个域所以设为0msg_out.destaddr.bcast.backlog=0;,,信道预计将产生应答以及响应的数量msg._out.dest_addr.bcast.rpt__timer=l;//设置非应答重发定时器msg_out.dest_addr.bcast.retry=1://设置重发次数msg_out.dest_addr.bcast.tx_timer=1;//设置发送定时器索引msg_out.dest_addr.bcast.subnet--0;//设置子网ID(0表示对整个域广播)msg_sendO;//发送显式消息第45页 山东大学硕士学位论文break;)LonWorksISA/PCI智能网络适配器与FBLon--4RTD热电阻温度测量智能节点还有其他节点一起组成LonWorks测控网络。LonWorksISA/PCI智能网络适配器上也有一个FTT一10A,通过双绞线与节点互连。适配器的低位与底层节点是对等的,但涉及的内容比较多,所以单独放在下一章进行介绍。3.3带有MlP接口的智能节点的设计内部集成了三个处理器的Neuron芯片功能是非常强大的,能很好地满足绝大多数应用的需要。但是,Neuron芯片又是一个8位的CPU,同时最高工作频率是20MHz,所以在一些实时性要求特别高并且需要处理复杂算法的节点应用中,单靠Neuron芯片已经有些力不从心。这时需要采用基于主机的节点,在这类节点中,Neuron芯片只是作为通信协处理器,而算法的处理等则需要由主机来执行。这里的主机可以是PC机以及其他的任何微处理器和为控制器。Neuron芯片的微处理器接口程序MIP(MicroprocessorInterfaceProgram)为Nemon芯片与其他微处理器连接提供了一种简单的方式。MIP在不同的配置下可以支持多种不同的接口方式,如中断、双端口RAM和轮询等。网络接口是LonWorks网络与主处理器之间通讯的一类设备。使用MIP方式也可以方便的开发网络接口,扩展LonWorks网络的功能。MIP是将Neuron芯片转换为通信协处理器的一种固件。MIP将LonTalk协议的上层转到主机来执行。MIP接口的硬件电路是通过Neuron芯片的并行I,O接口来实现的。Neuron芯片的并行I/O对象允许以最高3.3Mb/s的速率进行双向数据传送,其物理接口通过通过Neuron芯片的11个I/O引脚完成。应用在并行I/O状态下的Neruon芯片不再提供其他的I/O对象来处理物理接口。Neuron芯片的固件可提供令牌传递和握手协议来实现彼此间的同步和防止总线竞争现象的发生。同时为了增加设计的灵活性,Neuron芯片提供了集中并行丑『o对象的操作簟.6页 山东大学硕士学位论文方式:Master、SlaveA和SlaveB方式,每种方式可用于不同的功能。主方式是并行UO对象的智能方式。在这种方式下Neuron芯片控制它本身于其从处理器之间的握手协议。在SlaveA方式中Neuron芯片是在主处理器的控制下工作的。对于主处理器来说,Neuron芯片只是一个含8位数据位和3个控制位的并行I/O设备。SlaveB方式的操作逻辑与SlaveA方式相同,但在握手过程和数据总线控制方面进行了特别的设计以适用于微处理器总线环境。Neuron芯片对主处理器来说是作为一个内存映象的I/O设备。这在其他微处理器或微控制器与Neuron芯片的应用接口及在同一个数据总线上有多个从处理器时是非常有用的。由于开发MIP节点需要专用的软件开发包,因此MIP节点的开发不再详细叙述。3.4智能节点的软件设计3.5.1系统功能分解和节点功能定义现场总线控制网络的最大特点是将过去传统的、集中在中央控制系统上的控制功能分散下放到现场设备中,从而实现现场控制。为了组建一个基于实时分布式LonWorks技术的控制网络,必须劲力将一个庞大复杂的控制任务分成较小的简单的子任务,并将控制处理过程和信息的输入/输出完全分布到相应的现场控制器中,以避免集中控制。图3.9所示定义了~个控制系统并将它划分为子任务的过程。该过程充分体现了LonWorks分布式控制网络的优点。该过程表明:无论实时分布式控制网络是简单还是复杂,对分布在现场的智能节点的研制过程,其步骤如下:·定义控制系统的完整控制策略;·将控制系统划分成能分布在现场的独立功能模块或子任务;·定制与各子任务相一致的智能节点:·定义各节点间的相互作用及所需共享的数据;·为每个节点所承担的子任务编写NeuronC程序;第47页 山东大学硕士学位论文·通过LonBuilder下载或通过烧录方式,将应用程序置入各节点的FLASH或EPROM存储器中;·分别对单个节点和整个系统进行调试和测试:·在现场安装节点并测试其行为:·维护系统的硬件和软件。3.5.2软件设计的方法和过程用NeuronC语言进行软件设计一般分为下面几步:1.定义FO对象:定义何种I/0对象与具体的硬件有关。在定义I/O对象时,还可以设置FO对象的工作参数以及对其进行初始化。2.定义定时器对象:并不是所有的应用程序都须定义定时器对象,一般定时器对象用于那些周期性执行某种操作的情况,或需要进行延时的情况。在一个应用程序中最多可同时定义15个定时器对象(秒和毫秒定时器)。3.定义网络变量和显式消息:网络变量和显式消息是节点与节点之间交换信息的重要工具,是在LonWorks网络上传递的数据包。如果没有网络变量和显式消息,节点就是一个孤立的节点,而系统也就不能成为分布式控制网络了。如果要考虑系统的开放性,就不能使用显式消息,因为它是与应用有关的。如果不存在开放型问题,即系统是封闭的,使用显式消息可以提高网络的数据传输能力,改善系统的性能。4.定义任务:任务就是对事件的反应,即当某事件发生时,应用程序应执行何种操作。任务既可以是对哟对象的反应,也可以是对网络变量和显式消息的反应,还可以是对用户自定义的某种情况的反应。任务是NeuronC实现事件驱动的途径。5.完成用户自定义的其他函数:可以在NeuronC程序中编写自定义的函数,以完成一些经常要用的功能。和ANSIC不同,NeuronC必须要写函数原型。还可以将一些常用的函数放到头文件中,以供程序调用。第柚页 坐壅盔兰堡主堂堡垒壅●-—___—_-——l__——__-——l-______——●_—_—●●_————————————一一图3.8基于LonWorks网络的控制系统分解第49页 山东大学硕士学位论文第四章LonWorksISA/PCI智能网络适配器的开发4.1智能网络适配器的功能需求和基本结构网络和通信技术的发展、高性能多处理器芯片的出现、软件开发和集成技术的支持,引起了自动化系统结构的变革,为低成本工业控制网络的研究和设计提供了强有力的开发手段,使信息交换沟通的领域正在迅速覆盖从工厂的现场设备层到控制、管理的各个层次,逐步形成以网络集成自动化系统为基础的企业信息系统。Lon№rks作为一种具有较高性能价格比、满足分布式控制要求的现场总线技术,为现场智能节点的互连、构件分布式控制网络、实现信息资源的共享提供了支持和便利。为了扩展LonWorks的监控和管理功能,作为一种面向控制的网络结构,可将其与PC机连接以便于监视和操作。虽然可采用相应的转换装置直接与Pc机的串口相连,但这种方式的数据通信速率太低,实时性要求较差。因此,要满足现场众多智能节点与Pc机之间批量实时数据的通信要求,采用智能网络适配器这种接口无疑是良好的选择。它作为一般的通信节点既可以实现与总线上挂接的所有智能节点实现双向的数据通信,有可以快速与Pc机进行数据交换,实现复杂数据处理和高级监控功能。现场总线控制网络与监控用PC机相连要有适配接口的支持,尤其对十分强调通信实时性的控制领域更是如此,随着采样数据量的增大及信息处理任务的增加,对数据传输的要求也越来越高。如果没有能够实现高速传送数据的接口,极易在数据传送时造成瓶颈堵塞现象,从而影响整个系统对数据的处理能力。为保证数据的实时、可靠传输,设计一个功能齐全的智能网络适配器是十分重要的。4.1.1功能需求首先,智能网络适配器作为一个特殊的网络节点,应能与LonWorks总线上簟鲐页 所有分布在现场的智能节点进行对等的数据通信,起到“上传下达”的桥梁作用。当现场有数据送到网上后,智能网络适配器要负责把所有发送给它的信息接收下来,并立即转发给PC机进行监视和处理;当PC机有监控命令或所设参数需要下达时,智能网络适配器也应实现转发功能,及时准确地将PC机的信息发送给分布在现场的各个智能节点。同时,为减轻Pc机的部分数据处理任务,提高系统实时性,智能网络适配器也应提供对部分通信数据的打包、拆包和整理等功能。4.1.2基本结构智能网络适配器是控制网络与监控用PC机相互连接的适配接口,是实现分布系统信息收集、数据处理、现场智能节点动作控制等功能的枢纽,在通信过程中起着关键作用。当然,要实现这些功能,智能网络适配器的设计要以Neuron芯片为核心,用来加强和改善通信管理,节省占有PC机的时间:利用曼彻斯特编码方式的收发器,实现与网上各智能节点之间的双向数据通信;用双1:3RAM充当通信过程中现场信息的接收、发送缓冲区,完成最近发送到达的交换数据的存储转发功能,实现网络与Pc机之间的数据传递,缓解和避免系统缓冲的紧张和瓶颈的产生,保证数据的实时畅通;用非易失性存储器FLASH存放LonTa]k协议固件、多任务调度程序、网络适配器通信管理程序以及网络配置信息。下图所示是智能网络适配器连接的示意图。图4.1智能网络适配器连接示意图纂5l更P呈总线 山东大学硕士学位论文4.1.3设计目标智能网络适配器的设计目标主要是遵循LonWorks总线规范,按照全分布式系统的要求,采用对等的通信控制方式;网络接El电路采用双口RAM作为数据通信的缓冲区,以实现网络数据的并行高速传输;符合Pc机的ISA或PCI总线标准,使智能网络适配器以标准模板的形式之间插入Pc机的扩展槽中;提供配套的通信管理和网络驱动软件,使其在实现通信任务的同时,完美解决好与其他监控软件平台的动态数据交换功能。4.2ISA智能网络适配器的开发4.2.1系统组成LonWorksISA智能网络适配器是一个智能通讯接口板,板内带有TMPN3150BIAF。板上带有FLASH存储器、数据存储器(sRAM),地址译码与中断信号控制逻辑电路EPM7128SLC84-15、共享存储器双口RAM(ITD7130)、自由拓扑双绞线收发器FTT-IOA等部分组成。可独立完成通讯工作。板内监控程序控制LON总线数据的接收、发送及处理,采用双口RAM与PC机进行通讯,可以方便地构成分布式控制系统。要实现PC机和LON总线之间的数据传送,必须在Pc机和适配器上的3150之间建立起双向的数据交换通道。通过ISA总线实现单片机系统与主机之间交换数据有以下两种实现方法:一是静态数据传送,这种方法采用并行接口器件(如8255)或锁存器(如74HC373)等构成一字节深度的FIFO。该方法较为简单,但一次传输的数据量小,因而只适应数据量小、速度要求不高的场合:二是共用单片机系统的外部数据存储器。此时可直接采用双口RAM或用通用RAM加上一些控制逻辑组成双口RAM电路。双口R删是一种性能优良的快速通信器件,适用于多CPU分布式系统及高速数字系统。它提供了两路完全独立的端口,每个端口都有完整的地址、数据和控制线。对器件的使用者而言,它与一般RAM簟敬页 并无大的区别,只有在两边同时读写同一地址单元时,才发生争用现象。利用双口RAM提供的指示信号,采用适当的通信规则就可避免争用,以实现快速数据的交换。集成双口RAM不仅易于实现,而且价格也不高。在本系统的设计中,适配器对双口R删的容量要求并不大,故可选用11)T7130、IDT7132、If)T71321等。本卡选用lKx8位的带忙信号/BUSY的IDT7130。IDT7130是IDT公司出品的DPRAM(Dual—PortRAM:双口RAM),存储空间为1Kx8位,为适配卡上的CPU与Pc机交换数据提供共享存储器。由于设计要求尽量减少占用上位机的时间,因此选择双口RAM,适配卡上的CPU和Pc机可对双口RAM的相同存储单元进行操作。适配卡与Pc机之间的数据通信采用内存映射的存储器寻址方式,在主机空闲和需发送数据时,查询是否有数据接收到或将发送的数据放入DPRAM中,并置标志位,这样主机基本不参与底层网络通信。双口RAM的地址选择在高端内存块中,一般该内存段分配给一些常驻程序和辅助设备驱动程序。在本设计中采用拨码开关来设置双口RAM的地址空间,LonWorksISA智能网络适配器插入计算机ISA扩展槽之前,先查出640K—lM范围内地址空间的占用情况,以免和已安装的其他外部设备形成设备冲突。图4.2LonWorksISA智能网络适配器系统组成示意图第53页总线 山东大学硕士学位论文双口RAM通信方式的关键是处理好争用现象,避免因此而产生的读写错误。IDT7130能够提供硬件判优方式,并可利用/BUSY引脚的信号来提高系统的灵活性。在下图的硬件电路中,由于IDT7130内含硬件判优电路且两边端口都有/BUSY引脚。因此为两端口争用同一地址单元时,其片内硬件电路可根据两边的地址、片选以及读写信号到达的先后顺序来裁决哪个端口有使用权。EPM7128SLC84—15是ALTERA公司的MAX7000系列芯片的一种。该芯片基于该公司的第二代MAX(MultipleArrayMatrix)结构,采用先进的CMOSEEPROM技术,内含2500逻辑门和128个宏单元,同时该芯片满足IEEEl149JTAG(JointTestActionGroup联合测试行动小组)技术规范,具有ISP(在系统可编程)的特性,通过对其逻辑和功能进行设计,可简化LON网卡的设计,提供系统的可靠性。缩小板卡的尺寸,而且可以方便的重组功能,有利于该板卡的功能扩展。在LonWorksISA智能网络适配器设计中,EPM7128S主要完成中断逻辑控制、双口RAM和数据缓冲存储器等的地址译码、邮箱锁地址译码等功能等功能。4.2.2工作原理Neuron芯片有16根地址线,共可寻址64K地址空间,芯片内部存储器空间6K,片外最多可扩展58K。Neuron芯片片内有2KRAM,但是由于在编制大规模的程序时内部R删有可能不够用,因此在板卡内扩展了24K的RAM。另外32K的FLASH存储器用来存储Neuron芯片的固件以及用户的应用程序。LonWorksISA智能适配器板内存储空间分配如下所示(Neruon芯片侧地址):Flash(29C512)0000H~7FFFH(32K)SRAM(62256)8000H~DFFFH(24K)DPRAM(IDT7130)E000H~E7FFH(2K)而双口RAM在PC机侧地址:DOOOOH~D03FFH(1K)在该适配器中,译码功能是由EPM7128来实现的,Neuron芯片侧译码方程如下所示:①29C512片选信号:FO=A15②62256片选信号:FI=/A15+A14*A13簟H翼 山东大学硕士学位论文③IDT7130片选信号:/F2=A15*A14*A13*/A12./A1l或者F2=/A15+/A14+/A13+A12+Al1在电路设计中,为了防止IDT7130的两个端口同时被读写而引起数据破坏或丢失,根据Neuron芯片只有同步工作方式而Pc机允许异步工作方式的特点,从双口RAM提供的BUSYL、BUSYR以及,Aq、,Ⅳ%两种仲裁方式中,选取BusY,、BUSYR线作为避免冲突解决的方案,在该方式下,当一方正在访问双口RAM时,会使另一方的BUSY信号变低,以禁止另一方的访问,从而可以避免冲突。由于该方式主要适用于具有异步工作方式的处理器,因此在对双方同时访问双口RAM的冲突进行处理时,实际设计的控制电路在仲裁过程中,优先满足Neuron芯片的访问请求;而让具有异步工作方式的Pc机自动插入若干等待周期,主动推迟对双口RAM的访问。双口RAMIDT7130负责PC机与LonWorks智能网络适配器之间的数据通讯,由上位Pc机监控软件发送的指令,经FPGAEPM7128接收并译码后产生相应的地址译码信号和控制信号,通过这些信号选通双口RAM并将控制信息和数据放到双口RAM的对应单元,3150查询双口RAM中的数据,判断其命令标志,进行相应的操作,如存储器查询、节点数据查询。当节点接收到命令之后通过LonWorks总线向上位机发送检测到的现场数据,适配器上的3150将通过FTT—IOA接收到的节点数据放入双口RAM中。在Pc机监控软件从双口RAM中采集数据,然后再进行后续处理(显示,打印,报表等)。适配卡与Pc机之间的数据通信采用内存映射的存储器寻址方式,适配卡上的CPU和PC机可对双口RAid的相同存储单元进行操作。在DOS操作系统下,各应用程序工作在实地址模式下,应用程序对系统的硬件地址的映射是采用实地址模式,即采用分段管理,段地址加偏移量构成硬件的物理地址。在DOS下,应用程序可以直接对硬件进行操作。80286(24条地址线)以上的芯片都有两种工作方式:实地址模式和保护虚地址方式。实地址方式是为了与8086兼容而设计的。这时,具有32条地址的80386仍只能寻址1M地址空间的物理内存,功能受到了极大的限制。而在保护虚地址方式下,80386的强大功能才得以充分的发挥,用户程序的虚地址控件可为16K个段,每个段的地址空间为4G字节;在保护方式下,80386提供了4个特权等级,操作系统、系统程序和用户程序第55页 山东大学硕士学位论文可以在不同的特权等级下运行大大加强了系统的安全性;80386还提供了任务切换机制,为多用户、多任务操作系统提供了直接支持;另外80386在保护方式下还提供了虚拟8086方式,为多用户多任务系统中的DOS仿真提供了直接支持。由于Windows对系统底层操作采取了屏蔽的策略,因而对用户而言,系统变得更为安全,但这却给众多的硬件或者系统软件开发人员带来了不小的困难,因为只要应用中涉及到底层的操作,开发人员就不得不深入到Windows的内核去编写属于系统级的虚拟设备驱动程序。Win98与Win95设备驱动程序的机理不尽相同,Win98不仅支持与WindOW$NT5.0兼容的WDM(Win32DriverMode)模式驱动程序,而且还支持与Win95兼容的虚拟设备驱动程序VxD(VirtualDeviceDfiveO。本设计在Windows98操作系统下,采用双口RAM实现PC机与LonWorks智能网络适配器之间的数据交换,需要开发相应的驱动程序来对共享内存进行操作。驱动程序开发过程放在下面的部分介绍。在本ISA适配器设计中,由于双口RAM在PC侧的地址是静态的,在程序运行过程中不会发生改变,因此开发了虚拟设备驱动程序MAPDEV.VXD,将PC机一侧的物理地址D000:0000转换为线性地址,这样当用户要开发Windows环境下的监控程序时,可以直接使用此线性地址来访问双口RAM,实现监控程序与底层节点的数据交换。上电复位后3150处在监控状态,下传数据时,监控程序首先调用虚拟设备驱动程序MAPDEV.VXD得到双口RAM映射空间的线性地址,然后将下传数据写入双口RAM,放入其指定的发送缓冲器去。3150监控程序把上位机发送到双口RAM的数据通过FTT一10A把接收到的数据发送到总线上,信息的传送同样采用了显式消息的广播发送方式,网络中的所有节点都会收到此信息。在此信息中包含了一个节点号,只用预设节点号与此节点号相同的节点才会处理数据,判断是配置信息或者是数据信息,并作出相应的反应。若节点号不同则丢弃数据。显式消息的长度是可变的,并且最长有效数据可以达到228个字节。上传数据时,底层节点将检测到的现场状态等信息通过节点上的收发器FTT-10A发送到LonWorks网络上。3150运行监控程序,通过适配器上的FTT一10A接收来自LonWorks网络上的信息,在监控程序中将下位机发来的数据信息存放第56页 到双口RAMtDT7130中,上位机监控软件加载虚拟设备驱动程序MAPDEV.VXD,得到能直接访问双口RAM的线性地址,利用此线性地址查询双口RAM中固定接收缓冲区的数据,然后进行显示、监控、存档、打印等处理。4.2.3lsA智能网络适配器虚拟设备驱动程序4.2.3.1虚拟设备驱动程序VxO概述LonWorksISA/PCI智能网络适配器与PC机之间的数据通信采用内存映射的存储器寻址方式,适配器上的3150和PC机可对双口Rhdv[的相同存储单元进行操作。在DOS操作系统下,各应用程序工作在实地址模式下,应用程序对系统的硬件地址的映射是采用实地址模式,即采用分段管理,段地址加偏移量构成硬件的物理地址。在DOS下,应用程序可以直接对硬件进行操作。在IBMPCXT时代,PC机采用8088准16位CPU,可寻址IM地址空间:IBMPCAT机时代,PC机采用16位的80286CPU,80286具有24条地址线,可寻址16M地址空间;而且从80286以上的CPU都有两种工作方式:实地址模式和保护虚地址方式。实地址方式是为了与8086兼容而设计的。80386是真正的32位CPU,具有32条地址线,直接寻址能力可以达到寻址4GB。在实地址模式下,具有32条地址的80386仍只能寻址1M地址空间的物理内存,功能受到了极大的限制。而只有在保护虚地址方式下,80386的强大功能才得以充分的发挥,用户程序的虚地址空间可为16K个段,每个段的地址空间为4GB(1GB=23(1B)字节,在保护方式下,80386提供了4个特权等级,操作系统、系统程序和用户程序可以在不同的特权等级下运行大大加强了系统的安全性:80386还提供了任务切换机制,为多用户、多任务操作系统提供了直接支持;另外80386在保护方式下还提供了虚拟8086方式,为多用户多任务系统中的DOS仿真提供了直接支持。Microsoft公司推出的桌面操作系统Windows9x,从技术层面来看它是为发挥32位处理优越性能而设计的一个32位操作系统。而它出色的稳定性,强大的寻址能力,无不归功于对32位处理保护模式的充分应用。具体来讲,它利用了80386及其以后的CPIJ的保护机制,从操作系统到一般应用程序分别分到簟57页 山东大学硕士学位论文4个特权层上,操作系统享有最高的优先级,被安排在ring一0上运行,而优先级最低的普通应用程序被安排在ring一3上运行。这样做的好处是如果一般的应用程序在ring一3上崩溃将不会影响到ring一0的操作系统,另一方面也是对在ring一3上的应用程序所能访问到的资源做了一定的限制,从而大大降低了因应用程序直接操作而产生的意外错误。换句话说,在Windows9x下,应用程序不能像在实模式下可以随意操作硬件资源,而需要通过编写运行在内核模式(ring一0)的虚拟设备驱动程序(virtualdevicedriver)才能达到目的。因此,在Windows9X下如何高效编写硬件设备驱动程序是微机应用开发中需要迫切解决的问题。由于Windows对系统底层操作采取了屏蔽的策略,因而对用户而言,系统变得更为安全,但这却给众多的硬件或者系统软件开发人员带来了不小的困难,因为只要应用中涉及到底层的操作,开发人员就不得不深入到WindOWS的内核去编写属于系统级的虚拟设备驱动程序。Win98与Win95设备驱动程序的机理不尽相同,Win98不仅支持与WindowsNT5.0兼容的WDM(Win32DriverMode)模式驱动程序,而且还支持与Win95兼容的虚拟设备驱动程序VxD(VirmmDeviceDrive0。本设计在Windows98操作系统下,采用共享内存实现PC机与LON网络适配器之间的数据交换,需要开发相应的驱动程序来对共享内存进行操作。VxD是VirtualDeviceDriver的缩写,是Microsoft公司提倡的新一代物理设备驱动程序。它运行在系统保护层(ring0层)下,可以完成各种各样的系统物理层的访问。VxD模式起源于Windows3.1时代,一直到现在,它仍然在W'mdows95/98/Me操作系统中起主导作用。WDM是W1m32DriverModel的缩写,是Microsoft公司力推的全新的驱动程序模式,它的运行平台是Windows98,Me,N1’,2000操作系统,在不久的将来,WDM将成为主流的驱动模式。在本课题中,LonWorksIsA/PCI智能网络适配器的驱动程序,主要开发了其VxD。VxD可以随V删一起静态安装,也可以根据请求动态安装,一般对于即插即用的PCI设备,往往采用VxD的动态安装,因为静态安装是在Windows初始化时就安装VxD,并将其一直保留在1】『indows中。那么如果某个VxD只是为某摹50页 山东大学硕士学位论文些特定的应用程序提供服务,当其不用时,它所占用的内存就浪费了。动态安装的VxD并不在Windows初始化时就自动加载,而是在一个应用程序或其他VxD控制下安装和卸载。对于即插即用的VxD必须采用动态安装,因为Windows支持硬件在运行时进行删除和重新配置,支持这种硬件的VxD就可以在任何需要时安装和卸载。动态安装的VxD和设备驱动程序一样也只被一个特定的应用程序所用。当这个应用程序需要使用这个设备时就安装VxD,通过Createfile()进行动态加载。当应用程序完成时,VxD就被动态卸载,调用CloseHandle0动态卸载该VxD。开发设备驱动程序需要有专门的开发工具,目前应用广泛的工具主要有两大类:一类是Microsoft公司提供的WindowsDDK(DeviceDriverKit)。它有Windows98DDK和Windows2000DDK两个版本。Windows98DDK能够开发Windows95/98/Me/biT下的VxD和WDM,Windows2000DDK能够开发Windows98/Me/NT/2000下的WDM。另一类是Numega公司提供的VtoolsD开发工具包。VtoolsD提供了对VxD编程的c/C++类库支持,利用VtoolsD中的QuickVxD工具可以快速生成VxD的C/C++代码框架,开发者可以在此基础上添加自己的代码。相比较而言,使用VtoolsD开发包要比使用DDK简单、快捷。在本课题中就采用了VtoolsD开发VxD,下面就对VtoolsD作简要介绍。QuickVxD利用VtoolsD封装的c++类库快速创建VxD程序代码框架,它提供了一个比较简单的可视化编程环境,通过它,开发者指只需要在VxD快速生成对话框中选择和定义所需VxD的基本特征即可自动生成VxD源程序框架。用QuickYxD可以自动生成三个类来处理可能的控制消息(ControlMessages),这三个类分别是:·DeviceClassDeviceClass代表虚拟设备驱动程序类。对VxD的大部分控制消息都由它的成员函数来处理,V86模式程序调用入口和保护模式程序调用入口亦在其中。·VMClassWlClass代表虚拟机类,一些特定的虚拟机控制消息由它的成员函数来处理。纂船页 山东大学硕士学位论文ThreadClass代表线程类,它用来处理系统中某些特定线程的控制消息。4.2,2.2lsA智能网络适配器VxDWindows工作在32位保护模式下,保护模式与实模式的根本区别在于CPU寻址方式上的不同,这也是Windows驱动程序设计中需要着重解决的问题。Windows采用了分段、分页机制,这样使应用程序产生一种错觉,好像程序中可以使用非常大的物理存储空间,这样做的好处就是一个程序可以很容易地在物理内存容量不一样、配置范围差别很大的计算机上运行,编程人员使用虚拟存储器可以写出比任何实际配置的物理存储器大得多的程序。每个虚拟地址由16位的段选择子和32位段偏移量组成。通过分段机制,系统由虚拟地址产生线性地址。再通过分页机制,由线性地址产生物理地址。硬件读取的是物理地址,但Windows应用程序读取的是线性地址,所以存在着将物理地址转化成线性地址的问题。而这个转换工作是由驱动程序来完成的。VxD在访问一个特殊的内存映射硬件之前,必须先配置页表,保证设备的物理地址与一个线性地址相联系。线性地址可以作为参数传送到ring3层应用程序中,在应用程序中作为指针来使用,直接访问硬件设备。对于ISA接口设备,地址是通过跳线选择的,这叫做静态配置。它的地址在整个Windows任务活动期间是保持不变的。在LonWorksISA智能网络适配器中使用的就是静态配置。然而,现在的许多PIlP设备(例如PCI、PCMCIA设备)在运行期间地址是可以重新配置的,这叫做动态配置。在LonWorksPCI智能网络适配器中使用的就是动态配置。对于静态配置的设备,Windows的VxD可以通过调用MapPhysToLine舡()函数获得设备内存的线性地址。LonWorksISA智能网络适配器中双口RAM采用了内存映射的存储器寻址方式,下面就是其虚拟设备驱动程序MAPDEV.VXD的源程序代码://lonada.htypedefstruct_MapDevRequest{PV01Dmdr_ybysiealAddress;//suppliedbycallerDWORDmdr_SizelnBytes;//suppliedbycallerPVOIDmdr_LinearAddress;//returnedbyVxD第卯页 山东大学硕士学位论文WORDmdrStatus;//MDR:xxxxCodebelow}MAPDEVREQUEST,’PMAPDEVREQUEST,#defineMDRSERVICEMAPcTLCODE(FILE_DEVICEUNKNOWN,2,METHOD#defineMDRSER、,ICEUNMAPCTLCODE(FILEDEVICEUNKNOWN,2.METHOD#defineMDRSTATUSSUCCESS1#defineMDRSTATUSERRoRONEITHER,FILEANY_ACCESS)NEITHER,FIL垦一Ⅳ(一CCESS)//LADRV.h.includefileforVxDLADRV#includedioc_lOCtlCode){caseDIOC_OPEN:caseDIOC_CLOSEHANDLE:break;ca∞MDILsERVICEMAP:pReq=+(PMAPDEVREQUEST+)pDIOCParams·>dioc_InBuf;pReq->mdr_LinearAddress=MapPhysToLinear(pReq->mdr_PhysicalAddress,pReq->mdrSizelnBytes,0);if(pReq->mdr_LinearAddress—NULL)pReq->mdrStatus=MDR—STATUS_ERROR;elsepReq->mdr_Status=MDR_STATUS_SUCCESS;break;第配页 山东大学硕士学位论文csseMDR_SERVICE_UNMAP:break;default:rctumERROR_INVALID—FUNCTION}returnDEVIOCTL-NOERROR;4.3PcI智能网络适配器的开发4.31PcI总线概述PCI(PeripheralComponentInterconnect,即外围部件互连)总线是一种能为主CPU及外设提供高性能数据总线的局部总线。1992年以INTEL为首的多家集团开始设计PCI总线,其V2.0规范于1993年4月正式发布。PCI总线具有严格的规范,这就保证了它具有良好的兼容性,符合PCI规范的扩展卡可以插入任何PCI系统可靠地工作:PCI总线具有先进的高性能32/64位地址数据复用局部总线,可同时支持多组外围设备,并且不受制于处理器,为中央处理器与高速外围设备提供一座沟通的桥梁,提高数据吞吐量(32位时最大可达132MB/s);PCI总线与CPU无关,与时钟频率亦无关,可适用于各种平台,支持多处理器和并发工作;PCI总线还具有良好的扩展性,通过PCI—PCI桥路,可允许无限制地扩展;PCI总线以它的即插即用特性取代了其他总线。PcI总线宽度32位,可升级到64位;最高工作频率33MHz,支持猝发工作方式,传输速度更高:低随机访问延迟(对从总线上的主控寄存器到从属寄存器的写访问延迟为60ns);处理器/内存子系统能力完全一致:隐含的中央仲裁器;多路复用体系结构减少了管脚数和PCI部件;给于ISA,EISA,MAC系统的PCI扩展板,减少了用户的开发成本。对PCI扩展卡及元件,能够自动配置,实现设备的即插即用;处理器独立,不依赖任何CPU,支持多种处理器及将来待开发的更高性能处理器:支持64位地址;多主控制允许任何PCI主设备和从设备之间进行对点访问;PCI提供数第∞页 山东大学硕士学位论文据和地址的奇偶校验功能,保证了数据的完整性和准确性。在一个PCI应用系统中,如果某设备取得了总线控制权,就称其为主设备;而被主设备选中以进行通信设备称为“从设备”或“目标设备”。对于相应的接口信号线,通常分为必备的和可选的两大类。PCI总线共有i00个引脚,如果只作为目标的设备,至少需要47条,如作为主设备则需要49条。利用这些信号便可处理数据,地址,实现控制,仲裁机系统功能。配置空间是PCI总线的~大特色。PCI的配置空间是长度为256字节的一段内存空间,前64个字节(头域)包含PCI接口的信息,可以通过它来访问PCI接口。剩下的192个字节是设备特定的。配置空间的头部被分成两部分,前16字节对于所有类型的设备或适配器定义都相同,剩下的48字节根据设备支持的基本功能不同而结构布局也不同。Pc机上电时,加电软件需要在启动设备之前建立恒定的地址映像,它需要决定系统中有多少内存以及系统中需要多少I/O控制器地址空间。决定之后POST软件把I/o控制器映射到适当的位置执行系统引导,使设备独立于映射,为此设立了基地址寄存器,基地址寄存器位于配置空间的预定义头域位置。所有基地址寄存器的0位只读,用来确定寄存器使映射到内存还是I/o空间。映射到内存空间的基地址寄存器必须在O位上返回0,映射到I/0空间的基地址寄存器必须在0位上返回l。在PC机上电期间,系统的BIOS发现有新的PCI设备产生时读取该PCI设备的配置需求后根据系统资源的情况给该PCI设备分配相应的资源。在PCI板卡上所扩展的存储器或者i/o控制器的映射地址空间的基地址就存放于配置空间的基地址寄存器中。利用该基地址就可以对扩展的存储器或者I/0控制器进行控制。4.3.1系统组成PCI总线是目前PC机上最先进的一种总线并且也是最有前途的一种总线。但由于PCI总线协议的复杂性,其接口的实现比ISA等总线要困难得多。目前实现PCI接口一般采用专用器件,有效方案分为两种:使用可编程逻辑器件和第“页 使用专用总线接口器件。采用可编程逻辑器件实现PCI接口比较灵活,可以利用的器件也比较多,但这种方法难度较大,设计周期较长。采用专用接口器件虽然不够灵活,但由于其对PCI协议良好的支持,以及提供给设计者的良好接口都大大减少了设计者的工作量。现有的PCI接口芯片主要有AMCC公司的AMCCS59xx系列和PLX公司的PCI905x系列以及CYPRESS公司的CY7C09449等。在LonWorksPCI智能网络适配器开发过程中,在综合考虑了成本、实时性、数据吞吐量的前提下,采用了PLX公司的PCI9052从模式接口芯片。下面就对PCI9052进行简要介绍。PCI9052是PLX公司继PCI9050之后为扩展适配板卡推出的低成本PCI总线从模式接口芯片,该芯片可与多种局部总线相连,并且可编程配置直接与复用或非复用的8、16、32位局部总线相连。PCI9052还直接提供了ISA接口模式,使ISA卡直接向PCI卡转换变得相当容易。PCI9052低功耗,PQFPl60pin封装,其主要特点如下:1.兼容PCI2.1协议规范,支持低开发成本的从模式适配器;2.支持直接从(目标)方式数据传送模式。这种方式指的是由PCI主设备发起数据传送,经过9052,直接访问局部总线。9052支持突发存储器映射和I/O映射方式在PCI总线和局部总线存取数据。包括一个64Byte的写FIFO和一个32Byte的读FIFO,通过读写FIFOs,可实现高性能的突发式数据传输。PCI总线总是工作在突发方式,局部总线可以设置成突发方式或者连续单周期方式。3.ISA模式支持PCI总线到ISA总线的单周期存储器(8位或16位)读写和I/O访问;4.支持两个来自局部总线的中断,可生成一个PCI中断,利用软件写内部寄存器位也可以达到同样的目的;5.PCI9052的局部总线与PCI总线的时钟相互独立运行,局部总线的时钟频率范围为0~40MHz,1vrL电平,PCI的时钟频率范围为0~33MHz。两种总线的异步运行方式方便了高低速设备的兼容。9052的缓冲时钟输出信号BCLKO可以串连一个50Q的电阻后直接与局部时钟输入第酗页 山东大学硕士学位论文LCLK相连。6.可编程的局部总线配置,支持复用或非复用模式的8、16或32位的局部总线;7.串行EEPROM接口提供PCI总线和局部总线的部分重要配置信息;8.4个局部设备片选信号,各设备的基址和地址范围及其映射可由串行EEPROM或主机编程实现;9.5个局部地址空间,基址和地址范围及其映射可由串行EEPROM或主机编程实现;10.支持Big/LittleEndian编码字节的转换;11局部总线等待状态,除了用于握手的等待信号LRDYi群外,PCI9052还有一个内部等待产生器(包括地址到数据周期、数据到数据周期和数据到地址周期的等待1:12.可编程实现读写信号选通的延迟和写周期的保持;13可对局部总线的预取计数器编程为O(非预取)、4、8、16或连续(预取计数器关闭)预取模式;14.PCI9052支持PCIr2.1规范的延迟读模式:15.PCI9052有一个可编程PCI读写重试延迟计时器,可以为PCI总线产生一个重试信号:16.PCI锁定机制,PCI主控设备可以通过锁定信号独占对PCI9052的访问17.总线驱动。所有的控制、地址、数据信号都由9052直接生成,用于驱动PCI和局部总线,不用额外的驱动电路。PCI9052接口芯片作为通用PCI接口,其应用场合和范围是广泛的。随着Pc机中ISA插槽数量的逐渐减少直至取消,PCI插槽已经成为Pc机主板配置的主流,今后的扩展板的开发必定是基于PCI接口的。第酯页 山东大学硕士学位论文兰竺2—习lEEPR渊l1.............._J图4.39052的信号定义PCI总线扩展槽的差别在于32位和64位,5v、3.3V及通用信号环境,在本系统的设计中,采用了32位、5v信号环境。在LonWorksPCI智能网络适配器与LonWorks网络的连接方式上,采用了同ISA适配器一样的设计思路,采用了自由拓扑双绞线收发器FTT—IOA,可以直接使用双绞线连接到LonWorks网络中,方便的构成分布式控制系统。同时采用了ALTERA公司的一片CPLD芯片EPM7064SLC44—10作为译码逻辑电路,其功能类似于ISA网卡中的EPM7128S。7064也是ALTERA公司MAX7000S系列CPLD芯片中的一种。要实现PCI总线和LonWorks网络之间的数据传送,必须在PCI总线和适配器上的3150之间建立起双向的数据交换通道,在本板卡的设计中,仍然采用了一片双口RAMIDT7130。使用PCI9052的LocalAddressSpace0扩展了双口RAM,使用9052的CSO#第67页甸日一一一雎~S.UU一一群雠誉瓣黼器譬m。l《旦£磊~瓣整攀盛 山东大学硕士学位论文LonWorks网络FI,ASHRAM●I‘非‘萝dIg。商lJ嗟I舀邑孽4iaI。●●——bEZ,oQg巴●mq日毒等’Ans¨,?墓山自I富——函●一q日,I孽J已I晷I盆司.凸,-_,双口删LJI州音盆l霸l删”。‘lUlpCl9o52l热JLJhJL鼍Jl‘~^J~jl目;盆8目l鼍l岛l目鑫寓●.1r,P,l●1日1,山1,一,I『PC机的PCI总线EEpROM图4.4LonWorksPCI智能网络适配器系统组成示意图第秘页 山东大学硕士学位论文作为IDT7130的片选信号,同时9052还提供了局部总线的读写选通信号RD#、WR#。如图所示,MODE接地表示局部总线(LocalBus)采用了非复用模式,LHOLD接地表示9052一直是局部总线的主控设备,掌握对局部总线的控制权,也就是说可以主动对双口RAM进行读或写。4.3.2工作原理在上电期间,PCI的RsT#信号将使PCI9052复位,作为回应9052将LRESET#变低并检查有无串行EEPROM。如果串行EEPROM存在并且前48bit不全l,则9052将从串行EEPROM中加载内部寄存器值。这些寄存器包括部分PCI配置寄存器以及所有的局部配置寄存器。这些局部配置寄存器包括可扩展的4个局部空间的基地址及范围、扩展ROM的基地址及范围、片选信号地址及范围、中断控制等。Pc机的系统软件就是根据这些内容来为板卡分配地址空间、I/O空间、中断等资源。在PC机上电期间,系统的BIOS发现有新的PCI设备产生,于是BIOS在读取了该新PCI设备的资源配置需求后根据系统资源的状况给该PCI板分配相应的资源。这些分配的资源信息就存放在9052的PCI配置寄存器中。9052的PCI配置寄存器如表4.1所示:PCI基地址寄存器0(地址10H)中存放的是局部配置寄存器内存映射的基地址,PCI基地址寄存器l(地址14H)中存放的是局部配置寄存器I,o映射的基地址。在由于在本适配器的设计中对9052来说只扩展了一片双口RAMIDT7130,它的内存映射的基地址存放在PCI基地址寄存器2中。这些资源都是BIOS在读取了该新PCI适配器的资源配置需求后根据系统资源的状况给该PCI适配器分配的。如果得到这些基地址,就可以利用内存方式或者I/O方式来访问9052的局部配置寄存器,或者利用内存方式来访问双口RAM,这样就可以与底层节点交换数据。第秘页 山东大学硕士学位论文表4.1PCI9052配置空间寄存器配置空3l16150间地址00H设备ID销售商ID04H状态命令08H类别码版本IDOCH不支持头域类型不支持Cache行大小10HPCI基地址寄存器0一存储器访问局部配置寄存器14HPCI基地址寄存器1一I/o访问局部配置寄存器18HPCI基地址寄存器2访问局部地址空间0lCHPCI基地址寄存器3访问局部地址空间120HPCI基地址寄存器4访问局部地址空间224HPCI基地址寄存器5访问局部地址空间328H不支持2CH子系统ID子系统销售商ID30HPCI扩展ROM基地址34H保留38H保留3CH不支持中断引脚中断线BIOS引导完毕后将计算机的控制权交给Windows9x操作系统,操作系统在初始化硬件设备期间,若发现有新设备就发出PNPNEWDEVNODE消息。此时VxD就可以利用专用函数获取设备的配置资源。在本课题中开发了LONDRV.VXD来获取配置资源,这里的配置资源指的就是PCI配置寄存器中的基地址寄存器0、l、2,其中基地址寄存器0、l是用来访问局部配置寄存器,而基地址寄存器2是用来访问双口RAM。有一点需要指出,这时获得的基地址是物理地址,丽用户上位机的Windows应用程序不能直接使用。因此在本课第为页 山东大学硕士学位论文题中,开发了一个虚拟设备驱动程序MEM.VXD来将物理地址转化为线形地址。在上位机程序中,用户可以直接使用线形地址来访问双口RAM,或者读写9052的局部配置寄存器。上电复位后3150处在监控状态,下传数据时,上位机软件把下传数据通过9052传送到双口RAM,过程是这样的:首先加载虚拟设备驱动程序LONDRV.VXD,利用它获得双口R脒所映射的内存空间的基地址,这个基地址是一个物理地址;其次动态夹在虚拟设备驱动程序MEM.VXD,将物理地址转换为线形地址。用户直接使用此线形地址来访问双口RAM。适配器上的3150运行监控程序,监控上位机发来的命令,把上位机发送到双口RAM的数据通过FTT一10A发送到LonWorks总线上,信息的传送同样采用了显式消息的广播发送方式。此显示消息中包含了~个节点号信息,网络中的每一个节点都收到消息,但是只有本身节点号跟显示消息中包含的节点号一致的节点才对消息进行处理,接收显示消息中的有效信息,判断是配置信息还是数据信息,并作出相应的反应。显式消息的长度是可变的,并且最长有效数据可以达到228个字节。上传数据时,底层节点也通过FTT—IOA利用显示消息将需要上传的信息采用广播发送的方式发送到LonWorks网络,例如,FBLon-4RTD节点将其检测到的现场的温度值,FBLon一8DI节点将开关的打开或闭合等数字信息发送到LonWorks网络。3150运行监控程序,通过FTT-IOA接收来自LonWorks网络上的信息,在监控程序中将下位机发来的数据信息存放到双口RAMIDT7130的对应接收缓冲区中,PC机上运行的Windows应用程序要对双口RAM进行操作,获得底层节点发送来的信息,当然也要首先通过加载LONDRV.VXD获得双口RAM地址映射的物理地址,然后再加载把M.v】(D将物理地址转化为线性地址。应用程序直接利用这个线形地址对双口RAM进行读取,查询双口RAM中的标志位,从双口RAM的固定单元取数据,然后进行相应的处理,由上位机监控软件进行显示、监控、存档、打印等处理。第7I页 山东大学硕士学位论文4.3.3Pcl智能网络适配器虚拟设备驱动程序4.4.3.1即插即用(PnP,PlugandPlay)原理即插即用(PIlP)是Micorsoft公司为了使新的硬件设备的安装和配置更加容易而采取的一种策略。在ISA板卡上,都有许多跳线和拨码开关,用户用它们来设置所需的各种计算机资源(如地址空间、中断号、DMA通道号等)以防止板卡之间的资源冲突,这样就对用户提出了比较高的要求,限制了PC机的使用。因此Pentium级处理器以上的PC机推出了由计算机自动配置各种资源的方法一即插即用。从而最大限度地避免了人工干预资源的配置,降低了对用户的要求,使得PC机的使用得到了极大的普及。所谓即插即用,其原理是在每块支持PnP的板卡上都有一组称为配置空间的寄存器,在这些寄存器中保存有板卡对系统资源的需求参数。当Windows操作系统启动时,其BIOS引导程序首先读出这些参数,然后综合每块板卡对资源的需求,统一对整个系统的资源进行分配,从而避免用户干预。为了BIOS引导程序能正确地对板卡所需的资源进行动态配置,其配置空间寄存器中存储的时物理空间大小等相对信息,而不是绝对的物理地址。一个即插即用的系统由三个部分组成:即插即用的BIOS、即插即用的硬件设备和即插即用的操作系统。即插即用设备必须能够识别他们自身,并申明它们的资源请求。同样,即插即用的BIOS必须能够接收和响应新的即插即用设备的资源需求。即插即用操作系统需要加载和配置即插即用的设备驱动程序,在不需要用户的干预下自动配置系统以适应硬件的变化,是系统中所有组成部分和谐地结合起来。在具有上述三个核心的部分的系统中,安装新的设备将如同把他们插入系统并打开电源一样容易。即插即用体系结构概括来说,有以下几个目的:使新设备的安装和配置更加容易;允许设备的热拔插,更改动态配置时不间断;与已经安装的基本及老式设别兼容;使操作系统和硬件相互独立;降低硬件的复杂性,增加其灵活性。即插即用既需要硬件支持(即设备可以自身识别并通过使用标准的软件接口来配置从而替代了传统的跳线配置或专有接口配置),也需要软件支持(一个第72页 山东大学硕士学位论文可以分配系统资源的操作系统)。即插即用的体系结构概括来说,有以下几个目的:(1)新设备的安装和配置更加容易(2)更改动态配置时不间断(3)与已经安装的老式设备相兼容(4)使操作系统和硬件相互独立(5)降低硬件的复杂性,增强其灵活性在即插即用系统中的所有配置管理是由配置管理器控制的。配置管理器生成三个主要的数据存储器:(1)设备节点(2)设备节点树(3)注册表设备节点树是配置管理器在内存中生成和保持的一种结构,存储了计算机中所有设备的配置信息。设备管理器使用它来为每一个设备配置合适的资源,如IRQ,I/O端口,内存空间甚至不可共享的资源如SCSI识别器。设备节点是设备节点树中的一个特殊项,它包含一个独一无二的设备标识符和一个资源需求表。设备标识符是一个描述设备的特殊字符串,用于标识设备元件,同时也用作注册表中的键,因此在系统范围内它是独一无二的,这样就能保证设备的安全检索。P11PVxD的动态安装是一个十分复杂的过程。当一个枚举器识别出一个特殊设备时,枚举器向配置管理器传递设备的ID号,并要求设备管理器为设备创建一个“devnode”(设备节点)。然后,配置管理器在注册表且配删【n4主键下,为设各建立一个ASCII码型的设备ID号硬件主键。这个硬件主键包括一个Driver值指向崩旺MS陪绝MCURREM℃D^口R0正舾蚴眦斟C埘豁下的software主键,该software主键包括一个Devloader值。配置管理器再根据这个Devloader值来动态安装VxD。结果就是VxD会收到一个sys_DynamicDeviceInit消息。VxD再根据该消息作必要的动态安装初始化操作。但是,一个设备驱动程序vxD在收到Sys消息时,是不能访问其端口设备或安装中断的,这是因为._D还y没nam有i为cD设e各vic分e配InitI/O或IRQ第73页 山东大学硕士学位论文资源。在通过特定的Devloader注册表值安装完VxD后,配置管理器通过给vxD发送PNPNEWDevnode信息通知VxD设备节点已经装载了它,作为响应VxD向配置管理器申请配置资源。资源管理器调用仲裁器为PnP设备配置资源,完成这些配置后,配置管理器通知每⋯个驱动程序VxD可以开始使用已分配好的配置。4.4.3.2POI智能网络适配器VxD设计设备驱动程序面临的主要问题是如何进行硬件操作,这是根据设备的不同而不同的。而硬件驱动程序的功能虽然于差万别,但基本功能就是完成设备的初始化、对端口的读写操作、终端的设置、响应和调用以及对内存的直接读写。由于在LonWorksPCI智能网络适配器的设计中,双口RAMIDT7130是采用内存映射方式的,因此下面仅仅简单介绍设备的初始化以及对内存的直接读写的内容。PCI设备驱动程序要实现识别PCI器件、寻址PCI器件的资源和对PCI器件的中断服务。PCI系统BIOS功能提供了BIOS的访问与控制的具体特征,所有软件将通过标准中断号1AH调用BIOS功能访问特殊部件。在PCI设备驱动程序的初始化过程中,利用指定器件识别号(DEVICEID)、厂商识别号(VENDERID)、检索号(INDEX)搜索PCI器件,通过调用PCIBIOS确认其存在,并确定其物理位置:总线号、器件号和功能号,这是该器件/功能在系统中的唯一寻址标志。利用总线号、器件号和功能号可以寻址该器件/功能的PCI配置空间。接下来,设备驱动程序就要从配置空间获得硬件的参数。PCI设备的许多参数,包括所用的中断号、端口地址的范围、存储器的地址等,都可以从PCI配置空间的各基址所对应的寻址空间中得到。不能总是认为PCI器件资源总是设计设备时设计的初值,系统可能会根据硬件资源情况为PCI设备分配新的资源。如果要获得基址的大小,可以向基址寄存器写入全1的值,然后读基址寄存器,如果是内存方式,从第4位开始的0的数目表示基址的大小;如果是I/o方式,则从第2位开始的0的数目表示基址的大小。即插即用设备的驱动程序VxD不能调用MapPhysToLinear()函数,这是因为在Windows运行期间,即插即用设备的物理地址可能改变,而由MapPhysToLinear()函数返回的线性地址所对应的物理地址是固定不变的,即第74页 山东大学硕士学位论文仍对应着原来的物理地址。VMM没有提供解除内存映射的服务。如果VxD多次调用此服务,就会浪费页表进入项。对于动态配置物理地址的PnP设备,VxD必须将内存映射分成如下几步:1.调用PageReserve()函数,分配一块线性地址空间。此空间并不和具体的物理地址相关联,仅是线性地址的页表进入项。2.调用PageCommitPhys()函数,将线性地址映射到设备的物理地址。3.调用LinPageLock()函数,阻止虚拟内存管理器将这些页交换到磁盘空问,以保证在硬件中断期间这些地址也有效。4.同时,对于动态配置物理地址的设备,VxD若解除设备的内存映射,可以调用LinPageUnlock()、PageDecommit()和PageFree()。每一个调用分别是上述调用的反过程。Windows9x是消息驱动的操作系统,并且也是支持即插即用的操作系统。在Windows9x下获取PCI配置空间的大致过程如下:在计算机上电期间,系统的BIOS发现有新的PCI设备产生,于是BIOS在读取了该新PCI设备的资源配置需求后根据系统资源的状况给该PCI板分配相应的资源。BIOS引导完毕后将计算机的控制权交给Windows9x操作系统,操作系统在初始化硬件设备期间,若发现有新设备就发出PNPNEWDEVNODE消息。此时VxD就可以利用专用函数获取设备的配置资源。并将配置资源置于如下的结构体中:StructConfig_Buffers{WORDwNumMemWindows;DWORDdMemBase[MAX_MEM_REGISTER];DWORDdMemLength[MAX_MEM_REGISTER];WORDwMemAttrib[MAX_MEM_REGISTER];WORDwNumlOPorts;WORDwlOPonBase[MAX_IO_PORTS];WORDwlOPortLength[MAXIo——PORTS];WORDwNumlRQs;BYTEblRQRegisters[MAX_IRQS];BYTEblRQAttrib[MAX_IRQS];第75页 山东大学硕士学位论文WORDwNumDMAs;BYTEbDMALst[MAX—DMA_CHANNELS];WORDwDMAAtrrib[MAX_DMA_CHANNELS];BYTEbReserved[3];);用户应用程序就可以利用上述结构得到PCI设备的譬如内存、I/OISI、IRQ、DMA等资源配置并且利用这些资源配置来对硬件进行操作。部分VxD代码如下所示://pci_con.htypedefstructPciCfg{DWORDdLCRMemBase;DWORDdLCRMemLength;WORDwLCRloBase;WORDwLCRloLength:DWORDdMemBase;DWORDdMemLength;}PCICFG,+PPCICFG;,/LoNDRVh—includefileforVxDLONDRV#include”pci—con.h”classLondrvDevice:publicVDevice{public:virtualBOOLOnSysDynarnicDevicelnit0;virtualBOOLOnSysDynamicDeviceExit0;virtualCONFIGRETOnPnpNewDevnode(DEVNODEdevNode,DWORDloadType);virtualDWORDOnW32DeviceloControl(PIOCTLPARAMSpDIOCParams);};//LONDRV.cpp—mainmoduleforVxDLONDRV第76页 山东大学硕士学位论文CONFIGRETLondrvDevice::OnPnpNewDevnode(DEVNODEdevNode,DWORDloadxype){switch(10adXype){caseDLVXD—LOAD_ENUMERATOR:returnCRDEFAULT;c;aseDLVXD_LOAD_DEVLOADER:bAdapterPresent=TRUE;returnCONFIGMG_Register_Device_Driver(devNode,OnConflgure,0,CM.+REGISTER。,DEVICE_DRIVER_REMOVABLEICM——REGISTER_DEVICE——DRIVERDISABLEABLE);easeDLVXD_LOAD_DRIVER:returnCRDEFAULT:default:returnCR_DLVXDNO^jOUND;})DWORDLondrvDevice::OnW32DeviceloControl(PIOCTLPARAMSpDIOCParams){switch(pDIOCParams->dioclOCtlCode)(caseDIOCOPEN:caseDIOCCLOSEHANDLE:returnDEVIOCTL_NOERROR;caseDIOCPCICFG:pLonPciCfg=(PPCICFG)pDIOCParams->dioc_lnBuf;pLonPciCfg->dLCRMemBase=config.dMemBase[0];pLonPciCfg->dLCRMemLength=config.dMemLength[0];pLonPciCfg->wLCRloBase=config.wlOPortBase[0];pLonPciCfg->wLCRloLength=eonfig.wlOPortLength[O];;pLonPciCfg->dMemBase2config.dMemBase[1];pLonPciCfg->dMemLength=config.dMemLength【l】;第77页 山东大学硕士学位论文returnDEVIOCl’LNOERROR;default:returnERRoRINVALIDPARAMETER;}第五章上位机监控软件的设计低成本的控制网络以LonWorks现场总线为纽带,把挂接在总线上的现场智能节点组成自动检测和控制系统,实现实时数据采集、数据通信、基本控制、参数修改、报警显示等功能。这些功能的实现离不开上位机监控软件的支持。在本课题中的上位机监控软件采用vc++语言编写。1200Windows环境上位机监控软件驱动程序接口LONISA/PCI适配器硬件接口0.0,IfIl峰忡L模on块-801』fFBLon-6RL黻I阳L模。块n-8舢慨}BLon-2代扩=D』其他网络图5.】LonWorks网络示意图第78页200 山东大学硕士学位论文5.1监控软件中的驱动程序接口LonWorksISA/PCI智能网络适配器上的双口RAM是作为存储器映射到PC机的内存地址中的,但是上位机监控软件运行在ring3层,不能对适配器直接进行操作。因此,要完成数据的上传和下传,一个良好的ring3层与驱动程序VxD之间的接口是必不可少的。驱动程序虽然运行在系统ring0层,处理系统底层设备,但它所提供的服务并不仅仅是处理硬件事件。在大多数情况下,VxD提供与应用程序之间的接口服务,这样应用程序才真正具有处理硬件的能力。Windows操作系统也允许驱动程序VxD和应用程序之间的双向通信。在上位机监控软件中,首先用CreateFile()函数加载VxD获得VxD的设备句柄。格式如下:HANDLEhDevice。CreateFile(⋯㈥.\2qAME.VXD。:绣0,0,CREATE_NE彤FILE——FLAG——DELETE——ON——COLSE);系统加载VxD文件所默认的路径,首先是当前目录,然后才是C:\Windows\System目录。如果CreateFile()函数的返回值为INVALIDHANDLEVALUE,则可以调用GetLastError()函数获得错误信息。通常错误信息有两种:一为ERRORFILENOTFOUND,表示找不到要加载的VxD。这有两种可能性:第一中情况是所默认的路径上确实没有VxD文件;另一种情况是虽然有VxD文件,但此VxD不能动态加载。二为ERRORNOTSUPPORTED,表示虽VxD虽然存在,但系统并不支持DeviceIocontrol()的要求。如果调用CreateFile()函数成功,上位机监控软件就可以利用得到的设备句柄与驱动程序VxD进行通信,完成对硬件设备的控制,在这里就是指对LonWorksISA/PCI智能网络适配器上的双口RAM进行直接存取。在Windows中,Win32应用程序对VxD的通信方法只有一种,就是通过调用Microsoft提供的设备输入输出函数DeviceIoControl()来实现。此函数定义如下:BOOk.DevjceIoContr01(第79页 山东大学硕士学位论文HANDI。EhDevice,//用CreateFile()函数加载VxD所获得的设备句柄DWORDdwloControlCode,//应用程序调用VxD的命令代码LPVOID1pInBuffer,//应用程序传递给VxD的数据缓冲地DWORDnlnBufferSize,//应用程序传递给VxD的数据缓冲字节数LPVOIDlpOutBuffer,//VxD的返回数据所存放的缓冲地址DWORDnOutBufferSize,//VxD的返回数据所存放的缓冲字节数LPDWORDlpBytesRetumed,//VxD实际返回数据的字节数LPOvERLAPPEDlpOverlapped/,指向OVERLAPPED结构的地址,同步时置为NULL)在VxD这一边,与DeviceIoControl()相对应的函数是BOOL0nW32DeviceloControl(PIOCTLPARAMSpDIOCParams)函数。它处理W32一DEVIcEl0CONTROL控制消息。VxD对Win32应用程序通信的方法有三种,其中两种只适用于VxD对Win32应用程序的通信,一种是使用APC(asynchronousprocedurecall)异步过程调用,另一种是使用Win32事件。从本质上来说,两者均依赖于VxD唤醒一个Win32进程,其中异步过程调用比较简单,使用Win32事件相对而言变成复杂一些,但是效率较高。5.2上位机监控软件的开发上位机监控软件要完成很多任务,包括对网络的管理以及对于底层节点的配置等等。用户在使用上述的模块时,可能会在不同的应用中使用不同型号的热电偶或热电阻,也会需要不同的报警值,在系统投入运行前要对热电偶、热电阻、报警值等信息进行配置。我们要开发的这个上层配置软件可以采用Vc或c++Builder进行编写。利用此配置软件,用户可以实现对热电偶、热电阻模块等的选型。当PC机将用户选定的配置信息写入网卡上的双口RAM时,由网卡上的Neuron芯片来判断到底是配置信息还是控制或数据信息,如果是配置信息,则网卡将此配置信息传入底层节点,由底层节点中的Neuron芯片将配置信息写入第的页 山东大学硕士学位论文NeurOn芯片内部的EEPROM,这样即使是掉电复位以后用户选定的配置信息仍然保留,因此节点中的Neuron芯片就可以根据EEPROM中的内容(实际上是一种标志)查对应的表格,对热电偶、热电阻进行选型。通过这种方式实现了热电偶、热电阻模块的通用性和灵活性。这可以利用NeuronC提供的eeprommemcpy()函数对EEPROM或flash存储器进行写操作。下面就以LonWorksISA智能网络适配器监控软件为例简要的说明一下上位机监控软件的设计思路。有一点需要说明的是,下面所使用的LonWorksISA智能网络适配器的邮箱锁地址对于不同的Pc机有可能是不同的,这要根据PC机的I/0端口的使用情况,配置适配器上的跳线来改变。5.21发送与接收缓冲器格式LonWorksISA智能网络适配器与主机(IBM—PC或兼容机)之间的通讯采用双口RAMIDTTl30,通讯方式简单、快速、可满足大量的数据交换要求。另外,双口RAMIDTTl30PC机侧地址为D0000~D03FFH。(1)发送缓冲区格式缓冲区0-0FFH(256个字节)定义为数据包发送缓冲区,其占用的PC机侧地址定义为:D000H:0-FFH,用于存放主机传送给CAN智能通讯板向其他节点发送的数据。主机侧地址:D000:0000D000:0001D000:0002D000:0003D000:0004D000:0005D000:0006标志:0AAH数据包发送成功,033H发送失败源节点号目标节点号保留数据包内的数据字节数(1-250)保留第1个数据字节第250个数据字节第8l页 山东大学硕士学位论文D000:00FF(2)接收缓冲区格式缓冲区0100.01FFH(256个字节)定义为数据包接收缓冲区,存放其他节点发送给CAN智能通讯板的数据。占用主机侧地址定义为:D0000:0100H一01FFH。D000:0100D000:0101D000:0102D000:0103D000:0104D000:0105D000:0106D000:01FF标志:OAAH数据包接收成功,033H接收失败下位机源节点号上位机目标节点号保留数据字节数:数据块长度保留第1个数据字节第250个数据字节5.2.2基本功能描述1.LonWorksISA智能网络适配器初始化功能该功能为用户提供了LonWorksISA智能网络适配器的初始化服务,用户只需将本通讯卡的节点号(用户自定义)填入命令参数区,然后启动初始化服务程序即可。由于采用了自由拓扑双绞线收发器FTT-IOA,所以数据传送速率固定为78kbps。调用参数及步骤(主机):·将邮箱锁(存取控制寄存器)打开:_outp(0x310,0x01);·起动LON初始化功能命令:向D000:3F8单元写入命令标志0C1H。·关闭邮箱锁:第船页 山东大学硕士学位论文一outp(0x310,0x00):当LonWorksISA智能网络适配器内监控程序从双口R/LM中读到初始化命令0C1H后,自动按所给参数将LON初始化,完成后将0000:3F8单元改写为0,主机从双口RAM此单元内读到0值后,即知LON初始化已完成,并将邮箱锁关闭。2.查看板内存储器内容服务功能该功能为用户提供了从主机读取LonWorksISA智能网络适配器内存储器内容的服务,监控程序将用户指定的板内存储器块内容送至双口RAM的D000H:200H—D000:2FFH供主机查询。用户只需将要查看的存储器偏移量、段地址及数据长度(最大255个字节)按如下规定设置即可查看板内存储器内容。调用参数及步骤(主机):·将邮箱锁(存取控制寄存器)打开:outp(0x310,0x01);·向下述单元填入所需参数:板内存储器起始地址的偏移量板内存储器起始地址的段地址LSB———》D000HMSB——}D000H:LSB—专D000HMSB——》D000H:存储器块长度(最多255个字节)—÷D000H:·起动监控程序读存储器内容服务命令:向D000:3F8单元写入命令标志0C4H。·关闭邮箱锁:一outp(0x310,0x00):3FOH3F1H3F2H3F3H3F4H当LonWorksISA智能网络适配器内监控程序查看板内存储器内容服务命令0C4H后,将所要查看的板内存储器块的内容送至D000:200—2FFH,完成后将命令单元0000:3F8清0。主机从双口RAM此单元内读到0值后,即将邮箱锁关闭。3.调用节点数据服务功能该功能为用户提供了从主机按节点号读取本站接受到的,存放于LonWorks第83页 山东大学硕士学位论文ISA智能网络适配器内SRAM的其他节点发送过来的数据的服务,监控程序将用户指定的节点所对应的接收缓冲区内容,移送至双13RAM的D000H:200H.D000:2FFH供主机查询。用户只需将要查看的节点号按如下规定设置即可。调用参数及步骤(主机):·将邮箱锁(存取控制寄存器)打开:_outp(0x310,0x01);·向下述单元填入所需参数:被调用节点的站号_÷D000H:3FOH·起动监控程序调用节点数据服务命令:向D000:3F8单元写入命令标志0C5H。·关闭邮箱锁:一outp(0x310,0x00):当LonWorksISA智能网络适配器内监控程序接到数据调用命令0C5H后,按所给站号计算出其在板内存储器中的缓冲区地址,并将其中的数据送至双口RAM的D000:200—2FFH单元,完成后将命令单元D000:3F8清0。4.网络检查用户利用该功能可以对网络通讯状况进行测试。该功能起动后,LonWorksISA智能网络适配器自动按发送缓冲区格式向0000:006H单元填入数据AAH(或其他一个或多个数据),然后向D000:3FSH写入0C2H起动数据包发送功能,节点监控程序接收到来自网卡的数据后,将数据回送至上位机双口RAM的D000:106H单元,若主机检测到D000:106H单元的内容仍为M,H,则网络检查正确,否则,网络检查错误,并提示用户检查硬件。5.3ODE服务软件目前在工业控制领域中Pc机仍占有主导地位,并有许多现成的、先进的监控软件如InTouch等在其平台上运行。有效将LonWorks控制网络的信息集成到Pc机运行的现成的、先进的监控软件中,可大大减少LonWorks控制网络平台第“页 山东大学硕士学位论文监控软件的开发,提高软件开发的质量和速度。在此,所要解决的关键问题是如何高效、可靠地实现LonWorks网络平台的监控信息与监控软件之间的数据共享和交换,让LonWorks控制网络的数据采集和控制、PC机的监视画面显示以及数据库操作等功能分解成多个程序并发运行。作为基于Windows消息机制的DDE是连接LonWorks控制网络现场信号与监控软件的桥梁,它允许在两个Windows应用程序之间通过相互传递DDE消息进行会话,从而完成数据的请求、应答和传输。这样,若需实现LonWorks控制网络的软件平台与先进的监控软件如InTouch相集成,可事先编写好具有通用功能的DDE服务软件,为用户规定好应用程序名(server)、主题名(topic)和项目名(item),让用户自己按提供的规范去完成InTouch监视画面的组态功能。针对LonWorks网络中需要动态交换的数据量大的特点,若设置过多的items则太繁琐,较好的解决办法是采用动态生成DDE项目的方法,将所有需要在LonWorks控制网络与Pc机监控平台之间动态交换的参数全部集成到一个DDE服务程序中,实现现场节点与Pc机InTouch监控软件之间的数据通信,真正做到信息的集成和共享,并可以通过其监控系统实现工艺流程图的实时数据刷新;做到实时曲线、历史曲线、直方图等的显示;做到现场各节点测量数据的显示并实时刷新:显示窗口的拷贝;监视画面的在线组态和修改:实时参数的人工设置或取消;其他有关Windows的操作等监控功能。第85页 第六章结论与展望随着企业综合自动化系统的发展,要把企业经营策略、管理、计划、调度、过程优化、故障诊断、现场控制层紧密联系在一起,进行综合信息处理,按市场需求,以尽可能低的资源、能量消耗,以最短的时间,开发出新的产品,就必须将自动控制、办公自动化、经营管理、市场销售等各层次计算机(包括现场仪表内的微处理器)互连成网络,实现数据共享。因而企业网络中的信息是多层次的,一个完整的企业信息网络系统应该包括现场控制层、过程监控层、生产管理层、市场经营管理层等多个层次。在本课题基于LonWorks技术的智能节点、智能网络适配器以及监控软件,主要是涉及了企业信息网络中的现场控制层以及过程监控层,并且重点是现场控制层,也就是网络的最底层。而要形成一个完整的企业信息集成系统,还有大量的工作要做。LonWorks提供了LonBuilder、NodeBuilder、LonMaker等非常友好的开发平台,用户可以方便的进行节点的开发、安装和网络系统的管理,利用其自身的微处理器接口程序可以开发出价格低廉、功能良好的网关,通过这些网关连接到PROFIBUS、DeviceNet等网络。但是,不可否认的一点是LonWorks技术的开发技术和工具过于封闭,LonBuilder仿真器等价格太高,尤其对于国内一些小用户,这些无疑限制了LonWorks技术在国内的推广。本课题所采用的方式虽然可以脱离LonBuilder仿真器等,仅用一台NodeBuilder就可以开发LonWorks网络,大大降低了开发成本,但形成的却是一个封闭的系统,因此这是以牺牲网络的开放性为代价的。网络变量以及基于网络变量的LonMark对象是LonWorks技术的一大特色,是简化用户开发周期和工作量的一种方式,使用显示消息却完全避开了这种方式。需要指出的是,LonWorks技术中的核心Neuron芯片内部虽然集成了三个CPU,但却是一个8bit的处理器,3150的最高工作频率仅为20MHz,同时LonTalk协议也集成了ISO/OSI的全部七层模型,因此,在一些实时性要求比较高的场合,LonWorks网络显得有些力不从心。虽然可以采用MIP接口方式,将Neuron芯片作为一个通信协处理器,将执行大型算法等复杂的任务交给主处第跖页 山东大学硕士学位论文理器如PC机或其它微处理器,这无形之中却增加了开发成本和复杂性。LonWorks技术只是一种工具,相对于其它控制技术,在控制策略等方面并没有多大的改进,它在网络性能方面和硬件方面有了很大改进,这主要体现在对通信技术的利用和设备的智能化改造上,它的通信技术尤具特色。要开发出能占领市场的基于LonWorks的产品,还需要许多其它的技术。Echelon公司的i.LON1000服务器可以将LonWorks控制网络和基于IntemetProtocol(IP)的数据网无缝地连接,使用i.LON1000的嵌入式W曲服务器可以通过Web浏览器轻松地访问控制信息(如各种网络),这一功能有密码控制,实现了在任何地方都可以通过LAN、WAN或Internet访问LonWorks的监视和控制数据,而不必采用特殊的软件工具。将基于LonWorks技术的智能家居,楼宇自控系统或者其它任何基于LonWorks的控制系统连入Intemet网在国外已经变成了现时。LonWorks技术作为一种现场总线技术,已经在我国获得了及其广泛的应用。今后现场总线的发展方向主要体现为两个方面,一是低速现场总线的继续完善和发展;二是高速现场总线技术的发展。目前现场总线的产品主要是低速总线产品,高速总线的开发相对缺乏,高速总线的设计开发将是以后发展的一大热点,而高速总线应该采用什么样的网络技术又是这一热点的核心。目前,许多FCS系统都采用与Ethemet(以太网)连接,再进一步与Intemet相连。有专家预言:Ethemet将直接与现场设备相连。Ethemet已成为计算机局域网的主流,软硬件技术都比较成熟,目前100Mbps的Ethemet已在使用,1000Mbps的Ethemet技术的成熟也指日可待。这说明Ethemet很有可能成为高速总线的首选。无论如何,国内对LonWorks、CANBus、PRoFmUS、DeviceNet等现场总线的研究与应用还处在起步阶段,跟发达国家还存在着很大的差距。而努力地学习与研究包括现场总线在内的一切新技术以开发出相应的产品并转化成生产力来推动社会的发展,是每一个科技工作者的当务之急,也是时代赋予每一个科技工作者的历史使命。第B7页 山东大学硕士学位论文————————————————————-—_-————————————————————————-——_————————————‘————_。————————————————————————————————’——————一一71718192021【参考文献】阳宪惠等,现场总线技术及其应用,清华大学出版社,1999.6杨育红,LON网络控制技术及应用,西安电子科技大学出版社,1999.4凌志浩,从神经元芯片到控制网络,北京航空航天大学出版社,2002.2王锦标,现场总线控制系统,现场总线技术论文选97,1997.9,10~20李万周等,现场总线概论,现场总线技术论文选97,1997.9,21~24鄂立福等,LONWORKS网络技术与现场总线,现场总线技术论文选97,1997.9,123~127张予东,LONWORKS控制网络技术,现场总线技术论文选97,1997.9,148~152刘建昌等,现场总线概述,基础自动化第7卷第6期,2000.12NeuronChipTMPN3150/3120,ToshibaCorporation,2000NeuronCProgrammer’SGuide,EchelonCorporation,1995NeuronCReferenceGuide,EchelonCorporation,1995LonBuilderHardwareGuide,EchelonCorporation,1995LonBuilderUser’SGuide,EchelonCorporation,1995MotorolaLonWorksTechnologyDeviceData,MotorolaCorporation,1997NeuronChipExternalMemoryInterfacing,EchelonCorporation,1995LonWorkzFTT一10AFreeTopologyTransceiverUser’sGuide,EchelonCorporation,1995LonWorksCustomNodeDevelopment,EchelonCorporation,1995EIA-232CSerialInterfacing谢mtheNeuronChip,EchelonCorpoartion,1995ParallelI/OInterfacetotheNeruonChip,EchelonCorpoartion,1995Analog-to-DigitalConversionwiththeNeuronChip,EchelonCorpoartion,1995杨育红,实现LON网消息的显式寻址,微计算机信息,2000年16卷第1期韩志民,温度测量系统综合误差校验的新方法,华北电力技术,2000.3第黯页&殳m¨他BH博№ 山东大学硕士学位论文沈维善等,热电偶、热电阻分度手册,机械工业部仪器仪表工业局,1985.6于英民等,计算机接口技术,电子工业出版社,1999.10曾繁泰等,PCI总线与多媒体计算机,电子工业出版社,1998.8李海,PCI设备Windows通用驱动程序设计,电子技术应用,2000.1PCI9052DataBook,PLXCorporation孙守阁等,Windows设备驱动程序技术内幕,清华大学出版社,2000.6杨强等,Win9X虚拟设备驱动程序编程指南,清华大学出版社,1999.3余永进,“即插即用”技术大全,电子工业出版社,1997.1l张维铭,用VtoolsD开发Windows95虚拟设备驱动程序,微型机与应用,1998年第8期赵雅兴,FPGA原理、设计与应用,天津大学出版社,1999.4宋万杰等,CPLD技术及其应用,西安电子科技大学出版社,1999.9秦立军等,LonWorks现场总线与以太网的互联研究,工业控制计算机,1999年12卷第5期孙来业,基于LonWorks的分散智能控制系统研究,工业控制计算机,1999年12卷第6期庞彦斌等,基于LonWorks网络的PID控制节点的设计,电子技术应用,2000年第6期张金雄等,LonWorks在生产监控系统的应用,工业控制计算机,2000年13卷第2期衣卓等,如何开发基于LonWorks控制网络监控管理系统,微计算机信息,2001年第17卷第2期李哲英,基于LonWorks的铁路车站信号设备监视系统,工业控制计算机,1999年12卷第5期第89页驺M筋拍"勰凹如¨弛驺弭"%”勰∞ 山东大学硕士学位论文致谢在两年半的研究生学习生活中,我得到了很多人的关怀和帮助,在即将告别学校走向社会的时刻,我想向所有帮助过我的人表达我最衷心最诚挚的谢意。感谢我的导师李正军老师。在这两年半的时间里,李老师在学术上给了我谆谆的教导,在生活上给了我真切的关怀,在经济上给了我无私的帮助,使我在这两年多的时间里在技术上能够进步,在经济上能够独立,并且能够合格完成研究生期间的课题研究工作,为将来走向社会谋求~份满意的职业打下坚实的基础。我在李老师身上学习到的严谨的工作作风,不怕苦不怕累的敬业精神以及对于技术的执着钻研精神将使我受益终生。李老师在在两年多的时间里不仅仅把我们当作学生,在很多时候也把我们当作了朋友,给了我们一个不仅仅科研试验资金充足,而且学习氛围融洽的实验室环境,让我们更好的相互学习与交流。因此,我要由衷地感谢李老师,感谢李老师曾经给予我的学术上生活上经济上的关怀和帮助。我还要感谢杨修文同学,作为同一个导师同一个实验室的同学,他在技术上毫不保守和保留,在他力所能及的范围内给了我很大的帮助。另外我还要感谢我的师兄、我的师弟师妹们,他们也在很多方面给我不少帮助。无论时间怎样流逝,我都会永远记住在任何一方面真心帮助过我的所有人,我都会对他们曾经给予我的帮助心存感激。第90页

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

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

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