集线器

  集线器(Hub)是一种特殊的中继器,可作为多个网段的转接设备,因为几个集线器可以级联起来。智能集线器,还可将网络管理、路径选择等网络功能集成于其中。集线器是管理网络的最小单元,是局域网的星型连接点。它对工作站进行集中管理,不让出问题的区段影响整个网络的正常运行。

规范

  集线器规范包括两大基本部分:集线器转发中继器(Hub Repeater)和集线器控制器(Hub Controller)。同时也描述了集线器的错误恢复,重启和挂起/唤醒操作。简述集线器请求行为和集线器描述子。

  集线器提供了USB设备和主机之间的电子接口。集线器支持的主要的USB功能有:

  连接行为

  电源管理

  设备连接和未连接检测

  总线错误检测和恢复

  高速和低速设备的支持。

  集线器由集线器转发中继器和集线器控制器组成。集线器转发中继器负责连接方面的工作。它也支持像总线错误检测和恢复,连接和未连接检测这样的异常处理。集线器控制器提供主机到集线器的通讯机制。集线器特定的状态和控制命令允许主机配置集线器和监视与控制它的每个下行端口。

  集线器根据它们是在传输包、唤醒信号或者是在空闲状态而表现出不同的连接行为。一、包信号连接。包信号连接分为上行连接和下行连接两种。上行连接是面向主机的。当某个使能的下行端口检测到SOP时,就建立了仅到上行端口而不是任何其它下行端口的上行连接。下行连接是面向设备的。当集线器在上行端口上检测到SOP时就建立到所有使能下行端口的连接。未处在使能状态的端口不能向下行方向传送。集线器还有没有任何连接的空闲状态。在空闲态时集线器所有端口都处在接收模式,等待下一个包的开始。二、唤醒连接。挂起的集线器将上行端口接收到的唤醒信号送到所有使能的下行端口。当挂起的集线器检测到来使局部挂起或使能下行端口的唤醒信号时,将反射唤醒信号到上行端口和包括自己在内的所有使能下行端口。唤醒信号不被反射到未使能的或挂起的下行端口。后面将有更详细的讨论。

  集线器是主机和设备之间建立连接的极为重要的USB部件。检测和防止任何连错误,尤其是能导致死锁的连接就显得非常重要。集线器必须在转发模式下处理连接错误。集线器必须也能检测和恢复发往集线器控制器的包。

  每个集线器都有一个帧计时器。它的时间来自集线器的本地时钟,并通过主机发来的SOF与主机同步。它提供被用来检测闲置(babbling)设备和防止集线器被上行集线器设为无效的时间参考。集线器必须跟踪主机帧周期并能在即使丢失两个连续SOF令牌的情况下仍然保持同步。在重启或唤醒后,帧计时器未同步。只要接收到两个连续的SOF包,它就必须同步。

  EOF1和EOF2是由帧计时器产生的时刻。这些时刻用来确保设备和集线器不干扰来自主机的SOF包的正确传输。这些时刻仅当帧计时器与SOF同步时才有意义。图1给出了严格的EOP时刻。表1总结了主机和集线器EOF时刻。在EOF2时刻,任何有上行连接的端口将被置为无效。集线器通过在上行集线器EOF2之前发出EOP来防止被设为未使能。(如在EOF1时刻)。

  表1集线器和主机EOF时刻

集线器和主机EOF时刻

  USB主机控制器应该负责不要设备回应,如果该回应会导致设备在EOF2时刻发出包。这时主机应该发出异常终止序列来保证设备不作回应。而且,因为集线器将在到达EOF1时刻时结束上行方向的包,如果来自设备的响应(数据或握手信号)未定或者集线器到EOF1时刻的过程中,主机不应开始一个事务。

  内部接口(Internal port)连接着集线器转发中继器和集线器控制器。除了传送串行数据到集线器控制器或从集线器控制器接收串行数据外,内部端口还是一定唤醒信号的来源。图2给出了内部端口状态自动机。表2定义了内部端口的信号和事件。

内部端口状态自动机


内部端口信号/事件定义

  表2 内部端口信号/事件定义

  只要接收器不处在挂起状态,内部端口就处在不活动状态。当接收器进入挂起状态时,内部端口就进入挂起延迟状态。该状态有2ms的时间限制。挂起时延状态过期后就进入充分挂起状态,在充分挂起状态时,如果集线器控制器中产生唤醒条件,就进入产生唤醒(Generate Resume)状态。在该状态时,内部端口产生追加SOP[_]FD到集线器转发中继器。

  图3给出集线器下行端口的简化状态自动机。事件和信号在表3中定义。

