找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3228|回复: 0
收起左侧

通信协议书写规范总规范

[复制链接]
ID:72008 发表于 2015-1-12 18:33 | 显示全部楼层 |阅读模式
通信类思维导图(要求:在每次修改本协议时使用思维导图进行程序该CLASS是否被占用)
通信协议书写规范总规范        1
防盗系列产品终端开发协议        2
产品功能说明:        2
通信格式如下:        3
具体协议如下:        3
资产管理手持端开发协议        3
概述:        3
串口指令说明:        3
无线指令说明:        4
具体协议如下:        4
AirConditionerControler 无线协议        5
概述:        6
具体协议如下:        6
10x01  SET_ORDER  配置无线指令        6
20x02  SET_PLANT  设置工作计划        7
30x03   SET_TIME  设置系统时间时间        8
40x04 REPORT 报告人员运动情况        8
50x05  GUARD  资产看管        9

通信协议书写规范总规范
协议要求采用序列号+发送CLASS+发送ID+接收CLASS+接收ID+关键字+内容长度+内容+CRC校验+0x0d结束标记的方式进行,这样在多中设备进行通信时即使遇到相同的设备ID号也不会发生协议错乱的事件发生。
无线通信的地址要求统一,所有设备的通信地址为 :0x12,0x34,0x56,0x78,0x9a
通信频率为40,通信地址0,空中速率为2Mbit用于公共设备配置、心跳、应答使用,其他地址用于各的同类中进行使用,在个独立的系统内部的通信也要求按照统一的关键字进行编排,这样便于管理和通信数据的稳定。
配置类指令要求采用双向应答机制,自动重发,重发机制要求使用一个定时为1ms的定时器来保证整个系统通行的一致性。
各配置指令,要求每次最多要求最大允许数据长度为20bit
CLASS关键字在整个系统中都不允许重复且不予许为0x00,以保证每个设置在整个系统中都有一个唯一的通信地址。
所有设备的ID号禁止配置为0,并要求在程序中做数据检测。
具备心跳类发送的设备要求最大每间隔5s发送一次心跳包,心跳包中要求提示自己下次唤醒的时间。心跳包的结构如下:序列号+发送CLASS+发送ID+0x00+0x00+0x00+0x02+下次发送时间+故障标志位+CRC+结束符。
不同类设备要求进行兼容时,要求在各自的无线协议解析部分在接收端的无线解析下的CLASS进行添加已兼容不同的设备。这个可能会导致程序的空间变大,但是相对而言开发的统一性和兼容性会好一些,等做大后在进行对不同设备的CLASS进行统一标准。
关键字可以进行自定义,基本原则是0x00-0x7f为主设备,0x80-0xff为从设备的应答。
备注:本文中所有红色标记协议关键字都要求采用应答双向机制来进行数据确认。
研发部
201443无线楼道开发协议
20144714:24:24
概述:
本协议为节能无线楼道开发协议,用于无线楼道的配置任务和检修任务。主要实现无线楼道的延时时间、开启条件、工作模式的配置的配置。内部数据的通信采用通道地址1进行,该系统内的数据交换是无需进行对外进行设置的。
按照公司无线通信的约定,本设备的CLASS0x04

无线通信格式如下:

序列号
发送CLASS
设备ID
接收CLASS
接收目标ID
关键字
内容长度
内容
CRC校验
协议尾
8bit
0x04
8bit
8bit
8bit
8bit
4bit
Nbit
8bit
0x0d

关键字                    宏定义             解释说明
0x01                SET                        用于设置本机的运行参数
0x02                INTERIM                用于临时开启本设备
应答内容为:
0x81         ACK                        用于确认已经成功的接收配置指令

内部通信规则:
通信通道为:1
通信地址为: 0x01,0x02,0x03,0x04,0x05
通信频率为: 40
通信的格式为:
标识0
标识1
标识2
发送ID
开灯原因
CRC校验
结束标记
0xff
0xff
0xff
8bit
8bit
8bit
8bit
开灯原因:
0x01  表示本ID号是首次检测到人体运动信息
0x02  表示本ID是因为上位ID号触发后本设备才检测到
0x03  表示本ID号是因为下位ID号触发后本设备才检测到
0x00  表示本设备ID号正常的内部心跳通信。

