收藏 分销(赏)

LON和LonWorks技术.pptx

上传人:丰**** 文档编号:4840774 上传时间:2024-10-14 格式:PPTX 页数:69 大小:2.56MB
下载 相关 举报
LON和LonWorks技术.pptx_第1页
第1页 / 共69页
LON和LonWorks技术.pptx_第2页
第2页 / 共69页
LON和LonWorks技术.pptx_第3页
第3页 / 共69页
LON和LonWorks技术.pptx_第4页
第4页 / 共69页
LON和LonWorks技术.pptx_第5页
第5页 / 共69页
点击查看更多>>
资源描述

1、第八章LON 和和 LonWorks第八章 LON和LonWorkslLON(Local Operating Networks)是Echelon公司开发的现场总线,并开发了配套的LonWorks技术。l开放的总线平台技术,该技术给各种控制网络应用提供端到端的解决方案。lLON和LonWorks技术可以应用于工业控制、交通控制、楼宇自动化等领域。主要内容l第一节 总体概述 l第二节 LonTalk协议l第三节 神经元芯片l第四节 Neuron C编程第一节 总体概述一、LonWorks技术特点1、支持OSI七层模型的LonTalk通信协议lLonTalk通信协议支持OSIRM的所有七层模型,是直

2、接面向对象的网络协议。lLonTalk协议通过神经元芯片实现,不仅提供介质存取、事务确认和点对点通信服务;还提供一些如认证、优先级传输、广播组播消息等高级服务。2、神经元芯片l神经元芯片是LonWorks技术的核心,它不仅是LON总线的通信处理器,而且是具有I/O和控制的通用处理器。神经元芯片已提供了LonTalk协议的第1-6层,开发者只需用Neuron C语言开发。l神经元芯片包括3个8位CPU、RAM、ROM、通信接口和I/O接口。ROM中存储操作系统、LonTalk协议和I/O函数库;RAM用于存储从网络上下载的配置数据和应用程序。3、基于LNS(LonWorks Network Op

3、erating System)的软件工具lLonWorks技术有多种基于LNS的工具,用于LON网络的维护和组态。lLonMaker是图形化工具,用于图形绘制、系统调试和网络的维修保养;l节点开发工具NodeBuilder;l节点和网络安装工具LonBilder;l网络管理工具LonManage以及客户服务器网络构架LNS技术。4、开放性lLonWorks技术提供了开放系统设计平台,使不同公司生产的同类LonWorks产品可以互操互换。LonWorks产品的互操作标准由LonMark协会制定。二.LON总线系统的开发lLON总线系统的开发有两种途径:a.基于开发工具LonBuilder或Nod

4、eBuilder,使用Neuron C语言编程,即针对具体控制系统的要求编写应用代码,然后经过编译与通信协议代码连接生成总的目标代码,一起烧录到节点的存储器中;b.基于图形方式的软件开发工具Visual Control,通过组态构成控制系统,自动编译生成总的目标代码,直接下载到节点的Flash ROM中。对复杂系统,需编制自定义模块。第二节 LonTalk协议l一、LonTalk协议简介lLonTalk协议是LON总线的专用协议,是LonWorks技术的核心。它符合1SO/OSI参考模型的七层体系结构,即含有物理层、链路层、网络层、传输层、会话层、表示层和应用层。lLonTalk协议提供一系列

5、通信服务,可使一台设备的应用程序可以在不了解网络拓扑、名称、地址或其他设备功能的情况下发送和接收网络上其他设备的报文。还提供端到端的报文确认、报文认证、打包业务和优先传送服务,支持网络管理服务,允许远程网络管理工具与网络设备进行交互。l采用神经元芯片的网络节点含有LonTalk协议固件,使网络节点可以可靠地通信。采用分级编制方式,即域、子网和节点地址。支持多种通信介质,如双绞线、电力线、同轴电缆、无线电和红外线、光纤传输介质等。支持多点通信,互操作性强,网络上任一节点可对其他节点进行操作,传输控制信息。发生报文是很短的数据(通常几个到几十个字节),通信带宽不高(几kbit/s到2Mbit/s)

