Rockchip RK3399 - USB基础

----------------------------------------------------------------------------------------------------------------------------

开发板 :NanoPC-T4开发板eMMC16GBLPDDR34GB
显示屏 :15.6英寸HDMI接口显示屏u-boot2023.04linux6.3
----------------------------------------------------------------------------------------------------------------------------

一、USB基础知识回顾

linux驱动移植-usb驱动基础我们对USB总线进行了简单的介绍,其中包括:

  • USB协议版本介绍:USB1.0USB1.1USB2.0USB3.0USB3.1USB3.2USB4.0
  • USB接口:伴随着USB版本迭代,USB产生了多种连接器类型规范,比如Type-AType-BMini-AMini-BMicro-AMicro-BType-C等。
1.1 USB协议版本

从USB协议诞生至今,出现了多个USB协议版本,如USB1.0USB1.1USB2.0USB3.0USB3.1USB3.2。最新的是USB4.0协议,可直连CPUPCIe总线,最大速度可达40Gbps,使用Type-C接口,兼容DP视频协议、PD快充协议等,最高支持100W供电。

USB协议版本 速率称号 最大速率 电源 类型 推出时间
USB1.0 低速(Low-Speed) 1.5Mbps 5V/500mA 半双工 1996年1月
USB1.1 全速(Full-Speed) 12Mbps 5V/500mA 半双工 1998年9月
USB2.0 高速(High-Speed) 480Mbps 5V/500mA 半双工 2000年4月
USB3.0(USB3.2 Gen1) 超高速(SuperSpeed USB) 5Gbps 5V/900mA 全双工(两对数据线和一根屏蔽地线,以及2.0的四根线) 2008年月11月
USB3.1(USB3.2 Gen2) SuperSpeed USB 10Gbps 10Gbps 20V/5A 全双工(两对数据线和一根屏蔽地线) 2013年月7月
USB3.2(USB3.2 Gen2×2) SuperSpeed USB 20Gps 20Gbps 20V/5A dual-lane(2线,每条lane都是一对差分线) 2017年月9月
USB4.0(Gen3×2) ---- 40Gbps 100瓦 single-lane或dual-lane,兼容Thunderbolt3 2019年月8月

为了支持更高的传输速度,正常而言,越高版本的USB协议,定义的传输信号线会越多。

USB3.0包括USB2.0的引脚,USB3.13.0引脚相同;

  • USB2.0:一共有4根引脚,一对差分线D+/D-,还有地线GND、电源线VBUS

  • USB3.0:一共有9根引脚,为了兼容USB2.0除了拥有USB2.0的一对差分线D+/D-、以及地线GND、电源线VBUS外,还会拥有两对差分线(SSTX+SSTX-SSRX+SSRX-)和一根屏蔽地线;

USB3.0USB2.0使用不同的差分线传输数据,两者互不干扰,可同时工作。USB3.0线缆中保留了USB2.0的数据传输通道,实现了对USB2.0的兼容,另外加了5根线来进行全双工的高速传输。

USB是主从模式的总线,主机称为Host,丛机称为Device(设备)。从机与从机之间、主机与主机之间(不包括USB4.0),不能互联。每次通信都是由主机发起,从机不能主动发起通信,只能被动的应答主机的请求。

为了增加灵活性,又出现了USB OTG(On The Go),USB OTG支持主从切换,同一个设备,在不同场合下,可以在主机和从机之间切换。

USB2.0 OTG线中增加了一根USB ID线,当USB ID线上拉时,处于从机模式,当USB ID线接地时,处于主机模式。更多相关内容参考:Rockchip RK3399 - USB OTGextcon驱动 》

1.2 USB框图

这里我们需要补充一些USB相关的硬件知识,因为RK3399驱动编写中会涉及到。

USB芯片内部实现的功能就是接受软件的控制,进而从内存搬运数据并按照USB协议进行数据打包,并串转换后输出到芯片外部。或者从芯片外部接收差分数据信号,串并转换后进行数据打包并写到内存中。

USB芯片一般分为ControllerPHY,以Controller PHY 都被封装到SoC为例,如图:

图中绘制的是USB 2.0芯片,其中:

  • VBUS :电压线,主机利用VBUSUSB设备提供工作电压;
  • D+ : 正向传送数据 数据线;
  • D-: 反向传送数据 数据线;
  • GND:地线;

一般来说如果芯片的USB PHY封装在芯片内,基本采用UTMI+的接口。不封装到芯片内的一般采用ULPI接口,这样可以降低pin的数量。

1.2.1 Controller

控制器部分(Controller):主要实现USB协议和控制,内部逻辑主要由MAC层、CSR层、FIFO层,还有其他低功耗管理之类层次;

  • MAC实现按USB协议进行数据包打包和解包,并把数据按照UTMI/ULPI总线格式发送给PHY
  • CSR层进行寄存器控制,软件对USB芯片的控制就是通过CSR寄存器,这部分和
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Graceful_scenery

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值