==86面板和风控盒通讯协议==
====物理层协议====
*通过RS485通讯,115200波特率,校验位无,数据位8位,停止位1位
=====帧格式表=====
{| class="wikitable sortable"
|-
! 起始位 !! 数据位 !! 校验位置 !! 结束位置
|-
|0xA5,一个字节长度||见数据位表,变长||数据位异或校验,一个字节长度(校验数据从帧头开始)||0x5A,一个字节长度
|}
=====数据位表=====
{| class="wikitable sortable"
|-
! 数据来源地址 !! 目的地址 !! 数据长度 !! 数据命令以及数据内容
|-
|0x01表示第一块CPU板,0x02表示第二块CPU板,0x03表示第三块CPU板;
0x81表示第一块STM32板,0x82表示第二块STM32电路板,0x83表示第二块STM32电路板,一个字节||0x01表示第一块CPU板,0x02表示第二块CPU板,0x03表示第三块CPU板;
0x81表示第一块STM32板,0x82表示第二块STM32电路板,0x83表示第二块STM32电路板;
0x80表示目的地址是广播给所有的CPU电路板,0xfe表示目的地址是所有的STM32电路板,0xff表示广播给系统中所有设备,其他地址备用,一个字节长度||数据命令以及数据内容部分数据长度,两个字节,高位在前||见数据命令以及数据内容表,'''是否需要回复'''是数据内容最后一个字节,变长
|}
=====数据命令以及数据内容表=====
{| class="wikitable sortable"
|-
! 命令序号 !! 命令内容 !! 是否需要回复!! 备注
|-
|1,86面板主动查询风控盒状态||空||0表示无需返回,1表示需要返回||
|-
|2,风控盒应答86面板主动查询||返回7个GPIO状态、ADC数据和重启标识位(1byte, 重启置1,读取后置0)||0表示无需返回||
|-
|3,86面板设置服务呼叫||发送1个GPIO状态||0表示无需返回,1表示需要返回||
|-
|4,风控盒应答86面板设置服务呼叫||数据正常应答0x00,错误应答0x01,一个字节长度||0表示无需返回||
|-
|5,86面板设置风量||发送加减两个GPIO状态和ADC值||0表示无需返回,1表示需要返回||
|-
|6,风控盒应答86面板设置风量||数据正常应答0x00,错误应答0x01,一个字节长度||0表示无需返回||
|-
|7,86面板设置音量||发送音量设置四个GPIO状态||0表示无需返回,1表示需要返回||
|-
|8,风控盒应答86面板设置音量||数据正常应答0x00,错误应答0x01,一个字节长度||0表示无需返回||
|-
|9,86面板读取风控盒硬件版本号||无||0表示无需返回,1表示需要返回||
|-
|10,风控盒回复硬件版本号||版本号以\0结束||0表示无需返回||
|-
|11,86面板读取STM32软件版本号||无||0表示无需返回,1表示需要返回||
|-
|12,风控盒回复软件版本号||版本号以\0结束||0表示无需返回||
|-
|13,86面板设置风量(PWM控制)||发送PWM正占空比值(整数形式),两个字节||0表示无需返回,1表示需要返回||
|-
|14,风控盒应答86面板设置风量(PWM控制)||数据正常应答0x00,错误应答0x01,一个字节长度||0表示无需返回||
|-
|15,86面板查询风量PWM值||无||0表示无需返回,1表示需要返回||
|-
|16,风控盒应答86面板查询风量PWM值||返回PWM正占空比值(整数形式),两个字节||0表示无需返回||
|-
|}
=====GPIO状态表(6个字节)=====
{| class="wikitable sortable"
|-
! 字节序号!! 说明
|-
|1||GPIO编号(1~7),1:服务呼叫,2:风量加,3:风量减,4-7:音量设置1-4
|-
|2||GPIO状态,1:ON,0:OFF
|-
|3||GPIO ON的时间,高位(毫秒)
|-
|4||GPIO ON的时间,高位(毫秒)
|-
|5||GPIO ON的时间,低位(毫秒)
|-
|6||GPIO ON的时间,低位(毫秒)
|}
=====风控盒返回状态帧内容说明(32字节)=====
{| class="wikitable sortable"
|-
! 字节 !! 说明
|-
|1-4|| 服务呼叫GPIO状态
|-
|5-8|| 风量加GPIO状态
|-
|9-12|| 风量减GPIO状态
|-
|13-28|| 音量设置4个GPIO状态
|-
|29-32|| ADC(高位在前)
|}