6、,响应时间快,通信安全可靠。网络节点是低成本、低维护的单片机。1.LonTalk协议特点2.LonTalk的七层协议l物理层:定义通信信道上位流的传输,它确保源设备发送的位流准确地被目的设备接收。l数据链路层:定义介质访问方法和单一信道的数据编码。l网络层:定义设备名称和地址,源设备的报文如何选择路由到达一台或多台目的设备,以及当源设备和目的设备不在同一信道上时,如何确定报文路由。l传输层:确保可靠的报文传输。l会话层:对较低层数据交换加以控制。l表示层:定义报文数据的编码。l应用层:定义一种低层交换数据的公共语义解释,使不同应用程序中的网络变量改变时,均能自动将更新的网络变量值下传(发送)或

7、上传(接收)。应用层还定义了一个文件传输协议,用来传输应用程序间的传输流。二、LonTalk各层协议及功能 1.物理层lLonTalk协议支持一种或多种不同传输介质构成的网络l传输介质:双绞线(twisted-pair)、电力线(powerline)、无线射频(radio-frequency)、红外线(infrared)、同轴电缆(coaxial cable)和光纤(fiber),甚至是用户自定义的通信介质。l不同介质的传输距离、传输速率、网络拓扑结构以及所使用的收发器均不相同,为支持各种传输介质,物理层协议支持多种通信协议。l收发器是神经元芯片与信道的接口,LonTalk协议支持在通信介质上

8、的硬件碰撞检测,可自动地将正在发生碰撞的报文取消,重新再发。(1)MAC子层l介质访问控制(MAC,Media Access Control)层是数据链路层的一部分。为使数据帧传输独立于所采用的物理介质和介质访问的控制方法,将数据链路层分为两个子层:逻辑链路控制(LLC,Logical Link Control)和介质访问控制(MAC)。lLLC与介质无关,MAC则依赖于介质。MAC协议是确定设备安全地传送数据包,减少冲突的控制算法。它使用OSI标准接口和链路层的其他部分进行通信,如图8-1所示。2.链路层lLonTalk的MAC协议是CSMA(载波信号多路侦听)协议的一种改进:带预测的P-坚

9、持CSMA(Predictive P-presistent CSMA)。其MPDU如图8-2所示。l图8-3为带预测的P-坚持CSMA概念示意图。当一个节点信息需要发送而试图占用通道时,首先在Beta 1周期检测通道有没有通信发送,以确定网络空闲。若空闲,节点产生一个随机等待T,T为0W个时间片Beta 2中的一个,当延时结束时,网络仍为空闲,节点发送报文。l在MAC层中,为提高紧急事件的响应时间,提供了一个可选择的优先级的机制。如图8-4所示为优先级带预测的P坚持CSMA概念示意图。lLonWorks的MAC子层的优点:l支持多介质的通信,支持低速率的网络,可以在重负载的情况下保持网络性能,

10、保证在过载情况下不会因为冲突而降低吞吐量。当使用支持硬件冲突检测的传输介质(如双绞线)时,一旦收发器检测到冲突,LonTalk协议就可以有选择地取消报文的发送,这使节点可以马上重新发送并使冲突不再重发,有效地避免了碰撞。(2)链路层(逻辑链路控制)l链路层确保链路层数据单元(Link Protocol Data Unit,LPDU)的数据在子网内顺序无响应传输。它提供错误检测,但不提供错误恢复,当一帧数据CRC效验错,该帧被丢掉。l在直接互连模式下,物理层和链路层接口的编码是曼侧斯特编码。在专用模式下根据不同的电气接口采用不同的编码方案。CRC效验码加在网络层数据单元(NPDU,Network

11、 Protocol Data Unit)帧的最后。l在网络层,LonTalk协议提供给用户一个简单的通信接口,定义了如何接收、发送、响应等,在网络管理上有网络地址分配、出错处理、网络认证、流量控制、路由器机制。(1)LonTalk协议的网络地址结构 lLonTalk地址唯一地确定一个LonTalk数据包的源节点或目标节点,路由器则利用这些地址在信道之间选择数据包的传输路径。为了简化路由选择,LonTalk协议定义了分级的网络地址形式:域(Domain)、子网(Subnet)、节点(Node)地址、组地址。3.网络层1)域(domain)地址l域是一个信道或多个信道上的节点的逻辑集合。一个域就是

