[MCU] 【MM32 eMiniBoard测评】Part6:USB_HID的初步了解

w494143467   2020-11-20 20:30 楼主

1.介绍

这是我第一次接触USB的HID通信协议,以往基本都是使用串口,这算是一个新的知识,所以也稍微查询了一下资料,也看了一下其他人的测评,大概对HID有了初步的了解,下面就看一下这个流程吧。

2.HID介绍

USB设备描述符-概述

当插入USB设备后,主机会向设备请求各种描述符来识别设备。那什么是设备描述符呢?

Descriptor即描述符,是一个完整的数据结构,可以通过C语言等编程实现,并存储在USB设备中,用于描述一个USB设备的所有属性,USB主机是通过一系列命令来要求设备发送这些信息的。

描述符的作用就是通过命令操作作来给主机传递信息,从而让主机知道设备具有什么功能、属于哪一类设备、要占用多少带宽、使用哪类传输方式及数据量的大小,只有主机确定了这些信息之后,设备才能真正开始工作。

USB有那些标准描述符? 

USB有5种标准描述符:设备描述符 、配置描述符、字符描述符、接口描述符、端点描述符  。

描述符之间有一定的关系,一个设备只有一个设备描述符,而一个设备描述符可以包含多个配置描述符,而一个配置描述符可以包含多个接口描述符,一个接口使用了几个端点,就有几个端点描述符。由此我们可以看出,USB的描述符之间的关系是一层一层的,最上一层是设备描述符,下面是配置描述符,再下面是接口描述符,再下面是端点描述符。在获取描述符时,先获取设备描述符,然后再获取配置描述符,根据配置描述符中的配置集合长度,一次将配置描述符、接口描述符、端点描述符一起一次读回。其中可能还会有获取设备序列号,厂商字符串,产品字符串等。

上面是我从别的地方摘过来的,整体大概就是这么一个意思。

3.HID代码简单分析

首先打开【MM32F013x_Lib_Samples_V1.03\MM32F013x_Samples\LibSamples\USB\USB_HID_Suspend】这里面的例程,官方给出的例程已经非常好了,接下来下载坛友提供的HID助手【https://download.eeworld.com.cn/detail/fxyc87/614379】,这个助手功能挺强大的。

打开HID调试工具,可以看到HID整体界面如下图所示,这时候点击查找USB,如果开发板已经下载例程,则列表里会出现如下图红框中的名称,这就是MM的HID设备名称。

1.png

接下来运行看一下,可以看到接收速度非常快,这里可以大致的统计一下速度,约为35000字节每秒。

2.png

35000字节每秒代表的速率是多少呢,35000X8就等于通信速率,大约为280000bit/s速率还是挺可观的。

3.png

最后来看一下代码,也是比较简介的,在while循环中不停的发送数据,所以会一直接收到数据。

4.png

回复评论 (5)

我也没完完整整仔仔细细玩过usb

默认摸鱼,再摸鱼。2022、9、28
点赞  2020-11-20 21:26

不错 不错,我也试下

点赞  2020-11-20 22:25
引用: bianjianm 发表于 2020-11-20 22:25 不错 不错,我也试下

是啊,这个对于我来说是新东西,你也试试。

点赞  2020-11-21 08:57
玩板看这里: https://bbs.eeworld.com.cn/elecplay.html EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
点赞  2020-11-23 10:56

谢谢楼主分享

点赞  2021-5-21 10:10
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复