集线器下行端口的简化状态自动机

  表3 下行集线器端口信号/事件定义

下行集线器端口信号/事件定义

  只要集线器配置的值为零下行端口就进入未配置(Not Configured)状态,并保持该状态不变。集线器将在端口上驱动SE0。不会有其它的活动信号发生。所有集线器都支持关掉电源(Power-off状态)。对端口的有非零配置值的SetConfiguration()请求将使端口从任何状态进入未供电状态。在除未配置状态外任何状态,并接收到ClearPortFeature(PORT[_]POWER)时或检测到电流过载条仲时也将进入该状态。在该状态时差分单端发送器和接收器未使能。在未供电状态时接收到SetPortFeature (PORT[_]POWER)请求或端口的未连接计时器超时,或Restart[_]S、Restart[_]E状态过期后就进入未连接状态(discorneeted)。在该状态时仅有连接检测是可能的。表明这时还没有设备接入该端口。该状态有时间限制。在该状态时,只要求接收到SE0信号时计时器就复位,在检测到其它信号时才开始计时。除集线器挂起时钟停止外,该计时器的时限是2.5us到2ms。如果集线器挂起并有远程唤醒功能,在一个未连接端口上从SE0状态变化将使集线器启动时钟并对该事件计时。集线器需能在状态变化后的12ms内起动时钟并对该状态计时,如果挂起的集线器没有远程唤醒功能,集线器将忽略该事件直到集线器被唤醒。在未连接状态过期或对端口有相应请求或检测到错误条件时进入未使能状态。在该状态时,对接收到的SE0信号都要计时。除未供电状态和未连接状态外,对端口发出重启请求时就进入重启状态。此时,集线器在端口上驱动SE0信号。该状态的时限通常10ms至20ms。在重启结束,或SendEOP状态结束,或在发送状态转发中继器离开WFEOPFU状态,或从挂起状态当挂起的上行接收器检测到‘K’时,进入使能(Enable)状态。在该状态时,

  从‘J’到‘K’的状态变化就能建立上行连接。在使能状态时,如果上行接收器处在唤醒状态,或者在Restart-S、Restart-E状态,一检测到‘K’就进入发送状态。对于高速设备,是在端口处在使能状态且转发中继器进入WFEOPFU状态时进入发送状态。在该状态时,端口将传送在上行端口上接收的数据。对低速设备来说,是在上行端口上接收到一个高速PRE PID时从使能状态转入的。在该状态时,端口将对上行端口接收到的数据作适当变换后重新发出。端口在使能状态时接收到相应的请求时变为挂起(Suspend)状态。在该状态时,端口的差分发送器被设为未使能。端口在接收到相应的请求,或在接收器未挂起时检测到‘K’就进入唤醒状态(Resuming)。该状态名义上有20ms的时限。在该状态时,集线器在端口上驱动‘K’。重启状态结束后就进入SendEOP状态。在使能状态时接收到SOF且有低速设备接在该端口上也可进入该状态。该状态时,集线器将发送低速的EOP。在EOP结束时该状态也结束。端口处在使能状态,且接收器处在挂起状态时,在检测到SE0或‘K’时就从挂起状态进入Restart[_]S状态,或从使能状态进入Restart[_]E状态。在这些状态时端口继续监视总线状态,当看见‘K’时就立刻进入发送状态,否则就进入未连接状态。

  每个端口需要一个未连接计时器。该计时器用来连续监视端口的单端接收器,来检测未连接事件。

上行集线器端口接收器信号/事件定义

  表4 上行集线器端口接收器信号/事件定义

集线器上行接收器的状态自动机

  图4给出了集线器上行接收器的状态自动机。表10-4定义了事件和信号。在发送器活跃时或接收器检测到SJ条件时从除挂起状态外的任何状态进入ReceivingJ状态。该状态有3ms的时间限制。每当进入该状态时计时器复位,且只有在发送器处在不活动状态时该计时器才计时。该状态过期后就进入挂起状态。进入该状态后控制器开始了一个2ms的计时器。如果计时器过期且接收器仍在该状态则控制器挂起。控制器挂起后,它可产生唤醒信号。当在总线上检测到SK条件且转发中继器处在WFSOP或WFSOPEU状态时,接收器从除唤醒状态外的任何状态进入ReceivingK状态。该状态有2.5us到100us的期限。当ReceivingK状态过期后就进入唤醒状态。当发送器处在Sresume状态,或在上行端口上检测到‘K’状态时,从挂起状态也可进入该状态。接收器检测到SE0条件,且转发中继器处在WFSOP或SOPFU状态时,从除总线重启状态外的任何状态进入ReceivingSE0状态。该状态有时间限制,最短2.5ms,最长取决于集线器。当RecevingSE0状态过期后就进入总线重启状态(Bus-Reset)。只要端口上连续接收到SE0就保持该状态不变,该状态也在集线器本地电路产生POR时进入。在POR活跃时不能离开该状态。

