收藏 分享(赏)

BACnet网络讲义.doc

上传人:精品资料 文档编号:11030154 上传时间:2020-02-01 格式:DOC 页数:69 大小:1.85MB
下载 相关 举报
BACnet网络讲义.doc_第1页
第1页 / 共69页
BACnet网络讲义.doc_第2页
第2页 / 共69页
BACnet网络讲义.doc_第3页
第3页 / 共69页
BACnet网络讲义.doc_第4页
第4页 / 共69页
BACnet网络讲义.doc_第5页
第5页 / 共69页
点击查看更多>>
资源描述

1、第 1 章 BACnet 协 议 概 述本 章 介 绍 BACnet 协 议 的 产 生 及 协 议 模 型 , 讨 论 BACnet 网 络 的 体 系 结 构 、 拓 扑 结 构 、 协议 栈 以 及 数 据 流 。1.1 BACnet 协议模型 1.1.1 BACnet 简 介BACnet(AData Communication Protocol for Building Automation and Control Network) 是 一 种 为 楼 宇 自 动 控 制 网 络 所 制 定 的 数 据 通 信 协 议 , 它 由 美 国 冷 暖 空 调 工 程 师 协会 组 织 的

2、标 准 项 目 委 员 会 135P( Standard Project Committee: SPC 135P) 于 1995 年 6 月制 定 。 BACnet 标 准 产 生 的 背 景 是 用 户 对 楼 宇 自 动 控 制 设 备 互 操 作 性 ( Interoperability)的 广 泛 要 求 , 即 将 不 同 厂 家 的 设 备 组 成 一 个 一 致 的 自 控 系 统 。BACnet 实 现 楼 宇 自 控 设 备 的互 操 作 性 的 思 想 是 这 样 的 , 一 般 楼 宇 自 控 设 备 从 功 能 上 讲 分 为 两 部 分 , 一 部 分 专 门 处 理

3、设 备 的 控 制 功 能 , 另 一 部 分 专 门 处 理 设 备 的 数 据 通 信 功 能 , 不 同 厂 商 生 产 的 设 备 使 用 各自 专 门 的 数 据 通 信 的 方 式 , 所 以 不 同 厂 商 的 设 备 之 间 没 有 很 好 的 互 操 作 性 。BACnet 就 是 要建 立 一 种 统 一 的 数 据 通 信 的 标 准 , 用 于 设 备 的 通 信 部 分 , 从 而 使 得 按 这 种 标 准 生 产 的设 备 , 都 可 以 进 行 通 信 , 实 现 互 操 作 性 。 BACnet 标 准 只 是 规 定 了 楼 宇 自 控 设 备 之 间 要

4、进 行“对 话 ”所 必 须 遵 守 的 规 则 , 并 不 涉 及 如 何 实 现 这 些 规 则 , 各 厂 商 可 以 用 不 断 进 步 的 技术 来 开 发 , 从 而 使 得 整 个 领 域 的 技 术 不 断 进 步 。 1.1.2 BACnet 协 议 模 型 SPC 征 集 了 各 方 面 的 意 见 , 同 时 参 考 了 国 际 上 各 种 现 已 成 文 的 或 是 事 实 上 的 数 据 通信 标 准 , 讨 论 得 出 了 一 个 具 有 以 下 特 性 的 网 络 协 议 模 型 :( 1) 所 有 的 网 络 设 备 , 除 了 主 从 /令 牌 传 递 式 从

5、 属 机 ( MS/TP slaves : master-slave/token-passing slaves) 以 外 , 都 是 对 等 的 ( Peer) 。 当 然 某 些 同 等 设 备 可 能 比 其他 具 有 更 多 的 特 权 ( Privilege) 和 职 责 ( Responsibility) 。( 2) 每 一 个 网 络 设 备 都 称 之 为 是 一 个 “对 象 ”( Object) 的 实 体 (entity), 这 是 一 个具 有 网 络 访 问 特 征 的 集 合 模 型 。 每 个 对 象 又 用 一 些 “属 性 ”( Property) 来 描 述

