发布USB系统: 01_USB视频介绍及资料下载,02_USB系统硬件框架和软件框架
49
IMX6ULL/doc_pic/12_USB/01_USB视频介绍及资料下载.md
Normal 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资料在里面:
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
## 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的几个使用示例
|
||||
|
||||
71
IMX6ULL/doc_pic/12_USB/02_USB系统硬件框架和软件框架.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# USB系统硬件框架和软件框架 #
|
||||
|
||||
参考资料:
|
||||
|
||||
* 《圈圈教你玩USB》
|
||||
* 官网:https://www.usb.org/documents
|
||||

|
||||
* 从官网下载后解压,可以得到如下文件(放在GIT仓库里了)
|
||||

|
||||
|
||||
|
||||
|
||||
## 1. 实验现象
|
||||
|
||||
现象:把USB设备比如Android手机接到PC
|
||||
|
||||
* 右下角弹出"发现android phone"
|
||||
* 跳出一个对话框,提示你安装驱动程序
|
||||
|
||||
|
||||
|
||||
问1:USB设备插到电脑上去,接触到的对方设备是什么?
|
||||
|
||||
答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盘、声卡等
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
## 3. 软件框架
|
||||
|
||||

|
||||
|
||||
APP可以通过USB设备驱动程序访问USB设备,
|
||||
也可以绕过USB设备驱动,直接通过USB控制器驱动访问USB设备。
|
||||
|
||||
BIN
IMX6ULL/doc_pic/12_USB/02_USB系统硬件框架和软件框架.tif
Normal file
BIN
IMX6ULL/doc_pic/12_USB/pic/01_git.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
IMX6ULL/doc_pic/12_USB/pic/02_usb_doc.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
IMX6ULL/doc_pic/12_USB/pic/03_usb_hard_toplogy.png
Normal file
|
After Width: | Height: | Size: 117 KiB |
BIN
IMX6ULL/doc_pic/12_USB/pic/04_usb_20.png
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
IMX6ULL/doc_pic/12_USB/pic/05_soft_layer.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
IMX6ULL/doc_pic/12_USB/usb_20_20211008/2002_05_28_errata.pdf
Normal file
BIN
IMX6ULL/doc_pic/12_USB/usb_20_20211008/Connect Timing ECN.pdf
Normal file
BIN
IMX6ULL/doc_pic/12_USB/usb_20_20211008/HSIC_ECN_21May2012.pdf
Normal file
BIN
IMX6ULL/doc_pic/12_USB/usb_20_20211008/Suspend Current ECN.pdf
Normal file
BIN
IMX6ULL/doc_pic/12_USB/usb_20_20211008/USB 2.0 DCR ECN.pdf
Normal file
BIN
IMX6ULL/doc_pic/12_USB/usb_20_20211008/USB2-LPM-Errata-final.pdf
Normal file
BIN
IMX6ULL/doc_pic/12_USB/usb_20_20211008/UnicodeECN.pdf
Normal file
BIN
IMX6ULL/doc_pic/12_USB/usb_20_20211008/ecn1-usb20-miniB-revd.pdf
Normal file
BIN
IMX6ULL/doc_pic/12_USB/usb_20_20211008/errata-092800-1207001.pdf
Normal file
BIN
IMX6ULL/doc_pic/12_USB/usb_20_20211008/resistor_ecn.pdf
Normal file
BIN
IMX6ULL/doc_pic/12_USB/usb_20_20211008/rnd_chmfr_ECNFINAL.pdf
Normal file
25483
IMX6ULL/doc_pic/12_USB/usb_20_20211008/usb_20.pdf
Normal file
@@ -615,6 +615,13 @@ git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git
|
||||
24_SPI_Slave_Mode驱动程序源码解读
|
||||
```
|
||||
|
||||
* 2021.07.21 发布"USB子系统":
|
||||
|
||||
```shell
|
||||
01_USB视频介绍及资料下载
|
||||
02_USB系统硬件框架和软件框架
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
49
STM32MP157/doc_pic/12_USB/01_USB视频介绍及资料下载.md
Normal 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资料在里面:
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
## 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的几个使用示例
|
||||
|
||||
71
STM32MP157/doc_pic/12_USB/02_USB系统硬件框架和软件框架.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# USB系统硬件框架和软件框架 #
|
||||
|
||||
参考资料:
|
||||
|
||||
* 《圈圈教你玩USB》
|
||||
* 官网:https://www.usb.org/documents
|
||||

|
||||
* 从官网下载后解压,可以得到如下文件(放在GIT仓库里了)
|
||||

|
||||
|
||||
|
||||
|
||||
## 1. 实验现象
|
||||
|
||||
现象:把USB设备比如Android手机接到PC
|
||||
|
||||
* 右下角弹出"发现android phone"
|
||||
* 跳出一个对话框,提示你安装驱动程序
|
||||
|
||||
|
||||
|
||||
问1:USB设备插到电脑上去,接触到的对方设备是什么?
|
||||
|
||||
答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盘、声卡等
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
## 3. 软件框架
|
||||
|
||||

|
||||
|
||||
APP可以通过USB设备驱动程序访问USB设备,
|
||||
也可以绕过USB设备驱动,直接通过USB控制器驱动访问USB设备。
|
||||
|
||||
BIN
STM32MP157/doc_pic/12_USB/02_USB系统硬件框架和软件框架.tif
Normal file
BIN
STM32MP157/doc_pic/12_USB/pic/01_git.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
STM32MP157/doc_pic/12_USB/pic/02_usb_doc.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
STM32MP157/doc_pic/12_USB/pic/03_usb_hard_toplogy.png
Normal file
|
After Width: | Height: | Size: 117 KiB |
BIN
STM32MP157/doc_pic/12_USB/pic/04_usb_20.png
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
STM32MP157/doc_pic/12_USB/pic/05_soft_layer.png
Normal file
|
After Width: | Height: | Size: 19 KiB |