制定BACnet的目的是要建立一个统一的数据通信标准,使设备可以互操作。BACnet协议只规定了设备之间通信的规则,并不涉及实现的细节。BACnet协议模型为:
所有的网络设备,除基于MS/TP协议的以外,都是完全对等的(PeertoPear);
每个设备都是一个“对象”的实体,每个对象用其“属性”描述,并提供了在网络中识别和访问设备的方法;设备相互通信是通过读/写设备对象的属性,以及利用协议提供的“服务”完成;
设备的完善性(Sophistication),即其实现服务请求或理解对象类型种类的能力,由设备的“一致性类别”(Conformance Class)所反映。
BACnet是一种针对智能建筑的开放性的网络协议,遵循OSI模型体系结构,图8是BACnet体系结构层次的示意图。BACnet协议从硬/软件实现、数据传输速率、系统兼容和网络应用等几方面考虑,目前支持五种组合类型的数据链路/物理层规范,其中主从/令牌传递(MS/TP)协议是专门针对楼宇自控设备设计的数据链路规范。BACnet在物理介质上,支持双绞线、同轴电缆和光缆;在拓扑结构上,支持星型和总线拓扑。
图8 BACnet的体系结构和层次
BACnet采用面向对象技术,借此提供一种表示楼宇自控设备的标准。在BACnet中,对象就是在网络设备之间传输的一组数据结构,网络设备通过读取、修改封装在应用层协议数据单元APDU(Application Protocol Data Unit)中的对象数据结构,实现互操作。
3.8 EIB
EIB是欧洲安装总线(European Installation Bus)的简称,为了便于在全球推广,又称为电气安装总线(Electrical Installation Bus)。它是欧洲占主导地位的楼宇自动化(BA)和家居自动化(HA)标准。EIB的管理机构EIBA委员会(European Installation Bus Association)目前拥有100多家会员(核心成员为ABB、Siemens等),这些会员占据了欧洲楼宇、家居自动化设备销售额的80%。
EIB网络是一个完全对等(peer-to-peer)的分布式网络,网络采用了域(Domain)、区(Area)、线(Line)的分层结构。EIB协议遵循OSI 模型,提供了OSI 模型所定义的全部7 层服务:
物理层:EIB提供了双绞线、电力线和无线等介质访问,满足了不同连接的需求。
数据链路层:EIB提供带有冲突避免的载波侦听多路访问(CSMA/CA),以提供可靠的数据传输。
网络层:EIB通过网络协议控制信息(NPCI)来设置节点间通信所经过的路由器的最大数目并管理网络的拓扑结构和处理上层的请求。
传输层:EIB提供了地址与抽象内部表达之间的映射-通信访问标识符(cr-id),支持面向连接和面向非连接的两种服务。
通过预留的会话层和表示层,所有设备被直接映射出来。
应用层:EIB通过提供API(应用程序接口)、组对象和分布对象以及设备管理的功能,直接为智能建筑的应用环境服务。
EIB 协议中总线元件可分为两类:一类是传感器,例如开关按钮、光感应器等,其作用是接受外部命令并对执行器发出指令;另一类是执行器,例如调光驱动器、电机驱动器、开关继电器等,其作用是对感应器发出的指令执行相应的操作。EIB电气安装图如图9所示。
图9 EIB电器安装图
3.9 ODBC
ODBC的全称是Open DataBase Connectivity,即开放式数据库连接,它是由微软提出的一套数据库访问接口标准,ODBC规范后来被X/OPEN和ISO/IEC采纳,作为SQL标准的一部分。ODBC技术为访问异类的SQL数据库提供了一个共同的接口,ODBC 使用SQL(Structure Query Language,结构化查询语言)作为访问数据的标准,图10显示了标准ODBC的结构的示意图。ODBC接口提供了最大限度的互操作性:一个应用程序可以通过相同的代码访问不同的SQL数据库管理系统 (DBMS)。
图10 ODBC结构示意图
数据库产品和技术发展很快,从关系数据库到非关系数据存储区(如电子邮件和文件系统),数据访问技术始终在追随技术飞速变化。随着客户端/服务器及多层应用程序结构的出现,在ODBC之后出现了许多新的数据库访问技术,如DAO、RDO、OLE DB、ADO 和 RDS等,微软推出.NET框架后还出现另外一项新的数据访问技术:ADO.NET。
3.10 DDE
DDE(动态数据交换,Dynamic data exchange)是Microsoft Windows运行环境下的一个显著特性,通过动态数据交换协议,应用程序之间可以进行各种类型的数据交换。两个Windows应用程序之间通过传递DDE消息进行DDE会话(Conversation),从而完成数据的请求、应答、传输。这两个应用程序分别称为服务器(Server)和客户端(Client),服务器是数据的提供者,客户端是数据的请求和接受者。