实验箱通信协议V12-刘明星_第1页
实验箱通信协议V12-刘明星_第2页
实验箱通信协议V12-刘明星_第3页
实验箱通信协议V12-刘明星_第4页
实验箱通信协议V12-刘明星_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、产品名称配置管理编号文档编号版本v 1. 1密级智能实验箱协议说明书拟制:h期:审核:日期:审核:日期:批准:h期:版本历史版本日期描述(修改原因)作者(修改者)vi. 02012. 3. 23草案初稿徐朝农vi. 12012. 6. 11根据八篇章的实验指导书,添加最新实验协议林伟刁博宇vi. 22013. 8. 24添加气体传感器、红外避障传感器实验协议刘明星目录1、引言41. 1编写目的41. 2、技术术语41. 3、参考资料42、总体设计52. 1、需求概述52. 2、框架结构53、无线zigbee通讯协议53. 1、报文格式53. 1. k示例1:传感器上传数据包格式.63. 1.

2、2、示例2:传感器控制命令包格式.63. 2、数据类型(pkt_type)定义规则73. 3、数据类型定义规则83. 3. 1. 1» 传感数据类型(sensor_type) 83. 3. 2、命令类型定义93. 3. 3、配置信息114、有线测试床协议124. 1、在程序下载态时的协议124. 2、在非程序下载状态的协议134. 2. 1、报文格式.134. 2.2、报文类型(pkt_type)定义规则134. 2.3、命令类型定义144. 2.4、配置信息的数据负荷定义155、典型工作流程165. 1、灯的状态指示165. 2、终端节点工作流程165. 3、pad工作流程166、

3、地址分配方案171、引言本文档针对智能实验箱节点定义出接口,将连接软硕件部分,为下一步的系统设计提供 依据。本文档重点描述框架结构以及功能需求,不涉及具体应用。1. 1、编写目的根据项目开发需求,定义网关节点的接口和架构,本文档实现如下说明:> 无线zigbee部分 节点上报报文的数据结构 命令报文的数据结构 配置报文的数据结构 节点无线地址的规定 各类传感器编号规则 crc16定义算法> 有线部分 命令报文的数据结构 节点有线地址的规定 配置报文的数据结构12、技术术语uart: universal asynchronous receiver/transmitter tcp/ip

4、: transmission control protocol/internet protocol udp: user datagram protocolsink:协调器节点pad:上位机,这里代表上位机来进行描述ack:回复信息node:传感器节点rfid读头:低频13.56m/身份证卡读卡设备1. 3、参考资料1. nokacsdl说明文档2. tcp-ip详解卷一:协议3. 节点与协调器通信协议(v2.0)2、总体设计分为两类通讯协议:无线zigbee通信和有线测试床通信。无线zigbee通信针对各类实 验;有线测试床通信针对实验程序下载、传感板与2530子板与程序之间的配对检查,节点

5、复位控制。2. 1、需求概述根据节点的设计需要,无线通信采用zigbee协议,有线测试床通信采用以太网协议(对 节点来说为串口)。有线通信与无线通信互不相干2. 2、框架结构3、无线zigbee通讯协议31>报文格式数据传输结构,如图所示。字节数21881211len-222前导码消息类型type目的地址desti nation源地址source包序号sn数据长度len包类型pkt_type冗余位reserved数据指针*data效验码crc16同步头协议层数据负载crcheadplayloadfooter> 同步头:通讯数据包同步字节,包含前导码和帧起始分隔符。前导码为两字节定义

6、为 “0xaa44”> type: lbyte上行数据为0x01,下行数据为0x02> destjd:8 bytes目标地址。> source_id:8bytes源地址。> seq: lbyte报文流水号(主要为了判断传感报文的乱序到达)> length:2byte整个报文的长度(以字节为单位)> pkt_type:lbyte包类型。分为pkt_typend和pkt_subtype_lnd 两个部分。> reserved: lbyte冗余位。可以考虑用于区分同一个mac上的系统类型的不同 传感器。> 帧尾(crc): crc16效验部分,检测数据

7、包屮的数据的完整性。311、示例1:传感器上传数据包格式typedef struct _uart_packetuint8 headl;uint8 head2;/t)xaa前导码/qx44uint8 type;uint8 dest8;uint8 src8;uint8 sn;uint8 len2;uint8 pkt_type;uint8 reserved;上下行数据标识0x01表示上行,0x02表示下行数据目的地址8个字节zigbee的mac地址源地址8个字节zigbee的mac地址数据包序号len0存放高字节,len存放低字节,len指示负载长度数据包类型0x10表示普通传感器数据包冗余位uin

