这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
icore3_arm_hal_18 [2020/04/16 17:59] zgf [三、 实验原理] |
icore3_arm_hal_18 [2022/03/18 15:08] (当前版本) sean |
||
---|---|---|---|
行 2: | 行 2: | ||
|技术支持电话|**0379-69926675-801** ||| | |技术支持电话|**0379-69926675-801** ||| | ||
|技术支持邮件|Gingko@vip.163.com ||| | |技术支持邮件|Gingko@vip.163.com ||| | ||
- | |技术论坛|http://www.eeschool.org ||| | ||
^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | ^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | ||
| V1.0 | 2020-04-16 | gingko | 初次建立 | | | V1.0 | 2020-04-16 | gingko | 初次建立 | | ||
行 95: | 行 94: | ||
* 可通过软件配置为以下角色: | * 可通过软件配置为以下角色: | ||
* 支持 SRP 的 USB HS/FS 从机(B 器件) | * 支持 SRP 的 USB HS/FS 从机(B 器件) | ||
- | * 支持 SRP 的 USB HS/FS/LS 主机(A 器件) | ||
* 支持 SRP 的 USB HS/FS/LS 主机(A 器件) | * 支持 SRP 的 USB HS/FS/LS 主机(A 器件) | ||
* 支持 HS/FS SOF 以及低速 (LS)“Keep-alive”令牌并具有如下功能: | * 支持 HS/FS SOF 以及低速 (LS)“Keep-alive”令牌并具有如下功能: | ||
行 132: | 行 130: | ||
* 具备软断开功能 | * 具备软断开功能 | ||
=== 3、高速OTG框图 === | === 3、高速OTG框图 === | ||
+ | * USB OTG HS 模块嵌入了一个 ULPI 接口以连接外部 HS PHY。 | ||
{{ :icore3:icore3_arm_hal_18_1.png?direct |}} | {{ :icore3:icore3_arm_hal_18_1.png?direct |}} | ||
- | * USB OTG HS 模块嵌入了一个 ULPI 接口以连接外部 HS PHY。 | ||
- | |||
=== 4、USB CLASS === | === 4、USB CLASS === | ||
* USB协议设计的时候,把鼠标,键盘,大容量存储,图像等,这些之前是通过其他接口所实现的,各种的功能,都囊括进来。并且在协议中有对应的规范定义,支持这些功能。因此,制定了各种USB的Clas,即分类,根据功能而分出的各种类别。不同的Class分类,用于实现对应的功能,适用于相应的设备。 | * USB协议设计的时候,把鼠标,键盘,大容量存储,图像等,这些之前是通过其他接口所实现的,各种的功能,都囊括进来。并且在协议中有对应的规范定义,支持这些功能。因此,制定了各种USB的Clas,即分类,根据功能而分出的各种类别。不同的Class分类,用于实现对应的功能,适用于相应的设备。 | ||
* 常见的USB类设备: | * 常见的USB类设备: | ||
- | - 音频类 | + | - 音频类 |
- | - 通信设备类 | + | - 通信设备类 |
- | - 人机接口设备类 | + | - 人机接口设备类 |
- | - 物理设备 | + | - 物理设备 |
- | - 成像设备类 | + | - 成像设备类 |
- | - 打印机设备类 | + | - 打印机设备类 |
- | - 大容量存储类 | + | - 大容量存储类 |
- | - 数据接口类 | + | - 数据接口类 |
- | - 智能卡设备类 | + | - 智能卡设备类 |
- | - 内容安全设备类 | + | - 内容安全设备类 |
- | - 视频设备类 | + | - 视频设备类 |
- | - 个人医疗保健设备类 | + | - 个人医疗保健设备类 |
- | - USB音频/视频(AV)设备类 | + | - USB音频/视频(AV)设备类 |
- | - Billboard Device Class Specification | + | - Billboard Device Class Specification |
- | - USB Type-C桥接器件类 | + | - USB Type-C桥接器件类 |
- | - 无线控制类 | + | - 无线控制类 |
- | - 其他设备 | + | - 其他设备 |
- | - 特定应用 | + | - 特定应用 |
- | - 厂商自定义 | + | - 厂商自定义 |
{{ :icore3:icore3_arm_hal_18_2.png?direct |}} | {{ :icore3:icore3_arm_hal_18_2.png?direct |}} | ||
=== 5、USB_CDC类简介 === | === 5、USB_CDC类简介 === | ||
- | * USB2.0标准下定义了很多子类,有音频类,CDC类,HID,打印,大容量存储类,HUB,智能卡等等,这些在usb.org官网上有具体的定义,这里主要介绍通信类CDC。CDC(Communication Device Class)类 是USB2.0标准下的一个子类,定义了通信相关设备的抽象集合。它与USB2.0标准以及其下的子类的相互关系如下图所示: | + | * USB2.0标准下定义了很多子类,有音频类,CDC类,HID,打印,大容量存储类,HUB,智能卡等等,这些在usb.org官网上有具体的定义,这里主要介绍通信类CDC。CDC(Communication Device Class)类是USB2.0标准下的一个子类,定义了通信相关设备的抽象集合。它与USB2.0标准以及其下的子类的相互关系如下图所示: |
* USB CDC类的通信部分主要包含三部分:枚举过程、虚拟串口操作和数据通信。其中虚拟串口操作部分并不一定强制需要,因为若跳过这些虚拟串口的操作,实际上USB依然是可以通信的,这也就是为什么下图中,在操作虚拟串口之前会有两条数据通信的数据。之所以会有虚拟串口操作,主要是我们通常使用PC作为Host端,在PC端使用一个串口工具来与其进行通信,PC端的对应驱动将其虚拟成一个普通串口,这样一来,可以方便PC端软件通过操作串口的方式来与其进行通信,但实际上,Host端与Device端物理上是通过USB总线来进行通信的,与串口没有关系,这一虚拟化过程,起决定性作用的是对应驱动,包含如何将每一条具体的虚拟串口操作对应到实际上的USB操作。需要注意的是,Host端与Device端的USB通信速率并不受所谓的串口波特率影响,它就是标准的USB2.0全速(12Mbps)速度,实际速率取决于总线的实际使用率、驱动访问USB外设有效速率(两边)以及外部环境对通信本身造成的干扰率等因素组成。 | * USB CDC类的通信部分主要包含三部分:枚举过程、虚拟串口操作和数据通信。其中虚拟串口操作部分并不一定强制需要,因为若跳过这些虚拟串口的操作,实际上USB依然是可以通信的,这也就是为什么下图中,在操作虚拟串口之前会有两条数据通信的数据。之所以会有虚拟串口操作,主要是我们通常使用PC作为Host端,在PC端使用一个串口工具来与其进行通信,PC端的对应驱动将其虚拟成一个普通串口,这样一来,可以方便PC端软件通过操作串口的方式来与其进行通信,但实际上,Host端与Device端物理上是通过USB总线来进行通信的,与串口没有关系,这一虚拟化过程,起决定性作用的是对应驱动,包含如何将每一条具体的虚拟串口操作对应到实际上的USB操作。需要注意的是,Host端与Device端的USB通信速率并不受所谓的串口波特率影响,它就是标准的USB2.0全速(12Mbps)速度,实际速率取决于总线的实际使用率、驱动访问USB外设有效速率(两边)以及外部环境对通信本身造成的干扰率等因素组成。 | ||
- | {{ :icore3:icore3_arm_hal_18_3.png?direct |}} | ||
- | {{ :icore3:icore3_arm_hal_18_4.png?direct |}} | ||
* USB_CDC类详细内容可参考《USB_CDC类入门培训》。 | * USB_CDC类详细内容可参考《USB_CDC类入门培训》。 | ||
+ | {{ :icore3:icore3_arm_hal_18_3.png?direct&700 |}} | ||
+ | {{ :icore3:icore3_arm_hal_18_4.png?direct&700 |}} | ||
+ | |||
=== 6、USB_CDC类简介 === | === 6、USB_CDC类简介 === | ||
* **实现原理** | * **实现原理** | ||
* iCore3中使用的STM32F407IGTx芯片带有USB高速物理层,通过外部高速PHY的ULPI接口外接USB3300设备芯片实现USB_CDC设备物理层搭建。连接示意图如下: | * iCore3中使用的STM32F407IGTx芯片带有USB高速物理层,通过外部高速PHY的ULPI接口外接USB3300设备芯片实现USB_CDC设备物理层搭建。连接示意图如下: | ||
- | |||
{{ :icore3:icore3_arm_hal_18_5.png?direct&550 |}} | {{ :icore3:icore3_arm_hal_18_5.png?direct&550 |}} | ||