Zigbee下行协议.docx

上传人:b****2 文档编号:497031 上传时间:2023-04-29 格式:DOCX 页数:58 大小:85.45KB
下载 相关 举报
Zigbee下行协议.docx_第1页
第1页 / 共58页
Zigbee下行协议.docx_第2页
第2页 / 共58页
Zigbee下行协议.docx_第3页
第3页 / 共58页
Zigbee下行协议.docx_第4页
第4页 / 共58页
Zigbee下行协议.docx_第5页
第5页 / 共58页
Zigbee下行协议.docx_第6页
第6页 / 共58页
Zigbee下行协议.docx_第7页
第7页 / 共58页
Zigbee下行协议.docx_第8页
第8页 / 共58页
Zigbee下行协议.docx_第9页
第9页 / 共58页
Zigbee下行协议.docx_第10页
第10页 / 共58页
Zigbee下行协议.docx_第11页
第11页 / 共58页
Zigbee下行协议.docx_第12页
第12页 / 共58页
Zigbee下行协议.docx_第13页
第13页 / 共58页
Zigbee下行协议.docx_第14页
第14页 / 共58页
Zigbee下行协议.docx_第15页
第15页 / 共58页
Zigbee下行协议.docx_第16页
第16页 / 共58页
Zigbee下行协议.docx_第17页
第17页 / 共58页
Zigbee下行协议.docx_第18页
第18页 / 共58页
Zigbee下行协议.docx_第19页
第19页 / 共58页
Zigbee下行协议.docx_第20页
第20页 / 共58页
亲,该文档总共58页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Zigbee下行协议.docx

《Zigbee下行协议.docx》由会员分享,可在线阅读,更多相关《Zigbee下行协议.docx(58页珍藏版)》请在冰点文库上搜索。

Zigbee下行协议.docx

Zigbee下行协议

下行协议及设备协议

1.概述

1.1、术语定义:

中控下行协议:

Server的业务程序发往适配器的协议称为中控下行协议。

设备下行协议:

适配器通过RS232/USB至各网关的协议称为设备下行协议。

设备协议:

网关至各节点的协议称为设备协议。

例如CAN协议,zigbee协议等。

不管是何种网关,Server与其通信的下行协议均使用相同的格式;根据传输介质的不同,设备协议则随之不同。

通常一个节点控制多路硬件(比如8路红外发射或双路开关),每路硬件在该节点中均存在一个唯一的通道号;同时每路硬件也提供一个或多个功能供用户操作(比如LED调光硬件提供开、关、调光三个功能),每个功能在该节点中存在一个唯一的操作功能号。

对于某些操作功能,还需要一些额外的参数(比如调光操作功能,还需要最大亮度的相对值)。

图1:

术语定义

1.2、功能界定:

适配器与节点完成发送、接收的分片、重组,网关只实现简单的透传,后续如有必要,再实现分片、重组。

超时则同时在适配器、网关中完成,其中适配器的超时时间比网关略长(原因为拓朴类似于分布式架构,存在一致性问题)。

适配器对于不同的网关的发送、接收超时时间可不相同。

1.3、发送时,Server根据中控下行协议将报文发送至适配器,适配器如有必要则先分片,将报文通过RS232/USB发送至网关,网关将报文发送至节点后,需要回应适配器发送成功/失败。

当一定时间内网关无法将报文发送至目的节点,需要取消报文的发送,并应答适配器发送超时。

考虑到在此过程中,网关有可能出现故障,因此适配器也必须启动定时器,以判断报文是否发送超时。

当适配器收到网关的ACK报文后,继续发送下一个报文。

当适配器收到网关的NAK或超时后,取消后续分片报文的发送,启动下一个完整报文的发送。

1.4、Server发送报文时,由于其承载内容为应用层报文,必然保序到达目的节点。

由于节点的处理能力及设备协议栈原因,Server往同一个目的节点发送报文时,采用“发送、等待”的模式,Server必须收到网关的应答报文或者自身发送超时后,才允许下一个报文的发送。

对于不同的目的节点,目前可同时发送。

后续如碰以TCP等保序的协议栈,再增加同时发送至相同目的节点的功能。

1.5、Server发往适配器的中控下行协议格式参见下图:

SOF用于同步并表明新的一帧;MAC指目的节点地址,对于不同的网关其使用的长度并不相同(比如CAN最多只需29bit,ZigBee为8字节,IP报文为4字节,以太网为6字节,为方便起见,统一为8字节,每种协议使用哪个bit及其字节序由协议自行定义即可),ControlField为控制域,表明上层对网关发送该报文的控制信息(比如单播、组播、广播、透传等等),Length字段包含了后续DATA及CRC16的长度总和(每种协议可自定义其一帧的最大Length值):

图2:

中控下行协议报文格式

1.6、ControlField域的格式参见下图,,链路层和应用层确认标志ACK,ACK=0000b网关肯定回答中控机,其它为网关的链路层否定回答,ACK=1000b节点的应用层肯定回答,其它为节点应用层否定回答;报文方向DIR,DIR=0,报文发起方,DIR=1,报文响应方。

SOF、MF,用于指示设备节点的重组信息;SOF、MF的组合如下:

SOF=1表示新的一帧,MF=1表示后续有分片帧,有效组合如下:

10:

新的一帧无分片;11新的一帧后续有分片;00:

当前帧后续无分片;01:

当前帧后续有分片;packettype表明该报文的发送方式(单播、广播或组播,目前一般为单播或广播);transparentindicator表示该报文的接收者是接收处理或是透传(CAN/ZigBee互换);目前该bit必然是接收处理,后续需要网关转换传输介质时,才引入透传功能,其它位预留:

图3:

ControlField域格式

1.7、中控下行协议DATA域的格式参见下图,通道号、操作功能码中实际使用的bit由各设备协议自行制订,可各不相同:

图4:

中控下行协议DATA域格式

1.8、适配器往Server发送报文的格式同图2

1.9、适配器往Server发送报文的DATA域格式同图4

1.10、适配器从Server收到报文后,如Length小于等于设备链路的MTU,则直接将报文透传至网关,如Length大于MTU,则须将报文进行分片,分片的区域包含:

Length、DATA、CRC16,每个分片报文的格式遵守如下设备下行协议的格式:

图5:

中控下行协议分片包格式

1.11、目前节点往网关发送报文时,严禁分片!

由于节点只会从网关中收到报文,其重组比较简单,而适配器理论上会从各节点收到分片包,重组工作就比较复杂,因此一期工作适配器不支持重组。

2.帧格式定义

大于一个字节的定义都使用大端,高字节在低地址,以下描述中统一为Byte0为低字节,ByteX为高字节。

2.1SOF

帧起始位,固定为0x4455,如下图:

SOF

0x44

0x55

图6:

设备下行协议SOF域格式

2.2MAC

MAC地址,最长8字节,根据实际设备网络而定,zigbee无线8字节,CAN网8字节,右对齐,不足8字节高位补0,如下图:

MAC

MAC7

MAC6

MAC5

MAC4

MAC3

MAC2

MAC1

MAC0

图7:

设备下行协议MAC域格式

2.3ControlField

控制域包括2个字节共16bit,每位的定义如下图:

ControlField

B15~B8

Reserve

ACK3

ACK2

ACK1

ACK0

B7~B0

RES

RES

DIR

SOFflag

MFflag

Packettype1

Packettype0

Transparentindicator

图8:

设备下行协议ControlField域格式

ACK:

0-7为网关链路层ACK,8-15为网关和子节点应用层ACK。

00:

网关链路层肯定回答;01:

网关接收长度不一致;02:

网关CRC16错误;03:

网关发送超时;04-07:

保留;

08:

子节点应用层肯定回答;09:

子节点报文重组错误;10:

节点OPCODE不匹配;11:

子节点执行失败;12-15:

保留。

DIR:

启动报文位,0:

报文启动方,一般为为中控机至设备;1:

报文响应方,一般为设备至中控机。

当设备有重要变更通知时可以设置DIR=0主动向中控机发送报文。

SOF_MF:

10:

新的一帧无分片;11新的一帧后续有分片;00:

当前帧后续无分片;01:

当前帧后续有分片。

Packettype:

00:

单播;01:

广播;10:

组播;11保留。

Transparentindicator:

0:

接收处理报文;1:

透传报文。

2.4Length

