MCU 控制协议
Revision as of 11:56, 18 August 2023 by Monstercat (talk | contribs) (Created page with "= 通讯协议 = == RK3568 与 电源充电控制板卡通讯协议 == ===物理层协议=== * 通过串口(ttyS4)通讯,115200波特率,校验位无,数据位8位,停止位1位 ====帧格式表==== {| class="wikitable sortable" |- ! 起始位 !! 数据位 !! 校验位置 !! 结束位置 |- |0xA5,一个字节长度||见数据位表,变长||数据位(从数据位开始到数据位结束)的CRC校验,2个字节长度,低位在前,高位在后||0x5A...")
通讯协议
RK3568 与 电源充电控制板卡通讯协议
物理层协议
- 通过串口(ttyS4)通讯,115200波特率,校验位无,数据位8位,停止位1位
帧格式表
起始位 | 数据位 | 校验位置 | 结束位置 |
---|---|---|---|
0xA5,一个字节长度 | 见数据位表,变长 | 数据位(从数据位开始到数据位结束)的CRC校验,2个字节长度,低位在前,高位在后 | 0x5A,一个字节长度 |
数据位表
数据来源地址 | 目的地址 | 帧序号 | 数据长度 (第5-6位) | 数据命令以及数据内容 |
---|---|---|---|---|
0x01表示第一块CPU板,0x02表示第二块CPU板,0x03表示第三块CPU板,目前只有一块RK3568 CPU 板子,只用到0x01; 0x81表示 电源充电控制板,一个字节 |
0x01表示第一块CPU板,0x02表示第二块CPU板,0x03表示第三块CPU板目前只有一块RK3568 CPU 板子,只用到0x01; 0x81表示 电源充电控制板; 0x80表示目的地址是广播给所有的CPU电路板,0xfe表示目的地址是所有的RA2E1电路板,0xff表示广播给系统中所有设备,其他地址备用,一个字节长度 |
主动发送数据设备没发送一次数据加一个,两个字节,低位在前,高位在后(大于0xffff,清零),接收需要返回数据同数据返回 | 数据命令以及数据内容部分数据长度,两个字节,低位在前,高位在后 | 见数据命令以及数据内容表,变长 |
数据命令以及数据内容表
命令序号(定长,两个字节低位在前,高位在后),第7-8位 | 命令内容(变长,0到n个字节),第9位开始 | 是否需要回复(定长,1个字节) |
---|---|---|
1,CPU发送心跳 | 无 | 1表示需要返回,0表示无需返回 |
2,RA2E1应答心跳 | 0(超过1分钟没有收到任何数据,RA2E1重启CPU) | 0表示无需返回 |
13,RA2E1发送关机命令 | 关机事件,一个字节,0,表示按键强制关机,1,表示电池低电压关机,2,表示升级前关机;3,其他关机 | 1表示需要返回,0表示无需返回 |
14,CPU应答 | 0数据正常,1错误 | 0表示无需返回 |
15,CPU发送关机命令 | 1表示需要返回,0表示无需返回 | |
16,RA2E1应答 | 0数据正常,1错误 | 0表示无需返回 |