当前位置:文档之家› Zigbee安全规范与分析(中文翻译版)

Zigbee安全规范与分析(中文翻译版)

Zigbee安全规范与分析(中文翻译版)
Zigbee安全规范与分析(中文翻译版)

目录

ZIGBEE安全规范概述与分析...................................................................... 错误!未定义书签。

1 概述 (1)

1.1目的及范围 (1)

1.2背景 (1)

2 缩略语与术语 (1)

3 参考资料 (1)

4 ZIGBEE安全规范 (1)

4.1安全架构与设计 (1)

4.1.1 安全设计选型 (1)

4.1.2 安全密钥 (2)

4.1.3 帧格式 (2)

4.2NWK层安全 (3)

4.2.1 NIB属性 (3)

4.2.2 帧安全 (4)

4.2.2.1 输出帧的安全处理 (4)

4.2.2.2 输入帧的安全处理 (5)

4.3APS层安全 (6)

4.3.1 AIB属性 (6)

4.3.2 帧安全 (6)

4.3.2.1 输出帧的安全处理 (6)

4.3.2.2 输入帧的安全处理 (8)

4.3.3 密钥建立 (9)

4.3.3.1 SKKE协议 (9)

4.3.4 密钥传输 (12)

4.3.4.1 发起设备密钥传输命令处理 (12)

4.3.4.2 响应设备接收密钥传输命令 (14)

4.3.5 更新设备 (15)

4.3.6 移除设备 (15)

4.3.7 请求密钥 (16)

4.3.8 更换密钥 (16)

4.3.9 实体认证 (17)

4.4功能描述 (18)

4.4.1 信任中心应用程序 (18)

4.4.2 加入一个安全网络 (18)

4.4.3 认证 (20)

4.4.3.1 路由器操作 (20)

4.4.3.2 信任中心操作 (20)

4.4.3.3 新加入设备操作 (22)

4.4.3.4 相邻设备认证 (24)

4.4.4 网络密钥更新 (24)

4.4.4.1 信任中心操作 (24)

4.4.4.2 网络设备操作 (24)

4.4.5 端到端的应用密钥建立 (25)

4.4.5.1 设备操作 (25)

4.4.5.2 信任中心操作 (25)

4.4.6 网络离开 (27)

4.4.6.1 信任中心操作 (27)

4.4.6.2 路由器操作 (27)

4.4.6.3 离开设备操作 (27)

5 ZIGBEE安全性缺陷 (27)

1概述

1.1目的及范围

本文档的目的,在于概述Zigbee的协议安全规范以及其缺陷,以便于设计M2Micro智能电网系统时提供参考。

本文档的主要目标读者,包括M2Micro智能电表系统的软件设计人员和测试人员。

1.2背景

在设计阶段之前,对Zigbee协议的安全性进行评估

2缩略语与术语

AIB: Application support layer information base

APL: Application layer

APS: Application support sub-layer

APSME:Application support sub-layer management entity

NWK: Network

PAN: Personal area network

PIB:Personal area network information base

POS: Personal operating space

SKKE:Symmetric-key key establishment

ZDO: ZigBee device object

3参考资料

ZigBee Specification-2007.pdf

4Zigbee安全规范

Zigbee提供的安全服务包括密钥建立、密钥传输,帧的保护和设备管理的办法。这些安全服务形成了Zigbee设备内实现安全策略的结构单元。

4.1安全架构与设计

4.1.1安全设计选型

以下为安全选型的原则:

●首先,建立“最初产生帧的那一层负责最初加密它”这一原则。例如,如果一个NWK层命

令帧需要保护,应当使用NWK层安全机制。

●第二,如果要求信息不被恶意网络设备盗窃,为所有帧使用NWK层安全,除了那些在一个

路由器和一个新加入的设备(直到新加入的设备收到激活的网络密钥)之间传递的帧。

●第三,由于有开放信任模式,安全可以基于每个层重复使用密钥。例如,激活的网络密钥可

以用于加密APS层。

●第四,端对端安全使能,这样只有源设备和目标设备可以访问它们共享的密钥。这限制了其

他设备对那些含有极其重要信息的设备的信任要求。

●第五,为了简化设备的互用性,一个特定网络里所有设备和一个设备里所有层使用的安全等

级应该相同。如果一个应用程序的负载的安全需求高于一个给定网络的安全等级,该应用程

序应该形成它自己更高安全等级的独立网络。

以下措施在实际应用中必须正确执行

●处理加密和解密数据包引起的错误状况。有些错误状况可能指示安全材料(security material)

的不同步,或者指示不断攻击。

●检测和处理计数器同步丢失和计数器溢出。

●检测和处理密钥同步丢失。

●如有需要,终止和周期性地更新密钥。

4.1.2安全密钥

连接密钥(link key):设备之间的单播通信是通过两个设备共享一个128位的连接密钥的方式加密的。

网络密钥(network key):广播通信是通过网络中所有设备共享一个128位的网络密钥加密的。网络密钥分为标准的和高安全的两种类型。网络密钥的类型决定了网络的分布以及如何初始化网络帧计数器。

主密钥(master key):提供了建立连接密钥的起点,可以在频带内或者频带外配置。主密钥可以在生产过程中安装,也可以由信任中心安装,或者可以基于一个用户输入的数据(例如:PIN、口令)。

一个设备可以通过密钥传输、密钥建立,或者预安装(比如在工厂安装期间)来获得连接密钥;可以通过密钥传输,或者预安装来获得一个网络密钥。

详细的密钥的分类见下表:

密钥类型描述值Trust-center master key 密钥是用来建立信任中心和其它设备之间的连接的一个主密钥0x00 Standard network key 密钥是一个网络密钥,用于标准安全模式,可以使用密钥传输分发。0x01 Application master key 密钥是用来建立两个设备间的连接的一个主密钥0x02 Application link key 密钥是一个用于作为两个设备间基本安全的连接密钥0x03 Trust-center link key 密钥是一个连接密钥,用作信任中心和其它设备之间的基本密钥。0x04

High-security network key 密钥是一个网络密钥,用在高级安全模式中,只能使用密钥传输分

发。

0x05 表4.1 密钥的详细分类

4.1.3帧格式

图4.1-4.4展示了一个NWK和APS帧包含的安全域的一个例子

图4.1 使用安全机制的zigbee的帧的NWK层

图4.2 使用安全机制的zigbee的帧的APS层

图4.3 辅助帧头(Auxiliary Frame Header)格式

图4.4安全控制子域(Security Control Field)格式

4.2NWK层安全

NWK层帧保护机制应该使AES,并且使用指定的CCM*(参考文献附录A)。NWK层负责安全地传输输出帧和安全接收输入帧所需的处理步骤。上一层通过建立适当的密钥和帧计数器控制安全处理操作,并建立使用哪种安全级别。

4.2.1NIB属性

NWK PIB包含了管理NWK层安全所需的属性。可以使用NLME-GET.Request和NLME- SET.request原语来读取和改写下面的属性。安全相关的NWK PIB属性在表格4.2-4.4中有显示。

属性标识类型范围描述默认值nwkSecurityLevel 0xa0 Octet 0x00-0x07 接收和发送帧的安全级别0x05

nwkSecurity- MaterialSet 0xa1 / Variable 一组网络安全性的材料-描述激活

的和备用的网络密钥

-

nwkActiveKey

SeqNumber

0xa2 Octet 0x00-0xF 激活的密钥的序列号0x00

nwkAllFresh 0xa3 Boolean TRUE |

FALSE 当输入帧计数溢出时,是否输入

的NWK帧进行全新检查

TRUE

nwkSecureAll Frames 0xa5 Boolean TRUE |

FALSE

安全加密是否适用于所有的输入

输出NWK帧。如果设置为0x01,

输入输出帧都将进行安全处理,

除非当前设备帧的安全控制子域

设置为0

TRUE

表4.2 NIB安全属性

名称类型范围描述默认值KeySeqNumber Octet 0x00-0xFF 信任中心分配给网络密钥的序列

号,用于区分网络密钥,便于网

络密钥更新和输入帧的安全操作

OutgoingFrame Counter 4字节有序集合0x00000000-

0xFFFFFFFF

输出帧计数器0

IncomingFrame

CounterSet

Variable 输入帧计数值和相应的地址- Key 16字节有序集合密钥值- KeyType Octet 密钥类型

0x01标准

0x05高安全

0x01

表4.3 安全材料(Security Material)的元素

名称类型范围描述默认值SenderAddress 设备地址任何有效的64位

地址

扩展设备地址-

IncomingFrame Counter Ordered set

of 4 octets

0x00000000-

0xFFFFFFFF

输入帧的计数器,用于

输入的帧。

0x00000000 表4.4 输入帧计数器描述符的元素

4.2.2帧安全

4.2.2.1输出帧的安全处理

应按照如下步骤实施安全处理:

1.从NIB属性(表4.2)nwkSecurityMaterialSet中获得网络层激活的网络密钥序列号,使用它去检

索激活的网络密钥key、输出帧计数器(OutgoingFrameCounter)和密钥序列号(KeySeqNumber)。

从nwkSecurityLevel获得安全等级。如果输出帧计数器值为4字节表示的整数为232 -1,或如果密钥不能获得,安全处理失败,不能对本帧进行进一步安全处理。

2.建立辅助头AuxiliaryHeader(见图4-1):

a)安全控制域应该如下设置:

i.安全等级子域应该设置为步骤1中获得的安全等级。

ii.密钥标识符子域应该设置为‘01’(即激活的网络密钥)。

iii.扩展的临时子域应该设置为1。

b)设置源地址域为本地设备的64位扩展地址。

c)帧计数器域设置为步骤1中的输出帧计数器读数。

d)密钥序列号域应该设置为步骤1获得的序列号。

3.执行CCM*模式加密和认证操作(见参考文献附录A)

4.如果步骤3调用的CCM*模式输出“无效”,安全处理失败,本帧不能进一步进行安全处理。

5.假设c成为步骤3的输出结果。如果安全等级需要加密,加密的输出帧为

NwkHeader||AuxiliaryHeader||c,否则,加密的输出帧为NwkHeader||AuxiliaryHeader||Payload||c。

6.如果加密的输出帧长度大于aMaxMACFrameSize(见IEEEStd.802.15.4802[B1]) ,安全处理失败,

本帧不能进一步进行安全处理。

7.第一步获得的输出帧计数器应该加1,并且储存在网络安全材料(security material)描述符的