防盗系列产品终端开发协议
20144709:24:19
产品功能说明:
本产品采用NRF24LE1 Nordic8051 SOC 芯片,采用232纽扣电池供电,具备低压报警功能。采用TEA 80位的加密算法及双向确认机制,以保证本卡不会被人复制。最大消失时间为3S,加密算法错误将导致直接触发报警。在一个系统中最大允许同时监听设备数据位8张。只要设备申请了监听功能,在没有主动撤销的情况下设备丢失或者重启都将引发报警。同时本卡在成功注册后,在5s内没有接受到主机发送的心跳信息,将邀请以广播方式在本公司所有无线产品中广播被盗指令,便于在设备丢失后丢失物品。
概述:
本产品采用NRF24LE1作为终端RFID卡,采用乘法器来进行数据的加密算法。因为采用无线通信方式,因此在按照本公司的无线通信规则,该设备CLASS分配为0x03。加密规则为:使用TEA加密算法进行数据验证,加密的内容为使用随机数来产生明文,并且按照每次产生一次的方式来进行逐步迭代明文,在申请开始时,内部存储的明文统一为0x00,暗文的数据长度为10bit,明文长度为1位,即有效内容长度为11位。在接收端对给设备的合法性进行验证。该通信无需进行自动应答。
备注:此处的序列号取值范围为0-9,用于原消息密匙中需要替换的数据。该序列号的获得要求按照对随机数进行%10的求于获得。这样即使被人监听也没有办法,因为监听者要么在设备一初始化的时候就开始监听,要么就要等待随机数将0-9全部监听一篇后才有机会获得10的明文数据。
通信格式如下:
序列号
发送CLASS
设备ID
接收CLASS
接收目标ID
关键字
内容长度
内容
CRC校验
协议尾
8bit
0x03
8bit
8bit
8bit
8bit
4bit
Nbit
8bit
0x0d
具体协议如下:
关键字    宏定义             解释说明
        0x01        NET                        用于向接收终端发送心跳信息
0x02        ENROLL                用于向接收终端注册请求被监控信息
0x03        LOGOUT                用于向接收终端撤销被监控信息
0x04        KEY                        用于向本机写入32位的加密密匙
0x05                 POWER                        低压报警
0x06                ALARM                        广播发送被盗指令(包含4bit的设备ID号)
0x07                SET                                用于设备本卡的设备ID
备注:要求在注册请求被监控中,包含一个电池电量的状态。


资产管理手持端开发协议
20144622:45:44
备注:暂时使用数码管来进行数据的显示,后期要求采用5110显示屏来进行数据显示
概述:
本产品专门用于物流管理方向,用于在库房中快速寻找到自己产品的数量和种类。
本产品具备具备双按键,左键用于确认操作,右键用于切换显示内容。确认后将自动转入下一个需要搜索的目标,切换用于显示搜索物品名称/需要搜索的物品数量。
本产品具备无线通信能力,按照本公司无线分配规则,本产品所属的CLASS0x02

串口指令说明:
指令名称
指令功能说明
示例
SEARCH
用于查找库存中所要找的物品名称及数量
SEARCH(回车)
返回值:
N(名称)Q(数量)
NO 表示满意该物品
SHOW
用于显示库存中所有产品的详细数据包括各物品名称及数量
SHOW(回车)
返回值:
Total = 2
N 001Q003
N003Q002
表示本库存中物品种类有2中,名称001中有货物3件,名称003中有2
IN
用于向库存中输入一个新产品或向原有产品中添加等多数量
IN001030(回车)
说明:表示向物品名称为001的产品中添加30个产品
OUT
用于向库存中输出一个产品及减少该产品在库存中的数量
OUT002030(回车)
说明:表示从物品名称为002的产品种类中移除30
返回值:
N(名称)Q(数量)

DELETE
从库存中删除一个产品种类及其数量
DELETE003(回车)
说明:表示从库存中删除名称为003的产品数据

