首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

集线器

集线器

集线器规范                       
  •                       集线器规范包括两大基本部分:集线器转发中继器(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时刻

      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 上行集线器端口发送器信号/事件定义
继承事业,薪火相传
返回列表