版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、ZigBee 模块无线数据通信通用协议Version 1.2.7浙江瑞瀛网络科技有限公司版权声明本文档所包含的所有信息均为浙江瑞瀛网络科技有限公司(以下简称“瑞瀛”或“本公司”)版权所有。未经本公司书面许可,不得向本公司雇员、商、合作方或授权许可方以外的任何第三方泄露本文档内容,不得以任何形式擅自复制或传播本文档。若使用者违反本版权保护的约定,本公司有权追究使用者由此产生的法律责任。版本更新V1.0.0V1.0.1V1.1.0V1.1.1V1.1.2V1.1.3V1.2.0V1.2.6V1.2.72011-01-012011-03-152011-04-062011-04-202011-04-2
2、22011-05-172011-06-012011-09-112011-12-21初稿修改了一些笔误根据用户需求重新排列了对象字典对操作范例中的数据进行了解释增加用户自定义参数增加默认参数值和对应 AT 指令说明完善了数据通信方式的说明对细节进行了补充说明修改模块信息参数以及触发参数使用说明2目录概述41.1.1.节点类型42.帧格式.2.3.串口帧格式6通用帧格式6应用层数据帧(ADF)格式.3.2.读(Read)命令帧:ID = 0x208写(Write)命令帧:ID = 0x2583.对象字典(OD)定义.3.
3、..7.模块信息参数10网络参数10当前时间参数12执行控制参数13应用配置参数15用户自定义参数16虚拟参数..3.无线通信UART 端口映射参数16触发参数17节点信息参数18交换过程.2.COO 建立网络20节点加入网络205.操作范例.UART 数据传递21访问本地节点参数236.用户数据的传递方式2.6.3.写 UART 端口映射参数27带目的地址的半透传29全透传方式317.参数默认值以及对应 AT 指令3..网络参数33当前时间参数33执行
4、控制参数34应用配置参数3431.概述本协议适用于本公司所生产的所有无线通信模块,实现数据在模块之间的传递。本协议中包含对象字典以及串口控制协议。对象字典将无线模块内的参数和硬件资源标准化,从而可以采用相同的方法来访问和控制模块内部的资源;串口控制协议为用户提供了对模块的控制访问通道,用户设备可以通过串口对无线通信进行控制,完成数据的传递,参数的访问等。1.1.节点类型在无线模块组成的网络中,一个无线模块就被称为一个节点。每个无线模块都有唯一的,不重复的 8 字节的 MAC 地址。MAC 地址的高 4 字节固定为0x0080E102。因此在对模块进行寻址时,只使用低
5、 4 字节的 MAC 地址即可。根据各个节点功能不同,无线网络中的节点分为以下类型: 协调器(Coordinator,COO)COO 节点是无线网络的逻辑中心点。通常而言,COO 在无线网络中充当网关的功能,实现外界与无线网络之间的信息交换。COO 节点能够建立并管理一个新的无线网络。COO 节点建立一个无线网络之后,就可以接收其他节点加入网络的请求,从而使无线网络扩展开。COO 节点一般使用有线电源供电,不需要休眠,并且能够管理休眠节点。其串口参数配置为 115200 8 N 1. 路由节点(ROUTER)ROUTER 节点具备路由能力,具备为网络中其他节点中继、转发数据的能力。ROUTER
6、 节点不能建立一个新的无线网络,但是能够加入到一个已经存在的无线网络中。ROUTER 节点加入到无线网络中之后,就可以接受其他节点加入网络,从而实现无线网络的扩展。ROUTER 节点一般使用有线电源供电,不需要休眠,并且能够管理休眠节点。其串口参数配置为 9600 8 N 1. 休眠节点(ZigBee End Device, ZED)ZED 节点是无线网络中的末端节点,通常使用电池供电,是休眠节点。ZED 不具备路由功能,也无法接受其他节点加入网络。ZED 需要通过其他具备休眠节点管理能力的节点(COO 或 ROUTER)才能加入到无线网络中,并且该节点被称为 ZED 的父节点(PARENT)
7、。由于 ZED 大部分时间是出于休眠状态,因此PARENT 节点需要为 ZED 完成无线数据的缓冲和转发工作。其串口参数配置4为 9600 8 N 1. 手持节点(Hand-Hold-Unit,HHU)HHU 节点是无线网络中的移动节点,能够搜索并任意加入/离开无线网络。HHU 节点一般用于移动的数据采集或网络诊断,不具备路由能力,也无法接受其他节点加入网络,不能管理休眠节点。HHU 节点一般使用电池供电,采用间歇工作模式。其串口参数配置为 115200 8 N 1.52.帧格式2.1.串口帧格式应用程序通过串口(UART)访问模块时,为
8、了保证通信的正确率,采用以下的帧格式:UART 帧由帧头(Header),帧长(Length),有效数据(Payload),校验和(Check),以及帧尾(Footer)五个部分组成。其中,Header 取值为 0x2A,Footer 取值为 0x23;Length 取值为 Payload 的长度(不包括 Header,Footer,Check 和 Length 本身),Check 取值为 Payload相加值的最低字节。本协议以下描述的数据帧格式,就是指 Payload 的格式。2.2.通用帧格式通用帧格式是指所有数据都遵守的帧格式,定义如下:其中:Frame Control: 取 值 为
9、0x8841 Reserved:保留字段,可使用 0x00 填充Source Address:数据发起的源节点MAC 地址低4 字节,也可以使用0x00 填充。Target Address:数据发送的目的节点的 MAC 地址低 4 字节。几个特殊的目的地址定义如下:0xFFFFFFFF:全网络广播地址0xFFFFFFFE:一跳半径内广播地址0xFFFFFFF0:COO 节点的代替地址,只在节点还不知道COO 节点6Bytes 26444622variableFrame ControlReservedSource AddressReservedTarget Addre
10、ssReservedCluster IDReservedADF1 Byte1Variable11HeaderLengthPayloadCheckFooter地址的情况下使用。0x00000000:本节点的代替地址,即串口数据是针对本地节点的Cluster ID:命令标识,用于区分不同的命令,基本的定义如下:Resp.:应答标识=0:数据帧为命令帧,请求帧或消息帧=1:数据帧为上述帧的应答帧ERR:错误标识,仅用于应答帧(即Resp.=1 的情况)=0:应答帧中包含正确的应答数据=1:应答帧中包含错误信息(例如由于接收到非法的命令) Sender:数据帧的发起节点类型Bit13:数据帧发起节点的
11、特殊属性=0:发起节点为普通节点=1:发起节点为 COO,或 HHU Bit12:数据帧发起节点是否具备路由能力=0:发起节点不具备路由能力=1:发起节点具备路由能力Bit11:数据帧发起节点是否需要休眠=0:发起节点需要休眠=1:发起节点不需要休眠Bit13 Bit12 Bit11:=111:数据帧的发起节点为 COO=011:数据帧的发起节点为 ROUTER=001:数据帧的发起节点为 NRR=000:数据帧的发起节点为 ZED=100:数据帧的发起节点为 HHU ID: 数 据 帧 类 型 码 ADF:发送的应用层数据帧内容,其格式在本协议后续定义注意:需要特别指出的是,除非特别指明,本
12、通信协议中,整型数据在数据帧中的排列顺序是低位在前,高位在后。例如,整型数据 1000(0x03E8) 和长整型数据 0x6789ABCD 在数据帧中的排列方式分别为:7E803CDAB8967Bits: 151413-1110-87-0Resp.ErrSenderReservedID2.3.应用层数据帧(ADF)格式2.3.1.读(Read)命令帧:ID = 0x20通过读命令可以访问节点中的各种信息,命令格式如下:Index:被访问参数的 OD 索引,2 字节Sub:被访问参数的子索引,1 字节。如果 Sub 为 0,则说明读的是整个参数Opt.:读命令的选项,
13、保留读命令的应答帧格式如下:Length:Data 域的长度,Length = n;如果命令执行错误,Length 是错误码的长度 1 字节data:读取的数据结果,n 字节;如果命令执行错误,则data 域包含错误码 1 个字节2.3.2.写(Write)命令帧:ID = 0x25通过写命令可以配置节点中的参数值,从而改变节点的执行策略。Index:被访问参数的 OD 索引,2 字节Sub:被访问参数的子索引,1 字节。如果 Sub 为 0,则说明写入的是整个参数Opt.:写命令的选项,保留Length:写入数据的长度,1 字节,Length = n data:需要写入的数据,n 字节写命令
14、的应答帧格式如下:8Bytes: 2111VariableIndexSubOpt.LengthdataBytes: 2111VariableIndexSubOpt.LengthdataBytes: 211IndexSubOpt.Length:Status 域的长度Status:写命令的执行状态一般而言,写命令返回的 Status 长度为 1,即返回写命令操作的状态=0:写命令执行成功=其他值:写命令执行失败的错误码9Bytes: 2111VariableIndexSubOpt.LengthStatus3.对象字典(OD)定义无线模块中的所
15、有参数和硬件资源,都使用对象字典(Object Dictionary, OD)来进行描述,从而使这些参数和硬件资源都变成标准化的对象,只需使用统一的读和写操作就能对这些对象进行访问,从而简化对无线的操作。每个参数或硬件资源都使用独立的 OD 索引(Index)来编排,因此访问索引就可以访问到具体的对象。3.1.模块信息参数模块信息参数的 OD 索引是 0,使用读(Read)命令访问此参数,可以获得模块的详细信息。需要注意的是,本参数的所有参数都是只读的,写(Write) 操作将被拒绝访问。其结构定义如下:typedef structUSIGN8 USIGN8 USIGN8 USIGN16 US
16、IGN8aucSoftware_Version4; aucHardware_Version4; aucDev_Type6; auiSurport_Func8; aucReserved2; Node_Status;其中:aucSoftware_Version4:软件版本号,用于在远程升级时判断是否需要升级。aucHardware_Version4:硬件版本号,标识出当前设备的硬件版本。aucDev_Type6:设备类型,与公司设备类型定义相符。auiSurport_Func8:设备支持的应用层功能索引。3.2.网络参数网络参数的 OD 索引是 1001(0x03E9),主要用于配置无线模块的的无
17、线网络属性,其结构定义如下:typedef USIGN32 USIGN8 SIGN8 USIGN8 USIGN8 USIGN32 USIGN32 USIGN16 USIGN16 USIGN8 USIGN8 USIGN8 USIGN8ulPAN_ID; ucCurrent_Channel;cTransmit_Power; ucMax_Hops; ucRout_To_COO_Only; ulGroup_ID; ulChosen_COO; uiProfile_ID; uiPowerMode; ucNode_Age_Step; ucPoll_MSG_Life
18、; ucAnt_Sel; aucReserved9;Network_Parameter;其中:ulPAN_ID 参数设置当前无线网络的网络标识(PAN ID)。此参数被修改之后,节点复位后生效。ucCurrent_Channel 设置了当前正在使用的通道,取值范围 11-26(0x0B-0x1A)。对此参数的写操作将改变无线模块的通信频率。此参数被修改之后,节点复位后生效。cTransmit_Power 参数设置节点的发送功率。由于大多数 RF 芯片的发送功率是可以通过软件调节的,因此改变这一参数,就可以调节其发送功率。取值范围是:-26dBm 7dBmaucMax_Hops 参数设置节点传递
19、无线数据时, 最大的传播半径。ucRout_To_COO_Only 参数指示本节点是否只记录通往 COO 的路由。0:只要路由表有空间,记录通向其他路由节点的路由1:只记录通向 COO 的路由ulGroup_ID 参数设置当前模块的所属组别,当发送的数据使用组别来寻址时使用。此功能暂未实现。ulChosen_COO 参数指示当前已经选择的 COO 地址。当节点接收到 COO 发送的数据后,将 COO 的地址记录在这个参数中,为 0 则说明还没有接受到COO 发送的数据。因此这是一个只读的参数,在 COO 中设置为 0。uiProfile_ID:行规标识11uiPow
20、erMode:模块的射频模式。Bit0:=0=1Bit1:=0=1Normal ModeBoost Mode单端输出模式双端输出模式,用于外置功放应用ucNode_Age_Step:设置节点 Age 增加的时间间隔,单位是秒。例如, 将此参数设置为 10,则表明每隔 10 秒,节点的 Age 将增加 1。Age 表示表示距离上一次接收到该节点数据的时间长度,每次接收到来自某个节点的无线数据,则该节点的 Age 将被重新设置为 0。ucPoll_MSG_Life:需要发送给 ZED 的无线数据,是由 ZED 的 Parent 先进行缓存,然后等待 ZED 唤醒之后来查询(Poll)取走的。本参数
21、设置 Parent 为 ZED 缓存数据的时间长度,单位是秒。某条无线数据缓存的时间超过本参数设置的时间长度之后,将被放弃以释放 Parent 的存储空间。ucAnt_Sel:外置功放的天线选择。=0:选择 PCB 天线=1:选择 U.FL 天线3.3.当前时间参数当前时间参数的 OD 索引是 1002(0x03EA),用于指示当前系统维护的实时时间,其结构定义如下:typedef structUSIGN8 USIGN8 USIGN8 USIGN8 USIGN8 USIGN8 USIGN8 USIGN8 Date_Time;其中:ucYear; ucMonth; ucDate; ucHour;
22、 ucMinute; ucSecond; ucWeek; ucStatus;12ucStatus 参数用于指示当前的时间状态:=0:当前时间还未同步,时间无效=1:保留=2:当前时间完成了网络同步=3:当前时间是由本地设置的说明:一般而言只需要设置 COO 节点的时间。COO 节点时间被设置之后,COO 就会自动将这个时间时间同步。网络中的所有节点,从而实现网络中所有节点的3.4.执行控制参数执行控制参数的 OD 索引是 1003(0x03EB),用于设置执行控制策略,其结构定义如下:typedef structu32u8 u8 u8 u8 u8 u8 u8 u8
23、u8u8ulMAC_Addr;aucPWD16;bEncrypt_Enable; ucResponse_Delay_Scale; ucAuto_Report_Event; ucBaud_Rate;ucParity; ucUART_Reverse; uiReset_Times; aucReserved4;ucCheck_Sum;BASIC_PARAMETER;其中:ulMAC_ADDR:设备的 MAC 地址低 4 字节只读参数。13aucPWD16是用于加密的 128 位。bEncrypt_Enable 参数设置当前的通信是否使用数据加密技术。ucResponse_D
24、elay_Scale 设置节点在响应广播命令时的随机延时范围: 本参数定义选取随机数之后,右移的位数。此参数将与 ucDistance 一起使用来避免通信冲突。ucAuto_Report_Event 参数设置休眠模块在数据同步窗口中,是否自动上报数据。0x00:不自动上报0x01:自动上报ucBaud_Rate 参数设置串口通信波特率BAUD_2400= 4,BAUD_1200= 3,BAUD_9600= 6,BAUD_28800 = 9,BAUD_57600 = 12,BAUD_115200= 15,BAUD_4800BAUD_19200BAUD_50000= 5,= 8,= 11,BAUD
25、_14400 = 7,BAUD_38400 = 10,BAUD_76800 = 13,BAUD_230400= 16BAUD_100000 = 14,ucParity 参数设置串口通信的校验方式0x00:无校验0x01:奇校验0x02:偶校验ucUART_Reverse 参数设置串口通信中,是否需要将数据取反。这主要是在煤气表和水表应用中,为了保证低功耗而采用反向的串口逻辑。Bit7:=0:使用 UART 与 Meter 通信=1:使用 SIMU_UART 与 Meter 通信Bit0:=0:UART 不取反=1:UART 取反Bit1:=0:SIMU_UART 不取反=1:SIMU_UART
26、 取反143.5.应用配置参数应用配置参数的 OD 索引是 1005(0x03ED),用于设置与具体应用相关参数,其结构定义如下typedef structu8 u8 u8 u16 u8 u8 u16 u8 u8 u8 u8 u8aucUID16;ucBcast_Rpt_Time; ucNode_Type; uiMAX_ReSend_Gap; ucDisable_Write_Rsp; ucOutput_Debug; uiFurther_Delay_Step; ucQuik_Upload_Radium; ucData_Renew_Distance; ucLink_Co
27、st_Shift; ucUART_Frame_Gap; aucReserved4;/ in msAPP_CONFIG;其中:aucUID:模块的唯一识别码,用于唯一识别一个模块,在交换时使用。ucBcast_Rpt_Time:广播数据的发送次数,最小值为 1,最大值为 3ucNode_Type:节点类型,定义与 ClusterID 参数的高字节相同uiMAX_ReSend_Gap:数据发送之后,下一次重发尝试的最大时间间隔。下一次重发的时间是一个随机数,但是最大值不超过本参数设置的值。如果本参数设置为 0,则说明下一次重发时间间隔为:RF_ACK_MIN_WAIT_GAP(20),单位是毫秒。
28、ucDisable_Write_Rsp:模块被其他模块使用写命令访问时,一般都会返回一个写命令的应答,以对方写操作的结果;但是对于 UART 端口映射参数的写操作比较特殊,有些应用情况下,不希望被访问的模块返回写应答从而加快数据的传递频率,因此可以使用此参数来进行控制是否返回写应答。0x00:返回写应答0x01:不返回写应答注意:此参数仅对 Write 方式访问 UART 端口映射参数(索引 0x0FA0)时有效15ucOutput_Debug:设置是否输出调试信息:0x00:不输出调试信息0x01:输出调试信息uiFurther_Delay_Step,ucQuik
29、_Upload_Radium,ucData_Renew_Distance, ucLink_Cost_Shift:这 4 个参数主要用于设置路由优化策略,不建议用户自行更改,以免对网络路由产生不利的影响。ucUART_Frame_Gap:两个不同串口数据帧之间的间隔时间,单位是毫秒(ms)。模块在接收串口数据时,如果在此参数所定义的时间内,没有从串口接收到新的数据,则模块确认已经接收完毕一帧完整的串口数据。3.6.用户自定义参数本参数的 OD 索引是 1100(0x044C),用于存储用户自定义的数据,可读写。其结构定义如下:typedef structu8 u8 u8aucCustom_Par
30、a110; aucCustom_Para210; aucCustom_Para311; CUSTOMIZE_PARA;其中:aucCustom_Para 各个子索引中的数据格式、含义由用户自定义并管理, 可以通过读写操作来访问。3.7.虚拟参数虚拟参数包含硬件的 OD 映射,触发参数等。3.7.1.UART 端口映射参数UART 端口映射参数的索引是 4000(0x0FA0),只写属性。使用写命令访问此索引,则所有写入的数据将被输出到串口;读访问将被拒绝。然而模块在向COO 上报从 UART 端口接收到的数据时,返回的是读响应。注意对 4000 索引的访问,只能使用自索引 0 来访问整个对象。
31、163.7.2.触发参数触发参数的索引是 4700(0x125C),一般是只写属性,并且只能使用子索引来访问,不能使用索引 0 来访问整个对象。每个子索引代表一个特定的执行操作。对这个子索引的写入访问,将触发这个特定的操作,定义如下:typedef structUSIGN8 USIGN8 USIGN8 USIGN8 USIGN8 USIGN8aucWake_Trigger2; ucReLoad_Token; ucReset;ucBoot; ucJoin; ucMTO; Trigger_Parameter;其中,aucWake_Trigger2:用于 HHU 唤醒 Z
32、EDucReLoad_Token:参数用于恢复所有参数的默认值。向此参数写入 1,则模块中的所有参数都将被恢复为默认值(即出厂设置值);写入其他值则不触发任何操作。ucReset:参数用于使模块复位,向此参数写入一个非 0 值 n,则模块将在 n 秒后自动复位。ucBoot:参数用于使模块进入 Bootloader 模式。向此参数写入一个非 0 值 n, 则模块将在 n 秒后自动进入 Bootloader 模式。ucJoin:参数用于触发父/子节点之间的加入/离开操作。此参数在父节点和子节点中的功能有所不同,描述如下:父节点中,子节点使用写命令来访问父节点的此参数,以本节点需要离开还是加入父节
33、点。父节点写入 1:子节点要求加入父节点,父节点必须返回写应答写入 0:子节点要求离开父节点,父节点不必返回写应答子节点中,父节点使用写命令来访问子节点的此参数,以子节点本节点要求对方离开。写入 1:父节点要求子节点离开,子节点不必返回应答17写入 0:没有任何效果ucMTO:此参数仅对 COO 节点有效,用于触发 COO 节点重新建立网络, 写入 1:触发重新建立网络,写入 0:无变化3.7.3.节点信息参数本参数仅 COO 模块支持,并且是只读参数,写(Write)操作将被拒绝访问。本参数的索引从 8000(0x1F40)开始,一共占用 10 个索引(8000-
34、8009)。这是因为 COO 模块中包含了网络中所有模块的节点信息(目前最大支持 100 个节点),每个索引包含 10 个节点信息,这样 100 个节点就需要 10 个索引;每个节点的节点信息占用 8 个字节,定义如下:typedef structu32 u8 unions8 u8ulNode_Addr; ucSeq;cRSSI;ucDistance;uRSSI_Distance;structu8 ucAge:5; u8 ucFailure:3;sFailure_Or_Age;u8ucNode_Type;NODE_TABLE;其中,ulNode_Addr:节点的 MAC 地址低 4 字节ucS
35、eq:该节点的通信序号,用于识别重复帧uRSSI_Distance:如果该节点是 COO 节点的邻居,则此参数表示该节点到 COO 通信的信号强度,单位是 dBm;如果该节点不是 COO 节点的邻居,则此参数表示该节点到COO 的距离(跳数)。18sFailure_Or_Age:低 5 位指示该节点的 Age(表示距离上一次接收到该节点数据的时间长度,单位由 Network_Parameter. ucNode_Age_Step 定义); 高 3 位指示本节点向该节点发送数据时,发送失败的次数。ucNode_Type:指示该节点的类型,节点类型与 ClusterID
36、参数的高字节相同,但是扩展了 Bit2 作为邻居节点指示。如果在节点信息表中,某个节点的ucNode_Type 值为 NODE_TYPE_UNINIT(0x80),则说明还没有接收到发自该节点的数据,ucSeq 值无效。Bit2:节点的邻居属性=0:节点不是本节点的邻居=1:节点是本节点的邻居说明 1:从 8000 开始的索引,每个索引对应 10 个节点信息。即如果使用读命令访问 8000,将返回第 1 到第 10 个节点的信息;如果使用读命令访问8001,将返回第 11 到第 20 个节点的信息,以此类推。每次读请求的应答数据长度为 80 个字节。说明 2:可通过 ucNode_Type 信
37、息中的 Bit2 来获知该节点否为 COO 的邻居节点。194.无线通信交换过程4.1.COO 建立网络COO 在 运 行 时 , 如 果 发 现 其 无 线 通 信 加 密 功 能 打 开 ( 即Strategy_Parameter.bEncrypt_Enable 参数设置为 1),且网络标识(PANID)参数值是默认值,则会自动进行一个扫描过程:依次检查 16 个通信通道的噪音强度。扫描完毕之后,COO 将自动选择一个噪音最小的通信通道,使用自己的MAC 地址作为网络标识(PANID),使用 COO 的初始密钥作为网络密钥,用于对无线通信数据进行加密。这些网络参
38、数将被 COO 记录起来,在以后的网络通信中使用4.2.节点加入网络网络中其他节点中运行时, 如果发现其无线通信加密功能打开( 即Baisc_Parameter.bEncrypt_Enable 参数设置为 1),且网络标识(PANID)参数值是默认值,则先进行一个网络扫描过程:从最低通信通道(Channel11,使用请求节点的初始进行加密的,因此其他任何节点都无法破解,从而保证了网络的安全性。用户需要手COO 输入请求节点的初始,一般是通过与 COO 连接的电脑或者 PDA 完成的。每个模块的初始一般与模块产品包装在一起,用户很容易就可以获得各个模块的初始。需要用户手动输入每个节点的初始,在网
39、络刚刚建立时比较繁琐,但是这样的好处在于:1)节点不会误加入到错误的网络中,只有拥有模块的用户才能获得模块的初始击的可能。;2)网络在空中传递时不会泄漏,杜绝了恶意攻205.操作范例假设范例无线网络中有 2 个节点,其中COO 节点的 MAC 地址低 4 字节为0x0015AC96,与用户设备 A 通过 UART 端口连接;另一个 ROUTER 节点的MAC 地址低 4 字节为 0x0015D17E,与用户设备 B 通过 UART 端口连接。如下图所示:COOROUTER UART UART 0x0015AC960x0015D17E图 1 范例无线网络以下降针对此范
40、例无线网络来示例如何对无线模块进行操作。5.1.UART 数据传递如果设备 A 需要向设备 B 的 UART 端口传递一条数据,则可以使用 Wirte 命令向 ROUTER 节点的 UART 端口映射参数写入需要传递的数据。例如,设备A 向设备 B 需要传递 3 字节的 16 进制数据01 02 03,可使用以下命令:设备 A 向 COO 的 UART 端口发送以下数据:21Header2ALength26Frame Control8841Reserved 6 Bytes00 00 00 00 00 00Source Address00 15 AC 96Reserv
41、ed 4 Bytes00 00 00 00Target Address00 15 D1 7E2A 2641 8800 00 00 00 0096 AC 15 0000 00 00 007E D1 15 0000 00 00 00 00 0025 3800 00A0 0F00 00 0301 02 0365 23设备A设备B22Reserved 6 Bytes00 00 00 00 00 00ClusterID3825Type=0x38, COO ID=0x25, WriteReserved 2 Bytes00 00Write Index0F0AWrite Sub I
42、ndex00Write Opt00Write Data Length03Write Data01 02 03Check65Footer23设备 B 将从 ROUTER 的UART 端口接收到以下数据:01 02 035.2.访问本地节点参数如果设备需要访问与之通过 UART 连接的模块的参数,可以使用读,写命令来完成,但注意使用的目的地址是本节点的替代地址 0x00000000。例如,设备 A 使用读命令访问 COO 模块的通信通道参数(索引 0x03E9,子索引 2),返回的将是 COO 模块的当前正在通信的通道(频率)值,命令如下:23Header2ALengt
43、h22Frame Control8841Reserved 6 Bytes00 00 00 00 00 00Source Address00 15 AC 962A 2241 8800 00 00 00 0096 AC 15 0000 00 00 0000 00 00 0000 00 00 00 00 0020 3800 00E9 0302 00 09 23命令执行完毕,则设备 A 将从 COO 的UART 端口接收到以下应答:24Header2ALength24Frame Control8841Reserved 6 Bytes00 00 00 00 00 00Sour
44、ce Address00 15 AC 96Reserved 4 BytesTarget Address00 15 AC 96Reserved 6 Bytes00 00 00 00 00 0000 00 00 0096 AC 15 002A 2441 8800 00 00 00 00 0096 AC 15 0000 00 00 0000 00 00 00 00 0020 B800 00E9 0302 00 01 14 52 23Reserved 4 BytesTarget Address00 00 00 00目的地址全 0 表示访问的是本地节点Reserved 6 BytesClusterID3
45、820Type=0x38, COO ID=0x20, ReadReserved 2 BytesRead Index03E9Read Sub Index02Read Opt00Check09Footer2300 0000 00 00 00 00 0000 00 00 00从返回的数据,设备(2450MHz)。A可以得知,目前COO正在工作于0x14通道25ClusterIDB820Type=0xB8: COO, response ID=0x20, ReadReserved 2 BytesRead Index03E9Read Sub Index02Read Opt00R
46、ead Data Length01Read Data14Check52Footer2300 00266.用户数据的传递方式用户设备之间的数据需要通过无线网络传递时,可以使用以下 3 种方式来完成:6.1.写UART 端口映射参数这种方式是本协议推荐的设备之间数据无线通信方式,可按照 4.1 节所述的方式进行。此方法的优点是通信稳定可靠,不仅可以实现设备间的无线数据通信,而且可以完成参数访问和网络管理,缺点是需要与模块连接的设备都按照本协议进行修改,有一定的工作量。以下例子中,COO 向 ROUTER 的 UART 端口映射参数写入 3 字节的 16 进制数 0x01
47、0203;ROUTER 向 COO 的 UART 端口映射参数写入 7 字节的 16 进制数 06.2.带目的地址的半透传为了实现设备之间的简单数据交换,也可以用带目的地址的半透传方式来完成。具体方法是,在需要发送数据的前面,加上 8 个字节的目的节点的 MAC 地址,这样数据将被传递到目的地址所指示的设备。这种方法的优点是比较简单, 数据通信通信比较可靠,缺点是只能完成设备 UART 端口之间的数据交换,无法实现参数访问和网络管理。事实上,无线模块从 UART 接收到带地址的半透传数据后,首先判断地址是否合法;如果地址合法,则将需要传递的数据,转换成一个写目的地址所指示的无线模块的 UART 端口映射参数的服务,从而实现数据的传递,本质上是与6.1 节相同的。以下例子中,两个无线模块之
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 成人多重耐药菌感染传播的预防措施2026
- 新风系统清洗检测管理办法
- 文化传媒公司员工管理办法
- 2026年高职(管理会计实务)决策分析阶段测试试题及答案
- 2026年高职(工商管理)实训测试试题及答案
- 2026年驻马店护士职称考试试题及答案
- 2026年装运车间消防考试试题及答案
- 2026年数学作弊考生试卷及答案
- 2026年写字楼安全管理考试试题及答案
- 武汉“百湖之市”水体旅游资源开发与保护:平衡与共生路径探索
- JGJ79-2012 建筑地基处理技术规范
- 滇西小哥粉丝数据分析报告
- 胆总管结石伴急性化脓性梗阻性胆管炎的护理查房
- DB 5309-T 66-2023滇鸡血藤林下种植技术规程
- 《财政学》第七章 财政收入总论
- 渠道工程施工工艺与技术措施
- 《山东省情省况》知识考试参考题库(含解析)
- 城市道路交通规划设计规范
- 100+华为云高层主打胶片-华为云+智能+见未来
- 新能源材料-锂离子电池正极材料、负极、电解质、隔膜材料-生产工艺
- GB/T 39501-2020感官分析定量响应标度使用导则
评论
0/150
提交评论