上海贝岭-半导体 广告 7届电机产业链交流会 广告 2024中国华东智能家居技术创新峰会2 广告 产品库2024A3 广告

基于智能家庭网关的电表监测系统

2015-03-03 15:36:34 来源:互联网|0

基于智能家庭网关的电表监测系统,可同时采集多路脉冲量和模拟量,集数据采集与无线通讯为一体。该系统的家庭网关采用嵌入式芯片,利用蓝牙技术的无线传输,先将计费电表的信号传输到智能家庭网关中,再通过Internet 网络,可直接传输到物业公司或电业管理的调度部门的计算机中。该家庭网关的软件系统采用当今比较流行的linux 系统,图形界面可以自行编译安装。linux 系统的内核可裁剪,设备驱动完备,应用程序可移植性好,开发成本低,周期短。该家庭网关技术成熟稳定,成本低,其市场前景广阔。

引言

传统的电表抄表都是人工操作,费时费力,增加了统计计量的工作量。如果能够利用网络技术,将抄表功能集成于家庭网关中,实现远程智能抄表。

电表监测系统功能主要由数据采集、用户查询、时段分析、故障监控等几个部分组成。数据采集主要进行单表数据抄表,并对数据进行加工处理。用户查询主要进行日用量日、月、年查询,月用量月、年查询,年用量年查询,冻结数据查询分析。故障监控主要进行查询分析用户表计各种故障, 电表监测系统各种故障及网络通信故障、信号线故障等。

家庭网关采用linux 系统,由于源代码开放等特性,使得开发人员更加便利的扩展家庭网关的功能, 更可以在现有的网关的基础上将电表监测系统模块添加进去, 使得用户的家庭网关得到增值服务。

利用蓝牙技术的无线传输、传输距离短(10m 之内)和抗干扰性强的特点,先将计费电表的直流信号通过加载的BlueTooth 芯片无线传输到智能家庭网关中,通过Internet 网络,直接传输到物业公司或电业管理的调度部门后, 便可输入到计算机中完成网上任一用户的电费自动查询。也以与现有的电费收费网络系统相连接,以及与电网的调度指挥中心相连接成一个完整的用电管理网络。蓝牙芯片仅为9mm×9mm,可以直接嵌入数字电表中。其工作采用2400~2483.5MHz 的ISM(工业、科学和医学)频段,该频段内没有其它系统的固定信号干扰,同时该频段向公众开放,频段在全球范围内有效。但同时ISM 频段作为开放频段, 使用其中的任何频段都会遇到不可预测的随机干扰源(如某些家用电器、无绳电话和汽车开门器等)。因此,对外部和其它蓝牙用户的干扰源要不同的技术加以处理。

蓝牙技术实现了设备的无线连接工作,提供了接入数据网的功能,并且具有外围设备接口。蓝牙系统采用基于包的传输:将信息流分片(组)打包,在每一时隙内只发送一个数据包。所有数据包格式均相同,开始为一接入码,接下来是包头,最后是负载数据。远程智能抄的便利性能够有效提高电力公司的工作效率,必将带来较大的经济效益。

1 硬件设计

电表监测系统采用了单片机中断技术,实时性好、系统效率高,能耗较低。采用的转速编码器可直接应用于现在普遍安装在千家万户的机械铝盘式电度表上,方便用户升级。家庭网关采用自行编译安装的u-boot、Linux kernel 以及文件系统, 降低了整机成本,并且因此裁减了内核中不需要的功能,提高了系统的效率。电表监测系统由单片机通过接收电表铝盘脉冲计数, 从而计算出电表的相对电度值W。单片机将W 值写入存储器,每隔一段时间或者应用户请求通过蓝牙模块发送到家庭网关。

该系统可外接继电器, 当遇到电流过载时, 可实现自动跳闸。当检测到家庭电网处于安全状态时,可自动合上电闸。电表监测系统采用蓝牙数据传输,实现了无线通信,避免了繁琐的朱凌云: 副教授布线。家庭网关中内置了无线蓝牙控制器,通过蓝牙通信协议与电表端的蓝牙设备之间进行数据交换,实时/定时获得电表数据。

家庭网关是连接家庭中彼此孤立分散的子网或网络用具、实现信息的交互和共享,并将家庭内网和外部网连接,实现内外网络互通和鉴权的设备。该家庭网关将采用现今比较流行的linux 系统,并且自己编译安装,尽量降低成本。

