USB转SPI USB转IIC 串口转SPI串口转IIC SPI I2C模块

发布时间:2024年01月18日

????????一款支持USB转SPI、USB转I2C、USB转GPIO、USB转PWM、USB转ADC的模块。提供上位机工具,开发协议。

资料下载,链接:https://pan.baidu.com/s/1sw3RCMwjhrMO4qzUBq9bjA ?? ?提取码:qzjp

  • 概述

????????串口转多协议模组为了客户调试一些功能简单化,目前有串口转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

0x01:GPIO_1

0x02:GPIO_2

0x03:GPIO_3

0x04:GPIO_4

0x05:GPIO_4

0x06:GPIO_4

0x07:GPIO_4

0xFF:所有引脚

0x00:低电平

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

操作功能: 04

效验位??? : 00

数据?????? : 00(PWM0) 01F4(高电平占比50%)

?2.3?? ?ADC协议,1字节

通道号

0x00:ADC0

0x01:ADC1

0x02:ADC2

0x03:ADC3

应答

浮点型数据

操作成功

例:FA CE FA CE 00 05 05 0C 02

数据头??? : FACEFACE

长度?????? : 00 05

操作功能: 05

效验位??? : 0C

数据?????? : 02(ADC2)

2.4?? ?I2C协议

I2C速率

设备地址

寄存器地址

读/写

数据长度

数据

0x00:10K

0x01:20K

0x02:50K

0x03:100K

0x00:400K

7位地址

1字节寄存器

0x00:写数据

0x01:读数据

0x02:寻地址

2字节长度

最大10240字节

应答

读取数据时,如果读取正常则直接返回读取到的数据。

寻址时会直接返回扫描到的设备地址,期间大概耗时2秒。

I2C速率???????? :固定1字节,用来控制I2C速率。

设备地址?????? :固定1字节,设备的7位地址。

寄存器地址??? :固定1字节,适用8位寄存器地址的设备。

读写????????????? :固定1字节,读写操作,额外增加寻找总线上从设备地址功能。

数据长度?????? :固定2字节,高字节在前。

数据????????????? :写数据时,存放的数据。

例:FA CE FA CE 00 0A 02 EB 00 68 75 01 00 01

数据头??? : FACEFACE

长度?????? : 00 0A

操作功能: 02

效验位??? : EB

数据?????? : 00(10K) 68(设备地址) 75(寄存器地址) 01(读) 00 01(1字节长度)

2.5?? ?SPI协议

基本配置(1字节)

速率

读写

数据长度

数据

片选

片选

极性

SCK空闲电平

采样边沿

数据宽

数据顺序

000:通道0

001:预留

010:预留

011:预留

0:低有效

1:高有效

0:低

1:高

0:第一个

1:第二个

0:8位

1:预留

0:MSB

1:LSB

00:60M

01:30M

02:15M

03:7.5M

04:

05:

06:

07 :

00:写

01:读

02:写读

高字节在前

存放需要写入的数据

3bit

1bit

1bit

1bit

1bit

1bit

1字节

1字节

(2字节)

最大10240字节

应答

读取数据时,如果读取正常则直接返回读取到的数据。

基本配置:占用1字节,可以配置片选、片选极性、SCK空闲电平、采样边沿、数据宽度、

数据顺序功能,配置是通过位来实现。例:0x0A (0000 1100):000(通道0)

0(片选低有效)1(SCK空闲高)1(第二个跳变沿采样)0(8位)0(MSB)。

速率?????? :固定1字节,用来控制SPI的速率。

读写?????? :固定1字节,用来控制读写功能。

数据长度:固定2字节,高字节在前。

数据?????? :用来存放需要写入的数据,读取的时候用不到。


文章来源:https://blog.csdn.net/qq_22329595/article/details/135654532
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。