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

news2024/10/6 8:40:18

本文主要介绍基于【沁恒蓝牙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.coloradmin.cn/o/846976.html

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

相关文章

【我们一起60天准备考研算法面试(大全)-第三十九天 39/60】【序列型DP】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

PDF Expert 3.3 for mac

PDF Expert是一款专业的PDF编辑和阅读工具。它可以帮助用户在Mac、iPad和iPhone等设备上查看、注释、编辑、填写和签署PDF文档。 以下是PDF Expert的特点: PDF编辑:PDF Expert提供了丰富的PDF编辑功能,包括添加、删除、移动、旋转、缩放、裁…

【2.2】Java微服务:Hystrix的详解与使用

目录 分布式系统面临问题 Hystrix概念 Hystrix作用 降级 什么是降级 order服务导入Hystrix依赖(简单判断原则:谁调用远程谁加) 启动类添加注解 业务方法添加注解(冒号里填回调方法名,回调方法返回兜底数据&…

DETR不需要多尺度或局部性设计

文章目录 DETR Doesn’t Need Multi-Scale or Locality Design摘要本文方法Box-to-Pixel Relative Position Bias其他改进 实验结果 DETR Doesn’t Need Multi-Scale or Locality Design 摘要 提出了一种改进的DETR检测器,使用单尺度特征映射和全局交叉注意计算&a…

RFID系统数据编码方式仿真实现

RFID 技术简介 射频识别技术(RFID,即,Radio Frequency Identification)是一种非接触自动识别技术,它利用无线通信的方式自动的从目标中读取信息。   典型的RFID射频识别系统包括标签和读写器两部分。   标签是一块集…

学术资源加速

以下为可以加速访问的学术资源地址: github.comgithubusercontent.comgithubassets.comhuggingface.co 编辑 /etc/network_turbo vim /etc/network_turbo 内容格式参考如下: export no_proxylocalhost,127.0.0.1 export http_proxyhttp://127.0.0.…

5,二叉树【p6-p7】

二叉树 5.1二叉树5.1.1例1:用递归和非递归两种方式实现二叉树的先序、中序、后序遍历5.1.1.1递归序的先序、中序、后序遍历先序遍历:中序遍历:后序遍历: 5.1.1.2非递归序的先序、中序、后序遍历先序遍历:中序遍历&…

基于Java+SpringBoot+Vue的时间管理系统设计与实现(源码+LW+部署文档等)

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

Apache Paimon 学习笔记

本博客对应于 B 站尚硅谷教学视频 尚硅谷大数据Apache Paimon教程(流式数据湖平台),为视频对应笔记的相关整理。 1 概述 1.1 简介 Flink 社区希望能够将 Flink 的 Streaming 实时计算能力和 Lakehouse 新架构优势进一步结合,推…

《深度探索c++对象模型》第七章笔记

非原创,在学习 7 站在对象模型的尖端 On the Cusp of the Object Model 这一章讨论三个著名的C语言扩充性质,它们都会影响CH对象。它们分别是 template、exception handling (EH)和runtime type identification (RTTI) 模版、异常、通过运行…

vite项目中使用@代表根路径

1.配置vite.config.ts import { defineConfig } from vite import vue from vitejs/plugin-vue import path from pathexport default defineConfig({plugins: [vue()],resolve: {alias:{: path.resolve(__dirname, src) }} })2.报错path和__dirname 找不到模块“path”或其相…

K8S系列文章 之 编写自动化部署K8S脚本

介绍 通过ansible脚本shell实现自动化部署k8s基础集群(v1.25.0) 部署结构 1. 通过二进制部署包镜像安装k8s集群、目录etcd节点只支持1-3个节点、最多三个etcd节点 2. 因k8s版本相对较新、需要升级内核来支持后台程序、当前版本只支持Cento7,内核版本(5.19.4-1.el7…

本地构建包含java和maven的镜像

目录 1.前提条件 2.下载 2.1.创建Dockerfile 3.构建镜像 参考文章 1.前提条件 本地环境需要的系统和软件 win10 Docker Desktop Powershell 图1 Win10安装Docker后,直接在Powershell使用Docker命令 有些Developer不习惯win10系统,却想要使用Lin…

使用ResponseBodyAdvice封装统一返回值

目录 ResponseBodyAdvice 接口概述 ResponseBodyAdvice 快速使用 父pom文件 pom文件 ResponseDto MyResponseBodyAdvice DemoController 结果展示 ResponseBodyAdvice 接口概述 在实际项目中,我们经常需要在请求前后进行一些操作,比如&#xf…

Cesium 实战教程 - 三种方式(CZML、nodeTransformations)修改模型节点组件属性(比例、旋转、移动等)

Cesium 实战教程 - 三种方式(CZML、nodeTransformations)修改模型节点组件属性(比例、旋转、移动等) 核心代码完整代码在线示例 关于 Cesium 设置模型组件的动作,之前是通过 CZML articulations 来实现的,…

xAI与GPT-4:探索宇宙真实本质的AI之战

xAI与GPT-4:AI之战 写在前面第一部分推动科学研究提升人机交互引发伦理和社会问题 第二部分模型的进一步优化跨领域合作人机融合 反AI斗士 马斯克进军AI中国的AI产业怎么样AI这把火,还能怎么烧?最后总结 北京时间7月13日凌晨,马斯…

加速手机充电,打开这个小技巧,让充电速度翻倍,快速充满电量

加速手机充电,打开这个小技巧,让充电速度翻倍,快速充满电量 通过打开这个小技巧,我们可以在有限的时间内快速充满手机电量,解决了电量不足的困扰。不再需要长时间等待充电,让我们能够更加便捷地使用手机&a…

微服务监控技术skywalking的部署与使用(亲测无坑)

微服务监控技术skywalking的部署与使用 1. 前期准备2. skywalking安装部署2.1 Java Agent2.2 apache/skywalking-oap-server2.3 apache/skywalking-ui 3. 项目启动4.效果展示 1. 前期准备 注:本篇文章采用docker部署,采用8.2.0版本,版本一定…

vue+Highcharts绘制3D饼图

效果图 一、下载highcharts插件 npm install highcharts 二、main.js全局配置插件 import Highcharts from "highcharts/highcharts"; import highcharts3d from "highcharts/highcharts-3d"; highcharts3d(Highcharts); 三、封装highcharts.vue组件 …

FreeFileSync 12.5 正式发布,文件夹比较与同步软件

导读FreeFileSync 是一款开源软件,适用于 Windows、macOS 和 Linux。FreeFileSync 本质是一个用于文件夹对比和同步的软件,它可以创建和管理所有重要文件的备份副本。FreeFileSync 不是每次都复制每个文件,而是确定源文件夹和目标文件夹之间的…