基于ZigBee技术的产品开发流程及其实现方法
2009-12-15 13:57:33| 分类: 默认分类 阅读223 评论0 字号:大中小 订阅
0 引言
众所周知无线技术在许多的领域中比有线技术拥有无可比拟的优势,它可以解决许多有线方式无法解决的难题,给人们的工作和生活带来更多便利。但是,到目前为止由于成本、可靠性、实时性等方面的原因,无线技术还没有达到很普及的程度。
无线网络技术按距离可以分为:WWAN (无线广域网) 、WMAN (无线城域网) 、WLAN (无线局域网) 、WPAN(无线个域网)。目前无线个域网得到了业界的重视,主要涉及到IrDA、蓝牙和ZigBee等无线个域网技术。
IrDA是一种基于红外线的点点通信技术,但是它存在很强的方向性,而且不能够用来组建无线网络。ZigBee和Bluetooth是针对两个不同应用范围的无线解决方案。蓝牙技术一般适合应用于要求高速、短距离的领域月饼的英语,这种无线网路技术的功耗很大,豆芽的观察日记而且开发也比较复杂,成本也高。ZigBee技术是一种新发展起来的无线网络技术,它具有短距离通信、低复杂度、低功耗、
低数据传输速率等特点,保养护肤目前在这几种无线解决方案中ZigBee无线网络技术被业界普遍看好。
ZigBee技术的特点非常适合用于“三表”行业,用ZigBee技术来代替目前“三表”行业的有线通信方式,具有非常现实的意义。
本文主要就无线水表的设计和实现来介绍ZigBee技术的应用开发流程、方法、以及需要注意的一些事项。由于笔者使用的是Chipcon公司提供的开发平台,宛转拼音所以后续关于ZigBee技术的开发均以这个平台为基础。
1 ZigBee技术
1. 1 ZigBee概述
ZigBee技术是最近兴起的一种无线通信标准,它是以IEEE802. 15. 4无线通信技术为基础的一组涉及到网络、安全、应用方面的软件协议。它是一种短距离、低复杂度、低功耗、低数据传输率、低成本的双向无线通信技术。
该技术可以应用于超低功率损耗的无线网络中,它满足ISO /OSI参考模型。其物理层和MAC层采用了IEEE80211514标准; ZigBee联盟定义了上层部分,包括网络层和应用层;用户层由用户自己定义。目前,Chipcon公司提出的CC2420+MCU 解决方案,其MAC和PHY层由CC2420实现,上层部分协议包括应用层全部由MCU实现。
1. 2 ZigBee协议栈
协议栈是用于实现ZigBee关机设置协议的一组软件,为了便于ZigBee技术开发,不妨先了解其中部分重要的概念。
1. 2. 1 Profile
Profile的书面意思是框架、轮廓,在这里它的意思是应用程序框架。它是由ZigBee技术开发商提供,应用于特定的应用场合,它是用户进行ZigBee技术开发的基础。当然用户也可以使用专用工具建立自己的Profile。Profiles是这样一种规范,它规定不同设备对消息帧的处理行为,使不同的设备之间可以通过发送命令、数据请求来实现互操作。
1. 2. 2 Endpoint
Endpoint是一种网络通信中的数据通道,它是无线通信节点的一个通信部件,如果选择“绑定”方式实现节点间的通信,那么可以直接面对Endpoint操作,而不需要知道绑定的两个节点的地址信息。每个ZigBee设备支持多达240个这样的Endpoints。Endpoint的值和IEEE长地址、16位短地址一样,
是唯一确定的网络地址,通常结合绑定功能一起使用。它是古诗塞下曲ZigBee无线通信的一个重要参数。
1. 2. 3 Cluster
当人们着手建立Profile时会遇到这个概念,它是一簇网络变量( attributes)的集合,当然如果将通信帧属性选择为“Message”时,它也可以没有任何网络变量。在同一个Profile中, ClusterID是惟一的。
在直接寻址方式和间接寻址方式中,人们都会用到这个概念。在间接寻址方式中,建立绑定表时需要搞清楚Cluster的含义与属性。对于可以建立绑定关系的两个节点,它们的Cluster的属性必须一个选择“输入”,另一个选择“输出”,而且ClusterID 值相等,只有这样,它们
彼此才能建立绑定,而在直接寻址方式中,常用ClusterID作为参数来将数据或命令发送到对应地址的Cluster簇上。
1. 2. 4 Attribute
Attribute是一个数据实体,它代表一个物理量或一种状态,可以通过这个网络变量在设备之间传递数据或命令。
ZigBee通信有两种协议帧格式,分别是“KVP”格式和“Message”格式。“Message”格式是用户自定义的一种帧格式,而“KVP ”格式就是ZigBee联盟定义的,它就用到了网络变量Attribute来传递数据和命令。
1. 2. 5 Binding
绑定涉及到两个网络节点,在绑定表中,它包含如下信息: IEEE地址、EndpointID。其中Endpoint描述信息中的ClusterID必须值相等,而且属性方向相反。节点间的绑定,通常是通过Endpoint的绑定来实现的。例如节点A 的Endpoint可以和节点B 中的一个或多个Endpoint实现绑定,节点A的Endpoint也可以和多个节点中的Endpoint进行绑定。绑定关系
可借助图1来说明。
2 无线水表抄表系统功能要求和设计思想
2. 1 无线水表功能要求
无线水表功能要求有如下几点:
① 脉冲信号采集功能。现在的数字远传水表可以将水流转换成脉冲信号,通常有每脉冲10 L和每脉冲100 L两种,可以通过脉冲信号的采集来实现计量功能;
② 兼容Meter2Bus协议。在我国现在有一个主流的水表协议,是由多家水表生产厂商和科研院所联合制定的,所以兼容时下流行的Meter2Bus协议,便于推广;
③ 无线接口。无线水表需要无线接口来实现各个用户的水表的计量信息的集中抄录,可以采用ZigBee无线网络技术;
④ 要有监控器。各个用户的水表的信息最终要通过抄表器传送到统一监控系统上来。
2. 2 设计思想
设计的无线水表抄表系统包括一个监控器和几个终端水表。使用ZigBee技术来实现无线通信网络,并选择Mesh网络。这样各个中间水表也可以具有路由功能,方便网络信息的传递。在硬件方面,主板包括一个ZigBee无线通信模块和一个脉冲信号采集器。ZigBee无线通信部分选择Chipcon公司的解决方案,使用Mega128 +CC2420来实现ZigBee通信,自己通过设计模块实现。信号采集器部分,主要通过CPU 的通用外部中断来采集脉冲信号。这样设计功耗很低英语作文自我介绍带翻译, CPU可以在空闲的时候处于休眠状态。
在软件方面,通过对ZigBee协议栈的操作,实现ZigBee无线通信。监控器需要把监控信息上传到上位机,也可以处理来自上位机的命令,此处兼容MeterBus协议。
3 无线水表抄表系统的实现
3. 1 ZigBee典型案例材料无线通信部分
要进行ZigBee技术的开发,不仅要掌握前面提到的许多概念,而且还要熟悉ZigBee技术的开发流程。下面按照ZigBee技术的开发流程来介绍水表的无线通信部分。
3. 1. 1 前期准备工作
① 用户Profile的建立使用Chipcon公司提供的开发工具Profile Build2er,可以建立自己所需的Profile。Profile builder是一种框架程序自动生成工具,可以通过适当的配置生成目标程序框架。
使用这个工具,可以建立自己的应用程序框架,它包含设定的Clusters和Attributes。在建立Profile 时,必须对所需的ZigBee通信有一定的了解,如需要在以后的通信方式中使用绑定方式,则必须注意Cluster的属性配置。因为绑定对Cluster的属性要求是只有具有输出功能的Cluster才能与具有输入功能的Cluster实现绑定。
因此,建立水表Profile时必须使监控节点的Clus2ter属性与水表节点的Cluster的属性相对应;
② 无线水表抄表系统项目的建立对使用GCC 编译器的用户都会遇到这样的问题———Make file的使用,这对Make file了解甚少的用户来说,自己编写Make file项目文件无疑增加了很大的难度和工作量。
其实,在开发包中提供邮General App项目文件,这是一种通用的项目文件。人们可以通过对这个项目的Make file文件和Project文件中的文件名进行恰当的更改,得到自己命名的工程文件。但要注意,必须把自己在Profile Builder生成的文件,复制到已更改过对应项目文件夹中,这样自己的项目文件才能得到正确编译;
③ 小结
在完成上述的两步操作后,才可以在自己的项目文件中进行ZigBee开发。当然,所有这些才只是准备工作。
3. 1. 2 ZigBee技术支持
完整的ZigBee通信有很丰富的通信方式,但人们只需针对具体的水表项目选择合适的通信方式。ZigBee技术可以通过使用IEEE地址或短地址来通信,也可以通过绑定在各个节点间建立联系,然后通过End2point和Cluster信息来进行通信。下面分别介绍一下这两种通信方式。
3. 1. 2. 1 间接通信
间接通信是指各个节点通过Endpoint的绑定建立通信关系,这种通信方式不需要知道目标节点的地址信息,包括IEEE 地址或网络短地址。绑定关系表通常被建立在网络协调器中,这样网络中的节点就可以通过Endpoint来访问与之建立绑定关系的节点。
这种通信方式离不开网络的协调器,因为绑定表放在这个节点中, 每次的通信源节点把信息发送到Coordinator,由Coordinator将接收信息中的Endpoint信息作为参数,查表找到对应的目标地址并转发。绑定有间接绑定、直接绑定(OTA) 和直接绑定(通过串口) 3种方法。通常前两种使用较多。
① 间接绑定:间接绑定方法比较简单,在Profile文件中就包含这种方法,它通过按键来发送绑定信息。需要绑定的两个节点在一定的时间内发送绑定命令,当协调器在设定的时间内收到这样的两条绑定信息时,它就会建立对应的绑定表。建立了绑定关系的两个节点之间就可以通过Endpoint来相互通信;
② 直接绑定(OTA) :直接绑定需要用户自己编写相应的绑定程序, ZigBee协议栈中含有绑定API,这就要求用户通过适当的方法调用来实现绑定功能。这种方法通常是使用一个节点直接向协调器发送两条绑定信息,这两条信息中的目标地址和源地址相反。这种方法需要
用户对协议栈有一定的了解,熟悉相关的API函数。使用这种方法有许多好处,我们可以通过第三方节点来配置网络来是任意两个节点之间建立绑定关系,使网络通信方式更加灵活。而且第三方节点可以通过与上位机互联,在上位机上我们可以建立一个界面,通过串口向第三方节点传递配置信息,这样我们的配置会更加方便;