6、, 这 些 属性 表 示 了 设 备 的 硬 件 、 软 件 以 及 操 作 的 各 个 方 面 。 在 不 需 要 了 解 设 备 内 部 设 计 或 配 置 细节的 情 况 下 , 对 象 提 供 了 识 别 和 访 问 设 备 信 息 的 方 法 。 尽 管 该 标 准 规 定 了 广 泛 的 应 用 对象 的类 型 以 及 它 们 的 属 性 , 但 是 一 旦 需 要 , 利 用 开 发 工 具 仍 可 以 自 由 地 增 加 新 的 对 象 类型 。( 3) 通 信 功 能 是 通 过 读 写 某 些 对 象 的 属 性 , 以 及 利 用 其 他 协 议 提 供 的“服 务 ”(

7、 Service) 来 完 成 的 。 尽 管 该 标 准 规 定 了 一 套 详 尽 的 服 务 , 但 是 一 旦 需 要 , 该 标 准 的 机制 也 同 样 允 许 利 用 开 发 工 具 增 加 新 的 服 务 。( 4) 设 备 的 完 善 性 ( Sophistication) , 即 实 现 特 定 服 务 请 求 或 理 解 特 定 对 象 类 型种 类 的 能 力 , 是 由 设 备 的 “一 致 性 类 别 ”( Conformance Class) 所 反 映 的 。 每 一 种 类 别定 义 了 一 个 包 括 服 务 、 对 象 、 属 性 的 最 小 集 合 ,

8、声 明 为 某 一 类 别 的 设 备 必 须 支 持 其 相 应的 集 合 。(5 ) 由 于 该 标 准 遵 循 了 ISO 的 “分 层 ”通 信 体 系 结 构 的 概 念 , 因 此 使 用 不 同 的 网 络访 问 方 法 和 物 理 介 质 可 以 交 换 相 同 的 报 文 。 这 样 可 以 根 据 传 输 速 度 和 吞 吐 量 的 要 求 , 采用 相 宜 的 开 销 来 配 置 BACnet 网 络 。(6) 该 标 准 是 为 暖 气 、 通 风 、 空 调 、 制 冷 控 制 设 备 所 设 计 的 , 同 时 它 也 为 其 他楼 宇 控 制 系 统 的 集 成

9、提 供 了 基 本 原 则 , 例 如 照 明 、 保 安 、 消 防 系 统 等 。 虽 然 这 些 扩 展 超出 了 该 标 准 的 范 围 , 但 实 现 起 来 却 简 单 明 了 。 并 且 , 标 准 中 定 义 的 许 多 对 象 和 服 务 也 可 以不 加 修 改 地 被 应 用 。 当 然 , 一 旦 这 些 其 他 类 型 的 楼 宇 控 制 功 能 需 要 , 也 可 以 简 单 方 便 地 定义 新 的 对 象 和 服 务 。(7) 该 标 准 的 目 的 是 为 暖 气 、 通 风 、 空 调 、 制 冷 控 制 设 备 和 其 它 楼 宇 自 控 设 备的 监 控

10、 定 义 数 据 通 信 的 服 务 和 协 议 。 除 此 之 外 , 标 准 还 定 义 了 抽 象 的 、 面 向 对 象 的 表 示法 , 用 来 描 述 这 些 设 备 间 的 信 息 通 信 , 以 便 于 在 楼 宇 中 使 用 数 字 控 制 技 术 。所 有 的 通 信 协 议都 是 一 个 解 决 各 种 信 息 交 换 问 题 的 方 案 的 集 合 , 并 且 随 着 时 间 的 推 移 和 技 术 的 进 步而 不 断 改 变 , BACnet 网 络 同 样 也 不 例 外 。1.2 BACnet 协议的体系结构国 际 标 准 化 组 织 在 制 定 计 算 机 网

11、 络 通 讯 协 议 标 准 时 定 义 了 一 个 模 型 , 称 为 开 放式 系 统 互 联 参 考 模 型 ( OSI 模型), 模 型 的 目 的 是 解 决 计 算 机 与 计 算 机 之 间 普 遍 的 通 信 问 题 ,并将这 个 复 杂 的 问 题 分 解 成 7 个 小 的 、 易 解 决 的 子 问 题 , 每 个 子 问 题 只 与 某 些 通 信 功 能 相 关联 ,如图 1-1所 示 。 这 样 每 个 子 问 题 便 形 成 了 协 议 体 系 结 构 中 的 一“层”。任 何 两 个 遵 循 该 模 型 及 有关 标 准 的 设 备 或 系 统 , 都 可 以

12、实 现 互 连 和 互 操 作 。SPC 制 定 BACnet 标 准 时 , 确定 BACnet 作 为 一 种 开 放 性 计 算 机 局 域 网 协 议 , 它 仍 然 采 用OSI 模型的“ 分 层 ”通 信 体 系 结 构 的 概 念 。 在 确 定 分 层 的 层 数 时 ,考 虑 了 下 列 两 个 因 素 :第一,O SI 模 型 的 实 现 需 要 很 高 的 费 用 , 实 际 上 在 绝 大 部 分 楼 宇 自 控 系 统 应 用 中 也并 不 需 要 这 么 多 的 层 次 。 但 是 从 OSI 的 功 能 性 方 面 考 虑 , 经 过 简 化 后 , OSI 模

