540 likes | 838 Views
Lonworks 技术和 LON 总线. LON(Local Operating Networks) 总线是美国 Echelon 公司 1991 年推出的局部操作网络,为集散式监控系统提供了很强的实现手段。 为支持 LON 总线, Echelon 公司开发了 Lonwbrks 技术,它为 LON 总线设计、成品化提供了一套完整的开发平台。 Lonworks 使用的开放式通信协议 LonTalk 为设备之间交换控制状态信息建立了一个通用的标准。.
E N D
Lonworks技术和LON总线 LON(Local Operating Networks)总线是美国Echelon公司1991年推出的局部操作网络,为集散式监控系统提供了很强的实现手段。 为支持LON总线,Echelon公司开发了Lonwbrks技术,它为LON总线设计、成品化提供了一套完整的开发平台。 Lonworks使用的开放式通信协议LonTalk为设备之间交换控制状态信息建立了一个通用的标准。
LonTalk协议最大的特点是对OSI的七层协议的支持,是直接面向对象的网络协议,这是以往的现场总线所不支持的。具体实现就采用网络变量这一形式。 • 神经元芯片(neuron chip)是Lonworks技术的核心,它不仅是LON总线的通信处理器,同时也可作为采集和控制的通用处理器。LonWorks技术中所有关于网络的操作实际上都是通过它来完成的。按照Lonworks标准网络变量来定义数据结构,也可以解决和不同厂家产品的互操作性问题。 • LonWorks产品的设计规范LonMark
一、LonWorks技术概述及系统结构 • LonWorks技术主要包括以下几个组成部分: • LonWorks节点和路由器 • LonWorks internet连接设备 • LonTalk协议 • LonWorks收发器 • LonWorks网络和节点开发工具 • LNS网络工具 • LonWorks网络管理工具
1、Lonworks节点 • 一个典型的现场控制节点主要包含以下几部分功能块:应用CPU、I/O处理单元、通信处理器、收发器和电源。 A、以神经元芯片为核心的控制节点 一个神经元芯片几乎包含一个现场节点的大部分功能块——应用CPU、I/O处理单元、通信处理器。 B、采用MIP结构的控制节点 神经元芯片仅作为通信协处理器,用高级主机的资源来完成复杂的测控功能。 ShortStack微服务器
2、路由器 • 路由器在Lonworks技术中是一个主要的部分,它使LON总线突破传统的现场总线的限制——不受通信介质、通信距离、通信速率的限制。
3、网络管理 • 在LON总线中,需要一个网络管理工具。A、当单个节点建成以后,节点之间需要互相通信,这就需要一个网络工具为网络上的节点分配逻辑地址,同时也需要将每个节点的网络变量和显示报文连接起来; B、一旦网络系统建成正常运行后,还需对其进行维护; C、对一个网络系统还需要有上位机能够随时了解该网络的所有节点网络变量和显示报文的变化情况。
网络管理的主要功能 1.网络安装 自动安装、工程安装、现场安装 2.网络维护 主要包括维护和修理(检测和替换 ) 3.网络监控 查看网络所有设备的信息
4、LON总线性能特点 • 拥有三个处理单元的神经元芯片(Neuron芯片) • 支持多种通信介质 • LonTalk通信协议 • 完整的开发平台 • 提供现成的网络管理工具 • 很容易实现网络的互操作
二、LON总线分散式通信控制处理器——神经元芯片二、LON总线分散式通信控制处理器——神经元芯片 • 神经元芯片是LonWorks技术的核心。 • 神经元芯片主要包含3l50和3120两大系列。 1、处理单元 芯片内部装有三个微处理器: MAC处理器 1~2层 网络处理器 3~6层 应用处理器 编程和调用
2、存储器 • 512bytes EEPROM • 2048bytes RAM • 最多64kB存储器地址空间 外部存储器接口能够访问到的是59392bytes 6114字节是作为系统内部映射 • 16384字节的外部存储器用于存储LON的操作系统 • 其余的空间可作为用户编写的应用代码,以及应用程序所需要的额外读写数据区、应用缓冲区和网络缓冲区
3、输入/输出 • 神经元芯片和其他设备的互连是通过它的11个I/O口----IO0~IO10。可根据不同的需求进行灵活配置,以便同外围设备进行接口。 • 神经元芯片带有两个片内定时/计数器。 • 定义I/O口 函数io_in()和io_out()
4、通信端口 • 神经元芯片可以支持多种通信介质。 • 为适合不同的通信介质,可以将五个通信管脚配置三种不同的接口模式,以适合不同的编码方案和不同的波特率。 A、单端模式 B、差分模式 C、专用模式
5、时钟系统 神经元正常工作频率可以从10MHZ—625kHZ 6、睡眠/唤醒机制 A、通过软件设置 B、唤醒条件: I/O管脚的输入(可屏蔽)I04一I07 、 Service Pin信号、通信端口(可屏蔽)、差分模式CP0或CPl、单端模式CP0、专用模式CP3等有输入转换。
7、Service Pin • 在节点的配置、安装和维护的时候都需要使用该管脚。该管脚既能输入也能输出。 注意: 当Service Pin没有连接LED和上拉电阻时,Service Pin有一个片内可选(可通过软件设置)的上拉以保证输入是无效的状态。 P340 图8.11
8、watchdog定时器 • 三个Watchdog定时器(每个CPU一个) 如果应用软件和系统没有定时地刷新这些Watchdog定时器,整个神经元芯片将自动复位。 复位周期 睡眠状态被禁止 。
三、通信 LON总线的一个非常重要的特点是它对多通信 介质的支持。由于突破了通信介质的限制, LON总线可以根据不同的现场环境选择不同的 收发器和介质。 1、双绞线收发器(三类) 直接驱动: 直接驱动是使用神经元芯片的通信端口作为收发器,同时加入电阻和瞬态抑制器作为电流限制和ESD保护,直接驱动方式适合网络上的所有节点在同一个大设备中,使用同一个电流源。
EIA 485: 使用EIA—485共模电压比直接驱动要好,但 不如变压器耦合,EIA—485共模电压是-7V ~+12V,也可以在共模电压中加入隔离。 变压器耦合: 变压器耦合接口能够满足系统的高性能、高 共模隔离以及同时具有噪声隔离的作用。 FTT—10A收发器
2、电源线收发器 • 电源线,指的是通信线和电源线共用一对双绞线。使用电源线的意义在于,所有节点通过一个48VDC中央电源供电 。 • 电源线收发器采用直流供电。 • 好处
3、电力线收发器 • 电力线收发器,是将通信数据调制成载波信号或扩频信号,然后通过耦合器耦合到220V或其他交直流电力线或没有电力的双绞线上。 • 使用电力线遇到的问题: • 对策: 每一个收发器包括一个数字信号处理器(DSP) 、短报文头纠错技术 、动态调整收发器灵敏度算法 、三态电源放大/过滤合成器。 常用两类:载波电力线收发器和扩频电力线 收发器
4、无线收发器 A、很宽的频率范围 B、大功率的发射机 5、光纤收发器
6、路由器 • 路由器是中继器、桥接器、配置型路由器和学习型路由器的统称。 • 路由器的用途: (1)扩展通道的容量 (2)连接不同的通信介质或波特率 (3)提高LON总线可靠性 (4)全面提高网络性能 Lonworks路由器包含两个可供选择的模块 (1)路由器组件——RTR—10模块 (2)路由算法。
四、Lonworks通信协议—LonTalk • 发送的报文都是很短的数据(通常几个到几十个字节); • 通信带宽不高(几kbps到2Mbps); • 网络上的节点往往是低成本、低维护的单片机; • 多节点,多通信介质; • 可靠性高; • 实时性高。
术语解释 • 基本通道 • S&F重复器 (store & forward repeater) 传输一个通道或两个通道的所有数据 • 桥接器(bridge) 连接两个通道(x和y);传输在一个域中的从x到y、或从y到x的所有数据 • 子网(subnet) 一系列节点的集合(节点数目<128) • 路由器(router) 传输从一个子网到另一个子网的数据 • 网关(8ateway) 传输从一个域到另一个域的数据
服务请示 服务指示 服务请示 服务指示 PDU N层协议实体 N层协议实体 LonTalk协议的分层符合OSI的标准术语。 • 下图为各层数据单元的标准接口
LonTalk的协议数据单元(PDU——Protocol Data Unit)包含8部分: • MPDU (MAC Protocol Data Unit)MAC层协议数据单元,数据称为帧(Frame)。 • LPDU (Link Protocol Data Unit)链路层协议数据单元,数据称为帧(Frame)。 • NPDU (Network Protocol Data Unit)网络层协议数据单元,数据称为报文 (Packet)。 • TPDU (Transport Protocol Data Unit)传输层协议数据单元,数据称为消息应答(Message/ACK)。
SPDU (Session Protocol Data Unit)会话层协议数据单元,也称为请求/响应(Request/Response); • NMPDU (Network Management protocol Data unit)网络管理协议数据单元。 • DPDU (Diagnostic Protoc01Data Unit)网络检测协议数据单元。 • APDU (AppLication Protoc01Data Unit)应用层协议数据单元。
四、LonTalk七层协议 • LonTalk是ISO组织制定的OSI开放系统互连参考模型的七层协议的一个子集。它包容了LON总线的所有网络通信的功能,包含一个功能强大的网络操作系统,通过所提供的网络开发工具生成固件,可使通信数据在各种介质中非常可靠地传输。由于LonTalk协议对OSI的七层协议的支持,使LON总线能够直接面向对象通信,具体实现就是采用网络变量这一形式。网络变量使节点之间的通信实现只是通过网络变量的互相连接便可完成(表8.10为LonTalk和OSI的七层协议的比较)。
LonTalk协议物理层通信协议 • LonTalk协议在物理层协议支持多种通信协议,即支持不同的数据解码和编码。(例) • LonTalk支持在通信介质上的硬件碰撞检测。
LonTalk协议的网络地址结构及对大网络的支持 • 网络地址可以有三层结构:域(Domain)、子网(SuLnet)和节点(Node)。 第一层结构是域。域的结构可以保证在不同的域中通信是彼此独立的。 第二层结构是子网。每一个域最多有255个子网。 第三层结构是节点。每个子网最多有127个节点。 每一个神经元芯片有一个独一无二的48位ID地址,这个ID地址是在神经元芯片出厂时由厂方规定的。一般只在网络安装和配置时使用,可以作为产品的序列号。图8.24为报文地址结构。
链路层数据 指示 链路层数据 请求 链路层 MAC子层 物理层数据 指示 物理层数据 请求 物理层通道活跃 LonTalk MAC子层 • LonTalk协议的MAC子层是链路层的一部分,它使用OSI各层协议的标准接口和链路层的其他部分进行通信,如图 。
LonTalk协议使用改进的CSMA介质访问控制协议称为带预测的P—坚持CSMA (Predictive P—presistent CSMA),可有效地避免了网络的频繁碰撞 。 方法: 每一个节点发送前随机的插入0~W个很小的随机时间片,因此网络中任一节点在发送普通报文前平均插入w/2个随机时间片,而W则根据网络积压参数(Backlog)变化进行动态调整,其公式是W=BL*Wbase,其中Wbase=16,BL为网络积压的估计值,它是对当前发送周期有多少个节点需要发送报文的估计。
参见书P360图8.27 • BL值的确认: BL值是对当前网络繁忙程度的估计。每一个节点都有一个BL值,当侦测到一个 MPDU时或发送一个MPDU时BL加1;同时再每隔一个固定报文周期BL减l。把BL值加入到MPDU/LPDU的头中。当BL值减到1时,就不再减,总是保持BL>=1。
优先级时间片(priority slot) 优先级时间片是从0一127 • LonWorks的MAC子层具有以下的优点: 支持多介质的通信,支持低速率的网络,可以在重负载的情况下保持网络性能,支持大型网络。
LonTalk协议的链路层 • LonTalk协议的链路层提供在子网内LPDU帧顺序的无响应传输。它提供错误检测的能力,但不提供错误恢复能力,当一帧数据CRC效验错,该帧被丢掉。 LonTalk协议的网络层 • 在网络层,LonTalk协议提供给用户一个简单的通信接口,定义了如何接收、发送、响应等,在网络管理上有网络地址分配、出错处理、网络认证、流量控制,路由器的机制也是在这一层实现。
LonTall5协议的传输层和会话层 • LonTalk协议的核心部分是传输层和会话层。一个传输控制子层管理着报文执行的顺序、报文的二次检测。传输层是无连接的,它提供1对1节点、1对多节点的可靠传输。信息认证(authentication)也是在这一层实现的。 • 会话层主要提供了请求/响应的机制,它通过节点的连接,来进行远程数据服务(remote servers),因此使用该机制可以遥控实现远端节点的过程建立。LonTalk协议的网络功能虽然是在应用层来完成的,但实际上也是由提供会话层的请求/应答机制来完成的。
LonTalk协议的表示层和应用层 LonTalk协议的表示层和应用层提供五类服务 网络变量的服务 显示报文的服务 网络管理的服务 网络跟踪的服务 外来帧传输的服务
LonTalk协议的网络管理和网络诊断 LonTalk协议的网络管理和网络跟踪提供了四类服务 • 地址分配:分配所有节点的地址单元,包括域号、子网号、节点号以及所属的组名和组员号,值得注意是Neuron ID是不能分配的。 • 节点查询:查询节点的工作状态以及一些网络的通信的错误统计,包括通信CRC效验错、通信超时等。 • 节点测试:发送一些测试命令来对节点进行测试。 • 设置配置路由器的配置表。
LonTalk协议的报文服务 • LonTalk协议提供了四种类型的报文服务,这些报文服务除请求/响应是会话层实现外,其他三种都在传输层实现: 应答方式(acknowledge),或者是端对端(end to end)的应答服务 请求/响应方式(request / response) 非应答重发方式(unacknowledged repeated) 非应答方式(unacknowledged)
LonTalk协议的网络认证 • LonTalk协议支持报文认证,收发双方在网络安装时约定一个6个字节认证字,接收方在接收报文时判断是否经发送方认证的报文,只有经过发送方认证的报文方可接收。
五、面向对象的编程语言——Neuron C • Neuron C是一种编程语言,它以ANSI C为基础,专门为神经元芯片而设计,同时加入通信、事件调度、分布数据对象和I/O功能,是编写神经元芯片程序的最为重要的工具。 • Neuron C支持的数字类型为: • char 8bits signed or unsigned • short 8bits signed or unsigned • int 8bits signed or un5igned • long 16bits signed or unsigned • Boolean 8bits
Neuron C有自己扩展的运行库和语法。 1、定时器 在一个程序中,最多可以定义15个软件定器对象。 这些软件计数器在网络处理器运行,它们是和神经元芯片上的两个硬件定时/计数器分离的。
2、网络变量 • 应用程序可以定义一个特殊的静态对象类——网络变量,这些网络变量可以是整型、字符型或结构等类型。 • 网络变量可以与一个或多个其他节点的网络变量互连。 • 特点: ①节点的数据可以通过网络变量进行共享。
②网络变量的传送是通过LonTalk协议来完成的,对用户来说是透明的,简化了开发和安装分布系统的过程。②网络变量的传送是通过LonTalk协议来完成的,对用户来说是透明的,简化了开发和安装分布系统的过程。 ③网络变量需要一个连接(binding)的过程,这个连接的过程是通过网络管理工具来完成的。 连接过程实际上是发送一组包含节点的地址、报文类型等信息的网络管理报文到需要连接的节点,这些节点再将收到的配置信息写入节点的地址表和网络变量配置表中。 注意:网络变量的定义是在节点代码编译时完成的;而连接过程则是在节点运行过程中,可以是在节点联网之前或之后完成的。
④一个节点最多可以定义62个网络变量(对于数组型网络变量包含数组中每个单元)。④一个节点最多可以定义62个网络变量(对于数组型网络变量包含数组中每个单元)。 小系统 大系统 网络变量要求其长度不能超过31字节 。 ⑤根据LonTalk协议网络变量的更新也提供了 四种服务: ACKD 应答服务 REQUEST 请求/D向应方式,输入 网络变量使用垂询方式实现 UNACKD RPT 非应答重发方式 UNACI(D 非应答方式
⑥网络变量还可以根据LonTalk协议定义为认证方式、优先级等方式,还可以定义同步方式,它能保证网络变量的所有更新都被传送。⑥网络变量还可以根据LonTalk协议定义为认证方式、优先级等方式,还可以定义同步方式,它能保证网络变量的所有更新都被传送。 网络变量包含完成四个事件: Nv__update__occurs 输入网络变量接收 到一个输入值 Nv__uPdate__fails 输出网络变量发送 失败 nv__update__succeeds 输出网络变量发 送成功 nv__update__completrs 输出网络变量发 送完成(包括失败 和成功)
3、显示报文 • 所谓显示报文是一个结构变量,该结构分为输出显示报文、输入显示报文、响应输出报文和响应输入报文。 其标准格式如书P366所示。 在显示报文中提供对通信目的/源地址、优先级、认证等方式的直接操作。所有对显示报文的操作都是通过对运行库的调用来实现的。这些调用如书P367所示。
显示报文包含完成五个事件: msg—arrivers() 报文收到 msg—comPIetes() 报文发送完成 msg—succeeds() 报文发送成功 msg—fails() 报文发送失败 resp—arrives() 响应报文收到 书P368表8.11为描述显示报文操作的简表,以帮助理解结构变量、函数和事件的关系。
注意: ①显示报文提供了一个节点上的应用激活另一个节点操作的方法。 ②Neuron C编程的过程中,并不提倡使用显示报文进行通信 。因为显示报文不像网络变量那样容易实现互操作,显示报文的数据格式更依赖于具体的应用。
4、调度程序 ①调度程序容许编程者定义事件,这些事件可以定义优先级 ,Neuron c任务调度是非实时的 。 ②事件是通过When语句来定义 。 ③在Neuron c中定义了五类事件:系统级事件、输入输出事件、定时器事件、网络变量和显示报文事件、用户自定义事件。
六、应用系统 某铝电解厂的铝电解槽控机控制系统采用以LON总线作为现场总线,对该厂的l 04台槽控机进行联网,从而可靠地实现了整个铝电解系统的集散式控制。 该分厂有104台槽控机(槽控机采用北京康拓工业公司STD总线工业控制机,CPU是NEC的v40),分两个厂房和一个总控室,要求实时地将采集来的数据送至总控室的操作站(操作站是一台Pentium级的工业PC机),操作站再将一些重要的需要保存的数据送至全厂的数据库备案,同时操作站也将一些控制参数下传到槽控机。