发布USB系统: 01_USB视频介绍及资料下载,02_USB系统硬件框架和软件框架

This commit is contained in:
weidongshan
2022-07-21 18:44:21 +08:00
parent 0c49a03c1b
commit dba12f7df5
87 changed files with 51213 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
# USB视频介绍及资料下载 #
## 1. 资料下载
GIT仓库
```shell
https://e.coding.net/weidongshan/projects/doc_and_source_for_projects.git
```
注意上述链接无法用浏览器打开必须使用GIT命令来克隆。
GIT简明教程http://download.100ask.org/tools/Software/git/how_to_use_git.html
下载到GIT仓库后USB资料在里面
![image-20220721102942049](pic/01_git.png)
## 2. USB视频涉及的内容
* 必须掌握的概念
* 硬件框架、软件框架
* USB设备识别过程
* 描述符等概念
* APP开发
* libusb接口函数
* 编写APP操作USB设备
* USB设备驱动
* 操作USB设备的内核接口函数
* 编写USB设备驱动程序
* USB摄像头的编程
* USB Audio Class 讲讲就更好了(留到ALSA部分讲)
* USB控制器驱动
* USB设备的枚举过程
* usb系统中的拓扑命名
* usb 枚举(外接hub),结合硬件电路图来说明
* USB设备的读写流程
* OTG
* type c硬件接口、micro usb硬件接口
* OTG角色触发过程
* OTG硬件调试经验
* OTG使用
* Gadget
* function和composite怎么联系起来的可以结合zero.c那个驱动讲讲
* Gadget的几个使用示例

View File

@@ -0,0 +1,71 @@
# USB系统硬件框架和软件框架 #
参考资料:
* 《圈圈教你玩USB》
* 官网https://www.usb.org/documents
![image-20220721151007143](pic/02_usb_doc.png)
* 从官网下载后解压,可以得到如下文件(放在GIT仓库里了)
![image-20220721152136238](pic/04_usb_20.png)
## 1. 实验现象
现象把USB设备比如Android手机接到PC
* 右下角弹出"发现android phone"
* 跳出一个对话框,提示你安装驱动程序
问1USB设备插到电脑上去接触到的对方设备是什么
答1是USB控制器是USB控制器内嵌的root hub
问2. 既然还没有"驱动程序",为何能知道是"android phone"
答2. windows里已经有了USB的总线驱动程序接入USB设备后是"总线驱动程序"知道你是"android phone"
提示你安装的是"设备驱动程序"。 USB总线驱动程序负责识别USB设备, 给USB设备找到对应的驱动程序
问3. 为什么一接入USB设备PC机就能发现它
答3. PC的USB口内部D-和D+接有15K的下拉电阻未接USB设备时为低电平
USB设备的USB口内部D-或D+接有1.5K的上拉电阻它一接入PC就会把PC USB口的D-或D+拉高从硬件的角度通知PC有新设备接入。
问4. USB设备种类非常多为什么一接入电脑就能识别出来它的种类
答4. PC和USB设备都得遵守一些规范。比如USB设备接入电脑后PC机会发出"你是什么"USB设备就必须回答"我是xxx", 并且回答的格式是固定的。USB总线驱动程序会发出某些命令想获取设备信息(描述符)USB设备必须返回"描述符"给PC。
问5. PC机上接有非常多的USB设备怎么分辨它们
答5. 每一个USB设备接入PC时USB总线驱动程序都会给它分配一个编号。PC机想访问某个USB设备时发出的命令都含有对应的编号(地址)。
问6. USB设备刚接入PC时还没有编号那么PC怎么把"分配的编号"告诉它?
答6. 新接入的USB设备的默认编号是0在未分配新编号前PC使用0编号和它通信。
## 2. 硬件框架
在USB系统中有2个硬件概念
* USB Host它跟处理器相连处理器通过USB Host跟各类USB设备通信。USB Host中集成有一个root hub
* USB Device这分为两类设备
* Hub用来扩展USB接口
* Function就是普通的USB设备比如U盘、声卡等
![image-20220721151432064](pic/03_usb_hard_toplogy.png)
## 3. 软件框架
![image-20220721170642876](pic/05_soft_layer.png)
APP可以通过USB设备驱动程序访问USB设备
也可以绕过USB设备驱动直接通过USB控制器驱动访问USB设备。

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -615,6 +615,13 @@ git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git
24_SPI_Slave_Mode驱动程序源码解读 24_SPI_Slave_Mode驱动程序源码解读
``` ```
* 2021.07.21 发布"USB子系统"
```shell
01_USB视频介绍及资料下载
02_USB系统硬件框架和软件框架
```