13、型 仍 然 是 设 计楼 宇 自 控 协 议 的 一 个 很 好 参 考 , 如 果 只 包 含 OSI 模 型 中 被 选 择 的 层 次 , 其 它 各 层 则 去 掉 , 这 样减 少 了 报 文 长 度 , 降 低 了 通 信 处 理 开 销 , 同 时 也 会 节 约 楼 宇 自 控 工 业 的 生 产 成 本 。第 二 , 如 果 能 够 充 分 利 用 现 有 的 、 易 用 的 、 广 泛 使 用 的 局 域 网 技 术 , 如Ethernet、 ARCNET和LonTalk, 不 但 可 以 降 低 成 本 , 同 时 也 有 利 于 性 能 的 提 高 。 由 此 ,SPC

14、确 定 BACnet标 准 协 议 体 系 结 构为 一 个 包 含 四 个 层 次 的 分 层 体 系 结 构 , 这 四 个 层 次 相 对 于OSI模 型 中 的 物 理 层 、 数 据 链 路 层 、网 络 层和 应 用 层 , 如 图 1-2所 示 。 BACnet标 准 定 义 了 自 己 的 应 用 层 和 网 络 层 , 对 于 其 数 据 链 路层 和 物 理 层 ,提 供 了 以 下 五 种 选 择 方 案 : 第 一 种 选 择 是 ISO 8802-2类 型 1定 义 的 逻 辑 链 路 控 制 (LLC) 协 议 , 加 上 ISO 8802-3介 质 访 问控 制

15、( MAC) 协 议 和 物 理 层 协 议 。ISO 8802-2类 型 1提 供 了 无 连 接 不 确 认 的 服 务 ,ISO 8802-3则 是 著名 的 以 太 网 协 议 的 国 际 标 准 。 第 二 种 选 择 是 ISO 8802-2类 型 1定 义 的 逻 辑 链 路 控 制 (LLC) 协 议 , 加 上ARCNET( ATA/ANSI 878.1) 。 第 三 种 选 择 是 主 从 /令 牌 传 递 ( MS/TP) 协 议 加 上 EIA-485协 议 。 MS/TP协 议 是 专 门 针 对 楼 宇 自控 设 备 设 计 的 , 它 通 过 控 制 EIA-48

16、5的 物 理 层 , 向 网 络 层 提 供 接 口 。 第 四 种 选 择 是 点 对 点 (PTP) 协 议 加 上 EIA-232协 议 , 为 拨 号 串 行 异 步 通 信 提 供 了 通 信 机 制 。 第 五 种 选 择 是 LonTalk协 议 。 这 些 选 择 都 支 持 主 /从 MAC、 确 定 性 令 牌 传 递 MAC、 高 速 争 用 MAC以 及 拨 号 访 问 。 拓 扑 结 构 上 ,支 持 星 型 和 总 线 型 拓 扑 ; 物 理 介 质 上 , 支 持 双 绞 线 、 同 轴 电 缆 、 光 缆 。以下详细讨论 BACnet 选择一个四层体系结构的原因

17、。首先仔细考虑 BACnet 网络的独特特征。BACnet 的特征主要有以下两点: (1) BACnet 网络是一种局域网。即使在某些应用中,楼宇中设备间远距离的通信必不可少时,这一点仍然是不变的。这种远距离的通信功能,是由电信网来实现。通信过程中要解决的路由、中继、可靠传输等问题,都由电信网来处理。在此电信网可看成是 BACnet 网络外部的部分。 (2) BACnet 设备是静态的,即在空间上,它们不会经常被移来移去。在要完成的功能上,从某种意义上说也是不变的,即不会今天生产的设备的功能是这样,明天就完全不同了。 在充分了解 BACnet 网络的特征后,就可讨论 OSI 模型的各层在 BA

18、Cnet 网络中的适用性了。OSI 模型的物理层提供了设备间的物理连接,以及传输载波信号的方式。显然在BACnet 协议中,物理层是必不可少的。 OSI 模型的数据链路层,负责将数据组织成帧(Frame)或分组(Packet)、管理通讯介质的访问、寻址(Address),以及完成一些错误校正(Error Recovery)和流量控制。这些都是 BACnet 协议所需要的,因此数据链路层也是必不可少的。 OSI 网络层的功能,包括将全局地址解析为局部地址,在一个或多个网络中进行报文的路由,协调不同类型网络的差异(如不同网络所允许的最大报文长度),序列控制,流量控制,差错控制,以及多路复用。由于

