方 案 应 用 领 域 |
动态可配置远程智能监控平台
1.方案背景介绍
国家“十二五”规划明确指出“物联网已成为当前世界新一轮经济和科技发展的战略制高点之一,发展物联网对于促进经济发展和社会进步具有重要的现实意义”。为加快物联网产业化进程,各地政府全面推进“物联网”工程,加大对物联网产品的支持和推广力度。然而,我国物联网发展与全球相比处于起步阶段,应用水平较低,且规模化应用少,市场发展潜力巨大。为推动物联网产业进程,解决物联网应用产品开发难度大、扩展性差、、复杂度高和维护成本巨大等难题,使一般技术人员可以通过硬件组合、参数配置与二次编程等方式,实现数据采集、反馈控制、简明组网等功能,本公司研发了“动态可配置远程智能监控平台”。
2.方案设计目标介绍
本公司研发的“动态可配置远程智能监控平台”在经过简单地参数配置、二次编程后便可应用于智能工业、智能家居和智能农业等领域,如下图所示。本平台实现了仅仅用一台手机或一部电脑便可以对处于远程终端层的节点进行精确监控,使得城市居民生活和工作进入智能化、节能化、信息化和自动化管理阶段。
3.方案设计原理介绍
“动态可配置远程智能监控平台”融合了传感器技术、物联网技术、3G通信技术、嵌入式系统软硬件设计技术、人工智能专家系统技术和嵌入式实时操作系统技术等,按照分层软硬件设计思想采用“感知层—网络层—服务器层”三层专用物联网工作体系结构,从而达到对远程终端节点的的完全智能化节能监控。通过对现有系统的分析,从硬件模块通用性的角度出发,设计了传感节点硬件和网关硬件,实现通过配置增减硬件模块将系统应用于不同业务的目的;针对现有监控系统扩展性差及不可复用等缺点,参照组态思想,按照构件化开发方法,深刻剖析现有系统的共性,实现了软件构件的可复用及软件功能的可配置。
感知层主要由ZIGBEE传感节点组成,它的主要功能有:接收并执行服务器发送的不同方式控制命令;采集智能终端工作环境参数,并将这些信息上传,供服务器监控软件参考决策用;通过自主设计的ZIGBEE无线传感网协议自动网络、多跳路由,并能够根据不断改变的网络现状进行动态拓扑,对同一网段内命令进行存储转发,维持整个网络的有效通信。
网络层主要由网关组成,它是感知层和服务器层间连接的桥梁,使用3G无线网络CDMA2000、GPRS、嵌入式以太网和ZIGBEE无线通信相结合方式作为通信载体,并采用MQX嵌入式实时操作系统软件设计方案,一方面可以将服务器层的监控命令发送给终端层,另一方面也可以将感知层采集的状态信息快速传输给服务器层。
服务器层部署了基于B/S通信模式的智能监控管理软件和基于多线程异步Socket机制的侦听通信软件。智能监控管理软件中采用人工智能神经网络学习算法,可以对家庭生活、农业灌溉和工业控制实现完全智能化节能管理方案。此外,该软件具有丰富友好的可视化图形用户界面,为城市居民生活和工作提供了自动化、智能化和节能化管理模式。
4、方案硬件介绍
本平台的硬件设计主要包含两部分:传感节点硬件设计和网关硬件设计。
在对传感节点和网关进行硬件选型、硬件设计,为提高硬件电路和底层驱动程序的可移植性,减少硬件设计工作中的重复劳动,根据基于硬件构件的嵌入式系统开发方法、硬件构件的原理图设计的基本原则来设计各硬件模块。
4.1传感节点硬件设计
在对传感节点进行硬件设计时,本系统综合考虑功能需求、芯片功能、芯片性价比、对芯片的熟悉程度等因素,选用飞思卡尔公司的基于IEEE 802.15.4标准的MC13213作为主控芯片。传感节点的硬件设计主要包括:MC13213主控器最小系统、天线系统、采集系统、控制系统、电源系统的设计。MC13213最小系统原理图如图所示。
为更具灵活性,硬件设计采用分层结构,将主控器MC13213的最小系统、天线系统设计为通信模块,预留出全部的外围接口。将采集系统、控制系统、电源系统等外围模块设计为扩展板模块,通过接插件将扩展板模块和通信模块连接起来。此种设计方案可以实现应用的可扩展性、多样性、灵活性及通用性;分层设计使得各层功能分明、易于实现、测试方便。
4.2网关硬件设计
网关硬件设计包括主控芯片硬件设计和3G模块硬件设计两部分。
4.2.1 主控芯片硬件设计
主控芯片作为嵌入式系统的“大脑”,在设计硬件时,首先要根据系统的需求选择合适的微控制器(Micro Control Unit,MCU),选型是否合理直接影响到产品的开发周期及系统的可靠性;在设计芯片最小系统时,遵循嵌入式硬件构件思想将最小系统设计成核心构件,尽量多地引出芯片的功能性引脚,以方便最小系统测试及产品的升级。
网关的主控芯片采用飞思卡尔公司于2010年下半年推出的K60系列微控制器,其内核采用ARM-Contex M4架构,具有IEEE 1588以太网,全速和高速USB 2.0 On-The-Go带设备充电探测,硬件加密和防窜改探测能力,具有丰富的模拟、通信、定时和控制外设,从100 LQFP封装256 KB闪存开始可扩展到256 MAPBGA 1MB闪存。大闪存的K60系列微控制器还提供可选的单精度浮点单元、NAND闪存控制器和DRAM控制器。K60最小系统原理图如图所示。
图 6 K60最小系统原理图
4.2.2 3G模块硬件设计
网关的3G通信模块采用中兴公司推出的CDMA2000 1x EVDO RevA模块—MC8630,该模块基于高通QSC6010单芯片平台,发射频率为824~849Mhz,接收频率为869~894MHz;下行(基站到模块)通信速率可以达到3.1Mbps,上行(模块到基站)通信速度可达1.8Mbps,可为用户提供经济型高速互联网接入和无线数据等业务。
MC8630内置了TCP/IP协议及USB2.0从机,支持标准AT指令集及中兴扩展AT指令集。通过USB接口发送AT命令,可以实现丰富的语音及数据等业务功能,采用36引脚邮票孔封装形式。主要接口有:数据通信、SD卡、Audio音频、UIM卡及天线等接口。如图所示为USIM卡接口原理图。
图 7 USIM原理图
4.3输入输出接口硬件设计
本平台的监控任务是由其硬件输入输出接口完成的,其中,输入接口电路,作为微控制器感知外界信息的窗口,实现数据采集的功能,可分为开关量输入及模拟量输入两个部分;输出接口实现对系统外部设备的控制,输出电路从输出的形式上可分为:开关量输出电路及模拟量输出电路两部分。
4.3.1 开关量输入
微控制器可以将一些引脚配置成具有采集开关量输入的功能。被配置为输入功能的引脚就能对外部环境的高低电平进行采集,但是由于微控制器的工作电压为3.3V,若要采集的电压比微控制器的工作电压高,则会烧毁芯片,一般的方法是将外部电平经过转换电路转换到芯片可以检测范围之内,或者使用传感器进行转换。
检测开关量最主要的问题是解决电平匹配。在工程应用中,实现开关量电平匹配的方法主要由三种:使用三极管、使用光电隔离、使用二极管单向导通特性。利用三极管的饱和特性来实现,可以将待采集的电平经过限流电阻接到三极管的基极,该方法的缺点是基极的限流电阻会因为输入电平范围宽而难以确定;使用光电隔离的方法,将待检测的开关量作为光电隔离器件的前端,但是这种方式需要的驱动能力比较大,一般光电隔离的前端需要10mA的电流驱动,这将会影响原电路的信号电压值;对于低电平的直流电开关量的检测,本文选择一种通过二极管单向导通特性完成电平匹配的电路,其原理图如下图所示。
图 8 开关量输入电平匹配原理图
4.3.2 模拟量输入
模拟量输入相比开关量数据采集可以更真实地反应现实世界物理量的变化,由于微控制器只能对数字信号进行处理,因此首先要将外界的自然信号转变为数字信号,这就需要用到AD转换器件。
MC13213内部集成了8通道最高12位精度的AD转换模块,由于微控制器的工作电平为3.3V,同样要解决电平匹配的问题。下面以测量设备电流变化的采样电路对AD采集电路进行详细说明,原理图如下图所示。
图 9 模拟量输入
4.3.3 开关量输出电路
对于只有两种工作状态的执行机构,可以使用开关量输出接口来控制,例如控制马达的启动和停止,灯的亮和灭等。不同执行机构所需的工作电压和电流千差万别,必须根据具体的对象采用合适的电气接口。因此在设计开关量输出接口电路时,首先要考虑的是执行构件的驱动电路,而驱动电路的设计要根据所需驱动电流及电压选择合适的驱动器件。下面以控制一盏路灯的开关详细说明常用开关量输出电路的结构及工作原理,原理图如下图所示。
图 10 开关量输出原理图
4.3.4模拟量输出接口
模拟量输出是一种将二进制形式的离散信号转换成以标准量为基准的模拟量转换器。模拟量可以为其他的器件产生类似于时钟信号的电平,也可以用于控制输出到设备的平均电平或电流。通常很少有集成DA转换器的微控制器,而PWM(Pulse Width Modulator,脉宽调制器)可以输出类似于时钟信号的电平,对于要求不高的DA转换需求,可以使用PWM来替代DA转换器,本平台在设计时就是采用这种方式实现DA转换的。通过设置PWM输出脉冲电平的周期及占空比,便可实现对外设连续变化的控制。由于MC13213的PWM脉冲在0~3.3V之间变化,很明显这不能满足所有的需求,需要在PWM输出之后添加驱动电路来增加其驱动能力。下面以MC13213通过PWM控制可控硅实现对灯泡亮暗变化的实例来详细讲述其工作原理,原理图如下图所示。
图 11 模拟量输出原理图
5、方案软件介绍
本平台软件设计主要包括三部分:感知节点软件设计、网关软件设计和服务器层软件设计。
5.1 感知节点软件设计 5.1.1 总体结构设计
传感节点的软件设计包括以下几个模块:硬件各个模块驱动程序的设计、主程序的设计和中断处理函数的设计。根据面向硬件对象和程序模块构件化封装的设计思想,对软件的工程文件进行组织,将与硬件相关的驱动程序和上层功能性程序分割开来。传感节点软件工程文件组织结构如表1所示。模块驱动是相互独立的,对于每个功能模块,都有相应的“.h”头文件和“.c”函数实现文件,每个“*.c”文件对应一个同名的“*.h”文件。“*.h”文件中放置的是驱动程序使用的宏定义和函数声明等,“*.c”文件中放置的是函数实现。这种构件化的设计思想的优点是当其他系统需要使用这些模块时,若引脚或其他配置信息不同,只需要修改“*.h”文件即可,不必修改“*.c”函数实现文件,就可以实现移植,这样可以极大地提高软件的通用性和可复用性。
表1 感知节点软件工程组织 |
类型 |
源程序名 |
功能描述 |
主控芯片MC13213相关程序文件 |
MC13213.h |
定义MC13213 映像寄存器名 |
Strat08.c |
S08系列芯片的启动文件 |
vertors.s |
中断向量表文件 |
McuInit.c |
初始化芯片 |
硬件对象文件 |
ADC.h, ADC.c |
A/D转换模块头文件与实现文件 |
GPIO.h, GPIO.c |
IO模块头文件与实现文件 |
Light.h, Light.c |
开关量输出模块(控灯)头文件与实现文件 |
PWM.h, PWM.c |
PWM输出模块头文件与实现文件 |
Timer.h, Timer.c |
定时器模块头文件与实现文件 |
SCI.h, SCI.c |
串口通信模块头文件与实现文件 |
Flash.h, Flash.c |
Flash擦写模块头文件与实现文件 |
SPI.h, SPI.c |
SPI模块头文件与实现文件 |
RF.h, RF.c |
RF模块头文件与实现文件 |
Queue.h, Queue.c |
队列模块头文件与实现文件 |
CmdDeal.h, CmdDeal.c |
协议命令解析模块头文件与实现文件 |
isr.h, isr.c |
中断处理函数头文件与实现文件 |
通用程序文件 |
type.h |
类型定义头文件 |
GeneralFun.h GeneralFun.c |
通用函数头文件与实现文件,包括延时函数、所用到的通用C语言库函数 |
主程序文件 |
includes.h |
程序总头文件 |
main.c |
程序入口,完成各模块初始化工作后,进入主循环 |
传感节点软件体系结构如图12所示,使用到的MC13213的功能模块包括GPIO(通用输入输出)、Light(指示灯)、PWM(脉宽调制)、Timer(定时器)、ADC(模数转换)、SPI(串行外设接口)和RF(无线射频),其他使用到的模块包括CMDDeal/Tag/Queue模块和Global模块。
整个程序中使用到的数据结构和数据处理模块封装在CMDDeal/Tag/Queue模块中:CMDDeal模块封装了网络数据帧转发和处理等操作;Tag模块封装了和网络帧相关的数据结构;Queue模块使用Tag为队列的元素,封装了队列的各种操作,包括入队、出队、清空队列、遍历队列等操作。RF模块功能的实现调用SPI模块函数。Light模块通过调用GPIO和Timer来实现对指示灯和控制系统中的继电器的控制。Flash模块用来保存程序掉电情况下不丢失的参数。ADC模块对路灯电路中电流电压进行采样,用以判断路灯的工作状态。PWM用于节能方式中的电子整流器无级调整功率,可以实现30%到90%的无极功率调整。Global模块中记录的是Main和中断流程使用的全局变量。
图 12 感知节点软件结构体系图
5.1.2 无线传感网络协议设计
为了实现对节点感知参数的远程监控,需要制定出合理有效的通信协议,以最低的通信成本达到稳定可靠的监控,保证系统稳定运行。本系统采用自主研发的无线传感器网协议,主要涉及网络节点编址机制、帧格式的定义、命令转发机制和状态返回机制。
1.网络节点编址机制
感知节点是无线传感器网络中的最小控制单元,可以接收并执行相应的控制命令,也可返回自身状态。
无线传感器网络协议采用类似于以太网中IP4地址的编址机制,使用32位(4字节)确定一个感知节点的地址。其中,高两个字节为网段地址,范围为0-65535。低两个字节用于网内地址,可区分为带类型和不带类型两种情况。对于带类型的情况来说,高5位表示类型,低11位表示类型下的节点号;对于不带类型的情况,高1位默认为0,低15位表示节点号。
2.帧格式
为了网络数据帧的更容易控制和编码解码的方便,将数据帧定义为定长,这样在功能完全实现的基础上,程序和协议的设计都会变的简单一些。自主研发的协议规定一个数据帧的长度固定为11个字节,数据帧包括两种类型的帧:命令帧和状态帧。
命令帧主要是将命令字段定义在帧中,传输到相对应的网络节点,相关的网络节点执行命令。命令包括全网络的命令和单个网络节点的命令,全网络的命令表示该命令网络的所有或多个节点都要执行,单个网络节点命令表示命令只是针对单个网络节点的。为确保控制的有效性,需要加上状态帧来及时取得路灯的状态进行查看。状态帧中包含单个网络节点的状态参数。命令帧的格式如表2所示。
表2 命令帧格式 |
帧头 |
帧号 |
网络节点地址 |
命令字节 |
控制字节 |
帧尾 |
1Byte |
1Byte |
4Byte |
1Byte |
3Byte |
1Byte |
(1)帧号:在同一网络中,数据的转发规则是:收到一个新的帧后转发一次,如果立刻又收到这个帧则不进行转发。自主研发的网络采用的是帧号机制。高端提供的数据帧中包含一个帧号字段,唯一的标志了一个帧,并给帧号提供了位示图的标志置位机制。一个位代表一个帧号,置位该位即表示已转发过。
(2)网络节点地址:表2所示的4个字节。
(3)命令字节:命令字节用于表示执行的命令类型,这是自定义的。
(4)控制字节:路灯控制时所需的其他的参数,如节能控制方式等。
3.命令转发机制
无线传感器网络协议中,网络节点只对收到的命令帧进行转发,对帧的内容不做修改。每个节点通过位示图结构来记录哪些帧已经被转发。节点接收到帧数据后根据帧号将该缓冲区的相应位置位,同时转发。如果节点接收到帧后判断该帧已经被该节点转发,即相应位已经被置1,则丢弃该帧,从而保证了以最快的速度控制一条线路,并且有效防止了某个节点故障影响整条线路的工作。
4.状态返回机制
目前协议实现针对单个节点状态返回机制,发送指定节点的取状态命令帧后,指定节点接收到命令立即返回路灯工作状态。
5.2 网关软件设计
网关软件设计主要包括两个部分的MCU方软件设计:MC13213主控节点的软件设计和数据收发处理模块的软件设计。
(1)MC13213路由主控节点的软件设计
在设计时,我们采用面向硬件对象和程序模块化封装的设计思想,对软件的工程文件进行组织,将与硬件相关的驱动程序和上层功能性程序分割开来。对各功能模块中文件的划分同样充分遵循了面向硬件对象和模块化划分的思想,极大地提高软件的通用性和可复用性。所以在进行MC13213路由主控节点的软件设计时,可以参考感知节点的驱动程序,对上层功能性程序做稍微修改即可。路由主控节点的文件组织结构与感知节点软件设计工程组织基本相同,这里不再赘述。
(2)数据收发处理模块的软件设计
数据收发处理模块以K60为主控芯片,文件组织结构如表3所示。根据硬件构件的嵌入式底层软件构件的编程方法,将各个模块分为源文件和头文件两个部分,详细分析模块的属性和对外接口,并提供了合理的实现方法。
表3 数据收发处理模块的文件组织结构 |
类型 |
源程序名 |
功能描述 |
主控芯片相关程序文件 |
MCF52223.h |
MCF52233映像寄存器名定义文件 |
Linker.lcf |
Linker文件,存储器映射文件 |
vertors.s |
中断向量表文件 |
sysinit.c |
芯片初始化文件 |
硬件对象文件 |
GPIO.h, GPIO.c |
通用输入输出模块头文件与实现文件 |
Light.h, Light.c |
运行指示灯头文件与实现文件 |
Relay.h, Relay.c |
继电器模块头文件与实现文件 |
Uart.h, Uart.c |
串口通信模块头文件与实现文件 |
Flash.h, Flash.c |
Flash擦写模块头文件与实现文件 |
Switch.h, Switch.c |
开关量头文件与实现文件 |
PIT.h, PIT.c |
PIT模块头文件与实现文件 |
AD.h,AD.c |
数据帧的相关处理的头文件和实现文件 |
Isr.h Isr.c |
中断向量文件和中断向量处理函数文件 |
USB.h USB.c |
USB模块头文件和实现文件 |
GPRS.h, GPRS.c |
2.5G GPRS模块GTM900B的头文件与实现文件 |
WCDMA.h, WCDMA.c |
3G WCDMA模块EM770W模块头文件与实现文件 |
通用程序文件 |
type.h |
类型定义头文件 |
GeneralFun.h GeneralFun.c |
通用函数头文件与实现文件,包括延时函数、所用到的通用C库函数 |
主程序文件 |
includes.h |
main.c 的头文件 |
main.c |
程序入口,完成各种初始化工作后,进入主循环 |
5.3 服务器层软件设计 5.3.1 通信软件设计
通信软件负责获取数据库中还未处理的控制命令,通过和CMDA2000或GPRS的通信发送给网关软件,或者将网关软件上传的状态信息放入数据库。该软件使用多线程的异步Socket机制,使得多个路端通信装置可以和服务器的同一个端口通信。通信软件只需要维护一张哈希表,记录路端通信装置(TCP客户端)和它对应的Socket句柄,减少了开发的复杂度,同时也提高了系统通信稳定性。我们将通信软件设计为Service形式,作为一个服务运行在监控中心的服务器上,一直在侦听TCP相关端口,保持和路端通信装置通信。通信软件使用C#语言在Visual Stdio2010上开发,最主要的部分就是接口表的定义与Socket的编程。
5.3.2 监控管理软件设计
监控管理软件主要负责管理数据库和将控制指令放入数据库,通过数据库和通信软件进行数据传输。由于平台具有较复杂的图形图表显示、数据库处理和实时交互等,所以软件体系采用Microsoft Visual Studio 2010+ Internet 信息服务(IIS)+ SQL Server 2008模式。监控管理软件主要分为平台配置、实时控制、参数查询、故障处理、用户管理、平台维护等部分。
6产品外形图片
本平台包含的的实物产品有ZIGBEE无线数传模块节点、3G/GPRS-ZIGBEE网关组成。下面给出产品实物外形图。
6.1 无线数传模块
6.2 3G/GPRS-ZIGBEE网关
7 方案应用案例 7.1 基于物联网技术智能路灯无线控制系统
目前城市照明控制中,极少能够实现利用一台计算机细化控制到单灯及自动检测单灯故障。针对这种状况,在经过简单配置相应参数后,快速开发了新型智能城市照明无线控制系统,实现了利用一台计算机控制到全市单灯的梦想。为节能、路灯自检、自动管理、延长路灯使用年限提供了技术基础。从根本上解决了传统城市照明的路检、单灯控制、节能、信息跟踪等问题,是现代城市照明的根本解决方案,实现路灯管理、节能管理自动化。节能与控制模式有:单灯、1/2、1/3,时间、光线、地球经纬度等等。该系统可以用于常规路灯,也可以扩展用于新型LED路灯。计算机和手机均可完成到单灯的控制与检测。所构成的网络可以为智能交通、环境检测、局部气象服务等等提供基础“信息高速公路”。
该科技创新成果多次获得国家级及省级奖项,并得到国内各界媒体广泛关注。本产品已在全国十多个省市进行小范围推广使用,系统运行稳定,用户评价良好,技术日趋成熟。
7.2农业物联网监控系统
农业物联网就是将物联网技术完美了融合进了农业生产过程中。随着智能农业、精准农业的发展,智能感知芯片、移动嵌入式系统等物联网技术在现代农业中的应用逐步拓宽。在监视农作物灌溉情况、土壤空气变更、畜禽的环境状况以及大面积的地表检测,收集温度、湿度、风力、大气、降雨量,有关土地的湿度、氮浓缩量和土壤pH值等方面,物联网技术正在发挥出越来越大的作用,从而实现科学监测,科学种植,帮助农民抗灾、减灾,提高农业综合效益,促进了现代农业的转型升级。
通过对农业应用领域的需求建模和对本平台进行参数配置,农业物联网监控系统的关键技术设备与软件框架主要有:
(1)无线传感器节点(Zigbee节点):实现数据采集、收发与执行;
(2)3G/GPRS-ZIGBEE网关设备:将感知层采集到的相应农业环境参数通过3G/GPRS无线网络远程传给服务器端的监控软件;远程接收服务器端监控软件的命令输出,并将命令转发给处于感知层的无线传感器节点。
(4)Web软件框架:使服务器端的监控软件提供Web软件二次开发基础。
7.3 智能远程水质监测系统
水环境监测验证系统主要包括高端和低端两个部分,高端为服务器端基于B/S模式的系统站点,对低端进行远程管理。低端包括基准传感器网络和辅助测试网络两个子系统,基准传感器网络部署在野外的河流上,负责采集监测区域的三种水质参数(PH值、溶氧度、亚硝酸根离子浓度)。辅助测试网络是部署在室内的一个实验网络,在基准传感器网络基础上加进有线链路,将各个节点连接起来改造的综合测试网络,同时存在无线链路和有线链路两种通讯方式。
基准传感器网络硬件上由无线传感节点和WSN-GPRS网关组成。网络架构如图所示。无线传感节点和WSN-GPRS网关上均有基于Zigbee的无线通讯模块,传感器节点将感知数据和状态数据以无线方式最终汇聚到WSN-GPRS网关, WSN-GPRS网关将数据封装以GPRS方式发送到远程的服务器。同时来自服务器的命令数据包沿着相反的路线被发送到指定节点,完成控制功能。
辅助测试网络硬件上由无线传感节点、WSN-HUB和若干双绞线组成。网络架构如图所示。无线传感节点之间以无线Zigbee的方式收发数据,WSN-HUB中有一个汇聚节点,负责汇聚传感网的感知数据。同时无线传感节点之间又通过CAN总线与WSN-HUB连接起来,形成有线链路。WSN-HUB通过以太网与服务器相连。
图 18 辅助测试网络架构
|