== 介绍 ==
== 通讯协议 ==
=== AMP CPU 与STM32通讯协议 ===
====物理层协议====
*通过串口通讯,9600波特率,校验位无,数据位8位,停止位1位
=====帧格式表=====
{| class="wikitable sortable"
|-
! 起始位 !! 数据位 !! 校验位置 !! 结束位置
|-
|0xA5,一个字节长度||见数据位表,变长||数据位(从数据位开始到数据位结束)的CRC校验,2个字节长度,低位在前,高位在后||0x5A,一个字节长度
|}
=====数据位表=====
{| class="wikitable sortable"
|-
! 数据来源地址 !! 目的地址 !! 帧序号 !! 数据长度 (第5-6位) !! 数据命令以及数据内容
|-
|0x01表示第一块CPU板,0x02表示第二块CPU板,0x03表示第三块CPU板,'''目前只有一块335X CPU 板子,只用到0x01''';
'''0x81表示 电源充电控制板''',一个字节||0x01表示第一块CPU板,0x02表示第二块CPU板,0x03表示第三块CPU板'''目前只有一块335X CPU 板子,只用到0x01''';
0x81表示 电源充电控制板''';
0x80表示目的地址是广播给所有的CPU电路板,0xfe表示目的地址是所有的STM32电路板,0xff表示广播给系统中所有设备,其他地址备用,一个字节长度||主动发送数据设备没发送一次数据加一个,两个字节,低位在前,高位在后(大于0xffff,清零),接收需要返回数据同数据返回||数据命令以及数据内容部分数据长度,两个字节,低位在前,高位在后||见数据命令以及数据内容表,变长
|}
=====数据命令以及数据内容表=====
{| class="wikitable sortable"
|-
! 命令序号(定长,两个字节低位在前,高位在后),第7-8位 !! 命令内容(变长,0到n个字节),第9位开始 !! 是否需要回复(定长,1个字节)
|-
|1,CPU发送心跳||无||1表示需要返回
|-
|2,STM32应答心跳||0||0表示无需返回
|-
|3,CPU读取STM32硬件版本||数据长度0|1表示需要返回
|-
|4,STM32应答上传硬件版本||例如,"H160CH_NT1914A1",15个字节长度||0表示无需返回
|-
|5,CPU读取STM32软件版本||无||1表示需要返回
|-
|6,STM32应答上传软件版本||例如,"S160CH_19060501",15个字节长度||0表示无需返回
|-
|7,CPU下达控制AMP命令||1,打开功放,其他关闭功放||1表示需要返回
|-
|8,STM32应答||0表示正常,1表示错误。||0表示无需返回
|}
=== 影视AI主板 与 电源充电控制板卡通讯协议 ===
====物理层协议====
*通过串口通讯,9600波特率,校验位无,数据位8位,停止位1位
=====帧格式表=====
{| class="wikitable sortable"
|-
! 起始位 !! 数据位 !! 校验位置 !! 结束位置
|-
|0xA5,一个字节长度||见数据位表,变长||数据位(从数据位开始到数据位结束)的CRC校验,2个字节长度,低位在前,高位在后||0x5A,一个字节长度
|}
=====数据位表=====
{| class="wikitable sortable"
|-
! 数据来源地址 !! 目的地址 !! 帧序号 !! 数据长度 (第5-6位) !! 数据命令以及数据内容
|-
|0x01表示第一块CPU板,0x02表示第二块CPU板,0x03表示第三块CPU板,'''目前只有一块335X CPU 板子,只用到0x01''';
'''0x81表示 电源充电控制板''',一个字节||0x01表示第一块CPU板,0x02表示第二块CPU板,0x03表示第三块CPU板'''目前只有一块335X CPU 板子,只用到0x01''';
0x81表示 电源充电控制板''';
0x80表示目的地址是广播给所有的CPU电路板,0xfe表示目的地址是所有的STM32电路板,0xff表示广播给系统中所有设备,其他地址备用,一个字节长度||主动发送数据设备没发送一次数据加一个,两个字节,低位在前,高位在后(大于0xffff,清零),接收需要返回数据同数据返回||数据命令以及数据内容部分数据长度,两个字节,低位在前,高位在后||见数据命令以及数据内容表,变长
|}
=====数据命令以及数据内容表=====
{| class="wikitable sortable"
|-
! 命令序号(定长,两个字节低位在前,高位在后),第7-8位 !! 命令内容(变长,0到n个字节),第9位开始 !! 是否需要回复(定长,1个字节)
|-
|1,CPU发送心跳||无||1表示需要返回
|-
|2,STM32应答心跳||0(超过1分钟没有收到任何数据,STM32重启CPU)||0表示无需返回
|-
|3,CPU读取STM32硬件版本||数据长度0|1表示需要返回
|-
|4,STM32应答上传硬件版本||例如,"H160CH_NT1914A1",15个字节长度||0表示无需返回
|-
|5,CPU读取STM32软件版本||无||1表示需要返回
|-
|6,STM32应答上传软件版本||例如,"S160CH_19060501",15个字节长度||0表示无需返回
|-
|9,STM32上报状态||电池电压(2个字节,地位在前,高位在后,单位mV);12V输入状态(1个字节,0没有供电,1供电且电正常,2供电但是电压过压);电池充电状态(1个字节,0没有充电,1充电正常);||1表示需要返回
|-
|10,CPU回复||0表示正常,1表示错误。||0表示无需返回
|-
|19,CPU 下达准备关机命令||无||1表示需要返回
|-
|20,STM32回复||0表示正常,1表示错误。STM32收到此命令后30S关闭CPU电源||0表示无需返回
|-
|21,CPU 下达打开,关闭看门狗命令||1,打开看门狗,0关闭看门狗,0个字节||1表示需要返回
|-
|22,STM32回复||0表示正常,1表示错误||0表示无需返回
|-
|23,CPU 下达LED灯板控制命令||6个字节||1表示需要返回
|-
|24,STM32回复||0表示正常,1表示错误,(收到数据后通过485转发出去)||0表示无需返回
|}