- UID
- 1029342
- 性别
- 男
|
图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
集线器的特点 - 集线器的优点是:当网络系统中某条线路或某节点出现故障时,不会影响网上其他节点的正常工作,这就是集线器刚推出时与传统的总线网络的最大的区别和优点,因为它提供了多通道通信,大大提高了网络通信速度。
集线器的主要不足体现在如下几个方面:
⑴用户带宽共享,带宽受限。
集线器的每个端口并没有独立的带宽,而是所有端口共享总的背板带宽,用户端口带宽较窄,且随着集线器所接用户的增多,用户的平均带宽不断减少,不能满足当今许多对网络带宽有严格要求的网络应用,如多媒体、流媒体应用等环境。
⑵广播方式,易造成网络风暴。
集线器是一个共享设备,它的主要功能只是一个信号放大和中转的设备,不具备自动寻址能力,即不具备交换作用,所有传到集线器的数据均被广播到与之相连的各个端口,容易形成网络风暴,造成网络堵塞。
⑶非双工传输,网络通信效率低。
集线器同一时刻每一个端口只能进行一个方向的数据通信,而不能像交换机那样进行双向传输,网络执行效率低,不能满足较大型网络通信需求。
|
|