OutgoingFrameCounter元素中,可由NIB的nwkActiveKeySeqNumber引用;即这个和保护帧使用的密钥相联系的的输出帧计数器值被更新。

8.安全控制域的安全等级子域重写为3位的全零字符串‘000’。

4.2.2.2输入帧的安全处理

如果NWK层收到一个加密帧(由头NwkHeader、辅助头AuxiliaryHeader和负载SecuredPayload 组成),应该进行如下安全处理:

1.从NIB(表4.2)中的nwkSecurityLevel属性中获得安全等级。重写3位的AuxillaryHeader的安

全控制域的安全等级子域字符串为这个值。从辅助头AuxiliaryHeader中决定序列号SequenceNumber,发送地址SenderAddress和接收帧计数器ReceivedFrameCount。如果ReceivedFrameCount值为4字节表示的整数232-1,安全处理会给上层一个状态为“错误帧计数器”

的失败,本帧不能进一步进行安全处理。

2.通过匹配nwkSecurityMaterialSet和NIB的nwkSecurityMaterialSet属性中的任何密钥的序列号,

获得合适的安全材料(security material)(包括密钥和其它属性)。如果对应于SenderAddress的邻居表节的关系域值为0x01(子节点),该域必须设置为0x05(未经验证的子节点)。如果不能获得安全材料(security material),安全处理会指示上层一个状态为“帧安全失败”的失败,本帧不能进一步进行安全处理。

3.如果有一个输入帧计数FrameCount对应于步骤2获得的安全材料(security material)的

SenderAddress,且如果ReceivedFrameCount小于FrameCount,安全处理会指示上层一个状态为“错误帧计数器”的失败,本帧不能进一步进行安全处理。

4.执行CCM*模式加密和认证检查操作(见参考文献附录4.2)

5.返回CCM*操作的结果:

a)如果步骤4调用的CCM*模式输出“无效”,安全处理会指示上层一个状态为“帧安全

失败”的状态,本帧不能进一步进行安全处理。

b)假设m为步骤4的输出结果。如果安全等级需要加密,设置字节字符串

UnsecuredNwkFrame为字符串NwkHeader||m,否则,设置字节字符串

UnsecuredNwkFrame为NwkHeader||Payload1。

6.设置FrameCount 为(ReceivedFrameCount+1),在NIB中保存FrameCount 和SenderAddress。

UnsecuredNwkFrame表示未加密的收到的网络帧,安全处理成功。为了不导致存储帧计数和地址

信息超过可用内存,为NWK层安全所需的输入帧计数器分配的内存用M*N来限制,其中M和

N分别表示nwkSecurityMaterialSet和nwkNeighborTable。

7.如果收到的帧的序列号属于nwkSecurityMaterialSet中的一个新条目,那么

nwkActiveKeySeqNumber应该设置为收到的序列号。

8.如果在NIB中nwkNeighborTable有一个条目,它的扩展地址和SenderAddress匹配,关系域值为

0x05(未经认证的子节点),那么设置该条目的关系域值为0x01(子节点)。

4.3APS层安全

4.3.1AIB属性

AIB包括APS层安全管理所需的属性。在APS PIB中包含的安全相关的属性见表4.5和表4.6。

属性标识符类型范围描述默认值

apsDeviceKeyPairSet 0xaa Key-pair描述

符的集合。见

表4.6 Variable Key-pair 描述符的集合,包

括其他设备共享的主密钥

和连接密钥

/

apsTrustCenterAddress 0xab 设备地址任何有效

的64位地址

信任中心地址/ apsSecurityTimeOutPeriod 0xac 整数0x0000-0xFFFF 一个设备等待一个期

望的安全协议帧的时间周

期(以毫秒为单位)

1000

表4.5 AIB安全属性

属性类型范围描述默认值DeviceAddress 设备地址任何有效的

64位地址

共享该密钥的设备地址/ MasterKey 16字节数据/ 主密钥的实际值/ LinkKey 16字节数据/ 连接密钥的实际值/

OutgoingFrame- Counter 4字节数据0x00000000-

0xFFFFFFFF

使用该连接密钥的输出帧计数0

IncomingFrame-

Counter 4字节数据0x00000000-

0xFFFFFFFF

对应DeviceAddress的输入帧计数

器的值

0 表4.6 key-pair 描述符元素

4.3.2帧安全

当APL层产生的一个帧需要加密,APS子层应该进行安全处理。APS层还负责为应用和ZDO提供密钥建立、密钥传输和设备管理服务。

4.3.2.1输出帧的安全处理

1.使用如下步骤获得安全材料和密钥标识符(Key Identifier)。如果安全材料和密钥标识符不能决定,

那么安全处理失败,本帧不能进一步进行安全处理。

a)如果该帧是一个应用子层数据请求(APSDE-DA TA.request)原语的结果:

i.从NIB 中的nwkActiveKeySeqNumber(见4.2.1)的属性获得动网络密钥、输

出帧计数器,从NIB的nwkSecurityMaterialSet属性中获得序列号。KeyIdentifier

应该设置为‘01’(即激活的网络密钥)。

ii.否则,和输出帧目标地址相关的安全材料应该从AIB的apsDeviceKeyPairSet 属性(见4.3.1小节)中获得。KeyIdentifier应该设置为‘00’(即一个数据密

钥)。

b)如果该帧是一个需要加密的APS命令的结果:

i.第一,尝试从AIB的apsDeviceKeyPairSet属性(见4.3.1小节)中检索和输出

帧目标地址相关的安全材料,除了密钥传输命令,KeyIdentifier都应该设置为

‘00’(即一个数据密钥)。如果是密钥传输命令,当传输的是一个网络密钥,

KeyIdentifier应该设置为‘02’(即密钥传输密钥),当传输一个应用连接密钥、

应用主密钥,或者信任中心主密钥,应该设置为‘03’(即密钥装载密钥)。

ii.如果第一个尝试失败,那么安全材料应该使用nwkActiveKeySeqNumber属性从NIB中获得,来检索激活的网络密钥、输出帧计数器,且序列号从

nwkSecurityMaterialSet属性中获得。KeyIdentifier应该设置为‘01’(即激活的

网络密钥)。

2.如果KeyIdentifier等于01(即激活的网络密钥),APS层应该先证实NWK层是否也申请安全处

理。如果NWK层也申请安全处理,那么APS层就不能申请任何安全处理。

3.提取从步骤1获得的安全材料的输出帧计数器(且如果KeyIdentifier等于01)。如果输出帧计数

器值为4字节代表的整数232-1,或者如果密钥无法获得,安全处理失败,本帧不能进一步进行安全处理。

4.从NIB的nwkSecurityLevel属性中获得安全等级。

5.建立辅助头AuxiliaryHeader。安全控制域应该如下设置:

a)安全等级子域应该设置为步骤4中获得的安全等级。

i.密钥标识符子域应该设置为KeyIdentifier。

ii.扩展的临时子域应该设置为0。

b)帧计数器域应该设置为步骤3中的帧计数器。

c)如果KeyIdentifier是01,密钥序列号域应该存在,且设置为步骤3获得的密钥序列号。

否则密钥序列号域不存在。

6.执行CCM*模式加密和认证检查操作。

7.如果步骤6引用的CCM*模式输出“无效”,安全处理失败,本帧不能进一步进行安全处理。

8.假设c成为步骤6的输出结果。如果安全等级需要加密,加密的输出帧为ApsHeader||

AuxiliaryHeader||c,否则,加密的输出帧为ApsHeader||AuxiliaryHeader||Payload||c。

9.如果MSDU中加密的输出帧的长度比aMaxMACFrameSize大(见IEEEStd.802.15.4802 [B1]),安

全处理会失败,本帧不能进一步进行安全处理。

10.第3步的输出帧计数器应该增加,并且储存到合适位置,和用来保护输出帧的密钥对应。

11.重写安全控制域的安全等级子域为3位的全零字符串‘000’。

4.3.2.2输入帧的安全处理

如果APS层收到一个加密的帧(由一个头ApsHeader,辅助头AuxiliaryHeader和负载SecuredPayload组成),它应按照如下步骤执行安全处理:

1.从辅助帧头AuxiliaryHeader确定序列号SequenceNumber,密钥标识符KeyIdentifier 和接收帧计

数器值ReceivedFrameCounter(见图4.1-4.4)。如果ReceivedFrameCounter是4字节表示的整数232 -1,安全处理会失败,本帧不能进一步进行安全处理。

2.从NIB地址映射表中确定源地址SourceAddress,使用APS帧的源地址作为索引。如果源地址是

不完整的或者不可用的,安全处理会失败,本帧不能进一步进行安全处理。

3.通过以下方式获得合适的安全材料。如果安全材料不能获得,安全处理会失败,本帧不能进一步

进行安全处理。

a)如果KeyIdentifier是‘00’(即一个数据密钥),和输入帧SourceAddress相关的安全材料

应该从AIB的apsDeviceKeyPairSet属性中获得。

b)如果KeyIdentifier是‘01’(即一个网络密钥),安全材料应该通过匹配SequenceNumber

和NIB的nwkSecurityMaterialSet属性的任一密钥的序列号获得。

c)如果KeyIdentifier是‘02’(即一个密钥传输密钥),和输入帧SourceAddress相关的安全

材料应该从AIB的apsDeviceKeyPairSet属性获得;

d)如果KeyIdentifier是‘03’(即一个密钥装载密钥),和输入帧SourceAddress相关的安全

材料应该从AIB的apsDeviceKeyPairSet属性获得。

4.如果有一个输入的帧计数FrameCount和从第3步中获得的安全材料SourceAddress相关联,并且

如果ReceivedFrameCount小于FrameCount,安全处理会失败,本帧不能进一步进行安全处理。

5.确定安全等级SecLevel如下。如果ApsHeader帧控制域的帧类型子域指示了一个APS数据帧,

那么SecLevel应该设置为NIB的nwkSecurityLevel属性。否则,SecLevel应该设置为7(ENC-MIC-128)。AuxillaryHeader中的安全控制域的安全等级子域重设为SecLevel。

6.执行CCM*模式加密和认证检查操作。

7.返回CCM*操作的结果:

a)如果步骤6调用的CCM*模式输出“无效”,安全处理会失败,本帧不能进一步进行安

全处理。

b)让m成为步骤6的输出结果。如果安全等级需要加密,设置字节字符串

UnsecuredApsFrame为ApsHeader||m。否则,设置字节字符串UnsecuredApsFrame为

ApsHeader||Payload。

8.设置FrameCount为(ReceivedFrameCount+1),在第3步获得的合适安全材料中保存帧计数