数据长度Length,包括DATA域和CRC16域的长度。

Length

Lengthhighbyte

Lengthlowbyte

图9:

设备下行协议Length域格式

2.5DATA

DATA域为应用层的数据域,一般包括CHANNELID,DeviceOpcode,OpcodeARG,若是分片数据包,则将Length、DATA、CRC16打包后分成MTU长度的分片包放在DATA域中传送。

透传数据报文则在DATA区前再附加最终接收节点的MAC.如下图

GeneralDATAField

ChannelID

Deviceopcode1

Deviceopcode0

OpcodeARG(Length-7bytes)

图10.1:

设备下行协议DATA域格式

SubpackageDATAField(SOF_MF≠10)

Frame1

SOF

MAC

ControlField

Length

DATAlength.1

DATAlength.0

DATA(MTU-2)

CRC16

Frame2

SOF

MAC

ControlField

Length

DATA(MTU)

CRC16

Frame……

Frameend

SOF

MAC

ControlField

Length

DATA

(Lenngth-4)

DATACRC16.1

DATACRC16.0

CRC16

图10.2:

设备下行协议DATA域格式(分片包)

TransparentDATAField(Transparentindicator=1)

SOF

MAC

ControlField

Length

TransparentDATAField

CRC16

RemoteMAC

DATA

图10.3:

设备下行协议DATA域格式(透传包)

TransparentDATAField(Transparentindicator=1)(SOF_MF≠10)

SOF

MAC

ControlField

Length

TransparentDATAField

CRC16

DATAlength

RemoteMAC

DATA

DATACRC16

图10.4:

设备下行协议DATA域格式(透传包需分片)

10.1所述格式是一个标准的数据包DATA域格式,没有任何附加内容

对于10.2、10.3、10.4所述格式,每一帧的格式都遵循标准的下行报文格式,即SOF、MAC、ControlField、Length、CRC16,

分片包的DATA域的内容则是由GeneralDATAField(图10.1所示)前后附加DATAlength和DATACRC组成,其中

DATAlength:

GeneralDATAField+DATACRC的长度,长2字节。

DATACRC:

DATAlength和DATA的CRC16值,长2字节。

透传包的DATA域需要在DATA前附加最终接收端的MAC地址,格式同MAC,如图10.3所示。

若需要分片则将TransparentDATAField遵循分片包的格式发送出去。

格式如图10.4所示。

2.6CRC16

CRC16为SOF、MAC、ControlField、Length、DATA的校验值,如下图

CRC16

CRC16highbyte

CRC16lowbyte

图11:

设备下行协议CRC16域格式

CRC16算法统一使用以下算法:

uint16_tEH_CRC:

:

CreateCrc16(constuint8_t*msg,uint32_tlen){

uint16_tcrc=0xFFFF;

uint32_ti,j=0;

for(i=0;i

for(j=0;j<8;j++){

BOOLc15=((crc>>15&1)==1);

BOOLbit=((msg[i]>>(7-j)&1)==1);

crc<<=1;

if(c15^bit){

crc^=0x1021;

}

}

}

returncrc;

}

算出的CRC16值需进行大小端转换后按大端放入CRC16中,即高8位放在CRC16highbyte,低8位放在CRC16lowbyte中。

2.7MTU

对于不同设备指定不同的MTU值,暂定CAN设备MTU=128,Zigbee设备MTU=128。

 

3.通用DATA域定义

3.1ChannelID

一般节点的ChannelID为0,子模块的通道从1开始。

255保留。

channel_id是个8位的一个字节

0000 0000

高5位是逻辑通道号,低三位是硬件通道号

0000 0001 代表硬件通道1的 第0个逻辑号

0000 1001 硬件通道1的第一个逻辑号

0000 1010 硬件通道2的第一个逻辑号

00010010硬件通道2的第二个逻辑号

音频矩阵是从1开始的,所以是0000 1001                             

0001 0001

0001 1001

3.2OPCODE域定义

OPCODE域即DeviceOpcode,占2个字节。

DeviceOpcode定义了不同类别中各种操作的操作码。

公共功能部分对各类别通用,具体上送的信息在各自类别中详细定义。

对于多通道的相关功能应结合ChannelID来解析。

DEVICENAME

