论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
云原生
›
USB2.0之架构简述
USB2.0之架构简述
前进之路
金牌会员
|
2025-1-10 20:41:03
|
显示全部楼层
|
阅读模式
楼主
主题
834
|
帖子
834
|
积分
2502
一个USB系统可分解为三部分内容——USB主机(host)、USB装备(device)以及两者之间的内涵联系(interconnect)。
内涵联系包括四方面:
总线拓扑(Bus Topology)
内部层级关系(Inter-layer Relationships)
数据流模型(Data Flow Models)
时间分配(USB Schedule)
总线拓扑
分层星型拓扑
USB总线是分层星型拓扑结构,一个USB系统只能有
1个主机
,由于时间的限定,USB系统最多拓展到7层,此中的hub最多只能级联5层(不包括root hub)。如上图所示,含有hub的复合装备不能接到第7层。一个USB系统最多支持
127
个装备。
一个 USB HOST 最多可以同时支持 128 个地址,地址 0作为默认地址,只在装备枚举期间暂时使用,而不能被分配给任何一个装备,因此一个 USB HOST 最多可以同时支持 127个地址,如果一个装备只占用一个地址,那么可最多支持 127 个USB装备。在实际的USB体系中,如果要毗连127个USB装备,必须要使用USB HUB,而 USB HUB 也是须要占用地的,所以实际可支持的 USB功能装备的数量将小于 127。
注:hub是用来拓展usb接口的装备。
物理接口
USB线缆
USB只需简单的4线线缆,2根电源线,2根数据线。此中电源电压为5V,可以为装备提供电源,装备本身也可以单独安排电源供电。数据线传输的是差分信号,按速率分为3种:
480Mb/s的高速(high-speed)
12 Mb/s的全速(full-speed)
1.5 Mb/s的低速(low-speed)
健壮性
USB线上接纳差分信号传输数据
接纳CRC校验数据
数据错误重发机制,当数据吸收方发现吸收到的数据堕落了,会要求发送方重新发数据,一包数据最大可发送3次,超过三次,发送方就会将错误报告给上层软件去处理。
总线协议
USB是轮询总线,所有数据传输(data transfers)都由主机启动。
大多数总线事务涉及最多三个数据包的传输。1)主机先发送一个数据包给装备,这个数据包包含数据类型、数据方向、装备地址等信息;2)吸收到该数据包的装备根据数据包的内容做出相应处理——吸收下一包数据或者向主机发送一包数据;3)吸收到数据的主机或者装备向数据发送方发送一包数据,表现数据吸收的情况。
端点(Endpoint)是USB装备上的数据处理单位。主机发送过来的数据,由端点吸收,装备要发送给主机数据,也由端点发送。端点0比较特殊,支持双向,既可以吸收,也可以发送,其它端点只能有一个方向。
主机与装备端点(Endpoint)之间的数据传输可以看作是管道(Pipe)模型,这是逻辑上的管道概念,装备上有多个端点,每个端点只能处理规定的数据类型,那么主机就要明确数据是发给哪个端点的,如此主机和每一个端点就有了独立的捆绑关系,在逻辑上雷同于在两者之间架设了直连管道传输数据。管道分为流管道(Stream Pipes)和信息管道(Message Pipes)。信息管道(Message Pipes)的数据有规定的格式含义,而流管道(Stream Pipes)没有。
数据流类型(Data Flow Types)
一条管道只能支持一种类型的数据传输,也就是说一个端点只能担当一种类型的数据传输。
USB将数据传输类型分为四种:
控制传输(Control Transfers):用于装备毗连时的配置处理以及其它管道控制等目标。 每个USB装备接入都会使用到该类型传输。
批量传输(Bulk DataTransfers):用于大量数据的传输,延迟没有包管。 比方打印机、扫描仪都会使用到该类型传输。
中断传输(Interrupt Data Transfers):有时间包管的可靠传输。会有延迟,但时间是控制在一定阈值之下的。比方鼠标的使用就涉及到这种类型的数据传输。
同步传输(Isochronous DataTransfers):及时传输,数据精确性不包管。一个典型例子就是USB音频装备。
USB将带宽分配给管道,如果装备要求更多的带宽,那装备就须要有更大的空间以便承载数据。
装备特点
每一个装备都有端点0,装备的信息都是通过端口0发送给主机的。装备信息可以分为三类:
标准信息:这是所有USB装备都有的一类信息,包括厂商标识、装备类别、电源管理能力、各级形貌符。
类信息:这个跟标准信息中的装备类别信息相关。
厂商信息:USB厂商自界说的内容。
装备重要分为两类:集线类(hubs)和功能类(Functions),hub扩展接口数量,function提供具体功能。
主机硬件和软件
主机是通过主机控制器( Host Controller)和装备通信的,重要做以下几方面的工作:
检测装备的插入和移除。
管理主机和装备之间的控制流。
管理主机和装备之间的数据流。
收集状态和活动统计。
装备供电。
系统软件和装备软件的互动有以下几方面:
装备枚举和配置
同步数据传输
异步数据传输
电源管理
装备和总线管理信息
参考资料:
Universal Serial Bus Specification Revision 2.0 ,April 27, 2000
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
前进之路
金牌会员
这个人很懒什么都没写!
楼主热帖
低代码平台 - 危险的赌注
后台性能测试规范
Redis常见使用场景
Docker 基础 - 1
小小项目-博客系统 - 服务器版本 - jav ...
泛型通配符?(问号)简介说明 ...
实用五步法教会你指标体系的设计与加工 ...
端午假期整理了仿天猫H5 APP项目vue.js ...
MySQL与Java常用数据类型的对应关系 ...
Python3程序捕获Ctrl+C终止信号 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表