(FrameCount)和源地址(SourceAddress)。如果存储帧计数和地址信息超过这类信息分配的内存空间,且NIB中nwkAllFresh属性设置为TRUE,那么安全处理会失败,本帧不能进一步进行

安全处理。

9. 如果收到的帧的序列号是nwkSecurityMaterialSet 中的一个新条目,那么nwkActiveKeySeqNumber

应该设置为收到的序列号。 4.3.3

密钥建立

APS 子层的密钥建立服务提供了一个ZigBee 设备可以得到和另一个ZigBee 设备共享的密钥(连接密钥)的机制。密钥建立涉及两个实体,一个发起设备(Initiator Device )和一个响应设备(Responder Device),这必须先通过信任认证步骤。

下图为两个设备之间成功建立密钥服务的序列时序图

图4.5 密钥建立序列时序图

如果密钥建立成功,发起设备和响应设备的AIB 应该用最新的连接密钥更新,发起者应该能和响应者加密通信。如果密钥建立不成功,那么AIB 不能改变。 4.3.3.1

SKKE 协议

发起者和响应者的APSME 执行SKKE 协议,发起设备和响应设备的共享密钥应该是主密钥。发起设备负责发送SKKE-1帧和SKKE-3帧,响应设备负责发送SKKE-2帧和SKKE-4帧。SKKE 帧格式如下图所示,

a

b c d

a 发起设备启动一个密钥建立协议

b 响应者从发起者接收到一个原始的密钥建立信息,APSME 将该原语传给ZDO

c ZDO 决定接受还是拒绝和给定的发起者建立密钥的请求,将结果传给APSME 。如果是接受,APSME 将尝试执行密钥建立协议,如果是拒绝,响应设备的APSME 将终止

d

在密钥建立协议完成之后,响应设备和发起设备的APSME 都应该发出这个原语给ZDO ,告知密钥建立的最终状态(成功或失败)

图4.6 SKKE帧格式

在密钥建立期间,如果发起者或响应者的设备检测到表4.7列出的任何错误条件,该密钥建立过程方案将会中止,本地的APSME将会发出密钥建立确认(APSME-ESTABLISH-KEY.confirm)原语,原语的Status 参数设置为表4.7所指示。如果没有错误发生,那么发起者和响应者将得到的密钥作为他们最新的共享密钥。发起者或响应者都会更新或者添加这一连接密钥到它们的AIB中,同时设置相应的输入和输出帧计数为零,发出密钥建立确认(APSME-ESTABLISH-KEY.confirm)原语,设置原语的Status参数为SUCCESS。

Status Description Status Code Value

没有错误SUCCESS 0x00

密钥建立原语中存在无效的参数INV ALID_PARAMETER 0x01

没有可用的主密钥NO_MASTER_KEY 0x02

质疑是无效的(Challenge is invalid)INV ALID_CHALLENGE 0x03

SKG是无效的INV ALID_SKG 0x04

MAC转换输出无效INV ALID_MAC 0x05

标记符转换输出无效INV ALID_KEY 0x06

发起者和响应者等待信息超时TIMEOUT 0x07

发起者或响应者收到的SKKE帧的顺序错误BAD_FRAME 0x08

表4.7 SKKE 协议错误条件和状态代码的映射表

4.3.3.1.1触发和发送初始的SKKE-1帧

SKKE协议从发起设备发送一个SKKE-1帧开始。如果密钥建立请求(APSME-ESTABLISH-KEY.request)原语的UseParent参数是FALSE,发起设备通过发送一个SKKE-1帧到响应设备开始协议。否则,发起设备会发送这个SKKE-1帧到响应者设备的父节点开始协议(见APSME-ESTABLISH-KEY.request 原语的ResponderParentAddress参数指明)。SK KE-1帧在发送中使用网路层数据请求(NLDE-DATA.request)原语,NWK 层安全设置为默认的NWK层安全等级。4.3.3.1.2接收SKKE-1帧处理

如果SKKE-1帧的响应者地址域不等于本地设备地址,APSME将会执行如下步骤:

1.如果响应者地址域给定的设备不是本地设备的子设备,SKKE-1帧应该被丢弃。

2.否则,本地设备的APSME将会使用网络层数据请求(NLDE-DATA.request)原语发送SKKE-1

帧到响应设备:

●DestAddr参数设置为16位地址,和SKKE-1帧的响应者地址域的64位地址对应;

●DiscoverRoute参数设置为0x01;

●SecurityEnable参数设置为FALSE。

否则,APSME应该执行如下步骤:

如果设备没有一个主密钥对应发起者地址域:

1.SKKE-1帧应该被丢弃,且APSME-ESTABLISH-KEY.confirm原语发送时Status参数设置为

NO_MASTER_KEY(见表4.7)。APSME应该停止处理这个SKKE协议。

2.否则,APSME会发出一个原语密钥建立指示(APSME-ESTABLISH-KEY.Indication),原语

中InitiatorAddress参数设置为SKKE-1帧的发起者地址域。

3.在密钥建立指示(APSME-ESTABLISH-KEY.indication)原语发出之后,在接收到相应的原

语(APSME-ESTABLISH-KEY.response)时,APSME将评估接收的APSME-ESTABLISH- KEY.response原语的InitiatorAddress和Accept参数。如果InitiatorAddress参数设置为SKKE-1帧的发起者地址,Accept参数设置为FALSE,APSME将会终止SKKE协议并且丢弃SKKE-1帧。

否则:

1.设备将按图4-6的格式构建一个SKKE-2帧。如果SKKE-1帧的源指示同样的设备作为

SKKE-1帧的发起者地址域。设备将会直接发送SKKE-2帧到发起设备,使用网络层数据请求(NLDE-DATA.request)原语,DestAddr参数设置为SKKE-1帧的源地址,DiscoverRoute 参数设置为0x01,SecurityEnable参数设置为TRUE。否则,设备会发送SKKE-2帧到父设备,使用NLDE-DA TA.request原语,DiscoverRoute参数设置为0x01,SecurityEnable参数设置为FALSE。

4.3.3.1.3接收SKKE-2帧处理

如果SKKE-2帧的响应者地址并不等于本地设备地址,APSME应执行下列步骤:

1.如果响应者地址域给出的设备不是本地设备的子设备,SKKE-2帧应该被丢弃。

2.否则,设备会发送SKKE-2帧到发起设备,使用NLDE-DATA.request原语,NWK层安全设

置为默认等级。

否则,本设备将按图4.6构建一个SKKE-3帧。如果SKKE-2帧的源地址和SKKE-2帧的响应者地址域一样,该设备应将此SKKE-3帧直接发送到响应设备。否则,该设备应向响应设备的父节点发出SKKE-3帧。发出SKKE-3帧使用网络层数据请求(NLDE-DA TA.request)原语,NWK层安全设置为默认的NWK层安全等级。

4.3.3.1.4接收SKKE-3帧处理

如果SKKE-3帧的响应者地址并不等于本地设备地址,APSME应执行下列步骤:

1.如果SKKE-3帧的响应者地址域给出的设备不等于本地设备地址,APSME执行以下步

骤:

i.如果响应者地址域指定的设备不是本地设备的子节点,SKKE-3帧被丢弃。

ii.否则,设备会发送SKKE-3帧到响应设备,使用网络层数据请求(NLDE-DA TA.request)原语,NWK层安全禁用;

iii.否则,设备会处理SKKE-3数据域,如果协议是错误的,设备应发出密钥建立确认(APSME-ESTABLISH-KEY.confirm)原语,原语中地址参数设置为发起

者地址,状态参数设置为相应的值;

2.如果从设备的角度来看协议是成功的,该设备应构建一个SKKE-4帧。如果SKKE-3帧

的源地址和SKKE-3帧的发起者地址域一样,该设备应将此SKKE-4帧直接发送到发起

设备,使用网络层请求数据(NLDE-DA TA.request)原语,NWK层安全设置为默认级

别。否则,该设备应发出SKKE-4帧给响应设备的父节点,使用网路层请求数据

(NLDE-DATA.request)原语,NWK层安全禁用。最后,该设备应发出密钥建立确认

(APSME-ESTABLISH-KEY .confirm )原语,地址参数设置为发起者地址,Status 参数设置为成功。

4.3.3.1.5

接收SKKE-4帧处理

如果SKKE-4帧的发起者地址并不等于本地设备地址,APSME 应执行下列步骤:

1. 如果响应者地址域给出的设备不是本地设备的子设备,SKKE-4帧应该被丢弃。

2. 否则,本地设备的APSME 会发送SKKE-4帧到发起设备,使用NLDE-DA TA.request 原

语,NWK 层安全设置为默认级别。

否则,APSME 会处理SKKE-4帧,设备应发出密钥建立确认(APSME-ESTABLISH-KEY.confirm )原语,地址参数设置为响应者地址,状态参数适当地设置。 4.3.4

密钥传输

密钥传输服务提供了加密和无加密方式传送一个密钥到另一个设备或其它设备。加密的密钥传输命令提供了一种方式来传输来自一个密钥源(例如,信任中心)的一个主密钥、连接密钥,或网络密钥到其它设备。无加密的密钥传输命令提供了一种方式在一个设备上加载初始密钥。这个命令不加密保护正在加载的密钥。在这种情况下,传输的密钥的安全可用非加密方式实现;例如,通过保证秘密性和真实性的频带外信道传输命令。

图4.7 密钥传输序列时序图

4.3.4.1 发起设备密钥传输命令处理

密钥传输(APSME-TRANSPORT-KEY .request )原语中的参数描述如下表所示, 参数名称 类型

有效范围 描述

DestAddress

De vice ad dress

任何有效的64位地址

目标设备的扩展64位地址

a

b

KeyType Integer 0x00-0x06 密钥类型,详见4.1.2小节

TransportKeyData Variable 可变的密钥传输相关的密钥标识和有效参数。参数类型取

决于KeyType。

KeyType = 0x00,0x04,参数类型见图4.9

KeyType = 0x01,0x05,参数类型见图4-10

KeyType = 0x02,0x03,参数类型见图4-11

表4.8密钥传输的参数

发起设备的APSME在收到密钥传输原语后,创建一个密钥传输命令数据包,格式如下图所示

图4.8 密钥传输命令帧格式

如果KeyType参数是0x00或0x04(即信任中心主密钥或连接密钥),密钥传输命令的密钥描述符域(key descriptor)的帧格式如下图所示,应设置如下:

●密钥(Key)子域应设置为TransportKeyData参数的Key子参数;