19、BACnet 网络的拓扑特点,在各个设备之间只存在一条逻辑通路(参见图 3),这样便不需要最优路由的算法。其次,BACnet 网络是由中继器或网桥互联起来的一个或多个网段所组成的网络,它具有单一的局部地址空间。在这样一种单一网络中,许多 OSI 网络层的功能也变得多余,或者与数据链路层相重复。当然在某些 BACnet 网络系统中,网络层也可能是必不可少的。例如,在一个 BACnet 的网际网(internet)中,当两个或多个网络使用了不同的 MAC层时,便需要区别局部地址和全局地址,这样才能将报文路由到正确的网络上去。在BACnet 协议中,通过定义了一个包含必要的寻径和控制信息的网络层头部

20、,来完成这种简化了的网络层功能。 传输层主要是负责提供可靠的端到端的报文传输、报文分段、序列控制、流量控制,以及差错校正。传输层的许多功能与数据链路层相似,只是在作用范围上有所不同。传输层提供的是端到端的服务,而数据链路层则提供的是单一网络上点到点的服务。由于 BACnet 支持多种网络的配置,因此协议必须提供传输层端到端的服务。在BACnet 网络中要提供三个方面的传输层的功能,第一是可靠的端到端传输和差错校正功能,第二是报文分段和端到端的流量控制,第三是实现报文的正确重组,序列控制。由于 BACnet 是建立在无连接的通信模型基础上的,因此所需的服务大大减少,并且可以被高层来实现,所以,传

21、输层的这些功能可以通过 BACnet 应用层来实现,这样,在 BACnet 协议体系中不单独设置传输层,相应的功能放在应用层中完成,从而节省了通信开销。 会话层的功能是在通信双方之间建立和管理长时间对话。包括建立同步标志点,用来在出错时回复到前一个标志点,以避免对话重新开始。但在一个 BACnet 网络中,绝大部分的通信都是很简短的,比如读写一个或一些值,通知某个设备某个警报或事件,或者更改某个设定值。当然长时间的信息交换偶然也会发生的,比如上载或下载某个设备。由于绝大部分事务处理都是简短的,会话层的服务极少用到,再考虑到带来的开销,因此 BACnet 标准中不包括这层。 表示层为通信双方提供

22、了屏蔽下层传送语法的服务。这种传送语法是用来将应用层中抽象的用户数据表示,变成适合下层传输的字节序列。但当只存在一种传送语法时,表示层的功能便减少到对应用程序的数据进行编码。由于在 BACnet 在应用层中定义了一个固定的编码方案,因此一个独立的表示层也变得不再需要。 协议的应用层为应用程序提供了完成各自功能所需的通信服务。在此基础上,应用程序可以监控 HVAC&R 和其它楼宇自控系统。显然应用层是本协议所必需的。从以上讨论中,可以得到以下几点: 1 实现一个完全的 OSI 七层体系结构需要大量的资源和开销,因此它对于目前的楼宇自控系统是不适用的。 2 根据 OSI 模型,采用现有的计算机网络

23、技术将会带来以下好处:节约成本,便于与其它计算机网络系统集成。 3 根据楼宇自控系统的环境及要求,可以通过去除 OSI 某些层的功能来简化OSI 模型。4 由 物 理 层 、 数 据 链 路 层 、 网 络 层 和 应 用 层 组 成 的 一 个 简 化 体 系 结 构 , 是 当 今 楼宇 自 控 系 统 的 最 佳 解 决 方 案 。1.3 BAC 网 络 的 拓 扑 结 构为 了 应 用 的 灵 活 性 , BACnet 并 没 有 严 格 规 定 网 络 的 拓 扑 结 构 。 BACnet 设 备 可 以 通 过 专线 或 拨 号 异 步 串 行 线 , 与 四 种 局 域 网 之

24、一 进 行 物 理 相 连 。 而 这 些 网 络 可 以 通 过BACnet 路 由器 或 一 对 半 路 由 器 进 一 步 互 联 。 在 BACnet 网 络 中 , 定 义 了 如 下 这 样 一 些 拓 扑 结 构 : 1. 物 理 网 段 ( Physical Segment) : 直 接 连 接 一 些 BACnet 设 备 的 一 段 物 理 介 质 。 2. 网 段 ( Segment) : 多 个 物 理 网 段 通 过 “中 继 器 ”在 物 理 层 连 接 , 所 形 成 的 网 络 段 。3. 网 络 (Network): 多 个 BACnet 网 段 通 过 “网

