首页 > 应用与设计 > 工业应用 > C2837x入门指南 >

电机驱动

最新课程

热门课程

C2837x入门指南(二十四)—通信系统之USB

接下来我们讲讲通用串行总线USB接口 在部分的C2000芯片里面 它是包含USB控制机的 比如[听不清]里面的2806X 2807X [听不清]里面的2837XS 和2837XD 我们的USB控制器是符合USB2.0协议的 包括和挂起和恢复的信号 每个USB控制器 包含了32个端点 其中16个用于输入 16个用于输出 USB的工作速度是不同的 在不同模式下 是不同的 在device模式下 它工作在12兆的全速模式 在主机的host模式下 它可以工作在 12兆的全速模式下 也可以工作在1.5兆的低速模式下 我们看看下面这个框图中 是我们USB控制器的一个系统框图 从这个框图 我们看到 它是包含几个部分 首先 是我们的端点控制器 还有我们的片内集成的fire部分 还有我们的数据包的解码 和编码部分 还有我们的RAM控制器 以及CPU的接口 DMA的控制器 其中DMA这块的话 主要是使能 让我们的USB接口 能支持我们的DMA总线的 支持DAM总线带来的一个好处是我们的访问的效率 或者传输的效率会极大提高 其中我们有六个端点是可以来独立产生DMA的一个请求 三个是输出 三个是输入 USB所有的标准协议都是由USB-IF 应用者论坛 来制定的 USB-IF定义了通用USB标准化的接口 比如把标准接口分为HID MSC大容量存储类 CDC通用设备的 还有DFU设备固件升级的这些 其实从本质上讲 USB是一个叉分的异步串行通信接口 它支持的是NRZI的编码方式 USB是一个叉分的串接通信 因此它只需要两根线 一个D+ 一个D- 其实我们在很多的USB接口中 它一般是D+ D-加上一个电源 四根线 就可以了 USB总线的话 也是一个以总线为主机的连接方式 接下来看看USB总线通讯的架构 USB2.0支持的话是一个基础的网络结构 其中六层是host 最后一层是设备层 在USB总线上 我们所有的设备分为三种类型 一种是host 我们的主机 device我们的设备 从机的设备 hub既不是主机也不是设备 既不是主机也不是从机 它只是总线上用于扩展的一个设备 在USB2.0里面 它支持六层结构 第一层是主机 第二层是主机的hub 主机的hub接的是下面的一层 也就是第三层的hub 以及第三层上的设备 依次往下推 每个Hub扩载到下面一层 USB的总线相当于是一个金字塔类型的 上面是主机 最下面是device中间是device加hub 来组成的各个层次 那么主机是USB总线上的中心 只有主机能跟踪总线上的其他设备 只有主机能启动所有的事件 发起传送 从机相当于我们的device 只是响应主机的命令 这样的一个架构 整个USB总线 整个实施的过程非常简单 非常便宜的 接下来我们讲讲USB里面最重要的一个特点 就是枚举类型 枚举就是我在USB总线上接入一个新的设备的时候 主机对这个设备辨识 然后给它分配地址 包括提供驱动程序等等 以及最后完成 将这个设备接入到 我的总线里面来 这样一个过程就是枚举 由于枚举的特性 我们的USB能得到非常广泛的应用 主机如何检测到一个新设备的插入 这就是我们的hub的作用 每个hub上有两根信号线 每个线上都有15k欧姆的下拉电阻 每个电阻都是1.5千瓦的上拉电阻 当我的设备接到我的hub上来的时候 设备上的上拉电阻会让hub上的信号线 电位上拉 被上拉后 被我的hub检测到 主机检测到这样一个电流变换 就有新的设备进入的时候 主机会发起一阵轮循 轮循的一个过程 来查询我接入的设备的传入的速率啊 它的最高的数据化的程度啊 等等这些属性 根据检测到的属性 主机会建立一个通讯的链路 给这个设备分配一个地址 并且根据设备是否需要提供驱动程序 根据它的需求 来提供驱动程序 这个过程直到最后 设备接入进来 并且能跟它通讯 是一个完整的过程 是一个枚举 通过这样一个枚举 任何一个设备 都可以插入总线上非常方便了 这也是USB它支持热插法的功能 我们看看C2000上的USB 它在硬件上是怎么接线的 在USB总线上 一般有三根线 一个D+ D- Vbus Vbus是监视我的总线上的电压 信号 其实在大部分应用中 Vbus其实并不需要 因此在我们的C2000 USB控制器里面 我们只固定分配了D+ D-的两根总线 Vbus假如在某些特定情况下 比如你设计一个自己提供电源能力的USB控制器的话 它需要VBUS 这种情况下 我们用一个GPIO口 来完成电压的监控 其实C2000的IO口是支持3.3V的 所以USB直接接5伏的话 会烧坏我的USB口 所以我们建议在GPIO口上串一个100K 欧姆的电阻 但如果我的电压超过GPIO能承受的3.3伏或者0伏的时候 我的GPIO口并联两个ESD的二极管 会被打通 其他一个保护作用 刚才也说了 VBUS这个电压检测功能 只有在自供电的应用中才需要 在其他功能中 我们只需要D+ D-就好了 而且我们的D+ D-具有特殊的缓冲 因此可以支持USB的高速需求 器件上的位置 是不可以自由选择的 是固定的两个口 总结一下 USB的控制器 主要有几点 一个是USB控制器支持USD2.0通讯协议的 能运行在高速模式下 使用device模式 device模式可以运行在高速模式下 作为从主机 既可以工作在12兆的全速模式 也可以工作在1.5的低速模式下 它支持DMA 我们提供的所有USB样例例子 都可以在controlSUITE中找到