DEVICEOPCODE

Des.

公共功能

0x0000

查询状态

当通道号为0时,上送节点当前的运行状态。

其他情况下上送该通道的数据状态。

0x0001

读取节点链路状态

一般使用广播

0x0002

预留

预留

0x0003

设置节点通信参数

可由通道号区分

0x0004

强制重启

0x0005

IAP下传设备IMAGE信息

写入设备版本号、CRC等信息

0x0006

IAP数据报文

程序文件

0x0007

初始化完成报文

一般为上电初始化

0x0008

IAP初始化完成

IAP初始化完成

0x0009

分配节点ID

网关向节点发送包含ID和MAC的报文

0x000A

状态变更通知

仅D-C节点主动上送

0x000B

获取设备通道信息

获取该设备的通道数和通道类型

0x000C

识别设备

用于定位设备位置

网关

0x0101

下传节点地址表

整表(仅CAN)

0x0102

新增节点地址

可以一个或多个

0x0103

删除节点地址表

删除整张表

0x0104

查询MAC地址

查询网关中是否有该地址

0x0105

查询上送通信状态

可一个或多个节点

0x010B

上报新加入节点

当有新的节点加入网络时,网关推送消息到中控主机。

0x010C

获取设备列表

获取加入网络的所有设备地址信息

0x010D

删除设备

删除节点设备

0x010E

取消该节点加入上报

当网关收到该消息后,节点取消该节点的周期上报

0x010F

查询网关信息

网关信息

0x0110

新bin消息通知

中控机到网关的通知

0x0111

请求获取bin文件

网关到中控机的请求

0x0112

Bin文件推送

中控机到网关的文件发送

0x0113

启动升级

网关开始升级

0x0114

组网通道操作

Zigbee,433,315,868

0x0115

创建一个设备

比如:

警报器

0x1116

对码成功推送

通过对码的节点的推送

0x1117

启动加入报警器

给报警器发送报文

0x1118

配置网关功能

配置网关安防启动与否

0x1119

获取安防配置

网关安防配置

0x111A

升级结果通知

网关通知中控机升级结果

灯具控制类

0x0100

开关

包括单路、双路LED、白炽灯等

0x0101

调光

0x0102

调色

0x0103

下传绑定MAC

申请和下传调光LED灯节点所绑定面板的MAC

0x0104

申请绑定MAC

0x0105

下传MAC绑定表

仅灯端LED调光面板有效,MAC为所控灯节点的MAC地址。

0x0106

删除MAC绑定表

0x0107

申请MAC绑定表

0x0108

查询通信状态

插座控制类

0x0100

0x0101

0x0102

读取电量值

0x0103

读取电压电流值

用于装置调校

0x0104

设置采样系数

0x0105

设置电流变比

电机控制类

0x0100

正转(open)

0x0101

反转(close)

0x0102

停止

红外发射类

0x8100-0x8400

红外发射

注:

1

0x0101

红外接收

0x0102

红外发送

0x0103

红外上报

0x0104

红外保存

0x0105

红外清除

RS232串口控制类

0x8100-0x8400

串口数据收发

注:

1

0x0101

查询串口参数

继电器控制类

0x0100

0x0101

情景面板

0x0102

执行情景模式

0x0100

情景模式开始执行

0x0101

情景模式执行结束

Hailin空调面板

0x0100

设置空调面板

布尔量传感器

0x0100

查询状态或主动上报

开关类传感器

0x0100

查询状态或主动上报

门锁模块

0x0101

搜索门锁

0x0102

添加门锁

0x0103

删除门锁

0x0104

增加开锁人

0x0105

删除开锁人

0x0106

禁用开锁人

0x0107

启用开锁人

0x0108

同步门锁时间

0x0109

开门成功推送

0x010A

报警推送

报警器

0x0100

启动报警

0x0200

取消报警

安防遥控器

0x0100

布防

0x0200

撤防

0x0300

在家布防

0x0400

SOS

注1:

对于红外发送和RS232控制的设备,OPCODE含义扩展为家电OPCODE,范围0x8100-0x8400,应用层反馈时需返回家电的DeviceID、Opcode以及OpcodeARG,详见OPCODEARG定义。

3.2OPCODEARG域定义

