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

        一款支持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字节,高字节在前。

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


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/337337.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux搭建主从DNS服务器

DNS简介: DNS(Domain Name System)是互联网上的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。 DNS产生的原因: 互联网的不同计算机之间通信是通过IP地址来进行…

【软件测试】学习笔记-网站高可用架构设计

顾名思义,网站高可用指的就是,在绝大多的时间里,网站一直处于可以对外提供服务的正常状态。业界通常使用有多少个“9”来衡量网站的可用性指标,具体的计算公式也很简单,就是一段时间内(比如一年&#xff09…

Mybatis原理 - 标签解析

很多开源框架之所以能够流行起来,是因为它们解决了领域内的一些通用问题。但在实际使用这些开源框架的时候,我们都是要解决通用问题中的一个特例问题,所以这时我们就需要使用一种方式来控制开源框架的行为,这就是开源框架提供各种…

Redis原理篇(String)

一.编码方式 String 有三种编码方式 1.RAW编码 type是类型,表示该类型是String类型 encoding是编码方式,表示当前是String的RAW编码方式 ptr指针指向一个SDS(动态字符串)对象 2.EMBSTR编码 当要存的字符串长度小于44个字节时&…

ElasticSearch 7.x现网运行问题汇集3

问题描述 某现网ElasticSearch 故障,很长时间unassgined_shards的数量都不减少。 原因分析与解决方案: 先了解整体状态,使用Postman请求,如下几个请求命令: GET /_cat/indicesGET /_cat/shardsGET /_cluster/health…

《Python数据分析技术栈》第03章 03 可视化各级数据(Visualizing various levels of data)

03 可视化各级数据(Visualizing various levels of data) 《Python数据分析技术栈》第03章 03 可视化各级数据(Visualizing various levels of data) Whenever you need to analyze data, first understand if the data is stru…

【图解数据结构】顺序表实战指南:手把手教你详细实现(超详细解析)

🌈个人主页:聆风吟 🔥系列专栏:图解数据结构、算法模板 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 一. ⛳️线性表1.1 🔔线性表的定义1.2 🔔线性表的存储结构 二. ⛳️顺序表…

解决Windows下Goland的Terminal设置为Git Bash失败

路径不要选错了: 如果还是不行: 把bash路径加进去试试 goland设置Terminal

在Qt中通过控制按钮实现登录界面密码与明码的转换

创建控件: 首先,在Qt设计师界面界面上创建QLineEdit类文本框,用于输入密码,并且实现密码与明码相互转化。 设置初始状态: 默认情况下,输入密码的文本框应该是可见的并允许用户输入。 添加切换按钮&…

MCM备赛笔记——PCA主成分分析法

Key Concept 主成分分析(PCA,Principal Component Analysis)是一种统计方法,它通过线性变换将多维数据变换到新的坐标系统中,使得这一数据的任何投影的第一大方差出现在第一个坐标(即第一个主成分&#xf…

H5嵌入小程序适配方案

时间过去了两个多月,2024已经到来,又老了一岁。头发也掉了好多。在这两个月时间里都忙着写页面,感觉时间过去得很快。没有以前那么轻松了。也不是遇到了什么难点技术,而是接手了一个很烂得项目。能有多烂,一个页面发起…

Linux之进程间通信(管道)

目录 一、进程间通信 1、进程间通信的概念 2、进程间通信的目的 3、进程间通信的分类 二、管道 1、管道基本介绍 2、匿名管道 3、命名管道 一、进程间通信 1、进程间通信的概念 什么是进程间通信? 我们在学习了进程的相关知识后,知道&#xff…

Vue记录

vue2、vue3记录 vue2记录 经典vue2结构 index.vue&#xff1a; <template><div>...</div> </template><script>import method from "xxx.js"import component from "xxx.vue"export default {name: "ComponentName&…

Vue3.0性能提升主要是通过哪几方面体现的?

文章目录 一、编译阶段diff算法优化静态提升事件监听缓存SSR优化 二、源码体积三、响应式系统参考文献 一、编译阶段 回顾Vue2&#xff0c;我们知道每个组件实例都对应一个 watcher 实例&#xff0c;它会在组件渲染的过程中把用到的数据property记录为依赖&#xff0c;当依赖发…

Cloudreve存储策略-通过从机存储来拓展容量

Sham的云服务器是搬瓦工最低低低配的&#xff0c;1H 0.5G不说&#xff0c;硬盘容量也只有10g&#xff0c;说实话&#xff0c;装了宝塔面板和服务器套件后&#xff0c;基本满了&#xff0c;这时又想在云服务器上打个网盘用于下载、存储&#xff0c;这时就需要拓展硬盘&#xff0…

Redis 面试题 | 01.精选Redis高频面试题

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

HCIA——22DNS:DNS层次域名空间、域名服务器、域名解析的原理

学习目标&#xff1a; 计算机网络 1.掌握计算机网络的基本概念、基本原理和基本方法。 2.掌握计算机网络的体系结构和典型网络协议&#xff0c;了解典型网络设备的组成和特点&#xff0c;理解典型网络设备的工作原理。 3.能够运用计算机网络的基本概念、基本原理和基本方法进行…

基于springboot+vue的母婴商城系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

第二课:BERT

文章目录 第二课&#xff1a;BERT1、学习总结&#xff1a;为什么要学习BERT&#xff1f;预训练模型的发展历程BERT结构BERT 输入BERT EmbeddingBERT 模型构建BERT self-attention 层BERT self-attention 输出层BERT feed-forward 层BERT 最后的Add&NormBERT EncoderBERT 输…

c++ mysql数据库编程(linux系统)

ubuntu下mysql数据库的安装 ubuntu安装mysql&#xff08;图文详解&#xff09;-CSDN博客https://blog.csdn.net/qq_58158950/article/details/135667062?spm1001.2014.3001.5501 项目目录结构 数据库及表结构 public.h //打印错误信息 #ifndef PUBLIC_h #define PUBLIC_H…