具体实施方式
概述
本说明书描述非接触式连接器,所述连接器允许使用各种不同协议来进行通信且被配置成在一个或多个通信链路上提供数据通信。
对于例如移动电话或平板型计算机的装置,为了通用,它们应支持与各种附加装置通信的能力。非接触式连接器可用以提供不同类型的装置之间的通信,所述装置包括主机装置布置中的装置和对等式关系中的装置。不同类型的附加装置可具有不同的要求、协议和能力。例如,一些装置可在具有快速数据速率的高速下操作,而其他装置可在具有较低数据速率的较低速度下操作。
非接触式连接器可包括具有一个或多个集成电路封装的通信模块。每一集成电路封装可具有发送器、接收器或收发器。较低速度装置可包括仅具有一个集成电路封装(例如,具有收发器)的通信模块,而较高速度装置可具有有两个或更多个集成电路封装的通信模块。本说明书描述一种非接触式连接器,其可选择性地通过使用两个或更多个集成电路封装来提供高速通信或者通过使用单个集成电路封装或两个或更多个集成电路封装来提供低速通信。
非接触式通信模块
非接触式通信可用以提供装置上部件之间的信号通信,或可提供装置之间的通信。在一个示例中,紧密耦合的发送器/接收器对可以被部署有在第一传导路径的终端部分处放置的发送器和在第二传导路径的终端部分处放置的接收器。发送器和接收器可取决于所发送能量的强度而被放置成彼此紧密接近,且第一传导路径和第二传导路径可相对于彼此并不接近。在一些示例中,发送器和接收器可置于单独的电路载体上,所述电路载体经定位而使发送器/接收器对的换能器(例如,一个或多个天线)紧密接近。
发送器、接收器或收发器可被配置为集成电路(IC)封装,其中一个或多个换能器可邻近管芯而定位且通过介电或绝缘包装或接合材料而固持在适当位置。换能器也可通过引线框架衬底而固持在适当位置。请注意,IC封装为非接触式通信单元的示例,其还可被不同地称作通信单元、通信装置、通信链路(comm-link)芯片、通信链路芯片组件、通信链路芯片封装和/或通信链路封装,其可以各种方式来配置。例如,IC封装、通信单元、通信装置、通信链路芯片、通信链路芯片组件、通信链路芯片封装和/或通信链路封装可各自包括一个或多个IC、芯片或管芯,且具有适于特定应用的电路功能性。
图1示出示例IC封装100。IC封装100包括管芯102和换能器104,所述换能器提供电信号与EM信号之间的转换。IC封装100可包括将换能器电连接到接合衬垫的附加结构,例如传导连接器,诸如接合线,所述接合衬垫连接到被包括在管芯102中的发送器和/或接收器电路。IC封装100进一步包括形成在管芯102的至少一部分和/或换能器104周围的包装材料106。在示例IC封装100中,包装材料104完全覆盖管芯100和换能器104。
管芯102包括被配置成合适的管芯衬底上的电路的任何合适的结构。在一些实施方式中,管芯可替选地被称作芯片或集成电路。管芯衬底可由任何合适的半导体材料构成,例如硅。管芯102可与电导体一起安装,例如图1中未示出的引线框架,将管芯102电耦合到一个或多个外部电路。IC封装100可进一步包括变压器以提供在管芯102上的电路与换能器104之间的阻抗匹配。
换能器104可呈折叠偶极或环形天线的形式,且被配置成发送和/或接收电磁信号。在一些实施方式中,换能器104被配置成在射频下操作,射频包括在电磁谱的极高频(EHF)带中的射频,例如从30千兆赫到300千兆赫的频率。如IC封装100中示出,换能器104与管芯102分离,但通过合适的导体(未示出)耦合到管芯102。确定换能器的尺寸,而使得其适于在例如EHF带的电磁谱的指定频带中操作。
包装材料106可用以协助将IC封装100的各种部件固持在固定的相对位置。包装材料106可由被配置成为IC封装100的部件提供电绝缘和物理防护的合适材料形成。另外,包装材料106可选自并不阻碍进出换能器104的信号或优化其通道的材料。例如,包装材料106可包括玻璃、塑料或陶瓷。包装材料106还可形成为任何合适的形状。例如,包装材料106可呈矩形块的形式,包装IC封装100的除了将管芯102连接到外部电路的导体的任何未连接末端之外所有部件。
图2示出包括安装到PCB 204的IC封装202的示例通信装置200的侧视图表示。IC封装202包括管芯206、接地平面208、换能器210以及将管芯206连接到换能器210的一个或多个接合线212。管芯206和换能器210安装在封装衬底214上且被包装在包装材料中。接地平面208在封装衬底214内,且是被配置成提供用于换能器210的电接地的合适结构。接地平面208可延伸封装衬底214的整体长度或仅一部分,特别是在换能器210下方的部分。PCB 204包括具有表面218的顶部介电层216。将IC封装202安装到表面218,其中安装凸块220附接到金属化图案(未示出)。
PCB 204还可选地包括与介电层216分隔的层222,其由传导材料制成且形成PCB204内的接地平面。PCB接地平面可以是被配置成提供到PCB 204上的电路和部件的电接地的任何合适的结构。
图3是包括信号引导结构的示例通信模块300的侧视图。如图3中所示,通信模块300包括PCB 302、IC封装304以及提供信号路径的信号引导结构306。通信模块300可包括用于发送或接收例如射频信号的信号的发送器或接收器。
特别地,IC封装304可对应于上文关于图1和图2描述的IC封装。IC封装304安装在PCB 302上。例如,可将IC封装304安装到PCB,如关于图2所描述。
通信模块300可被配置成使用射频通信来发送或接收数据。例如,如果通信模块300包括发送器,那么通信模块300可发送数据,所述数据接着可由例如另一通信模块的接收器接收。
信号引导结构306被配置成帮助指引射频(RF)信号以及被配置成减少来自杂散信号的干扰。信号引导结构306可环绕IC封装的周边,且在信号发送和/或接收的方向上延伸指定的量以提供用于发射的或接收的RF信号的信道。例如,信号引导结构306可具有适于包括通信模块300的特定装置的高度310,且当用以与另一装置通信时,所述高度允许信号引导结构306被定位接近另一通信模块的对应信号引导结构。信号引导结构306相对于PCB302的高度可被配置为使得当通信模块300被定位时,信号引导结构306接近外部装置外壳。信号引导结构可包括合适的材料,所述材料被配置成减少外来信号且不扰乱沿着信号引导结构306所形成的信道的通信的通路。
图3示出安装到PCB 302的一个IC封装304。然而,在其他实施方式中,可将一个以上IC封装安装到同一PCB 302。例如,将各自具有对应信号引导结构的两个或更多个IC封装的线性阵列安装到单个PCB。
通信模块300可以是装置的通信系统的部分,例如计算机、移动电话、平板型计算机、信息亭(kiosk)或其他装置/系统。通信系统可被配置成使用一个或多个IC封装来提供非接触式通信。例如,通信系统可包括两个IC封装,一个被配置为发送器,且另一个被配置为接收器。通信系统可与存储装置通信。因此,例如,通信系统可使用由IC封装提供的非接触式通信来在数据存储单元与外部装置之间传送数据。
图4是图示在可在发送器和接收器之间进行切换的收发器封装之间的单通道通信的示例的侧视图400。图4示出发送器与接收器之间的通信。例如,第一装置的用户可能希望与第二装置交换数据。通过将第一装置的发送器切换为接收器且将第二装置的接收器切换为发送器,通信可在从第二装置到第一装置的相反的方向上流动。所述两个装置可彼此接近定位,使得用于发送和接收数据的相应通信模块彼此对准且在彼此的范围中。特别地,对于EHF频率,两个装置的发送器和接收器可能需要在指定距离内。例如,所述距离可取决于所使用的特定频率、发送器与接收器之间的材料以及发送的强度而不同。
在图4中,第一装置包括第一通信模块,其具有操作为发送器且定位在第一PCB404上的收发器IC封装402。收发器IC封装402由形成信道的第一信号引导结构406环绕。第一信号引导结构406延伸到第一装置的第一外壳408的表面。例如,第一装置可以是第一移动电话,且第一外壳408可对应于第一移动电话的外部壳体。
第二装置包括第二通信模块,其具有操作为接收器且定位在第二PCB 412上的收发器IC封装410。收发器IC封装410由形成信道的第二信号引导结构414环绕。第二信号引导结构414延伸到第二装置的第二外壳416的表面。例如,第二装置可以是第二移动电话,且第二外壳416可对应于第二移动电话的外部壳体。信号引导结构可由环绕所述IC封装410的金属壁或金属衬里壁形成。
如图400所示,第一信号引导结构406与第二信号引导结构414对准,且第一外壳408的外表面与第二外壳416物理接触以提供最优通信距离和干扰。
来自收发器IC封装402的数据发送经过由第一信号引导结构406和第二信号引导结构414形成的信道到达收发器IC封装410。例如,一对装置可通过从收发器IC封装402发送数据到收发器IC封装410而在彼此之间传达数据。信号引导结构连同适当的对准可最大化接收器IC封装所接收的发送的电力。在一些实施方式中,信号引导结构可由金属材料形成或包括金属材料层,其将所发送的数据沿着信号引导结构而反射朝向接收器。在一些其他实施方式中,信号引导结构可由电磁吸收材料形成或包括电磁吸收材料层,其减少可能引起干扰的杂散信号。
图5是图示装置之间的双通道通信的示例的侧视图500。图500包括第一装置502和第二装置504的部分。
第一装置502包括第一通信模块501。第一通信模块501包括安装到第一PCB 510的第一发送器IC封装506和第一接收器IC封装508。第一发送器IC封装506可以是专用发送器,或可以是选择性地用作发送器或接收器的收发器。类似地,第一接收器IC封装508可以是专用接收器,或可以是可选择性地用作发送器或接收器的收发器。例如,如下文更详细描述,第一发送器IC封装可以是收发器,其被配置成在与另一装置建立连接时提供半双工通信且接着在建立双通道通信能力之后切换成专用发送器角色。
第一发送器IC封装506和第一接收器IC封装508中的每一个由相应的第一信号引导结构512、513包围。第一信号引导结构512、513各自形成从相应的IC封装延伸到第一装置502的第一外壳514的表面的信道。例如,第一装置502可以是第一移动电话,且第一外壳514可对应于第一移动电话的外部壳体。
第二装置504包括第二通信模块503。第二通信模块503包括安装到第二PCB 520的第二发送器IC封装516和第二接收器IC封装518。第二发送器IC封装516可以是专用发送器,或可以是选择性地用作发送器或接收器的收发器。类似地,第二接收器IC封装518可以是专用接收器,或可以是可选择性地用作发送器或接收器的收发器。
第二发送器IC封装516和第二接收器IC封装518中的每一个由相应的第二信号引导结构522、523包围。如图5中所示,第一信号引导结构512、513和第二信号引导结构522、523实质上在相应的第一外壳514和第二外壳524的任一侧上对准。所述对准协助减少来自从第一发送器IC封装506到第二接收器IC封装518的数据发送526以及从第二发送器IC封装516到第一接收器IC封装508的数据发送528的丢失。
单通道和双通道附件
图6是装置之间的示例单通道附件的框图600。特别地,图600示出第一装置602与第二装置604之间的单通道附件。在一些实施方式中,第一装置602是主机装置,且第二装置604是附加装置或外围装置。第一装置602包括收发器606和接收器608。特别地,收发器606被配置成在全双工(双通道或多通道)模式中作为发送器操作以及在半双工(单通道)模式中作为发送器和接收器操作。接收器608被配置成在全双工模式中作为接收器操作以及在半双工模式中是不活动的。在一些替选实施方式中,接收器608可以是第二收发器。这可以提供连接装置中的附加灵活性。收发器606和接收器608各自通信地耦合到控制器610,所述控制器管理由第一装置602进行的数据的发送或接收。
第二装置604包括收发器614和控制器612。收发器614被配置成在半双工模式中作为发送器和接收器操作。收发器614通信地耦合到控制器612,所述控制器管理由第一装置604进行的数据的发送或接收。
如图6中所示,第二装置604是具有用于非接触式通信的仅单个收发器614的低速装置。因此,为了在第一装置602与第二装置604之间传达数据,使用通信地将第一装置602的收发器606耦合到第二装置604的收发器614的单通道附件。如下文更详细描述,可使用握手过程来确定第一装置和第二装置的通信能力。当例如第二装置604的单通道装置被第一装置602发现时,收发器606被配置成在半双工模式中操作,使得其可发送数据到收发器614以及从收发器614接收数据。
图7是装置之间的示例双通道附件的框图700。特别地,图700示出第一装置702与第二装置704之间的双通道附件。在一些实施方式中,第一装置702是主机装置,且第二装置704是附加装置或外围装置。在一些其他实施方式中,第一装置702和第二装置704为对等装置。
第一装置702包括发送器706和接收器708。特别地,发送器706可以是被配置成在全双工模式中作为发送器操作以及在半双工模式中作为发送器和接收器操作的收发器。接收器708被配置成在全双工模式中作为接收器操作以及在半双工模式中是不活动的。在一些替选实施方式中,接收器708可以是第二收发器。这可以提供连接装置中的附加灵活性。发送器706和接收器708各自通信地耦合到控制器710,所述控制器管理由第一装置702进行的数据的发送或接收。
第二装置704包括发送器714和接收器712。接收器712可以是收发器,其被配置成在全双工模式中作为接收器操作以及在半双工模式中作为发送器和接收器操作。发送器714被配置成在全双工模式中作为接收器操作以及在半双工模式中是不活动的。在一些替选实施方式中,发送器714可以是第二收发器。这可以类似地提供连接装置中的附加灵活性。发送器714和接收器712各自通信地耦合到控制器716,所述控制器管理由第二装置704进行的数据的发送或接收。
如图7中所示,第二装置704是具有用于非接触式通信的发送器和接收器两者的高速装置。因此,为了在第一装置702与第二装置704之间传达数据,使用通信地将第一装置702的发送器706耦合到第二装置704的接收器712以及通信地将第二装置704的发送器714耦合到第一装置702的接收器708的双通道附件。与单通道附件一样,使用握手过程来确定第一装置和第二装置的通信能力。特别地,所述通信可在半双工模式中以第一装置702的收发器与第二装置704的收发器之间的通信来发起。当发现两个或更多个通道时,装置可使用两个或更多个通信通道而移动到全双工模式,如下文更详细描述。
替选地,第二装置704可以是具有用于非接触式通信的发送器和接收器两者的低速或高速装置。为了在第一装置702与第二装置704之间传达数据,使用通信地将第一装置702的发送器706耦合到第二装置704的接收器712以及通信地将第二装置704的发送器714耦合到第一装置702的接收器708的双通道附件。与单通道附件一样,使用握手过程来确定第一装置和第二装置的通信能力。所述两个装置可首先尝试在全双工低速模式中通信,且在握手过程的结果之后可继续在低速模式中操作或切换为高速全双工模式。通信尝试的结果可取决于第二装置704是否支持高速模式。在一些实施例中,第二装置704可支持全双工高速模式以及全双工低速模式。在此情况下,在高速模式或低速模式中操作的决策可以是应用相关的。
图6和图7中的第一装置可以是耦合到具有不同通信能力的相应的第二装置的相同装置。因此,第一装置被配置成取决于第二装置的特性而建立单通道通信或双通道通信。另外,尽管图7所示的示例图示了双通道装置,但一个或多个装置可包括用于多通道通信的两个以上的通道,例如并入被配置成提供装置之间的高速通信的附加发送器或接收器。
建立通信
图8是发起装置之间的通信的示例处理过程800的流程图。处理过程800可由装置执行,例如,图6中示出的能够进行半双工通信和全双工两者的第一装置602。特别地,处理过程800可由为了建立通信的目的的主机装置或被配置成充当主机装置的对等装置来执行。
所述装置执行装置发现以检测第二装置的存在(802)。在一些实施方式中,使用边带信号来指示装置附件。在一些其他实施方式中,装置包括霍耳效应传感器。霍耳效应传感器是响应于磁场而改变其输出电压的换能器。将第二装置定位在所述装置附近可触发指示第二装置的存在的此电压改变。在一些其他实施方式中,所述装置可周期性地发送信标ping,所述信标ping可由第二装置接收和响应以确定第二装置的存在。
一旦检测到第二装置,所述装置发起与第二装置的半双工(单通道)通信(804)。半双工通信需要每一装置的相应收发器在发送模式与接收模式之间进行切换。可使用特定信号来指示模式切换。在一些实施方式中,可使用tick/tock分组来在发送器模式与接收器模式之间进行信号切换。例如,第一装置可发送tick包到第二装置以指示第二装置现在可变成发送器。第一装置可在发送tick包之后将发送器切换为接收器。第二装置可发送tock包到第一装置以指示第一装置再次可发送。可将tick/tock分组信息设置为相应发送模式期间的特定包,例如作为循环冗余校验(CRC)数据。
另外,在半双工通信中,在发送tick包并切换到接收器模式之后,第一装置预期应答或否定应答(例如,ACK或NAK包)作为所接收的第一包。类似地,第二装置在发送tock包之后预期类似的ACK/NAK包作为所接收的第一包。
例如,当第二装置接收到包括指示其可切换为发送器模式的tick包的数据时,如果所述数据被正确地接收(例如,有效负载中没有CRC错误),那么第二装置发送应答包(ACK),或者如果所述数据并未被正确地接收(例如,有效负载具有CRC错误),那么第二装置发送否定应答(NAK)包。如果接收到NAK包,那么接收到NAK的装置可将数据的发送重试指定次数。因此,如果第二装置发送NAK包,那么其可包括指示用于重试的模式的切换的tock包。tick/tock分组与相关联ACK/NAK包的组合使用由相应收发器提供的单通道来帮助提供来回通信的数据完整性检查。
在较低速度半双工模式中发起通信。一旦发起半双工通信,即设置用于通信的配置(806)。所述配置可包括以下各项中的一个或多个:确定由用于通信的特定装置支持的协议;确定用于单通道数据通信或多通道数据通信的通道的数目和每通道速度;执行认证;确定当前电力模式;分配带宽;建立队列大小;以及确定特定的线路译码模式。在一些实施方式中,半双工模式可以是默认的配置设置。所支持的协议可包括例如用于半双工模式中的低速通信的通用输入/输出(GPIO)。全双工模式中的高速通信可支持例如USB3.0DisplayPort(具有AUX信道)、PCIe、MIPI D-PHY、MIPI M-PH协议。可随着时间而更新所支持的协议,包括支持自定义协议。另外,一些全双工模式基于用于通信的装置所支持的特定协议而速度相对较低。下文关于图9至13而更详细描述用于通信管理的队列。不同类型的线路译码可用于半双工通信,包括Manchester、8B10B、数据扰频或具有开始/停止位的定界符。
认证可能并不需要,可能提供轻保护,或可被配置成用于强保护。例如,可由CRC校验或具有密钥轮换的扰频器来提供轻保护。可由具有验证的密钥交换来提供强力保护。在一些实施方式中,装置的初始配对可要求较强的初始认证,其对于所述两装置之间的后续配对来说有所减轻。可使用密钥交换协议或密钥来对通信链路进行加密和保护。可使用单因子认证或多因子认证来对两个装置进行认证。
设定配置包括确定双通道或多通道(全双工)通信是否可用(808)。可将此确定为建立所述配置的半双工通信的部分。配置可以基于从称作“能力”的装置所获得的信息,所述信息由装置制造商预定并限定装置的能力。
响应于确定双通道通信不可用(否分支),建立半双工通信配置且用于装置之间的通信(810)。响应于确定双通道或多通道通信可用(是分支),建立全双工通信配置且用于装置之间的通信(812)。可基于所述配置而将全双工通信视为低速或高速的,这取决于装置的能力和所支持的协议。因此,通信可通过使用一个或多个专用发送器和接收器对来发生,而不是在发送器模式和接收器模式之间切换收发器。另外,tick/tock分组可能在全双工通信中是不必要的,因为可能不需要在模式之间切换收发器来用于来回通信。
在一些替选实施方式中,在检测到装置之后,通过第二装置来发起高速通信模式而非使用低速通信模式作为起点。接着进行关于高速通信模式是否被发起或可用的确定。如果高速模式可用或被发起,那么与第二装置的通信被配置且使用高速通信模式来进行。例如,全双工通信可被配置用于第一装置与第二装置之间的通信。
如果高速模式不可用,那么与第二装置的通信被发起且被配置用于低速通信模式。低速通信模式可取决于全双工通信是否通过使用较低速度协议而可用而为全双工通信或半双工通信。可按与上文所描述的类似方式来进行每一通信模式的配置。使用高速通信模式作为用于建立通信的起点可增加配置两个高速兼容装置之间的通信的速度。
半双工通信管理
在装置之间的通信的单通道半双工模式中,由于单个路径用于两方向上的通信,带宽管理是重要的。在一些实施方式中,带宽管理由主机装置或被指定充当主机装置的对等装置来管理。
可例如由控制器按照对装置处理器不可见的方式来管理由全双工装置进行的半双工通信。因此,半双工通信可被所述装置看作表现为全双工。半双工通信还可在主机与装置处理器之间进行协调。
图9是图示两装置之间的半双工流的图900。顶部部分902示出如例如由控制器控制的带宽,包括在发送器模式与接收器模式之间切换收发器,例如使用tick/tock分组来进行信号切换。在顶部部分902中,每一切换的方向具有每秒200兆位(Mbps)的带宽。具体来说,从主机装置906到另一装置908的发送方向上为200Mbps,且从该另一装置908到主机装置906的接收方向上为200Mbps。
底部部分912示出从主机装置906的角度所见此同一通信如何与看起来如同在全双工模式中操作。特别地,主机装置906感知来自主机装置906的发送器具有100Mbps的带宽且主机装置的接收器在100Mbps的带宽下接收数据的双通道通信。两带宽的总和实质上接近在切换时用于每一个别方向的总共200Mbps使用。因此,对于主机装置来说,看起来是在每一方向上以较低速度运行的全双工通信。
另外,控制器可调整分配到IN包(即,从另一装置进入主机的包)和OUT包(即,从主机去往该另一装置的包)的带宽。例如,对于WRITE操作,主机装置可增加OUT带宽分配。对于READ操作,主机可增加IN带宽分配。
在切换发送器模式和接收器模式时改变半双工通信的方向可引入通信的延迟和间隙。可使用队列来隐藏这些间隙和延迟,且所述队列可至少部分基于所连接装置的包括通信协议的能力而被配置。
图10是图示具有队列的半双工流的图1000。特别地,图1000类似于图900且添加了队列。具体来说,顶部部分1001示出如例如由控制器控制的带宽,包括在发送器模式与接收器模式之间切换收发器。在顶部部分中,主机装置1006包括主机外出和进入队列1002,且装置1008包括装置外出和进入队列1004。当相应收发器在发送器模式与接收器模式之间切换时,这些队列帮助管理主机与装置之间的通信。在一些实施方式中,建立的队列的数目基于装置可一次发送的包的数目。
如图9中所示,底部部分1010示出从主机装置1006的角度所见此同一通信如何与看起来如同在全双工模式中操作。特别地,主机装置1006感知来自主机装置1006的发送器具有100Mbps的带宽且主机装置的接收器在100Mbps的带宽下接收数据的双通道通信。上游带宽分配和下游带宽分配无需是相等的。特别地,上游与下游之间的带宽分配可由主机处理器来管理。例如,可分配下游带宽以具有整体带宽的大部分。在此情况下,可将下游带宽设定为150Mbps,而上游被分配50Mbps。在任何给定时间在任何方向上可用的总带宽可以是200Mbps,但有效的上游和下游带宽将小于此数目。
图11是图示使用外出队列进行通信的框图1100。图1100示出通过外出队列的数据流1102以及例如用于诸如主机装置的特定装置的外出队列管理模块1104。例如,外出队列1106被配置成存储输出有效负载,直到方向例如基于相应的tick/tock分组信令发送模式与接收模式之间的切换而改变为发送模式为止。另外,可将数据保持在外出队列中,直到例如在数据发送之后通过接收来自另一装置的ACK消息而确认接收为止。
每一外出队列包括三个阶段。指示可被写入到队列的数据的新缓冲区,指示可被发送的数据的就绪缓冲区,以及保持所述数据用于可能的重新发送的重试缓冲区。将待被发送的数据、即1108的数据写入到外出队列中的一个或多个,尤其是新缓冲区。如果一个外出队列的新缓冲区是满的,那么可将数据写入到另一外出队列的新缓冲区。
当新缓冲区满了且就绪缓冲区可用时,或当新缓冲区发生了超时(例如等待发送出数据的时间太长)时,所述新缓冲区变成就绪缓冲区。在一些实施方式中,可将新缓冲区和就绪缓冲区实施为环形缓冲区。
当装置处于发送模式中时,可发送来自就绪缓冲区的数据。可发送所述数据连同其他信息,其他信息包括指示接收者可切换到发送器模式的如由有序集控制1112控制的相应的tick/tock分组1110以及用于数据完整性检查的生成的CRC码1114。所述数据基于特定的线路编码1116而编码且接着被发送到目的地接收器。
图1100中示出两个外出队列1106,然而可包括附加的外出队列。所述外出队列可通过基于列表的管理来管理。当将待排队用于发送的最近数据放置在列表的顶部作为“外出写入当前”时,生成外出写入列表1118。当最近可用读取数据作为“外出读取当前”时还生成外出读取列表1120。当完成写入时,将外出写入当前附加到外出读取列表,使得刚刚被写入的队列可用于读取。当完成读取时,将外出读取当前附加到外出写入列表,使得刚刚被读取的队列再次可用于写入。
当用于特定发送队列数据接收的错误(例如,CRC错误)被外出队列管理模块1104接收时,外出队列管理控制逻辑1122通过外出重试和基于标志的流控制模块1124来发起重试尝试。具有错误的队列数据保持在外出队列读取列表1120中。重新发送队列数据直到达到最大次数的重试或返回干净的CRC为止。未将作为具有CRC错误的一个的外出读取当前附加到外出写入列表,直到发生无错接收为止。
图12是图示使用进入队列进行通信的框图1200。图1200示出用于包括进入队列中的存储的来自发送装置的接收数据的数据流1202,以及例如用于特定装置的进入队列管理模块1204。进入队列1206被配置成例如在处于接收模式中时存储所接收的有效负载,直到满足错误检查为止。
每一进入队列包括三个阶段。指示可被写入到队列的数据的新缓冲区,指示可被发送到装置处理器的数据的就绪缓冲区,以及保持所述数据用于响应于错误检查分析的可能的重新发送的重试缓冲区。当新缓冲区满了且就绪缓冲区可用时,或当新缓冲区发生了超时(例如等待发送出数据的时间太长)时,所述新缓冲区变成就绪缓冲区。在一些实施方式中,可将新缓冲区和就绪缓冲区实施为环形缓冲区。
接收的数据包可例如通过报头信息的分析而在接收时即被处理,以验证数据协议并确定时钟信息。接收的tick/tock分组可被识别1210,且被提供到进入管理模块1204,例如以由有序集控制模块1216使用来从接收模式切换到发送模式。可使用包括在数据中的CRC码来执行CRC校验1214以识别错误,所述错误由CRC错误控制1218使用以管理重试尝试,包括将NAK消息发送回到发送数据的装置。
将接收的数据包的数据有效负载写入到进入队列1206中的一个或多个的新缓冲区。在图1200中示出两个进入队列1206,然而可包括附加的进入队列。所述进入队列可通过基于列表的管理来管理。当将待排队的接收的的最近数据放置在列表的顶部作为“进入写入当前”时,生成进入写入列表1220。当最近可用读取数据作为“进入读取当前”时还生成进入读取列表1222。当完成读取时,将进入读取当前附加到进入写入列表,指示刚刚被读取的队列可用于写入。当完成写入时,将进入写入当前附加到进入读取列表,指示刚刚被写入的队列可用于读取。
如果未接收到错误,那么将传入数据写入到进入写入当前而无需从进入队列读取出。装置生成ACK包。将进入队列写入当前附加到进入队列读取列表。指示下一个将被写入到的进入队列,例如,第二进入队列,且从第一进入队列读取出排队的数据。当完成读取时,将进入队列读取列表的条目附加到进入队列写入列表,且新的进入队列当前变成待被读取的下一队列。离开队列的数据可通过线路解码器1226来解码,且发送到例如装置的处理器或装置的存储位置。
当针对特定的接收数据检测到错误(例如,CRC错误)时,排队的数据保持在进入队列写入列表中。进入队列管理控制逻辑1224发起重试尝试,包括在将装置切换到发送模式之后发送NAK响应。响应于NAK消息,发送装置重新发送所述数据。指针被复位到先前状态并准备好重复所述写入操作。当接收到数据时,从进入队列读取当前读取出所述数据。当完成读取时,其附加到进入队列写入列表。新的进入队列当前变成待被读取的下一队列。如果重试数据没有错误,那么将进入队列写入列表条目添加到进入队列读取列表。
图13是图示装置之间的通信的框图1300。在图1300中,示出使用用于每一装置的相应进入和外出队列的来回半双工通信。因而,图1300组合用于每一装置的在上文图11至12中描述的部件。特别地,主机装置包括进入队列和进入队列管理以及外出队列和外出队列管理两者。类似地,连接装置包括进入队列和进入队列管理以及外出队列和外出队列管理两者。
电力管理、初始化和链路初启
图14是图示通信模块的操作状态的图1400。在一些实施方式中,全双工模式可在单个高速状态1402中操作,而半双工模式可在多个状态中操作。特别地,如图14中所示,较低速度半双工模式可在活动状态1404、初始化状态1406和睡眠状态1408中操作。在一些实施方式中,还可包括另一深度睡眠状态。在其他实施方式中,全双工模式还包括较低电力子状态。全双工模式可包括两个或更多个通信通道,其中装置的每一通道可被配置成作为发送器、接收器或收发器来操作。两个或更多个通道的配置可基于较低电力子状态而不同,例如停用一个或多个通道。这些不同的状态允许在装置忙碌但数据并未被主动发送时节省电力。特别地,装置中的一个或多个可依赖于电池电力,使得控制电力消耗是重要的。例如,睡眠状态可触发一个或多个部件的电源休眠从而减小电力利用率。
在活动状态1404中,发生发送器模式中的正常包发送,包括ACK包、有效负载包、tick包和tock包。类似地,在活动状态1404中,接收器模式类似地操作以接收ACK、tick包和tock包,以及接收来自发送器的包有效负载中的数据发送。例如,主机装置1410可发送有效负载信息以及tick包到装置1412,指示所述装置可从接收器模式切换到发送器模式。装置1412接着可发送指示先前数据被正确接收的ACK以及附加有效负载数据。装置1412可包括指示主机装置可从接收器模式切换到发送器模式的tock包。
在初始化状态1406和睡眠状态1408中,发送器模式中的装置根据指定的周期性频率而发送ping脉冲。在初始化状态1406和睡眠状态1408中,接收器模式中的装置接收ping脉冲且发起返回ping。例如,主机装置1410可周期性地发送主机ping到装置1412。装置1412接着可返回装置ping。初始化状态和睡眠状态不同的一个方式是配置信息。初始化状态可在与另一装置的通信链路的任何配置之前发生。睡眠状态可在配置之后发生,且配置信息可在处于睡眠状态中时被保持。因此,当从睡眠中出来时,可能不需要交换配置信息。相比之下,当从初始化状态中出来时,可交换配置信息。配置信息可包括装置能力、速度、数据速率、装置的识别信息、和/或认证成功或失败。
在一些实施方式中,附加状态可包括NAP状态。NAP状态可被视为到睡眠模式的夹层状态。当主机或装置一定时段尚未看见事务但有可能很快看见活动时,可启用NAP状态。在NAP状态中,大多数块处于低电力模式中且没有运行时钟,以及仅外部接口块被启用以看见事务且可使所有的块快速地到达充分操作状态。如果针对一定时间间隔(例如,1ms)未检测到事务,那么主机或装置可进入NAP状态中。在NAP状态中,每一装置就绪以在检测到事务之后在短的时间间隔(例如,10μs)内移动到活动状态。在主机或装置在附加的时间间隔(例如,4ms)未检测到事务时,主机或装置可进一步从NAP状态移动到睡眠状态。当处于NAP状态中时,主机和装置在预定的时间间隔(例如,0.5ms)交换tick和tock包以收集状态。这些tick和tock包通过在交换期间随时地供应时钟而运行块,且这些包并未被视为事务。
图15是图示主机装置1502与装置1504之间的睡眠状态通信的图1500。在一些实施方式中,主机装置1502和装置1504为对等装置,其中一个充当主机,例如在建立所述装置之间的通信时所指定。
如图15中所示,在睡眠状态中操作为发送器的主机装置1502发送周期性ping1506到装置1504。在发送ping集之后,主机装置1502切换到操作为睡眠状态中的接收器,且监听来自装置1504的返回ping 1508(如1510中所示被检测)。装置1504操作为睡眠状态中的接收器,并检测来自主机1502的ping。在检测到1512来自主机1502的ping包1506后,装置1504切换到操作为睡眠状态中的发送器且发送返回ping包1508。在发送返回ping包1508之后,装置1504返回到操作为睡眠状态中的接收器且处理过程重复。
图16是图示用于主机装置1602与装置1604之间的通信的从初始化状态转变到活动状态的图1600。在一些实施方式中,主机装置1602和装置1604为对等装置,其中一个充当主机,例如在建立所述装置之间的通信时所指定。
如图6中所示,主机1602初始处于睡眠状态。然而,在时间1604,主机1602使用边带信号来检测装置1603。例如,主机装置1602可使用霍尔效应传感器来检测装置1603的存在。装置1603可能或可能不具有类似的传感器。特别地,装置如果在连接时接收到来自主机的电力,那么其可能不需要边带检测,且替代地,可使用传入电力的检测作为指示符。使用边带信号进一步节省了主机的能量,因为其不需要发送周期性带内ping来搜索存在的装置。
在检测到装置1603后,主机1602进入初始化状态1606。在初始化状态中,为了唤醒装置1603,主机1602发送脉冲序列1608到装置1603。在发送脉冲之后,主机1602进入接收器模式中的初始化状态1616。
装置1603初始作为接收器1610而处于睡眠状态。在接收到来自主机1602的所述ping序列后,装置1603进入发送器模式中的初始化状态1612。装置1603接着发送返回脉冲序列1614到主机1602。在发送所述返回脉冲序列后,装置1603进入接收器模式中的活动状态1618。
主机1602接收初始化状态1616中的脉冲序列。响应于接收到来自装置1603的脉冲,主机1602进入活动状态。
装置1603的睡眠状态中的接收时段与主机1602的初始化状态中的发送脉冲存在重要的时序关系。特别地,设定相应的时段而使得装置1603不能错过主机所发送的ping脉冲是重要的。在一些实施方式中,主机所发送的脉冲序列的宽度比用于睡眠状态中的装置的监听时段长。即使装置错过初始脉冲序列,其仍具有第二次机会来检测主机的在初始化状态中发送的脉冲序列。例如,在一些实施方式中,装置监听时段是主机序列ping脉冲的宽度的0.75。
在进入活动状态之后,主机和装置可基于其相应的能力来设置配置,例如在第一次连接时。在设置配置之后,主机和装置执行认证处理过程作为配对的最后步骤。一旦认证成功,主机可检查全双工模式能力,且如可用则设定全双工的配置。在一些实施方式中,一旦处于全双工模式中,主机和装置即操作在全双工模式中,且其不能返回到半双工模式,除非主机与装置之间的通信链路获得硬复位。在一些其他实施方式中,一旦处于全双工模式中,装置可在空闲时段之后或在由主机或装置引导时返回到半双工模式。
所述主题的实施例和本说明书中描述的功能操作可实施在数字电子电路中、有形体现的计算机软件或固件中、计算机硬件中(包括本说明书中公开的结构及其结构等效物)、或它们的一个或多个的组合中。本说明书中描述的主题的实施例可实施为一个或多个计算机程序,即计算机程序指令的一个或多个模块,其编码于有形非暂时性存储介质上,用于由数据处理设备执行或控制数据处理设备的操作。计算机存储介质可以是机器可读存储装置、机器可读存储衬底、随机或串行存取存储器装置、或其中的一个或多个的组合。替选地或附加地,程序指令可编码在人工生成的传播信号上,例如机器生成的电气、光学或电磁信号,生成所述信号以对信息进行编码用于发送到合适的接收器设备用于由数据处理设备来执行。
术语“数据处理设备”指数据处理硬件,且包括所有种类的用于处理数据的设备、装置和机器,例如包括可编程处理器、计算机或多个处理器或计算机。所述设备还可以是或进一步包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,所述设备可可选地包括产生用于计算机程序的执行环境的代码,例如构成处理器固件、协议堆叠、数据库管理系统、操作系统或其中的一个或多个的组合的代码。
还可称作或描述为程序、软件、软件应用、app、模块、软件模块、脚本或代码的计算机程序可通过任何形式的编程语言来撰写,包括编译或解释语言、或声明性或过程式语言;或者其可以任何形式来部署,包括作为独立程序或作为模块、部件、子例程或适于在计算环境中使用的其他单元。程序可(但无需)对应于文件系统中的文件。程序可存储在保持其他程序或数据(例如,存储在标志语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于讨论中的程序的单个文件中,或存储在多个协调文件(例如,存储一个或多个模块、子程序或代码的部分的文件)中。计算机程序可经部署以在一个计算机上或多个计算机上执行,所述计算机位于一个站点处或跨越多个站点而分布且通过数据通信网络而互连。
本说明书中描述的处理程序和逻辑流可由实行一个或多个计算机程序的一个或多个可编程计算机来执行,从而通过对输入数据进行操作并生成输出来执行功能。所述过程和逻辑流还可由专用逻辑电路(例如,FPGA或ASIC)或者由专用逻辑电路与一个或多个编程计算机的组合来执行。
适于执行计算机程序的计算机可基于通用或专用微处理器或两者、或任何其他种类的中央处理单元。大体上,中央处理单元将接收来自只读存储器或随机存取存储器或两者的指令和数据。计算机的基本元件是用于执行或实行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器装置。中央处理单元和存储器可通过专用逻辑电路来补充或并入专用逻辑电路。通常,计算机还将包括用于存储数据的一个或多个大容量存储装置(例如,磁盘、磁光盘或光盘),或者以操作方式耦合以接收来自所述一个或多个大容量存储装置的数据或传送数据到所述一个或多个大容量存储装置或两者都有。然而,计算机无需具有此类装置。此外,计算机可嵌入于另一装置中,例如移动电话、个人数字助手(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储装置,例如通用串行总线(USB)快闪驱动器,这仅是几例。
适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器装置,例如包括:半导体存储器装置,例如EPROM、EEPROM和快闪存储器装置;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD ROM和DVD-ROM盘。
已描述本发明许多实施例。然而,将理解可在不偏离本发明的精神和范围的情况下进行各种修改。因此,其他实施例是在随附权利要求书的范围之内。
虽然本说明书含有许多特定实施方式细节,当不应将这些细节理解为对任何发明的范围或对所主张内容的范围的限制,而是作为可对特定发明的特定实施例特定的特征的描述。在分离的实施例的上下文中的在本说明书中描述的某些特征还可组合实施在单个实施例中。相反,在单个实施例的上下文中描述的各种特征还可分别实施于多个实施例中或任何合适的子组合中。此外,尽管上文可将特征描述为在某些组合中起作用及甚至最初如此要求保护,但在一些情况下,来自所要求保护组合的一个或多个特征可从所述组合删除,且所要求保护的组合可针对子组合或子组合的变体。
类似地,虽然在图中按特定次序来描绘操作,但此不应理解为要求按所示出的特定次序或按顺序次序来执行此类操作,或要求执行所有所说明操作,从而实现所需要的结果。在某些情况下,多任务及并行处理可以是有利的。此外,上述实施例中各种系统模块和部件的分离不应理解为要求所有实施例中的此类分离,且应理解,一般可将所描述过程部件和系统一起集成在单个软件产品中或封装在多个软件产品中。
已描述所述主题的特定实施例。其他实施例是在所附权利要求书的范围内。例如,权利要求书中所叙述的动作可按不同次序执行且仍实现所需要的结果。作为一个示例,附图中所描绘的处理过程未必要求所示出的特定次序或顺序次序,用以实现所需的结果。在一些情况下,多任务和并行处理可以是有利的。