接下来我们讲讲通用串行总线USB接口

在部分的C2000芯片里面

它是包含USB控制机的

比如[听不清]里面的2806X

2807X [听不清]里面的2837XS

和2837XD

我们的USB控制器是符合USB2.0协议的

包括和挂起和恢复的信号

每个USB控制器 包含了32个端点

其中16个用于输入 16个用于输出

USB的工作速度是不同的

在不同模式下 是不同的

在device模式下 它工作在12兆的全速模式

在主机的host模式下 它可以工作在 12兆的全速模式下 也可以工作在1.5兆的低速模式下

我们看看下面这个框图中

是我们USB控制器的一个系统框图

从这个框图 我们看到 它是包含几个部分

首先 是我们的端点控制器

还有我们的片内集成的fire部分

还有我们的数据包的解码

和编码部分

还有我们的RAM控制器

以及CPU的接口

DMA的控制器

其中DMA这块的话 主要是使能 让我们的USB接口

能支持我们的DMA总线的

支持DAM总线带来的一个好处是我们的访问的效率

或者传输的效率会极大提高

其中我们有六个端点是可以来独立产生DMA的一个请求

三个是输出 三个是输入

USB所有的标准协议都是由USB-IF 应用者论坛

来制定的

USB-IF定义了通用USB标准化的接口

比如把标准接口分为HID

MSC大容量存储类

CDC通用设备的 还有DFU设备固件升级的这些

其实从本质上讲

USB是一个叉分的异步串行通信接口

它支持的是NRZI的编码方式

USB是一个叉分的串接通信

因此它只需要两根线 一个D+ 一个D-

其实我们在很多的USB接口中

它一般是D+ D-加上一个电源 四根线

就可以了 USB总线的话

也是一个以总线为主机的连接方式

接下来看看USB总线通讯的架构

USB2.0支持的话是一个基础的网络结构

其中六层是host

最后一层是设备层

在USB总线上 我们所有的设备分为三种类型

一种是host 我们的主机

device我们的设备

从机的设备

hub既不是主机也不是设备

既不是主机也不是从机

它只是总线上用于扩展的一个设备