无线指令说明:
序列号
发送CLASS
设备ID
接收CLASS
接收目标ID
关键字
内容长度
内容
CRC校验
协议尾
8bit
0x03
8bit
8bit
8bit
8bit
4bit
Nbit
8bit
0x0d
具体协议如下:
关键字    宏定义             解释说明
        0x01       DOWNLOARD         从主机下载需要查找的数据量总数
0x02       DOWNPACK                 从主机下载详细的数据内容并且写入到flash
0x03       UPLOARD                本机向主机发送任务完成情况总数
0x04       UPPACK                        本机向主机发送详细的数据完成情况
0x05       SEARCH                        本机向其他设备发送寻找物品指令
0x06       CHECK                        本机向特定的设备发送盘点信息

应答协议:
        总述:对于关键字0x01-0x04只需要回答相应的发送序列号即可。
        0x05 0x06 要求接收端报告自己的详细数据情况,具体内容参考详细说明!
关键字    宏定义             解释说明
0x81        SEARCH_ACK                用于应答搜索指令
备注: 仅自身包含该物品名称的设备进行应答,应答内容仅为自身设备ID号,自身外设提示设备需要自动的开启一段时间以便于人员快速发现该物品所在位置。
0x82        CHECK_ACK                用于应答盘点指令
备注:该指令用于其他外设向本机发送自身所携带的全部内容,发送内容方式为:首先发送自己需要发送数据的大小,让后等待对方应答。在对方完成应答后再发送下一包数据直至全部内容发送完毕。



nrf24le1通信协议
20144421:12:21
概述:
本通信协议用于nrf24le1在巡更、资产管理方向的使用,按照本公司的无线通信分配规,本产品的CLASS0x01
无线通信协议格式:
序列号+发送CLASS+发送ID+接收CLASS+接收ID+关键字+内容长度+内容+CRC校验+0x0d结束标记
序列号
发送CLASS
设备ID
接收CLASS
接收目标ID
关键字
内容长度
内容
CRC校验
协议尾
8bit
0x01
8bit
8bit
8bit
8bit
4bit
Nbit
8bit
0x0d
备注:
具体指令说明如下:


串口指令说明:
概述:
本串口指令仅适用用本产品,要求严格按照串口指令说明进行操作,否则将出现“cmd error”提示。
具体指令如下:(备注:所有串口指令均以回车键结束(0x0d))
指令名称
指令格式说明
示例
TEST
用于测试串口是否正常返回值“uart ok
TEST(回车)
VT
用于查看系统电压情况是否高于2.3V,如果高于则返回H,否则返回L
VT(回车)
AD
用于获得通道6P06)端电压,放回值为D=2bit 16进制数,高位在前
AD(回车)
AD=0x00x01




AirConditionerControler 无线协议
时间:20144312:38:29
概述:
本协议用于生产的AirConditionerControler设备无线配置及接口的通信规范。
协议格式:
本协议由协议序列号、设备ID号、设备权利、接收目标ID、关键字、内容长度、内容、CRC校验和协议尾组成。
序列号
设备ID
接收目标ID
关键字
(首位)
关键字
内容长度
内容
CRC校验
协议尾
8bit
8bit
8bit
0x01
8bit
4bit
Nbit
8bit
0x0d
备注:协议总长度不得超过32bit
序列号——为发送者(sender)发送时自动产生的信息,用于检测是否出现丢包的情况;
设备ID号——在整个系统中该设备ID为唯一ID号,用于彼此相互通信时进行点对点交流使用;
接收目标ID——接收者对比该ID号,于自己的ID号相同者对协议进行解析并对sender做出相应的回答;
关键字——占用8bit,为通信协议的指令内容,0x00-0x7f为下发协议(主机向从机发送为下发),0x80-0xff为上发发协议(从机向主机发送为下发),具体说明如下:

关键字    宏定义             解释说明
0x01    SET_ORDER    设置运行参数
0x02    SET_PLANT     设置运行计划
0x03    SET_TIME       设置系统时钟
0x04    REPORT         报告人员运动情况
0x05    GUARD          资产看管