12、一个实际意义上的网络,通信只能在同一域中配置的节点之间进行。l多个域可以占用同一个信道,所以,域地址可以用来隔离不同网络上的节点。域的结构可以保证在不同的域中通信是彼此独立的。l域标识符是唯一的。2)子网(Subnet)地址l一个子网是在同一域中节点的逻辑集合,是一个或多个通道的逻辑分组。一个子网最多可有127个节点,一个域最多可有255个子网。一种子网层的智能路由器产品可以实现子网间的数据交换。子网中的所有节点必须在同一信道上,如果一个节点属于两个域,该节点必须属于每个域中的一个子网。3)节点(Node)地址l节点地址是节点被赋予的所属子网内的唯一的节点标识码。节点的标识码为7位,所以每个子

13、网最多可以有127个节点。一个域中最多可以有32385个节点(255127)。任一节点可以分属一个或两个域,容许一个节点作为两个域之间的网关(gateway),也容许一个节点将采集来的数据分别发向两个不同的域。4)组(Group)地址l组是一个域内节点的逻辑集合。与子网不同,组不需要考虑节点的物理位置。组可以包括路由器,一个组可在一个域中跨越几个子网,或几个通道。每一个组对于需应答服务的节点最多可包含64个,而对无应答服务的节点个数不限,一个节点最多可以属于15个组,一个域最多可以有256个组。组地址的长度为1个字节。分组结构可以使一个报文同时为多个节点所接收。5)芯片地址(Neuron ID

14、)l每一个神经元芯片有一个独一无二的48位ID地址,这个ID地址是在神经元芯片出厂时由厂方规定的,这个ID码是唯一的。一般只在网络安装和配置时使用,可以作为产品的序列号。节点也可以用Neuron ID寻址。(2)寻址格式l一个通道是指在物理上能独立发送报文(不需要转发)的一段介质。LonTalk规定一个通道至多有32385个节点。通道并不影响网络的地址结构,域、子网和分组都可以跨越多个通道,一个网络可以由一个或多个通道组成。通道之间是通过桥接器(bridge)来连接的。这样做不仅可以实现多介质在同一网络上的连接,而且可以使一个通道的网络信道不致过于拥挤。l尽管Neuron ID也可以作为地址,

15、但它不能作寻址的唯一方式,这是因为该寻址方式只支持一对一的传输,使用其作为地址将需要过于庞大的节点路由表以优化网络流量。l节点有五种寻址方式。寻址格式确定了地址格式的字节数。lLonTalk协议的核心部分是传输层和会话层。一个传输控制子层管理着报文执行的顺序、报文的二次检测。传输层是无连接的,它提供1对1节点、1对多节点的可靠传输。信息认证(authentication)也是在这一层实现的。l会话层主要提供了请求/响应的机制,它通过节点的连接,来进行远程数据服务(remote servers),因此使用该机制可以遥控实现远端节点的过程建立。LonTalk协议的网络功能虽然是在应用层来完成的,但

16、实际上也是由提供会话层的请求/应答机制来完成的。lLonTalk协议提供四种类型的报文服务:应答方式(acknowledge)、请求/响应方式(request/response)、非应答重发方式(unacknowledged repeated)、非应答方式(unacknowledged),这些报文服务除请求/响应是在会话层实现外,其他三种都在传输层实现。4.LonTalk协议的传输层和会话层应答方式(acknowledge),或者是端对端(End to End)的应答服务,这是最可靠的服务方式。当一个节点发送报文到另一个节点或一个分组,每一个接收到报文的节点都分别向发送方应答,如果发送方在应答

