学习笔记基于LMS的USB程序开发笔记第一部分Word下载.doc
- 文档编号:14179271
- 上传时间:2022-10-19
- 格式:DOC
- 页数:20
- 大小:468KB
学习笔记基于LMS的USB程序开发笔记第一部分Word下载.doc
《学习笔记基于LMS的USB程序开发笔记第一部分Word下载.doc》由会员分享,可在线阅读,更多相关《学习笔记基于LMS的USB程序开发笔记第一部分Word下载.doc(20页珍藏版)》请在冰豆网上搜索。
基于LM3Sxxx的USB开发笔记 1
目录 2
第一章USB开发的必备知识 3
USB系统介绍 3
USB的连接模型 3
USB的拓扑结构 4
USB的电气特性 6
USB总线协议 6
USB数据流分类 7
USB的带宽 7
USB设备的插入检测机制 7
USB的识别过程 8
USB的请求命令 8
USB的描述符 10
USB设备的枚举过程 18
第一章USB开发的必备知识
USB系统介绍
USB是通用串行总线(UniversalSerialBus)的简写。
USB协议先后经历过USB1.0,USB1.1,USB2.0和USB3.0。
由于目前市面上的MCU大多只支持USB2.0,所以本文主要介绍USB2.0的特性。
USB是主从模式的总线结构,设备与设备之间,主机与主机之间是不能互连的,为了解决这个问题,扩大USB的使用范围,在USB2.0之后,出现了USBOTG(onthego)。
USBOTG的做法是同一个设备,在不同的应用场合下可以在主机和从机之间自由切换。
在USB1.0和USB1.1版本中,只支持1.5Mbps的低速模式(lowspeed)和12Mbps的全速模式(Fullspeed)。
在USB2.0中,又加入了480M的高速模式(Highspeed)。
USB的连接模型
USB是一种主从结构的总线,主机叫做host,从机叫做device(也就是我们平时讲的设备)。
一个完整的USB系统主要由三个部分组成:
uUSB的连接器
USB的连接是指USB设备与主机之间进行连接和通信的操作,主要包括以下几个方面:
-总线的拓扑结构:
USB设备与主机之间的各种连接方式
-内部层次关系:
根据性能叠置,USB的任务被分配到系统的每一个层次
-数据流模式:
描述了数据在提供中通过USB从发起端到接收端的流动方式
-USB的调度:
USB提供了一个共享的连接,对可疑使用的连接进行调度以支持同步数据传输
uUSB的主机
在任何USB系统中,只有一个USB的主机,USB和主机系统的接口叫做主机控制器。
主机控制器由硬件,固件和软件综合实现。
uUSB的设备
USB的设备包含两大类:
-网络集线设备:
为USB系统提供更多的连接点
-功能设备:
为USB系统提供具体功能
USB的数据交换只能发生在主机和从机之间,主机和主机,从机和从机之间是不能进行数据交换的。
为了再物理上区分主机和从机,使用不同的插头和插座,这样我们就能轻松的通过连接线来判断出USB系统中,谁处于主机模式,谁处于从机模式。
最早的USB标准中,USB接头只有4根线,USB2.0之后,定义了MiniUSB接口,增加了一个ID线,主要用在OTG的设备上用来标识本设备ID。
标准的USB接口有A型和B型,每一个类型又分为插头和插座。
如下图所示:
USB系统中,所有的数据传输都是由主机主动发起的,从机值是被动地负责应答。
在USBOTG应用中,一个设备可以在从机和主机之间切换,从而实现了设备间的连接,大大地增加了USB的使用范围。
但即使OTG的应用也还是属于主从模式,两个设备之间一个作为主机,一个作为从机。
USB的拓扑结构
USB的拓扑结构为金字塔型。
USB系统由一个USB主控制器出发,下面接USB的集线器,USB集线器将一个USB接口扩展为多个USB接口,多个USB接口又可通过集线器扩展更多的接口。
USB协议中对集线器的层数有限制,USB1.1规定USB的集线器层数最多是4层,USB2.0规定最多为6层。
图1.USB的拓扑结构
USB主控制器通过7位地址对挂接在总线上的设备进行寻址,理论上一个主控制器上最多可以接128个设备,但实际应用中接不了这么多。
在PC机上,一般有一个(或多个)USB集线器,它叫根集线器,直接连接在USB的主控制器上。
打开电脑的设备管理器,我们可以看到USB的主控制器和根集线器。
图2.PC机上的USB控制器和集线器
USB的电气特性
标准的USB使用4根线:
5V电源线(Vbus),差分数据线负(D-),差分数据线正(D+),地(Gnd)。
在USBOTG中,又增加了一种mini接口,使用的是5根线,比标准的USB多了一根身份识别(ID)线。
如下图所示:
USB使用的是差分传输模式,有两根数据先,分别是D-和D+。
在USB低速和全速模式中,采用的是电压传输模式,在高速模式下,则是电流传输模式。
为了避免长时间出现全0或全1的信号,在发送数据前,要经过位填充处理。
然后将数据串行化,发送到数据总线上,由两根数据线的差分值来表示0和1。
在接收端恰恰相反,接收端采样数据总线,将数据并行话,然后去白化处理(即去掉填充位),在解析数据。
在USB协议中规定,设备可以通过USB总线供电,在未配置之前,设备可以从VBUS上获取100mA的电流,配置之后,最多可以从VBUS上获取500mA的电流。
关于USB的的电气特性有如下几点需要注意:
-电缆中包括VBUS、GND二条线,向设备提供电源;
-VBUS使用+5V电源。
USB对电缆长度要求很宽,最长可为几米;
-为了保证足够的输入电压和终端阻抗,重要的终端设备应位于电缆的尾部;
-低速模式需要更少的EMI保护;
-两种模式可在用同一USB总线传输的情况下自动地动态切换。
-过多的低速模式的使用将降低总线的利用率;
USB总线协议
USB总线属于轮询方式的总线,始终由主机控制端口初始化所有的数据传输。
每一个USB总线执行动作最多传送三个数据包。
按照传输前制定好的原则,在每次传送开始时,主机控制器发送一个描述传输操作的种类、方向,USB设备地址和终端号的USB数据包,这个数据包通常称为标志包(tokenpacket)。
USB设备从数据包中取出属于自己的数据。
数据传输方向不是从主机到设备就是从设备到主机。
在传输开始时,由标志包来标识数据的传输方向,然后发送端开始发送包含信息的数据包或表明没有数据传送。
接收端也要相应发送一个握手的数据包表明是否传送成功。
发送端和接收端之间的USB数据传输,在主机和设备的端口之间可视为一个管道(PIPE)。
USB存在两种类型的管道:
-数据流管道
数据流管道的数据没有USB协议规定的结构。
管道与数据宽、传输服务类型、端口特性(如缓冲区大小)有关。
数据流管道在USB设备初始化设置完成就存在了。
-消息管道:
消息通道是USB协议中特殊的一个管道,也成为控制管道。
设备上电启动后,该管道就存在,为设备的设置、查询状态和输入控制信息提供了一个入口。
USB数据流分类
在USB主机和设备通道之间的数据传输,我们叫做数据流,USB的结构包含四个基本的数据流传输类型:
-控制数据传送
在设备连接时用来对设备进行设置,还可对指定设备进行控制,如通道控制;
-批量数据传送
大批量产生并使用的数据,在传输约束下,具有很广的动态范围;
通常用在打印机和扫描仪等有大量数据需求的传输。
-中断数据的传送
用来描述或匹配人的感觉或对特征反应的回馈;
中断数据传输是针对少量数据的传输需求,数据延迟时间也是有限范围内的。
-同步数据的传送
由预先确定的传送延迟来填满预定的USB带宽;
同步数据的建立、传输和使用时时连续且实时的,同步数据时以稳定的速率发送和接收实时信息,同步数据要使接受者与发送者保持相同的时间安排,出了传输速率,同步数据对延迟非常敏感。
对于任何指定的USB设备而言,一个通道只能支持上述一种方式的数据流传输。
USB的带宽
USB的带宽分配给各个通道,当一个通道建立后,USB主机就分配给它一定的带宽,USB设备需要提供一些数据缓冲区,若USB提供了更多的带宽,则需要更多的缓冲区。
USB的体系要保证缓冲引导的硬件的延迟限定在几毫秒内。
USB设备的插入检测机制
当USB设备插上主机时,主机是如何检测到设备插入的呢?
首先,在每个USB的集线器下游端口D+和D-上,分别接了一个15K欧姆的下拉电阻到地。
当集线器的端口悬空时,D+和D-被这两个下拉电阻拉到地,同为低电平。
在低速USB的设备上,DD-被接上1.5K欧姆的上拉电阻,在全速和高速USB设备上,D+被接上一个1.5K欧姆的上拉电阻。
当设备插入集线器是,由于1.5k欧姆的上拉和下拉电阻分压,就将D+或D-其中的一条线拉高了。
集线器检测到这个状态后,就上报USB主控制器,检测到设备的插入。
通过对D+,D-电平的识别可以判断出是低速设备还是高速或全速的设备。
高速和全速的设备需要主机和从机进一步数据交换后才能确定。
USB的识别过程
当USB主机检测到USB设备插入后,主机就通过一系列的动作来对设备进行枚举配置(配置是属于枚举的一个态,态表示暂时的状态),这些态如下:
-接入态(Attached)
设备接入主机后,主机通过检测信号线上的电平变化来发现设备的接入;
-供电态(Powered)
就是给设备供电,分为设备接入时的默认供电值,配置阶段后的供电值(按数据中要求的最大值,可通过编程设置)
-缺省态(Default)
USB在被配置之前,通过缺省地址0与主机进行通信
-地址态(Address)
经过了配置,USB设备被复位后,就可以按主机分配给它的唯一地址来与主机通信,这种状态就是地址态;
-配置态(Configured)
通过各种标准的USB请求命令来获取设备的各种信息,并对设备的某此信息进行改变或设置。
-挂起态(Suspended)
总线供电设备在3ms内没有总线操作,即USB总线处于空闲状态的话,该设备就要自动进入挂起状态,在进入挂起状态后,总的电流功耗不超过280UA。
USB的请求命令
控制传输过程中,初始化设置USB的设备时会涉及到USB的请求命令。
标准的USB设备请求命令总共有11个,每个命令由8个字节(5个字段)组成,具有相同的数据结构。
数据结构如下图所示:
表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学习 笔记 基于 LMS USB 程序 开发 第一 部分