上行集线器端口发送器信号/事件定义

  表5 上行集线器端口发送器信号/事件定义

  图5是发送器的状态变化图。表5定义了图5中出现的事件和信号。发送器用来在转发中继器有上行连接时监视上行端口。其目的是防止错误指示被传到上行方向。在接收器处在总线重启状态,或SendJ状态结束时,发送器进入不活动(Inactlve)状态。在Sresume状态结束时也进入该状态。这时差分和单端接收器都未使能,并置为高阻状态。转发中继器进入WFEOP状态时,发送器从不活动状态进入活动状态(Active)。如果在转发SE0状态时,在SE0后的不是J状态则进入活动状态。在该状态时,来自下行端口的数据在上行端口上被转发。发送器在上行端口上发送一个位时间的SE0时就从活动状态进入转发SE0状态(RepeatingSEO)。这时发送器仍然转发下行端口上的信号。该状态的时限是23个高速位时间。在转发SE0状态时,如果到达位时间23,或转发信号从SE0变为‘J’就进入发送J状态(Send J)。在GEOPTU状态结束时也进入该状态。该状态持续一个高速位时间,在此期间集线器在端口上驱动J。帧计时器到EOF1时刻时发送器从转发SE0或活动状态进入GEOPTU状态。GEOPTU的含义是向上行端口发出EOP。在该状态时,端口发送2个高速位时间的SE0。如果集线器转发中继器进入WFEOP状态且接收器在挂起状态,发送器就从不活动状态进入发送唤醒状态(Send resume,简记为Sresume)。这意味着下行设备(或端口对控制器)产生了唤醒信号,导致建立上行连接。端口在该状态至少停留1ms,但不超过15ms。

发送器的状态变化图

  集线器转发中继器提供的功能有,在包的边界建立连接和确保有序的进入和离开挂起状态,包括远程唤醒的处理。图6是转发中继器的状态自动机。表6是相应的信号和事件。一些状态变化是在检测到EOP时发生的,但并不是一检测到EOP就发生,要到集线器转发SE0到‘J’的转变且驱动‘J’至少一个位时间之后发生。一些是由SOP触发的。在上行接收器在总线重启状态,或在WFSOP状态时帧计时器到了或过了EOF1时刻,或在WFEOP状态时到达EOF2时刻,或在WFEOPFU状态且帧计时器未同步时接收到EOP,就进入等待来自上行端口的SOP状态(WFSOPFU)。在该状态时,集线器等待上行接口的SOP并忽略下行端口的状态变化。这时并未建立连接。该状态用来在帧结束(过EOF1时刻)时确保集线器能接收到来自主机的SOF。如果集线器处在WFSOP或WFSOPFU状态并检测到SOP时就进入等待来自上行端口的EOP状态(WFEOPFU)。当接收器进入唤醒状态时集线器也从其它状态进入该状态。在该状态时下行连接建立了,处在使能状态的下行端口在集线器进入该状态时被置为发送状态。集线器在WFEOP状态并检测到EOP,或在WFEOPFU状态且帧计时器已同步时接收到EOP,或在WFSOPFU、WFEOPFU状态时上行接收器进入挂起状态,就进入等待SOP状态(WFSOP)。该状态时等待来自上行端口,或使能下行端口的SOP。这时连接并未建立。在WFSOP时检测到来自使能下行端口的SOP时就进入等待EOP状态(WFEOP)。该状态时建立了上行连接,上行发送器在集线器进入该状态时就进入活动状态。在该状态时到达EOF2时刻,建立连接的下行端口被设为未使能。

  表6. 集线器转发中继器信号/事件定义

