2687|8

36

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【RISC-V MCU CH32V103测评】 ---前进的维子---USB枚举概念 [复制链接]

 

RISC-V MCU CH32V103测评】 ---前进的维子---USB枚举概念 

前进的维子

2021126

前言: 

目的: 

第一部分:概念准备 

1.1:概念汇总 

1.2:概念构成和理解 

1.2.1、包 

1.2.2、事务 

1.2.3、控制传输 

1.2.4、枚举过程 

第二部分:芯片特点与USB概念的结合 

2.1:强制复位 

2.2:操作的USB设备地址 

2.3:端点和PID 

2.4:接入设备的检查功能 R8_USB_MIS_ST 

2.5:从哪里发 发多少 

第三部分:总结 

 

前言:

本文“维子”将给大家简单介绍一下CH32V103USB host部分。

我们仔细看看开发板,开发板除了两个灯,连个用户按键都没有对吧。但是我们看到了两个USB口,一个TypeC口 一个 普通口。特别,这个普通U口是母头的。维子想这应该就是,这个板子故意设计的地方。那也就是说,这个芯片的USB部分是它的卖点。那么,“维子”就简单的学习了一下芯片使用手册,结合分析官方例程,这里做一个USB部分的测评。

毕竟USB的内容还是蛮多的,这篇文章只写到枚举。(本想把代码分析也写上来,篇幅太长,写不完。)

目的:

希望通过本文,读者能够:1、对USB枚举的过程有一个了解。2:对USB的某些基本概念有所了解。3:对ch32v103USB手册和教程能有一个大体的认识。

 

第一部分:概念准备

说在前面,这些概念要放到脑子里理解是需要一个过程的。“维子”资质平平,理解这些概念的时候,可是认认真真的仔细思考了半天。

学习什么都不难,只要付出自己的时间都能学会,USB也不难。作为电子工程师,“快速的学习”是必备的技能。拿到一个陌生的器件,或者陌生的“协议”(USB其实也是种协议),我们必须以较短的时间弄清他的根本是什么,在应用层面要会用。

学习最好的东西是什么呢? 是前人的笔记和书籍。我手里刚好有一本《圈圈教你玩转USB》。从这本书的前面基本概念入手开始学习。

“维子”把自己学习的东西整理一下,给大家分享一下。

必须要掌握的概念和维子自己理解:(不说专业术语,专业术语自己查网上去)

1.1:概念汇总

序号

概念名

理解

1

USB通信的底层单元。数据传输的基本单元

2

事务

由包构成的通信单元

3

传输

由事务构成的通信过程

4

枚举

就是把设备的描述符弄到主机里面的过程

5

设备地址

接入的从机的地址(以,圈圈举的教学楼为例)

6

端点

上面的教学楼里的203教室的教室

7

描述符

这个不用说了就是描述符呗

8

枚举

枚举就是主机获取从机的各种描述的过程

 

用这个图来理解描述的关系

本图片截取自ch32v103官方的说明文档

1.2:概念构成和理解

1.2.1、包

1

同步域

主从两边“同步”统一思想的意思

2

PID

就是包的标志。就是包要干啥。

3

EOP

包结束。

枚举可能用到的PID

PID名字

说明

令牌类

SETUP

通知从机将要开始控制传输

数据类

DATA0/DATA1

0开始 然后是1 然后是0这样的

握手类

ACK

确认

 

1.2.2、事务

事务 (USB设备驱动 USB控制器驱动请求的每次传输被称为一个事务(Transaction))

令牌包

谁:主机

启动一个事务

数据包

谁:主机/从机(令牌包定)

发送的数据 (有时候可以没有)

握手包

谁:数据接收方(数据包的反方)

ACK应答或NAK不应答

1.2.3、控制传输

控制传输

建立过程

主机发送令牌包SETUP

 

主机发送数据包:DATA0

 

设备返回握手包:ACK或不应答

 

数据过程

多个数据事务构成,同一方向。换向则进状态过程

第一包必须DATA1

 

 

 

状态过程

方向与数据过程相反。

只用DATA1

 

 

 

应用场合

设备的枚举过程和对数据准确性要求较高的场合

 

1.2.4、枚举过程

过程

干啥

1

首次复位,和0号设备的0端点通信,获取设备描述符长度

2

二次复位,和0号设备的0端点通信,设置设备地址

3

和新地址设备的0号端点通信,再次获取设备描述符

4

