- 本课程为精品课,您可以登录eeworld继续观看:
- (24) -通信系统之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中找到
好
课程介绍
共计28课时,4小时27分22秒
C2837x入门指南
TI C2000 MCU PWM F2837xD ADC DAC DMA CLA C2837x CMP SDFM CAP QEP c28x
F2837x系列的最新 C2000™ Delfino™ 32 位 F2837xD 微控制器 (MCU),为工业实时控制实现最新创新,并设定了全新性能标准。这些最新 MCU 支持双核 C28x 处理功能与双实时控制加速器(也称为控制律加速器或 CLA),可提供 800 MIPS 浮点性能,从而可帮助设计人员为计算要求严格的控制应用开发低时延系统。此外,设计人员还可通过将多个嵌入式处理器整合在单个 MCU 中以降低复杂性,充分满足高级伺服驱动器、太阳能中央逆变器以及工业不间断电源 (UPS) 等需要实时信号分析的应用需求。
猜你喜欢
换一换
推荐帖子
- 2812程序转移至flash之终极变态攻略
- 2812,做一个音频处理系统(很简单的几个滤波器而以)。 至今日基本完成前期开发。现将本人作为一个初学者,完成2812的整个开发过程简单披露一下, 有两个目的: 1。供2812players参考借鉴 2。听取各位意见,了解我开发过程中的缺陷,并予以更新。 最开始,我download一个CCS for 2812的30天演示板,打开例子程序,进行编译...
- fish001 DSP 与 ARM 处理器
- 大家帮帮忙,2812的调理模块怎样设计?
- 大家帮帮忙,2812的调理模块怎样设计? 我现在正在做2812的板子,现在遇到了问题,请各位大虾帮帮忙啊。。。。 放大和调理模块将信号放大并过滤掉噪声, 然后将模拟信号的电压幅值调整到F2812DSP芯片允许的范围之内(0-3V),然后发送到DSP的片内A/D模块 ...
- 200fly 微控制器 MCU
- ADS7824 软件驱动调试,测量AD值错误
- ADS7824调试时,ADC没有接电压源时,读取值为0x3437,计算值-0.32V,接电压3.3V时,读取值也大约-1.6V, 有没有调试过ADS7824的,原看看驱动和电路有没有问题? #include "ADS7824.h" #include "system.h" #include "altera_avalon_pio_regs.h" #include #include ...
- tomsx TI技术论坛
- sja1000基地址计算
- CAN总线控制器sja1000 基地址怎么计算? 看了好多51的,都是根据CS来确定,如:CS接的是p20脚,AD0-AD7接P0,这样基地址就是0XFE00;但如果AD0-AD7不是接P0,而是P0口4个,P1口4个,片选接在P3.0上,那么这时基地址怎么算? 第一次用CAN,单片机用的MSP430的,引脚做板子时根据布线方便,随意接的。现在基地址不好确认了,...
- fuxudong 微控制器 MCU