IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> USB 协议 (一) -> 正文阅读

[嵌入式]USB 协议 (一)

USB 应用

之前写过一系列 USB 相关的博客,都是应用角度.没有涉及到 USB 协议

这里面涉及到 host 和 slave
其中 host 	有 PC & OK6410A
其中 slave 	有 "USB转JTAG小板""usb camera"

USB 协议

	USB 1.1 UHCI/OHCI
	USB 2.0 EHCI
	USB 3.0 XHCI。 // https://www.cnblogs.com/coryxie/category/596771.html
	USB4于201993日发布
  • USB 数据线
Mini 和 Micro 5条线,其他 4条线 
4条线 : Vbus D+ D- GND
5条线 : Vbus D+ D- GND ID
----
Vbus 是 5V , D+ D-3.3V
Vbus 和 GND 给设备提供电源 , D+ D- 用来传输数据
D+ D- 是 差分线 , 数据 在线上发送 从低到高
ID 用于 OTG , 接地表示主机, 空置表示设备
  • USB 数据封装
USB数据是由二进制数字串构成的,数据会发送到端点(可以认为是一个缓冲区)上
level 1 : 二进制数据 0 1 	//  两种 0 1 //没有时钟同步的 二进制数据传输(翻转)
level 2 ://	七种 SYNC PID ADDR ENDP FRAM DATA CRC)
level 3 : 包Packet			//  三种 令牌包 数据包 握手包
level 4 : 事务Transaction	// 	三种 IN OUT SETUP
level 5 : 传输Transfer		//  四种 中断传输 同步传输 批量传输 控制传输
level 6 : 管道Pipe			//  两种 Message Pipes , Stream Pipes
  • USB 数据传输的发起
USB是轮询总线,USB主机发起所有数据交换。
怎么算是一个发起?
  • USB数据的解析
"控制传输"是USB的重心,而这11个命令是控制传输的重心,所以这11个命令是重中之重

标准的USB设备请求命令是用在 控制传输 中的“初始设置步骤”里的数据包阶段(即DATA0,由八个字节构成)

标准USB设备请求命令共有11个,大小都是8个字节,具有相同的结构,由5个字段构成(字段是标准请求命令的数据部分)

结构如下(括号中的数字表示字节数,首字母bm,b,w分别表示位图、字节,双字节):

bmRequestType(1)+bRequest(1)+wvalue(2)+wIndex(2)+wLength(2)

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

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

一个设备只有一个设备描述符,
	而一个设备描述符可以包含多个配置描述符,
		而一个配置描述符可以包含多个接口描述符,
			一个接口使用了几个端点,就有几个端点描述符。

标准的描述符有5种,USB为这些描述符定义了编号:

1——设备描述符,
	描述遵循USB版本号、设备类型等信息,一个USB设备只有一个设备描述符。

2——配置描述符,
	用于描述一个USB设备的属性和能力等配置信息,
	如接口总数、当前配置、供电方式、远程唤醒和须获取电流量等,
	一个USB设备可以有几种相对独立的配置。

3——字符描述符,
	可选。

4——接口描述符,
	描述一个接口的属性,
	如接口类型、使用了哪些非0端点等。
	一个配置可拥n个接口,每个接口有唯一编号。

5——端点描述符
	描述非0端点的属性,包括输入/输出方向、端点号和端点容量。
	需注意的是端点描述符是作为配置描述符的一部分来返回给主机的,
	而不能直接通过控制传输中的Get_Descriptor或Set_Descriptor来访问。


传输方式的应用场景

控制传输			枚举 	
批量传输 		U盘/打印机/扫描仪
同步传输 		摄像头,音频及其他实时应用场景  	
中断传输			键盘,鼠标	
  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-07-20 19:03:54  更:2022-07-20 19:04:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 13:48:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码