0x81   REPLAY_ORDER     应答设置指令
0x82   REPLAY_PLANT      应答运行计划
0x83   REPLAY_TIME       应答系统时钟


具体协议如下:10x01  SET_ORDER  配置无线指令
说明:使用其他设备对本机器进行无线配置运行参数
具体配置内容及格式如下:
0x01............................................................................序列号
0xff.......................................................................设备ID
0x00.......................................................................接收目标ID
0x01.................................................................关键字(SET_ORDER)
0x0e.......................................................................内容长度
0x1c.......................................................................夏季高温开启值(28℃)
0x19.......................................................................夏季低温关闭值(25℃)
0x11.......................................................................冬季高温关闭值(17℃)
0x05.......................................................................冬季低温开启值(5℃)
0x07.......................................................................夏季时间(开始月份)
0x01.......................................................................夏季时间(开始日)
0x09.......................................................................夏季时间(结束月份)
0x1e.......................................................................夏季时间(结束日)
0x0c.......................................................................冬季时间(开始月份)
0x0c.......................................................................冬季时间(开始日)
0x02.......................................................................冬季时间(结束月份)
0x01.......................................................................冬季时间(结束日)
0x00.......................................................................运行模式
0x0a.......................................................................延时时间(10min
0x01...................................................................... CRC校验(此处CRC校验错误)
0x0d.............................................................................协议尾
备注:1、运行模式可分为4种,0x00  自动模式,基于时间温度运行
0x01 强制开启模式  0x02 强制关闭模式  0x03 自动模式,基于时间 温度 人运行

20x02  SET_PLANT  设置工作计划
说明:该指令用于配制设备每天的有效工作时间段
0x01............................................................................序列号
0xff.......................................................................设备ID
0x00.......................................................................接收目标ID
0x02.................................................................关键字(SET_PLANT)

0x03.......................................................................内容长度

0x03.......................................................................设置时间段次数(3

0x08.......................................................................开启时间(8点)
0x00.......................................................................开启时间(0分)
0x09.......................................................................关闭时间(9点)
0x1e.......................................................................关闭时间(30点)

0x0a.......................................................................开启时间(10点)
0x00.......................................................................开启时间(0分)
0x0c.......................................................................关闭时间(12点)
0x1e.......................................................................关闭时间(30点)

0x0e.......................................................................开启时间(14点)
0x00.......................................................................开启时间(0分)
0x12.......................................................................关闭时间(18点)
0x1e.......................................................................关闭时间(30点)
0x1e.......................................................................关闭时间(30点)
0x1e.......................................................................CRC校验
0x0d.......................................................................结束标记
备注:对多可支持7个时间段的配置

30x03   SET_TIME  设置系统时间时间
说明:使用该指令可以校正系统时钟。
0x01............................................................................序列号
0xff.......................................................................设备ID
0x00.......................................................................接收目标ID
0x03.................................................................关键字(SET_TIME)
0x06.................................................................内容长度(6bit
0x0e.......................................................................14年(对2000求余后的值)
0x04.......................................................................4
0x03.......................................................................3
0x0e.......................................................................15
0x11.......................................................................17
0x03.......................................................................03
0x03.......................................................................CRC校验
0x0d.......................................................................结束符


40x04 REPORT 报告人员运动情况
说明:该指令用于提醒本机已经成功检测到一次人员运动情况,可以将设置的延时时间清零一次
0x01............................................................................序列号
0xff.......................................................................设备ID
0x00.......................................................................接收目标ID
0x04.................................................................关键字(REPORT)
0x00.................................................................内容长度为0
0x00.................................................................CRC校验
0x0d.................................................................结束符


50x05  GUARD  资产看管
说明:一旦启动该指令,则要求被看管设备在每间隔至多1s向本设备发送一条报告消息,如果没有按时或者提前发送将会触发本设备报警;
0x01............................................................................序列号
0xff.......................................................................设备ID
0x00.......................................................................接收目标ID
0x05.................................................................关键字(GUARD)
0x01.................................................................内容长度为1
0x02.................................................................被看管设备ID
0x00.................................................................CRC校验
0x0d.................................................................结束符




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表