浅谈ZigBee 技术的无线抄表系统

出处:tyw 发布于:2011-08-29 16:28:51

  1 引言

  Zigbee是IEEE 802.15.4协议的代名词.根据这个协议规定的技术是一种短距离、低功耗的无线通信技术.这一名称来源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飞翔和"嗡嗡"(zig)地抖动翅膀的"舞蹈"来与同伴传递花粉所在方位信息,也就是说蜜蜂依靠这样的方式构成了群体中的通信网络.其特点是近距离、低复杂度、自组织、低功耗、低数据速率、低成本.主要适合用于自动控制和远程控制领域,可以嵌入各种设备.简而言之,ZigBee就是一种便宜的,低功耗的近距离无线组网通讯技术.

  2 系统方案设计

  (1) 系统整体设计

  整个系统按照运行流程可分成三部分:终端设备(多个)、手持式采集设备(一个)、数据MIS 系统.终端设备是采集气量数据的集成设备,它负责对气量的数据进行采集和控制,同时可通过无线网络传输给手持式采集设备;手持式采集设备是通过无线通道对终端设备的数据进行和控制的设备;数据MIS系统是将手持式设备中的采集数据后对其进行管理的软件系统.

点击浏览下一页

  (2) 终端设备

  在用户端气表加装通讯模块形成终端设备,实现数据的读取和无线传输.

  (3) 手持式采集设备配置

  MPU:PHILIPS P89LV51RD2,低功耗芯片;

  EEPROM:24AA512(64K)用以存放所采集的数据;

  LCD:MOBI2006 薄型液晶LCD;

  键盘:设置4 个功能键,分别为:上、下、确认、背光;

  RS-232C 接口芯片:MAX232;

  无线模块:IP?Link1000-B;

  (4) 数据库MIS系统

  其主要功能包括与手持式采集设备进行数据交换并存储,对数据进行格式化加工,对数据进行通用管理(添加、删除、修改、查询等)以及根据客户需求打印各种报表.

  3 系统硬件结构及连接图

  手持设备的硬件连接如图2 所示,元件主要包括微控制芯片、片外存储器、多路复用器CD4052、无线模块IP?Link1000-B、串口电平转换芯片MAX232、键盘和LED 显示屏.

点击浏览下一页

  微控制芯片通过并口连接键盘和LED 显示屏,片外存储器EEPROM采用I2C模拟总线方式连接,上位机和下位机通讯采用RS-232C 方式,需使用MAX232 芯片进行电平转换,另因无线模块与上下位机通讯都通过通用串行口,所以要进行串行口扩展,采用多路复用开关CD4052.

  (1) 数据帧定义

  数据帧是数据传输协议中数据的规范格式,数据帧结构的定义如表1 所示.