集线器转发中继器信号/事件定义

  集线器需要评估端口上的连接状态来作出正确的状态转换。

  当集线器转发中继器处在WFEOP状态而帧计时器到达EOF2时刻;或在EOF2时刻集线器处在WFSOPFU状态,但端口上并没有J状态时出现端口错。接入设备的速度是由设备上拉电阻的位置决定的。当接入一个设备时,集线器期望通过感知总线空闲状态来检测速度。速度检测可在端口离开未使能状态进入重启状态时进行,也可在重启结束时即在重启状态结束和使能状态开始之间进行。当集线器转发中继器处在WFEOP状态时在其它使能端口上检测到SOP,这时就产生冲突条件。集线器有两种相应的处理,种,也是的一种,是“窜改”信息以使主机能检测问题。集线器通过在上行端口发送‘K’来窜改信息。这个‘K’持续到所有下行端口的传输结束,集线器用一个EOP来结束窜改的包。另一种是阻塞第二个包,在个结束时使集线器适当的返回到WFSOPFU或WFSOP。这种方式不向主机报告问题。集线器上行连接总是高速的,而下行连接则要支持高速和低速设备。高速设备和低速设备表现出不同的行为。在总线上没有低速的传输时低速设备就会被挂起,为防止低速设备被挂起。必须在每帧中接收到SOF时产生一个打入信号。

  集线器作为一个USB设备或为了传输挂起和唤醒信号都要求它支持挂起和唤酲。集线器支持全局挂起和局部挂起或唤醒。全局挂起或唤醒是指整个总线被挂起或唤醒而不影响集线器下行端口的状态;局部挂起和唤醒是指集线器下行端口被挂起或唤醒而不影响集线器状态。全局挂起或唤醒是通过主机的根端口来实现的。局部挂起和唤醒是通过对集线器发出请求来实现的。远程唤醒是指由设备发出的唤醒。

  集线器的重启信号仅定义在下行方向即在上行端口上。集线器在检测到2.5ms或更长时间的连续SE0信号时开始重启,并必须在该信号结束时完成重启序列。挂起的集线器必须将重启信号解释为唤醒事件,它必须在重启信号结束之前醒过来并完成重启序列。重启结束后集线器处在下面的状态:

  控制器缺少地位为0;

  集线器状态变化位都为0;

  转发中继器在WFSOPFU状态;

  发送器在不活动状态;

  下行端口在未配置状态并在所有下行端口上驱动SE0信号。

  由总线供电的集线器要求有电源开关。自供电的集线器可以有电源开关但并不是必需的。有电源开关的集线器可以控制每组端口的电源,或每个端口的电源或每组有任意个端口的电源。集线器通过设置wHubCharateristic中的逻辑电源开关模式域来指示是否支持电源开关。集线器电流过载保护也类似,可以分组:电流过载保护的分组和电流开关的分组是独立的。

  集线器的所有端口必须都能检测和生成所有的总线信号状态。这就要求集线器能在它的每个端口上驱动和监视D+和D-的输出。每个集线器端口必须有单端的接收器和发送器。集线器和接在它上的设备使用上拉电阻和下拉电阻的组合在D+和D-未被积极驱动时来控制D+和D-。每个集线器下行端口在每根数据线上需要一个下拉电阻(Rpd),上行端口则需要上拉电阻(Rpu)。集线器下行端口必须支持低速和高速信号斜率(Edge rate)的传送和接收。下行端口上的信号斜率必须是可选择的,要看接入端口的设备是高速的还是低速的。上行端口总是使用高速的信号。

  集线器逻辑结构如图7所示。

集线器逻辑结构图

  集线器类(Hub Class)定义了除缺省控制管道外的附加的所有设备都需要的端点(endport):状态变化端点。主机系统通过该端点接收集线器状态变化通知。它是一个中断的端点。如果没有状态变化位被设置时,集线器在被轮询时返回NAK。如果状态变化位被设置时就返回数据。USB系统软件能用该数据来决定读哪些寄存器能判断状态变化的确切原因。图10-8给出了状态,状态变化和控制信息是怎样与设备发生连系的。集线器描述子和集线器/端口状态和控制是通过缺省控制管道读取。集线器描述子随时可读取。当集线器在端口上检测到变化或它自身状态变化时,状态变化端点就以指定的形式向主机发出数据。集线器状态变化位能由于硬件或软件事件而设置。设置后一直保持直到被USB系统软件清除。USB系统软件用与状态变化位相连的中断管道来检测集线器或端口的状态变化。USB系统软件通过消除集线器报告的相应位来确认端口的变化。USB设备必须被设置为符合一定的安全标准。通常这意味着自供电和集线器在下行端口上实现电流限制。当出现电流过载条件时,它导致一个或多个端口的状态变化。这种变化被报告给USB系统软件以采取正确的行动。集线器是通过标准的USB设备配置命令配置的。USB系统软件检查集线器描述子信息来决定集线器的特征。

  集线器描述子是源自USB设备框架。集线器描述子定义了集线器上的集线器设备和端口。主机通过集线器缺省管道来读取集线器描述子。USB规范定义了下面的描述子:

  Device;

  Configuration;

  Interface;

  Endpoint;

  String(可选的)

  集线器对请求处理过程的时间有比标准设备更严格的要求。下面列出最坏情况下的请求时间。

  1没有数据阶段的完成时间:50ms

  2有数据阶段的标准请求的完成时间

  从装配包到个数据阶段的时间:50ms

  每两个相继数据阶段间的时间:50ms

  数据阶段和状态阶段之间的时间:50ms