在USB2.0里面 它支持六层结构

第一层是主机 第二层是主机的hub

主机的hub接的是下面的一层

也就是第三层的hub 以及第三层上的设备

依次往下推 每个Hub扩载到下面一层

USB的总线相当于是一个金字塔类型的

上面是主机 最下面是device中间是device加hub

来组成的各个层次

那么主机是USB总线上的中心

只有主机能跟踪总线上的其他设备

只有主机能启动所有的事件 发起传送

从机相当于我们的device

只是响应主机的命令

这样的一个架构 整个USB总线

整个实施的过程非常简单 非常便宜的

接下来我们讲讲USB里面最重要的一个特点

就是枚举类型

枚举就是我在USB总线上接入一个新的设备的时候

主机对这个设备辨识 然后给它分配地址

包括提供驱动程序等等 以及最后完成 将这个设备接入到

我的总线里面来

这样一个过程就是枚举

由于枚举的特性 我们的USB能得到非常广泛的应用

主机如何检测到一个新设备的插入

这就是我们的hub的作用

每个hub上有两根信号线

每个线上都有15k欧姆的下拉电阻

每个电阻都是1.5千瓦的上拉电阻

当我的设备接到我的hub上来的时候

设备上的上拉电阻会让hub上的信号线

电位上拉 被上拉后 被我的hub检测到

主机检测到这样一个电流变换

就有新的设备进入的时候

主机会发起一阵轮循

轮循的一个过程

来查询我接入的设备的传入的速率啊

它的最高的数据化的程度啊

等等这些属性

根据检测到的属性

主机会建立一个通讯的链路

给这个设备分配一个地址

并且根据设备是否需要提供驱动程序

根据它的需求 来提供驱动程序

这个过程直到最后 设备接入进来

并且能跟它通讯

是一个完整的过程

是一个枚举

通过这样一个枚举 任何一个设备

都可以插入总线上非常方便了

这也是USB它支持热插法的功能

我们看看C2000上的USB

它在硬件上是怎么接线的

在USB总线上

一般有三根线

一个D+ D- Vbus

Vbus是监视我的总线上的电压

信号

其实在大部分应用中

Vbus其实并不需要

因此在我们的C2000 USB控制器里面

我们只固定分配了D+ D-的两根总线

Vbus假如在某些特定情况下

比如你设计一个自己提供电源能力的USB控制器的话

它需要VBUS

这种情况下 我们用一个GPIO口

来完成电压的监控

其实C2000的IO口是支持3.3V的

所以USB直接接5伏的话

会烧坏我的USB口

所以我们建议在GPIO口上串一个100K

欧姆的电阻

但如果我的电压超过GPIO能承受的3.3伏或者0伏的时候

我的GPIO口并联两个ESD的二极管

会被打通 其他一个保护作用

刚才也说了 VBUS这个电压检测功能

只有在自供电的应用中才需要 在其他功能中

我们只需要D+ D-就好了

而且我们的D+ D-具有特殊的缓冲

因此可以支持USB的高速需求

器件上的位置 是不可以自由选择的

是固定的两个口

总结一下 USB的控制器

主要有几点 一个是USB控制器支持USD2.0通讯协议的

能运行在高速模式下

使用device模式

device模式可以运行在高速模式下

作为从主机 既可以工作在12兆的全速模式

也可以工作在1.5的低速模式下

它支持DMA

我们提供的所有USB样例例子

都可以在controlSUITE中找到

视频报错
手机看
扫码用手机观看
收藏本课程

视频简介

C2837x入门指南(二十四)—通信系统之USB

所属课程:C2837x入门指南 发布时间:2016.07.12 视频集数:28 本节视频时长:00:09:16
C2837x概述;芯片架构; 开发环境;外设寄存器操作;复位和中断;系统初始化;模拟子系统 ADC DAC CMP SDFM;控制类外设PWM CAP QEP。
TI培训小程序