25、 桥 ”互 连 而 成 , 每 个 BACnet 网 络 都 形成 一 个 单 一 的 MAC 地 址 域 。 这 些 在 物 理 层 和 数 据 链 路 层 上 连 接 各 个 网 段 的 设 备 , 可 以 利 用MAC 地 址 实 现 报 文 的 过 滤 。 4. 网 际 网 ( Internetwork) : 将 使 用 不 同 LAN 技 术 的 多 个 网 络 , 用 BACnet“路 由 器 ”互 联 起 来 , 便 形 成 了 一 个 BACnet“网 际 网 ”。 在 一 个 BACnet 网 际 网 中 , 任 意 两 个 节 点 之 间恰 好 存 在 着 一 条 报 文

26、通 路 。 这 些 概 念 如 图 1-3 所 示 。1.4 BACnet 的协议栈和数据流在 BACnet 中,两个对等应用进程间的信息交换,依然按照 OSI 技术报告中关于ISO 的服务惯例(ISO TR 8509),被表示成抽象的服务原语的交换。BACnet 定义了四种服务原语:请求、指示、响应和证实原语,用来传递某些特定的服务参数。而包含这些原语的信息,又是由 BACnet 标准中定义的各种协议数据单元(PDU:Protocol Data Unit)来传递的。 当应用程序需要同远地的应用进程通讯时,它通过调用 API 访问本地的 BACnet 用户单元(应用层中为用户应用程序提供服务的

27、访问点)。API 的某些参数,如接收服务请求的设备的标志号(或地址)、协议控制信息等,将直接下传到网络层或数据链路层。而其余参数将组成一个应用层服务原语,通过 BACnet 的用户单元传到 BACnet 的应用服务单元(应用层中利用下层服务完成应用层服务的部分)。 从概念上来讲,由应用层服务原语产生的应用层协议数据单元(APDU),构成了网络层服务原语的数据部分,并通过网络层服务访问点下传到网络层。同样,这个请求将进一步下传到本地设备协议栈的以下各层。整个过程如图 1-4所示(见下一页)。 于是,报文就这样被传送到远地的设备,并在远地设备协议栈中逐级上传,最后指示原语看起来似乎是直接从远地的

28、BACnet 应用服务单元上传到远地的 BACnet 用户单元。任何从远地设备发回的响应,也是以该方式回传给请求设备的。 BACnet 协议采用的分层思想,来源与一个简单的科学原理分层原理(Layering Principle)。即“在目标计算机上的第 N 层软件必须恰好接收由在发送计算机上的第 N 层软件所发送的数据”。换句话说,在数据发送前,协议进行的任何转换在接收时必须被完全地逆转换。如果在发送计算机上的一个特定层将一个头部放入帧中,在接收计算机的相应层必须除去该头部。分层思想简化了协议的设计和测试,避免了一层协议软件引入其它层可见的改变。这样,每一层的发送和接收软件可独立于其它层进行设

29、计、实现、测试。第 2 章 BACnet 应用层规范本章介绍 BACnet 的应用层规范的原理和运行机制,概要介绍 BACnet 应用层的模型、主要的服务原语以及应用层报文的结构,并讨论 BACnet 各种报文的传输过程以及与报文传输相关的其它问题。 2.1 BACnet 协议的应用层规范BACnet 网络的应用层协议要解决三个问题,向应用程序提供通信服务的规范,与下层协议进行信息交换的规范,和与对等的远程应用层实体交互的规范。首先对一些相关的概念进行说明。 应用进程是指,为了实现某个特定的应用(例如,节点设备向一个远端的温度传感器设备请求当前温度值)所需要的进行信息处理的一组方法。一般来说,

30、这是一组计算机软件。 应用进程分为两部分,一部分专门进行信息处理,不涉及通信功能,这部分称为应用程序。另一部分处理 BACnet 通信事务,称为应用实体。应用程序与应用实体之间通过应用编程接口(API)进行交互。BACnet 应用层协议只对应用实体进行规范,不涉及应用程序和应用编程接口。但在具体实现过程中,应用编程接口一定是某个函数、过程或子程序的调用。 图 2-1 示出了这些概念,图中阴影部分是应用进程位于 BACnet 应用层中的部分。应用实体本身又由两部分组成,分别是 BACnet 用户单元和 BACnet 应用服务单元(ASE)。应用服务单元是一组特定内容的应用服务,这些应用服务包括:

