




已阅读5页,还剩65页未读, 继续免费阅读
(光学工程专业论文)基于bacnet的嵌入式家庭信息中心hic及x10的接入.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
i 摘 要 住宅智能化是人类住宅的一场新的革命。近年在我国,控制技术和信息技术正在由 智能大厦走进家庭。 现代社会的家庭正在以家庭智能化带来的多元化信息和安全、 节能、 舒适、便利的生活环境,作为一个理想的目标来追求。然而智能家庭的实现必然涉及到 多种控制系统的集成, 多年来不同控制设备厂商之间采用不同的标准是阻碍智能家居发 展最大的障碍。bacnet 开放协议解决了这个问题,bacnet 标准最根本的目的是要提供 楼宇自动控制系统实现互操作的方法。 各生产厂家按照这一标准开发与楼宇自控网兼容 的设备和接口, 最终达到不同生产厂家的设备可在这一标准通讯协议下相互交换数据的 目的。 随着技术的改进和成本的降低,电力载波技术最近在我国发展特别快。电力载波技 术采用 x-10 协议实现电力线上的信息交换,利用这种技术能方便、低廉的实现家用电 器和灯光的智能控制,因此本系统采用 x-10 作为家庭信息中心(hic)控制家电和灯光 的协议。 本文首先简单的介绍了智能家居的概况和发展趋势,bacnet 协议的结构和特点, 然后详细的介绍了 x-10 的原理和特点,在这些理论基础上提出了本文的课题目的:开 发基于 bacnet 的家庭信息中心(hic)及 x-10 控制系统的接入。接着用软件工程的原 理对 x-10 软件网关进行了分析、设计、编码,特别是在程序测试阶段还用嵌入式 web 的 cgi 技术对程序进行了测试。并且对 x-10 系统硬件组成做了详细的分析和介绍。本 课题在嵌入式的 linux 环境下用 c 语言开发,因此文中简单的了介绍了嵌入式系统和 linux 下的 c 编程,并且还简单的介绍了开发程序所用到的其他相关技术和工具。最后 对系统进行了总结并就今后系统研究方向和发展前景提出了作者的想法和建议。 关键词:关键词: 智能家居 bacnet x-10 linux 编程 cgi ii abstract smart house is a revolution of human residence.in recent years,especially in china ,automatic 要编译这个程序,我们只要在命令行下执行: gcc -o hello hello.c gcc 编译器就会为我们生成一个 hello 的可执行文件。执行./hello 就可以看到程 序的输出结果了。 命令行中 gcc 表示我们是用 gcc 来编译我们的源程序,-o 选项表示我 们要求编译器给我们输出的可执行文件名为 hello,而 hello.c 是我们的源程序文件。 gcc 编译器有许多选项,一般来说我们只要知道其中的几个就够了。-o 选项我们已 经知道了,表示我们要求输出的可执行文件名。-c 选项表示我们只要求编译器输出目标 代码,而不必要输出可执行文件。-g 选项表示我们要求编译器在编译的时候提供我们以 后对程序进行调试的信息 18。 (2)makefile 的编写 我们在做大型项目开发的时候,程序肯定不只 1 个文件,大部分情况下是由很多程 序组合而成,这个时候我们就必须借助 makefile 这样一个工具来帮助我们编译程序。 假设我们有下面这样的一个程序,源代码如下: /* main.c */ #include mytool1.h #include mytool2.h 10 int main(int argc,char *argv) mytool1_print(hello); mytool2_print(hello); /* mytool1.h */ #ifndef _mytool_1_h #define _mytool_1_h void mytool1_print(char *print_str); #endif /* mytool1.c */ #include mytool1.h void mytool1_print(char *print_str) printf(this is mytool1 print %s n,print_str); /* mytool2.h */ #ifndef _mytool_2_h #define _mytool_2_h void mytool2_print(char *print_str); #endif /* mytool2.c */ #include mytool2.h void mytool2_print(char *print_str) printf(this is mytool2 print %s n,print_str); 当然由于这个程序是很短的我们可以这样来编译 gcc -c main.c gcc -c mytool1.c gcc -c mytool2.c gcc -o main main.o mytool1.o mytool2.o 这样的话我们也可以产生 main 程序,而且也不是很麻烦.但是如果我们考虑一下如 果有一天我们修改了其中的一个文件(比如说 mytool1.c)那么我们还要重新输入上面的 11 命令,重新全部编译,这样很麻烦。 为此,我们可以用一个很好的工具来做这件事情, 这就是 make.我们只要执行以下 make,就可以把上面的问题解决掉。 在我们执行 make 之 前,我们要先编写一个非常重要的文件makefile。 对于上面的那个程序来说,可能的一 个 makefile 的文件是: # 这是上面那个程序的 makefile 文件 main:main.o mytool1.o mytool2.o gcc -o main main.o mytool1.o mytool2.o main.o:main.c mytool1.h mytool2.h gcc -c main.c mytool1.o:mytool1.c mytool1.h gcc -c mytool1.c mytool2.o:mytool2.c mytool2.h gcc -c mytool2.c 有了这个 makefile 文件,不过我们什么时候修改了源程序当中的什么文件,我们只 要执行 make 命令,我们的编译器都只会去编译和我们修改的文件有关的文件。 下面我们 学习 makefile 是如何编写的。在 makefile 中#开始的行都是注释行。makefile 中最重 要的是描述文件的依赖关系的说明。一般的格式是: target: components tab rule 第一行表示的是依赖关系。第二行是规则。比如说我们上面的那 makefile 文件的 第二行 main:main.o mytool1.o mytool2.o 表示我们的目(target)main 的依赖对象 (components)是 main.o mytool1.o mytool2.o,当倚赖的对象在目标修改后修改的话, 就要去执行规则一行所指定的命令。就象我们在上面那个 makefile 第三行所说的一样 要执行 gcc -o main main.o mytool1.o mytool2.o ,注意规则一行中的 tab,表示那里是一个 tab 键。makefile 有三个非常有用的变量, 分别是$,$,$,代表的意义分别是: $-目标文件,$-所有的依赖文件,$-第一 个依赖文件。 如果我们使用上面三个变量,那么我们可以简化我们的 makefile 文件为: # 这是简化后的 makefile main:main.o mytool1.o mytool2.o 12 gcc -o $ $ main.o:main.c mytool1.h mytool2.h gcc -c $ mytool1.o:mytool1.c mytool1.h gcc -c $ mytool2.o:mytool2.c mytool2.h gcc -c $ 经过简化后我们的 makefile 是简单了一点,不过人们有时候还想简单一点。这里我 们学习一个 makefile 的缺省规则 .c.o: gcc -c $显示,并且列出两个版本的不 同之处。仅删除旧版(或 修改使它能够工作),再次提交文件,一旦 cvs 没有警告返回 上一步,继续工作。 cvs 是一个很不错的版本控制工具, 通常在团队合作开发大型软件项目时作为工程 管理工具。 我们的 hic 软件项目, 包括笔者开发的 x-10 网关系统都是在 cvs 上进行版 本控制和工程管理的。通过 cvs 我们可以控制工程开发的进度和效率,并且实现团队 合作、共同开发。 2.4 cgi 技术 cgi 是 common gate intergace 的缩写。 在物理上, cgi 是一段程序, 它运行在 server 上,提供同客户端 html 页面的接口。这样说大概还不好理解。那么我们看一些本系统 中用到 cgi 的实际例子: 用户可以登陆家庭信息中心 hic 的 web 服务页面, 然后通过 web 界面设置家庭的家电和灯光以及其他设备,整个过程如下:先由用户在客户端选择想要 控制或者浏览的项目,然后选择想要控制的对象。用户设置完成以后按下页面上确定的 按钮(到目前为止工作都在客户端),浏览器把这些信息传送到服务器的 cgi 目录下特 定的 cgi 程序中, 于是 cgi 程序在服务器上按照用户的要求控制用户刚才配置的那些设 备。然后 cgi 程序给客户端发送一个信息,表示请求的任务已经结束。此时用户在浏览 器里将看到“操作成功”的字样。如果在 cgi 执行过程中超时,那么用户在浏览器里将 看到“操作不成功”的字样。本系统中编写了一个 x-10 系统的 cgi 测试程序,代码见 第五章。 cgi 程序一般完成 we b 网页中表单(form)数据的处理、 数据库查询和实现与传统应 用系统 的集成等工作。cgi 程序可以用任何程序设计语言编写,如 shell 脚本 语言、 18 perl、fortran、pascal、c 语言等。但是用 c 语言编写的 cgi 程 序具有执行速度快、 安全性高(因为 c 语言程序是编译执行且不可被修改)等特点。cgi 接口标准包括标准输 入、环境变量、标准输出三部分。 (1)标准输入 cgi 程序像其他可执行程序一样,可通过标准输入(stdin)从 web 服 务器得到输入 信息,如 form 中的数据,这就是所谓的向 cgi 程序传递数 据的 post 方法。这意味着在 操作系统命令行状态可执行 cgi 程序,对 cgi 程序进行调试。post 方法是常用的方法, 本文将以此方法为例,分析 cgi 程序设计的方法、过程和技巧。 (2)环境变量 操作系统提供了许多环境变量,它们定义了程序的执行环境,应用 程序可以存取它 们。 w eb 服务器和 cgi 接口又另外设置了自己的一些 环境变量,用来向 cgi 程序传递一 些重要的参数。cgi 的 get 方法还通过 环境变量 query-string 向 cgi 程序传递 form 中的数据。 (3)标准输出 cgi 程序通过标准输出(stdout)将输出信息传送给 web 服务器。 传 送给 web 服务器 的信息可以用各种格式,通常是以纯文本或者html文本 的形式,这样我们就可以在命令 行状态调试 cgi 程序,并且得到它们的输出。 cgi 技术在我们开发的 hic 项目中有着不容忽视的作用,因为我们必须利用 cgi 技 术实现 hic 中的远程控制功能。 客户远程登陆 hic 中的 web,并且发请求给 web 页面, 这 时候 web 如何把客户的请求传给 hic 总控模块就必须依靠 cgi 技术, 也就是我们通常提 到的动态网页的技术。 2.5 本章小结 本章分别介绍了几种在系统开发中用到的工具和相关技术: cvs 版本控制工具,gdb 嵌入式程序的调试软件,嵌入式 web 服务及其服务器端的控制程序编写技术 cgi, 并且比 较详细而全面的介绍了在 linux 下的 c 语言编程以及调试。 掌握并且熟练运用这几种工 具和技术对保证本系统的工程进度以及本系统的实现都有重大的意义。 19 3 家庭信息中心 hic 的分析和设计 3.1 hic 系统分析 3.1.1 开发目的 开发有自主知识产权的,以 bacnet 协议为平台的,可扩展的,面向“豪宅”的, 以安防为重点的嵌入式的智能家居系统。 该系统可以实现安防系统和家电、 灯光、 三表、 监视器、摄像头、电话的联动控制,提供随时随地遥控功能,同时提供网络监视、网络 控制、远程配置、电话控制、电话查询等外出远程操作功能。 3.1.2 国内外情况简述以及本产品的特点 目前国内从事智能家居的公司有:上海索博智能电子有限公司、上海奥卓电子有限 公司、天津瑞朗、北京联祥瑞和、广州天誉科技,有经营 x-10 产品的,也有经营智能 ic 卡的,也有经营电话控制系统的,关于无线遥控,广州天誉有彩色无线触摸屏产品, 关于安防,目前仅有分立的产品,没有广泛联动功能。本产品的特点是:可以将各厂家 的现有产品综合起来,实现互动。 3.1.3 hic 的开发原理 bacnet 协议本身具有的开放性和互操作性使得它能胜任智能家居系统的通信协 议。bacnet 路由器除了可以提供互联多个 bacnet 网络的方法之外,也可以用来为 non-bacnet 网络提供网关功能。non-bacnet 网络在报文结构,处理过程和介质访问控 制技术的使用方面与本标准包含的内容是不同的。使用扩展路由表概念实现将 non-bacnet 网络映射给 bacnet 路由器, 其方法是使用 bacnet npci 寻址 non-bacnet 设备。为此,每个 non-bacnet 网络分配一个唯一的双字节网络编号,该 non-bacnet 网络上的每台设备由一个 mac 地址代表,而这个 mac 地址可能与该设备在外部网络 的实际 mac 地址字节一致,也可能不一致。因为从(bacnet 协议的)定义上说,与 non-bacnet 网络上的设备通信并没有标准化,所以这样的路由器网关如何进行从 bacnet 端口到 non-bacnet 端口的报文的解释、翻译以及传送操作的过程需自行定义。 20 bacnet 协议附件 j135a 中规定了 bacnet/ip 规范,即 bacnet 使用因特网协议实 现网络互联和报文传输的应用。一个 bacnet/ip 网络是一个或者多个 ip 子网(ip 域) 的集合,这些子网都被分配有单独的 bacnet 网络编号。一个 bacnet 互联网络由两个或 者多个 bacnet 网络组成,这些网络可以是 b/ip 网络,也可以是使用 mstp、arcnet、 ethernet、ptp、lontalk 的技术的网络。 3.2 hic 体系结构和功能 3.2.1 hic体系结构如图 3-1: 图 3-1 hic 体系结构 3.2.2 hic 功能 (1)提供远程上网服务,实现网上监控。 (2)提供红外线遥控接口,实现红外控制。 (3)提供电话监控接口,实现电话监控和报警。 (4)提供本地监控接口,实现本地监控。 21 (5)提供家庭所有家电灯光统一智能控制。 (6)提供智能三表抄送统一控制。 (7)提供安防系统统一控制。 3.2.3 hic 各个子模块功能描述 (1) 家电控制模块 1)实现家电设备互动规则。 2)提供用户网上查询、操作家电的功能 此模块是笔者研究开发的重点,在 hic 中占有至关重要的地位,特别对于实现相应 的安防、节能功能提供了互操作接口。 (2) 安防控制模块 实现安防设备与家电设备互动规则。 (3) 数据库 提供设备对应表,实现设备名称与地址对照,为 web sever,红外控制,电话控制, 本地控制服务。 (4) bacnet 对象与服务。 实现控制操作与控制报文的互换。 (5) 三表抄送控制模块 1) 给三表抄送单位提供操作接口。 2) 纪录三表抄送单位操作数据。 3) 提供用户查抄和紧急关功能。 3.3 hic 软件设计 3.3.1 软件结构和说明 hic 的软件结构见图 3-2。说明:图中每一方框代表一个模块,模块之间的连线表 示模块之间的数据关系,方向表示数据流向。 操作系统:拟采用自行定制的方式,采用 linux kernel,uclibc,busybox 定制。因 选用的工控机 cpu 有 mmu(i386 架构) ,linux 内核无须修改,并且无须专门编写内 22 存管理软件模块。(若采用 arm 芯片的工控板,硬件便宜很多,产品的生产成本较低, 但要采用 uclinux,需编写内存管理软件模块,而且需要价格颇高的仿真器,导致开发成 本较高。) 图 3-2 hic 软件结构 bacnet 网络层及以下是相对固定的,而应用层包含的对象和服务则可根据具体应 用需求来进行裁剪。因此把网络层及以下以 linux device driver(ldd)的方式编程, 放入内核空间,以动态加载的方式来运行。网络层对应用层提供编程接口,应用层放入 用户空间。 网络层及以下也是可以根据具体应用来裁剪的,比如智能家居系统中,若只以一种 局域网如rs-485或b/ip作为总线, 那么甚至网络层不需要路由功能。 这大大减少了ldd 开发的复杂度。 3.3.2 各子模块的软件设计 (1)用户终端:目前是 web 浏览器;web 服务器:提供远程 web 访问,为用户提 23 供友好的用户界面,提供查询,视频监控,控制,映射表配置,安防策略修改,日志查 询等 6 大类界面,由嵌入式 web 服务器完成。 (2)bacnet 服务:提供 bacnet 标准报文服务,完成 bacnet 报文的相关服务。 (3)控制接口模块:是用户信息与 hic 交换的接口,负责完成获得用户提交给 web 服务器的信息,将信息写入数据库,并通知 hic 总控模块;接收来 web 服务器的请求和 hic 总控模块的通知,读数据库,将信息交给 web 服务器。 (4)database:记录整个家庭中的所以设备的配置信息和状态信息,记录安防策 略信息,记录智能家居系统运行日志。采用 mysql 数据库。 (5)hic 总控模块:接收来自控制接口模块的通知,并将执行情况通知控制接口模 块;负载维护数据库中设备信息表中的信息与设备实际状态的一致性,负责整个网络中 设备信息配置、动态修改、查询,负责安防策略的实施和修改,负责报警信息的转发。 负责维护 hic、各 ddc 的安防策略文件,并响应 hic 传来的报警信息,向网络层发送相 应的报文。 (6)视频监控模块:转发由 tcp/ip 传过来的视频报文,并将起提交给 cgi 总控模 块。 (7)bacnet 网络层:功能同 bacnet 路由器的网络层,完成报文在不同链路之间的 转发。 (8)b/ip:bacnet 协议中的一种链路。 (9)x10:设计一个 x10 网关调用函数,当 hic 接到红外控制信号或者用户终 端(web 界面)访问信息时,首先判断请求报文是否为操作 x-10 设备,如果是则直接解 析该 bacnet 报文,解析完后把请求中的关键参数传给 x-10 网关函数,通过此网关函数 发出 x-10 报文控制分布在家庭电力线上的相应的电器和灯光,操作成功以后更新数据 库中的数据。 (10)三表:设计三表网关。 3.3.3 子模块间的数据通信实现方式 (1)与 hic 总控模块的通信实现方式 控制接口模块主要采用 java 语言,是一个单独的进程;与 hic 总控模块的通信 采用 socket 实现。控制接口模块有一个 socket 客户端线程,它与 hic 总控模块的服务 端相连。 24 (2)与 cgi 总控模块的通信方式 hic 总控模块有一个 socket 服务端线程, 监听控制接口模块的通知; 完成操作后发 通知给控制接口模块。 (3)与数据库的通信方式 采用标准的 sql 语言与数据库通信。 (4)与网络层数据通信方式 采用两个队列的方式实现,一个上传队列,一个下传队列,具体实现见下图。队列 的数据结构参照路由器的中队列的数据结构。 图 3-3 hic 与网络层的通信方式 (5)与 bacnet 服务的通信方式 直接调用 bacnet 服务所提供的服务实现函数。 (6)与 b/ip 的通信方式 与bacnet路由器中的b/ip链路的实现方式一样, 参照bacnet路由器的b/ip链路。 (7)与 x10 网关的通信方式 直接调用 x10 网卡提供的函数。当 hic 接到红外控制或者用户终端(web 界面) 访问时,首先判断请求报文是否操作 x-10 设备,如果是则直接解析该 bacnet 报文,解 析完后把请求中的关键参数传给 x-10 网关函数, 通过此网关函数发出 x-10 报文控制分 布在家庭电力线上的相应的电器和灯光,操作成功以后更新数据库中的数据。 (8)与三表网关的通信方式 直接调用三表网关提供的函数。 上传队列 网络层 下传队列 hic 25 3.4 hic 硬件设计 3.4.1 硬件框图及设计说明 选购现成的工控机产品。需两个以太网接口,四个串口(一个 rs-485)。选择 arbor 公司 emcore-i411 产品。下图是整个主板芯片和接口布局图: 图 3-4 主板芯片和接口布局图 3.4.2 硬件系统拓扑结构 智能家居硬件的主要组成部分: (1) 家庭信息控制中心(hi2c) ; (2) 以安防控制器为中心的安防系统; (3) 以视频服务器为中心的视频服务系统; (4) 以红外接收器及遥控器组成的红外遥控系统; 其中,hi2c 是整个智能家居的通信和控制中心,负责与各安防控制器、视频控制 器、三表、x-10 模块的通信,对各控制器进行控制。 要接入到因特网,hi2c 有四种方式: (1)利用以太网(宽带)接入,直接通过 hi2c 上的以太网接口连接,通信速率 26 10/100mbps 自适应; hi2chi2c adsladsl 以太网以太网 3/8电话 交换机 3/8电话 交换机 电话机电话机 传真机传真机 电话机电话机 x-10 射频发送模块 x-10 射频发送模块 安防控制器1安防控制器1 视频控制器视频控制器 x-10 射频转发模块 x-10 射频转发模块 电灯电灯 遥控器遥控器 执行器执行器 水表水表电表电表煤气表 红外接收器1 红外接收器2 红外接收器3 摄像1摄像2 煤气表 红外接收器1 红外接收器2 红外接收器3 摄像1摄像2 ethernet ethernet ethernet ethernet ethernet ethernet rs485 rs485 rs485 rs485 rs232rs232 rfrf irir 安防控制器2 声光电传感器 安防控制器2 声光电传感器 因特网因特网 办公室办公室 外地外地 消防队消防队 公安局公安局 手机手机 电信局电信局 x-10 信号接收模块 x-10 信号接收模块 x-10 信号接收模块 x-10 信号接收模块 x-10 电力线 x-10 电力线 adsl modemadsl modem 冰箱冰箱 coaxial-cablecoaxial-cable 有线电视网有线电视网 cable modemcable modem 图 3-5 硬件系统拓扑结构 (2)利用 hfc(光纤同轴网)接入,通过有线电视网,在 hi2c 中集成 cable modem 调制解调,再与 hi2c 上的以太网接口连接,通信速率 10mbps 以上; (3)通过 adsl(非对称用户数字线)接入,在 hi2c 中配合分离器和 adsl modem 调制解调,再与 hi2c 上的以太网接口连接,通信速率 500k-8mbps; (4)利用 isdn(综合业务数字网)接入,利用 isdn modem 与 hi2c 相连,通信速率 128kmbps; 3.4.3 智能家居的对外语音通信 智能家居中对外的电话、传真等功能,由一台 3/8 家庭交换机完成。这台 3/8 家庭交 换机可以结合 adsl 或者 isdn 来使用,利用电信局提供的“小交连选”服务,申请 3 条具有同样电话号码的外线。在满足对外语音通信的同时,可以提供上网服务。 3.4.4 hic 在智能家居内部的连接 (1)与安防控制器的连接 为保证与智能家居中的所有的安防控制器的通信,hic 通过 10/100mbps 自适应以 太网接口与各安防控制器连接在同一个以太网总线上,采用 bacnet/ip 规范进行标准 27 bacnet 通信。 (2)与视频控制器的连接 为保证与智能家居中的所有的视频控制器的通信,hi2c 通过 10/100mbps 自适应以 太网接口与各视频控制器连接在同一个以太网总线上,利用 bacnet 协议规定的 bacnet/ip 规范进行通信。 (3)与三表的连接 通信标准采用建设部三表规约户用计量仪表数据传输技术条件(报批稿, 2003) , hi2c 将串口 2 配置成 rs485 模式, 和三表连接在同一条 rs485 总线上进行通信。 (4)与家电的连接 hi2c 通过 x-10 协议控制家电。 具体的实现中 x-10 包括一个发射模块和若干个接收 模块,hi2c 通过串口 3 与发射模块相连,向接收模块发出控制命令,进而控制家电。 1) 1 个射频发射模块,通过 rs232 和 hi2c 的串口 3 连接,hi2c 通过串口 3 进行 x-10 总线控制; 2) 1 个射频转发模块,负责接收射频发射模块的控制信号并通过电力线转 发给 x-10 信号接收模块;x-10 信号接收模块与家电相连接,接收射频转发模块的信号并执 行对家电的操作。 3.4.5 各系统接口示意图 家 庭 信 息 控 制 中 心 ( h i 2 c ) 家 庭 信 息 控 制 中 心 ( h i 2 c ) 安 防 控 制 器 1安 防 控 制 器 1 视 频 服 务 器视 频 服 务 器 网 口 1网 口 1网 口 2网 口 2 安 防 控 制 器 2安 防 控 制 器 2 安 防 控 制 器 3安 防 控 制 器 3 红 外 接 收 器 1 红 外 接 收 器 1 红 外 接 收 器 2 红 外 接 收 器 2 红 外 接 收 器 3 红 外 接 收 器 3 红 外 接 收 器 4 红 外 接 收 器 4 红 外 接 收 器 5 红 外 接 收 器 5 红 外 接 收 器 6 红 外 接 收 器 6 红 外 接 收 器 7 红 外 接 收 器 7 网 口 3网 口 3 外 部 w e b 访 问外 部 w e b 访 问 串 口 2 ( r s 4 8 5 ) 串 口 2 ( r s 4 8 5 ) 水 表水 表电 表电 表煤 气 表煤 气 表 串 口 1 ( r s 2 3 2 ) 串 口 1 ( r s 2 3 2 ) 提 供 本 地 配 置 提 供 本 地 配 置 b a c n e t / i p h t t p t e l n e t r s 4 8 5 r s 4 8 5 r s 4 8 5 r s 4 8 5 t e l n e t b a c n e t / i p h t t p t e l n e t r s 4 8 5 r s 4 8 5 r s 4 8 5 r s 4 8 5 t e l n e t 串 口 3 ( r s 2 3 2 ) 串 口 3 ( r s 2 3 2 ) x - 1 0 发 射 器x - 1 0 发 射 器 图 3-6 各系统接口 28 3.4.6 hi2c 的硬件工作平台 (1)开发板选型 采用台湾磐仪科技的 emcore-v615 微型主板; (2)开发板的性能及配置 1) cpu 为 eden esp 5000,主频 533mhz,免风扇工作; 2) 3 个网口:3 个 10/100mbps 自适应的 rtl8139c 网卡; 3) 4 个串口:3 个 rs232、1 个 rs232/422/485; (3)附加的配置要求 1) 为了能够保证存储连续 3 天的视频监视图像, hi2c 采用容量为 40g 的笔记本硬 盘。 2) hi2c 是智能家居的核心设备, 运行负载重。 为了提高系统的性能, 外加 1 条 128m 笔记本内存。 3) 其它按照 emcore-v615 原始配置。 (4)操作系统及软件配置支持 裁剪、定制 linux 操作系统,支持数据库操作、网页 www 服务、远程登录 telnet 服务、java 运行环境支持等;主要的工作有: 1) 裁剪 linux 操作系统; 2) 配置开发环境及运行环境; 3) 安全管理; 4) 提高运行效率; 3.5 本章小结 本章首先介绍了 hic 的工作原理, 然后对 hic 的软件和硬件系统分析和设计做了详 细的说明。特别是对各个子模块之间的软、硬件设计讲解的十分透彻,对整个 hic 的框 架做了十分详细的介绍。 29 4 x-10 的技术分析 4.1 x-10 的发展及应用 pico electronics ltd.是全球第一家研发出简单型计算机用集成电路的公司,在 1976年时, 该公司已在代号为x-1至x-9的几个计划中研发出许多计算机用的集成电路; 当时该公司的新研发计划为:在不必另行架设新线路的情况下,如何利用既有电力线来 控制家中的灯饰及电子电器产品,并将该计划命名为 x-10。 x-10 计划是全球第一个利用电力线来控制灯饰及电子电器产品, 并将其商业化的成 功模式;pico electronics ltd.成功的发展出该项技术,并将该技术售予当时著名的 bsr 音响公司。x-10 是以 60 赫兹(或 50 赫兹)为载波,再以 120 千赫兹的脉冲为调变 波(modulating wave),发展出数位控制的技术,并制订出一套控制规格 15。 x-10 模组于 1978 年由 sears 引进美国,radio shack 则于 1979 年开始贩卖该模组 系列产品;bsr 音响公司在 1990 年结束营业,x-10 模组的先前研发人员将该项技术买 下来,并在美国成立新公司,公司名称及其产品系列均以 x-10 命名。今日,x-10 在美 国不仅是一家公司,亦是家庭自动化控制规格的一种名称。美国许多大公司如 radio shack、stanley、leviton、honeywell 均销售 x-10 公司的产品,全美国约有 400 万户 家庭使用 x-10 产品。 x-10 公司制造了一系列的家庭自动化产品,如照明开关、遥控器、保全系统、电视 机控制介面、电脑控制介面、电话反应器(telephone responder)等。许多美国的家 庭自动化产品制造商,亦采用 x-10 控制规格来生产其产品,x-10 控制规格遂成为当今 美国家庭自动化控制规格的主要领导者。 4.2 x-10 的原理 目前大约有 10 家公司制造 “x-10 兼容装置” ,但他们并不属于 x-10 有限公司。 x-10 只是一种电力载波协议。 x-10 的运作方式是通过用 8 位数据(1 个字节)提前设置的一组启动码。这项技术的 复杂部分不在于二进制数据系统,而是信号收发装置之间的传输。关键在于每个装置都 有一个集成“零交叉检测器”,所以它们才可以保持同步(如图 4-1),接收器每个正 30 弦波出现时接收 2 次(如图 4-2),也就是每秒钟 120 次,或者说每分钟 7200 次。(每 小时 432,000 次,每天 10,368,000 次,也就是意味着 60 赫兹,每年就要有 3,784, 320,000 次数据脉冲) 13。 图 4-1 x-10 同步示意图 图 4-2 x-10 设备在“零点”发送或读数据 因为这些装置间没有布线, 所以设计一种方式通过电力线来传输数据就变的至关重 要。实用的二进制数据在 120 赫兹要 1 毫秒的时间,然后通过过零点转入 60 赫兹。 (然 而北美市场的 x-10 设计适用于 50 赫兹),所以补充比特位的必要性就相当的明显了。 因此, 一个二进制的 “1” 就被设定为脉冲的生成, 而紧接下来波的消亡就被设定为 “0” , 然后再接着一个波的生成(如图 4-3)。 脉冲的传输仅用 1 毫秒的时间,接受器被设计在 6 毫秒内打开接受窗口。这样就允 许一个上下 200 微秒的容差。 31 图 4-3 x-10 中的”0”和”1”信号加载方式 为了提供一个提前预知的启动点(如图 4-4),每个数据帧都至少以 6 个主要的过 零点开始,然后是启动码“p 生成”、“p 生成”、“p 生成”、“波的消亡”(或者是 1110)。 图 4-4 x-10 的启动码 一旦启动码开始传输,第一单位量数据就被发出了。(如果你对“nibble”这个词 不太熟悉,我可以给你解释一下,它等于 4 个比特或者是半个字节)。为了让消费者使 用起来更加容易,我们把前 4-比特设定为字母码(如图 4-5)。它们可以随机重组,如 “a”、“b”、“c”码等。 32 图 4-5 x-10 的字母码 图 4-6 x-10 的数字码 在一个连续的字符串里,第二个单元量提供第二组地址的一半(如图 4-6)。最后 出现的比特数字码就是功能比特。 为了线路转送装置能不错过任何传输信息,x-10 协议让每个数据帧传输两次(如图 4-7)。 不论任何时候,数据从一个地址传输到另一个地址,从一个地址到一个命令,再从 一个命令转换到另一个命令,然后再从一个命令转换到一个地址(如图 4-8)。这组数 据帧至少需要 6 个清晰的过零点来分开(或者是“000000”)。每次讲解到这里的时候, 33 我就会说“这个间隙给接收器一个喘息的机会)。当然,现实中,6 个过零点的连续是 通过转换寄存器重置的。 图 4-7 x-10 地址帧的组成 图 4-8 x-10 间隙码 当接收器在处理它的地址数据时, 就表明它已经准备好接受一项指令了。 在此之前, 所有的数据帧都以一个启动码为开始。 然后接下来的 nibble 提供字母码。 下一个 nibble 就是指令了。而最后一个比特就是功能比特。(b=0=地址码,b=1=指令)所有的指令结 束于一个二进制 1。 这个波形(图 4-9)仅仅显现了 6 种最常用的命令。随后的图解解析了所有的命令。 在此之前,所有的 x-10 传输协议传输数据 2 次(如图 4-10)。 34 图 4-9 x-10 的命令码 图 4-10 x-10 的命令帧 图 4-11 中,可以看出两组数据的传输(a1 a1 a-开 a-开)会产生 47 个周期的 60 赫兹正弦波。等于 0.7833 秒,在实际情况下,也会低于 1 秒。有一些命令甚至时间 更短。例如,当发出一个“所有灯全开”的指令时,无需发送地址码,因此两组数据只 需花费 1/3 秒(即为 0.3666 秒)。如果你的接收器重新接收第一组数据,仅仅需要花 1/5 秒的时间(大约在 0.1833 秒)。 35 图 4-11 x-10 的标准报文 在这里,所有的图解都只呈现了一个脉冲波形,但是现实中,并不仅仅是“单一 波形”的世界,在此,我们用 3 组相位表示(如图 4-12)。那所有的 x-10 传感器就会 产生 3 个脉冲波形(如图 4-13)。 图 4-12 三相电力图 最后,介绍一下 x-10 的补充码协议。我将尽量通过最易懂的方式来说明 x-10 标准 码。 下面我做了一个图解: 通常, x-10 数据每次都以一个启动码, 比如预先设置的 “1110” 开始,接下来的 4 个比特是代表一个重要的类别,然后的 4 个比特定义为指令,最后的 就是功能比特了。每组数据都将被传输两次(如图 4-14 分析所示): 36 图 4-13 三相的 x-10 图 图 4-14 x-10 标准码图 所有我所讲过的内容都可以在这幅图中得到体现。你可能会注意到其中的四个命令 码有所变化: 37 扩充码 0111:现在设置为“扩充码 1”,用于数据和控制 预设调暗(1)1010:现在设置为“扩充码 3”,用于安全保障信息 预设调暗(2)1011:现在设置为“unused” 扩充数据 1100:现在设置为“扩充码 2”,用于 meter and dsm 正如我们所知,“扩充码 1”有一个定义长度:31 周期(62 比特),如下: 启动码=4 比特 家用码=4 比特 扩充码 1=5 比特(0111) 单元码(装置码)=4 比特 数据=8 比特 命令=8 比特 还有另外两个没有解释的是: “扩充码 2 在长度上变化的,主要看是什么信息类型。它有它自己的标识来与其它格 式区分” 。 “扩充码 3 是为安全保障信息设置的,不太常用,所以也没有明确的定义” 。 4.3 x-10 的特点 4.3.1 x-10 的优点 用电力线做网络信息的传输介质是最方便的,因为现在的家居中基本上都敷设了电 源线。因此采用电力线实施“智能家居系统”的方案是最方便的。国际上第一个家居智 能化方案就是利用电力线做信息传输介质的。 ,近几年,随着电力线通信技术的不断发展, 已使得电力线成为通信的重要媒介。本文所介绍的家电、灯光控制系统是以电力线载波 通信为技术基础,采用了电力线作为惟一通信介质。 笔者研究比较各种通信技术和手段, 并对市场动态作相关调查,发现无论从技术方面、经济方面,还是客户应用需求方面,采 用电力线通信来实现灯光、家电智能化控制是较完善的方案。电力线无处不在,尤其是 在已经建成的住宅中,避免了另行穿墙过孔的麻烦,节省了重新布线的开支。另外,在房 屋的每一居室中都分布有电力线插座,这样只需在低压用电设备电源侧连接一个通信控 制开关和电力线通信模块,由家庭信息中心hic通过电力线对通信控制开关进行操作,就 可简单方便地建立智能家居系统。用电力线传输数据信号,易实现,应用灵活,具有较强 的扩展性以及安装使用的随意性,能够很好地满足智能家居系统的设计需求。 38 4.3.2 x-10 的缺点 采用电力线做信息传输介质虽具有许多优势,如布线施工方便等,但由于电力线在 最初设计时只考虑输送电力能源,借用它来传输数字信息存在以下最主要的不利因素, 包括电力线阻抗的不确定性、 电力线上的脉冲噪声干扰以及谐波型噪声干扰。 x-10 产品 在我国的应用受到了很大的限制, 究其原因, x-10 的一些技术限制了在我国的推广使用, 其中抗干扰性能差(这是由于信号载波在电力线中的传送造成的,特别在中国这个问题 很严重)是推广应用的一个瓶颈,给 x-10 在我国的推广应用带来实质性的困难。 低压电力线一般由铜或其他电的良导体加工而成,其本身的阻抗很小(视导线的电 导率和截面积不同而不同) 。对不同频率的信号,其阻抗略有变化且相对稳定。因此, 电力线本身的阻抗并不是产生干扰的主要原因。从技术角度而言,里同电力线作为传输 媒介,主要存在以下几个干扰因素。 (1) 脉冲噪声 这是电力线上最大的噪声源。如洗衣机、空调电机和日光灯启停瞬间的脉冲噪声。 噪声具有突变、高能和覆盖频率范围广的特点,对载波信号影响很大。不仅会造成信号 误码率升高,而且可能使接收设备内部产生自干扰,严重影响整个系统的工作。 (2)信号衰减和阻抗变化 由家电启停随机性大引起,如冰箱,易造成电力负载变化大,使得电力阻抗可以从 0.1 变到 100,信号衰减从 55 到 100db。 (3)持续谐波干扰 如开关电源,产生的主要谐波频率在 50khz 以上,处于载波信号的频率范围。为了 解决干扰问题,经研究分析需要在以下几个方面做改进:首先,要在线路进入用户住宅 前采用新兴的偶合器,该耦合器不仅能增强发送信号,更重要的是进行滤波;其次,在 x-10 的发射端也增加放大和耦合电路, 通过带通滤波器以限制输出信号的频谱和减少谐 波分量的电平;最后,在接收端除通过带通滤波器来改善信噪比,再采用看门狗技术保 证控制器快速复位。电力线上紧连着的许多负载,对信号衰减影响很大。尤其是那些用 于调整电网功率因数的大电容,对几百 khz 的载波通信信号来说,相当于短路。信号衰 减又两部分组成:一是耦合衰减;二是线路衰减。理论上,我们可以将耦合器的内阻做 得相当小,这样衰减就主要决定于线路的衰减。为保证电力安全、高速传输,可靠通信, 甚至可以设计新型的耦合方式。今年来,由于引进国外先进技术,国内一些产商在解决 39 干扰问题上取得了突出的成果,因此 x-10 产品开始在国内如雨后春笋广泛的应用起来 了,本系统 hic 中的有关 x-10 的产品都是采用上海索博公司产品,性能十分理想17。 4.4 本章小结 本章首先详细的介绍了 x-10 的原理,然后介绍了采用 x-10 作为家电、灯光控制协 议的优势。x-10 固然有很多优点,但是也存在着很多缺点,本章对产生这些缺点的原 因进行了分析并且对国内一些厂商的 x-10 设备进行了评价。 40 5 x-10 网关分析和设计 5.1 x-10 网关的系统分析 上一章介绍了 x-10 的原理,在本章将要介绍用 x-10 协议做家庭信息中心家电、灯 光控制模块。由于家庭信息中心 hic 里面的信息报文采用都是 bacnet 协议,那么如果 要用 x-10 协议来控制家庭中所有的家电和灯光就必须在 hic 中做个软件网关来实现 bacnet 报文与 x-10 信息的转换,这就是我们要设计的 x-10 网关。 下面让我们用几个场景来做此系统的用例分析:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025生产科-原材料供应合同
- 2025年智慧社区安防系统全面维护与安全保障服务协议
- 2025家具定制预约合同
- 2025年度茶楼装修工程图纸审核与施工进度管理合同
- 《2025年原创动画剧本修订与相关衍生品制作合同》
- 2025年度节能减排专利使用权转让合同范本
- 2025年城市公共交通企业试用期驾驶员劳动合同范本
- 2025年数字商城用户信息保密及全渠道服务管理协议
- 2025专业宠物护理与寄养服务合同模板
- 2025年度市政路灯照明设备租赁与全效维护服务合同
- 9第九章-心境障碍PPT
- 丝印首件检验记录表
- 陕西省中考数学历年(2016-2022年)真题分类汇编专题8四边形及答案
- 新概念第一册重点句型300句
- GB/T 923-2009六角盖形螺母
- GB 19761-2009通风机能效限定值及能效等级
- 学会关心-教育的另一种模式课件
- 药物的结构性质与生物活性
- 少年中国说五线谱乐谱
- 国际公法学-第三章国际法与国内法的关系
- 广东广州市番禺区教育局招考聘用公办中小学临聘教师17人(必考题)模拟卷
评论
0/150
提交评论