●目标地址(Destination address)子域应设置为DestinationAddress参数;

●源地址(Source address)子域应设置为本地设备地址。

图4-9 密钥传输命令的信任中心主密钥描述符

此命令帧应该按照4.3.2.1小节的规定安全保护。然后,如果安全处理成功,通过发出网络层数据请求(NLDE-DATA.request)原语发送到指定的设备。

如果目标地址是全零,加密后的命令帧就被单播给设备任何子节点以及所有的rx-off-when-idle的子节点。这些单播一直重复直到成功,或随后收到一个KeyType参数(见表4-1)等于0x01或0x05的APSME-TRANSPORT-KEY.request原语,或超过建议的最大轮询间隔的两倍。

如果KeyType参数是0x01或0x05(即一个网络密钥),传输密钥命令的密钥描述符(key descriptor field)的帧格式如下所示,应设置如下:

●密钥(key)子域应设置为TransportKeyData参数的Key子参数;

●序列号(Sequene number)子域应设置为TransportKeyData参数的KeySeqNumber子参数;

●目标地址(Destination address)子域应设置为DestinationAddress参数;

●源地址(Source address)子域应设置为本地设备地址。

图4.10 密钥传输的网络密钥的描述符域

该命令帧应该按照 4.3.2.1小节的规定安全保护,如果安全处理成功,那么通过发出NLDE-DATA.request原语发送到TransportKeyData(如果TransportKeyData参数的UseParent子参数是TRUE)参数或者DestinationAddress参数(如果TransportKeyData参数的UseParent子参数是FALSE)的ParentAddress子参数指定的设备。

如果TransportKeyData参数的UseParent子参数为FALSE,且nwkNeighborTable中有一个条目,它的扩展地址和SenderAddress参数匹配,且关系域值为0x05(未经验证的子节点),那么该节的关系域应设置为值0x01(子节点)。

如果KeyType参数是0x02或0x03(即应用程序主密钥或者连接密钥),传输密钥命令的密钥描述域应设置如下:

●密钥(key)子域应设置为TransportKeyData参数的Key子参数;

●同伴地址(Partner address)子域应设置为TransportKeyData参数的PartnerAddress子参数;

●发起者子域应该设置为1(如果TransportKeyData参数的Initiator子参数是TRUE)或者

0(如果TransportKeyData参数的Initiator子参数是FALSE)。

图4.11 密钥传输的连接密钥帧格式

该命令帧应该按照4.3.2.1小节的规定安全保护,如果安全处理成功,那么通过发出网络层数据请求(NLDE-DATA.request)原语发送到指定的设备。

4.3.4.2响应设备接收密钥传输命令

响应设备收到一个加密的传输密钥命令时,APSME检查密钥类型子域。如果密钥类型子域设置为0x02、0x03、0x04或0x05(应用程序连接密钥或主密钥、信任中心连接密钥或高安全网络密钥),且命令不是使用一个信任中心连接密钥加密的,命令就被丢弃。如果密钥类型域设置为0x01(即标准网络密钥),且命令不是使用一个信任中心连接密钥或激活的网络密钥加密的,命令就被丢弃。

如果密钥类型域设置为0x02或0x03(即应用程序连接密钥或主密钥),APSME就发出密钥传输指示(APSME-TRANSPORT-KEY.indication)原语,原语的SrcAddress参数设置为密钥传输命令的源地址。

如果密钥类型域是0x00、0x01、0x04或0x05(信任中心主密钥或者网络密钥),目标地址域等于本地设备地址,或如果密钥类型域设置为0x01(即标准网络密钥),目标域是全零字符串,且当前网络密钥类型等于密钥类型域的值,APSME会发出密钥传输指示(APSME-TRANSPORT-KEY.indication)原语,SrcAddress参数设置为密钥传输命令的源地址域,KeyType参数设置为密钥类型域。TransportKeyData参数设置如下:Key子参数应定为密钥域,如果是网络密钥(即密钥类型域设置为0x01或0x05),KeySeqNumber子参数设置为序列号域。

如果密钥类型域是0x00或0x01(即信任中心主密钥或者连接密钥或标准网络密钥),目标地址域不等于本地设备地址,APSME会发送命令到目标地址域指示的地址,发出NLDE-DATA.request原语,安全禁用。

如果密钥类型域设置为0x01(即标准网络密钥)且NIB的nwkNeighborTable属性中的条目的扩展地址匹配目标地址域的值,且关系域值为0x05(未经验证的子节点),那么该条目的关系域应设置为值0x01(子节点)。

收到密钥类型域设置为0x01的一个加密传输密钥命令时,如果目标域是全零,且源地址域设置为apsTrustCenterAddress的值,路由器就尝试单播这个传输密钥命令给任何子节点和所有

rx-off-when-idle 的子节点。路由器继续这样做直到成功,或直到随后收到密钥类型域设置为0x01或0x05的一个传输密钥命令,或直到超过两倍于建议的最大轮询间隔的周期。

在接收到未加密的密钥传输命令之后,APSME 会检查密钥类型子域,如果密钥类型域设置为0x00(即信任中心主密钥),目标地址域等于本地设备地址,设备没有信任中心主密钥和地址(即AIB 中的apsTrustCenterAddress ),那么APSME 会发出密钥传输指示(APSME-TRANSPORT-KEY.indication )原语。如果密钥类型域设置为0x01或0x05(即网络密钥),目标地址域等于本地设备地址,且设备没有网络密钥,那么APSME 会发出密钥传输指示(APSME-TRANSPORT-KEY.indication )原语。如果密钥类型域设置为0x04(即信任中心连接密钥),目标地址域等于本地地址,且设备没有信任中心连接密钥,那么APSME 发出密钥传输指示(APSME-TRANSPORT-KEY.indication )原语。如果发出了密钥传输指示(APSME-TRANSPORT-KEY .indication )原语,SrcAddress 参数设置为密钥传输命令的源地址域,KeyType 参数设置为密钥类型域。TransportKeyData 参数设置如下:Key 子参数应设置为密钥域,如果是网络密钥(即密钥类型域设置0x01或0x05),设置为序列号域设置为KeySeqNumber 子参数。 4.3.5

更新设备

更新设备的服务为一个设备(例如,一个路由器)提供了一种安全方式通知第二个设备(例如,一个信任中心),第三个设备已经改变了状态,必须更新(例如,该设备加入或离开了网络)。这一机制的信任中心维护一个准确的名单,列出活跃的网络设备。

图4.12 更新设备序列时序图

4.3.6 移除设备

移除设备服务为一个设备(例如,一个信任中心)提供了一个安全的方式,可以通知其它设备(例如一个路由器),它的一个子节点应从网络中移除。

a

b

图4.13 移除设备序列时序图

4.3.7 请求密钥

请求密钥服务为一个设备提供了一种安全的方式,请求来自于另一个设备(例如它的信任中心)的激活的网络密钥,或端到端应用主密钥。

图4.14请求密钥序列时序图

4.3.8 更换密钥

更换密钥服务为一个设备(例如,一个信任中心)提供了一个安全的方式,通知另一个设备它应

a

b

a

b

该更换到一个不同的激活的网络密钥。

图4.15更新密钥序列时序图

4.3.9 实体认证

APSME 提供允许两个设备之间互相认证的服务,基于一个预先共享的密钥来认证数据的发起者。

图4.16 实体认证序列时序图

a

b c d

a 发起者需要进行实体认证时,发出请求

b 当响应设备收到了来自于发起者的开始实体认证的请求,APSME 将其传给ZDO 。ZDO 决定是否参加该实体认证,它将是否参加认证的结果在第三步发给APSME 。

c 响应设备的ZDO 将是否参加实体的结果(接收

or 拒绝)通过该原语发出。发起设备在收到后,现响应设备接收实体认证,将参加相互实体认证,如果发现响应设备拒绝,实体认证将结束。 d

在实体认证结束后,APSME 将发送该原语给ZDO 告知认证的结果(成功or 失败)

a

b

发起者和响应者的APSME执行互相实体认证机制(详见参考文件B.8小节)。

4.4功能描述

4.4.1信任中心应用程序

信任中心应用在ZigBee网络设备中被设备信任的一个设备上运行,为了网络和端到端应用配置管理来分发密钥。信任中心应配置为标准或高级别安全模式运行,通过直接发送连接密钥(即密钥代管能力),或发送主密钥,来帮助建立端到端应用程序密钥。这些密钥应该随机产生。

信任中心工作在两种模式高级别安全模式和标准安全模式。

信任中心的高级别安全模式是专为高安全性的商业应用设计的。在这种模式下,信任中心应保持一份设备、主密钥、连接密钥和网络密钥的清单,它需要在控制和执行网络密钥更新和网络准入策略中使用。在此模式下,NIB中的nwkAllFresh属性应设置为TRUE,信任中心的网络中设备数量增多,所需的内存也增多,它还使用SKKE和实体认证执行密钥建立。

信任中心的标准级别安全模式是专为低安全性的住宅应用设计的。在这种模式下,信任中心应保持一份网络中所有设备、主密钥、连接密钥和网络密钥的清单;但是它应该维护一个标准的网络密钥,和网络准入的控制策略。在本模式下,信任中心的网络设备数量增多,所需的内存不增多。

4.4.2加入一个安全网络

加入一个安全网络的序列图如下所示,

ZigBee重要结构及表解释

