usb相关资料整理(三)

接上一篇。
7、数据流模型
在这里插入图片描述
上图中黑色的是真实的物理通信(端到端),淡灰色的是逻辑通信,而开发者只需要关注逻辑通信即可完成开发工作。
主机host:USB主机在USB系统中是一个起协调作用的实体,它不仅占有特殊的物理位置,而且对于USB以及连接到USB上的设备而言,还具有特殊责任——主机控制所有的对USB的访问。一个USB设备想要访问总线,必须由主机给予它使用权。主机还负责监督USB的拓扑结构(为了协调)。
设备Physical Device:USB设备用于向主机提供一些额外的功能。USB设备提供的功能是多种多样的,但是面向主机的接口却是一致的。所以,对于所有这些设备,主机可以用同样的方式来管理它们与USB有关的部分。
8、总线拓扑:
物理:
在这里插入图片描述
逻辑:
在这里插入图片描述
可以看到“物理”中的一个Hub被移除,下面的“逻辑”模型体现就是相关的逻辑设备的移除。
9、设备端点
一个端点是一个可唯一识别的USB设备的Portion
一系列相互独立的端点在一起构成了USB逻辑设备。
每个逻辑设备有一个唯一的地址,这个地址是在设备连上主机时,由主机分配的,而设备中的每个端点在设备内部有唯一的端点号。这个端点号是设备在设计时给定的。每个端点都是一个简单的连接点,要么支持数据流入,要么流出,二者不可同时进行
一个端点特性决定了它和客户软件的传输类型。一个端点应该具有下述特性
①总线访问频率要求
②总线延迟要求
③带宽要求
④端点号
⑤错误处理方式
⑥可接收/发送的最大包长度
⑦传送类型
⑧传送方向
补充:端点号不为0的端点,在被设置之前,处于不可被访问状态。
10、总线复位
缺省控制通道支持对控制的传输,一旦设备连接上电,并且收到总线复位命令,端点0就是可访问的。
11、USB除了缺省控制通道剩余的端点:低速设备还有2个;高速设备根据协议,输入最多15个,输出最多15个。
12、通道通信的格式是互斥的。有两种格式:
①流(stream):不具有USB定义的格式的数据流【就是毫无格式的】
②消息(message):具有USB定义的格式的数据流【格式标准,内容随意】
13、缺省控制通道:由两个(发送和接收端)0号端点组成的通道叫做缺省控制通道。一旦设备加点并复位,该通道就可以使用
14、流通道:流通道的传输遵循先进先出原则,不区分这堆数据来自哪个请求。比如同时有A请求和B请求,每个请求需要传输3次流,那么接收端必须知道怎么组装,因为接收端接收也是按照传来的顺序接收,并不知道哪3个是一个请求的。所以流通道,没有并发的。
15、消息通道:首先,主机向USB设备发送一个请求,然后数据开始传送,最后产生一个状态阶段。这样一组“请求–数据–状态”的变化,就要求这种传输有一个格式,符合这个格式,自然能够实现一个完整的可靠的传输,所以消息通道需要USB定义的格式。
补充:消息通道允许双方向的信息流,虽然大多数的通信流都是单方向的,比如从PC到手机,比如从键盘到PC。
特别地,缺省控制通道,也是一个消息通道。
一个设备的每个消息通道在一个时间段内,只能为一个消息请求服务,多个客户软件可以通过缺省控制通道发出它们的请求,但是这些请求到达后,也是按照先进先出的原则,还是不能并发的。消息通道虽然不能并发,但是根据格式,可以知道每个包属于哪个数据,是可以区分不同的请求的。
消息通道会产生两个端点,并且两个端点的号码必须相同,一端是输出,一端是输入。
16、USB数据格式打包/解释
消息通道中,USB要求任何在通道上传送的数据均被打包,数据的解释工作由客户软件和应用层软件负责。
17、控制通道
一旦一个控制通道被确认之后,这个通道就会产生两个端点,一端输入一端输出,保持单向。区分与0和0的缺省控制通道,还是可以建立其余控制通道
18、控制包大小
USB高速设备定义的最大数据净负荷区长度为8、16、32、64字节,低速设备只能是8字节。这个长度的作用是,当端点做了以下两件事时,控制传送的数据阶段可被认为结束:
①已传由setup阶段指定的数据量(setup阶段类似一个协商阶段,告诉接收端要传多少数据)
②传送一个数据包,长度为0或者小于最大数据净负荷区(相当于没这个包没填满缓冲区,那自然没有下个包了)
19、同步通道是一种流通道,是单向的,因为保证“时间(什么时间传什么数据,就像K歌时实时那种)”,出错不重传
20、只有高速设备可以使用同步方式。同步的设计思路就是默认都是成功的,所以同步传送的端点不会中途停止,直到得到传送结束的指令。至于这期间失败了多少,接收端自行检查(类似UDP,不做check的传输)。
21、中断通道是一种流通道,是单向的。
22、批通道是一种流通道,是单向的。如果想双向传递,就再开一对端口反向传输即可。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
使用 JavaScript 编写的记忆游戏(附源代码)   项目:JavaScript 记忆游戏(附源代码) 记忆检查游戏是一个使用 HTML5、CSS 和 JavaScript 开发的简单项目。这个游戏是关于测试你的短期 记忆技能。玩这个游戏 时,一系列图像会出现在一个盒子形状的区域中 。玩家必须找到两个相同的图像并单击它们以使它们消失。 如何运行游戏? 记忆游戏项目仅包含 HTML、CSS 和 JavaScript。谈到此游戏的功能,用户必须单击两个相同的图像才能使它们消失。 点击卡片或按下键盘键,通过 2 乘 2 旋转来重建鸟儿对,并发现隐藏在下面的图像! 如果翻开的牌面相同(一对),您就赢了,并且该对牌将从游戏中消失! 否则,卡片会自动翻面朝下,您需要重新尝试! 该游戏包含大量的 javascript 以确保游戏正常运行。 如何运行该项目? 要运行此游戏,您不需要任何类型的本地服务器,但需要浏览器。我们建议您使用现代浏览器,如 Google Chrome 和 Mozilla Firefox, 以获得更好、更优化的游戏体验。要玩游戏,首先,通过单击 memorygame-index.html 文件在浏览器中打开游戏。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值