首页 > 编程知识 正文

USB总线,usb总线属于什么总线

时间:2023-05-06 12:45:41 阅读:203308 作者:624

USB(universal serial Bus)是一种“通用串行外部总线”。首先,USB是一种“总线”,它与计算机内部的总线(如PCI总线)不同,CPU不能通过访问内存指令或者I/O指令直接访问连接在USB上的设备,而要通过一个“USB控制器”,间接地与连接在USB上的设备打交道,USB总线存在于计算机的外部,所以说是外部总线。其次USB信号线一共只有两条,线上的信号是串行的,所以是“串行外部总线”。至于说“通用”,那是因为USB总线的设计从一开始就考虑到了许多不同种类的外部设备,只要带有USB接口(USB鼠标、键盘、摄像头、硬盘等)就都可以连接到USB总线上,并且可以在计算机带电的条件下“现查现用”。

USB总线与外部设备相连接,形成一种星形结构。USB主机可以直接和USB设备连接也可以通过USB集中器再由USB集中器分叉连接到其它外部设备。每个USB电缆的长度是5米,通过集中器级连时最多可以穿越5个集中器,从而使最大半径达到29米。

USB设备都带有USB通信控制器,里面实际上包括了一个微处理器,USB信息的传递由控制器来完成。USB总线有个根集中器,通常与主控制器集成在同一芯片中。USB是一种主/从结构的星形网络。之所以说是主/从结构,是因为信息在USB上的传输只能由主机启动,而不能由设备启动,设备永远处于被动的地位。

USB通过具有一定格式的“信包”按照一定的“流程”传输信息,这里是不是很想网络传输啊,是的就是这样。USB传输类型如下:

控制型:主要用于设备的“配置”与控制,控制型包的传递是带有检错、并须由接收方加以确认的“可靠”传递,如果发现传输出错就要重发。在USB的整个宽带中,有10%的宽带是为这种信息保留的。等时型:主要用于实时的音频和视频信号。这种信息是周期的,又是实时的,对信息传递是否及时有很高的要求,但是对误码率却比较可以容忍。等时型信息的传递不带检错,也不需要确认,包的长度较大,最高可达1023字节。常见的设备有USB摄像头。中断型:用于对USB设备的周期性查询,USB设备不存在主动向主机发送“中断请求”的能力,只能被动地接受主机通过USB总线查询。中断型信息的传递既有时间上的要求,也必须是可靠传递,包大小与控制型包相同。中断型和等时型信息二者合在一起不能超过USB总线宽带的90%。常见的设备有USB鼠标、键盘。成块型:用于信息量相对较大,没有很强的时间要求,但是要求可靠传递信息,信包最大为1023字节。没有保留宽带,即只有执行完前三种传输以后还有时间剩余时才来执行成块型传输。常见设备有可移动硬盘、U盘。

USB控制器把总线上的时间划分成固定大小的“frame”,即“框架”,每个框架的大小为1毫秒。在每个框架中主机都可以与USB总线上的设备相互发送许多信包,但是在每一特定的时刻只能在一个方向上发送(半双工链路)。由于USB总线是主从结构,所以每个交互中的第一个信包总是从主机到设备,因为只有主机可以发起一次交互。每个框架的开头总是由主机向总线上的所有设备广播一个特殊的“框架开始(SOF)信包”,作为一种同步手段。框架的划分是硬性的、没有弹性的。时间一到,主机的USB控制器就发出SOF信包。

主机与设备之间的信息传递又可以根据其目的分成三种:①应用信息的传递,主要为数据以及由具体设备规定的一些应用层上的控制/状态信息。从传输角度看,这些信息对于USB总线是“透明”的,USB总线只负责传递,不参与解析。②USB总线为维持其本身的正常运行和管理所需的一些“USB层”的控制/状态信息,USB总线为这些信息规定了特定的格式,如设备描述符、接口描述符等③为了保证前两种信息的可靠传输,需要附加的信息来辅助,称为低层控制/状态信息。目的在于保证应用信息或高层控制/状态信息的正确传递。

每次信息的传递称为一次“传输”,每次传输都由一次或数次“交互”构成。每次交互又包括三个信息包(等时传输只有前两个信包),其中第一个信包总是由主机发出的低层控制信息(token),包含交互对象以及后续的传递方向——>数据包——>确认信息的信包(handshake)。每次交互只传递一个数据信包,交互是一个不可分割的整体,交互的信包传递必须在同一个框架中完成。一次传输包含多次交互,则可以跨越多个时间框架。一个框架可以包含多个交互,直到剩余的时间不足以完成一次交互,然后停下等待下一个框架的到来。

USB总线上的信息流通都以信包的形式进行,可以分成下列几类:

传令(Token):由主机发出,用来启动一次交互。内容由目标地址、传输方向和交互性质。数据:交互的数据,内容为应用信息或高层控制/状态信息。握手:由数据信包接受方发出,说明对数据信包或传令信包的接收情况。ACK表示成功,NAK表示出错或无反应,STALL表示不能接收SOF:用于框架的分隔,包含框架的序号低速设备前缀:低速设备在每个信包之前都要加上一个特殊的前缀

每个USB设备上可以有一个或多个“功能”,相当于"逻辑设备"。在这些设备中,这些功能的划分和组合是可以改变的,此时一种特定的划分和组合就称为一种“配置”。在USB交互中,最小单元是端点,每个端点只支持一种性质的传输,除了用于控制传输的端点(端点0)为整个设备所公用外,其它端点都属于某个具体的功能,即逻辑设备。主机与每个端口之间就是一个逻辑上的管道。

主机负有调度USB总线上信息传输的责任。每条USB总线有1024个等时交互队列,这些队列中都是等时交互请求。其余的传输都分配不到具体的时间框架,USB总线控制器在执行完每个框架中的等时交互以后就会来执行这些队列(控制、成块、中断)中的交互。

USB总线控制器根据其内部对时钟脉冲的计数确定在什么时候开始一个框架以及哪一个框架,接着就执行该框架的等时交互队列,然后执行中断交互。最后至少还有10%的时间剩余用来执行其它队列(成块和控制)。等时交互和中断交互在执行以后仍然留在队列中。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。