ZigBee重要结构及表解释 ZigBee 2010-06-13 10:31:26 阅读103 评论0 字号:大中小订阅各表中的元素结构: 1、组表的元素结构aps_Group_t; typedef struct { uint16 ID; // 组ID uint8 name[APS_GROUP_NAME_LEN]; // 组名称 } aps_Group_t; 2、组列表的元素结构 typedef struct apsGroupItem { struct apsGroupItem *next; //指向下一个组表条目 uint8 endpoint; //此终端接收发送给组的信息 aps_Group_t group; //组ID和组名 } apsGroupItem_t; 3、路由表的元素结构rtgEntry_t; typedef struct { uint16 dstAddress; //目标地址 uint16 nextHopAddress; //单跳地址 byte expiryTime; //有效时间 byte status; //状态 } rtgEntry_t; 4、绑定表的元素结构BindingEntry_t; typedef struct

{ uint8 srcEP; // 没有源地址自从源地址一直是本地设备uint8 dstGroupMode; // 目标地址类型; 0 –正常地址, 1 –组地址 uint16 dstIdx; //在两种模式中(组或非组) 保存到NV 和RAM // dstGroupMode = 0 - Address Manager index // dstGroupMode = 1 –组地址 uint8 dstEP; //目标地址 uint8 numClusterIds; //簇个数 uint16 clusterIdList[MAX_BINDING_CLUSTER_IDS]; // Don't use MAX_BINDING_CLUSTERS_ID when // using the clusterIdList field. Use // gMAX_BINDING_CLUSTER_IDS } BindingEntry_t; 5、相邻表的元素结构neighborEntry_t; typedef struct { uint16 neighborAddress; //相邻地址 uint16 panId; //所属的PAN网络ID linkInfo_t linkInfo; //连接信息(包括发送/接收和安全帧计数) } neighborEntry_t; 6、路由发现表的元素结构rtDiscEntry_t; typedef struct { byte rreqId; //接收请求ID

ZigBee 协议架构

根据应用和市场需要定义了ZigBee 协议的分层架构,其协议的体系结构如图1 所示,其中物理层(physical layer,PHY)和媒介访问控制层(medium access control sub-layer,MAC)是由IEEE802.15.4-2003 标准定义的,在这个底层协议的基础上ZigBee 联盟定义了网络层(network layer,PHY)和应用层(application layer,APL)架构. 图1 zigbee协议栈体系结构 物理层规范 物理层定义了它与MAC 层之间的两个接口:数据服务接口PD-SAP 和管理服务接口PLME-SAP,其中PD-SAP 接口还为物理层提供了相应的数据服务,负责从无线物理信道上收发数据,而PLME-SAP 接口同时为物理层提供相应的管理服务,用于维护一个由物理层相关数据组成的数据库。物理层负责数据的调制、发送和接收、空闲信道评估(clear channel assessment,CCA)信道能量的监测(energy detect,ED)和链接质量指示(link quality indication,LQI)等。物理层帧结构由同步头、物理层帧头和物理层有效载荷三部分组成,如表1 所示。

同步头又包括32bit 的前同步码和8bit 的帧定界符,前同步码用来为数据收发提供码元或数据符号的同步;帧界定符用来标识同步域的结束及数据的开始。物理层帧头包括7bit 的帧长度和1bit 的预留位,帧长度定义了物理层净荷的字节数。物理层有效载荷就是MAC层的帧内容。 表一物理层帧格式 媒体接入控制层规范 MAC 层定义了它与网络层之间的接口,包括提供给网络层的数据服务接口MLDE-SAP 和管理服务接口MLME-SAP,同时提供了MAC 层数据服务和MAC 层管理服务。MAC层数据服务主要实现数据帧的传输;MAC 层管理服务主要负责媒介访问控制、差错控制等。 MAC 层主要功能包括以下几个方面: (1)ZigBee 协调器产生网络信标 (2)设备与信标同步 (3)支持节点加入或着退出操作 (4)信道接入方式采用免冲突载波检测多路访问(CSMA-CA)机制 (5)建立并维护保护时隙机制 (6)为设备提供安全支持 MAC 帧格式由三个基本部分组成:MAC 帧头、MAC 帧载荷和MAC 帧尾。不同类型的MAC 帧,其帧头和帧尾都是一样的,只是MAC 帧载荷有差别,通用MAC 帧格式如表2所示。 表二通用MAC帧格式 网络层规范 网络层定义了它与应用层之间的接口,包括提供给应用层的数据服务接口NLDE-SAP和管理服务接口NLME-SAP , 同时提供了网络层数据服务和网络层管理服务。网络层主要负责拓扑结构的建立和网络的维护,具体的功能如下:(1)初始化网络,即建立一个新的包含协调器、路由器和终端设备的网络(2)设备连接和断开时所采用的机制 (3)对一跳邻居节点的发现和相关节点信息的存储 (4)ZigBee 协调器和路由器为新加入节点分配短地址

Zigbee技术主流芯片比较 2概况

Zigbee技术主流芯片调研 1、Zigbee芯片调研 当今市场已有大量集成Zigbee协议和射频电路的芯片。以下是市场上主流的生成Zigbee的公司及其生产的典型Zigbee芯片。 公司TI FREESCALE ATMEL Nordic 芯片CC2530 MC1321 AT86RF230 nRF24E1/nRF9E5 MCU内核8051 HCS08 无(通过SPI接口由外 接MCU连接) 8051 通过在淘宝上的调查,TI公司的CC2530和FREESCALE的MC1321用户量比较大,有大量的公司提供基于这两款芯片的Zigbee模块,使用这些模块可以减少大量的硬件调试工作,而较容易的实现我们所需的传输功能。以下就这两类主流芯片进行详细介绍。 1.1 CC2530调研 CC2530是市场最主流的Zigbee芯片,TI公司推出的ZIGBEE网络处理器,将复杂的ZIGBEE网络协议栈,处理成了简单的用户接口命令,用户只要使用任何简单的单片机(微控制器),就可以容易的实现对ZIGBEE网络的控制;TI推出这个芯片的目的,就是希望ZIGBEE容易被使用。CC2530是TI公司推出的最新一代ZigBee标准芯片,适用于2.4GHz、IEEE802.15.4、ZigBee和 RF4CE应用。 CC2530包括了极好性能的一流RF收发器,工业标准增强性8051MCU,系统中可编程的闪存,8KB RAM以及许多其它功能强大的特性,可广泛应用在2.4-GHzIEEE802.15.4系统,RF4CE遥控制系统,ZigBee系统,家庭/建筑物自动化,照明系统,工业控制和监视,低功耗无线传感器网络,消费类电子和卫生保健。主要参数如下:

物联网简介及基于ZigBee的无线传感器网络

物联网简介及基于ZigBee的无线传感器网络 摘要 物联网,是继计算机、互联网与移动通信网之后的又一次信息产业浪潮,是一个全新的技术领域,给IT和通信带来了广阔的新市场。积极发展物联网技术,尽快扩展其应用领域,尽快使其投入到生产、生活中去,将具有重要意义。 ZigBee无线通信技术是一种新兴的短距离无线通信技术,具有低功耗、低速率、低时延等特性,具有强大的组网能力与超大的网络容量,可以广泛应用在消费电子品、家居与楼宇自动化、工业控制、医疗设备等领域。由于其独有的特性,ZigBee无线技术也是无线传感器网络的首选技术,具有广阔的发展前景。ZigBee协议标准采用开放系统接口(051)分层结构,其中物理层和媒体接入层由IEEE802.15.4工作小组制定,而网络层,安全层和应用框架层由ZigBee联盟制定。 本文首先从概念、技术架构、关键技术和应用领域介绍了物联网的相关知识,然后着重介绍了基于ZigBee的无线传感器网络,其中包括无线传感网简介、ZigBee技术概述和基于ZigBee的无线组网技术。 关键词:物联网;ZigBee;无线传感器网络

物联网简介 物联网概念 “物联网概念”是在“互联网概念”的基础上,将其用户端延伸和扩展到任何物品与物品之间,进行信息交换和通信的一种网络概念。其定义是:通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网相连接,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络概念。 最简洁明了的定义:物联网(Internet of Things)是一个基于互联网、传统电信网等信息承载体,让所有能够被独立寻址的普通物理对象实现互联互通的网络。它具有普通对象设备化、自治终端互联化和普适服务智能化3个重要特征。 技术架构 从技术架构上来看,物联网一般可分为三层:感知层、网络层和应用层。 感知层是物联网的皮肤和五官-用于识别物体,采集信息。感知层包括二维码标签和识读器、RFID标签和读写器、摄像头、GPS、传感器、M2M终端、传感器网关等,主要功能是识别物体、采集信息,与人体结构中皮肤和五官的作用类似。 感知层解决的是人类世界和物理世界的数据获取问题。它首先通过传感器、数码相机等设备,采集外部物理世界的数据,然后通过RFID、条码、工业现场总线、蓝牙、红外等短距离传输技术传递数据。感知层所需要的关键技术包括检测技术、短距离无线通信技术等。 网络层是物联网的神经中枢和大脑-用于传递信息和处理信息。网络层包括通信网与互联网的融合网络、网络管理中心、信息中心和智能处理中心等。网络层将感知层获取的信息进行传递和处理,类似于人体结构中的神经中枢和大脑。 网络层解决的是传输和预处理感知层所获得数据的问题。这些数据可以通过移动通信网、互联网、企业内部网、各类专网、小型局域网等进行传输。特别是在三网融合后,有线电视网也能承担物联网网络层的功能,有利于物联网的加快推进。网络层所需要的关键技术包括长距离有线和无线通信技术、网络技术等。 应用层是物联网的"社会分工"-结合行业需求,实现广泛智能化。应用层是物

ZigBEE RF4CE规范基本概念及配对详细讲解

一.节点的安装初始化 1.1建立网络的过程 (1)目标节点: 首先,扫描信道,对各个信道进行能量检测,选择可允许能量水平的信道进行操作。 然后,发送执行活动的扫描操作,识别其他在工作在所选信道上的属于其他PAN网络的identifiers,允许一个统一的PAN identifier接入它的网络。 最后,目标节点运行常规功能。 (2)控制节点: 接入网络之后,运行常规功能。 二.网络帧结构 Frame control:控制信息 Frame counter:技术,防止重复和延时攻击 Profile identifier:应用帧的传输格式 Vendor identifier:供应商标识符,允许商家进行扩展 Frame payload:传输的应用层数据 Message integrity code:进行认证(安全) 三.传输选项 四.发现(Discovery) 发现服务必须是在非节能模式下才能进行。节点通过执行发现服务,来寻找能够进行配对的节点;发现服务会在一个固定的期间内在三个PAN网络中重复的进行,直到收到所有的应答。 在此期间,设备之间会交换如下信息: Node capabilities:节点的类型(目标节点或控制节点),节点的供电类型,是否支持

安全性。 Vendor information:ZigBee RF4CE提供一个Vendor identifier或者vender string 来制定一个特定的供应商标识。 Application information:用户自定义一个字符串用来描述节点的应用功能(例如Lounge TV),一个设备类型列表可以制定哪些类型的设备室被支持的(例如一个综合性设备可能同时支持TV和DVD的功能),profile identifier列表制定该节点支持哪些类型的profiles。 Requested device type:discovery期间可以被请求的设备类型(比如一个多功能遥控器可能寻找TV的功能)。 五、频率捷变 (1)目标节点可以根据3个信道的变化,更换信道。 (2)控制节点会记录目标节点的信道,当目标节点信道发生改变时,控制节点会尝试从其他信道发送给目标节点,直到目标节点发送确认信息;之后,控制节点会记录上新的信道。 六、配对 在发现期间,当节点确定在它的通信范围有其他能够提供稳定服务的节点时,可以通过建立配对从而进行通信。在RC网络中在存在配对的发送端和接收端之间只能直接通信。 配对连接可以建立在应用层的要求上,通过交换类似于discovery期间交换的消息。目标节点可以选择是否接受配对并发送请求配对信息给源节点。 配对成功后,源节点和目标节点会在它们各自的配对表中存储配对链接。这个使得源节点可以和目标节点通信,目标节点也可以和源节点通信。在配对表中的实体包含网络层传输信息给目标节点的所有信息。这消除了寻址的负担,要实现和相应设备的通信,应用层可以简单的提供一个链接配对表的index。 配对表中的每个实体包含的信息如下: Pairing reference Source network address Destination logical channel Destination IEEE address Destination PAN identifier Destination network address Recipient nod capabilities Recipient frame counter Secutity link key

Zigbee协议栈原理基础

1Zigbee协议栈相关概念 1.1近距离通信技术比较: 近距离无线通信技术有wifi、蓝牙、红外、zigbee,在无线传感网络中需求的网络通信恰是近距离需求的,故,四者均可用做无线传感网络的通信技术。而,其中(1)红外(infrared):能够包含的信息过少;频率低波衍射性不好只能视距通信;要求位置固定;点对点传输无法组网。(2)蓝牙(bluetooth):可移动,手机支持;通信距离10m;芯片价格贵;高功耗(3)wifi:高带宽;覆盖半径100m;高功耗;不能自组网;(4)zigbee:价格便宜;低功耗;自组网规模大。?????WSN中zigbee通信技术是最佳方案,但它连接公网需要有专门的网关转换→进一步学习stm32。 1.2协议栈 协议栈是网络中各层协议的总和,其形象的反映了一个网络中文件传输的过程:由上层协议到底层协议,再由底层协议到上层协议。 1.2.1Zigbee协议规范与zigbee协议栈 Zigbee各层协议中物理层(phy)、介质控制层(mac)规范由IEEE802.15.4规定,网络层(NWK)、应用层(apl)规范由zigbee联盟推出。Zigbee联盟推出的整套zigbee规范:2005年第一版ZigBeeSpecificationV1.0,zigbee2006,zigbee2007、zigbeepro zigbee协议栈:很多公司都有自主研发的协议栈,如TI公司的:RemoTI,Z-Stack,SimpliciTI、freakz、msstatePAN 等。 1.2.2z-stack协议栈与zigbee协议栈 z-stack协议栈与zigbee协议栈的关系:z-stack是zigbee协议栈的一种具体实现,或者说是TI公司读懂了zigbee 协议栈,自己用C语言编写了一个软件—---z-stack,是由全球几千名工程师共同开发的。ZStack-CC2530-2.3.1-1.4.0软件可与TI的SmartRF05平台协同工作,该平台包括MSP430超低功耗微控制器(MCU)、CC2520RF收发器以及CC2591距离扩展器,通信连接距离可达数公里。 Z-Stack中的很多关键的代码是以库文件的形式给出来,也就是我们只能用它们,而看不到它们的具体的实现。其中核心部分的代码都是编译好的,以库文件的形式给出的,比如安全模块,路由模块,和Mesh自组网模块。与z-stack 相比msstatePAN、freakz协议栈都是全部真正的开源的,它们的所有源代码我们都可以看到。但是由于它们没有大的商业公司的支持,开发升级方面,性能方面和z-stack相比差距很大,并没有实现商业应用,只是作为学术研究而已。 还可以配备TI的一个标准兼容或专有的网络协议栈(RemoTI,Z-Stack,或SimpliciTI)来简化开发,当网络节点要求不多在30个以内,通信距离500m-1000m时用simpliciti。 1.2.3IEEE802.15.4标准概述 IEEE802.15.4是一个低速率无线个人局域网(LowRateWirelessPersonalAreaNetworks,LR-WPAN)标准。定义了物理层(PHY)和介质访问控制层(MAC)。 LR-WPAN网络具有如下特点: ◆实现250kb/s,40kb/s,20kb/s三种传输速率。 ◆支持星型或者点对点两种网络拓扑结构。 ◆具有16位短地址或者64位扩展地址。 ◆支持冲突避免载波多路侦听技术(carriersensemultipleaccesswithcollisionavoidance,CSMA/CA)。(mac层) ◆用于可靠传输的全应答协议。(RTS-CTS) ◆低功耗。 ◆能量检测(EnergyDetection,ED)。 ◆链路质量指示(LinkQualityIndication,LQI)。 ◆在2.45GHz频带内定义了16个通道;在915MHz频带内定义了10个通道;在868MHz频带内定义了1个通道。 为了使供应商能够提供最低可能功耗的设备,IEEE(InstituteofElectricalandElectronicsEngineers,电气及电子工程师学会)定义了两种不同类型的设备:一种是完整功能设备(full.functionaldevice,FFD),另一种是简化功能设备

基于ZigBee技术的智能家居系统

一、智能家居的背景 从宏观上来讲,事物的每个发展阶段都是当时从业人员认识水平、技术水平、市场认知、原材料成本等几个原因共同作用的结果。每个阶段都会局限于当时的技术水平、市场接受程度等,都会有其无法突破的瓶颈和困难。即便智能家居系统在中国已发展20多年,且经过这么多年的发展,产品、技术已日趋成熟、稳定,但每项技术并不一定都完美无瑕。只要产品或技术处于高速发展中,它必然需要不断地去解决一些技术上或者产品上的问题。智能家居产品未来会还向节能环保,舒适度方面发展。比如冬暖夏凉型建筑,不用空调,由建筑自身的功能去调节温度。而智能家居必须结合这些建筑上的功能去发展,从这个方面来说,必然会推动智能家居的适应性发展。对与现阶段的智能家居来说,没有专用的对讲或智能家居数字处理芯片,无论是技术层面还是集成层面,都只是有所关联。如果能够很好的解决,未来数字对讲将会取得更好的应用。而随着中国城镇化趋势的加剧,大型小区会越来越多,人们对安保的重视程度也会日益加强,将来小区的多个安防子系统在技术上必然会走向综合化、集成化。除此之外,厂家需理性地为各类应用设计解决方案,校正一些过往的虚假概念。只有设计实用性强,性价比高,能适应拓展未来新技术的系统,才能更好地为用户服务。除此之外,各家产品的兼容性也是一个急需解决的问题。目前各厂家的产品均采用自家的协议,无法很好地做到兼容,而不同品牌的可视对讲和智能家居系统如何互连互通也将是今后需突破的难点 二、智能家居系统旨在实现的以下主要功能: (1)可以控制和相应的状态查询,如查询室内和室外的温度,可用于家用电器,如灯一键全开,一键全关,更方便。 (2)在光线方面我们可以依照家庭装修环境背景或者用户的其他层次的要对

zigbee,ha协议标准

竭诚为您提供优质文档/双击可除 zigbee,ha协议标准 篇一:zigbee3.0协议姗姗来迟,首批产品已经推出 zigbee3.0姗姗来迟,顶尖产品已经推出 zigbee联盟(zigbeealliance)今天宣布,将其市场领先的无线标准统一成名为zigbee3.0的单一标准。该标准将为最广泛的智能设备提供互操作性,让消费者和企业能获得可无缝协作并为人们日常生活带来便利的创新产品与服务。 当今有数以千万的设备采用了zigbee标准,为消费者 带来极大好处,zigbee3.0的发布让这些标准得以统一。zigbee3.0标准让用于家庭自动化、连接照明和节能等领域 的设备具备通信和互操作性,因此产品开发商和服务提供商可以打造出更加多样化、完全可互操作的解决方案。开发商可以用新标准来定义目前基于zigbeepRo标准的所有设备类型、命令和功能。 飞利浦(philips)互联照明部营销与合作关系主管Filipjandepauw表示:“让消费者满意是飞利浦hue智能照 明系统的核心驱动力。消费者希望他们的智能设备简单好用,因此我们会继续带来容易控制和创造的更加丰富的照明新

体验。zigbee协议是实现这一目标的关键推动力,覆盖更广泛的zigbee3.0标准进一步实现了不同设备间的无缝通信,从而使我们能够为用户提供更强大的功能。更广泛的互操作性让创造新的用例和提升消费者满意度变得更简单。” zigbee3.0覆盖了最广泛的设备类型,包括家庭自动化、照明、能源管理、智能家电、安全装置、传感器和医疗保健监控产品。它同时支持易于使用的diy设备以及专业安装系统。基于ieee802.15.4标准、工作频率为2.4ghz(全球通用频率)的zigbee3.0使用zigbeepRo网络,以便为最小、功耗最低的设备提供可靠通信。目前基于zigbeehomeautomation(家庭自动化)和zigbeelightlink的zigbeecertified认证产品可与zigbee3.0互操作。欲查看统一成zigbee3.0的标准的完整列表,请访问官网 /retype/zoom/1b4a9975eff9aef8941e06f5pn=2&x=0&y=126 8&raww=561&rawh=20&o=png_6_0_0_135_299_631_23_892.9 79_1262.879&type=pic&aimh=17.112299465240643&md5sum =0e396de6e9a428054feedca137422c24&sign=dc869e5ba0&z oom=&png=2119-5028&jpg=0-0"target="_blank">点此查看j.m.Richardson说:“zigbee联盟一直认为,真正的互操作性来自于各个级别尤其是跟用户关系最为密切的应用 级的标准。联盟成员在从全球产品销售中总结的经验教训让

zigbee各版本规范比较

ZigBee各版本规范比较 ZigBee是ZigBee联盟建立的技术标准,它是一种工作在900MHZ和2.4GHZ频段的新兴无线网络技术,具有中等通讯距离(10米到数百米),比较灵活经济的通讯速率(40Kbps到250Kbps),并且有星状,网状(MESH),树状等多种网络拓扑,低的功耗等特点,所以在当今无线通讯技术和无线网络技术领域中占有比较重要的地位。 第一个ZigBee协议栈规范于2004年12月正式生效,称为ZigBee 1.0或ZigBee 2004。 第二个ZigBee协议栈规范于2006年12月发布,称为ZigBee 2006规范,主要是用“群组库(cluster library)”替换了ZigBee 2004中的MSG/KVP结构。最为重要的新的ZigBee 2006协议栈将不兼容原来的ZigBee 2004技术规范,对于已经投入ZigBee 2004的厂商而言,这是一个大悲剧。例如Jennic 公司将ZigBee2004协议栈固化在ROM中(JN5121/JN5139)。将无法和ZigBee 2006以后的协议栈兼容。ZigBee 2006协议栈,将是ZigBee兼容的一个战略分水岭,从这里开始,ZigBee将实现完全向后兼容性。 2007年10月发布了ZigBee 2007规范,ZigBee 2007规范定于了两套高级的功能指令集(feature set):分别是ZigBee功能命令集和ZigBee Pro功能命令集。(ZigBee 2004和2006都不兼容这两套新的命令集)。ZigBee 2007包含两个协议栈模板(profile),一个是ZigBee协议栈模板(Stack Profile 1),它是2006年发布的,目标是消费电子产品和灯光商业应用环境,设计简单,使用在少于300个节点的网络中。另一个是ZigBee Pro协议栈模板 (Stack Profile 2),它是在2007年发布,目标是商业和工业环境,支持大型网络,1000个以上网络节点,相应更好的安全性。ZigBee Pro提供了更多的特性,比如:多播、多对一路由和SKKE(Symmetric-key key establishment)高安全,但ZigBee(协议栈模板1)在内存和flash中提供了一个比较小的区域。两者都提供了全网状网络与所有的ZigBee应用模板工作。 ZigBee 2007 是向后完全兼容ZigBee 2006设备。ZigBee 2007设备可以加入一个ZigBee 2006网络,并能再ZigBee 2006网络中运行,反之亦然。 由于路由选择不同,ZigBee Pro设备必须变成非路由ZigBee End-Devices(ZEDs)设备才可加入ZigBee 2006或ZigBee 2007网络。同样ZigBee 2006或ZigBee 2007设备必须变成ZEDs才可加入ZigBee Pro 网络。在这些设备上的应用程序工作是相同的,它们不管在这些设备上的协议栈模板。 下面的图表从高层次进行比较,列出2004、2006及2007/PRO ZigBee规范之间的异同。 比较图

zigbee技术分析——经典

与蜂共舞—ZigBee技术一瞥 本文从ZigBee的发展历史入手,探讨了这种基于无线传感器技术的网络应用的协议栈、性能分析和各种应用领域,全面构建了完整的ZigBee技术应用与发展蓝图。 “ZigBee”是什么?从字面上猜像是一种蜜蜂。因为“ZigBee”这个词由“Zig”和“Bee”两部分组成,“Zig”取自英文单词“zigzag”,意思是走“之”字形,“bee”英文是蜜蜂的意思,所以“ZigBee”就是跳着“之”字形舞的蜜蜂。不过,ZigBee 并非是一种蜜蜂,事实上,它与蓝牙类似是一种新兴的短距离无线通信技术,国内也有人翻译成“紫蜂”。下面就让我们一起进入这只蜜蜂的世界,与蜂共舞吧! 这只蜜蜂的来头还是要从它的历史开始说起,早在上世纪末,就已经有人在考虑发展一种新的通信技术,用于传感控制应用(sensor and control),这个想法后来在IEEE 802.15工作组当中提出来,于是就成立了TG4工作组,并且制定了规范IEEE 802.15.4。但是IEEE 802的规范只专注于底层,要达到产品的互操作和兼容,还需要定义高层的规范,于是2002年ZigBee Alliance成立,正式有了“ZigBee”这个名词。两年之后,ZigBee的第一个规范ZigBee V1.0诞生,但这个规范推出的比较仓促,存在一些错误,并不实用。此后ZigBee Alliance又经过两年的努力,推出了新的规范ZigBee 2006,这是一个比较完善的规范。据联盟最新的消息,今年年底将会发布更新版本的规范ZigBee 2007,这个版本增加了一些新的特性。 从ZigBee的发展历史可以看到,它和IEEE 802.15.4有着密切的关系,事实上ZigBee的底层技术就是基于IEEE 802.15.4的,因此有一种说法认为ZigBee和IEEE 802.15.4是同一个东西,或者说“ZigBee”只是IEEE 802.15.4的名字而已,其实这是一种误解。实际上ZigBee和IEEE 802.15.4的关系,有点类似于WiMAX和IEEE 802.16,Wi-Fi和IEEE 802.11,Bluetooth和IEEE 802.15.1。“ZigBee”可以看作是一个商标,也可以看作是一种技术,当把它看作一种技术的时候,它表示一种高层的技术,而物理层和MAC层直接引用IEEE 802.15.4。事物是不断的发展变化的,尤其是通信技术,可以想象将来的ZigBee可能不会使用IEEE 802.15.4定义的底层,就跟蓝牙(Bluetooth)宣布下一代底层采用UWB技术一样,但是“ZigBee”这个商标以及高层的技术还会继续保留。 ZigBee协议栈速读 我们无法预料将来ZigBee会基于怎样的底层技术,只好从它现在的底层——IEEE 802.15.4开始了解,IEEE 802.15.4包括物理层和MAC层两部分。ZigBee工作在三种频带上,分别是用于欧洲的868MHz频带,用于美国的915MHz频带,以及全球通用的2.4GHz频带,但这三个频带的物理层并不相同,它们各自的信道带宽分别是0.6MHz, 2MHz和5MHz,分别有1个,10个和16个信道。不同频带的扩频和调制方式也有所区别,虽然都使用了直接序列扩频(DSSS)的方式,但从比特到码片的变换方式有比较大的差别;调制方面都使用了调相技术,但868MHz和915MHz频段采用的是BPSK,而2.4GHz频段采用的是OQPSK。我们可以以2.4GHz频段为例看看发射机基带部分的框图(如图1),可以看到物理层部分非常简单,而IEEE 802.15.4芯片的低价格正是得益于底层的简单性。可能我们会担心它的性能,但我们可以再看看它和Bluetooth/IEEE 802.15.1以及WiFi/IEEE 802.11的性能比较(如图2),

zigbee解决方案比较

Zigbee 解决方案总结 一.非开源协议栈 1.freescale 解决方案 协议栈种类: 1.1 80 2.15.4标准mac 1.2 SMAC 1.3 SynkroRF 1.4 ZigBee RF4CE 1.5 ZigBee 2007 最简单的就是SMAC,是面向最简单的点对点应用的,不涉及网络的概念; 其次是IEEE802.15.4,一般用来组建简单的星型网络,而且提供了源代码,可以清楚地看到网络连接的每个步骤,分别调用了哪些函数; BeeStack(符合zigbee 2007)是提供的最复杂的协议栈,但是看不到代码,它提供给你一些封装好的函数,比如创建网络函数,你直接调用它,协调器就把网络创建好了,终端节点调用它则寻找可以加入的ZigBee网络并尝试加入。 其中硬件平台可以为下面中的任一种: MC13202 (2.4 GHz射频收发器) MC13213 (2.4 GHz射频收发器和带60K闪存的8位MCU)MC13224V (2.4 GHz平台级封装(PIP) –带有128KB闪存、96KB RAM、80KB ROM的32位TDMI ARM7处理器) MC13233 (带有HCS08 MCU的2.4 GHz片上系统) MC13202没有自带mcu,在做应用时,需要用户在自己的扩展板上加上mcu,既需要实现对外围设备的底层控制,也需要实现

协议栈。下面的几种均有自带mcu,协议栈的实现在自带的mcu 上实现,功能较简单的可直接使用片上的mcu资源进行控制;功能复杂的应用,最好协议栈实现与外围控制分开,大多数应用都选择arm芯片作为控制芯片; 详细信息可以查看https://www.doczj.com/doc/ea4530307.html,/products/rf/ZigBee.asp 2.microchip 解决方案 协议栈种类: ZigBee? Smart Energy Profile (SEP) Suite ZigBee? PRO ZigBee? RF4CE 均是一整套的协议集,价格不菲; 硬件平台: Pic18(mcu)+MRF24J40(2.4GHZ 射频收发器)+天线 与freescale 的mc13202相似,MRF24J40也只是射频收发器,不包含mcu,协议栈的实现需要借助于外围的mcu,当然微芯公司选择的是pic18及以上的芯片作为其主控mcu,通过spi接口与MRF24J40通信,查询其寄存器的状态,实现协议栈功能。 详见:https://www.doczj.com/doc/ea4530307.html,/ 3.ST 意法半导体解决方案 协议栈: EMZNET ZigBee? protocol stack 硬件平台:

基于ZigBee的智能家居系统

基于ZigBee的智能家居系统 摘要: 基于ZigBee的智能家居系统是针对家居高度自动化、智能化的要求提出的一种新的解决方案。主要用ZigBee手持控制器无线采集室内环境参数,远程控制各种家居电器,实现家居控制、参数检测的完全自动化、智能化。设备以C8051F020单片机为控制核心单元,检测湿度,负责驱动电机,处理和传输数据。采用高精度传感器作为湿度检测器件,直流电机等为执行机构,完成环境参数检测,对窗帘、交流电电器等的控制功能。用手持设备通过IP-LINK1270模块串口实现了室内无线通信,可以接收湿度数据,控制简单家居。本系统具有良好的开发和应用前景。 关键词:ZigBee 无线通信湿度检测智能家居 由于生活质量的日益改善,各种家电设备的高度自动化和智能化已经成为一种消费需求,同时科学技术的飞速发展,让这种需求的达到已经不再遥远。新的ZigBee协议在无线传感器网络和各种无线终端控制方面有良好的前景,为传感器网络和控制设备提出了新的方案。基于ZigBee的网络控制系统就可以实现对各种家电设备的控制和调节,只需要对旧式家电(家居)进行改装,或加入必要的驱动电路,便可以实现小信号对交流电器的控制。室内温度、湿度等环境参数直接影响生活质量,同样可以通过ZigBee控制器对室内温度、湿度检测设备进行较远距离的适时采集,然后根据个人意愿对家电(家居)进行不同程度的调节。 我们对实用小功率电扇进行了改装,对窗帘装上直流电机和定滑轮,可以由ZigBee控制器向单片机发送命令对电扇和窗帘的开关程度控制和调节。室内参数检测方面,开发了湿度检测设备,可以有效的反馈实时数据。 一、系统(主设备)结构及各部分功能 在整个系统设计方案中,以C8051F020为核心,作为数据处理器和设备控制器,整个设备也可作为工业现场设备,从属于ZigBee核心控制器。 系统(主设备)结构如图所示, 图1 系统(主设备)总体结构图

Zigbee网关通信协议

Z i g b e e网关通信协议 Prepared on 24 November 2020

无线传感器网络(Zigbee)网关的的通信协议网关是通过串口与PC 机相连的。PC 机可以通过串口发送采集命令和收集采集数据,为了能有效管理这些数据,需要执行统一的数据通信格式。 下面介绍该系统中所使用的通用数据格式。 每一帧数据都采用相同的帧长度,且都带有帧头、数据和帧尾。具体格式如下: 如上所示,每一帧数据的长度都是32字节。除帧头和帧尾,每一帧数据都由命令头、发送地址、有效数据和校验和组成。 命令头:所执行的命令。 地址:所访问模块的长(前8字节)/短地址(后2字节)。 数据:传送各个参数、变量与返回值及各种需要突发发送的数据。校验和:从命令头到数据尾的加和校验,用于确定数据正确与否。注:命令头、地址的长地址部分和数据都采用ASCII码。 这个系统的命令分为3种,分别为 读命令R(ead):包括读各个传感器或网络状态命令。 测试命令T(est):测试LED、BEEP或电池寿命命令。 扩展板命令E(xtend):控制和读扩展板命令。 下面介绍具体命令格式。 1.读命令 1) RAS RAS(ReadallSensor):读传感器。

RAS具体格式如下: 需要加入地址和数据——地址:传感器模块地址;数 据:GM***/WD***。 传感器种类包括光敏:GM;温度:WD;可调电位器:AD。 (1)读取成功返回格式如下: 地址:加入传感器模块地址。 数据:传感器+ 测量值(ASSII码)。其中光敏:GM+ * * * (3 字节ASII码);温度:WD +***(3字节ASII码);可调电位器:AD+*** (3字节ASII码)。 (2)读取失败返回格式如下: 2) RND RND:无线网络发现。 RND 具体格式如下: 需要加入地址和数据———地址:无;数据:无,只需要命令头。(1)读取成功返回格式如下: 返回网络中节点的性质:RFD(终端节点)/ROU(路由器)+地址+第几个。 例如:如果返回第1个RFD 节点,则数据段为RFD01。具体格式如下: (2)读取成功结束格式如下: 2.测试命令 1) TLD

