当前位置: 首页 » 技术前沿 » 技术论文 » 正文

一种应用LONWORKS控制模块的现场智能节点的设计

字体: 放大字体  缩小字体 发布日期:2007-11-28  作者:rqb99  浏览次数:866

关键词】现场总线,LonWorks,并行通信,神经元芯片

摘要】本文首先简要地介绍了LonWorks现场总线技术以及LonWorks控制模块,在此基础上提出了一种LonWorks控制模块与MCS-51单片机并行通信节点的组成原理及其设计与实现。

1   
  现场总线是在自动化领域中出现的一种崭新的控制技术,它以其全数字化、全分散式、全开放性、互操作性以及开放式的互连网络等特点为传统的自动控制系统带来了革命性的变革,已成为未来控制系统的发展方向。在众多流动的现场总线中,由美国Echelon公司研制的LonWorks现场总线是唯一遵循了国际标准化组织ISO定义的开放系统互连OSI全部7层模型的现场总线标准,因其能充分满足未来发展对测控网络的要求,具有广阔的应用前景。Lon Works现场总线技术的优势在于其高性能低成本的网络接口产品 、含3个CPU的超大规模Neuron芯片、固化的LonTalk通信协议以及方便的开发调试服务工具 。实现LonWorks技术的关键是LonWorks智能设备,即控制网络节点的应用开发。本文将着重讨论并提出了一种LonWorks控制模块与MCS-51单片机并行通信节点的组成原理及其设计与实现。
2 原理
2.1 神经元芯片
  神经元芯片是LonWorks技术的核心,它有3个CPU,每个CPU各自分工不同,如图2—1所示。
       
  CPU-1是介质访问控制处理器,处理LonTalk协议的第一和第二层,包括驱动通信子系统硬件和执行MAC算法。CPU-2是网络处理器,它实现LonLalk协议的第三到第六层,包括处理网络变量、寻址、事件处理、软件计时器、网络管理和路由等,同时还控制网络通信端口,发送和接收数据包。CPU-3是应用处理器,它执行用户的代码以及用户代码调用的操作系统命令。CPU-1和CPU-2用共享存储区中的网络缓存区进行通信。CPU-2和CPU-3用共享存储区中的应用缓存区进行通信。在多数应用中,编程采用Neuron C语言。
2.2 Lon Works节点与控制模块
  LonWorks网上的每个控制点,即LonWorks节点是和在物理上与之相连的现场I/O设备交互作用并在控制网络中使用LonTalk协议与其他节点互相通信的一类对象。
    LonWorks网络控制节点有两种类型。如图2—2所示:
                    
    在图2—2a中,Neuron芯片是唯一的处理器,此类LonWorks节点适合于I/O设备简单 、处理任务不复杂的系统,称为基于Neuron芯片的节点;而在图2—2b中,Neuron芯片只作为通信处理器,充当Lon-Works网络的网络接口,节点应用程序由主处理器来执行,此类MIP结构的LonWorks节点适合于对I/O设备及处理任务要求较高的系统,称为基于主机的节点,其中的主处理器可以是任何微控制器或PC等。
  不论哪种类型的LonWorks节点都有一个电源、一片Neuron芯片用于通信和控制、一个I/O接口以及一个收发器负责将节点连接到LonWorks网络。为了便于LonWorks现场总线的应用,Echelon公司开发出了多种型号的LonWorks控制模块,将Neuron芯片、收发器以及存储器集成在一起,如图中虚线框所示,极大地方便了LonWorks总线的应用设计开发人员,使开发人员将注意力更集中于控制系统的选择、应用和实现。
3 节点硬件的设计  
  LonWorks控制模块与MCS-51单片机并行通信节点的硬件电路原理示意图如图3—1所示,它属于图2—2b类基于主机的LonWorks节点。
        
  图3—1是其硬件电路原理图。需要说明的是:Neuron芯片提供有11个可编程的I/O引脚(IO0至IO10),它们可以配置为多达34种不同的应用对象,从而借助于最小的外接电路实现灵活的输入输出功能。Neuron芯片的并行I/O对象需要使用全部11个引脚 ,其中IO0~IO7用于双向数据线,IO8~IO10用于控制信号线,它有3种工作方式 :即主方式(Master)、从A方式(Slave A)和从B方式(SlaveB)。对于要求建立Neuron芯片与微处理器或微控制器之间的连接,即建立基于主机的LonWorks节点来说,Neuron芯片的并行接口工作在从B方式是最佳的选择。工作在从B方式的Neuron芯片,在主机的地址空间,就像是两个寄存器,一个是读写数据寄存器(偶地址),另一个是只读状态寄存器(奇地址)。主机正是通过对这两个寄存器的访问实现主机与Neuron芯片之间的数据并行传输的。在从B方式下,IO0除作为数据低位外,还兼作握手HS位,用于主机与Neuron芯片的握手应答;IO8则作为片选信号位;IO9作为读写信号线;IO10作为寄存器寻址输入位。另外,由于并行通信要求双方设备必须同步,无论MCS-51处理器和Neuron芯片哪一方复位,双方都必须重新进行同步,因此在MCS-51处理器和Neuron芯片复位电路的设计上应遵循以下原则:要求双方都能意识到对方的复位,MCS-51处理器的复位要触发Neuron芯片的复位,这是通过直接控制(硬件连接)实现的;而Neuron芯片在由于某种原因引起复位时,会在其RESET端自动产生低电平输出,利用这一复位输出信号,通过一个D触发器以中断方式来通知MCS-51处理器,以使MCS-51处理器作出相应处理,这是通过中断服务子程序实现的。
