基于I-7188 的EIB 网关的设计与实现
1. 引 言
EIB 是欧洲安装总线的简称,这是一个1990 年诞生于欧洲的专用于建筑设备自动化控制的现场总线技术标准。诞生时EIB 技术仅获得7 家厂商的支持,到1999 年时会员单位已超过200 家,在欧洲同类产品市场上占据了绝对的优势地位[1]。然而随着智能家居在人们的生活中扮演着越来越重要的角色,可是在实际应用中因为缺乏规范、统一的行业标准,导致每个厂家的系统只能适应自己的标准,对于外来的产品兼容性差,使得智能家居系统的集成性能差。本文就是为了解决EIB 系统与智能家居系统设备之间应用集成问题,从而提出了EIB 网关的设计,实现复杂的EIB 协议与简单的自定义协议AT-BUS 的相互转换。
2. EIB 协议报文结构
进行 EIB 网关的设计,了解EIB 协议报文结构是非常重要的。EIB 协议报文结构如下图2-1 所示,通过此图可以清晰看见EIB 的报文结构包括:控制域,源地址,目的地址,长度,数据和校验共六个部分组成。控制域:主要用来控制是否是重复报文,报文的优先级等;源地址:指发送报文的总线设备的物理地址,在通常操作中没有特殊意义;目的地址:总线设备的物理地址或者对象的组地址;长度:此字节最高位为目的地址类型选择标志,其后3bits 为路由计数器,每经过一个耦合器这个数就会减1,当减为0 时,报文丢弃,最后的4bits 表示数据单元的字节长度;数据:包含传送到总线上的数据单元,具体说明;校验字节:整个报文数据逐位的奇校验。
下面通过一个具体例子来分析EIB 协议报文,例如十六进制格式的EIB 协议报文:BC 1425 04 00 E1 00 81 16,通过分析可以知道:控制区域为BC,表示非重复报文,优先级4;源地址为14 25;目标地址为04 00;长度字节为E1,则说明目的地址为组地址,路由计数值为6,数据长度为1;数据为00 81,报文为无标号类报文,服务类型为写入对象值,写入的值为1,校验位为16。因此本报文的意义是源地址为14 25 的总线设备对组地址为04 00 的对象发送开命令。
上面的例子是EIB 的标准数据类型中的开关类型,接下来介绍两个常用标准数据类型,开关类型和调光类型。
开关类型:开关类型数据只占1bit,用来控制执行器的负载的开关,当值为“1”时,执行开的命令,当值为“0”时,执行关的命令,3. EIB 协议外部通信机制上面介绍了 EIB 协议报文结构,下面介绍EIB 协议外部通信机制,这对EIB 网关的设计也是至关重要的。由于总线访问单元BAU(Bus Access Unit)的系统程序已经为外部应用定义了外部消息接口EMI(External Message Interface),使用户可以通过配置服务原语实现EIB 网关对EIB 各层的访问。BAU 通过外部接口PEI(Physical External Interface)与EIB 网关进行连接通信,PEI 的类型有很多种,为了方便此次设计中采用PEI-16 类型。
3.1 PEI-16 协议格式
PEI-16 通讯是串行异步的通信方式,采用的是带有硬件握手的全双工传输,一共需要接收数据RXD,发送数据TXD,请求发送RTS,清空发送CTS 和地共五根线。PEI-16 通信参数为:波特率9600,8 为数据位,1 位停止位[4],无校验位。PEI-16 消息格式的报文含一个长度字节,一个消息代码字节和用户数据三个部分。其中长度字节包含数据字节长度信息5bit 和长度字节的偶校验位1bit。消息代码即为服务代码,常用服务代码见。
3.2 PEI-16 协议描述
PEI-16 协议的数据交换包含如下四个阶段:
1) 通信请求(硬件握手)2) 传输长度字节(软件握手)3) 数据交换4) 暂停(2 条消息最小时间间隔3ms)下面给出PEI-16 通信时序图:其中为BCU 网关接收数据时序图,为EIB网关发送数据时序图。
4. EIB 网关总体设计
通过对 EIB 系统的报文格式以及EIB 的PEI-16 消息格式通信时序进行了详细的介绍,接着可以进行EIB 网关的设计了。由于各个EIB 厂家都提供一个RS232 通讯模块,此模块对外部的接口协议为PEI-16,网关就利用此模块与EIB 总线通信。EIB 网关的应用拓扑图如图4-1 所示,其中PC 可用来监视EIB 总线数据。
4.1 硬件设计
www.qz26.com
EIB 网关的硬件直接采用鸿格公司生产的I-7188 控制器模块,内部硬件结构如上图4-2所示。
I-7188 模块采用美国AMD 公司的80188 芯片,主频为40MHz,内部有256K 的SRAM,512K 的Flash ROM,2K 的EEPROM 和RTC 功能等。同时本模块还具有强大的通信功能,具有四个串口,其中COM1 为9 线串口,非常适合用来连接EIB 的RS232 通讯模块,COM2连接AT-BUS 总线,COM3 连接PC,COM4 为程序下载口。I-7188 配有MiniOS7 嵌入式操作系统,极大提高系统的可靠性和运行的稳定性,同时给开发者提供了极为便利的开发环境和丰富的库函数,给编程带来极大方便[6]。因此采用此模块来构建EIB 网关不仅可缩短设计时间和减少开发费用,而且可以降低技术风险便于提供更可靠的产品。