点击浏览下一页

  注:Lead 为帧标识(帧头)、Command 为命令字、Length 为数据长度、Load 为数据、Checksum为CRC校验码

  (2) 传输协议

  在蓝牙技术的使用过程中,人们发现蓝牙技术尽管有许多优点,但仍存在许多缺陷.对工业,家庭自动化控制和工业遥测遥控领域而言,蓝牙技术显得太复杂,功耗大,距离近,组网规模太小等,而工业自动化,对无线数据通信的需求越来越强烈,而且,对于工业现场,这种无线数据传输必须是高可靠的,并能抵抗工业现场的各种电磁干扰.因此,经过人们长期努力,ZigBee协议在2003年正式问世.另外,Zigbee使用了在它之前所研究过的面向家庭网络的通信协议Home RF Lite.

  数据发送:发送方将欲发送的数据先进行帧格式定义,先对数据串(命令字+数据长度+数据)进行循环冗余校验(CRC-16 ),形成两个字节的校验码,在数据串前添加帧标识,然后附上所得的校验码,形成数据帧后进行发送,并等待返回信息.

  数据接收:接收方在接收数据帧时,先判断帧标识,若错误,丢弃当前帧并向数据源发重传命令;如果正确,接收"命令"字节和"数据长度"字节并判断数据长度,超出数据长度时停止接收数据并发重传命令,长度合乎要求时才进行后面数据的接收,以上每个字节接收过程都包含超时判断,如果超时要求数据重发.数据接收完毕后进行循环冗余校验,将生成的校验码与接收到的校验码比较,相同则通过校验,数据帧正确,然后进行命令字节判断并对数据进行处理;若未通过校验,接收方发重传命令至发送方,要求重新传输该帧数据.

  发送端A在启动发送后等待返回信息,接收端B接收并校验数据后进行信息回复,包括正确或错误信息,发送端A 在接收到接收端B 的反馈信息后,作出相应的判断动作.另外,在得到错误信息或在规定时间内没有接收到反馈信息时,发送端A重新发送当前数据帧,并且记录重发次数.当重发次数超过给定值N 时,停止发送,并报出错信息.

  4.2 下位机与上位机的通信

  下位机(手持设备)与上位机(计算机)通信采用RS-232C 串口通信,上位机对所接收的数据进行CRC 检验判断,校验未通过,要求重传,校验通过,数据存储至数据库.上位机利用Visual Basic 6.0中的通信控件MSComm开发串行通讯程序.MSComm 控件提供两种处理通信的方式:事件驱动方式和查询方式.事件驱动方式由MSC omm 控件的onComm事件捕获并处理通信事件和错误,其优点是程序相应及时、可靠性高;查询方式是通过检查commEvent属性的值来判断事件和错误,适合于应用程序较小的情况.

  (1) 控件属性:包括串口初始化属性设置、数据读写操作、状态控制、打开/ 关闭串口.

  (2) 串口初始化属性设置

  下面结合初始化程序的实例来说明属性的设置:

  MSComm. CommPort = 2 设置通信端口号;

  MSComm. Settings ="1200, M, 8, 1" 设置波特率为12 00 ,奇偶校验为标记,8 位数据位,1 位停止位;

  MSComm. InputLen = 0 读取接收缓冲区的全部代码;

  MSComm. InputMode = comInputModeBinary 接收的数据格式为二进制数据;

  MSComm. InBufferSize = 100 设置接收缓冲区大小为100字节;

  MSComm. OutBufferSize = 10 设置发送缓冲区的大小为10字节;

  MSComm. OutBufferCount = 0 清除发送缓冲区;

  MSComm. InBufferCount = 0 清除接收缓冲区;

  MSComm. PortOpen = True 打开串口(关闭端口时值为f a l s e );

  (3) 数据读写操作

  Output 属性:向发送缓冲区写数据流,为Variant 型变量.Output 属性可以传输文本数据或二进制数据,用Output 属性传输文本数据,须定义一个包含一个字符串的Variant.发送二进制数据,则须传递一个包含字节数组的Variant 到Output属性.以下是上位机向下位机发确认信号(ACK)的实例.

  定义sendata 为Variant,发送Output 的值,right()为Byte数据,存放要发送的二进制数据:

  Dim sendata As Variant

  Dim right(1) As Byte

  right (0) = &H5E

  sendata = right 二进制数据变为Variant 格式

  MSComm. InBufferCount = 0 接收缓冲区清空

  MSComm. Output = sendata 发送二进制数据

  Inp ut 属性:将接收缓冲区中收到的数据读入变量,为Variant 型变量.当InputMode 属性值为0 (文本模式)时,变量中含String 型数据,当InputMode 属性值为1(二进制模式)时,变量中含B y t e 型数组数据.

  InputLen 属性:确定被Input 属性读取的字符数.设置InputLen 为0,则读取缓冲区中全部的内容.若接收缓冲区中In putLen 字符无效,In put 属性返回一个零长度字符串("").在使用Input 前,用户可以选择检查InBufferCount 属性来确定缓冲区中是否已有需要数目的字符.

  InBufferCount属性:返回接收缓冲区中已传到但还未取走的字符个数,In teg er 型.设为0 ,则清空缓冲区.

  OutBufferCount 属性:类似于InBufferCount 属性,为发送缓冲区中已传到但还未取走的字符个数,Integer 型.设为0 ,则清空缓冲区.

  5 数据的循环冗余校验

  在数据的无线传输过程中,因为噪声的干扰数据极易出错,因此在传输时必须采用可靠的数据校验方法.数据校验方法包括奇偶校验,循环甬余校验等多种校验方法,普遍采用循环甬余校验方法(CRC),它能有效地检测出传输数据的错误.CRC 的全称为Cyclic Redundancy Check,它是一类重要的线性分组码,编码和解码方法简单,检错和纠错能力强,在通信领域广泛地用于实现差错控制.

  CRC 校验的基本思想是利用线性编码理论,在发送端根据要传送的k 位二进制码序列,以一定的规则产生一个校验用的监督码(即CRC 码)r 位,并附在信息后边,构成一个新的二进制码序列数共(k + r )位,发送出去.在接收端,根据信息码和CRC 码之间所遵循的规则进行检验,以确定传送中是否出错.

  求CRC 码采用模2 加减运算法则,即是不带进位和借位的按位加减,这种加减运算实际上就是逻辑上的异或运算,加法和减法等价,乘法和除法运算与普通代数式的乘除法运算是一样,符合同样的规律.生成CRC码的多项式如下,其中CRC-16 和CRC-CCITT 产生16 位的CRC 码,而CRC-32 则产生的是32 位的CRC 码.

  CRC-16:(美国标准) G(X)=X16+X15+X2+1

  CRC-CCITT:(欧洲标准) G(X)=X16+X12+X5+1

  C R C - 3 2 :G (X ) =X 3 2 +X 2 6 +X 2 3 +X 2 2+ X 1 6+ X 1 2+X11+X10+X8+X7+X5+ X4+X2+X1+1

  下面以CRC-16 为例:

  数据以字节为单位,待传送的数据排队,运算区先存放两个字节的数据,缓冲区为一个字节,第三个字节的数据放在缓冲区内,运算区的数据按位运算,左边为标志位,标志位左移,缓冲区内的数据也左移一位(运算区内为新的16位数据),标志位与CRC-1 6 多项式的位系数(总为1)比较,标志位为1 则运算区内的数据位与多项式的后十六位"异或"运算,为零则不运算.然后下一位左移,过程同上,直至缓冲区内的八位数据全传输至运算区内为止.这时第三个字节的数据运算完毕,将第四个字节的数据存入缓冲区,运算方法同上.

  待数据串运算完毕后,后面附加16 个零进行运算,数据完全运算完成后,运算区的两个字节的数据就是生成的CRC校验码.将CRC 校验位附在信息码后作为循环码发送.

  以上是CRC 校验码的产生过程.

  接收方在接收到数据(循环码= 数据串+ 校验位)后,再进行CRC 校验,产生的运算区内的数据就是待校验的余数,余数为零则表示接受的数据串正确,否则为错.

  CR C 码以模二除法得到余数,具体实现方法是用"异或"运算实现.单片机CRC 检验子程序如下:

  CRC_CHECK:

  MOV R3, #00H ;存储CRC码高位

  MOV R4, #00H ;存储CRC码低位

  CRC0: MOV A, R3

  XRL A, @R0 ;R0 为初始值地址

  MOV R3, A

  MOV R7, #08H ;8 次比较

  CRC1: MOV A, R4

  CLR C ;进位标志清零

  RLC A

  MOV R4, A

  MOV A, R3

  RLC A

  MOV R3, A

  JNC CRC2

  XRL A, #80H ;高字节异或运算

  MOV R3, A

  MOV A, R4

  XRL A, #05H ;低字节异或运算

  MOV R4, A

  CRC2: DJNZ R7, CRC1

  INC R0 ;取下一校验字节数据

  DJNZ R6, CRC0 ;R6 为欲校验数据串的长度

  RET

  6 无线模块特征说明

  本系统的无线数据传输是基于IEEE802.15.4协议的ZigBee技术.IEEE 802.15.4无线数据传输协议标准主要规定了一种短距离、低功耗、低速率、低价位、高效率、高可靠性的短程无线网络标准.遵循这一标准的技术被称作ZigBee 技术.

  在ZigBee 的七层协议中,IEEE802.15.4 只定义了PHY和MAC 层,实体层(PHY)规范确定了在2.4GHz 以250Kbps的基准传输率工作的低功耗展频无线电(另有一些以更低数据传播率工作的915 MHz 和868 MHz 的实体层规范),介质访问层(MAC)规范定义了在同一区域工作的多个802.15.4无线电信号如何共享空中通道.

  系统中无线模块采用兼容IEEE 802.15.4 协议的赫立讯IP?Link1000-B 无线网络收发模块,组网形式为星型网络.模块的工作状态由外部设备控制,外部设备通过模块的UART0接口,采用AT命令或数据帧结构的形式对IP?Link1000-B模块进行配置和操作.

  无线模块在使用前先进行参数配置,包括对UART0 的波特率,模块的网络节点,节点号等参数进行设置,配置结果保存于模块内部非易失性存储器中,然后模块进入数据状态,准备数据的传输.无线模块在使用中先处于休眠状态,在外部命令作用下进入活动模式,数据传输成功后又回到休眠状态.

  文中的无线硬件设计、软件设计解决方案经测试运行稳定,无线通信误码率低、可靠性高、安全性好.文中的软硬件设计方案,可适用于各种单片机,并且作为无线通信技术在相关领域的推广和广泛的运用有着较好的参考价值.


  
关键词:无线

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

相关技术资料
广告
上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!