Wireless Control That Simply Works Jennic JN51XX开发概述 硬件,安装和编程初步 目录 硬件平台 芯片 模块 最小系统 开发包 软件平台 开发包特性 SDK的安装 高功率模块 参考文档 协议栈 802.15.4 Zigbee Jenie AT-Jenie 6LoWPAN 芯片结构图 模块结构图 模块外形图 模块接口 • • • • • • • • • 五个SPI接口 两个 UART串口 两个可编程定时计时器 两线的I2C口 21个通用的IO口(部分和UART复用) 四路12-bit, 100ksps 的ADC 两路11位的DAC 一个比较器 内部的温度与电压传感器 模块管脚图 最小系统 JN5121模块 • 2.4GHz IEEE802.15.4 兼容,2.7-3.6V 工作电压 • 休眠电流(带有唤醒计时器) < 14μA JN5121-xxx-M00/01 (> 100m ,18x30mm) • 标准模块, 0dBm power • M00: 板载陶瓷天线 • M01: SMA天线连接器, • 接收灵敏度-90dBm • TX 电流 < 45mA • RX 电流 < 50mA JN5121-xxx-M02 ( > 1km ,18x40mm) • 18dBm power 带 SMA 连接器, • 接收灵敏度-93dBm • TX 电流< 120mA • RX 电流 < 55mA JN513x模块 • 2.4GHz IEEE802.15.4 兼容,2.7-3.6V 工作电压 • 休眠电流(带有唤醒计时器) < 2.8μA JN5139-xxx-M00/01 /03(> 100m ,18x30mm) • 标准模块, 0.5dBm power; • 增强模式+2.5dBm; • 天线: M00板载陶瓷天线,uFI、SMA天线连接器, • 接收灵敏度–96.5dBm • TX 电流 < 37mA • RX 电流 < 37mA JN5121-xxx-M02/04( > 1km ,18x41mm) • 19dBm power 带 SMA 或uFl连接器, • 接收灵敏度-100dBm • TX 电流< 120mA • RX 电流 < 45mA JN513X功耗 Operation Current(mA) Sleep (RAM contents not held) 0.0051 Sleep (RAM contents held) 0.0075 Application running (wireless transceiver off) 9.000 Application running (wireless transceiver on) 12.80 Radio Transmitting 37 Radio Receiving 37 功耗计算示例 以休眠10钟为例,功耗计算如下: 10分钟平均电流为:2418.168 / 600 = 4.03 µA 则两节1000mAh的7号电池,其使用时间为:25年 EK系列开发包 DK系列开发包 软件平台 •开发包特性 •SDK的安装 •高功率模块 •参考文档 Jennic开发包技术特性 软件开发套件: - 集成的编辑、编译以及Debug调试环境; - 802.15.4、Zigbee、Jenie、AT-Jenie协议栈库; - 控制器和外围设备驱动库; - 不同的Demo应用程序,包括传感网络,家庭控制等; 各种手册: -硬件手册; -参考设计; - API手册; -用户手册; -应用程序注意事项; 测试环境: - Daintree 无线传感器网络分析工具包(基本版); - IEEE802.15.4报文窃听器和网络测试应用程序 ; 注:原装开发包中包含。 安装开发平台 JN-SW-4031-SDK-Toolchain-v1.1.exe,按照默认路径安装。 安装协议栈库文件 安装库文件JN-SW-4030-SDK-Libraries-v1.1.exe,按照默认路径安装。 库的调用(一) 如果你要进行库的修改,则可以在CodeBlock中进行设置, Project→Build options,如下所示: 库的调用(二) 头文件的替换入下图所示 命令行方式下载程序(一) 1. 工程默认目录,必须安放到以下路径: x:\Jennic\cygwin\jennic\SDK\Application\ 2. CodeBlock 编译: 3.设置下载连接: Tools菜单->configure tools…->编辑- 命令行方式下载程序(二) 命令行下载程序(三) 第三行应为 f${PROJECT_DIR}JN5121_Build\${PROJECT_NAME}.bin -c4 ( 最后的’4’为串口号.USB->串口线编程时,需要9线信号完整) 4.启动下载:Tools菜单-Download To Flash; 5.模块处于可编程状态(请注意跳线); 6. 模块通电启动进入可编程模式; 7. 下载程序 8.使用命令行的方式下载程序也可以把license 保存写来。 Flash Programmer下载程序 如果你购买的是DK系列的开发包, 在使用Flash Programmer下载程 序时,请按照以下步骤进行 [1] 编译目标源代码生成bin文件 [2] 运行Flash Programmer [3] 点击browse选择目标bin文件 [4] 选择所使用串口 [5] 连接好串口电缆 [6] 将J6条线至于PROG处 [7] 将目标板电源打开 [8] 点击Program [9] 运行时,请将J6跳线至RUN处 注:运行与编程模式时,J2与J3跳 线按照出厂时的跳线位置即可。 关于Flash-Programmer的详细使用 说明,请参考说明文档: JN-UG-3007-Flash-Programmer 软件调试 软件调试主要有两种方式: 第一种方式: Code::Block IDE开发环境中自带的Debug调试模式,使用这种模式的话,用户需 要在编译时使用Debug模式,然后通过前面介绍的方式把编译的代码下载到硬件中, 然后就可以在程序中设置断点、单步执行等操作。目前这种调试模式,调试速度比 较慢,全局变量看不到,以及与协议栈有关的部分代码不能够设置断点等。 第二种方式: 使用vPrintf函数把你需要看到的变量通过串口工具输出来,这种模式的话,就必须 使用Release的编译模式。使用该函数主要包括printf.c, printf.h这两个库文件,把这 两个库文件加入到您的工程中,然后在主程序的代码头部include下面包含头文件 #include “..\..\..\Chip\Common\Include\Printf.h“,然后在您的代码的初始化设备的 函数里加入vUART_printInit();一般应该在(void)bBosRun(TRUE)的前面加入。这样 就可以在您的代码的任何地方使用vPrintf来向串口输出信息了。 例如:vPrintf(“Temp= %d \r\n”,u16Temp);目前支持的格式主要有: %d:十进制; %x:十六进制; %b:二进制 ;%c:字符 ;%s:字符串; 注:关于Code::Block的详细使用说明以及调试方法,请参考 JN-UG-3028-CodeBlocks.pdf 高功率模块(一) • 如果你使用的是Jennic的M02,MO4高功率模块,那么需要在软件中打开高功 率,否则通讯距离会非常近。打开高功率的方法有两种: 方法一: • JN5121高功率使能 PUBLIC void AppColdStart(void) { uint32 *pu32Reg; uint32 u32TempPwrCtrl; pu32Reg = (uint32 *)0x10000000; u32TempPwrCtrl = *pu32Reg; *pu32Reg= u32TempPwrCtrl | 0x02000000; /* Set network information */ JZS_sConfig.u32Channel = WSN_CHANNEL; JZS_sConfig.u16PanId = WSN_PAN_ID; /* General initialisation */ vInit(); /* No return from the above function call */ } /* JN5139高功率使能 */ vAHI_HighPowerModuleEnable(TRUE,TRUE); /* Start BOS */ (void)bBosRun(TRUE); 注:JN5139使能只需要在BOS系统启动前添加 高功率使能函数即可。 高功率模块(二) 方法二: 编译时,直接用高功率库替换掉低功率库即可,对于JN513X系列,则仍要调 用高功率使能函数。具体可以参考JN-AN-1049-Developing-With-High-PowerModules-1v3.pdf这个文档。 参考文档—软件平台 编号 说明 JN-SW-4031-SDK-Toolchain.exe 开发平台 JN-SW-4030-SDK-Libraries.exe 协议栈库文件 JN-SW-4022-Production-Test-API 产品测试库 JN-RN-0010-SDK-Toolchain 开发平台更新说明 JN-RN-0011-SDK-Libraries 协议栈库更新说明 MacZigbeeLicInst1.2.0 License重写工具 无线抓包工具 能够进行无线数据的抓包 注:开发平台、协议栈以及产品测试库,请按照默认路径以及先后顺序进行安装。 如果你的MAC地址丢失,可以使用MacZigbeeLicInst1.2.0重写license。 参考文档—802.15.4 编号 说明 JN-UG-3029-JN5139-EK000-Getting-Started JN5139EK00开发包包含的主要软硬件 JN-UG-3032-802-15-4-HomeSensorDemo JN5139EK000开发包WSN Demo程序应用指南 JN-UG-3024-IEEE802.15.4-Wireless Networks 802.15.4协议栈使用指南 JN-RM-2024-IEEE802.15.4-App-Dev IEEE 802.15.4开发参考 JN-RM-2001-Integrated-Peripherals-API 模块外围硬件操作接口API JN-RM-2002-802.15.4-Stack-API 802.15.4协议栈API JN-RM-2003-Board-API 传感器板和控制器板的外围器件操作API JN-UG-3028-CodeBlocks 开发平台CodeBlocks使用指南 JN-UG-3007-Flash-Programmer Flash Programmer下载程序使用指南 JN-AN-XXXX 不同应用的例程 参考文档—Zigbee 编号 说明 JN-UG-3030-JN5139-EK010-Getting-Started JN5139EK010开发包包含的主要软硬件 JN-UG-3033-ZigBee-HomeSensorDemo JN5139EK010 Zigbee WSN网络应用指南 JN-UG-3017-ZigBeeStackUserGuide Zigbee协议栈用户指南 JN-UG-3045-ZigBee-Advanced-User-Guide Zigbee协议栈用户使用高级指南 JN-RM-2001-Integrated-Peripherals-API 模块外围硬件操作接口API JN-RM-2003-Board-API 传感器板和控制器板的外围器件操作API JN-RM-2014-ZigBeeAppDevAPI ZigBee应用开发API JN-RM-2017-ZigBeeDeviceProfileAPI ZDP API 参考手册 JN-RM-2018-ZigBeeAppFramework-API ZigBee AppFramework API 参考手册 JN-RM-2021-BOS-Operating-System-3v1 BOS操作系统的构架以及使用说明 JN-UG-3028-CodeBlocks 开发平台CodeBlocks使用指南 JN-UG-3007-Flash-Programmer Flash Programmer下载程序使用指南 JN-AN-XXXX 不同应用的例程 参考文档—Jenie 编号 说明 JN-UG-3050-JN5139-EK020-Getting-Started JenNet与AT-Jenie开发应用指南 JN-UG-3046-Jenie-HomeSensorDemo JN5139EK020 Jenie WSN网络应用指南 JN-UG-3042-Jenie-API Jenie API用户指南 JN-RM-2035-Jenie-API Jenie API参考手册 JN-UG-3041-JenNet JenNet协议栈用户指南 JN-RM-2003-Board-API 传感器板和控制器板的外围器件操作API JN-UG-3028-CodeBlocks 开发平台CodeBlocks使用指南 JN-UG-3007-Flash-Programmer Flash Programmer下载程序使用指南 JN-AN-XXXX 不同应用的例程 参考文档—AT-Jenie 文档名称 描述 JN-RM-2037-DR1080-Starter-Board JenNet与AT-Jenie开发应用指南 JN-UG-3043-AT-Jenie AT-Jenie协议栈使用指南 JN-RM-2038-AT-Jenie AT指令详细的说明与配置参考 JN-RM-2036-AT-Jenie-Quick-Command-Ref AT-Jenie指令概述参考 JN-UG-3028-CodeBlocks 开发平台CodeBlocks使用指南 JN-UG-3007-Flash-Programmer Flash Programmer下载程序使用指南 其它参考手册 文档名称 描述 JN-AN-1001-Power-Estimation 模块功耗计算 JN-AN-1003-Boot-Loader-Operation JN-AN-1004-Ccm-Encryption JN-AN-1007-Boot-Loader-Serial-Protocol JN-AN-1010-PortingToRomMac JN-AN-1014-Site-Survey-Tool JN-AN-1016-ZigBee-Wireless-UART 协议栈 802.15.4 Zigbee Jenie AT-Jenie 6LoWPAN 协议栈 802.15.4堆栈接口 IEEE802.15.4和串口应用实例 • JN-AP-1005-Wireless-UART-1v8.zip IEEE802.15.4和串口应用实例 IEEE802.15.4和串口应用实例 • • • • 程序结构 802.15.4事件队列 硬件事件队列 802.15.4收发 程序结构 PUBLIC void AppColdStart(void) { vWUART_Init(); while(1) { vProcessEventQueues(); switch (sCoordData.sSystem.eState) { case E_STATE_INIT: sCoordData.sSystem.u8Channel = CHANNEL_MIN; sCoordData.sSystem.eState = E_STATE_START_ENERGY_SCAN; break; case E_STATE_START_ENERGY_SCAN: vStartEnergyScan(); sCoordData.sSystem.eState = E_STATE_ENERGY_SCANNING; break; case E_STATE_ENERGY_SCANNING: break; case E_STATE_START_COORDINATOR: vStartCoordinator(); sCoordData.sSystem.eState = E_STATE_RUNNING_UART_APP; break; case E_STATE_RUNNING_UART_APP: break; } // 802.15.4 FSM 802.15.4事件队列 PRIVATE void vProcessEventQueues(void) { MAC_MlmeDcfmInd_s *psMlmeInd; MAC_McpsDcfmInd_s *psMcpsInd; AppQApiHwInd_s *psAHI_Ind; /* Check for anything on the MCPS upward queue */ do{ psMcpsInd = psAppQApiReadMcpsInd(); if (psMcpsInd != NULL) { vProcessIncomingData(psMcpsInd); vAppQApiReturnMcpsIndBuffer(psMcpsInd); } } while (psMcpsInd != NULL); /* Check for anything on the MLME upward queue */ do { psMlmeInd = psAppQApiReadMlmeInd(); if (psMlmeInd != NULL) { vProcessIncomingMlme(psMlmeInd); vAppQApiReturnMlmeIndBuffer(psMlmeInd); } } while (psMlmeInd != NULL); …. 硬件事件队列 ……. /* Check for anything on the AHI upward queue */ do { psAHI_Ind = psAppQApiReadHwInd(); if (psAHI_Ind != NULL) { vProcessIncomingHwEvent(psAHI_Ind); vAppQApiReturnHwIndBuffer(psAHI_Ind); } } while (psAHI_Ind != NULL); } 802.15.4数据收发 MAC_McpsReqRsp_s sMcpsReqRsp; MAC_McpsSyncCfm_s sMcpsSyncCfm; uint8 *pu8Payload, i = 0; int16 i16RxChar; /* Create frame transmission request */ sMcpsReqRsp.u8Type = MAC_MCPS_REQ_DATA; sMcpsReqRsp.u8ParamLength = sizeof(MAC_McpsReqData_s); /* Set handle so we can match confirmation to request */ sMcpsReqRsp.uParam.sReqData.u8Handle = 1; /* Use short address for source */ sMcpsReqRsp.uParam.sReqData.sFrame.sSrcAddr.u8AddrMode = 2; sMcpsReqRsp.uParam.sReqData.sFrame.sSrcAddr.u16PanId = PAN_ID; sMcpsReqRsp.uParam.sReqData.sFrame.sSrcAddr.uAddr.u16Short = COORD_ADDR; /* Use short address for destination */ sMcpsReqRsp.uParam.sReqData.sFrame.sDstAddr.u8AddrMode = 2; sMcpsReqRsp.uParam.sReqData.sFrame.sDstAddr.u16PanId = PAN_ID; sMcpsReqRsp.uParam.sReqData.sFrame.sDstAddr.uAddr.u16Short = sCoordData.sNode.asAssocNodes[0].u16ShortAddr; /* Frame requires ack but not security, indirect transmit or GTS */ sMcpsReqRsp.uParam.sReqData.sFrame.u8TxOptions = MAC_TX_OPTION_ACK; pu8Payload = sMcpsReqRsp.uParam.sReqData.sFrame.au8Sdu; pu8Payload[i++] = u8TxFrameHandle++; pu8Payload[i++] = (uint8)i16RxChar; /* Set frame length */ sMcpsReqRsp.uParam.sReqData.sFrame.u8SduLength = i; /* Request transmit */ vAppApiMcpsRequest(&sMcpsReqRsp, &sMcpsSyncCfm); } ZigBee Application Framework BOS介绍和程序结构 WSN应用例程 • JN-AP-1015-Zigbee-Wireless-Sensor-Network1v4.zip ZigBee 开发接口 API • • • • • • • • • AppColdStart:这个函数是用户应用程序的入口。设备上电后应用程序就从这 个函数开始运行了。Jennic的程序并没有C语言程序中的main函数。在这个函 数的函数体中应该调用一系列的协议栈和BOS(Basic Operation System)的初始 化函数. AppWarmStart:设备从内存供电的休眠模式唤醒的时候将进入这个函数。启动 后所有的内存数据都没有丢失。如果您的设备不需要休眠唤醒功能,这个函 数可以为空。 JZA_vAppEventHandler:协议栈会周期性的调用这个函数,这里我们定义了 一个时钟,用户可以在这里编写自己的主要应用 JZA_vStackEvent:协议栈将通过这个函数反馈网络层的一些网络事件,比如 网络启动成功或者节点加入成功,或者数据发送完成等等。 JZA_vPeripheralEvent:这个函数主要用来处理外部的硬件中断,比如说时钟 还有串口等等。 JZA_eAfKvpObject :用于用户程序接收处理其它节点发送来的KVP数据。 JZA_u8AfMsgObject :用于用户程序接收处理其它节点发送来的MSG数据。 JZA_vAfKvpResponse :这个函数用来接收发送的KVP包的回应。这一回应由远 程节点发出。通常这个函数用来判断和远程节点通讯是否通畅。 JZA_vZdpResponse :这个函数用来接收所发送的ZDP请求的回应,比如说 Binding或者Match Desciptor的请求.. Jennet协议栈 AT-Jenie提供了与底层协议栈 JenNet交互的AT指令的接口 Jenie 是JenNet协议 栈的编程接口函数 API JenNet 管理 • 网络信息 • 网络发现 • 网络加入 • 路由修复 • 临近节点数据的收发 JenNet 协议栈 协议栈特性: • 私有协议栈,支持星型、树状、链状网络。 • 在树状网络中最多支持250节点, 在链状网络中最多支持1,000个节点 • 较小的代码空间(Coordinator <30kB) • 快速相应时间,相邻节点直接通讯,低于2ms • 稳定与健壮的通讯, 点对点传输都会有一个数据 发送后返回的确认 • 终端设备可以使用电池长时间工作 • 128-bit AES 数据加密 • 信息广播 Cluster Tree - 50 JenNet网络 JenNet 基于IEEE802.15.4 ,支持以下网络技术: 点对点、星型网络 线性网络 JenNet 网络节点 • 一个网络中只能有一个Coordinate • Routers在树状网络中路由节点的数据 • End devices 在网络中可以休眠 树状网络 JenNet 网络特性 网络技术: 数据服务: 所需资源: 点对点 Data to Coordinator 网络大小 100 节点 1,000 节点 星型 Data to Peer Coordinator 22kB RAM 32kB RAM 树状 Data to Network (Broadcast) Router 22kB RAM 32kB RAM 链状 AT-Jenie 指令集 End Devices 16kB RAM 16kB RAM 数据加密: 硬件支持平台: Coordinator AES 加密 JN5139 芯片 Router 服务: JN5139 模块 End Devices(可休眠 ) 绑定-例如灯与开关的绑定 JN5139 开发包 设备类型: 网络特点: 自动组网 开发工具: 网络参数保存 GNU工具链: ANSI C, C++ 编译器 自动恢复 Debugger调试, Flash programmer下载工具 网络大小: Code::Blocks IDE开发与调试环境 最大1,000节点 应用例程 - 最大深度: 可配置 数据速率与频道: - 最大子节点数: 10 IEEE802.15.4 标准MAC 层 - 250kbps 、免费ISM 2.4GHz频道分16个通道 - 52 Jenie—API high Abstraction Level low Level 1: Native API uint8 u8SrcEP = sSwitch.u8Endpoint; APS_ Addrmode_e eAddrMode; uint16 u16DestAddr; uint8 u8DestEndpoint; AF_Transaction_s Transaction; uint8 transCount = 1; eAddrMode = APS_ADDRMODE_NOT_PRESENT; u16DestAddr = 0x0000; u8DestEndpoint = 0x00; Transaction.u8SequenceNum = u8AfGetTransactionSequence(TRUE); Transaction.uFrame.sKvp.eCommandTypeID = KVP_SET; Transaction.uFrame.sKvp.eAttributeDataType = KVP_UNSIGNED_8BIT_INTEGER; Transaction.uFrame.sKvp.u16AttributeID = ATTRIBUTE_ON_OFF; Transaction.uFrame.sKvp.eErrorCode = KVP_SUCCESS; Transaction.uFrame.sKvp.uAttributeData.UnsignedInt8 = u8SwitchValue; afdeDataRequest(eAddrMode, u16DestAddr, u8DestEndpoint, u8SrcEP, PROFILEID_HC, CLUSTERID_ON_OFF_SRC, AF_KVP, transCount, &Transaction, APS_TXOPTION_NONE, ENABLE_ROUTE_DISCOVERY, 0); Level 2: Jenie CustotsJenieService sService = {0}; uint8 au8Data[2] = {ATTRIBUTE_ON_OFF, u8SwitchValue}; eJenie_SendDataToBoundService (&sService, au8Data, 2, TXOPTION_ACKREQ); Level 3: AT-Jenie “SDS 0,2,3401,1” AT - Jenie Jenie Jenie NWK NWK NWK PHY + MAC IEEE802.15.4 PHY + MAC IEEE802.15.4 PHY + MAC IEEE802.15.4 high Complexity © Jennic Ltd 2007 – www.jennic.com low - 53 Jenie开发指南 对于Jenie的详细编程开发指南,请参考JN-AP-1085-Jenie-Tutorial,主要 包含以下几部分: 1.开发工具与应用框架 2.Coordinate创建网络 3.Router加入网络 4.使用服务 5.End Device加入网络 注:用户必须有JN5139开发包或者JN5139-EK020开发包; 程序说明文档:JN-AN-1085-Jenie-Tutorial-1v0 编程接口参考文档:JN-RM-2035-Jenie-API AT-Jenie AT-Jenie 指令主要是为了使开发厂商得以快速导入低成本,低功耗的短距离双向 无线通讯协议而设计的解决方案,可用于传统线路的取代及新兴的感测网络设备 之中。 AT-Jenie指令集是一种基于传统串行 接口的控制命令,普遍用于市面上许多产品, 如计算机的平行输出入端口、工业控制等。基于AT-Jenie命令集的控制,开发厂 商将可以轻易的将低成本的整合入自己的产品中,而无须了解太多无线标准的细 节。 不过,使用AT-Jenie需要有一个单片机或者控制器结合我们的模块进行使用的, 用户不需要了解具体的编程开发,只需要简单的AT-Jenie指令就可以组建自己的 个人无线网络。 AT-Jenie AT-Jenie PC + 应用节点 AT-Jenie网络 • • • • • • • • • • 配置AT-Jenie 解析器 通过启动Coordinate来创建网络 启动其它节点,并申请来加入网络 配置节点无线收发器 配置数据传输安全 注册以及请求服务(服务发现) 服务绑定 数据发送与接收 End Device休眠模式 直接控制处理器与开发板上的硬件资源 配置Coordinator (一) 1) 配置串口 命令:CCF,115200,1,0,1,0 – “115200” 波特率 – “1” 设置系统数据类型 – “0” 禁止检查和 – “1” 打开回显 – “0” ASCII 显示 2) 配置完毕以及启动Coordinate 网络PAN ID号、通道号等配置 命令: INI,1234,d18,x12345678,0 – “1234” 设置PAN ID号 – “d18” 通道选择(d18 为十进制18,如果设置为0,则系统会从11-26通道中 选择最安静的通道来启动网络) – “x12345678” 网络应用ID号 – “0” 禁止恢复网络参数 配置Coordinator (二) 1)以Coordinate启动网络 STR,0 – “0” 作为Coordinate来启动网络, “1” 作为Router来启动网络, “2” 作为End Device启动网络 – 如果网络启动成功,则会返回NTU,0 , ‘0表明节点类型为coordinator 2) 允许有子节点 SAS,1 – “1” 允许其有子节点, “0”禁止其它节点来连接该节点 配置Router 1) 配置串口 CCF,115200,1,0,1,0 2)完成Router网络参数配置 INI,1234,d18,x12345678,0 – 必须与要加入的网络的网络参数一致 3) 启动Router STR,1 – “0” 作为Coordinate来启动网络, “1” 作为Router来启动网络, “2” 作为End Device启动网络 – 如果加入网络成功,则返回父节点的MAC地址NTU,00158D000005A716 – 在父节点会返回 CHJ,00158D0000068ADD ,表明已经有一个节点作为其 子节点加入网络中 . 4) 允许有子节点 SAS,1 – “1” 允许其有子节点, “0”禁止其它节点来连接该节点 数据传输 – – – – – Coordinate发送端 SND,address,”Hello world”,d11,1 目标地址为64位的MAC地址 如果发送的信息是ASCII,则需要使用双引号 “d11”是终端要发送的字节数 “1” 表明节点发送的信息没有加密而且需要一个ACK的返回确认 稍后会返回一个PKS ,表明已经成功的发送了一个数据包,对方返回了 一个ACK。 接收端 DAT,00158D000005A716,0,B,48656C6C6F20576F726C64 十六进制数为发送者地址, 0 为无用标示符, 十六进制B为字节数量,其 余的为发送的 ASCII值。 6LoWPAN网络协议栈 Jennic的6LoWPAN网络协议栈提供了一个基于2.4GHz IEEE802.15.4 协议标准的无线连接方案,使嵌入式无线功能的设备能够与目前的IP 网络进行数据传输与通讯。该协议栈运行在功能强大的JN5139硬件平 台上,提供了单芯片无线低功耗系统与现有的其它IP设备连接的无缝 连接。 6LoWPAN协议栈支持点对点、星型网络以及树状网络,开发者能够在 此基础上快速搭建自己的一个高效稳定无线网络。通过Jennic提供的 高效编程接口API函数(Jenie / SNAP),用户不需要去了解复杂的无 线网络技术,就能够使用户方便的在自己的产品中添加无线功能以及 快速的推向市场。 6LoWPAN网络协议栈 6LoWPAN网络协议栈 感谢! F&Q