LonTalk协议提供一整套通信服务,这使得设备中的应用程序能够在网络上同其他设备发送和接收报文而无需知道网络的拓扑结构或者网络的名称、地址,或其他设备的功能。LonWorks协议能够有选择地提供端到端的报文确认、报文证实和优先级发送,以提供规定受限制的事务处理次数。对网络管理服务的支持使得远程网络管理工具能够通过网络和其他设备相互作用,这包括网络地址和参数的重新配置、下载应用程序、报告网络问题和启动/停止/复位设备的应用程序。
LonTalk——也就是LonWorks系统——可以在任何物理媒介上通信,这包括电力线,双绞线,无线(RF),红外(IR),同轴电缆和光纤。
虽然组建控制网络的方法有很多,但是对于自动化控制而言,平坦的、对等式(P2P)体系结构是最好的。P2P体系结构和其它任何一种分级的体系结构相比,不再具有分级体系结构与生俱来的单点故障。在传统的体系结构中,来自某一个设备的信息要传递给目标设备,必须先传送到中央设备或者网关。因此,每两个非中央设备之间的通信包括了一个额外的步骤,或者说增加了故障的可能性。P2P体系结构的设计相比之下,它允许两个设备之间直接通信,这避免了中央控制器的故障可能性,并且排除了瓶颈效应。此外,在P2P设计中,设备的故障更多的可能是只影响到一个设备,而不象非平坦的、非对等式体系结构中潜在的影响到许多设备。
LonTalk采用改进的CSMA介质访问控制协议:
1、带预测的、P一坚持CSMA;
2、首先监听、在监听到网络空闲后,所有的节点都根据网络积压参数等待一个随机时间后访问介质,以有效避免网络的频繁碰撞;
3、任一节点在发送普通报文前平均插入W/2个随机时间片,W随网络积压状况变化动态调整,W=16*BLB为对网络积压的估计值,估计当前发送周期会有多少个节点需要发送报文;
4、当延时结束时,若网络仍为空闲,则节点发送报文,否则节点继续监听检测网络是否有空闲每个节点都有一个对网络积压的估计值BL,这样减小了冲突的可能性;
5、网络负荷轻时,插入的时间片少,节点发送前的等待时间短,否则等待时间长。
LonTalk通信协议分层结构
1、物理层
物理层的功能是在两个结点之间通过传输媒介物理通道,并向上面的数据链路提供透明的位流传输.LonTalk协议支持双绞线、电力线、无线射频、红外线、同轴电缆以及光缆等不同类型的传输媒介。协议还支持网络分段,并且网络各段可使用不同的传输媒介,不同的传输媒介之间用路由器相连.Lonworks的标准产品收发器是Neuron芯片和传输媒介之间通信接口,不同类型的传输介质有不同类型的收发器。
对同一种传输媒介,可以设计多种不同传输速率的收发器
2、数据链路层
数据链路层的功能是保证物理链路上数据的可靠传送,它负责数据帧的传送,并进行必要的同步控制、差错控制和流量控制,并向上层(网络层)提供无差错的数据传输。数据链路层还可细分为介质访问控制(MAC)和逻辑链路控制(LLC)两个子层。
1)介质访问控制协议(MAC协议)
MAC协议是数据链路层协议的一部分.LonTalk协议采用可预测P)坚持CSMA.CSMA是载波侦听多路访问的英文缩写,是一种随机访问方法。其含义是:任何结点要访问传输介质发送消息时,首先要侦听介质上是否有其它结点正在传送信息(即有无载波,如果介质无载波,未被占用,则可以利用信道进行信息传送,如果其它结点正在利用传输介质进行通信,则必须等待信道空闲之后才能进行传送.CSMA方案有许多处理方法,主要区别在于检测出信道上的情况之后,发送时间的确定。所谓可预测P)坚持CSMA的意思是:要求发送数据的节点监听信道,若信道闲,则以概率P发送信息包,并以1)P的概率延迟一个时隙重新监听信道,若信道仍然闲,则重复上述过程。若发送节点一开始就监听到信道忙,则继续监听,直到信道由忙变闲后以概率P发送信息包,以1-P的概率延迟一个时隙再监听。关键在于P的选择。若有N个站有数据等待发送,如果选择P过大,会使N@P》1,则冲突不可避,导致吞吐量下降。不过P值也不能过小,致使1-P过大,信道利用率则会大大降低.LonTalk协议中的概率P根据网络负载的轻重是可预测的。在网络重载的情况下,P值调小以降低网络冲突的可能性,避免网络拥塞现象。在网络轻载的情况,P值调大,减小媒介的访问延时。某一个时刻的网络负载就是该时刻网上将要发送的消息包的数目D.采用CSMA的控制方法进行信息传送,在对方收到消息之后,还需要向发送结点送回一个肯定回答信息,以表示接收节点已经全部正确地接收到该消息。因此,LonTalk协议规定,某个要发送消息的结点要在它发送的消息包中插入将要回送该消息的应答信息的接收节点的数目。这样所有收到该消息包的结点将其原来的D值加上该应答数,使节点的D值得到更新从而实现预测。每个节点在消息包发送结束,它的D值自动减1.由此,每一个节点都能动态地预测某一时刻网络负载的轻重,并以D值表示,D的取值范围是1~63.有了D值,则发送概率P=1P(D@16)=1/R,R=16@D,其中R就是数据传送完成后给网上节点分配的随机时隙的数目。显然,网络重载,D大,R多,以减少各节点因同时发送消息带来的冲突。相反,网络轻载,D小,R少,以减少各节点媒介访问延时。
另外,如果选用的收发器支持硬件冲突检测,Lon-Talk协议就支持冲突检测(CD)以及自动重发。
LonTalk协议通过提供优先服务机制以改善对重要消息包的响应时间。优先级时隙的数目M可以是0~27.较小的M数代表较高的优先级。优先级时隙1预留给网络管理器,因而网络管理器是优先级最高的节点。当某个节点产生一优先级消息包A时,包A将按优先级排队输出,但是将插在已缓存在随机时隙还未输出的非优先级消息包之前。
总之,节点在发送两个消息包之间有一个段空闲时间,称为休闲期。休闲期包括两部分,Betal时间和Beta2时隙.Beta2时间是一固定的时间段。如果消息包的长度为12个字节,传输速率为1.25Mbps则Beta1370Ls.Beta2时隙包括上述随机时隙和优先级时隙。发送节点被分配到某个时隙中,等待顺序发送消息。
2)消息包数据格式
一个消息包包括三部分:开头的同步头(至少6bit),末尾的传输结束码(至少2bit),中间是数据和16bit的CRC.通信端口采用差分曼彻期特编、解码技术来编、解码发送及接收的数据。其编码规则为:每个位单元内至少有一次跳变,在位单元中心上跳变为/10,下跳变为/00.这种编码可用来指示信道是否有信息正在传输,便于载波侦听.16bitCRC是差错控制中的循环冗佘校验码,检错能力相当强。
消息包的平均包长为10~16个字节。包中数据由三部分组成:网络域名对应的字节,采用不同的编址方式对应的地址码字节,以及网络变量或一个显性消息中数据部分的数据字节。最大消息包长度为255字节,包括数据字节、地址字节和协议开销。
3、网络层
网络层有时也称通信子网层,其功能可简单归结为控制通信子网的运行。为简化路由,LonTalk协议定义了一种分层编址方式。最高层为域地址,下面为子网地址,再下是节点地址。每个域最多可有255个子网,每个子网的节点数最多为127个,显然一个单独的域中可容纳的最多节点数是255@127=32385个。而一个系统又可以由很多这样的域构成,因而人们可以构成很宏大复杂的网络。子网中的所有节点必须在同一区段上,子网不能跨越智能路由器。智能路由器的作用是决定子网相对智能路由器所处的位置,从而据此传送消息包。不同的通信媒介之间用路由器连接。
另外,为了使同一组中的多个节点可同时接收网上发出的单个消息及降低随同消息发送的地址信息的字节数,域中的节点可进行组编址。一个域中最多可指定256个组,而且对采用应答服务或请求P响应服务的组节点最多为64个,但对采用非应答服务的组节点数不限制。节点的组不仅可跨越同一域中的多个子网,而且可跨越多个通道。
神经元芯片的标识符ID可用作地址。
LonWorks数据包中的源地址一般由域字段(长度为0,1或3字节)、子网号(2~255)和节点号(1~127)组成。域和地址表驻留在Neuron芯片的EEPROM内.LonWorks数据包中的目的地址通常有域号、单个子网号、组号、子网和节点号或48位ID等。如此地址表中存放有消息的目的地址,则该消息使用的是隐式编址方式。相反则是显式编址。
在LonTalk协议中,节点使用网络变量(产生隐式消息)显式消息或组消息进行相互间的通信。网络变量消息的构造及发送在后台进行。网络层将地址消息附加到消息中后将该消息传递到MAC层。因为发送、接收是自动的,所以把网络变量消息称为隐式消息,以与显式消息区别。显式消息一般在网络变量不适合使用的场合才使用。通过使用(msg-addr.h)t(addrdefs.h)两个文件,可以实现显式消息及网络变量的显式寻址。
4、传输层协议
传输层协议在OSI上层模型中是低三层与高三层之间衔接的接口,为用户提供进程与进程之间的通信。它从下层获及的服务是发送和接收顺序正确的数据块。它向上层提供的服务是为无差错的报文收发提供传输道路和传输地址。
针对消息服务的可靠性及有效性,LonTalk协议提供有应答服务、非应答服务。应答服务也被称为端对端的应答服务,最可靠。当一消息发送到一个节点或一组节点时,发送节点将等待所有应收到该消息的节点发回应答。发送节点在预定的某个时间内未收到所有应收应答,则发送节点时间溢出,并重发该消息。重发消息的次数及时间溢出值可选择设定。应答由网络CPU产生.LonTalk协议采用事务标识符ID值来跟踪消息及其应答。同一个消息具有同样的事务标识符,从而能避免某个应用程序重复接收某一个消息。
LonTalk协议还提供非应答服务,可靠性最差,某个消息一次性发往某个某组节点,无应答或响应,又无重发机制。这种服务类型,通常在需极高的传送速率或有大量数据要发送时采用。
LonTalk协议的传输层有5个定时器:事务定时器、重发定时器、组接收定时器、非组接收定时器和等待空闲缓存定时器。其值由网络管理工具LonBulder或LonMaker自动计算并配置。应答服务使用事务定时器和接收定时器。事务定时器用于确定重发之前允许等待应答的时间,重发次数在地址表中配置。重发动作将在重发次数达到设定值或所有的应答都收到的情况下停止。接收定时器用于防止同一消息的重复接收。如果来自同一源地址且具有同一个事务ID的消息在接收定时器溢出之前被接收,则被认为是前一消息的重发。反之,则被认为是新的事务。接收定时器在接收节点接收到有效事务记录的同时被启动。
非应答服务使用等待空闲缓存器定时器,该定时器确定节点发送消息时等待空闲缓存器的最长时间。如果在设定的时间内不能获得空闲缓存器,节点将认为出现严重错误并复位。
5、会话层协议
会话层协议的功能是在两个节点或用户之间进行原始的报文传输,并增加了一些面向用户的服务。这些服务包括用户标识识别,履行注册手续、对话管理及故障恢复等。
LonTalk协议除了提供应答P非应答服务外,还提供了请求P响应服务类型。当一请求发送到某节点或某组节点时,发送节点等待所有应收到该消息的节点发回响应。响应可包括数据。所以这种服务类型特别适合于远程过程调用或客户机P服务器应用。使用请求P响应机制,使得运行在某个节点上的应用程序,可以从运行在其它节点上的应用程序得到数据。神经元芯片中的固件自动使用请求P响应机制轮询输入网络变量。所谓轮询是从调度程序中获得某一网络变量的最近值,应用程序不介入。使用显式消息的应用程序也可以使用请求P响应机制。
6、表示层协议
表示层协议的目的是对应用层输入的命令和数据内容加以解释说明,并赋予各种语法以应有的含义,使从应用层送入的各种信息具有明确的表示意义。
LonTalk协议表示层中的数据被称为网络变量。它可以是单字节或多字节的数据项或数据结构(最多31字节),代表了网上节点间可共享的信息。用户可以完全自由地去应用程序中定义各种类型的网络变量。为增加网络的互操作性,LonTalk协议中定义了255种标准网络变量,将某些数据类型如温度、压力、流量等规范化。当然用户不一定要使用标准网络变量(SNVT)。用户在应用程序中声明网络变量,经过编译,网络节点中就建立了相应的数据结构和输入P输出缓冲区。在网络建立时,将不同的节点中的输入P输出缓冲区连接起来就完成了网络变量间的连接。当在应用程序中通过赋值改变某个输出网络变量的值时,调度程序构造一个网络变量消息并将该消息传递到网络层,网络层将地址信息附加到消息中后将消息传递到MAC子层,
MAC子层再将该层的信息附加到网络变量消息中,最后将消息发送到通道上。接收节点的过程正相反。发送和接收都是由神经元芯片的固件自动进行的。网络变量可以被赋予鉴别服务,也可以被指定优先级,也可以指定为同步网络变量。
除网量变量外,LonTalk协议还提供了另外一种数据类型,显式消息。网络变量有一定的局限性,长度一经确定就不能改变,且最多只有31字节。显式消息的数据长度是可变的,且最长可以是228字节。节点使用消息标签发送和接收显式消息。
LonTalk协议有一部分专门保留的消息代码用于实现对外来帧的传送。外来帧中的数据字节最多是229字节。应用程序可以按其需要以任何方式来解释数据。
LonTalk协议内有一网络接口协议可选择用来实现LONWORKS应用在各类主处理器上的运行.LonTalk网络接口协议定义了网络接口与主机之间的包格式交换。
7、应用层协议
应用层是参考模型的最高层,直接为用户服务,是发送和接收用户应用进程,进行信息交换的执行机构。一般来说各种资源的外部属性及其管理功能划归应用层。而各种资源的内部属性及其有关管理功能划归表示层。
LON网络由LON节点组成.LON节点是同物理上与之相连的IPO设备交互作用并在网上使用LonTalk协议与其它节点相互通信的一类对象.LON节点有两种类型,即基于神经元芯片的节点和基于主机的节点。不论哪种类型的节点都有一片神经元芯片用于通讯和控制,一个IPO接口用于连接若干个IPO设备,另外还有一个收发器将节点连接上网。节点的具体工作由节点中的应用程序以及配置信息来定义.LonTalk协议的应用层增加了四类对象:IPO对象、定时器、网络变量和消息标签。这也是NeuronC语言所附加的对象。神经元芯片通过11只IPO引脚与外部物理设备相连.11只引脚共可组成34种不同的IPO对象,可分为输入、输出和双向三大类别,用户可根据需要灵活配置,使用十分方便。采用NeuronC语言,编程人员可以定义一个或多个引脚作为输入P输出对象。一个IPO对象就是一个定义的输入或输出波形,也可看成是存放在ROM供用户应用程序访问的已编写的固件例程。用户程序可通io-in( )和io-out( )系统调用这样简单的方法来访问这样IPO对象,并在程序执行期间完成输入P输出操作。用户无需关心其中的物理过程。
LonTalk协议的应用层还规定了节点和网络的配置特性。这些配置信息固化在神经元芯片的存储器中。节点的存储映像包括系统映像、应用映像和网络映像三部分。应用映像和网络映像是用户定义部分。它们最终以7个数据结构下载到EEPROM中。
LonTalk协议的用户层面
LONWORKS技术的一个很重要特点是为用户提供了一整套LON网的开发、安装、维护和管理的工具平台。它们是开发工具LonBuider和NodeBuider,安装工具LonManager和LonMaker.使用LonMaker安装LON网是最有效的方法。它的操作过程是,首先定义网络的子域,然后定义域外、通道介质、节点设备。接着进行节点设备的安装,然后对节点中和节点之间的网络变量进行连接,并将这种变量的连接下载到神经元芯片的EEPROM中。安装工具自动操作复杂程序,确保所有LonTalk规则的执行,用户不需要了解太底层的东西。这是在应用程序中仅使用网络变量的情况。与网络变量相比,显式消息是实现节点之间交换信息的更为复杂的方法,编程人员必须在应用程序中生成、发送和接收显式消息,因而要求编程人员了解例如分配消息缓存区、节点地址、请求P响应及消息重发处理等更底层的知识,因而对LonTalk协议有比较深入的了解是必要的。
评论
查看更多