17、时间内没有全部收到应答,发送方将重新发送该报文,重发次数和应答时间都是可选的。报文应答服务是由神经元芯片的网络处理器完成的,不必由应用程序来干预。报文传输号用于跟踪报文和应答信号,确保节点不会收到重复的报文。请求/响应方式(request/response)与应答方式有相同的可靠性,当一个节点发送报文到另一个节点或一个分组,每一个接收到报文的节点都分别向发送方响应,如果发送方在相应时间内没有全部收到响应,发送方将重新发送该报文,重发次数和响应时间都是可选的。报文相同应服务可以包含数据,是由应用处理器完成的,适合远程过程调用和客户服务器方式的应用。非应答重发方式(unacknowledged r

18、epeated)是一种比较可靠的方式,当一个节点发送报文到另一个节点或一个分组时,不需要每一个接收到报文的节点向发送方应答或响应,而采用重复多次发送同一报文,使报文尽量可靠地被接收方收到。这种方式适合于节点较多的分组广播发送,从而避免因节点响应或应答而使网络过载。非应答方式(unacknowledged)是最不可靠的一种方式,当一个节点发送报文到另一个节点或一个分组时,不需要每一个接收到报文的节点向发送方应答或响应,也不必重复多次发送同一报文,只发一次即可。这种方式适合对可靠性要求不高,对报文丢失不敏感,但需要速度较高、报文长度较长的应用场合。lLonTalk协议采用面向数据的应用协议。在这种

19、方式下,节点间以标准工程单位或其它预定义的单位交换诸如温度、压力、状态和文字串等应用数据,而命令语句封装在接收节点的应用程序中且不是将命令在网上传送。以这种方式,同一工程量可送到多个节点,然而每个节点对该数据有不同的应用程序。lLonTalk协议的表示层和应用层提供五类服务:l网络变量的服务l显示报文的服务l网络管理的服务l网络跟踪的服务l外来帧传输的服务5.LonTalk协议的表示层和应用层(1)网络变量的服务 网络变量是LonTalk协议中表示层的数据项,网络变量可以是单个的数据项(Neuron C变量),也可以是一个数据结构或数组,其最大长度可达31个字节。网络变量用关键字Network

20、在应用程序中定义,每一网络变量都有其数据类型。对于基于神经元芯片的节点来说,当定义为输出的网络变量改变时,能自动地将网络变量的值变成应用层协议数据单元(APDU)下传并发送,使所有把该变量定义为输入的节点收到该网络变量的改变。当收到信息时,能根据上传的APDU判断是否是网络变量,以及是哪一个输入网络变量并激活相应的处理进程。(2)显示报文的服务 将报文的目的地址、报文服务方式、数据长度和数据组成APDU下传并发送,将发送结果上传并激活相应的发送结果处理进程。当收到信息时,能根据上传APDU判断是否显示报文,并根据报文代码激活相应的处理进程。(3)网络管理的服务 一个LonWorks网络是否需要

21、一个网络管理节点,取决于实际应用的需求。一个网络管理节点具有以下功能:分配所有节点的地址单元(包括域号、子网号、节点号以及所属的组名和组员号,值得注意的是Neuron ID是不能分配的),设置配置路由器的配置表。(4)网络跟踪的服务 网络跟踪提供对节点的查询和测试。查询节点的工作状态以及一些网络的通信的错误统计,包括通信CRC效验错、通信超时等;发送一些测试命令来对节点进行测试。这些信息被网络管理初始化,测试网络上所有的操作,记录错误信息和错误点。(5)外来帧传输的服务 该服务主要针对网关(Gateway),将LON总线外其他的网络信息转换成符合LonTalk协议的报文传输,或反之。三、Lon

