当前位置:起点学习辅导网学习辅导毕业论文毕业论文提纲基于I-7188 的EIB 网关的设计与实现

基于I-7188 的EIB 网关的设计与实现

01-01 20:12:54浏览次数:290栏目:毕业论文提纲
标签:论文提纲格式,毕业论文提纲范文,暂无联系方式 基于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.qidian55.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 网关不仅可缩短设计时间和减少开发费用,而且可以降低技术风险便于提供更可靠的产品。

  4.2 软件设计
  EIB 网关主要进行AT-BUS 协议,EIB 协议相互转换及总线监视功能,在程序开始之前首先初始化串口,然后对EIB 系统的RS232 模块进行配置,使其工作在数据链路层,因为工作在链路层,消息简单和功能灵活性较大,接下来就可以进行协议之间的相互转换了。其软件总体设计框图如下图4-3 所示。

  4.2.1 PEI-16 协议驱动设计
  PEI-16 协议驱动主要是完成EIB 网关与EIB 的RS232 通信模块的通信,一共包含两个模块:发送数据模块,接收数据模块,这两个模块的数据处理流程分别。

  4.2.2 EIB 系统RS232 通信模块配置设计为了将 RS232 通信模块配置在数据链路层,必须使用PC_SET_VALUE.request 原语,它能直接访问BAU 的内存,进行工作层的设置,其PEI-16 格式的链路层配置消息如图4-6所示。

  4.2.3 EIB 数据解析与封装模块
  当使 EIB 的RS232 通信模块工作在数据链路层上后,EIB 网关就需要解析和封装链路层数据。首先介绍如何解析EIB 链路层数据,这里将用到L_DATA.indication 服务原语,即能监测到EIB 总线上的数据,假设某个开关按下,对应的灯被打开,监测到所示数据:

  通过分析可以发现,长度字节为PEI-16 协议的头字节,因为后面共有9 个字节数据,故为0xA9;消息代码0x49 为L_DATA.indication 原语服务代码;而用户数据为标准EIB 协议报文,可以对照前面分析进行参考,注意因为工作在链路层,故此报文不含校验位。

  下面介绍如何封装EIB 链路层数据,这里将用到L_DATA.request 和L_DATA.confirm 两个服务原语,分别表示数据链路层发送数据请求和链路层发送数据反馈,两者对应的消息代码分别为0x11,0x4E。下面举例分析,如控制组地址为0x0100 的灯关闭,只需发送如图4-8所示的格式的报文:

  编程时先将EIB-ATBUS 数据转换关系表存于EIB 网关中,当收到EIB 总线数据后,首先根据消息代码字节判断是总线监测还是报文反馈,如果是总线监测报文,根据用户数据中的组地址查询转换关系表,查看是否能找到对应的AT-BUS 数据,能则将AT-BUS 数据送到AT-BUS 的串口中进行发送,不能则只将监测到的数据送到连接PC 的串口中。如果是报文反馈则通过PC 串口打印输出,不做其他处理。

  4.2.4 AT-BUS 数据解析与封装
  这两个模块的设计比较简单,当收到AT-BUS 的数据后,送到AT-BUS 解析模块,解析模块通过查寻转换关系表分析进行何种类型转换,如开关灯或者调光增减等,然后调用EIB封装函数进行封装,然后送到EIB 发送缓冲即可。当收到EIB 的数据时,EIB 解析模块通过查询转换关系表分析进行何种转换,然后调用AT-BUS 封装模块进行数据封装,接着送到AT-BUS 串口发送缓冲区即可。

  5. 结论
  本文首先分析了研究 EIB 协议报文格式以及EIB 的外部通信机制,然后采用鸿格I-7188模块,高效的实现了EIB 协议到自定义串口协议AT-BUS 的转换,为智能家居中EIB 系统与其他系统的联动控制提供了方便,图5-1 是EIB 网关的一次具体应用,它实现了通过室内主机发送AT-BUS 协议给EIB 网关从而控制EIB 的灯光系统。

,基于I-7188 的EIB 网关的设计与实现
《基于I-7188 的EIB 网关的设计与实现》相关文章
给资讯打分:
网友评论: