【沁恒蓝牙mesh】CH58x USB功能开发记录(一)

本文主要介绍基于【沁恒蓝牙mesh】CH58x USB功能,结合SDK提供的代码包分析USB的基本常识

【沁恒蓝牙mesh】CH58x USB功能开发记录(一)

  • 1. USB基本常识
    • 1.1 **USB 设备类别:**
    • 1.2 **USB设备实现方法:**
    • 1.3 **CDC设备:**
    • 1.4 **USB 中的端点`endpoint` 的概念:**
  • 2. 几个USB调试助手网站
  • 3. CH582 USB
  • 4. USB接口工程解析

  • 💖 作者简介:大家好,我是喜欢记录零碎知识点的小菜鸟。😎
  • 📝 个人主页:欢迎访问我的 Ethernet_Comm 博客主页🔥
  • 🎉 支持我:点赞👍+收藏⭐️+留言📝
  • 📣 系列专栏:沁恒蓝牙mesh二次开发 🍁
  • 💬格言:写文档啊不是写文章,重要的还是直白!🔥

1. USB基本常识

USB(Universal Serial BUS,通用串行总线),主机通过VIDPID来识别不同设备,

  • VID(Vendor ID,供应商识别码),2字节
  • PID(Product ID,产品识别码),2字节
  • PVN(Product Version Number,产品版本号)

参考资料:【STM32 USB通讯协议实战】

1.1 USB 设备类别:

  • 人机交互类设备HID(Human Interface Device)
  • 通信类设备CDC(Communicate Device Class)
  • 大容量存储设备MSC(Mass Storage Class)
  • 视频类设备UVC(USB Video Class)
  • 音频类设备UAC(USB Audio Class)

1.2 USB设备实现方法:

  • 设备描述符实现:配置从机类型,方便主机加载从机对应驱动及对从机数据的识别
  • 配置描述符实现:配置设备专用的描述符,方便启用特定的设备操作和特性;配置从机端点信息,方便主机从端点读/写数据

1.3 CDC设备:

【USB设备设计】-- CDC 设备开发(虚拟串口设备)

关于CDC设备介绍可参考:【沁恒官方B站视频介绍】

CDC设备是USB协议中定义的一种通信设备子类。例如常见的 COM口UART协议,以太网口IP协议等。通过CDC协议可以将USB设备虚拟成通信设备,通过指定的传输协议和数据传输方式同USB设备进行通信。CDC设备的优点:

  • 免驱动:使用标准的USB接口和通信协议,部署方便。例如USB虚拟COM口,无需安装驱动即可使用
  • 支持多种通信协议:支持很多通信领域的通信协议,可以满足不同行业,不同场景的需求

1.4 USB 中的端点endpoint 的概念:

端点是主机与设备之间通讯数据的来源。主机与设备之间通讯时最终总会用于设备上的各个端点。

每个USB设备都有一个唯一的设备地址,设备地址是设备连接上主机时由主机分配的,主机靠这个地址对USB设备进行访问。在设备内部,设备会将地址分的更细,设备会分出一些端点,每个端点在设备端都会有唯一的端点号,每个端点地址对应一个方向。具体的参考: USB中的端点详细了解(转)

2. 几个USB调试助手网站

分享一个超强的HID调试助手

单片机多功能调试助手 V1.7.8 绿色免费版

3. CH582 USB

参考:【CH582 USB Device CherryUSB】

CH582f 芯片的USB引脚为 PB10 PB11,有8个端点

4. USB接口工程解析

参考资料: CH582m模拟JoyStick使用USB与电脑通信

HID类的JoyStick描述符

CompoundDev工程,配合下方的描述符能够实现①直接接电脑,在设备管理器中能够查到被电脑识别为 HID- compliant game contorller

在这里插入图片描述

描述: 以上开发板的MCU是CH571,板载没有USB转串口协议的芯片,但是将设备插到电脑的USB口,电脑缺识别为串口,名称为 USB-SERIAL CH341A,这是什么原理呢?

猜测: 带USB 功能的MCU 通过USB引脚传输数据,应用层将USB引脚的数据封装为 串口协议,这样设备插到PC端就会被识别为串口设备;

