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.rhkb.cn/news/242433.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GO 中高效 int 转换 string 的方法与高性能源码剖析

文章目录 使用 strconv.Itoa使用 fmt.Sprintf使用 strconv.FormatIntFormatInt 深入剖析1. 快速路径处理小整数2. formatBits 函数的高效实现 结论 Go 语言 中,将整数(int)转换为字符串(string)是一项常见的操作。 本文…

Pyro —— Pyro workflow

目录 Visualization General workflow Tips and troubleshooting Pyro模拟的速度和外形,由许多参数组合控制; Visualization 在制作的整个过程中,检查模拟场的状态是非常有用的;Smoke Object具有许多场的可视化选项&#xff1b…

查看下端口的监听状态

执行命令netstat -ntulp 查看下端口的监听状态

node.js项目express的初始化

目录 1.初始化项目2.配置跨域3.开始编写API3.1准备3.2路由处理函数router_make下的user.js3.3路由模块router下的user.js3.4入口文件app.js里面去新增这段代码3.5启动项目进行测试 👍 点赞,你的认可是我创作的动力! ⭐️ 收藏,你…

Chrome 浏览器插件 cookies API 解析

Chrome.cookie 前端开发肯定少不了和 cookie 打交道,此文较详细的介绍下 chrome.cookie 的 API 以及在 popup、service worker、content 中如何获取的 一、权限(Permissions) 如果需使用 Cookie API,需要在 manifest.json 文件…

mfc110.dll丢失是什么意思?全面解析mfc110.dll丢失的解决方法

在使用计算机的过程中,用户可能会遭遇一个常见的困扰,即系统提示无法找到mfc110.dll文件。这个动态链接库文件(DLL)是Microsoft Foundation Classes(MFC)库的重要组成部分,对于许多基于Windows的…

从 GPT1 - GPT4 拆解

从 GPT1 - GPT4 拆解 从 GPT1 - GPT4GPT1:更适用于文本生成领域GPT2:扩展数据集、模型参数,实现一脑多用(多个任务)GPT3:元学习 大力出奇迹InstructGPT:指示和提示学习 人工反馈强化学习 RLHF…

vue3-模版引用

模版引用 ref 属性 场景&#xff1a;需要直接访问底层 DOM 元素。 方法&#xff1a;使用特殊的 ref 属性。 <input ref"input">ref 属性 允许我们在一个特定的 DOM 元素或子组件实例被挂载后&#xff0c;获得对它的直接引用。 访问模板引用 小 Demo: 当 i…

《Redis:NoSQL演进之路与Redis深度实践解析》

文章目录 关于NoSQL为什么引入NoSQL1、单机MySQL单机年代的数据库瓶颈 2、Memcached&#xff08;缓存&#xff09; MySQL 垂直拆分 &#xff08;读写分离&#xff09;3、分库分表水平拆分MySQL集群4、如今的网络架构5、总结 NoSQL的定义NoSQL的分类 Redis入门Redis能干嘛&…

C++总结笔记

1. 简介 1、面向对象程序设计 面向对象的四大特性 1&#xff09;封装 2&#xff09;继承 3&#xff09;多态 4&#xff09;抽象 2、标准库 标准C由三个部分组成 1&#xff09;核心语言&#xff1a;提供了所有的构件块 2&#xff09;C标准库&#xff1a;提供了大量的函…

vue:处理base64格式文件pdf、图片预览

一、需求&#xff1a;后端返回是base64数据&#xff0c;需要前端处理来展示文件。 二、实现方法&#xff1a; 解释一下这段代码的功能&#xff1a; &#xff09;preview(item) 是一个函数&#xff0c;接受一个参数 item&#xff0c;其中包含了文件的相关信息。 &#xff09;首…

【Java】HttpServlet类简单方法和请求显示

1、HttpServlet类简介&#x1f340; Servlet类中常见的三个类有&#xff1a;☑️HttpServlet类&#xff0c;☑️HttpServletRequest类&#xff0c;☑️HttpResponse类 &#x1f42c;其中&#xff0c;HttpServlet首先必须读取Http请求的内容。Servlet容器负责创建HttpServlet对…

什么是关键字?C语言的关键字有哪些?(C语言32个关键字详解)

目录 一、问题 二、解答 1、数据类型关键字&#xff08;12个&#xff09; (1) 声明和定义的区别 (2) 数据类型关键字 • char&#xff1a;声明字符型变量 1、声明字符变量 2、字符数组 3、ASCII码表示 4、指针与字符数组 5、多字节字符集&#xff08;如UTF-8&#xff…

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

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

workflow源码解析:ThreadTask

1、使用程序&#xff0c;一个简单的加法运算程序 #include <iostream> #include <workflow/WFTaskFactory.h> #include <errno.h>// 直接定义thread_task三要素 // 一个典型的后端程序由三个部分组成&#xff0c;并且完全独立开发。即&#xff1a;程序协议算…

CISSP认证计算机化自适应考试(CAT)及常见问题解答

每位参加CISSP CAT考试的考生均会由一个远低于及格标准的考题开始。在考生对某道题作答之后&#xff0c;评分算法会根据所有题目的难度和作答情况重新估算考生的能力。每多作答一道题&#xff0c;计算机对考生能力就会估算更加精确——与传统的线性考试相比&#xff0c;它能更有…

23号资源——电力系统程序集合已提供下载资源

23号资源&#xff1a;程序集合包含9个程序&#xff08;经典电力系统经济调度程序&#xff1b;2解决带储&#xff1b;3智能微电网PSO优化算法&#xff1b;微电网调度等等&#xff0c;见资源描述&#xff09;资源-CSDN文库https://download.csdn.net/download/LIANG674027206/887…

【PICO】【Unity】【VR】如何对打包后的PICO项目有效Debug

【背景】 PICO项目打包后再运行就看不到Console了。当然,会有各类专业的Debug工具。 有一类Debug的工具是Preview形式下展示Debug信息,但是发现Preview成功不见得打包也成功。 打包后也会有一些Debug工具,不过这里我给出自己的简单解决办法。 【解决方案】 Unity Console…

第一篇【传奇开心果系列】WeUI开发原生微信小程序:汽车租赁小程序示例

传奇开心果博文系列目录 WeUI开发原生微信小程序示例系列博文目录博文目录一、项目目标二、编程思路三、初步实现汽车租赁微信小程序示例代码四、实现汽车租赁微信小程序的登录注册示例代码五、实现汽车租赁微信小程序的订单管理示例代码六、整合实现比较完整的汽车租赁微信小程…

算法笔记(动态规划入门题)

1.找零钱 int coinChange(int* coins, int coinsSize, int amount) {int dp[amount 1];memset(dp,-1,sizeof(dp));dp[0] 0;for (int i 1; i < amount; i)for (int j 0; j < coinsSize; j)if (coins[j] < i && dp[i - coins[j]] ! -1)if (dp[i] -1 || dp[…