4 节点软件的设计  
  由于Neuron芯片内装有LonTalk通信协议固件,因此无论Neuron芯片并行I/O对象工作于何种方式下,对于Neuron芯片来说,其实现软件相对容易。故对于LonWorks控制模块与MCS-51单片机的并行通信节点的实现,关键在于MCS-51单片机的软件设计,这是因为MCS-51处理器内不含LonTalk通信协议固件,因此要实现与Neuron芯片的并行数据传输,MCS-51处理器这一方必须复制Neuron芯片的行为,即能执行Neuron芯片的握手/令牌传递算法。Neuron芯片并行I/O对象的令牌命令字节格式描述如图4—1所示。
                        
    上述每一命令的第一字节代表的是该命令类型,其中,CMDXFER=0x01,CMDNULL=0x00,CMDRESYNC=0x5A,CMDACKSYNC=0x07,数据长度是实际发送的数据长度,不包括EOM,EOM是命令结束字节,可以为任意字节,它只被发送,接收方不读该字节,主要是通过写该字节保持HS位为读方可写的状态以便传递令牌。令牌传递过程如图4—2所示。
              
    为实现与并行I/O设备的通信并保证安全可靠,Neuron芯片由固件自动执行令牌传递协议,以防止总线冲突。在任何给定的时间内,仅有一个设备拥有令牌。该令牌是一虚拟令牌,它决定着哪一设备拥有写总线权。若主机拥有令牌,它将有权将准备好的数据发送给或将令牌交给Neuron芯片,若Neuron芯片拥有令牌,它可将准备好的数据发送给主机或交出令牌。因而令牌在主机与Neuron芯片之间以乒乓方式来回传递。
  当Neuron芯片复位后,MCS-51处理器将自动获得令牌并负责令牌的传递。Neuron芯片在任何复位的情况下都通过并行总线要求同步,其目的是为了防止Neuron芯片作出错误的假定,比如错误的传送开始或错误的传送数据,这将由Neuron芯片通过同步作用自动结束。持有令牌的MCS-51处理器在任何时候应用RESYNC命令可以初始化重新同步操作 。无论Neuron芯片和MCS-51处理器哪一方设备复位,都要求双方必须重新同步,因此双方都应能意识到对方的复位,MCS-51处理器要监视Neu-ron芯片的复位,且MCS-51处理器的复位要触发Neuron芯片的复位。
  HS位(即IO0)是主要的握手控制信号,用于控制实际数据的传输。在Neuron芯片并行I/O对象从B方式下,HS由Neuron芯片驱动,它通知MCS-51处理器目前Neuron芯片是忙还是闲,当Neuron芯片执行一次读写数据操作后,HS状态位被置“0”,当MCS-51处理器执行一次读写操作后,HS状态位被置“1”,由于这是由硬件而非由固件控制的,因此,MCS-51处理器必须在程序中轮询该状态位,从而正确地启动自身的读写操作。
    为了实现LonWorks控制模块与MCS-51处理器的并行通信,MCS-51处理器这一方需要人为地完成Neuron芯片的握手/令牌传递协议,在编制程序时,还要注意的是要保证Neuron芯片一方保持令牌的时间不能超过Neuron芯片看门狗定时器的定时时间,以防止Neuron芯片意外复位而导致通信失败。
5 结束语  
  基于Neuron芯片的LonWorks控制网络节点,只能用于I/O及控制较简单的系统。对于工业应用中I/O及控制较复杂的控制系统,往往要采用基于主要处理器的LonWorks网络节点。本文所设计的控制网络节点,其主处理器采用的是MCS-51系列单片机,主处理器与Neuron芯片之间采用的是并行双向数据通信,其传输速率最高可达9600bps,目前该节点已经应用于智能小区安保控制系统。


  [参考文献
 
 
[ 技术前沿搜索 ]  [ 加入收藏 ]  [ 告诉好友 ]  [ 打印本文 ]  [ 关闭窗口 ]

 
 
 
一周资讯排行
图文推荐