基于LonWorks的智能网络测控系统设计
摘要:本文主要叙述了基于lonworks的智能网络测控系统的设计思想,其中包括电源电路、mc143150与at89c52的接口、神经元芯片3150的存储器扩展等硬件电路的设计及at89c52单片机程序和neuron芯片的应用程序两部分的流程图,最后对系统的硬件和软件的抗干扰性措施作了简单的介绍。
关键词:lonworks;智能节点;智能网络测控
现场总线控制系统fcs是针对传统的dcs系统的不足之处提出来的,它跨越了电子、控制、仪器仪表、自动化、计算机和网络等领域,因此具有一定的学术意义。在众多总线中,lonworks现场总线以其完全支持iso/osi七层协议,支持多种通信媒介,可靠性高,可互操作,兼容性和灵活性好等独特的优点成为现场总线的主流。
本文对基于lonworks的高可靠性、全开放的智能网络进行研究和应用,通过大量的实验,开发和设计智能测控系统。
1 lonworks智能节点的设计概述
基于神经元芯片的开发可以分为两种:
(1)基于控制模块的硬件设计方法;(2)基于收发器的硬件设计方法。
控制模块中通常包括神经元芯片、flash、程序存储器、收发器以及ram等,用户只需设计自己的应用电路,可缩短产品的开发周期。而基于收发器的设计方法除了考虑应用电路设计,还必须考虑神经元芯片与flash存储器以及ram的接口电路。采用这种方法时,电路板设计加工以及生产工艺要求较高,但可以降低产品成本,提高设备的市场竞争力。为了学习和以后研究的需要,本文采用第二种设计方案。lonworks技术是一种控制网络层次上的技术,故节点的开发离不开对网络的整体考虑,根据控制策略的不同,节点的开发会有所不同,但对于一个控制网而言,不外乎由传感器、执行器、获取和传输数据局的网络、执行控制逻辑的控制和程序等构成。而对于组成网络重要部分的节点而言,所完成的任务无非是获取和传输数据,并根据所获取的数据信息来执行相应的控制逻辑。故此,一个通用节点可由图1表示。
下面将讨论lonworks节点的硬件设计和开发以及lonworks节点的逻辑编程。
2 lonworks智能节点的硬件电路设计
2.1 电源电路设计
交流电源电压经过全波整流后,采用7805芯片变成节点电路需要的5v的直流电源。设计如图2所示。
2.2 mc143150与at89c52的接口
该节点采用at89c52作为主处理器,与神经元芯片接成并行i/o对象的操作模式。神经元芯片的并行i/o对象允许以最高为3.3mbps的速率双向传输数据。并行i/o对象的物理接口通过神经元芯片的11个i/o引脚完成。应用在并行i/o状态下的神经元芯片不再能有其他的i/o对象来处理物理接口,神经元芯片固件还可实现令牌传递和握手协议来实现同步和防止总线竞争。为增加设计的灵活性,神经元芯片提供几种并行i/o对象的操作模式:主模式,从a模式和从b模式。本节点中神经元芯片与单片机at89c52的连接采用从a模式,其接口电路如图3所示。
由于神经元芯片3150的握手信号hs是集电极开路的,因此需要接上一个10kω的上拉电阻。在slave a模式中,神经元芯片3150是在主处理器的控制下工作的,对主处理器来说,神经元芯片3150是含8个数据位和3个控制位的并行i/o设备。单片机的p0口与神经元芯片3150的io0~io7相连作为8位数据总线,p1.7与神经元芯片3150的io10相连接作为握手信号端,p1.5与io8相连作为cs信号端。hs信号由神经元芯片3150的内部固件控制,当hs为高电平时,表示神经元芯片3150正在读写数据、处于忙状态,当hs为低电平时,表示神经元芯片3150数据处理完毕,可以进行下一次通信了。在总线上主处理器和从处理器之间不断交换一个虚拟的写令牌,令牌的拥有者有写数据或传递数据的权力。主处理器写时,当at89c52单片机判断到hs信号为低时,在cs信号的下降沿将数据写入数据总线,在cs信号的上升沿数据被神经元芯片3150的输入缓冲区截取,同时导致hs端变为高电平,当数据读取结束时,hs被置低,等待下次通信。
2.3 神经元芯片3150的存储器扩展
本节点中,系统的固件存储在片外的eprom中,地址为0x0000~0x3fffh;应用程序也存储在片外的eprom中,地址为0x4000~0x7fffh;片外ram的地址为0x8000~0xdfffh。地址空间的分配如图4所示。图4是神经元芯片外接32kb eprom和24kb ram的电路原理图。由于系统固件的存储地址要求从0x0000h开始,所以32kb eprom的地址应设计成0x0000h~0x7fffh;而ram的地址是0x8000h~0xdfffh(24kb)。将地址线a15直接作为eprom的选片信号线。当a15为低电平时,eprom被激活,因此保证了eprom的地址从0x0000h到0x7fffh。
地址线a13和a14进行与非逻辑再和a15与非后作为ram存储器的选片信号线,这样,当地址信号线最高三位是100、101及110时,ram存储器的选片信号才为低电平,所以ram存储器的地址为1000 0000 0000 0000 ~ 1101 1111 11111111,即0x8000h~0xdfffh,一共为24kb。
2.4 主处理器at89c52外围电路设计
图5为主处理器外围接口电路图。该节点采用27256扩展了32kb的ram,用于存储各模拟通道输入和输出数据。
2.5 硬件抗干扰性措施
lonworks设备工作在复杂的电磁环境中,其自身各部分及与周围其他电子设备之间不可避免地存在各种形式的电磁干扰emi,此外静电放电esd产生的脉冲电压、电流也是瞬态干扰因素,因此在产品开发时应增强设备自身的抗干扰能力,切断内外干扰。为有效地避免因外界emi和esd导致自身工作性能的降低,同时结合lonworks电路自身特点,要考虑的主要问题有:寄生耦合问题、电源分配及vcc解耦、传输介质、esd的防护措施。
3 lonworks智能节点的软件设计
3.1据采集模块的软件设计
智能节点的数据采集部分采用maxim公司的12位das芯片max197位必须一致(即d2、d1、d0位必须一致)。max197提供了一个标准的中断信号,转换结束后输出数据准备就绪时,中断信号int变为低电平,本程序中通过轮询p1.7口的状态来判断转换是否结束。
at89c52单片机可根据定时常数来决定什么时候去触发数据采集开始,因此定时常数有2个,前m次采样的定时常数为tsd+t,后n-m次的定时常数为ts,采样得到的数据保存在扩展的ram中。
综上所述,编写的数据采集子程序流程图如图6所示。
3.2 lonworks通信模块的软件设计
本装置的主处理器是at89c52,从处理器是mc143150,主处理器负责将测得的数据发送给mc143150,而mc143150则负责将测得的参数实时发送到lonworks网络上。neuron芯片程序的编写使用neuron c语言。
本装置中主机在完成参量的采集、处理和存储后通过并行通信方式将测量结果发送给neuron芯片,由neuron芯片将测得的数据发送到lonworks网络上。因此通信模块包括了80c196kc与neuron芯片的通信和neuron芯片的网络通信两各部分。neuron芯片以并行从b方式与主机通信,在该方式下neuron芯片的io0~io7为双向数据总线(其中io0为数据的低位和握手信号共用位)、io8作为片选信号cs、io9为读写控制信号r/w、io10作为选择输入a0。主机与neuron芯片的通信程序流程图如图7所示。
本装置neuron芯片的应用程序可以通过分别定义包含各电参量当前测量值的网络变量实现测量数据的网路共享。网络变量定义的格式如下:
network input | output [netvar-modifier] [class] type [connection-info] identifier
[=initial-value]
程序中的网络变量应为输出型的网络变量,为便于数据格式的通用性,类型(type)定义为标准网络变量snvt_count_inc,该类型网络变量的数据类型为有符号长整形数,长度为2个字节。neuron芯片与80c196kc之间采用并行(parallel)通信方式,工作方式为slave a方式,对parallel i/o对象进行显式配置的neuron c语句和说明为:
io_0 parallel slave | slave_a | master io_object_name
parallel i/o对象虽然使用全部11个管脚,但只需说明管脚io_0即可,slave| slave_a | master 用于说明neuron芯片的工作模式。io_object_name为用户给i/o对象指定的名字。本程序对parallel i/o对象的说明为:
io_0 parallel slave_b ele_par
为使用neuron芯片的parallel i/o 对象,io_in()和io_out()函数需要一个指向parallel_io_interface结构的指针:
struct parallel_io_interface
若想实现测量数据的网络共享,还需将网络变量互连,该过程称为捆绑(binding),可以通过网络管理工具来完成,比如lonbuilder、lonmanager软件包中的lonmaker或echelon公司的客户/服务器网络构架lns。连接过程实际上就是发送一组包含节点的地址、报文类型等信息的网络管理报文到需要连接的节点,然后这些节点再将地址表和网络变量配置表写入neuron芯片的e2prom中。经过lonmaker工具配置后网络变量就与lonworks网络建立了连接,输出网络变量的更新将引起与之相连的输入网络变量的更新,从而将测量的电参量传送到了lonworks网络上。
3.3 软件抗干扰措施
本装置应用的场所工作环境比较恶劣、干扰严重,因此需要周密考虑和解决抗干扰的问题。常用的软件抗干扰措施有指令冗余和软件陷阱。“指令冗余”适用于当cpu受到干扰后把操作数当作指令码来执行从而引起程序的混乱,此时指令冗余可使程序恢复正常。另一种软件抗干扰措施,即所谓“软件陷阱”。“软件陷阱”是一条引导指令,强行将捕获的程序引向一个指令的地址,在那里有一段专门处理错误的程序。“软件陷阱”一般安排在下列四种地方:未使用的中断向量区、未使用的大片eprom空间、表格、程序区。
本装置还采用了看门狗定时器来监视系统的运行,大大提高了程序的抗干扰能力。
4 结束语
本文主要叙述了基于lonworks的智能网络测控系统的设计思想,其中包括了at89c52单片机程序和neuron芯片的应用程序两部分的流程图。主机程序用mcs-51系列单片机汇编语言来编写,neuron芯片应用程序用neuron c来编写。
lonworks技术发展方兴未艾,应用领域不断拓展,具有较理想的应用价值和市场前景。
我国目前对lonworks技术的应用刚刚起步,随着业内人士的更多了解,相信会有更广泛的应用前景。
参考文献
[1]凌志浩.从神经元芯片到控制网络[m].北京: 北京航空航天大学出版社,2002.
[2]杨育红,等.lon网络程序设计[m].西安: 西安电子科技大学出版社,2001.
[3]杨育红,等.lon网络控制技术及应用[m]. 西安: 西安电子科技大学出版社,1999.
[4]马莉.智能控制与lon网络开发技术[m]. 北京: 北京航空航天大学出版社,2003.
[5]段曙彬,高安邦. lon智能节点开发与组网研究[j].哈尔滨理工大学学报,2006(1).
[6]智淑亚,高安邦,杨帅.lonworks现代智能测控系统的开发应用设计[j].电脑学习2006(1).
[7]智淑亚,段曙彬,高安邦.基于neuron芯片的智能调光节点开发[j].电脑学习,2005(6).
[8]智淑亚,高安邦,李忠华. 基于lon测控网络的自动抄表系统设计[j].电脑学习,2005(5).
[9]穆远详. lonworks:全新的现代智能测控技术浅析[j].电脑学习,2004(3).
[10]穆远详. 基于lonworks技术的现代智能测控系统[j].电脑学习,2004(2).
[11]echelon co. lonmaker for windows user’s guide, 2000.
[12]echelon co. lonpoint user’s guide, 1996.
[13]echelon co. lnsdde sever user’s guide, 1996.
[14]echelon co. troubleshooting lonworks devices and twisted pair networks, 1996.
[15]echelon co. neuron c programmer’s guide,1995.
上一篇:浅析Comet技术在Java Web实时系统开发中的应用
下一篇:软件系统国际化的设计研究