实现家庭内部组网方面,可采用Zigbee 无线通信标准。网关通过家庭宽带网络或者GPRS 无线方式连接Internet。网关全部采用无线通信方式,可以避免家庭布线的零乱无序,方便了网关在家庭中的布置,同时使该网关不仅能够应用于家庭,也适用于企业级用户。

 

 

电表监测控制系统结构如图1:

[page]
(1)家庭网关

家庭网关由微控制器(ARM 芯片)、GPRS 模块、蓝牙模块等模块组成。

家庭网关采用arm 开发板,型号为at91sam9263。该核心板硬件采用BGA(球栅阵列)封装ATMEL AT91SAM9263 处理器,内核为ARM926EJ-S arm,主频200MHz;板载2 片16Mx16bits SDRAM,133MHZ,共64MB;板载64M ×8 Bits NandFlash(K9F1208),可根据用户要求选配其他容量Nandflash 或工业级芯片; 板载2MBDataFlash;板载独立视频缓冲16Mx16bits SDRAM。

AT91SAM9263 核心板有220MIPS 的运算性能,有2D 图形协处理器,提升显示性能;更低的内核电压,支持低电压存储器;支持LINUX2.4、LINUX2.6、WINCE5.0 等主流嵌入式操作系统;最大支持2048*2048 分辨率TFT-LCD, 同是扩展VGA 输出;具有AC’97 编解码器接口;具有更多可用的I/O 口;内置CAN 总线控制器;支持大容量工业级NandFlash;支持SD 卡/CF 卡储存容量扩展;该核心板有能力连接多种内存设备,大容量硬盘设备,嵌入有LCD 控制器,图像传感器接口,标准外设接口,多媒体卡接口,CAN 控制器。两个EBI 使ARM9 CPU 和图形处理器可同时、并行工作:一个是系统内存接口,另一个则是人机接口。第二个接口使LCD 控制器和CPU 无需共享内存, 同时使可用的CPUMIPS 增长20%到40%,从而具有超强的显示功能。

(2)通信接口

在该电表监测系统方案中, 电表监测系统与家庭网关之间的通信我们采用蓝牙无线连接,免去了繁琐的布线问题。

该电表监测系统使用的蓝牙芯片是已经商品化的蓝牙模块, 采用南京国春有限公司的GC-232-1 型100 米蓝牙串口适配器。该蓝牙芯片,符合V1.2 协议标准,工业级标准28mm x 15mm x 2.35mm,体积尺寸紧凑,自带高效板载天线,透明串口,可与各种蓝牙适配器、蓝牙手机配对使用,也可主从一对使用。该蓝牙串口模块工作电压3.3V 到5V,引出RS232 串口,配对成功信号LED 引脚, 主机模块还引出重新搜寻新从机引脚(默认时主机和从机配对地址会记忆下来,下次有多个蓝牙同时出现是主机会直接寻找以前配对过的从机, 如果给此脚高电脉冲则放弃记忆)。出厂时默认软件包含AT 命令集。

GC-232-1 型蓝牙模块具有HCIUART 传输层, 和ARM 主机相连接只需要通过RS232 串口即可,非常方便。GC-232-1 型蓝牙串口适配器采用GC-04 蓝牙模块,加装功率扩展电路、TTL电平至RS232 电平转换电路、电源电路等,支持主、从模式自动建链透明串口传输,与PDA 通讯等多种模式,内置天线,射频性能出色,是标准的CLASS1 蓝牙串口适配器,通信距离100 米。

该蓝牙串口适配器采用标准RS232 串行接口,标准9 针插头;串口速率支持:300bps-115200bps;支持一对一配对使用;也支持单端应用,实现与PDA 内置蓝牙、笔记本内置蓝牙及USB 蓝牙适配器的串口通讯;电源可外接也可通过DB9 引脚供电;LED电源指示、链路工作状态指示;内置天线;支持串口直通,无线串口并接功能; 频段:2.40GHz—2.48GHz ,ISM Band; 蓝牙协议:BlueTooth V1.2,兼容V1.1;功率等级:Class1;操作电压:5V~9V;端口:RS232 口(300bps-115200bps)。

