前言
本协议是 Android 应用端与主控板之间的通信协议,是串行通信协议。
协议要求同一时间只能有两个通讯端点在相互通讯,采用小端传输数据。
硬件层基于RS485协议,采取半双工,一主多从的通讯模式。Android定义为主机,主控板定义为从机,
其中一端发送数据,另一端接受到发送数据端的数据包后作出应答,发送对应的回应数据
请求命令数据包与应答数据包必须是成对出现,每个应答对应一个请求。
主机(Master)(Android 我的项目 ):
发送数据的通讯端点为主机(Master)(Android), Master 发出的数据包被称为请求命令数据包。
发送数据的通讯端点为主机(Master)(Android), Master 发出的数据包被称为请求命令数据包。
从机(Slaver)(主控板定义为 0x55 下面链接很多第三方设备 ):
而接受数据再发出回应数据包的通讯端点为从机(Slaver)(主控板) ,Slaver 发出的数据包被称为应答数据包
而接受数据再发出回应数据包的通讯端点为从机(Slaver)(主控板) ,Slaver 发出的数据包被称为应答数据包
串口号 /dev/ttyS6
波特率 115200
数据位 8
校验位 None
停止位 1
流控 None
数据包结构纵览:
每个数据包规范符合如下格式定义:
FLAG:数据包标志,标准帧为 0x10;
DataLen:是数据长度为=CMD1+CMD2+DATA;
CMD1:数据包主命令,主控板定义为 0x55;
CMD2:数据包的辅助命令;
CMD2 取值 | 描述 | 格式解析对应 | 备注 |
0x02 | 时间校准 | 4.1 | 定时开关机:需要使用指令 4.1、4.2、4.3 进行配合。先进行时间校准,在查询时间校准是否成功,最后下发关机以及定时开机指令 |
0x03 | 时间查询(校准机器人的时间) | 4.2 | |
0xA0 | 关机以及定时开机设置 | 4.3 | |
0x45 | 电池信息 | 4.4 | 电池信息:使用 4.4 指令进行电池数据查询。 |
0x41 | 舵机位置控制 | 4.5 | 舵机控制:使用 4.5 的两种指令进行舵机控制。 |
0x42 | 舵机位置和速度控制 | 4.5 | |
0x43 | 舵机数据查询 | 4.6 | 使用 4.6 的指令进行舵机数据查询。 |
CHKSUM : 是 校 验 .CHKSUM = 0 xor Packet[0] xor Packet[1] xor …xor Packet[N]
Packet[N]表示即将发送的当前数据包的第 N 个字节去除 CHKSUM 字段的其他所有部分