OPCODEARG是和OPCODE相对应的参数,可变长度且可以为空。

定义中控机(C)向设备(D)方向的报文为C->D,设备向中控机方向为D->C。

1.公共类

公共功能除特殊说明外对每种类别的设备都有效。

查询设备状态(OPCODE=0x0000)

序号

C->D

说明

01

NULL

查询设备状态(OPCODE=0x0000)

序号

D->C

说明

01

State

02

Alarm

读取节点链路状态(OPCODE=0x0001)

序号

C->D

说明

01

NULL

无参数,一般广播时使用,也可对单个节点召唤

读取节点链路状态(OPCODE=0x0001)

序号

D->C

说明

01

Status

0=正常,1=节点ID未确认

设置节点通信参数(OPCODE=0x0003)(仅串口)

序号

C->D

说明

01

Baudrate

波特率:

0=9600;1=19200;2=38400;3=57600;4=115200

02

Parity

校验:

0=NONE;1=EVEN;2=ODD

03

Stopbit

停止位:

0=1BIT;1=2BIT

设置节点通信参数(OPCODE=0x0003)

序号

D->C

说明

01

Status

设置状态,1=成功,0=失败。

强制重启(OPCODE=0x0004)

序号

C->D

说明

01

Mode

1=重启后进入程序升级模式

2=重启后进入运行模式

18=重启后进入带CRC校验的运行模式

注:

Mode:

低4bit为启动模式。

高4bit为附加选项。

其中low4bit=1进入程序升级模式

low4bit=2进入运行模式

high4bit=1用户程序启动时需要校验CRC

强制重启(OPCODE=0x0004)(预留)

序号

D->C

说明

01

Mode

原值返回

IAP下传设备IMAGE信息(OPCODE=0x0005)

序号

C->D

说明

01

Version_h

应用程序版本号VX.XX

02

Version_l

03

APPCRC_h

应用程序的CRC16

04

APPCRC_l

05

APPLen_h

应用程序大小,最大64K

06

APPLen_l

IAP下传设备IMAGE信息(OPCODE=0x0005)

序号

D->C

说明

01

Status

写入状态,1=成功,0=失败。

IAP数据报文(OPCODE=0x0006)

序号

C->D

说明

01

AppDATA

程序文件和传输过程中的交换信息

02

AppDATA

……

……

IAP数据报文(OPCODE=0x0006)

序号

D->C

说明

01

AppDATA

传输过程中的交换信息

02

AppDATA

……

……

注:

IAP启动过程为,中控机向节点发送IAP启动命令,节点收到后将IAP启动允许标志写入Flash中指定位置,成功后返回应用层确认给中控机,中控机收到确认命令后下发强制重启命令强制节点重启,节点每次重启后首先是运行BOOT程序,BOOT程序先读取IAP启动标志,有效则启动IAP程序进入升级过程,否则再检测应用程序是否有效,有效就运行应用程序,无效则转入IAP程序等待更新程序。

IAP进程运行2分钟后仍无任何升级程序连接则清除IAP允许标志,转入应用程序检测阶段,本次升级取消。

 

初始化完成报文(OPCODE=0x0007)(节点主动上送,DIR=0)

序号

D->C

说明

01

Version_h

程序版本号VX.XX

02

Version_l

03

APPCRC_h

应用程序的CRC16值。

04

APPCRC_l

注:

该初始化完成报文应在对码结束后发送。

IAP初始化完成(OPCODE=0x0008)(DIR=0)

序号

D->C

说明

01

NULL

无参数

分配节点ID(OPCODE=0x0009)

序号

C->D

说明

01

ID_h

节点ID

02

ID_l

03~10

MAC7-0

MAC地址

说明:

对于CAN,此时发送报文CAN_ID中的节点ID使用网关的ID(=1),使用广播发送方式。

获取设备通道信息(OPCODE=0x000B)

序号

C->D

说明

01

NULL

无参数

获取设备通道信息(OPCODE=0x000B)

序号

D->C

说明

01

通道数

该设备中通道数目(不含0通道)

02

Channel

通道号

03

Operate_type_h

Operate_type

04

Operate_type_l

05

Channel

通道号

06

Operate_type_h

Operate_type

07

Operate_

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 卡通动漫

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2