BACnet网络讲义Word格式.docx
- 文档编号:20199294
- 上传时间:2023-01-17
- 格式:DOCX
- 页数:60
- 大小:445.22KB
BACnet网络讲义Word格式.docx
《BACnet网络讲义Word格式.docx》由会员分享,可在线阅读,更多相关《BACnet网络讲义Word格式.docx(60页珍藏版)》请在冰豆网上搜索。
尽管该标准规定了一套详尽的服务,但是一旦需要,该标准的机制也同样允许利用开发工具增加新的服务。
(4)设备的完善性(Sophistication),即实现特定服务请求或理解特定对象类型种类的能力,是由设备的“一致性类别”(ConformanceClass)所反映的。
每一种类别定义了一个包括服务、对象、属性的最小集合,声明为某一类别的设备必须支持其相应的集合。
(5)由于该标准遵循了ISO的“分层”通信体系结构的概念,因此使用不同的网络访问方法和物理介质可以交换相同的报文。
这样可以根据传输速度和吞吐量的要求,采用相宜的开销来配置BACnet网络。
(6)该标准是为暖气、通风、空调、制冷控制设备所设计的,同时它也为其他楼宇控制系统的集成提供了基本原则,例如照明、保安、消防系统等。
虽然这些扩展超出了该标准的范围,但实现起来却简单明了。
并且,标准中定义的许多对象和服务也可以不加修改地被应用。
当然,一旦这些其他类型的楼宇控制功能需要,也可以简单方便地定义新的对象和服务。
(7)该标准的目的是为暖气、通风、空调、制冷控制设备和其它楼宇自控设备的监控定义数据通信的服务和协议。
除此之外,标准还定义了抽象的、面向对象的表示法,用来描述这些设备间的信息通信,以便于在楼宇中使用数字控制技术。
所有的通信协议都是一个解决各种信息交换问题的方案的集合,并且随着时间的推移和技术的进步而不断改变,BACnet网络同样也不例外。
1.2BACnet协议的体系结构协议的体系结构国际标准化组织在制定计算机网络通讯协议标准时定义了一个模型,称为开放式系统互联参考模型(OSI模型),模型的目的是解决计算机与计算机之间普遍的通信问题,并将这个复杂的问题分解成7个小的、易解决的子问题,每个子问题只与某些通信功能相关联,如图1-1所示。
这样每个子问题便形成了协议体系结构中的一“层”。
任何两个遵循该模型及有关标准的设备或系统,都可以实现互连和互操作。
SPC制定BACnet标准时,确定BACnet作为一种开放性计算机局域网协议,它仍然采用OSI模型的“分层”通信体系结构的概念。
在确定分层的层数时,考虑了下列两个因素:
第一,OSI模型的实现需要很高的费用,实际上在绝大部分楼宇自控系统应用中也并不需要这么多的层次。
但是从OSI的功能性方面考虑,经过简化后,OSI模型仍然是设计楼宇自控协议的一个很好参考,如果只包含OSI模型中被选择的层次,其它各层则去掉,这样减少了报文长度,降低了通信处理开销,同时也会节约楼宇自控工业的生产成本。
第二,如果能够充分利用现有的、易用的、广泛使用的局域网技术,如Ethernet、ARCNET和LonTalk,不但可以降低成本,同时也有利于性能的提高。
由此,SPC确定BACnet标准协议体系结构为一个包含四个层次的分层体系结构,这四个层次相对于OSI模型中的物理层、数据链路层、网络层和应用层,如图1-2所示。
BACnet标准定义了自己的应用层和网络层,对于其数据链路层和物理层,提供了以下五种选择方案:
第一种选择是ISO8802-2类型1定义的逻辑链路控制(LLC)协议,加上ISO8802-3介质访问控制(MAC)协议和物理层协议。
ISO8802-2类型1提供了无连接不确认的服务,ISO8802-3则是著名的以太网协议的国际标准。
第二种选择是ISO8802-2类型1定义的逻辑链路控制(LLC)协议,加上ARCNET(ATA/ANSI878.1)。
第三种选择是主从/令牌传递(MS/TP)协议加上EIA-485协议。
MS/TP协议是专门针对楼宇自控设备设计的,它通过控制EIA-485的物理层,向网络层提供接口。
第四种选择是点对点(PTP)协议加上EIA-232协议,为拨号串行异步通信提供了通信机制。
第五种选择是LonTalk协议。
这些选择都支持主/从MAC、确定性令牌传递MAC、高速争用MAC以及拨号访问。
拓扑结构上,支持星型和总线型拓扑;
物理介质上,支持双绞线、同轴电缆、光缆。
以下详细讨论BACnet选择一个四层体系结构的原因。
首先仔细考虑BACnet网络的独特特征。
BACnet的特征主要有以下两点:
(1)BACnet网络是一种局域网。
即使在某些应用中,楼宇中设备间远距离的通信必不可少时,这一点仍然是不变的。
这种远距离的通信功能,是由电信网来实现。
通信过程中要解决的路由、中继、可靠传输等问题,都由电信网来处理。
在此电信网可看成是BACnet网络外部的部分。
(2)BACnet设备是静态的,即在空间上,它们不会经常被移来移去。
在要完成的功能上,从某种意义上说也是不变的,即不会今天生产的设备的功能是这样,明天就完全不同了。
在充分了解BACnet网络的特征后,就可讨论OSI模型的各层在BACnet网络中的适用性了。
OSI模型的物理层提供了设备间的物理连接,以及传输载波信号的方式。
显然在BACnet协议中,物理层是必不可少的。
OSI模型的数据链路层,负责将数据组织成帧(Frame)或分组(Packet)、管理通讯介质的访问、寻址(Address),以及完成一些错误校正(ErrorRecovery)和流量控制。
这些都是BACnet协议所需要的,因此数据链路层也是必不可少的。
OSI网络层的功能,包括将全局地址解析为局部地址,在一个或多个网络中进行报文的路由,协调不同类型网络的差异(如不同网络所允许的最大报文长度),序列控制,流量控制,差错控制,以及多路复用。
由于BACnet网络的拓扑特点,在各个设备之间只存在一条逻辑通路(参见图3),这样便不需要最优路由的算法。
其次,BACnet网络是由中继器或网桥互联起来的一个或多个网段所组成的网络,它具有单一的局部地址空间。
在这样一种单一网络中,许多OSI网络层的功能也变得多余,或者与数据链路层相重复。
当然在某些BACnet网络系统中,网络层也可能是必不可少的。
例如,在一个BACnet的网际网(internet)中,当两个或多个网络使用了不同的MAC层时,便需要区别局部地址和全局地址,这样才能将报文路由到正确的网络上去。
在BACnet协议中,通过定义了一个包含必要的寻径和控制信息的网络层头部,来完成这种简化了的网络层功能。
传输层主要是负责提供可靠的端到端的报文传输、报文分段、序列控制、流量控制,以及差错校正。
传输层的许多功能与数据链路层相似,只是在作用范围上有所不同。
传输层提供的是端到端的服务,而数据链路层则提供的是单一网络上点到点的服务。
由于BACnet支持多种网络的配置,因此协议必须提供传输层端到端的服务。
在BACnet网络中要提供三个方面的传输层的功能,第一是可靠的端到端传输和差错校正功能,第二是报文分段和端到端的流量控制,第三是实现报文的正确重组,序列控制。
由于BACnet是建立在无连接的通信模型基础上的,因此所需的服务大大减少,并且可以被高层来实现,所以,传输层的这些功能可以通过BACnet应用层来实现,这样,在BACnet协议体系中不单独设置传输层,相应的功能放在应用层中完成,从而节省了通信开销。
会话层的功能是在通信双方之间建立和管理长时间对话。
包括建立同步标志点,用来在出错时回复到前一个标志点,以避免对话重新开始。
但在一个BACnet网络中,绝大部分的通信都是很简短的,比如读写一个或一些值,通知某个设备某个警报或事件,或者更改某个设定值。
当然长时间的信息交换偶然也会发生的,比如上载或下载某个设备。
由于绝大部分事务处理都是简短的,会话层的服务极少用到,再考虑到带来的开销,因此BACnet标准中不包括这层。
表示层为通信双方提供了屏蔽下层传送语法的服务。
这种传送语法是用来将应用层中抽象的用户数据表示,变成适合下层传输的字节序列。
但当只存在一种传送语法时,表示层的功能便减少到对应用程序的数据进行编码。
由于在BACnet在应用层中定义了一个固定的编码方案,因此一个独立的表示层也变得不再需要。
协议的应用层为应用程序提供了完成各自功能所需的通信服务。
在此基础上,应用程序可以监控HVAC&
R和其它楼宇自控系统。
显然应用层是本协议所必需的。
从以上讨论中,可以得到以下几点:
1实现一个完全的OSI七层体系结构需要大量的资源和开销,因此它对于目前的楼宇自控系统是不适用的。
2根据OSI模型,采用现有的计算机网络技术将会带来以下好处:
节约成本,便于与其它计算机网络系统集成。
3根据楼宇自控系统的环境及要求,可以通过去除OSI某些层的功能来简化OSI模型。
4由物理层、数据链路层、网络层和应用层组成的一个简化体系结构,是当今楼宇自控系统的最佳解决方案。
1.3BAC网络的拓扑结构网络的拓扑结构为了应用的灵活性,BACnet并没有严格规定网络的拓扑结构。
BACnet设备可以通过专线或拨号异步串行线,与四种局域网之一进行物理相连。
而这些网络可以通过BACnet路由器或一对半路由器进一步互联。
在BACnet网络中,定义了如下这样一些拓扑结构:
1.物理网段(PhysicalSegment):
直接连接一些BACnet设备的一段物理介质。
2.网段(Segment):
多个物理网段通过“中继器”在物理层连接,所形成的网络段。
3.网络(Network):
多个BACnet网段通过“网桥”互连而成,每个BACnet网络都形成一个单一的MAC地址域。
这些在物理层和数据链路层上连接各个网段的设备,可以利用MAC地址实现报文的过滤。
4.网际网(Internetwork):
将使用不同LAN技术的多个网络,用BACnet“路由器”互联起来,便形成了一个BACnet“网际网”。
在一个BACnet网际网中,任意两个节点之间恰好存在着一条报文通路。
这些概念如图1-3所示。
RT1.4BACnet的协议栈和数据流的协议栈和数据流在BACnet中,两个对等应用进程间的信息交换,依然按照OSI技术报告中关于ISO的服务惯例(ISOTR8509),被表示成抽象的服务原语的交换。
BACnet定义了四种服务原语:
请求、指示、响应和证实原语,用来传递某些特定的服务参数。
而包含这些原语的信息,又是由BACnet标准中定义的各种协议数据单元(PDU:
ProtocolDataUnit)来传递的。
当应用程序需要同远地的应用进程通讯时,它通过调用API访问本地的BACnet用户单元(应用层中为用户应用程序提供服务的访问点)。
API的某些参数,如接收服务请求的设备的标志号(或地址)、协议控制信息等,将直接下传到网络层或数据链路层。
而其余参数将组成一个应用层服务原语,通过BACnet的用户单元传到BACnet的应用服务单元(应用层中利用下层服务完成应用层服务的部分)。
从概念上来讲,由应用层服务原语产生的应用层协议数据单元(APDU),构成了网络层服务原语的数据部分,并通过网络层服务访问点下传到网络层。
同样,这个请求将进一步下传到本地设备协议栈的以下各层。
整个过程如图1-4所示(见下一页)。
于是,报文就这样被传送到远地的设备,并在远地设备协议栈中逐级上传,最后指示原语看起来似乎是直接从远地的BACnet应用服务单元上传到远地的BACnet用户单元。
任何从远地设备发回的响应,也是以该方式回传给请求设备的。
BACnet协议采用的分层思想,来源与一个简单的科学原理分层原理(LayeringPrinciple)。
即“在目标计算机上的第N层软件必须恰好接收由在发送计算机上的第N层软件所发送的数据”。
换句话说,在数据发送前,协议进行的任何转换在接收时必须被完全地逆转换。
如果在发送计算机上的一个特定层将一个头部放入帧中,在接收计算机的相应层必须除去该头部。
分层思想简化了协议的设计和测试,避免了一层协议软件引入其它层可见的改变。
这样,每一层的发送和接收软件可独立于其它层进行设计、实现、测试。
第2章BACnet应用层规范本章介绍BACnet的应用层规范的原理和运行机制,概要介绍BACnet应用层的模型、主要的服务原语以及应用层报文的结构,并讨论BACnet各种报文的传输过程以及与报文传输相关的其它问题。
2.1BACnet协议的应用层规范协议的应用层规范BACnet网络的应用层协议要解决三个问题,向应用程序提供通信服务的规范,与下层协议进行信息交换的规范,和与对等的远程应用层实体交互的规范。
首先对一些相关的概念进行说明。
应用进程是指,为了实现某个特定的应用(例如,节点设备向一个远端的温度传感器设备请求当前温度值)所需要的进行信息处理的一组方法。
一般来说,这是一组计算机软件。
应用进程分为两部分,一部分专门进行信息处理,不涉及通信功能,这部分称为应用程序。
另一部分处理BACnet通信事务,称为应用实体。
应用程序与应用实体之间通过应用编程接口(API)进行交互。
BACnet应用层协议只对应用实体进行规范,不涉及应用程序和应用编程接口。
但在具体实现过程中,应用编程接口一定是某个函数、过程或子程序的调用。
图2-1示出了这些概念,图中阴影部分是应用进程位于BACnet应用层中的部分。
图2-1BACnet应用进程模型应用实体本身又由两部分组成,分别是BACnet用户单元和BACnet应用服务单元(ASE)。
应用服务单元是一组特定内容的应用服务,这些应用服务包括:
报警与事件服务,文件访问服务,对象访问服务,远程设备管理服务,虚拟终端服务,和网络安全性。
用户单元的功能是支持本地API,负责保存事务处理的上下文信息,产生请求标志符(ID),记录标志符所对应的应用服务响应,维护超时重传机制所需的超时计数器,以及将设备的行为要求映射成为BACnet的对象。
我们将在后续的文章中介绍这些应用服务和对象的内容。
“BACnet设备”是指任何一种支持用BACnet协议进行数字通信的真实的或者虚拟的设备。
一个BACnet设备有且只有一个“设备对象”,而且被一个网络号和一个MAC地址唯一确定。
在大多数情况下,一个物理设备就是一个BACnet设备,例如一个支持BACnet协议通信的温度传感器就是一个BACnet设备。
但是也可能有一个物理设备具有多个“虚拟的”BACnet设备的功能,在BACnet标准的附件H中对此进行了详细规范。
当一个BACnet设备中的应用程序需要与网络中其它BACnet设备中的应用程序进行通信时,应用程序只需通过调用API访问本地的BACnet用户单元来实现。
例如,一个BACnet设备的应用程序要向一个远地设备的应用程序发送一个请求服务信息,它调用API,并将相应的参数填入API中。
API中的某些参数,如服务请求接收设备的标志号(或地址)、协议控制信息等,将直接下传到网络层或数据链路层;
其余参数则组成一个应用层服务原语,通过BACnet用户单元传到BACnet应用服务单元(ASE),形成应用层协议数据单元(APDU)。
APDU则通过网络层的服务访问点(NSAP)下传到网络层,成为网络层服务原语的数据部分。
这个请求将进一步下传到本地设备协议栈中的下层,最终由物理层传送到远地设备,并通过远地设备协议栈逐级上传到远地用户单元。
从远地设备看起来,指示原语似乎是直接从它自己的BACnet应用服务单元传到其BACnet用户单元的。
同样,任何从远地设备发回的响应,也是以相同方式回传给请求设备。
BACnet应用层协议包含了OSI模型中的应用层到传输层中的相应内容,所以除了应用层服务的功能外,还要有端到端可靠传输的功能。
因此,BACnet应用层规范就是为了保证BACnet设备的应用程序能够与网络中远地BACnet设备的应用程序进行端到端可靠通信而制定的一组规则,其主要内容包括:
BACnet应用层提供的服务类型,上下层之间交换的接口控制信息,和对等层协议数据单元的传输机制。
2.2BACnet应用层服务类型应用层服务类型BACnet的应用层提供两种类型的服务,分别是“证实服务”和“非证实服务”。
在BACnet中,两个对等应用进程间的信息交换,根据ISO的服务惯例,被表示成抽象的服务原语的交换。
请求(Request)、指示(Indication)、响应(Response)以及证实(Confirm)原语,可以用来传递某些特定的服务参数。
而包含这些原语的信息,又是由标准中定义的各种协议数据单元(PDU)来传递的。
下面列出各种服务原语:
CONF_SERV.responseCONF_SERV.ConfirmCONF_SERV.RequestCONF_SERV.indicationUNCONF_SERV.requestUNCONF_SERV.indicationSEGMENT_ACK.requestSEGMENT_ACK.requestERROR.requestERROR.indicationREJECT.requestREJECT.indicationABORT.requestABORT.indicationCONF_SERV的标识表明使用的是BACnet证实服务PDU。
UNCONF_SERV、SEGMENT_ACK、ERROR、REJECT和ABOUT,分别表明使用的是非证实服务PDU、分段回应PDU、出错PDU、拒绝PDU和放弃PDU,后面这些都是非证实服务类型。
证实服务是建立
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- BACnet 网络 讲义