USB (二)硬件概念 以 STM32F4为例

USB标准
软件控制部分协议
	USB 1.1 UHCI/OHCI
	USB 2.0 EHCI
	USB 3.0 XHCI。

USB主机控制器有3种规范
	UHCI(Universal Host Controller Interface)
		这种规范主要是Intel、Via芯片公司提供支持PC主板的;
		由 Intel 生产,适用于 USB 1.0 和 USB 1.1。使用 UHCI 时需要得到 Intel 的许可。该控制器支持低速模式和全速模式。
	OHCI(Open Host Controller Interface)
		这种规范是微软提出来的,主要应用在非PC系统上的嵌入式领域上的USB芯片;
		由 Compaq、 Microsoft 和 National Semiconductor 生产, 适用于 USB 1.01.1。
		该控制器支持低速模式和全速模式, 并且它的效率比 UHCI 更高, 因为可以执行更多硬件功能。
	EHCI(Enhanced Host Controller Interface)
		这种后来为提高USB速度而提出的规范,它支持最高速度为480Mbps。
		在 USB-IF 要求发布单一主控制器规范后,已经生产了该控制器,它适用于 USB2.0。 
		EHCI 仅支持高速传输,并且将低速和全速传输委托给 OHCI 或 UHCI 控制器执行。
	XHCI(eXtensible Host Controller Interface)
		是Intel最新开发的主机控制器接口,广泛用户Intel六代Skylake处理器对应的100系列主板上,支持USB3.0接口,往下也兼容USB2.0


USB 实现模块
Controller + PHY
USB电气特性
VCC
GND
D+
D-
ID
USB 与串口线
USB 其实 是 两根 串口线
一个 负责 从slave 	到 	host 的传输
一个 负责 从host 	到 	slave 的传输
USB 协议栈
USB协议栈 在 两个方面实现
	1. 软件
		例如stm32官方给的 usb 库
	2. 硬件 // 两个 usb 控制器 , 可同时使用,都是OTG.两个互不影响
		stm32f405的usb控制器1 :stm32f405的引出管脚 PA11(OTG_FS_DM)(USB_D-) PA12(OTG_FS_DP)(USB_D+)
		stm32f405的usb控制器2 :stm32f405的引出管脚 PB14(OTG_HS_DM)(USB_D-) PB15(OTG_HS_DP)(USB_D+)
			// 不接外接高速PHY,那就是使用内部PHY只能是FS.使用 PB14 和 PB15 接口
			// 外接高速PHY(USB3300),那就HS , 然后 不用 PB14 和 PB15 , 而是用 ULPI 接口
				// 参考 https://blog.csdn.net/huangkangying/article/details/104280372

在这里插入图片描述

STM32 USB相关概念
USB on stm32 参考 AN4879
	注意
		stm32f7x3 的 OTG HS  不用 外接 usb transceivers , 就可以支持 HS
		其他的 OTG HS 都需要 用 ULPI 接口 外接 usb transceivers , 以支持 HS
	注意
		在stm32中, "USB""USB OTG HS""USB OTG FS" 是三种不同的IP
硬件层面的概念
  • 全速 高速 低速
如何区分
  • usb1.0 usb2.0 usb3.0
usb 协议版本	速度(bps)
1.0/1.1				12M/1.5M
2.0 				480M

在这里插入图片描述

  • 下行 上行
->从 下行
从->主 上行
  • slave host

  • USB USB+ OTG
  • usb 包封装

  • usb传输类型

软件层面的概念
  • stm32 ST提供的2种代码(传统代码和cube代码)
传统代码根据芯片类型分为三套
	3套usb代码
	
  • usb 功能分类
设备(slave)端

host端
关注点
  • 过程
usb 插入时 , device  和 host 侧 的 枚举 过程
数据传输过程
复位过程
挂起过程
唤醒过程
  • 过程中的时序
对应 host侧和 slave侧 的usb中断
usb 两根线的时序
封装时序
	包

其他

拓扑结构
	根集线器(笔记本上的插口可能不是根集线器,而是根集线器分出来的集线器)
	usbhub(非根集线器)
	设备

线序
	差分双绞线
工作方式
	设备插入
		2.主机检测到根集线器状态改变(D+D-01 ) 并 发出一个命令(1.使能端口 2.配置端口)
		3.设备发行设备信息
		4.主机收到设备信息,分配(1.唯一表示地址0-127 2.驱动程序),并发出内部设置请求
	设备拔出
		将设备从可用资源列表中移除

usb软件流程
	1.数据通信都由usb主机发起.
	2.usb主机在软件及硬件层面分为
		2.1 客户软件
			界面
			设备驱动
				发起一次传输
				提供数据缓冲区以发送 和 接收 数据
		2.2 usb系统软件(软件)
			usb 核心驱动
			usb 控制器驱动
		2.3 usb总线接口(硬件)
			根集线器
				为usb系统提供一个或多个连接点(端口)
			主控制器
				完成主从设备间数据的实际传输(包括编解码,差错控制)
	3.usb设备在软件及硬件层面分为
		概念1
			usb总线接口
				usb设备中的串行接口引擎(SIE)
			usb逻辑设备
				一个端点的集合
			usb功能单元
				一个接口的集合
		概念2
			配置(低功耗和高功耗)
				1个usb设备含有1-n个配置,1个配置含有1-n个接口
			接口(大容量接口和音频接口)
				1个接口含有1-n个端点
			端点(控制,数据输入,数据输出)
				数据传输


			


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值