基于Zigbee的智能控制系统

基于Zigbee的智能控制系统 本文研究主要基于硬件平台:NXP LPC1769(Cortex-M3 微控制器),以Zigbee无线传感器网络技术为基础,设计了智能系统。主要以家居智能系统为例,包括智能门禁系统、自动窗帘、安防系统、可燃气体泄漏监测、居室内外温度检测.通过短信与用户交互,可以实时发现家居隐患以及简单的安防。此次设计统秉承了无线传感器网络低功耗、低成本、分布式和自组织的优点,其灵活性和可靠性得到了提高,也方便用户进行无线和远程监测控制。 标签:NXP1769Zigbee无线传感器网络智能系统 1 系统设计总体方案 1.1 系统设计背景及环境 ZigBee是近年来提出的一种近距离、低复杂度、低功耗、低数据速率、低成本的双向无线通信新技术,主要适用于自动控制和远程控制领域,可以满足对小型廉价设备的无线联网和控制。Zigbee是一个由可多到65000个无线数传模块组成的一个无线数传网络平台,在整个网络范围内,每一个Zigbee网络数传模块之间可以相互通信,每个网络节点间的距离可以从标准的75m无限扩展。 Zigbee网络主要是为工业现场自动化控制数据传输而建立,因而,它必须具有简单,使用方便,工作可靠,价格低的特点。而移动通信网主要是为语音通信而建立,每个基站价值一般都在百万元人民币以上,而每个Zigbee“基站”却不到1000元人民币。每个Zigbee网络节点不仅本身可以作为监控对象,例如其所连接的传感器直接进行数据采集和监控,还可以自动中转别的网络节点传过来的数据资料。除此之外,每一个Zigbee网络节点(FFD)还可在自己信号覆盖的范围内,和多个不承担网络信息中转任务的孤立的子节点(RFD)无线连接。 LPC1700系列Cortex-M3 微控制器用于处理要求高度集成和低功耗的嵌入式应用。ARM Cortex-M3 是下一代新生内核,它可提供系统增强型特性,例如现代化调试特性和支持更高级别的块集成。 LPC1700系列Cortex-M3微控制器的操作频率可达100MHz。ARM Cortex-M3 CPU具有3级流水线和哈佛结构,带独立的本地指令和数据总线以及用于外设的稍微低性能的第三条总线。ARM Cortex-M3 CPU还包含一个支持随机跳转的内部预取指单元。 LPC1700系列Cortex-M3微控制器的外设组件包含高达512KB的Flash存储器、64KB的数据存储器、以太网MAC、USB主机/从机/OTG接口、8通道的通用DMA控制器、4个UART、2条CAN通道、2个SSP控制器、SPI接口、3个I2C接口、2-输入和2-输出的I2S接口、8通道的12位ADC、10位DAC、电机控制PWM、正交编码器接口、4个通用定时器、6-输出的通用PWM、带独立