22、Talk协议使用中注意的问题lLonTalk协议是LonWorks技术的灵魂,它固化于神经元芯片中,是直接面向对象的网络协议。LonTalk支持OSIISO模型的七层协议,支持多种传输介质和多种传输速度。其地址设置方法提供了巨大的寻址能力,提供了可靠的通信服务,保证了数据的可靠传输。但在使用中注意以下几个问题。1.LonTalk协议的网络认证lLonTalk协议支持报文认证,即允许报文的接收者确定报文的发送方是否有权发送。它用于防止未授权节点介入应用。报文认证的实现是在节点安装时收发双方约定一个6个字节认证字,接收方在接收报文时判断是否经发送方认证的报文,只有经过发送方认证的报文方可接收。2.

23、LonTalk协议的网络接口协议lLonTalk协议包含一个可选择的网络接口协议,该协议支持在任一主处理器上运行的LonWorks应用程序。主处理器可以是微处理器、微控制器或PC机。主处理器管理LonTalk协议的第6和7层,并且使用LonTalk网络接口管理协议的15层。LonTalk网络接口定义网络接口和主处理器之间的数据交换格式。l不同的网络接口具有不同的网络接口协议。在主处理器上执行的应用程序通过网络驱动器与网络接口通信,网络驱动器管理缓冲器分配,将来自或发往网络接口的数据送入缓冲器并且在网络接口层协议中屏蔽主机应用的任何差异。LonTalk网络驱动器定义了主机应用与网络驱动器之间的标

24、准报文格式。3.LonTalk协议中的定时器l在使用LonTalk协议服务之前,需正确设置以下几个定时器:l事务定时器(Tramsaction Timer)l重发定时器(Repeat Timer)l组接收定时器(Group Receive Timer)l非组接收定时器(Non-Group Receive Timer)l缓冲器释放定时器(Free Buffer Wait Timer)4.网络效率l网络的响应时间、安全性和可靠性是相互关联的。例如,应答服务方式是最可靠的,但它与非应答方式和非应答重发方式相比需要较大的网络带宽;对具有优先权的报文实时发送,对其它报文的发送是不利的;使用报文认证服务可

25、使安全性增加,但要传送的报文数量将是无报文认证服务的两倍。第三节 神经元芯片一、概述l神经元芯片是LonWorks技术的核心。神经元芯片使用CMOS VISI技术,主要包含MCI43150和MCI43120两大序列。1.神经元芯片的硬件结构二、神经元芯片的结构2.神经元芯片的处理单元l神经元芯片内部装有三个微处理器:MAC通信处理器、网络处理器和应用处理器。图8-6为三个处理器和存储器结构的框图。lMAC通信处理器完成介质访问控制,也就是ISO的OSI七层协议的第1和2层,这其中也包括碰撞回避算法。它和网络CPU间通过使用网络缓冲区达到数据的传递。l网络处理器完成OSI的第36层网络协议,它处

26、理网络变量、地址、认证、后台诊断、软件定时器、网络管理和路由等进程。l应用处理器完成用户的编程,其中包括用户程序对操作系统的服务调用。l在神经元芯片中,每个CPU都有自身的寄存器组,但所有的CPU都可以通过使用存储器和算术逻辑单元ALU共享数据。3.存储器l神经元芯片有四种类型的存储器:(1)E2PROM 各种类型的神经元芯片都有内部E2PROM,其用于存储网络配置和寻址信息、唯一的48位神经芯片标识码、用户应用程序代码和常用数据。E2PROM中的用户代码在程序控制下写入和擦除,两者的总时间是20ms/Byte,可以在数据不丢失情况下,向E2PROM写入10000次。(2)RAM RAM用于存