由于蓝牙模块和ARM 都采用了+3.3V 电源供电,故其接口间不存在电平差异,不需要电平转换。蓝牙模块UART 接口的发送端UART TX 接ARM9263 的UART0 接收端RXD0,而蓝牙模块的UART 接口的接收端UART RX 接ARM9263 的UART0 的发送端TXD0。

2 软件设计

在at91sam9263ek 开发板上编译安装linux 操作系统作为软件平台。linux 内核已经支持at91sam9263 核心板,定义文件在内核目录树中的arch/ arm/ mach-at91/ board-sam9263ek.c 和arch/ arm/ mach -at91/ at91sam9263_devices.c 以及arch/ arm/mach-at91/ at91sam9263.c 里面。

家庭网关按照SSL 数据传输协议, 经宽带网络传输电表数据到电力公司。SSL 协议位于TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。SSL 协议可分为两层:SSL 记录协议(SSL Record Protocol),它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持;SSL握手协议(SSL Handshake Protocol):它建立在SSL 记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。电表监测系统的数据应该采用基于设备地址的加密方式,以设备号或者设备地址作为Key,与家庭网关之间进行数据安全传输。

(1)电表远程监控系统与家庭网关的蓝牙连接:

家庭网关端作为电表监测系统的服务器, 需要同时处理收发数据,因而该程序需要进行多进程程序设计。多进程编程的好处是显而易见的,不仅能够解决串口中断的处理,还能够实现更好的执行效率,提高系统的实时性。

同目前的许多蓝牙连接服务类似, 设置口令是为了无线网络安全考虑。在实际编程实现时可以给设备分配地址,主从设备之间用设备地址互相确认身份。电表监测系统与家庭网关的软件流程如图2。

 

 

[page]
(2)电表监测系统客户端程序

单片机上电后初始化串口参数、蓝牙模块,进行中断处理,准备接收或者发送数据,等待命令以及执行命令。为了最大化单片机的使用效率,该方案采用中断处理的方式来读取电表数据、蓝牙模块数据,以及响应蓝牙模块的命令请求。

在该程序中,需要以下函数模块:单片机初始化C51_INIT();蓝牙模块初始化BLUETOOTH_INIT();中断初始化IRT_INIT();读取电表数据READ_METER();发送数据函数SEND_DATA(char*s); 对需要发送的数据进行加密, 以保证数据的安全性,ENCRY_DATA(char *s);接收指令函数RECV_CMD();指令分析并执行函数EXE_CMD()。

在主函数main()里面,我们要中断处理单片机的中断:电表的脉冲,进行脉冲计数;获得蓝牙端的信息/命令;处理信息/命令;发送数据。

设定一个全局变量flag,作为我们处理的标志。每一个中断里面改写该标志值。在主函数里面循环处理不同标志值的分支情况。

单片机通过中断对周边的设备进行操作, 最大化电表监测系统的效率。在断电以及家庭网关请求跳闸等紧急情况下,应能及时处理中断请求,而不是等待用户请求数据繁琐的过程。

单片机通过中断对周边的设备进行操作, 最大化电表监测系统的效率。在断电以及家庭网关请求跳闸等紧急情况下,应能及时处理中断请求,而不是等待用户请求数据繁琐的过程。电表监测系统数据采集流程如图3。

 

 

3 调试

(1)编译安装嵌入式linux 系统编译安装嵌入式linux 系统, 使用的linux 发行版为ubuntu8.10,编译器为自行编译安装的arm-linux-gcc,版本为4.2.1。编译Bootstrap:如果要在at91sam9263ek 开发板上启动linux,需要在dataflash 上面烧写Bootstrap 程序。Bootstrap 可以说是u-boot 的引导程序。

编译u-boot 引导程序: 编译u-boot: 切换当前工作目录到u-boot 源代码目录树下, 然后执行:make at91sam9263ek_config&& make烧写u-boot:最后将源文件主目录下生成的u-boot.bin 烧录到dataflash 的0X8400 地址。这个地址在bootstrap 的相应的头文件board/ at91sam9263ek/ dataflash/ at91sam9263ek.h 中定义。修改内核文件: 内核中的代码是一种平台的默认配置,与at91sam9263 开发板的一些参数不太一样,所以需要把相关的参数修改一致。