8、t8 data3; 数据指针data0表示传感器类型(sensor_type),如0x01为温度,见3.3.1定义uint8 crc2; uart_packet;/crc16算法数据312、示例2:传感器控制命令包格式/a)xaa/0x44typedef struct _u art_co m m an duint8 headl;uint8 head2;uint8 type; uint8 dest8;uint8 src8;uint8 sn;uint8 len2;上下行数据标识目的地址源地址数据包序号/len0存放高字节,len存放低字节,len指示负载长uint8 pkt_type;uint8

9、reserved;uint8 data2;uint8 crc2;数据包类型0x20表示普通传感器控制命令包 冗余位数据指针字节数可以变化见3.3.2定义/crc16算法数据uart_command;3. 2、数据类型(pkt_type)定义规则在数据结构中数类型为一个字节,因此本规则将定义这一个字节数据每一位所代表的意 义,如同所示:1个字节76543210/pktjsuhtypcllnci> pkt.typejnd:描述了此数据包的类型,参见下节。> pkt_subtype_ind:描述了各种命令类型屮实施的具体命令类型。注:data.type:根据pkt_type_ind 11

10、1的类型定义相应的业务类型或者子类型pkt type ind (4 bit)pkt subtype ind (4 bit)0001:传感数据类型类0000:普通传感数据(在处理上没有优先级)0001:事件型传感数据0010:命令类型类0000:普通传感器控制命令0011:命令ack类0000:普通传感器控制命令ack0001:保留0010:保留其他:无效0100:配置信息0001:节点上传自己的地址和传感板id信息0010:配置信息确认ack回应(暂不实现)0011:节点上传自己的网络地址0100:节点上传mac地址和panld其他:保留其他其他备注1:包优先级说明,根据包的作用确定其优先级収

11、值,优先级収值越小代表优先级越大, 例如优先级取值为1,其优先性高于优先级取值为2,当前优先级映射中保留优先级15用 来以后映射,对应关系如上表所示。备注2:所有命令ack回应都是原始命令中的pkt_typend改为0011,其他不动。备注3:配置信息ack冋应都是原始命令屮的pkt_subtypend改为0010,其他不动例如:(1) > 当 pkt_type_lnd=0001 时 sensor_type 与 sensor_data 具体定义如下: data_type: lbyte传感数据类型。対于普通传感器类型,具体定义见6.1.1描述。(2) 、当 pkt_type_lnd=001

12、0 时 pkt_subtype_ind=0000x 0001 时无效。 pkt_subtype_ind=0011 时,data_type: lbyte请求命令类型,具体如下: 0x01:请求分配节点id,此时data域无效。33、数据类型定义规则3311、传感数据类型(sensor_type)根据现有的传感器定义出如下表格。町根据传感器数据手册定义另行修改传感器类型备注0x00 (保留,6.2.1节中使用)温度0x01湿度0x02电压0x03三轴角速度x轴0x04三轴角速度y轴0x05三轴角速度z轴0x06光照0x08两字节数据开关oxlc比如窗帘继电器三轴加速度x轴0x19三轴加速度y轴ox

13、la三轴加速度z轴oxlb气体传感器(co2和02)oxle前2个字节为co2值,后2个字节02值语咅识别0x23识别一个短句,输出一个数值。短句事先录 入,与数值是一一对应的关系。短句编号示例:“1 号” :0x11“2 号” :0x12“红灯” :0x21“ 绿灯” :0x22“亮”:0x31“关”:0x32交流电机0x24暂时未规定数据直流电机0x25暂时未规定数据超声测距0x26数据为一个整数,表示距离扬声器0x27led灯0x28点对点通信0x29红外避障传感器0x2 d状态值0x01有障碍区,0x00无障碍区广播通信0x30射频信号强度0x31数据为一个2字节整数,表示功率组包实验

14、0x32源节点上报路由0x33数据为2字节整数,第一个为源节点号,第 二个为目标节点号冃标节点上报路由0x34数据为2字节整数,第一个为源节点号,第 二个目标位协调器控制0x35指定路山实验0x36动态自组网0x37两个字节表示父亲的网络地址设定功率0x38网络地址0x39两个字节表示网络地址mac地址木口 panid0x4010个字节 前8个表示mac,后面pan id时间同步报文0x41四个字节表示当前时间332、命令类型定义在uart数据包当发送命令时,数据域中的传感器类型和命令格式如下图所示:普通传感器的命令类型泄义如下:传感器测试用传 感器类型备注传感器节点本身node reset:

15、 1(1字节命令,无参数)温度湿度电压三轴角速度x轴三轴角速度y轴三轴角速度z轴三轴加速度x轴三轴加速度y轴三轴加速度z轴气体传感器switch_off:0 (无参数)switch on: 1 (无参数)红外避障传感器switch_off:0 (无参数)switch on: 1 (无参数)开关大灯switch_off:0 (1字节命令,有1个字节参数)switch_on:1(1字节命令,有1个字节参数)交流电机(1)acmotor_foward: 1(1 字节命令,无参数)(2)acmotor_backword: 2 (1 字节命令,无参数)(3)acmotor_continuousforwa

