Photonicat MCU 通讯协议

From Photonicat Wiki
Jump to navigation Jump to search

物理层协议

  • 通过串口通讯,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表示无需返回
3,CPU读取RA2E1硬件版本 1表示需要返回,0表示无需返回
4,RA2E1应答上传硬件版本 例如,"NT2109A2",8个字节长度 0表示无需返回
5,CPU读取RA2E1软件版本 1表示需要返回,0表示无需返回
6,RA2E1应答上传软件版本 例如,"RA2E1211214001",14个字节长度 0表示无需返回
7,RA2E1上报状态 电池电压(2个字节,低位在前,高位在后,单位mV);充电器接口电压(2个字节,低位在前,高位在后,单位mV);输入GPIO状态(2个字节,见GPIO输入状态表),输出GPIO状态(2个字节,见输出GPIO状态表);系统时间(年、月、日、时、分、秒、礼拜(年两个字节,其余1个字节,一个8个字节)); RTC状态(1个字节,0表示RTC正常,1,RTC初始化异常,2,没有秒中断,3,没有分钟中断);板子温度,一个字节长度,实际温度+40,比如:20表示,-20℃,60表示20℃ 1表示需要返回,0表示无需返回
8,CP回复 1表示需要返回,0表示无需返回
9,CPU设置RA时间 年、月、日、时、分、秒(年2个字节,其他一个字节,一个7个字节) 1表示需要返回,0表示无需返回
10,RA2E1应答本 0数据正常,1错误 0表示无需返回
11,CPU设置定时开机时间 年、月、日、时、分、星期(年2个字节,其他一个字节,一个7个字节(星期匹配需要匹配每位,例如B00000101,表示周日和2定时开机)),匹配设置,1个字节(bit0:年匹配;bit1:月匹配;bit2:日匹配;bit3:时匹配;bit4:分匹配;bit5:星期匹配;1设置为匹配,0设置为不匹配,其中分匹配必须为1,否则忽略此定时开机时间)(注:一次最多设置6个定时开机时间,并覆盖以前设置的开机时间,如果设置6个开机时间,此段数据长度位8*6=42个字节,也就是最长48个字节长度 1表示需要返回,0表示无需返回
12,RA2E1应答 0数据正常,1错误 0表示无需返回
13,RA2E1发送关机命令 关机事件,一个字节,0,表示按键强制关机,1,表示电池低电压关机,2,表示升级前关机;3,其他关机 1表示需要返回,0表示无需返回
14,CPU应答 0数据正常,1错误 0表示无需返回
15,CPU发送关机命令 1表示需要返回,0表示无需返回
16,RA2E1应答 0数据正常,1错误 0表示无需返回
17,RA2E1恢复出厂设置 1表示需要返回,0表示无需返回
18,CPU应答 0数据正常,1错误 0表示无需返回
19,CPU发送设置看门狗时间命令 系统开启超时时间,一个字节;系统关机超时时间,一个字节;系统启动成功后,喂狗超时时间,一个字节 1表示需要返回,0表示无需返回
20,RA2E1应答 0数据正常,1错误 0表示无需返回
21,CPU发送设置充电开机配置 一个字节长度,0,插上充电器后,不自动开机(如果机器关机时因为低电压关机,此配置情况下,插上充电器后还开机),1、插上充电器后开机。其他数据无效 1表示需要返回,0表示无需返回
22,RA2E1应答 0数据正常,1错误 0表示无需返回
23,CPU设置电压阈值 电压高指示阈值,2个字节,默认3850;电压中指示阈值,默认3700;电压低指示阈值,3600;插充电器开机电压,默认3400;充电器在充电器电压阈值,4500;充电器不在时关机电池阈值,3450;工作中,电池电压低电压提示电压阈值,3600;充电器大电流充电电压阈值,4700;开机后,电池电压持续超过15分钟满电压阈值,4140。一共18个字节,默认电压正负1000mV值范围内设置有效,如设置超出范围则使用默认值 1表示需要返回,0表示无需返回
24,RA2E1应答 0数据正常,1错误 0表示无需返回
25,CPU设置网络指示灯状态 高电平持续时间(2个字节,单位10ms),低电平持续时间(2个字节,单位10ms),变换次数(2个字节,次数到达后,保持低电平,0表示一直高低电平变换) 1表示需要返回,0表示无需返回
26,RA2E1应答 0数据正常,1错误 0表示无需返回
27,CPU读取RA2E1开机原因 1表示需要返回,0表示无需返回
28,RA2E1U应答 一个字节,1,表示按键开机,2,表示定时开机,3,插上charge车载模式开机,4,低电压关机,插上charge后,电压满足条件开机5,无电池开机 0表示无需返回

Reference Code

https://github.com/photonicat/rockchip_rk3568_pcat_manager/blob/master/src/pmu-manager.c