




已阅读5页,还剩57页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第八章,LON和LonWorks,第八章LON和LonWorks,LON(LocalOperatingNetworks)是Echelon公司开发的现场总线,并开发了配套的LonWorks技术。开放的总线平台技术,该技术给各种控制网络应用提供端到端的解决方案。LON和LonWorks技术可以应用于工业控制、交通控制、楼宇自动化等领域。,主要内容,第一节总体概述第二节LonTalk协议第三节神经元芯片第四节NeuronC编程,第一节总体概述,一、LonWorks技术特点1、支持OSI七层模型的LonTalk通信协议LonTalk通信协议支持OSIRM的所有七层模型,是直接面向对象的网络协议。LonTalk协议通过神经元芯片实现,不仅提供介质存取、事务确认和点对点通信服务;还提供一些如认证、优先级传输、广播组播消息等高级服务。2、神经元芯片神经元芯片是LonWorks技术的核心,它不仅是LON总线的通信处理器,而且是具有I/O和控制的通用处理器。神经元芯片已提供了LonTalk协议的第16层,开发者只需用NeuronC语言开发。,3、基于LNS的软件工具LonMaker是图形化工具,用于图形绘制、系统调试和网络的维修保养;节点开发工具NodeBuilder;节点和网络安装工具LonBilder;网络管理工具LonManager。4、开放性LonWorks技术提供了开放系统设计平台,使不同公司生产的同类LonWorks产品可以互操互换。LonWorks产品的互操作标准由LonMark协会制定。,二.LON总线系统的开发LON总线系统的开发有两种途径:基于开发工具LonBuilder或NodeBuilder,使用NeuronC语言编程,即针对具体控制系统的要求编写应用代码,然后经过编译与通信协议代码连接生成总的目标代码,一起烧录到节点的存储器中;基于图形方式的软件开发工具VisualControl,通过组态构成控制系统,自动编译生成总的目标代码,直接下载到节点的FlashROM中。对复杂系统,需编制自定义模块。,第二节LonTalk协议,一、LonTalk协议简介LonTalk协议是LON总线的专用协议,是LonWorks技术的核心。它符合ISO/OSI参考模型的七层体系结构。LonTalk协议提供一系列通信服务,可使一台设备的应用程序可以在不了解网络拓扑、名称、地址或其他设备功能的情况下发送和接收网络上其他设备的报文。采用神经元芯片的网络节点含有LonTalk协议固件,使网络节点可以可靠地通信。,采用分级编制方式,即域、子网和节点地址。支持多种通信介质,如双绞线、电力线、同轴电缆、无线电和红外线、光纤传输介质等。支持多点通信,互操作性强,网络上任一节点可对其他节点进行操作,传输控制信息。发送报文是很短的数据(通常几个到几十个字节),通信带宽不高(几kbit/s到2Mbit/s),响应时间快,通信安全可靠。网络节点是低成本、低维护的单片机。,1.LonTalk协议特点,2.LonTalk的七层协议,二、LonTalk各层协议及功能1.物理层LonTalk协议支持一种或多种不同传输介质构成的网络不同介质的传输距离、传输速率、网络拓扑结构以及所使用的收发器均不相同,为支持各种传输介质,物理层协议支持多种通信协议,即支持不同的数据解码和编码。LonTalk协议支持在通信介质上的硬件碰撞检测,可自动地将正在发生碰撞的报文取消,重新再发。,(1)MAC子层介质访问控制(MAC,MediaAccessControl)层是数据链路层的一部分。为使数据帧传输独立于所采用的物理介质和介质访问的控制方法,将数据链路层分为两个子层:逻辑链路控制(LLC,LogicalLinkControl)和介质访问控制(MAC)。LLC与介质无关,MAC则依赖于介质。MAC协议是确定设备安全地传送数据包,减少冲突的控制算法。它使用OSI标准接口和链路层的其他部分进行通信。,2.链路层,LonTalk的MAC协议是CSMA(载波信号多路侦听)协议的一种改进:带预测的P-坚持CSMA(PredictiveP-PersistentCSMA)。当一个节点信息需要发送而试图占用通道时,首先在Beta1周期检测通道有没有通信发送,以确定网络空闲。若空闲,节点产生一个随机等待T,T为0W个时间片Beta2中的一个,当延时结束时,网络仍为空闲,节点发送报文。,在MAC层中,为提高紧急事件的响应时间,提供了一个可选择的优先级的机制。如图8-4所示为优先级带预测的P坚持CSMA概念示意图。,LonWorks的MAC子层的优点:支持多介质的通信,支持低速率的网络,可以在重负载的情况下保持网络性能,保证在过载情况下不会因为冲突而降低吞吐量。当使用支持硬件冲突检测的传输介质(如双绞线)时,一旦收发器检测到冲突,LonTalk协议就可以有选择地取消报文的发送,这使节点可以马上重新发送并使冲突不再重发,有效地避免了碰撞。,(2)链路层(逻辑链路控制)链路层确保链路层数据单元(LinkProtocolDataUnit,LPDU)的数据在子网内顺序无响应传输。它提供错误检测,但不提供错误恢复,当一帧数据CRC效验错,该帧被丢掉。在直接互连模式下,物理层和链路层接口的编码是曼侧斯特编码。在专用模式下根据不同的电气接口采用不同的编码方案。CRC效验码加在网络层数据单元(NPDU,NetworkProtocolDataUnit)帧的最后。CRC采用的多项式是X16+X12+X5+1。,在网络层,LonTalk协议提供给用户一个简单的通信接口,定义了如何接收、发送、响应等,在网络管理上有网络地址分配、出错处理、网络认证、流量控制、路由器机制。(1)LonTalk协议的网络地址结构LonTalk地址唯一地确定一个LonTalk数据包的源节点或目标节点,路由器则利用这些地址在信道之间选择数据包的传输路径。为了简化路由选择,LonTalk协议定义了分级的网络地址形式:域(Domain)、子网(Subnet)、节点(Node)地址、组地址。,3.网络层,1)域(domain)地址域是一个信道或多个信道上的节点的逻辑集合。一个域就是一个实际意义上的网络,通信只能在同一域中配置的节点之间进行。多个域可以占用同一个信道,所以,域地址可以用来隔离不同网络上的节点,域的结构可以保证在不同的域中通信是彼此独立的。域标识符是唯一的。,2)子网(Subnet)地址一个子网是在同一域中节点的逻辑集合,是一个或多个通道的逻辑分组。一个子网最多可有127个节点,一个域最多可有255个子网。一种子网层的智能路由器产品可以实现子网间的数据交换。子网中的所有节点必须在同一信道上,如果一个节点属于两个域,该节点必须属于每个域中的一个子网。,3)节点(Node)地址节点地址是节点被赋予的所属子网内的唯一的节点标识码。节点的标识码为7位,所以每个子网最多可以有127个节点。一个域中最多可以有32385个节点(255127)。任一节点可以分属一个或两个域,容许一个节点作为两个域之间的网关(gateway),也容许一个节点将采集来的数据分别发向两个不同的域。,4)组(Group)地址组是一个域内节点的逻辑集合。与子网不同,组不需要考虑节点的物理位置。组可以包括路由器,一个组可在一个域中跨越几个子网,或几个通道。每一个组对于需应答服务的节点最多可包含64个,而对无应答服务的节点个数不限,一个节点最多可以属于15个组,一个域最多可以有256个组。组地址的长度为1个字节。分组结构可以使一个报文同时为多个节点所接收。,5)芯片地址(NeuronID)每一个神经元芯片有一个独一无二的48位ID地址,这个ID地址是在神经元芯片出厂时由厂方规定的,这个ID码是唯一的。一般只在网络安装和配置时使用,可以作为产品的序列号。节点也可以用NeuronID寻址。,(2)寻址格式一个通道是指在物理上能独立发送报文(不需要转发)的一段介质。LonTalk规定一个通道至多有32385个节点。一个网络可以由一个或多个通道组成。通道之间是通过桥接器(bridge)来连接的。尽管NeuronID也可以作为地址,但它不能作寻址的唯一方式,这是因为该寻址方式只支持一对一的传输,使用其作为地址将需要过于庞大的节点路由表以优化网络流量。节点有五种寻址方式。寻址格式确定了地址格式的字节数。,LonTalk协议的核心部分是传输层和会话层。传输层是无连接的,它提供1对1节点、1对多节点的可靠传输。信息认证(authentication)也是在这一层实现的。会话层主要提供了请求/响应的机制,它通过节点的连接,来进行远程数据服务(remoteservers),因此使用该机制可以遥控实现远端节点的过程建立。LonTalk协议提供四种类型的报文服务:应答方式、请求/响应方式、非应答重发方式、非应答方式,这些报文服务除请求/响应是在会话层实现外,其他三种都在传输层实现。,4.LonTalk协议的传输层和会话层,应答方式(acknowledge),或者是端对端(EndtoEnd)的应答服务,这是最可靠的服务方式。当一个节点发送报文到另一个节点或一个分组,每一个接收到报文的节点都分别向发送方应答,如果发送方在应答时间内没有全部收到应答,发送方将重新发送该报文,重发次数和应答时间都是可选的。报文应答服务是由神经元芯片的网络处理器完成的,不必由应用程序来干预。报文传输号用于跟踪报文和应答信号,确保节点不会收到重复的报文。,请求/响应方式(request/response)与应答方式有相同的可靠性,当一个节点发送报文到另一个节点或一个分组,每一个接收到报文的节点都分别向发送方响应,如果发送方在相应时间内没有全部收到响应,发送方将重新发送该报文,重发次数和响应时间都是可选的。报文相同应服务可以包含数据,是由应用处理器完成的,适合远程过程调用和客户服务器方式的应用。,非应答重发方式(unacknowledgedrepeated)是一种比较可靠的方式,当一个节点发送报文到另一个节点或一个分组时,不需要每一个接收到报文的节点向发送方应答或响应,而采用重复多次发送同一报文,使报文尽量可靠地被接收方收到。这种方式适合于节点较多的分组广播发送,从而避免因节点响应或应答而使网络过载。,非应答方式(unacknowledged)是最不可靠的一种方式,当一个节点发送报文到另一个节点或一个分组时,不需要每一个接收到报文的节点向发送方应答或响应,也不必重复多次发送同一报文,只发一次即可。这种方式适合对可靠性要求不高,对报文丢失不敏感,但需要速度较高、报文长度较长的应用场合。,LonTalk协议采用面向数据的应用协议。在这种方式下,节点间以标准工程单位或其它预定义的单位交换诸如温度、压力、状态和文字串等应用数据,同一工程量可送到多个节点,每个节点对该数据有不同的应用程序。LonTalk协议的表示层和应用层提供五类服务:网络变量的服务显示报文的服务网络管理的服务网络跟踪的服务外来帧传输的服务,5.LonTalk协议的表示层和应用层,三、LonTalk协议使用中注意的问题LonTalk协议是LonWorks技术的灵魂,它固化于神经元芯片中,是直接面向对象的网络协议。但在使用中注意以下几个问题。1.LonTalk协议的网络认证LonTalk协议支持报文认证,即允许报文的接收者确定报文的发送方是否有权发送。它用于防止未授权节点介入应用。报文认证的实现是在节点安装时收发双方约定一个6个字节认证字,接收方在接收报文时判断是否经发送方认证的报文,只有经过发送方认证的报文方可接收。,2.LonTalk协议的网络接口协议LonTalk协议包含一个可选择的网络接口协议,该协议支持在任一主处理器上运行的LonWorks应用程序。LonTalk网络接口定义网络接口和主处理器之间的数据交换格式。不同的网络接口具有不同的网络接口协议。在主处理器上执行的应用程序通过网络驱动器与网络接口通信,网络驱动器管理缓冲器分配,将来自或发往网络接口的数据送入缓冲器并且在网络接口层协议中屏蔽主机应用的任何差异。LonTalk网络驱动器定义了主机应用与网络驱动器之间的标准报文格式。,3.LonTalk协议中的定时器在使用LonTalk协议服务之前,需正确设置以下几个定时器:事务定时器(TramsactionTimer)重发定时器(RepeatTimer)组接收定时器(GroupReceiveTimer)非组接收定时器(Non-GroupReceiveTimer)缓冲器释放定时器(FreeBufferWaitTimer),4.网络效率网络的响应时间、安全性和可靠性是相互关联的。例如,应答服务方式是最可靠的,但它与非应答方式和非应答重发方式相比需要较大的网络带宽;对具有优先权的报文实时发送,对其它报文的发送是不利的;使用报文认证服务可使安全性增加,但要传送的报文数量将是无报文认证服务的两倍。,第三节神经元芯片,一、概述神经元芯片是LonWorks技术的核心,主要包含MCI43150和MCI43120两大序列。,1.神经元芯片的硬件结构,二、神经元芯片的结构,2.神经元芯片的处理单元神经元芯片内部装有三个微处理器:MAC通信处理器、网络处理器和应用处理器。图8-6为三个处理器和存储器结构的框图。,3.存储器神经元芯片有四种类型的存储器:(1)E2PROM用于存储网络配置和寻址信息、唯一的48位神经芯片标识码、用户应用程序代码和常用数据。(2)RAM用于存储堆栈段应用和系统数据,以及LonTalk协议网络缓冲区和应用缓冲区数据。(3)ROM用来存储神经元芯片固件,包括LonTalk协议、事件驱动任务调度器、应用数据库。(4)外部存储器3150芯片可寻址59392个字节的外部存储器,用于存储应用程序和数据、神经元芯片固件和保留空间。,3120芯片和3150芯片的存储器结构如图8-7和8-8所示,4.输入/输出在一个控制单元中需要有采集和控制的功能,为此在神经元芯片上特设置11个I/O口,即IO0IO10。这11个I/O口可根据不同的需求进行灵活配置,便于同外围设备进行接口,如可配置成RS232、并口、定时/计数I/O、位I/O等。,5.通信端口神经元芯片可以支持多种通信介质。使用最为广泛的是双绞线,其次是电力线,其他包括无线射频、红外线、光纤、同轴电缆等。表8-4列出了几种典型的收发器类型。,神经元芯片通信端口为适合不同的通信介质,可以将五个通信引脚配置成三种不同的接口模式,以适合不同的编码方案和不同的波特率,见表8-5。这三种模式是:单端模式、差分模式、专用模式。,(1)单端模式,(2)差分模式,(3)专用模式在一些专用场合,需要神经元芯片直接提供没有编码和不加同步头的原始报文。在这种情况下,需要一个智能的收发器处理从网络上或神经元芯片上来的数据。发送的过程是,从神经元芯片接收到这种原始报文,重新编码,并插入同步头;接收的过程是,从网络上收到数据,去掉同步头,重新解码,然后发送到神经元芯片。,6.定时/计数器神经元芯片带有两个片内定时/计数器:多路选择定时/计数器和专用定时/计数器。,7.时钟系统神经元芯片中包括一个分频器,通过外部的一个输入晶振来输入时钟。神经元芯片正常工作频率为625kHz10MHz。8.睡眠/唤醒机制神经元芯片可以通过软件设置进入低电压的睡眠状态。在这种模式下,系统时钟、使用的程序时钟和计数器关闭,但是使用的状态信息被保留。当输入有如下的转换时,如:I/O管脚的输入(可屏蔽)、IO4IO7、Service管脚信号、通信信号(可屏蔽)、差分模式CP0或CP1、单端模式CP0、专用模式CP3,正常的系统操作被恢复。,9.Service引脚Service引脚是神经元芯片里的一个非常重要的引脚,在节点的配置、安装和维护的时候都需要使用该引脚。该引脚既能输入也能输出。输出时,Service引脚通过一个低电平来点亮外部的LED,LED保持为亮表示该节点没有应用代码或芯片已坏;LED以1/2Hz的频率闪烁表示该节点处于未配置状态。输入时,一个逻辑低电平使神经元芯片传送一个包括该节点48位的NeuronID的网络管理信号。,10.Watchdog定时器神经元芯片为防止软件失效和存储器错误,包含三个Watchdog定时器(每个CPU一个)。如果应用软件和系统没有定时地刷新这些Watchdog定时器,整个神经元芯片将自动复位。神经元芯片支持节点方式,在这种节点方式下系统时钟和计数器关闭,但是状态信息,包括RAM中的信息不会改变,一旦I/O状态变化,或网络上信息有变,系统便会激活神经元芯片。它的内部还有一个最高1.25Mbit/s的独立于介质的收发器。,三、神经元芯片的应用I/O接口,神经元芯片通过11个引脚(IO0-IO10)连接到特定的应用外部电路。其专用编程工具NeuronC允许程序员将一个或多个引脚定义为I/O对象,通过函数“io_in()”和“io_out()”对所定义的I/O进行输入输出操作。神经元芯片的11个I/O有34种可选的工作方式,每种模式对应特定的数据传输方式,称为输入输出对象,可以有效地实现这11个I/O的测量、计时和控制等功能。,第四节NeuronC编程,一、NeuronC概述LON系统是由神经元芯片为核心的各种节点构成的。LonWorks为产品开发者、系统集成商和最终用户提供了用于研制、构建、安装和维护控制网络所需要的所有支持,这种一步到位的解决方案十分有利于用户将主要精力集中在所擅长的应用层的开发工作上。而应用层的软件可在NodeBuilder或LonBuilder开发系统下,采用一种专门的编程语言NeuronC进行开发。利用NeuronC语言,可简易地开发基于网络的应用系统。例如,该语言对不同节点所定义的变量都可简单地作为本地变量一样使用,只需在系统联调时给予互联即可。,二、NeuronC编程模型,NeuronC是一种基于ANSIC而为神经元芯片专门设计的编程语言,它对ANSIC进行了扩展以直接支持Neuron芯片的固件例程,是编写神经元芯片程序的最为重要的工具。1.数据类型NeuronC支持的数据类型有整型(int)、字符型(Char)、布尔型(boolean)、枚举类型(enums)、数组类型(arrays)、指针类型(pointers)、结构类型(structs)和联合类型(unions)等。值得注意的是NeuronC不支持ANSIC标准运行库的一些功能,如浮点运算、文件I/O等;但可用一个扩展的运算函数库运行IEEE754浮点、32位定点和符号运算。,2.软件定时器在一个程序中,最多可以定义15个软件定时器对象,这些软件定时器可分为两种:毫秒定时器和秒定时器。毫秒定时器是一个提供在164000ms时间范围内定时的定时器。秒定时器是一个提供在165535s时间范围内定时的定时器。这些定时器可重复递减任选的时间间隔,并且定时器的计时运行独立于神经元芯片的输入时钟。定时器计时结束引发一个称为timer_expires的事件,该事件触发用户编写的时钟事件过程代码,完成特定的任务。定时器变量的值可由应用程序在任一时刻设置。,3.网络变量应用程序可以定义一个特殊的静态对象类网络变量。网络变量的传送是通过LonTalk协议来完成的,对用户来说是透明的,网络变量提供了一个非常灵活的由系统中节点操作分布数据的方法。网络变量可以是整型、字符型或结构等类型。网络变量可以与一个或多个其他节点的网络变量互连。节点的数据可以通过网络变量进行共享。网络变量需要一个互联(Binding)的过程将不同节点的同类型的网络变量互连在一起。,一个节点最多可以定义62个网络变量,在通常情况下,特别是以神经元芯片为核心的小系统中,这并不是一个非常重要的限制,因为一个输入的网络变量可以和无数个输出的网络变量互联,一个输出的网络变量可以和无数个输入的网络变量互联。网络变量的长度不能超过31个字节,对于超过31个字节的数据可以使用显示报文。在程序中使用网络变量,网络变量消息的构造以及发送在后台进行。所涉及的软件层次有应用层、网络层以及MAC层。,网络变量的使用:应用程序首先对输出网络变量赋值,然后调度程序构造这个网络变量并将该消息传递到网络层,网络层将地址信息附加到消息中后将消息传递到MAC层,MAC层再将该层的信息附加到网络变量中,最后将消息发送到通道上。当该网络变量消息被网络上任一节点接收后,消息包被拆开,MAC层证实消息的有效性,网络层检查消息中的地址信息是否是发向本节点的消息。,4.显式报文在大多数情况下网络变量是网络通信的一个简单、可靠、快捷的方法。然而网络变量在个数、长度和发送目的地址等方面都使程序开发者收到限制。当应
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025第二人民医院超声清创设备操作考核
- 秦皇岛市中医院护理科研管理资格认证
- 2025年福建省莆田市仙游县森林防灭火指挥部招聘10人考前自测高频考点模拟试题及答案详解(网校专用)
- 重庆市人民医院种植急诊处理考核
- 大学风光课件
- 大学青马培训班知识方面课件
- 2025年宁波余姚市人民医院医共体第一次招聘编外人员16人模拟试卷及完整答案详解
- 2025年晋江市林业和园林绿化局公开招聘1人模拟试卷及一套参考答案详解
- 天津市人民医院饮食指导专项考核
- 唐山市人民医院药物球囊应用规范与疗效评估考核
- GB/T 32910.6-2025数据中心资源利用第6部分:水资源使用效率
- 2025年教师资格证面试结构化面试真题卷:小学信息技术教学案例分析
- 中医美容科管理制度
- 家乡介绍课件英文
- 2025国家开放大学电大《古代汉语》形考任务123答案
- 2025年上海市职业院校技能大赛思想政治教育课程教学能力比赛方案、教学能力比赛方案
- 医疗中心北欧设计理念与实践
- GB/T 45355-2025无压埋地排污、排水用聚乙烯(PE)管道系统
- 2025年全国硕士研究生入学统一考试 (数学二) 真题及解析
- 计算机保密安全教育
- 三字经全文带拼音(打印版)
评论
0/150
提交评论