16、rd: 3(1 字节命令,1 字节参数,如下)acmotor_c on tinuousforward + spped(1字节命令+1字节速度参数)(4)acmotor_continuousforward: 4 (1 字节命令,1 字节参数,如下) acmotor_c on tinuousbackward + spped(1字节命令+1字节速度参数)acmotor stop: 5 (1字节命令,无参数)直流电机(l)dcmotor_foward: 1 (1 字节命令,无参数)dcmotor_backword: 2(1字节命令,无参数)(3)dcmotor_continuousforward: 3

17、 (1 字节命令,1 字节参数,如卜)dcmotor_c ontin uousforward + spped(1字节命令+1字节速度参数)dcmotor_continuousforward: 4 (1字节命令,1字节参数,如下) dcmotor_c ontinu ousbackward + spped(1字节命令+1字节速度参数)dcmotor stop: 5(1字节命令,无参数)超声测距switch_off:0 (无参数)switch on:1 (无参数)扬声器play0:(参数为乐谱内容,后面前两个字节为乐谱数据域长度,不包括自身)pause 1:无参数stop 2:无参数led灯on:

18、1off: 0 (参数:0x01表示黄灯,0x02表示红灯,0x03表示绿灯)语音识別on: 0off: 1点对点通信0x29on: 1表示点对点实验(协调器向所有节点广播启动命令,但只有1,2号节点能够解析并启动点对点通信)off: 0 (停止命令同上)广播通信0x30on: 1表示广播实验off: 0(协调器向所有广播,但只有123能够解析命令包,启动点对点通信)射频信号0x31射频功率0x32参数为功率值一个字节源节点上报路由0x33目标节点上报路由0x34数据为2字节整数,第一个为源节点号,第二个目标位协调器控制0x35第一个字节为实验内容:0x01为广播实验0x02为zigbee组包

19、实验 后接3个字节为点灯控制命令0x03为射频信号强度实验0x04为zigbee地 址与参数实验0x05为指定路由实验参数为1号节点的mac和2号节点mac0x06时同冋步实验 后面一个字节参数为0x01开始,0x00停止指定路由实验0x360x01 0x00发给1号节点启动实验0x01网络地址发给2号节点启动试验0x00停止实验动态自组网0x370x01发给4号节点,启动周期发包0x00 停止设定功率0x381个字节的功率值协调器和端设备都可以改时间同步实验0x410x00 一个字节表示停止333、配置信息当节点发送配置信息时,数据域屮格式如下图所示:datatypedatadatatype

20、data其中,datatype定义为:信息类型数据类型取值数据备注mac地址0x02mac地址(8字节)传感器板id0x035字节程序版本0x041字节传感板id定义:厂商id传感器板id信息类型数据类型取值数据备注厂商id0x01深联1字节其他保留传感器板id0x01六轴传感板4字节0x02超声波+光+温湿度+扬声器传感板0x03语音板0x04电机控制板0x05rfid 板0x06气体传感器板0x07保留程序版本左义如下:程序内容版本id实验一0x01实验二0x01实验三0x01实验四0x04实验五0x01实验六0x06实验七0x07实验八0x08保留4、有线测试床协议4. 1、在程序下载态

21、时的协议采用串口协议:波特率115200bps, 8位数据位,1位停止位,1个起始位。 分为两步:(1) 进入bootloader模式,用户端发送sof(1 byte)len(1 byte)cmd(1 byte)其中:sof:帧的起始字节,恒定为oxfe; len:恒定为0x00; cmd:恒定为0x4fo(2) 用户端发送sof(1 byte)len(1 byte)cmd1(1 byte)cmd2(1 byte)datafcs(1 byte)sof:帧的起始字节,恒定为oxfe;len: data字段的长度;cmd1:恒定为0x4d,表示远程的控制命令;cmd2:具体的操作命令,包括: 0x

22、01:写flash, data字段的前两个字节存放写flash的首地址(其中data0 存放地址的低字节,data存放地址的高字节),data字段剩余部分长度 不可超过64字节,存放要烧写的程序片段。 0x02:读flash, data字段的前两个字节存放读flash的首地址(data0 存放地址的低字节,data存放地址的高字节),可以读取此首地址开始 的连续64个字节数据 0x03:如果确定节点上应用程序代码可用,可发送该命令取消节点上电后 对应用程序文件的校验,减小节点启动时间fcs:存放cmd1、cmd2、data三个字段的crc校验值。处理完用户命令后,节点返冋的响应数据包格式如下:

