串口转多协议板
版本 V3
一、 概述
串口转多协议模组为了客户调试一些功能简单化,目前有串口转 GPIO、串口转
PWM、串口转 ADC、串口转 I2C、串口转 SPI 等功能。未来会根据客户反馈需求做升级。
提供简易的上位机开发测试,帮助客户快速使用然后实现自己开发。提供协议文档,客
户可以根据协议实现自己控制,并将模块融入自己的设备中。
串口采用固定的 921600 波特率、8 位数据格式、1 停止位、无奇偶效验位的配置。
模组采用 DMA 接收结合串口空闲中断方式接收数据包,所以不要多包控制指令一起发
出,包之间发送间隔大于 10us 延时。
二、 硬件接口
功能
数量
UART 转 GPIO
8
UART 转 PWM
2
UART 转 ADC
4
UART 转 I2C
1
UART 转 SPI
1
三、 协议组成
协议总体分成两个包,一级包和二级包,二级数据包是以及数据包的子包。一级数
据包分为:数据头(4 字节)、长度(2 字节)、操作功能(1 字节)、效验位(1 字节)、
data 包(二级包,最大 10340 字节)。协议都是针对上位机到下位机的数据。
1. 一级协议包,十六进制格式
数据头
长度
操作功能
效验位
数据(二级包)
0xFACEFACE
0x0004
0x00:OTA
0x01:GPIO
0x02:I2C
0x03:SPI
0x04:PWM
0x05:ADC
crc8
data[10340]
数据头 :固定 0xFACEFACE,四字节。
长度 :除去数据头,所有数据的长度。高字节在前,固定 2 字节。
操作功能:确定包的功能,固定 1 字节。
效验位 :自身为 0 时,除去数据头所有数据的效验和,固定 1 字节。
数据 :二级数据包数据,根据操作功能有不同的协议。最大 10340 字节。
2. 二级数据包,十六进制格式
2.1 GPIO 协议,2 字节
引脚号
状态设置
0x00:GPIO_0
0x00:低电平
0x01:GPIO_1
0x02:GPIO_2
0x03:GPIO_3
0x04:GPIO_4
0x05:GPIO_4
0x06:GPIO_4
0x07:GPIO_4
0xFF:所有引脚
0x01:高电平
0x02:电平反转
应答
ok
操作成功
例:FA CE FA CE 00 06 01 09 02 00
数据头 : FACEFACE
长度 : 00 06
操作功能: 01
效验位 : 09
数据 : 02(GPIO_2) 00(低电平)
2.2 PWM 协议,3 字节
PWM 为 20KHZ,占空比参数为 0~1000
通道号
占空比
0x00:PWM0
0x01:PWM1
0x0000:高电平占比 0%
0x03E8:高电平占比 100%
应答
ok
操作成功
例:FA CE FA CE 00 07 04 00 00 01 F4
数据头 : FACEFACE
长度 : 00 07