门禁,梯控开发串口协议文档
.术语约定
1. D0,D1,D2,D3....D7,表示数据的每1位
2. int8, Int8=有符号8bit数据; uint8, UInt8=无符号8bit数据
3. int16, Int16=有符号16bit数据; uint16, UInt16: 无符号16bit数据
4. int32, Int32:有符号32bit数据; uint32, UInt32:无符号32bit数据
5. 未指定系统的表示门禁和梯控都是通用
6. 串口波特率57600,数据位8,停止位1,校验位无
7. 数据传输高字节在前
.协议包格式:
序号 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
内容 |
起始字 |
总包校验 |
长度 |
源地址 |
目的地址 |
流水号 |
命令 |
请求/应答 |
状态 |
数据 |
字节 |
1 |
2 |
2 |
2 |
2 |
2 |
2 |
1 |
1 |
N |
说明 |
0xEA |
xxxx |
xxxx |
xxxx |
xxxx |
xxxx |
xxxx |
xx |
xx |
xxxx |
注意:
1.定义系统特殊字:0XE0,0xEA
凡是蓝色部分数据出现系统特殊字做特殊处理:à1byte扩展为2byte.
0XE0à0XE0, 0x00;
0xEAà0XE0, 0x0A;
[总包校验]
2byte,是从[长度]到[数据包]最后字节所有字节的CRC16校验,CRC16算法见附件。
[长度]
2Byte,整个协议包长度,从[总包校验]到[数据包]最后字节(包含[长度]本身字节)
[源地址]
2Byte,发送数据的地址
[目的地址]
2Byte,数据要到达的地址
[流水号]
2Byte,系统自动产生,具体命令再解释,未作解释的命令不用关心(直接填0000),
[命令]
2Byte
[请求/应答]
0=请求包,需要应答;
1=请求包,不需要应答;
2=应答包
//--------------------
100=数据转发,用于透传
101=数据转发,用于透传
102~120=保留
[状态]
1Byte,可以为空,只有【应答】才有,【请求】该项填0
//定义应答状态
#define ACK_OK 0 //命令执行成功
#define ACK_ERR 1 //命令执行失败
#define ACK_UNDEFINE 2 //不支持该命令
#define ACK_INVALID_DATA 3 //无效的数据
255 //保留不用
[数据包]
N Byte,可以为空
数据包具体内容参见各命令详细说明。
下面命令只解释数据包内容
■(0xFAFA)保留
请求à
内 容 |
字节 |
数据 |
数据 |
0 |
|
应答à
内 容 |
字节 |
数据 |
数据 |
0 |
|
说明:主要清除注册卡数据,记录数据,其他关键数据不清除:比如IP地址等设备运行参数不清除
■(0x0002) 软件复位重启动
请求à
内 容 |
字节 |
数据 |
数据 |
0 |
|
应答à
内 容 |
字节 |
数据 |
数据 |
0 |
|
■(0x0007) 硬件复位重启动
请求à
内 容 |
字节 |
数据 |
数据 |
0 |
|
应答à
内 容 |
字节 |
数据 |
数据 |
0 |
|
说明:相当于设备重新上电
■(0x0100) 联机测试
请求à
内 容 |
字节 |
数据 |
数据 |
0 |
|
EA 84 6D 00 0E FE FE 00 01 00 00 01 00 00 00
序号 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
内容 |
起始字 |
总包校验 |
长度 |
源地址 |
目的地址 |
流水号 |
命令 |
请求/应答 |
状态 |
数据 |
字节 |
1 |
2 |
2 |
2 |
2 |
2 |
2 |
1 |
1 |
0 |
说明 |
EA |
84 6D |
00 0E |
FE FE |
00 01 |
00 00 |
01 00 |
00 |
00 |
|
应答à
内 容 |
字节 |
数据 |