关于工程的解析以及修改,请参考博文:
【沁恒蓝牙mesh】CH58x USB功能开发记录(二)

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

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

相关文章

Vue2:组件高级(下)

Vue2:组件高级(下) Date: May 25, 2023 Sum: 自定义指令、插槽、商品列表、动态组件 目标: 自定义指令 基础概念: 概念: 内置指令:vue 官方提供了 v-for、v-model、v-if 等常用的内置指令。…

Unity之获取用户地理位置

1.直接利用三方API获取: 1.1 利用bilibili的api 【未知稳定性】 public void Awake() {StartCoroutine(GetLocationInfoNew());}/// <summary>/// 利用bilibili的接口通过ip直接获取城市信息/// </summary>IEnumerator GetLocationInfoNew() {//UnityWebRequest …

Java【抽象类和接口】(2)【浅拷贝、深拷贝、object类】

一、Clonable 接口和深拷贝 1.clone接口的使用 注意以下几个点&#xff1a; import javax.jws.soap.SOAPBinding;class Person implements Cloneable{public String name;public int age;public Person(String name, int age) {this.name name;this.age age;}Overridepublic…

Redis探索之旅

目录 今日良言&#xff1a;有志者自有千计万计&#xff0c;无志者只感千难万难 一、简介 二、Redis的安装 三、Redis的简单使用 四、Redis相关知识点 1.缓存分类 2.五大基本数据类型使用 3.持久化 4.常见面试题 今日良言&#xff1a;有志者自有千计万计&#xff0c;无…

正运动亮相2023半导体设备材料与核心部件展示会,助力半导体产业高速高精应用

■展会名称&#xff1a; 第11届&#xff08;2023&#xff09;半导体设备材料与核心部件展示会 ■展会日期 2023年8月9日-11日 ■展馆地点 无锡太湖国际博览中心A6馆 ■展位号 A6-A361 正运动技术&#xff0c;作为国内领先的运动控制企业&#xff0c;将于2023年8月9日参加…

Visual Studio 2022安装教程(英文版)

文章目录 1.下载安装 1.下载 官网地址&#xff1a;https://visualstudio.microsoft.com/zh-hans/vs/ 选择第一个社区版本&#xff1a;Community 2022 安装 1.将下载好的文件保存到桌面&#xff0c;双击点开 2.等待visual studio installer配置好 3.点击安装后会来到配件选…

搭建本地开发服务器

搭建本地开发服务器 :::warning 注意 在上一个案例的基础上添加本地开发服务器&#xff0c;请保留上个案例的代码。如需要请查看 Webpack 使用。 ::: 搭建本地开发服务器这一个环节是非常有必要的&#xff0c;我们不可能每次修改源代码就重新打包一次。这样的操作是不是太繁琐…

Jmeter学习和一个关于jmeter获取X-XSRF-TOKEN时的坑

Jmeter学习和一个关于jmeter获取X-XSRF-TOKEN时的坑 现在想对一个接口做性能测试&#xff0c;需要测试它多个线程并发下的调用 1.新建测试计划和线程组 略 2.新建http接口 一个完整的http接口包含请求头和请求&#xff0c;这里就需要两个组件&#xff1a;HTTP request、HT…

【iOS】RunLoop

前言-什么是RunLoop&#xff1f; 什么是RunLoop? 跑圈&#xff1f;字面上理解确实是这样的。 Apple官方文档这样解释RunLoop RunLoop是与线程息息相关的基本结构的一部分。RunLoop是一个调度任务和处理任务的事件循环。RunLoop的目的是为了在有工作的时候让线程忙起来&#…

ChatGPT实战:创业咨询,少走弯路,少踩坑

用九死一生形容创业再适合不过&#xff0c;不过一旦成功回报也很诱人&#xff0c;这也是为什么那么多人下场创业。纸上得来终觉浅&#xff0c;绝知此事要躬行&#xff0c;创过业的人都知道其中的心酸&#xff0c;而他们也建议你去创业&#xff0c;因为那真不是一般人能干的事。…