31、报警与事件服务,文件访问服务,对象访问服务,远程设备管理服务,虚拟终端服务,和网络安全性。用户单元的功能是支持本地 API,负责保存事务处理的上下文信息,产生请求标志符(ID),记录标志符所对应的应用服务响应,维护超时重传机制所需的超时计数器,以及将设备的行为要求映射成为 BACnet 的对象。我们将在后续的文章中介绍这些应用服务和对象的内容。 “BACnet 设备”是指任何一种支持用 BACnet 协议进行数字通信的真实的或者虚拟的设备。一个 BACnet 设备有且只有一个“设备对象”,而且被一个网络号和一个 MAC 地址唯一确定。在大多数情况下,一个物理设备就是一个 BACnet 设备,例

32、如一个支持 BACnet 协议通信的温度传感器就是一个 BACnet 设备。但是也可能有一个物理设备具有多个“虚拟的” BACnet 设备的功能,在 BACnet 标准的附件 H 中对此进行了详细规范。 当一个 BACnet 设备中的应用程序需要与网络中其它 BACnet 设备中的应用程序进行通信时,应用程序只需通过调用 API 访问本地的 BACnet 用户单元来实现。例如,一个 BACnet 设备的应用程序要向一个远地设备的应用程序发送一个请求服务信息,它调用 API,并将相应的参数填入 API 中。API 中的某些参数,如服务请求接收设备的标志号(或地址)、协议控制信息等,将直接下传到网

33、络层或数据链路层;其余参数则组成一个应用层服务原语,通过 BACnet 用户单元传到 BACnet 应用服务单元(ASE),形成应用层协议数据单元(APDU)。APDU 则通过网络层的服务访问点(NSAP)下传到网络层,成为网络层服务原语的数据部分。这个请求将进一步下传到本地设备协议栈中的下层,最终由物理层传送到远地设备,并通过远地设备协议栈逐级上传到远地用户单元。从远地设备看起来,指示原语似乎是直接从它自己的 BACnet应用服务单元传到其 BACnet 用户单元的。同样,任何从远地设备发回的响应,也是以相同方式回传给请求设备。 BACnet 应用层协议包含了 OSI 模型中的应用层到传输层

34、中的相应内容,所以除了应用层服务的功能外,还要有端到端可靠传输的功能。因此,BACnet 应用层规范就是为了保证 BACnet 设备的应用程序能够与网络中远地 BACnet 设备的应用程序进行端到端可靠通信而制定的一组规则,其主要内容包括:BACnet 应用层提供的服务类型,上下层之间交换的接口控制信息,和对等层协议数据单元的传输机制。 2.2 BACnet 应用层服务类型 BACnet 的应用层提供两种类型的服务,分别是“证实服务”和“非证实服务”。在 BACnet 中,两个对等应用进程间的信息交换,根据 ISO 的服务惯例,被表示成抽象的服务原语的交换。BACnet 定义了四种服务原语:请

35、求(Request)、指示(Indication)、响应(Response)以及证实(Confirm)原语,可以用来传递某些特定的服务参数。而包含这些原语的信息,又是由标准中定义的各种协议数据单元(PDU)来传递的。下面列出各种服务原语: CONF_SERV. response CONF_SERV. Confirm CONF_SERV. Request CONF_SERV. indication UNCONF_SERV. request UNCONF_SERV. indication SEGMENT_ACK. request SEGMENT_ACK. request ERROR. reques

36、t ERROR. indication REJECT. request REJECT. indication ABORT. request ABORT. indication CONF_SERV 的标识表明使用的是 BACnet 证实服务PDU。UNCONF_SERV、SEGMENT_ACK、ERROR、REJECT 和 ABOUT,分别表明使用的是非证实服务 PDU、分段回应 PDU、出错 PDU、拒绝 PDU 和放弃 PDU,后面这些都是非证实服务类型。 证实服务是建立在客户/服务器通信模型的基础上的,客户端通过某个服务请求实例,向服务器请求服务,而服务器则通过响应请求来为客户端提供服务,

37、如图 2-2所示。在交互过程中,担当客户角色的 BACnet 用户,称为请求方 BACnet 用户;担当服务器角色的 BACnet 用户,称为响应方 BACnet 用户。证实服务的具体过程如下:由请求方 BACnet 用户发出的一个CONF_SERV. request 原语,形成请求 PDU 发送给响应方 BACnet 用户。当该请求 PDU到达响应方 BACnet 用户时,响应方 BACnet 用户则收到一个 CONF_SERV. indication原语。同样,由响应方 BACnet 用户发出的一个 CONF_SERV. response 原语,形成响应 PDU 回传给请求方 BACnet

