一.节点的安装初始化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 referenceSource network addressDestination logical channelDestination IEEE addressDestination PAN identifierDestination network addressRecipient nod capabilitiesRecipient frame counterSecutity link key七.ZigBee RF4CE 应用层两部分组成:profile component(CERC标准,远程控制)和application-specific component八.ZigBee 中原语(primitive)的概念Zigbee设备在工作时,各种不同的任务在不同的层次上执行,通过层的服务,完成所要执行的任务。
每一层的服务主要完成两种功能:根据下层服务要求,为上层提供相应的服务;根据上层的服务要求,对下层提供相应的服务。
各项服务通过原语来实现。
每个事件由服务原句组成,它将在一个用户的某一层,通过该层的服务接入点(SAP)与建立对等连接的用户的相同层之间通信。
服务原语通过提供一种特定的服务来传输必要的信息,原语是一个抽象的概念,它们仅仅指出提供的服务内容,而没有指出具体由谁来提供这些服务。
由代表其特点的服务原语和参数的描述来制定一种服务。
一种服务可能有一个或者多个相关的原语,这些原语构成了具体服务相关的执行命令。
原语通常分为如下:Request:请求原语,从I1用户发送到它的第N层,请求服务开始;Indicate:指示原语,从I1用户的第N层向I2用户发送,指出对于第I2用户有重要意义的内部N层的事件。
Response:响应原语,从I2用户向它的第N层发送,用来表示用户执行上一条原语调用过程的响应。
Confirm:确认原语,由第N层向第I1用户发送,用来传递一个或者多个前面服务请求原语的执行结果。
九.网络层规范9.1 NWK层服务规范NLDE网络数据实体,NLME网络管理实体9.1.1 NWK层数据服务数据服务中包含的原语如下表所示:1.NLDE-DATA.request(PairingRef, 用这个参数来区分各个服务ProfileId,VendorId,nsduLength,nsdu,TxOptions)2.NLDE-DATA.indication(PairingRef,ProfileId,VendorId,nsduLength,nsdu,RxLinkQuality,RxFlags)3.NLDE-DATA.confirm 确认原语是在响应请求原语时产生的(Status(SUCCESS, INVALID_PARAMETER, NO_PAIRING, NO_RESPONSE, FRAME_COUNTER_EXPIRED )PairingRef)节点间原语发送情况:9.1.2 NWK层管理服务NLME-SAP支持的原语,如下面列表所示:1.NLME-AUTO-DISCOVER.request该原语由NLME层生成,允许应用请求NLME自动的处理接收到的discovery请求命令帧。
注意:在自动discovery响应模式下,NLME不会通过NLME-DISCOVERY.indication原语通知应用层dciscovery请求命令帧到达。
1.1 语义NLME-AUTO-DISCOVERY.request(RecAppCapabilities, 节点的应用能力RecDevTypeList, 节点支持的设备类型RecProfileIdList, 节点支持的profile标识AutoDiscDuration NLME自动响应发现模式的时间)1.2 产生时刻该原语产生于本地应用实体,使得NLME进入自动响应发现模式。
该模式下,NLME根据原语中包含的信息决定是否响应或接受发现原语命令帧的请求。
如果节点收到的命令帧不是discovery request,将会被丢弃。
1.3 接收端影响(1)收到 NLME-AUTO-DISCOVERY.request请求之后,节点匹配原语中的设备类型列表,profile列表,如果找到一个匹配项,则继续等待来自同一个节点的下一个发现请求命令帧。
(2)如果第二个发现请求命令帧也匹配,NLME层产生一个发现应答命令帧,NLME层通过发送一个MSPS-DATA.request给MAC子层,来实现发现应答命令帧的发送(MSPS-DATA.request包含了NLME产生的发现应答命令帧)。
(3)NLME层收到MAC子层的MSPS-DATA.confirm之后,发送NLME-AUTO-DISCOVERY.confirm原语(状态为MSPS-DATA.request原语返回的状态)给对方的NLME层。
(4)如果收到的第二个发现请求命令是来自另外的节点,发送NLME-AUTO-DISCOVERY.confirm原语(状态为DISCOVERY_ERROR);(5)如果匹配不成功,则丢弃这个请求信息,并做记录。
(6)如果在AutoDiscDuration时间范围内都没有发现有匹配的项,则NLME-AUTO-DISCOVERY.confirm原语(状态为DISCOVERY_TIMEOUT);2、NLME-COMM-STATUS. indication该原语由NLME层生成,NLME层通过该原语告知应用层通信的状态。
2.1 语义NLME-COMM-STATUS.indication (Status,(SUCCESS, SECURITY_TIMEOUT, SECURITY_FAILURE or anything from the MCPS-DATA.confirm primitive)PairingRef,DstPANId,DstAddrMode,DstAddr)2.2 产生时刻该原语伴随着NLME-DISCOVERY.response原语或者 NLME-PAIR.response原语生成. 如果是伴随NLME-DISCOVERY.response,则PairingRef应设置为oxff;如果是伴随NLME-PAIR.response,则PairingRef应根据NLME-PAIR.response的ProvPairingRef参数来设定。
2.3接收端影响the application is notified of the status of a transmission following a .response primitive.3、NLME-DISCOVERY.request用于请求NLME向特定的感兴趣的设备发送discovery请求。
3.1 语义NLME-DISCOVERY.request(DstPANId, 发现请求的目标的PAN标识符,这个值可以设置为0xffff来表示一个通配符(wildchild)。
DstNwkAddr, 发现请求的目标的网络地址,这个值可以设置为0xffff来表示一个通配符。
OrgAppCapabilities,源节点的应用能力OrgDevTypeList,源节点包含的设备类型列表OrgProfileIdList,源节点包含的profile类型列表SearchDevType,要发现的设备类型DiscProfileIdListSize, DisProfileList参数中包含的profile标识符的数量DiscProfileIdList,ZigBee联盟定义的一些profile列表DiscDuration 每个信道中潜在目标节点等待发现应答返回的最大MAC标志数量)3.2 产生时刻该原语由本地的应用层实体产生,发送给NLME层,用去请求一个发现操作。