特点

  集线器的优点是:当网络系统中某条线路或某节点出现故障时,不会影响网上其他节点的正常工作,这就是集线器刚推出时与传统的总线网络的的区别和优点,因为它提供了多通道通信,大大提高了网络通信速度。

  集线器的主要不足体现在如下几个方面:

  ⑴用户带宽共享,带宽受限。

  集线器的每个端口并没有独立的带宽,而是所有端口共享总的背板带宽,用户端口带宽较窄,且随着集线器所接用户的增多,用户的平均带宽不断减少,不能满足当今许多对网络带宽有严格要求的网络应用,如多媒体、流媒体应用等环境。

  ⑵广播方式,易造成网络风暴。

  集线器是一个共享设备,它的主要功能只是一个信号放大和中转的设备,不具备自动寻址能力,即不具备交换作用,所有传到集线器的数据均被广播到与之相连的各个端口,容易形成网络风暴,造成网络堵塞。

  ⑶非双工传输,网络通信效率低。

  集线器同一时刻每一个端口只能进行一个方向的数据通信,而不能像交换机那样进行双向传输,网络执行效率低,不能满足较大型网络通信需求。

选购

  1.以速度为标准

  集线器速度的选择,主要决定于以下三个因素。

  (1)上联设备带宽

  (2)提供的连接端口数

  (3)应用需求

  2.以是否提供网管功能为标准

  3.以外形尺寸为参考

使用组建局域网

  1、使用单一集线器组建小型局域网

  无论哪种集线器,都采用星型网络拓扑结构。使用5类或超5类非屏蔽双绞线连接,双绞线的长度不能超过100米,每台计算机的网卡使用直通双绞线与集线器相连。

  如果是组建10Base-T的局域网,在计算机中安装10Mbps或10/100Mbps自适应的网卡,应选择10Mbps的集线器;双绞线选择3类以上的非屏蔽双绞线,双绞线的长度小于100米。

  如果组建100Base-TX的局域网,在计算机中安装100Mbps或10/10Mbps自适应网卡,集线器应选择100Mbps或10/100Mbps自适应集线器,双绞线选择5类以上的非屏蔽双绞线,双绞线的长度小于100米。

  2、使用多个集线器组建局域网

  如果网络中的计算机数量多于单一集线器的端口数量时,可以将两个以上的集线器级联,用于组建局域网。两台集线器之间通过双绞线级联,根据两台集线器连接的端口方式,选择不同的双绞线的接线方式。

  如果两台集线器通过普通端口进行级联,需使用交叉双绞线;如果两台集线器通过Uplink端口级联,需使用直通双绞线。

故障的检测与排除

  ⑴集线器自身损坏故障

  此故障一般表现为集线器电源指示灯显示微弱或不亮,通过此集线器连接的设备之间均不通等。

  ⑵集线器某些接口接触不良故障

  出现这种情况,可以通过集线器各接口对应的指示灯或者和此端口连接的网卡指示灯判断。在保证网卡和网线正常之后,如果指示灯时灭时亮或者不正常,则可以判断是此故障引起。也可以通过网络线路测试仪检测此故障。

  ⑶集线器扩展错误

  集线器级联和集线器与其他设备连接的含义不同。如果是连接错误,则会导致集线器之间的设备无法连通或者网络传输速度很慢。

  ⑷网络带宽故障

  集线器都有带宽限制,如果网络需求带宽超过了集线器提供的带宽,则网络冲突的概率将增大,使网络速度变慢。

相关百科