View File

@@ -0,0 +1,49 @@
# USB视频介绍及资料下载 #
## 1. 资料下载
GIT仓库
```shell
https://e.coding.net/weidongshan/projects/doc_and_source_for_projects.git
```
注意上述链接无法用浏览器打开必须使用GIT命令来克隆。
GIT简明教程http://download.100ask.org/tools/Software/git/how_to_use_git.html
下载到GIT仓库后USB资料在里面
![image-20220721102942049](pic/01_git.png)
## 2. USB视频涉及的内容
* 必须掌握的概念
* 硬件框架、软件框架
* USB设备识别过程
* 描述符等概念
* APP开发
* libusb接口函数
* 编写APP操作USB设备
* USB设备驱动
* 操作USB设备的内核接口函数
* 编写USB设备驱动程序
* USB摄像头的编程
* USB Audio Class 讲讲就更好了(留到ALSA部分讲)
* USB控制器驱动
* USB设备的枚举过程
* usb系统中的拓扑命名
* usb 枚举(外接hub),结合硬件电路图来说明
* USB设备的读写流程
* OTG
* type c硬件接口、micro usb硬件接口
* OTG角色触发过程
* OTG硬件调试经验
* OTG使用
* Gadget
* function和composite怎么联系起来的可以结合zero.c那个驱动讲讲
* Gadget的几个使用示例

View File

@@ -0,0 +1,71 @@
# USB系统硬件框架和软件框架 #
参考资料:
* 《圈圈教你玩USB》
* 官网https://www.usb.org/documents
![image-20220721151007143](pic/02_usb_doc.png)
* 从官网下载后解压,可以得到如下文件(放在GIT仓库里了)
![image-20220721152136238](pic/04_usb_20.png)
## 1. 实验现象
现象把USB设备比如Android手机接到PC
* 右下角弹出"发现android phone"
* 跳出一个对话框,提示你安装驱动程序
问1USB设备插到电脑上去接触到的对方设备是什么
答1是USB控制器是USB控制器内嵌的root hub
问2. 既然还没有"驱动程序",为何能知道是"android phone"
答2. windows里已经有了USB的总线驱动程序接入USB设备后是"总线驱动程序"知道你是"android phone"
提示你安装的是"设备驱动程序"。 USB总线驱动程序负责识别USB设备, 给USB设备找到对应的驱动程序
问3. 为什么一接入USB设备PC机就能发现它
答3. PC的USB口内部D-和D+接有15K的下拉电阻未接USB设备时为低电平
USB设备的USB口内部D-或D+接有1.5K的上拉电阻它一接入PC就会把PC USB口的D-或D+拉高从硬件的角度通知PC有新设备接入。
问4. USB设备种类非常多为什么一接入电脑就能识别出来它的种类
答4. PC和USB设备都得遵守一些规范。比如USB设备接入电脑后PC机会发出"你是什么"USB设备就必须回答"我是xxx", 并且回答的格式是固定的。USB总线驱动程序会发出某些命令想获取设备信息(描述符)USB设备必须返回"描述符"给PC。
问5. PC机上接有非常多的USB设备怎么分辨它们
答5. 每一个USB设备接入PC时USB总线驱动程序都会给它分配一个编号。PC机想访问某个USB设备时发出的命令都含有对应的编号(地址)。
问6. USB设备刚接入PC时还没有编号那么PC怎么把"分配的编号"告诉它?
答6. 新接入的USB设备的默认编号是0在未分配新编号前PC使用0编号和它通信。
## 2. 硬件框架
在USB系统中有2个硬件概念
* USB Host它跟处理器相连处理器通过USB Host跟各类USB设备通信。USB Host中集成有一个root hub
* USB Device这分为两类设备
* Hub用来扩展USB接口
* Function就是普通的USB设备比如U盘、声卡等
![image-20220721151432064](pic/03_usb_hard_toplogy.png)
## 3. 软件框架
![image-20220721170642876](pic/05_soft_layer.png)
APP可以通过USB设备驱动程序访问USB设备
也可以绕过USB设备驱动直接通过USB控制器驱动访问USB设备。

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because one or more lines are too long