38、 用户。当响应 PDU 到达请求方 BACnet 用户时,请求方BACnet 用户则收到一个 CONF_SERV. CONF_SERV. confirm 原语。因此,整个过程中请求方 BACnet 用户和响应方 BACnet 用户都要接收和发送 PDU。 在非证实服务中,不存在上述客户/服务器模型、“请求方 BACnet 用户”和“响应方 BACnet 用户”等概念,只有“发送方 BACnet 用户”和“接收方 BACnet 用户”。前者指的是发送 PDU 的 BACnet 用户,后者指的是当一个 PDU 到达时,接收到一个指示(indication)或证实(confirm)的 BACnet

39、用户。图 2-3 为正常的证实服务报文传递的示意图,图 2-4 为正常的非证实服务报文传递的示意图。2.3 BACnet 应用层报文分析2.3.1 应用层接口控制信息 除了服务原语和服务参数外,应用实体还通过 API 与应用程序交换各种接口控制信息(ICI)参数,其具体内容取决于服务原语的类型。应用实体接收到的 ICI 参数将下传到下面各层,以便于各层 PDU 的构建。而应用实体回传给应用程序的 ICI 参数,则包含了其以下各层从各自的 PDU 中得到的信息。 通过 API 与各种服务原语交换信息的 ICI 参数包括: 1. “目的地址”(DA:):将要接收服务原语设备的地址。其格式(如设备名

40、称、网络地址等)只与本地有关。这个地址也可以是多播地址、本地广播地址或全局广播地址类型。 2. “源地址”(SA):发送服务原语的设备的地址。其格式只与本地有关。 3. “网络优先权”(NP):表示网络优先权的参数。 4. “需回复数据”(DER):一个逻辑值参数,用来指明某个服务是否需要一个回复服务原语来确认。 2.3.2 应用层协议数据单元的编码 在 BACnet 中,使用应用层协议数据单元(APDU)来传递包含在应用服务原语和相应的参数中的信息。BACnet 选择 ISO Standard 8824 规范中的方法来表征 BACnet 服务的数据内容。并且,BACnet 规定了 APDU

41、的编码内容,这些编码内容在 BACnet 标准中的有关章节中进行了详细的描述。 BACnet 的 APDU 由协议控制信息(PCI)和用户数据两部分组成。PCI 中包含进行应用层协议操作所需要的数据,这些数据包括:APDU 的类型,匹配服务请求和服务响应的信息,执行分段报文重组的信息。这些信息包含在报文的头部,也称为 APDU 的固定部分。用户数据中包含每种服务请求和服务响应的具体信息,这部分也称为 APDU的可变部分。2.3.3 BACnet 报文的分段 为了实现长报文(长度大于通信网络、收/发设备所支持的长度)的传输,有必要对报文进行分段。在 BACnet 体系结构中,不存在单独的传输层,

42、因此报文分段不是由传输层实现,而是由应用层来完成。并且,在 BACnet 中只有 Confirmed-Request和 Complex-ACK 报文可能需要分段,因此分段还是 BACnet 的一个可选特性。 1报文分段的原则 每个由 BACnet 报文编码而成的数据流序列,按下面规则进行分段,然后再在网上传输。 一个完整的报文尽可能作为一个 APDU 发送。 当一个完整的报文不可能作为一个 APDU 发送时,则应分段成最少个数的多个APDU 发送。 一个报文分段的长度(以 bit 为单位)应是 8 的整数倍,即对报文进行分段时,字节是最小的分割单位。2BACnet APDU 最大长度的确定 在

43、 BACnet 中,APDU 的长度也是没有固定的,而是定义了一个确定 APDU 最大长度的原则,即 APDU 最大长度应是以下长度值中的最小值: 设备所能发送的 APDU 的最大长度。一般与本地设备的缓冲区大小等本地因素有关。 BACnet 网际网所能传输到远地设备的 APDU 的最大长度。一般由本地、远地,以及中间传输网络的数据链路所决定。 远地设备所能接收的 APDU 的最大长度,其值不能小于 50 个字节。3与分段有关的协议控制信息(PCI) 为了支持报文分段,BACnet 协议在 BACnet-Confirmed-Request-PDU 和 BACnet-ComplexACK-PDU

44、 的头部,定义了四个与分段有关的协议控制信息参数。其中两个是布尔型参数,另两个是八位二进制无符号整数。这些参数可以使接收方对到达的分段进行正确的重组,从而保证端到端的可靠传输。 2.4 BACnet APDU 的传输BACnet 的 APDU 收发协议的详细细节,包含在 BACnet 复杂的事务状态机制(TSM:Transaction State Machine)中,以下的讨论旨在对几种主要 APDU 的传输过程有整体的认识。 2.4.1 证实请求报文的传输 客户端设备在传输了一个完整未分段的证实请求报文(Confirmed-Request Message)后,或在等待接收分段证实请求报文最后

