微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > USB总线协议基础知识

USB总线协议基础知识

时间:12-15 来源:互联网 点击:

可以,比如

从机要发数据给主机时,也可以采取同主机类似的方式:

首先,从机发第1个packet给主机,声明数据传送方向,数据传输地址,数据传输类型。
其次,从机发第2个至第n个packet载有实际数据
最后,主机返回一个packet是一个ACK包,报告数据传输的结果,比如接受出错或成功等信息,这样从机就可以

借此了解到这次传输情况,从而有可能来作出相应措施如决定是否重发。

基本上可以归结为一个“三段式”传输

这里有人可能注意到了,对这样一个传输机制,从机和主机的功能将是一样的,因为这样的实现机制,从机

可能在某一时刻是主机,某一时刻又可能是从机,因为他们要实现同样的功能。这样实现起来的复杂性也将是

一样的。

注:这里概念或许容易混淆,其实,我们这里的主机(master)和从机(slaver)是一个transceiver,即可收可发。

相应的,在某一时刻,master在发数据,我们称其为transmitter,在接受时我们称为receiver.对slaver同样。

我们可能还注意到了,usb这种按pakcet传输的方式在实现时已经很复杂了(至少比rs232要复杂多吧),至少我

们目前看来主从机功能一样这样的实现方式似乎还是可行,但是后面我们谈到usb host时将会了解到host的功

能是如何的复杂,以至于让一个usb function 也带上如此的功能成本和实现复杂性将陡然上升。作为面向广范

应用的usb,这是我们不允许的。我们期望的是一个使用usb 的udisk,使用usb的光驱,使用usb的耳麦等等这些

东西不要因为usb而变得昂贵,复杂。

正是因为这个原因,usb从机的传输发式便由上面的方式改成了下面的方式进行:

首先,主机发第1个packet给从机,声明数据传送方向,数据传输地址,数据传输类型。
其次,从机收到主机送来的第一个packet后,再发第2个至第n个packet载有实际数据
最后,主机返回一个packet是一个ACK包,报告数据传输的结果,比如接受出错或成功等信息,这样从机

就可以借此了解到这次传输情况,从而有可能来作出相应措施如决定是否重发。

而对于usb 主机传输方式保持不变。

对于这样的改变,我们马上就有疑问了:这个改变的传输方式是和未改变之前的等价吗。当然,不全等价。问题

在哪里?仔细观察一下便知,两者区别在于第一个packet是由谁发起的。未改变之前,第一个packet总是由要传

送数据的一方发起,而改变之后的第一个Packet总是由主机发起。这样,就变成如果从机要发送数据给主机时,

总是由主机发起(第一个packet),然后从机开始传送。
可能初次接触我们会感觉怪怪的,怎么从机要给主机发送数据前反而要主机先发packet给从机。 这样行吗?

我们要说这样是可以的,因为通常一次传输交互的产生,并非无来由的产生,这些都是由程序员控制的,控制usb

何时收,何时发,及发给谁!!!

这里我们就注意到了,usb function(总是作为从机)的功能一下从原来与主机具有相同功能的tranceiver变成

了现在仅具发送(或接收)功能的transmitter(或Receiver)实现的复杂性及成本可想而知也就相应得减小了。

简介:本节介绍usb full speed function的四种传输类型。

上节中我们了解到了usb host与usb function之间采用的是一种“非对称”的传输,也就是说,无论usb接受

数据还是发送数据,都是由usb host首先发起。即传输的第一个packet总是由usb host发出的。这个packet将声

明本次即将进行的数据传输方向,数据传输地址和数据传输类型。

控制传输(Control Transfers)

: 或许你已经注意到了,一个usb host端口并不是仅仅支持一个Usb function.如图1,

通过usb hub,一个usb host端口可以连接usb鼠标,usb键盘,Usb写字板......。要连接这么多东西在同一个

usb host上,我们通常会有一个基本问题,即usb host如何识别这些被连接在它的端口上的设备呢。正如通常的

主从式通讯系统一样,如rs485多机通讯,我们通常是用一个特定的地址标志每一个从设备。对这里的usb,我们

采用同样的方法,将为每个挂接在该usb host上的usb function指定一个特定地址,通过这个特定地址来识别

每个usb function.看来这将是一个usb function在数据传输之前必须解决的问题--得到它的地址分配。

这个“地址指定”的过程需要usb host通知usb function才能完成,这个交互过程就是一个控制式传输。通过

这个“控制式传输”,usb host将指定地址给usb function ,以为即将进行的正式通讯做好准备工作。这里细心

的读者可能已经注意到了,既然usb host总要分配地址给usb function才能进行正式的数据传输工作,那么

usb host将如何与

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top