【沁恒蓝牙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

【沁恒蓝牙mesh】CH58x USB功能开发记录(一)_第1张图片

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

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

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

你可能感兴趣的:(沁恒蓝牙mesh二次开发,物联网,蓝牙mesh,嵌入式C,蓝牙组网,沁恒)