F8913 ZigBee 技术规范

F8913 ZigBee 模块技术规范 产品特点---------------------------------------------------------------------------------------------------- 简介 F8913 ZigBee 模块是一种物联网无线数据终端,利用ZigBee 网络为用户提供无线数据传输功能。 该产品采用高性能的工业级ZigBee 方案,以嵌入式实时操作系统为软件支撑平台,同时提供2.0的SMA 与DIP 接口,可直接连接TTL 串口设备,实现数据透明传输功能;低功耗设计,最低功耗小于1mA ;提供17路I/O ,可实现数字量输入输出、脉冲输出;提供5路ADC ,模拟量输入、脉冲计数等功能。 该产品已广泛应用于物联网产业链中的M2M 行业,如智能电网、智能交通、智能家居、金融、移动POS 终端、供应链自动化、工业自动化、智能建筑、消防、公共安全、环境保护、气象、数字化医疗、遥感勘测、军事、空间探索、农业、林业、水务、煤矿、石化等领域。 文档编号 文档版本 密 级 工业级应用设计 ◆ 采用高性能工业级ZigBee 处理芯片 ◆ 低功耗设计,支持多级休眠和唤醒模式,最大 限度降低功耗 ◆ 采用2.0的SMA 与DIP 双排接口,较适合客 户的需求。 ◆ 电源输入(DC 3.0~3.6V ) 稳定可靠 ◆ WDT 看门狗设计,保证系统稳定 ◆ 提供TTL 串行接口,SPI 接口。 ◆ 天线接口防雷保护(可选) 标准易用 ◆ 采用2.0的SMA 与DIP 接口,特别适合于不 同用户的应用需求。 ◆ 提供TTL 接口可直接连相同电压的TTL 串口 设备 ◆ 智能型数据模块,上电即可进入数据传输状态 ◆ 使用方便,灵活,多种工作模式选择 ◆ 方便的系统配置和维护接口 ◆ 支持串口软件升级和远程维护 功能强大 ◆ 支持ZigBee 无线短距离数据传输功能 ◆ 具备中继路由和终端设备功能 ◆ 支持点对点、点对多点、对等和Mesh 网络 ◆ 网络容量大:65000个节点 ◆ 节点类型灵活:中心节点、路由节点、终端节 点可任意设置; ◆ 发送模式灵活:广播发送或目标地址发送模式 可选 ◆ 通信距离大 ◆ 提供17路I/O ,可实现17路数字量输入输出; 兼容10路脉冲输出、5路模拟量输入、5路脉冲计数功能