27、储堆栈段应用和系统数据,以及LonTalk协议网络缓冲区和应用缓冲区数据。只要神经元芯片维持加电状态,RAM状态就会保持,当芯片复位时,RAM内容清除。(3)ROM 所有3120神经元芯片包括10kB的ROM,3150芯片无ROM。ROM用来存储神经元芯片固件,包括LonTalk协议、事件驱动任务调度器、应用数据库。(4)外部存储器 3150芯片不包括片上ROM,但可以允许寻址59392个字节的外部存储器。外部存储器存储应用程序和数据(可多达43008个字节),神经元芯片固件和保留空间(16384个字节),其中43008个字节中也可包括网络缓冲区和应用缓冲区。l3120芯片和3150芯片的存储

28、器结构如图8-7和8-8所示l图8-9表示了3150神经元芯片连接到一个ROM的例子。4.输入/输出l在一个控制单元中需要有采集和控制的功能,为此在神经元芯片上特设置11个I/O口,即IO0IO10.这11个I/O口可根据不同的需求进行灵活配置,便于同外围设备进行接口,如可配置成RS232、并口、定时/计数I/O、位I/O等。l根据不同外部设备I/O的要求,采用Neuron C语言,编程人员可以定义一个或多个引脚作为输入/输出对象,灵活地配置输入/输出方式。用户程序可通过“io_in()”和“io_out()”系统调用来访问这些I/O对象,并在程序执行期间完成输入/输出操作。5.通信端口l神经

29、元芯片可以支持多种通信介质。使用最为广泛的是双绞线,其次是电力线,其他包括无线射频、红外线、光纤、同轴电缆等。表8-4列出了几种典型的收发器类型。l神经元芯片通信端口为适合不同的通信介质,可以将五个通信引脚配置成三种不同的接口模式,以适合不同的编码方案和不同的波特率,见表8-5。这三种模式是:单端模式、差分模式、专用模式。(1)单端模式 单端模式是在LON总线中使用最广泛的一种模式,无线、红外、光纤和同轴电缆都使用该模式。(2)差分模式 在差分模式下,神经元芯片支持内部的差分驱动。采用差分模式类似于单端方式。区别是差分模式包括一个内部差分驱动,同时不再包括睡眠输出。(3)专用模式 在一些专用场

30、合,需要神经元芯片直接提供没有编码和不加同步头的原始报文。在这种情况下,需要一个智能的收发器处理从网络上或神经元芯片上来的数据。发送的过程是,从神经元芯片接收到这种原始报文,重新编码,并插入同步头;接收的过程是,从网络上收到数据,去掉同步头,重新解码,然后发送到神经元芯片。6.定时/计数器l神经元芯片带有两个片内定时/计数器:多路选择定时/计数器和专用定时/计数器。7.时钟系统l神经元芯片中包括一个分频器,通过外部的一个输入晶振来输入时钟。神经元芯片正常工作频率为625kHz10MHz。8.睡眠/唤醒机制l神经元芯片可以通过软件设置进入低电压的睡眠状态。在这种模式下,系统时钟、使用的程序时钟和

31、计数器关闭,但是使用的状态信息被保留。当输入有如下的转换时,如:I/O管脚的输入(可屏蔽)、IO4IO7、Service管脚信号、通信信号(可屏蔽)、差分模式CP0或CP1、单端模式CP0、专用模式CP3,正常的系统操作被恢复。9.Service引脚lService引脚是神经元芯片里的一个非常重要的引脚,在节点的配置、安装和维护的时候都需要使用该引脚。该引脚既能输入也能输出。输出时,Service引脚通过一个低电平来点亮外部的LED,LED保持为亮表示该节点没有应用代码或芯片已坏;LED以1/2Hz的频率闪烁表示该节点处于未配置状态。输入时,一个逻辑低电平使神经元芯片传送一个包括该节点48位的

