==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(高位在前) |}