ZigBee协议架构

编号:_______________本资料为word版本,可以直接编辑和打印,感谢您的下载 ZigBee协议架构 甲方:___________________ 乙方:___________________ 日期:___________________

(application layer,APL )架构. 图1 zigbee协议栈体系结构 物理层规范 物理层定义了它与MAC层之间的两个接口:数据服务接口PD-SAP和管理服务接口PLME-SAP其中PD-SAP接口还为物理层提供了相应的数据服务,负责从无线物理信道上收发数据,而PLME-SAPg口同时为物理层提供相应的管理服务,用丁维护一个由物理层相关数据组成的数据库。物理层负责数据的调制、发送和接收、空闲信道评估(clear channel assessment,CCA)信道能量的监测(energy detect,ED )和链接质量指示(link quality indication , LQI)等。物理层帧结构由同步头、物理层帧头和物理层*效载荷三部分组成,如表1所示。 同步头乂包括32bit的前同步码和8bit的帧定界符,前同步码用来为数据收发提供码元或数据符号的同步;帧界定符用来标识同步域的结束及数据的开始。物理层帧头包括7bit的帧长度和1bit的预留位,帧长度定义了物理层净荷的字节数。物理层有效载荷就是MAC层的帧内容。 表一物理层帧格式

媒体接入控制层规范 MAC层定义了它与网络层之间的接口,包括提供给网络层的数据服务接口MLDE-SAFffi管理服务接口MLME-SAP同时提供了MAC层数据服务和MAC层管理服务。MA@数据服务主要实现数据帧的传输;MAC层管理服务主要负责媒介访问控制、差错控制等。 MAC层主要功能包括以下几个方面: (1) ZigBee协调器产生网络信标 (2) 设备与信标同步 (3) 支持节点加入或着退出操作 (4) 信道接入方式采用免冲突载波检测多路访问(CSMA-CA机制 (5) 建立并维护保护时隙机制 (6) 为设备提供安全支持 MAC帧格式由三个基本部分组成:MAC帧头、MAC帧载荷和MAC帧尾。不同类型的MAC帧,其帧头和帧尾都是一样的,只是MAC帧载荷有差别,通用MAC帧格式如表2所小。 表二通用MA#格式 网络层规范 网络层定义了它与应用层之间的接口 ,包括提供给应用层的数据服务接口 NLDE-SAP管理服务接口NLME-SAP,同时提供了网络层数据服务和网络层管理 服务。网络层主要负责拓扑结构的建立和网络的维护,具体的功能如下: (1) 初始化网络,即建立一个新的包含协调器、路由器和终端设备的网络 (2) 设备连接和断开时所采用的机制 (3) 对一跳邻居节点的发现和相关节点信息的存储 (4) ZigBee协调器和路由器为新加入节点分配短地址 (5)确保MAC正常工作,并且为应用层提供合适的服务接口 网络层帧结构包括网络层帧头(Network header, NHR和网络层载荷(Network payload,NPL)两部分,其中网络层帧头域由帧控制域、目的设备地址、源设备地址、广播半径和广播序列号等部分组成,通用网络帧的结构如表3所示。 表3通用网络层帧结构

相关主题
文本预览
相关文档 最新文档