32、Neuron ID的网络管理信号。Service引脚电路如图8-13所示。10.Watchdog定时器l神经元芯片为防止软件失效和存储器错误,包含三个Watchdog定时器(每个CPU一个)。如果应用软件和系统没有定时地刷新这些Watchdog定时器,整个神经元芯片将自动复位。神经元芯片支持节点方式,在这种节点方式下系统时钟和计数器关闭,但是状态信息,包括RAM中的信息不会改变,一旦I/O状态变化,或网络上信息有变,系统便会激活神经元芯片。它的内部还有一个最高1.25Mbit/s的独立于介质的收发器。三、神经元芯片的应用I/O接口l神经元芯片通过11个引脚(IO0-IO10)连接到特定的应用外

33、部电路。其专用编程工具Neuron C允许程序员将一个或多个引脚定义为I/O对象,通过函数“io_in()”和“io_out()”对所定义的I/O进行输入输出操作。l神经元芯片的11个I/O有34种可选的工作方式,每种模式对应特定的数据传输方式,称为输入输出对象,可以有效地实现这11个I/O的测量、计时和控制等功能。第四节 Neuron C编程一、Neuron C概述lLON系统是由神经元芯片为核心的各种节点构成的。LonWorks为产品开发者、系统集成商和最终用户提供了用于研制、构建、安装和维护控制网络所需要的所有支持,这种一步到位的解决方案十分有利于用户将主要精力集中在所擅长的应用层的开发

34、工作上。而应用层的软件可在Node Builder或Lon Builder开发系统下,采用一种专门的编程语言Neuron C。lNeuron C语言的主要特点包括:内部多任务调度程序、Run_Time函数库、I/O对象的定义、网络变量的定义、“When”语句、显示报文传递、针对ms和s计时器对象的语句。l利用Neuron C语言,可简易地开发基于网络的应用系统。例如,该语言对不同节点所定义的变量都可简单地作为本地变量一样使用,只需在系统联调时给予互联即可。lNeuron芯片的任务调度程序采用的是事件驱动方式,当给定的一个条件为真时,与该条件相关联的一段程序代码将被执行。因此Neuron C不再

35、使用main()函数结构,而是代之以由When语句和函数组成的Neuron C程序的可执行对象。l定义在When语句中的时间一般有预定义事件和用户定义事件两种类型。二、Neuron C编程模型lNeuron C是一种基于ANSI而为神经元芯片专门设计的编程语言,它对ANSI C进行了扩展以直接支持Neuron芯片的固件例程,是编写神经元芯片程序的最为重要的工具。1.数据类型lNeuron C支持的数据类型有整型(int)、字符型(Char)、布尔型(boolean)、枚举类型(enums)、数组类型(arrays)、指针类型(pointers)、结构类型(structs)和联合类型(union

36、s)等。l值得注意的是Neuron C不支持ANSI C标准运行库的一些功能,如浮点运算、文件I/O等;但可用一个扩展的运算函数库运行IEEE754浮点、32位定点和符号运算。2.软件定时器l在一个程序中,最多可以定义15个软件定时器对象,这些软件定时器可分为两种:毫秒定时器和秒定时器。毫秒定时器是一个提供在164000ms时间范围内定时的定时器。秒定时器是一个提供在165535s时间范围内定时的定时器。l这些定时器可重复递减任选的时间间隔,并且定时器的计时运行独立于神经元芯片的输入时钟。定时器计时结束引发一个称为timer_expires的事件,该事件触发用户编写的时钟事件过程代码,完成特定

37、的任务。定时器变量的值可由应用程序在任一时刻设置。3.网络变量l应用程序可以定义一个特殊的静态对象类网络变量。网络变量的传送是通过LonTalk协议来完成的,对用户来说是透明的,网络变量提供了一个非常灵活的由系统中节点操作分布数据的方法。l网络变量可以是整型、字符型或结构等类型。网络变量可以与一个或多个其他节点的网络变量互连。l节点的数据可以通过网络变量进行共享。l网络变量需要一个互联(Binding)的过程将不同节点的同类型的网络变量互连在一起。l一个节点最多可以定义62个网络变量,在通常情况下,特别是以神经元芯片为核心的小系统中,这并不是一个非常重要的限制,因为一个输入的网络变量可以和无数