23、sof(1 byte)len(1 byte)cmd1(1 byte)cmd2(1 byte)datafcs(1 byte)sof:帧的起始字节,恒定为oxfe;len: data字段的长度;cmd1:恒定为0x4d,表示远程的控制命令;cmd2:响应包中cmd2值=(命令包中cmd2) or 0x80,具体响应如下: 0x81:对写flash命令的响应 0x82:对读flash命令的响应,data字段的笫2个和笫3个字节存放已读 flash的首地址,data1存放地址的低字节,data存放地址的高字节。 其后存放读取到的64个字节数据 0x83:对0x03命令的响应data:该字段的第一个字节

24、指示命令执行后的状态: 0x00:成功 0x01:失败fcs:存放cmdl、cmd2、data三个字段的crc校验值。4. 2、在非程序下载状态的协议4. 21、报文格式数据传输结构,如图所示。与3.1相同4. 2. 2、报文类型(pkt.type)定义规则在数据结构中数类型为一个字节,因此本规则将定义这一个字节数据每一位所代表的意 义,如同所示:1个字节76543210/rpktjrypejildpktjfubtyptlb> pkt.typejnd:描述了此数据包的类型,参见下节。> pkt_subtype_ind:描述了各种命令类型中实施的具体命令类型。注:data.type:

25、根据pkt_type_ind中的类型定义相应的业务类型或者子类型pkt type ind (4 bit)pkt subtype ind (4 bit)0001:保留0010:命令类型类0000:节点、传感控制命令0011:命令ack类0000:节点控制命令ack0001:保留0010:保留其他:无效0100:配置信息0001: pad请求节点的配置信息(无数据负荷)0010:配置信息确认ack回应(无数据负荷)(暂不实现)0011:节点上传自己的配置信息(数据负荷见424)其他其他备注1:所有命令ack回应都是原始命令中的pkt_type_lnd改为0011,其他不动。 备注2:配置信息ack

26、冋应都是原始命令中的pkt_subtype_lnd改为0010,其他不动。4. 2. 3、命令类型定义在uart数据包当发送命令时,数据域中的传感器类型和命令格式如下图所示:普通传感器的命令类型泄义如下:传感器测试用传 感器类型备注传感器节点木身0x00node reset: 1(1字节命令,无参数)温度3.3.1 定 义,以下同湿度电压三轴角速度x轴三轴角速度y轴三轴角速度z轴三轴加速度x轴三轴加速度y轴三轴加速度z轴开关灯 扬声器switch_off:0 (1字节命令,无参数)switch_on:1(1字节命令,无参数)有参数(1字节,0x00表示语音识别,0x01表示黄灯,0x02表示红

27、灯,0x03表示绿灯,0x04表示扬声器)交流电机(l)acmotor_foward: 1 (1 字节命令,无参数)acmotor_backword: 2 (1字节命令,无参数)(3)acmotor_continuousforward: 3 (1 字节命令,1 字节参数,如下) acmotor_c ontinu ousforward + spped(1字节命令+1字节速度参数)(4)acmotor_continuousforward: 4 (1 字节命令,1 字节参数,如下) acmotor_c ontinuo usbackward + spped(1字节命令+1字节速度参数)acmotor

28、stop: 5 (1字节命令,无参数)直流电机(1)dcmotor_foward: 1 (1 字节命令,无参数)(2)dcmotor_backword: 2(1 字节命令,无参数)(3)dcmotor_continuousforward: 3(1 字节命令,1 字节参数,如下)dcmotor_c on tinuousforward + spped(1字节命令+1字节速度参数)dcmotor_continuousforward: 4 (1字节命令,1字节参数,如下) dcmotor_continuousbackward + spped(1字节命令+1字节速度参数)dcmotor stop: 5

29、(1字节命令,无参数)超声测距switch_off:0 (无参数)switch on: 1 (无参数)备注1:只实现节点复位命令,其余暂不实现。备注2: pad不对sink节点实现任何命令控制(包括复位命令)4. 2. 4、配置信息的数据负荷定义格式与333节相i司。5、典型工作流程总原则:无线、有线完全独立运行,相互不影响5. 1灯的状态指示红灯亮:节点处于bootloader状态红灯灭、绿灯闪烁一次:节点进入正常程序状态黄灯闪:节点正在加入zigbee网络黄灯亮:节点已加入zigbee网络5. 2、终端节点工作流程(1)节点进入bootloader,等候30秒后(在此期间红灯亮),如无程序下载命令,则正 常启动程序(红灯灭,绿灯闪烁一次)。(2)节点读取传感器板id号、自身mac地址、节点程序版本号。(3)节点将配置信息发送到pad (通过有线),不等待回应。并将配置信息发送给协调器(通过无线

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论