- BACnet标准与楼宇自控系统技术
- 张少军
- 18字
- 2020-11-21 15:52:12
第4章 BACnet的网络层、物理层和数据链路层
4.1 BACnet网络层功能及对网络层的说明
4.1.1 BACnet网络层功能
一般情况下,BACnet应用系统中的管理层网络使用TCP/IP网络,而在现场控制器层,处于测控网络的属性要求,可以采用基于令牌控制的ARCnet网络、MS/TP网络、LonWorks网络、PTP网络、以太网或虚拟以太网等。在BACnet网络体系结构中,网络层是一个承上启下的协议中间层,从协议的观点看,网络层的功能是向应用层提供统一的网络服务平台,屏蔽异构网络的差异,实现各种局域网络互联和报文路由等功能。BACnet网络层协议负责建立和维护路由表,实现在BACnet网络中的路由器自动配置和报文在路由器之间的流动能够顺畅进行。
换言之,网络层的功能就是实现连接两个异构的BACnet局域网。实现异构网络连接的设备称为“BACnet路由器”。数据链路层提供将报文在本局域网内单播到某个设备或广播到所有设备,网络层提供将报文直接传递到一个远程的BACnet设备、广播到一个远程BACnet网络或者广播到所有的BACnet网络中的所有BACnet设备的能力。一个BACnet设备由一个特定的网络号和一个确切的MAC地址惟一标识。网络层提供网络路由功能,使得报文可以被直接传递到一个远程设备、一个远程网络上的所有设备或者所有网络上的所有设备。由于BACnet协议规定两个BACnet设备之间只能有一条有效路径,这个限制大幅度降低了网络层的复杂性,简化了路由算法。
在前面讲述的BACnet互联网络的拓扑结构组成中,使用路由器将两个BACnet网络实现互联,BACnet路由器有两种,还有一种由于在与IP网络的互联中很少使用半路由器,本书不再加以赘述。
BACnet设备之间通过网络通信。常见网络包含IP(BACnet/IP)、主从令牌传递网络(BAC-net MS/TP)。BACnet网络的互联需要一个BACnet路由器,当连接一个非BACnet网络和一个BACnet网络时需要网关。当使用以太网来进行网络通信时,BAS Remote提供一种方便的方法来扩展现场BAS,此时BAS路由器可作为BACnet应用特殊控制器(B-ASC)。除了通用I/O点,它也可以作为BACnet/IP和ModBus远程I/O以及ModBus至BACnet的网关以及一个Sedona Frame-work控制器。
4.1.2 BACnet网络层与TCP/IP网络层的区别
1.TCP/IP模型
TCP/IP模型被广泛应用于构建各种规模的局域网、城域网和广域网。TCP/IP协议簇使任何具有网络设备的用户都能访问和共享Internet上的信息,其中最重要的协议是传输控制协议(TCP)和网际协议(IP)。TCP和IP是两个独立且紧密结合的协议,负责管理和引导数据报文在Internet上的传输。两者使用专门的报文头定义每个报文的内容。TCP负责和远程主机的连接,IP负责寻址,使报文被送到信宿节点。
TCP/IP模型和OSI模型关系如图4-1所示。
图4-1 TCP/IP模型和OSI模型关系
在TCP/IP模型中,网络接口层是TCP/IP模型的最底层,负责接收从网络层来的IP数据报并将IP数据报通过底层物理网络发送出去,或者从底层物理网络上接收物理帧,抽出IP数据报,交给网络层。网络接口层使采用不同技术和网络硬件的网络之间能够互联,它包括属于操作系统的设备驱动器和计算机网络接口卡,以处理具体的硬件物理接口。
网络层负责独立地将分组从源主机送往目的主机,涉及为分组提供最佳路径的选择和交换功能,并使这一过程与它们所经过的路径和网络无关。TCP/IP模型的网络层在功能上非常类似于OSI参考模型中的网络层,即检查网络拓扑结构,以决定传输报文的最佳路由。
传输层的作用是在源节点和目的节点的两个对等实体间提供可靠的端到端数据通信。为保证数据传输的可靠性,传输层协议也提供了确认、差错控制和流量控制等机制。传输层从应用层接收数据,并且在必要的时候把它分成较小的单元,传递给网络层,并确保到达对方的各段信息正确无误。
应用层涉及为用户提供网络应用,并为这些应用提供网络支撑服务,把用户的数据发送到低层,为应用程序提供网络接口。由于TCP/IP将所有与应用相关的内容都归为一层,所以在应用层要处理高层协议、数据表达和对话控制等任务。
在TCP的应用层中,将数据称为“数据流(stream)”而在用户数据报协议(UDP)的应用层中,则将数据称为“报文(message)”。TCP将它的数据结构称作“段(segment)”,而UDP将它的数据结构称作“分组(packet)”;网间层则将所有数据看作是一个块,称为“数据报(dat-agram)”。TCP/IP使用很多种不同类型的底层网络,每一种都用不同的术语定义它传输的数据,大多数网络将传输的数据称为“分组”或“帧(frame)”。
图4-2 TCP/IP模型数据封装
2.TCP/IP网络模型数据封装
在TCP/IP网络模型中,如图4-2所示,网络必须执行以下5个转换步骤以完成数据封装的过程。
(1)生成数据
当用户发送一个电子邮件信息时,它的字母或数字字符被转换成可以通过互联网传输的数据。
(2)将端到端的传输数据打包
通过对数据打包来实现互联网的传输。通过使用段传输功能确保在两端的信息主机的电子邮件系统之间进行可靠的通信。
(3)附加目的网络地址
在报头上,数据被放置在一个分组或者数据报中,其中包含了带有源和目的逻辑地址的网络报头,这些地址有助于网络设备在动态选定的路径上发送这些分组。
(4)附加目的数据链路层地址(MAC地址)到数据链路报头
每一个网络设备必须将分组放置在帧中,该帧的报头包括在路径中下一台直接相连设备的物理地址。
(5)传输比特流
帧必须被转换成一种1和0的模式,才能在介质上(通常为线缆)进行传输。时钟功能使得设备可以区分这些在介质上传输的位,物理互联网络上的介质可能随着使用的不同路径而有所不同。例如,电子邮件信息可以起源于一个局域网,通过校园骨干网然后到达广域网链路,直到到达另一个远端局域网上的目的主机为止。
3.BACnet网络层与ISO-RM网络层的比较
BACnet采用4层级的体系结构,主要目的就是组成系统时最大限度地节省系统软件和硬件的开销,因此与ISO-RM网络层相比,BACnet网络层功能是极为简单的。OSI-RM网络层的作用是互联各种不同的网络,屏蔽不同网络拓扑结构和通信介质的差异,能够实现数据分组传输过程中的路由选择及优化路由选择;能够进行中继、网络流量控制、网络连接等相关过程的管理,这就导致OSI-RM网络层功能实现技术非常复杂。而BACnet标准考虑到楼宇自控网络可靠性和实时性及运行效率,并根据BACnet网络的特点,对ISO-RM网络层功能进行了简化。
BACnet标准的网络层主要完成地址解释、路由、协调异种底层网络差异的功能,但BACnet网络中的路由算法优化处理过程比ISO-RM网络层的同类过程要简单得多。在楼宇自控网络中,各种楼宇自控设备在安装完毕后,自控网络的通信节点也就随之确定,出现变动的几率是较低的,这样一来,楼宇自控网络的拓扑结构就是被固定在一种状态中,网络节点的位置固定,加上楼宇自控网络节点相对TCP/IP网络来说数量要少得多,一个大型BAS的监控点数仅仅才数千个,而且若干个这样的监控点与附近的控制器组成一个能够实现协议通信的控制节点,也就是说,在楼宇自控网络中,网络的通信节点数量不是很多。BACnet标准为了更加简化路由算法,规定网络中任意两个节点之间只能有一条报文传输路径,不能形成环路,因而BACnet网络一般为树形拓扑结构。由于以上原因,BACnet网络作为楼宇自控网络,协议通信过程中的路由算法也就变得很简单了。
BAS是工控系统在建筑领域中的延伸,工控系统和BAS工作依托的测控网络都有这样的特点:网络节点间的通信一般是测控信息和指令的集合,这些测控信息和指令都是小数据量的信息,楼宇自控设备间交换的数据信息字节少,出现报文分段的情况很少。对BACnet报文分段是BACnet网络的应用层功能,因此网络层不再涉及报文分段及相关的管理,因此网络层的功能进一步简化。BACnet网络层功能简化具体体现在网络层处理和传输的BACnet报文最大长度仅仅取决于网络层下层连接的不同局域网传输报文长度中的最小报文长度。
考虑组建BACnet应用系统的基本网络环境中越来越多地使用BACnet/IP网络,BACnet网络层允许的最大报文长度见表4-1。
表4-1 BACnet网络层允许的最大报文长度
通过比较知道,根据楼宇自控网络的特点,BACnet标准定义的网络层功能同OSI模型的网络层功能相比,极大地得到了简化,因此也就极大地减小了BACnet网络在网络层处理报文及相关过程的软硬件开销,避免了直接使用ISO-RM模型网络层和TCP/IP模型网络层复杂的报文处理过程,但又完全能够满足楼宇自控网络的要求,效能得到提高。
对于BACnet网络来讲,也是采用路由器来实现BACnet网络互联的,当然这里的路由器指的是BACnet路由器。由网络层实现的报文传输分为“单播”方式和“广播”方式。其中“广播”方式又分为“本地广播”、“远程广播”和“全局广播”三种。传输报文的信源节点和接收报文的信宿节点同在一个BACnet子网内,这样的广播传送就是本地广播传送,本地广播传送是不需要路由器进行的;如果传输报文的信源节点和接收报文的信宿节点不在同一个BACnet子网内,报文的传送要通过路由器进行,这样的广播传送方式是“远程广播”传送;全局广播是报文的信源节点对BACnet互联网络内所有其他节点进行的广播传送方式。
BACnet使用多播地址和广播地址来支持多个信宿节点的报文传输。多播是指一个报文被传送给一组目标设备,即组播。BACnet网络层处理两种报文:一种是包含有应用层协议数据单元(APDU)的数据报文;另一种是关于网络层本身控制信息的网络层协议报文。对于数据报文,只有BACnet非证实请求协议数据单元(BACnet-Unconfirmed-Request-PDU)的报文可以被多播或广播。而网络层协议报文都可以被多播或广播,使用多播地址或者广播地址进行。