
传感层与传输层接口协议.doc
5页1.1 包结构整表为协调器与网关之间通讯格式 红色部分为节点与协调器之间通讯格式包结构名称Byte说明head[0]0x7Econf[1]帧配置信息id[2:5]设备IDoper⑹操作码serial[7]序列号payload[8:n]数据内容tail[n+1]0x7E1.1.1 设备 ID设备ID (id)名称长度说明device_id[31:0]0xFFFFFFFF表示全网广播、与帧配置信息(conf)中type值为0b11共同使用0xFFFFFFFE表示全网路由广播、与帧配置信息(conf)中的type值为0b11共同使用 其它当conf中type值为0b10、其低2字节 表示组播设备,即[15:0]位其它当conf中type值为0b00/0b01表示点播设备地址1.1.2 帧配置信息帧配置信息(conf)名称bit位说明versi on[7:6]0b00表示协议版本00b01表示协议版本10b10表示协议版本20b11表示协议版本3type[5:4]0b00表示该包是request包0b01表示该包是response包0b10保留(组播包)0b11表示该包是广播包security[3:2]0b00表示该包未加密0b01保留表示该包米用加密配置00b10保留表示该包米用加密配置10b11保留表示该包米用加密配置2serial[1]0b0表示不使用指令序列号0b1表示使用指令序列号(默认启用)reserved[0]保留1.1.3 操作码操作码(oper)名称位置说明oper[7:0]上位机对传感器节点的操作,或传感器节点对上 位机的请求。
具体参考命令表1.1.4 序列号序列号(serial)名称位置说明serial[7:0]上位机发下来的命令序列号; request 和 response 的序列号一一对应1.1.5 数据内容数据内容(payload)名称Byte 位说明Payload[n:0]下发、上传操作的附加内容具体参考各传 感器个各功能详细定义传输的数据头和尾都为0x7E;当数据段中遇到0x7E时使用0x7D/0x5E两个字节替换0x7E;当数据段中遇到0x7D时使用0x7D/0x5D两个字节替换0x7D转码可参考如下代码:************************************************* @功能:解析数据包,将仿PPPOE格式转为正规数组* @参数:orginal传入:要解析的字符串* len_ori传入:需要解析的字符串长度* retbuf传出:解包后的数据* len_ret传出:解包后数据的长度* @返回值:传入数据正确返回0,否则返回-1* @说明:无***************** /int analyze_data(char*orginal,int len_orig,char*retbuf,int*len_ret) {int i,jif(orginal[0]!=0x7e|| orginal[len_orig 1]!=0x7e){return 1}for (i=0 , j=0 iif(orginal[i]=< len orig i++,j++){=0x7d){++ iretb]= orginal[i]A0x20}else{retb]= orginal[i]*len_ret = jreturn。
}************************************************* @功能:打包数据,将数据打包成仿PPPOE格式* @参数:orginal传入:需要打包的原始数据* len_ori传入:需要打包数据的长度* retbuf传出:打包后的数据* len_ret传出:打包后数据的长度* @返回值:判断需要打包的数据格式正确返回0,否则返回-1* @说明:无***************** /int pack_data(char*orginal, int len_orig, char*retbuf, int*len_ret) {int i=0,j=0if(orginal[0]!=0x7e|| orginal[len_orig 1]!=0x7e){return 1}retbuf0]=Ox7efor(i =1,j=1 i < len_orig 1 i++,j++){if(orginal[i]==0x7d){ retbt=0x7d++ jretj]=0x5d}elseif(orginal[i]==0x7e){retj]=0x7d++ jretbl=0x5e}else{retbt= orginal[i] }}retbufj ]=0x7e*len_ret = j +return。
}86开关:双按键开关1 2 3编号按键信号灯信号继电器信号1P0 4 (下降沿触发)P0 0 (低电平点亮)P1 0 (高电平使能)2P0 5 (下降沿触发)P0 1 (低电平点亮)P1 6 (高电平使能)3P0 6 (下降沿触发)P0 2 (低电平点亮)P1 2 (高电平使能)功能组网键: P1_3 (下降沿中断)86开关:单按键开关编号按键信号灯信号继电器信号1P0 5P0 1P1 0功能组网键: P1_3红外伴侣功能按键:P0_5指示灯: P1_4 / P1_5串口 0: P0 3/P0 2功能说明指令头功能码学习部分控制部分说明学习指令0X03 0X070x01XX00XX表示学习的键值0~255学习指令ACKOXEF 0XEF0X0000XX告知控制芯片,学习 MCU已经正确接收指令学习成功ACK0XEF 0XEF0x0100XX学习失败ACK0XEF 0XEF0x0400XX控制指令0X03 0X070x02XXNUMNUM为偶数,且每次发 送不同控制成功ACK0XEF 0XEF0x0300XX控制失败ACK0XEF 0XEF0x04NNXX其中NN的值不确定, 在发送NUM为奇数时会 出现NN=01的情况。
并 发送两帧错误码人体红外传感器功能按键: P0_5指示灯: P1_4有人无人: P0_7 光照传感器功能按键: P0_5LED 指示灯: P1_4IIC_SCK: P0_7IIC_DAT: P0_6 光电烟雾传感器(14)组网功能按键: P0_5指示灯: P1_4烟雾检测: P0_7可燃气体传感器(14)注:开机LED灯闪烁,预热闪烁频率1HzLED灯P1_1 :低电平LED闪烁频率2Hz组网功能按键 P1_3 : 焊接添加的,设备本身没有温湿度传感器(14)功能按键:P0_5指示灯:P1_4IIC_SCK:P0_7IIC_DAT:P0_6调色灯功能按键:P1_3绿色灯:P1_0蓝色灯:P0_7红色灯:P1_1空气质量传感器P0_1 ADC 检测P0_5 功能按键P1_1 LED 指示灯智能插座功能按键: P0_4LED 指示灯: P1_4继电器控制: P1_0。