配置内核: 使用如下命令进行图形菜单配置:make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig,选择退出并保存配置信息。这样就完成了内核的配置,在编译内核之前将u-boot下的tools/mkimage 复制到/bin 目录下, 否则会报错找不到mkimage 命令。然后执行make ARCH=arm CROSS_COMPILE=arm-linux- uImage 编译, 等编译完成后, 在内核目录树下arch/arm/boot 里将会生成uImage 内核镜像文件。

烧录: 将生成的uImage 文件烧写到nandflash 的0x200000。

烧写linux 文件系统:使用nfs 加载文件系统,首先将开发板通过nfs 的方式加载host 端的nfs 文件系统(对host 端操作),再准备文件系统(对host 端操作),修改ARM 开发板的启动参数(通过kermit 对ARM 开发板进行操作),进入系统后(nfs 方式),查看nandflash 的分区情况(通过kermit 对ARM 开发板进行操作),烧写文件系统。

设置u-boot 参数自动加载文件系统:保存设置,然后重启开发板,即可直接登陆到linux 文件系统了。

(2)电表监测系统的硬件连接和程序设计

实验器材有AT89C51 单片机、串口蓝牙模块等。主机系统Windows xp,开发环境使用的是Keil Uvision2。

打开Uvision2 软件,选择Project,选择新建项目,建立一个新的项目,保存为meter_read.uv2;在选择CPU 类型时,选择ATMEL公司的AT89C51;建一个文件,保存为bluetooth.c,并将该文件添加到meter_read.uv2 项目中;选择保存位置,并键入需要保存的文件名。

将刚才新建的文件bluetooth.c 添加到该项目中, 就可以在bluetooth.c 文件中编写我们的电表监测系统的程序了。

编写延迟函数、读电表的脉冲、重置电表、读蓝牙模块数据、处理家庭网关的命令程序,保证编译通过没有告警。通过串口工具烧写到单片机内部存储器中,上电后运行。

在这里还不能直接看到结果, 需要完成家庭网关端服务器后,可以查看电表监测系统发送到家庭网关的数据的变化。

(3)家庭网关服务器程序实现

实验器材有at91sam9263 核心开发板一块、串口蓝牙模块,以及相关的连接线、USB 转串口线等。系统采用Ubuntu 8.10 版本,linux 内核版本号为2.6.27-7; 编译器采用自行编译的armlinux-gcc,gcc 源码版本为4.2.1。编写用户输入程序、家庭网关程序:使用多线程编程,一个线程用来读取蓝牙模块数据,另一个模块用来读取用户的输入。使用进程间通信方式,获取用户向电表监测系统发送的数据。进程间通信需要使用到内存共享区域, 这里就要包含头文件#include,。

连接家庭网关与蓝牙模块:将家庭网关通过USB-RS232 连接线连接到电脑上,并将蓝牙模块连接上家庭网关;在本机使用arm-linux-gcc 将编写好的程序编译成可执行文件; 使用kermit将编译好的可执行文件传输到家庭网关中。

4 结论

实际应用结果表明采集电表监测系统能通过蓝牙向家庭网关服务器发送数据; 家庭网关服务器能通过蓝牙向电表监测系统发送指令,控制电表监测系统的运行;进程间通信获得成功,家庭网关两个进程之间实现共享内存区域数据, 从而实现了分时通过串口蓝牙模块接收数据、发送命令等功能。

本文创新点:该系统的家庭网关采用嵌入式芯片,利用蓝牙技术的无线传输,先将计费电表的信号传输到智能家庭网关中,再通过Internet 网络,可直接传输到物业公司或电业管理的调度部门的计算机中。该家庭网关的软件系统采用linux 系统,图形界面可以自行编译安装。

参考文献

[1]荣先奎,赵武等.基于J2EE 平台的关口电表管理系统的开发[J].微计算机信息.2009,12-3:30-32

[2]钱志鸿,蓝牙技术原理、开发与应用,北京航天航空大学出版社,2006 年03 月

[3]杨哲,无线网络安全攻防实战,电子工业出版社,2008 年11 月

[4]李佳,ARM 系列处理器应用技术完全手册,人民邮电出版社,2006 年12 月

[5]韦东山,嵌入式Linux 应用开发完全手册,人民邮电出版社,2008 年08 月

本文由大比特资讯收集整理(www.big-bit.com)

声明:转载此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请与我们联系,我们将及时更正、删除,谢谢。
Big-Bit 商务网

请使用微信扫码登陆

x
凌鸥学园天地 广告