魏旭来,王红蕾
(贵州大学 电气工程学院,贵阳550025)
随着全球能源问题与环境问题凸显,电能作为清洁高效的二次能源在经济社会的发展中扮演着越来越重要的角色。我国对电能的需求逐年上升,但是在现有的技术条件中一直存在着电能浪费严重、利用率不高的现象[1]。因此,如何改变人们粗犷型的用电方式、提高电能的利用率,将会是电网发展主流方向。以节约的方式缓解能源与环境问题也将会是我国的长期发展政策[4]。
本文设计的智能小区用电通信网络涉及智能用电的相关领域,用电信息的采集是其中的一个分支[2]。通过设计由CAN网络和以太网互连而成的智能小区通信网络,实现小区用户和电力管理部门的信息畅通和实时交互,为智能用电的进一步研究打下基础。本论文的主要研究内容包括以下几个方面:第一,研究智能小区底层现场总线和上层以太网的互联;第二,设计一款高性能的小区集中器,硬件上以32位ARM处理器为核心,软件上以嵌入式操作系统为核心;第三,研究CAN总线在用电信息网络上的应用,以解决国内普遍采用的相对简易却并不适合大规模组网的RS-485总线存在的问题[3]。
系统总体结构框架如图1所示。
图1 系统总体架构
系统从总体上分为三个部分:第一部分为以智能电表为核心的用户节点,负责用户用电情况的计量、存储、按时上传以及其他一些功能;第二部分为小区集中器,负责收集小区各个用户节点上传的用户用电信息,并对采集的信息进行有序的存储管理;第三部分为用电管理部门的上位机服务器系统,通过以太网与各个小区集中器相连,并能够通过客户端访问各小区集中器整理好的用户节点的用电信息,实现用电管理部门对小区用户的信息化管理。其中,底层的通信网络采用CAN总线搭建,上层的通信网络采用以太网搭建,最终实现CAN总线与以太网的异构通信网络的信息畅通。
系统的设备节点主要由小区集中器和用户节点构成,小区集中器通过CAN总线采集用户节点的用电信息,并将用电信息有序地存储管理。管理部门上位机可以通过以太网访问查看,小区用户也可以通过集中器的人机交互界面访问查看集中器中的用电信息。用户节点用于模拟智能小区用户家中的智能电表,它主要负责记录用户的用电信息并将用电信息通过CAN总线上传。实验中用户节点的电能测量模块用电位器代替,其计量的用电信息用电位器的电压值来模拟。电位器的电压值和实际用电信息本质上都属于模拟量,在实验中可以等价处理,不影响研究结果。小区集中器和用户节点的硬件总体结构如图2所示。
图2 集中器和用户节点的总体硬件架构
小区集中器处理核心选型S3C2440A作为主控芯片;存储模块主要分为外部存储器和内部存储器,外部存储器芯片选用K9F1208作为Nand Flash存储芯片,内部存储器选用H57V2562GTR作为同步动态随机存储器;以太网接口模块选用CS8900A芯片作为以太网控制器;CAN总线接口模块由CAN总线控制器和CAN总线收发器构成,CAN总线控制器选用MCP2510,CAN总线收发器选用TJA1050。用户节点的硬件核心选用STM32F10X处理器;人机交互模块的硬件核心选用ILI9325DTFT液晶显示驱动芯片;CAN总线收发器选用SN65HVD230,其供电电压为3.3V,可以直接与集成在主控芯片上的CAN总线控制器相连。
小区集中器的软件架构以Linux操作系统为软件核心,在内核层上设计Linux的CAN总线驱动程序、移植以太网控制芯片驱动用以向应用程序提供操作硬件设备的接口;在应用层上移植嵌入式数据库、设计CAN总线数据采集管理程序用以有序地采集和管理用户的用电信息;移植Boa服务器、设计CGI网关程序提供以太网的 Web服务,使上位机可以通过Web浏览器访问小区集中器。其主要的软件架构如图3所示。
图3 小区集中器主要软件架构
小区集中器正常工作时,运行在操作系统中的应用程序会监听CAN总线上的数据,一旦总线上有用户节点发送的CAN总线数据帧,该程序会将该数据帧采集到集中器中并保存在系统中的临时文件里。数据库管理程序会和采集程序协同起来,在一定的时间间隔内将临时文件中用户最新信息放入SQLite3数据库中。时间间隔可调整,其主要工作流程如图4所示。
图4 小区集中器工作流程
程序首先初始化一段数据缓冲区用来存储从CAN总线设备上读取的数据;然后,打开CAN总线设备文件得到其描述符并调用read函数读取该设备。当总线上没有子节点发送的数据帧时,程序阻塞并进入等待队列。反之,将得到的数据存入缓冲区并进行处理,得到CAN总线数据帧的ID号和用电信息;之后,根据ID号对应的发送用户,将最新的数据信息更新到相应的存储文本(如用户1对应useradvice1.txt文本文件);最后通过系统时间判断时间间隔,如果大于或等于预定时间间隔则将最新信息插入数据库相应用户的表单中。
用户节点在实验过程中,电位器数据采集模块能够产生一个用于模拟用户用电信息的模拟量,经过A/D转换模块采集到处理器SRAM中;人机交互模块将采集到SRAM中的电压值在液晶屏上显示出来;按键控制模块对实验过程中用户节点用电信息发送启动和发送关断进行控制;在发送启动时CAN总线接口模块将存储在SRAM中的最新电压值通过CAN总线接口向CAN总线上发送,对应的用户会包裹上相应的帧ID号。其软件设计包含用电信息A/D转换程序、液晶显示程序、按键控制程序和CAN总线数据收发程序等。其主要工作流程如图5所示。
图5 用户节点主要工作流程
实验中,用户节点的数据发送频率为5ms,两个用户节点同时工作,通过其液晶显示模块观察到他们分别发送的不同的电压值。
图6所示为通过串口观察到小区集中器多两个用户节点的信息采集情况,小区集中器会根据数据的ID号对其进行分类存储。整个系统工作情况良好。
图6 CAN总线数据采集过程
上位机通过局域网和小区集中器相连接,在上位机Web浏览器地址栏中输入小区集中器的IP地址,可以登陆小区集中器对其进行访问。图7所示为上位机对底层用户节点用电信息进行监视。
今后进一步的工作中,子节点可以增加网络流量监测环节,根据网络状况计算出最佳的发送速率,有效预防网络上可能存在的数据拥堵状况;小区集中器可以增加实时电价计量环节,根据从管理部门下载的实时电价方案和用户用电信息的时间戳,计算出用户按照该方案的日用电消费情况,初步实现引导用户合理用电;在小区集中器的Boa服务器和CGI脚本的设计中,可以增加权限管理环节,对访问者的IP地址进行权限审查并匹配登陆的用户名和密码,初步解决系统的安全防范问题。
图7 上位机采集界面
[1]江泽民.对中国能源问题的思考[J].上海交通大学学报,2008(3):345-359.
[2]刘振亚.智能电网知识读本[M].北京:中国电力出版社,2010:1-4.
[3]魏立明.智能建筑系统集成与控制技术[M].北京:化学工业出版社,2011.
[4]李同智.灵活互动智能用电的技术内涵及发展方向[J].电力系统自动化,2012,36(2):12-16.
[5]韩成浩,高晓红.CAN总线技术及其应用[J].制造业自动化,2010(2):146-149.
[6]孙天泽,袁文菊.嵌入式设计及Linux驱动开发指南[M].北京:电子工业出版社,2009.
[7]张移山.CGI程序设计指南[M].北京:水利水电出版社,1998.