38、个输出的网络变量互联,一个输出的网络变量可以和无数个输入的网络变量互联。对于大系统,若采用Host_Base方式可达4096个网络变量。l网络变量的长度不能超过31个字节,对于超过31个字节的数据可以使用显示报文。l在程序中使用网络变量,网络变量消息的构造以及发送在后台进行。所涉及的软件层次有应用层、网络层以及MAC层。网络变量的使用:l应用程序首先对输出网络变量赋值,然后调度程序构造这个网络变量并将该消息传递到网络层,网络层将地址信息附加到消息中后将消息传递到MAC层,MAC层再将该层的信息附加到网络变量中,最后将消息发送到通道上。当该网络变量消息被网络上任一节点接收后,消息包被拆开,MAC

39、层证实消息的有效性,网络层检查消息中的地址信息是否是发向本节点的消息。4.显式报文l在大多数情况下网络变量是网络通信的一个简单、可靠、快捷的方法。然而网络变量在个数、长度和发送目的地址等方面都使程序开发者收到限制。当应用程序中大于31个字节的数据对象需要传送,最好采用请求/应答服务。这时,网络变量模型不适用了,LonTalk协议又提供了一个更灵活但较复杂的通信方式显示报文。l显示报文是一个结构变量。l应用程序可以构造长达228个字节的报文,通过使用报文标签的隐式地址连接其他节点,报文还可以显式地用子网/节点、组、广播或Neuron ID寻址方式与其他节点对话。l在显式报文中提供对通信目的、源地

40、址、优先级、认证等方式的直接操作。所有对显式报文的操作都是通过运行库的调用来实现的。l显示报文提供一个请求/响应机制,该机制和网络变量的垂询相似,但它还提供了更多的功能。当一个网络变量被垂询时,被垂询节点的应用程序为这个网络变量提供最新的值,但不干涉应用程序。与之形成对照的是,当一个报文以显式报文的请求服务方式被发送后,远程节点的应用程序接收该报文并执行一些动作,然后为它的响应提供一个新值。l虽然显式报文使网络操作更为灵活,但在Neuron C编程的过程中,并不提倡使用显示报文进行通信,主要因为显式报文不像网络变量那样容易实现互操作,显式报文的数据格式更依赖于具体的应用。显式报文必须使用一个预

41、定的对象来构造,然后使用显式函数以及预定事件来处理这些显式报文。显式报文一般在网络变量不适用的场合下才使用,同一程序中可以既有网络变量又有显式报文。5.任务调度器lNeuron C任务调度由事件驱动(Event Driven),运行客户提交的任务。当一个给定事件发生的条件为真时,与该事件关联的一段代码(称为任务)被执行。Neuron C任务调度是非实时的,也就是说,如果低优先级事件的任务在运行,即使高优先级的事件发生,也必须等到低优先级事件的任务完成后重新调度才执行高优先级事件的任务。l事件是通过When语句来定义的。任务调度器可以处理多达80个When子句。用户可以指定具有优先级的When子

42、句,任务调度器检查所有When子句的优先权。l在Neuron C中定义了五类事件:系统级事件、输入/输出事件、定时器事件、网络变量和显式报文事件、用户自定义事件。第八章 课后习题l1.LonWorks技术的特点是什么?l2.LonTalk协议包含几层协议?每层的功能是什么?l3.LonTalk协议的网络地址形式有几种?l4.LonTalk协议使用中注意的问题有哪些?l5.LonTalk协议的表示层和应用层提供哪几类服务?l6.结合神经元鲜品的硬件结构图分析各部分的功能。l7.神经元芯片的通信端口有几种模式?l8.神经元芯片有几个I/O口?共有几种工作方式?l9.Neuron C编程语言的数据类型有哪几种?l10.解释网络变量的含义、试述其应用。l11.如何使用显式报文?

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服