45、一个分段所对应的确认信息时,将启动一个计时器。该计时器用来计量对请求报文回应的时间。一旦收到了针对该请求报文所发的出错 APDU、拒绝 APDU、放弃 APDU、简单回应 APDU 或复杂回应APDU,则停止计时,同时通知客户应用程序。如果计时器的时间值超出了客户设备对象的 APDU_TimeOut 属性值,则整个报文重新发送,计时器重新计时。所有报文的超时重传均按此过程进行,直至重传次数超出了客户端设备对象“APDU 重传次数”属性所规定的次数。若超出规定值仍未收到响应,该报文将被丢弃,同时通知客户应用程序。 2.4.2 分段证实请求报文的传输 客户端设备在发送分段证实请求(Segmente

46、d Confirmed-Request Message)PDU的第一个分段之前,首先选择一个预设窗口值,以表示它在收到一个分段回应之前,一次准备发送的报文分段最大个数。它通常由报文分段的“建议窗口尺寸”参数表示,取值范围为 1 至 127,在该处其具体取值只与客户端有关。在传输完第一个分段后,客户端设备将启动一个计时器,用来计量对报文分段回应的时间。一旦收到了针对该报文分段所发的拒绝 APDU、放弃 APDU 或分组回应 APDU,则停止计时,同时通知客户应用程序。如果计时器的时间值超出了客户设备对象的 APDU_Segment_TimeOut 属性值,则这个分段将重新发送,计时器重新计时。所

47、有报文分段的超时重传均按此过程进行,直至重传次数超出了客户端设备对象中“APDU 重传次数”属性所规定的次数。若超出规定值仍未收到响应,该报文将被丢弃,同时通知客户应用程序。 当服务端设备收到分段证实请求 PDU 的第一个分段后,将会选择一个实际窗口值,以表示它在发送一个分段回应前,一次准备接收的报文分段最大个数。同样,该值的取值范围也规定在 1 至 127 之间,同时它还不能大于证实请求 PDU 中的预设窗口值,在该处其具体取值只与服务器端有关。 在收到第一个分组回应 APDU 后,客户端设备从中得到服务器端设备的实际窗口值,并将该值设置成它的实际窗口值。这样,客户端设备和服务器端设备的实际

48、窗口值大小一致。客户端便可以在收到一个分段回应 APDU 之前,一次发送多个分段;服务器端也可以在发送一个分段回应 APDU 之前,一次接收多个分段。客户端发送完整个报文或发送了窗口值个数的多个分段后,将启动一个计时器,用来计量对这些报文分段回应的时间。一旦收到了针对这些报文分段所发的拒绝 APDU、放弃 APDU 或分组回应 APDU,则停止计时。如果计时器的时间值超出了客户设备对象的APDU_Segment_TimeOut 属性值,则这些分段将重新发送,计时器重新计时。所有报文分段的超时重传均按此过程进行,直至重传次数超出了客户端设备对象中“APDU 重传次数”属性所规定的次数。若超出规定

49、值仍未收到响应,该报文将被丢弃,同时通知客户应用程序。 客户端在发送分段的过程中,可能会收到拒绝 APDU、放弃 APDU 或分段回应APDU。在这种情况下,收到拒绝 APDU 或放弃 APDU 将会中止请求的传输;收到分段回应 APDU,将会作为序号等于或小于该 APDU 中分段数参数值的所有分段的确认,而那些没有被确认的分段将按上述过程重传。 2.4.3 分段复杂回应报文的传输 分段复杂回应报文(Segmented ComplexACK Message)的传输过程与分段证实请求报文的传输过程相类似,主要不同之处在于: 在分段复杂回应报文的传输过程中,由服务器端设备发送复杂回应报文的分段,由客户端设备接收并发分段回应 APDU 在分段复杂回应报文的传输过程中,客户端设备只能回应放弃 APDU 或分段回应APDU,而不能回应拒绝 APDU。2.4.4 分段回应 APDU 的传输 分段回应 APDU 是分段接收方设备用来回应发送方的信息。在以下四种情况下,设备需传输一个 SegmentACK。 设备收到报文的第一个分段。 设备收到未确认的、有序的、数量为实际窗口值的多个报文分段构成的序列。 设备收到一个乱序分段报文(可能表明丢失了某个分段)。 设备收到报文的最后一个分段。 2.5 与传输有关的其

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报