获取配置描述符

表格里都是“维子”主机的理解。总比

第二部分:芯片特点与USB概念的结合

对于任何USB应用的芯片,都是建立在USB协议的基础上的(好有道理的废话)。这款CH32V103单片机的USB外设,就是一个让应用工程师方便使用USB的工具。具体芯片的USB的特点和使用方法,我们要认真的看官方提供的手册、说明文档。 手册不多224-239一共15页。说实话不多。我们主要看:关于枚举的部分。

先整体阅读一遍。知道:可做主,可做从,支持四种传输。寄存器分为:主寄存器、设备控制寄存器、主机控制寄存器。

我们应该关那些事情呢?1U盘接入的时候单片机怎么知道?2:如果进行枚举的第一次复位获取设备描述符?-----也就是要复位,如果设置“端点”和“PID”然后用控制传输获取设备描述符。怎么知道传完了?用到那些寄存器。3:如何二次复位,并且发送设置设备号。4:如何获取设备描述符和获取?

好了,我们带着问题来阅读书册,将会很好理解。

2.1:强制复位

R8_UHOST_CTRL .RB_UH_BUS_RESET

2.2:操作的USB设备地址

2.3:端点和PID

2.4:接入设备的检查功能 R8_USB_MIS_ST 

2.5:从哪里发 发多少

先摘抄到这里把,更详细的小伙伴们还是自己看吧。主要是帖子里加图片太费劲了。这些点可能还不全面。

 

第三部分:总结

本文是USB部分的的第一篇。主要是讲了一些概念,还有通信的过程中用到的的一些寄存器。希望对小伙伴有所启发。

 

第四部分:一些感想

1:要想读懂资料,就要把东西用自己语言表达出来。当你把你学会的东西,完整的讲给别人,并且别人能一次性的接受的视乎,才是真正的掌握了。“茶壶里煮饺子---肚里有道不出”,其实还是没彻底懂。

 

2:芯片的设计指导文件,就是芯片个性和脾气的表现。对指导文件越熟悉,越能体会芯片的脾气。理解越深刻。(这话是我以前的技术老板说的,很有道理)

第六篇枚举.pdf

469.52 KB, 下载次数: 6

最新回复

非常棒非常棒非常棒非常棒非常棒  详情 回复 发表于 2021-1-27 15:12

赞赏

1

查看全部赞赏

点赞(1) 关注
 
 

回复
举报

36

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

自己一个字一个打出来的,除了一张图是官方的借来的,其他都是100%原创。表达能力一般,有朋友存在问题的,可以留言,我尽量继续说明。

 
 
 

回复

1万

帖子

2853

TA的资源

管理员

板凳
 

有句古话说,理不辨不明。所以说出来是很重要的

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

点评

我遇到过一个技术领导,比我小三岁,但是理论水平比我高。从他那学到的,把东西说出来!自己就忘不了了。  详情 回复 发表于 2021-1-26 19:51
 
 
 

回复

36

帖子

0

TA的资源

一粒金砂(中级)

4
 
okhxyyo 发表于 2021-1-26 19:38 有句古话说,理不辨不明。所以说出来是很重要的

我遇到过一个技术领导,比我小三岁,但是理论水平比我高。从他那学到的,把东西说出来!自己就忘不了了。

 
 
 

回复

7504

帖子

2

TA的资源

五彩晶圆(高级)

5
 

谢谢分享,很详细,期待完成一个系列。

点评

我只是业余时间做做学习笔记。一点一点的来吧,一步一个脚印,能走的远一点。  详情 回复 发表于 2021-1-27 14:08
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复

1942

帖子

2

TA的资源

版主

6
 

这给出来的系列不错!

 
 
 

回复

36

帖子

0

TA的资源

一粒金砂(中级)

7
 
freebsder 发表于 2021-1-26 22:42 谢谢分享,很详细,期待完成一个系列。

我只是业余时间做做学习笔记。一点一点的来吧,一步一个脚印,能走的远一点。

 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

8
 
非常棒非常棒非常棒非常棒非常棒

点评

谢谢,这些小伙伴的肯定,一定继续努力  详情 回复 发表于 2021-1-27 17:29
 
 
 

回复

36

帖子

0

TA的资源

一粒金砂(中级)

9
 
方法欧锦 发表于 2021-1-27 15:12 非常棒非常棒非常棒非常棒非常棒

谢谢,这些小伙伴的肯定,一定继续努力

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表