力扣17(电话号码中的字符组合)

题目表述 给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 示例1 输入&#xff1a;digits "23" 输出&#xff1…

SpringBoot集成百度人脸识别实现登陆注册功能Demo(二)

前言 上一篇SpringBoot集成百度人脸demo中我使用的是调用本机摄像头完成人脸注册&#xff0c;本次demo根据业务需求的不同我采用文件上传的方式实现人脸注册。 效果演示 首页 注册 后端响应数据&#xff1a; 登录 后端响应数据&#xff1a; 项目结构 后端代码实现 1、Bai…

数据结构和算法——散列函数的构造方法(直接定址法、除留余数法、数字分析法、折叠法、平方取中法、ASCII码加和法、前三字符移位法)

目录 数字关键词的散列函数构造 直接定址法 除留余数法 数字分析法 折叠法 平方取中法 字符关键词的散列函数构造 ASCII码加和法 前三字符移位法 移位法 数字关键词的散列函数构造 一个“好”的散列函数一般应考虑下列两个因素&#xff1a; 计算简单&#xff0c;以…

QT生成可执行文件的步骤

QT生成可执行文件的步骤 第一步&#xff1a;debug为release&#xff0c;然后进行编译 第二步&#xff1a;添加QT生成必要的库 首先&#xff0c;建立一个新的文件夹&#xff0c;然后将Release中的可执行文件拷贝到新的文件夹中 然后&#xff0c;在新建文件夹中生成必要的库 …

Nginx(1)

目录 1.Nginx概述2.Nginx的特点3.Nginx主要功能1.反向代理2.负载均衡 1.Nginx概述 Nginx (engine x) 是一个自由的、开源的、高性能的HTTP服务器和反向代理服务器&#xff0c;也是一个IMAP、POP3、SMTP代理服务器。 Nginx是一个强大的web服务器软件&#xff0c;用于处理高并发…

别再被问倒了!Mysql索引竟然在这些情况下失灵?

嗨&#xff0c;亲爱的读者们&#xff01;小米又来啦~ 今天我们要聊一个在数据库面试中常常被问到的热门话题&#xff1a;Mysql索引失效。想要在面试中脱颖而出&#xff0c;掌握这个知识点可是必不可少哦&#xff01;废话不多说&#xff0c;咱们现在就深入剖析一下&#xff0c;看…

C#,数值计算——基于模拟退火的极小化问题单纯形(下山)算法的计算方法与C#源程序

1 模拟退火 模拟退火算法其实是一个类似于仿生学的算法&#xff0c;模仿的就是物理退火的过程。 我们炼钢的时候&#xff0c;如果我们急速冷凝&#xff0c;这时候的状态是不稳定的&#xff0c;原子间杂乱无章的排序&#xff0c;能量很高。而如果我们让钢水慢慢冷凝&#xff0c…

小研究 - 微服务系统服务依赖发现技术综述(一)

微服务架构得到了广泛的部署与应用, 提升了软件系统开发的效率, 降低了系统更新与维护的成本, 提高了系统的可扩展性. 但微服务变更频繁、异构融合等特点使得微服务故障频发、其故障传播快且影响大, 同时微服务间复杂的调用依赖关系或逻辑依赖关系又使得其故障难以被及时、准确…

pycharm中opencv库导入 cv2. 无函数提示跳出解决方法

pycharm中opencv库导入 cv2. 无函数提示跳出解决方法 1、找到当前解释器安装目录 例如&#xff1a; 2、进入D:\Python37\Lib\site-packages\cv2文件&#xff0c;进入cv2文件夹&#xff1a; 找到cv2.pyd, 把cv2.pyd复制一份&#xff0c;放到上层文件夹下&#xff0c;即site-p…

数据结构 | 二叉树的应用

目录 一、解析树 二、树的遍历 一、解析树 我们可以用解析树来表示现实世界中像句子或数学表达式这样的构造。 我们可以将((73)*(5-2))这样的数学表达式表示成解析树。这是完全括号表达式&#xff0c;乘法的优先级高于加法和减法&#xff0c;但因为有括号&#xff0c;所以在…