CN107408094A - 用于功率状态无感知接口中的链路状态检测和苏醒的技术 - Google Patents

用于功率状态无感知接口中的链路状态检测和苏醒的技术 Download PDF

Info

Publication number
CN107408094A
CN107408094A CN201680013907.9A CN201680013907A CN107408094A CN 107408094 A CN107408094 A CN 107408094A CN 201680013907 A CN201680013907 A CN 201680013907A CN 107408094 A CN107408094 A CN 107408094A
Authority
CN
China
Prior art keywords
message
equipment
transmission
echo
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201680013907.9A
Other languages
English (en)
Inventor
L·J·米什拉
R·D·韦斯特费尔特
J·L·帕尼安
G·A·威利
A·吉尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN107408094A publication Critical patent/CN107408094A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3278Power saving in modem or I/O interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3041Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is an input/output interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4086Bus impedance matching, e.g. termination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • G06F13/426Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using an embedded synchronisation, e.g. Firewire bus, Fibre Channel bus, SSA bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4286Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Communication Control (AREA)

Abstract

描述了促成第一设备向第二设备传送/重传消息的系统、方法和装置。第一设备向第二设备传送第一消息。第一设备随后接收第二消息并且标识第二消息中指示第二消息的发起方的比特。如果该比特将第一设备指示为第二消息的发起方,则第二消息是第一消息的回波。该回波的接收指示第二设备处于休眠状态。相应地,第一设备等待第二设备苏醒并且向第二设备重传第一消息以确保在已知第二设备苏醒的情况下现在重传在第一消息的最初传输期间(在第二设备休眠时)丢失的任何分组。

Description

用于功率状态无感知接口中的链路状态检测和苏醒的技术
相关申请的交叉引用
本申请要求2015年3月6日提交的题为“IMPEDANCE-BASED FLOW CONTROL FOR ATWO-WIRE INTERFACE SYSTEM WITH VARIABLE FRAME LENGTH(针对具有可变帧长的双导线接口系统的基于阻抗的流控制)”的美国临时申请No.62/129,697、2016年3月1日提交的题为“TECHNIQUE OF LINK STATE DETECTION AND WAKEUP IN POWER STATE OBLIVIOUSINTERFACE(用于功率状态无感知接口中的链路状态检测和苏醒的技术)”的美国临时申请62/302,141、以及2016年3月3日提交的题为“TECHNIQUE OF LINK STATE DETECTION ANDWAKEUP IN POWER STATE OBLIVIOUS INTERFACE(用于功率状态无感知接口中的链路状态检测和苏醒的技术)”的美国非临时申请No.15/060,221的优先权和权益,这些申请的全部内容通过援引纳入于此。
背景
领域
本公开一般涉及集成电路接口,更具体地涉及用于基于设备的所确定的功率状态经由双导线集成电路接口来向该设备传送信号的系统和方法。
背景
通用输入/输出(GPIO)使得集成电路设计者能够提供可以为特定应用定制的普适引脚。例如,取决于用户需要,GPIO引脚可以被编程为输出引脚或者输入引脚。GPIO模块或者外围设备通常将控制基于接口要求而能变动的引脚群。因为GPIO引脚的可编程性,所以它们一般被包括在微处理器和微控制器应用中。例如,移动设备中的应用处理器可以使用数个GPIO引脚来进行握手信令,诸如进行与调制解调器处理器的处理器间通信(IPC)。
对于此类握手信令,若边带信号必须既被处理器传送又被其接收,那么该边带信号被视为是“对称”的。若有n个对称的边带信号需要被交换,那么每个处理器要求n*2个GPIO(一个GPIO传送给定信号并且一个GPIO接收该信号)。例如,调制解调器处理器与应用处理器之间的对称IPC接口可以包括五个信号,这转化成结果所得的IPC信令必需的10个GPIO引脚。IPC通信需要如此之多的GPIO引脚增加了制造成本。此外,为IPC投入过多的GPIO限制了GPIO对其他系统级外围接口的可用性。该问题不能够通过将IPC通信移到处理器之间的主数据总线上来得到解决,因为如此就违反了特定角点条件。
为了缓解由常规GPIO系统遭受的引脚需求,已开发了“虚拟”GPIO架构,其中多个GPIO信号诸如通过有限状态机(FSM)被串行化到单个传送引脚上。FSM从GPIO接口接收该多个GPIO信号,并且该GPIO接口进而从处理器接收该多个GPIO信号。GPIO接口还与传送常规GPIO信号的常规GPIO引脚对接。在传送引脚上携带的常规GPIO信号与虚拟GPIO信号之间的区别对于处理器而言是透明的。这是相当有利的,因为处理器不需要软件修改以通过GPIO接口来通信。关于传输,处理器由此向GPIO接口呈现一组GPIO信号。取决于可用的常规GPIO引脚的数目,GPIO接口将在相应的常规GPIO引脚上传送GPIO信号的第一子集。GPIO接口随后向FSM呈现GPIO信号的剩余子集,该FSM串行化剩余的GPIO信号并且在专用传送引脚上传送这些剩余的GPIO信号。
在GPIO信号传输期间,专用传送引脚通过合适的传输线(诸如电路板迹线)耦合至接收方集成电路的专用接收引脚。传送方集成电路由此还包括用于从远程集成电路接收所传送的虚拟GPIO信号的专用接收引脚。FSM将所接收到的虚拟GPIO信号解串行化成被呈现给GPIO接口的收到GPIO信号的第一集合。类似地,GPIO接口通过常规GPIO引脚接收收到GPIO信号的第二集合。收到GPIO信号的第一和第二集合随后可以按常规方式通过GPIO接口被呈现给处理器。由此,给定的收到GPIO信号是在专用接收引脚上作为虚拟GPIO信号接收的、还是在常规GPIO引脚上接收的对于处理器而言是透明的。处理器由此关于传输或接收不需要软件修改。
关于虚拟GPIO能力,注意,接收电路可能尚未准备好接收虚拟GPIO信号的帧(也尚未准备好接收常规GPIO信号)。流控制允许接收方集成电路向传送方集成电路指示接收方集成电路是否能够在当前接收数据。然而,一般而言,流控制需要使用附加引脚。例如,通用异步接收机发射机(UART)接口包括请求发送(RTS)引脚以及清除发送(CTS)引脚。这两个流控制引脚是附加的专用接收引脚和专用传送引脚。UART接口的这两个附加的流控制引脚(RTS和CTS)由此增加引脚计数并且造成较高的制造成本。
因此,在本领域中存在对于能够仅使用双引脚接口来传送和接收多个GPIO信号的GPIO架构的需要,其中流控制在该双引脚接口上复用。更一般地,在本领域中存在对于针对双引脚接口的经复用流控制的需要。
此外,通过共用物理接口互连的设备可能具有在不同的功率状态之间转变的需要。然而,物理接口的空闲状态阻止一个连通设备获悉另一连通设备的功率状态。例如,当物理接口处于空闲状态时,该物理接口不可向传送设备指示接收设备的功率状态(活跃/非活跃)。因此,如果传输发生在接收设备的休眠状态期间,则从传送设备传送的分组很有可能丢失。用于处置此类功率状态“无知”或“无感知”的当前解决方案涉及附加的边带信令或附加的协议操作。然而,此类解决方案是低效的,因为它们需要附加的硬件引脚或者增加不想要的等待时间。因此,存在对于最优地解决与通过共用物理接口互连的设备的功率状态无知/无感知相关联的问题的方法和/或装置的需要,该方法和/或装置不涉及附加的边带信令或者增加等待时间的协议结构。
概述
本文公开的诸方面提供了基于设备的所确定的功率状态来向该设备传送信号/分组/消息的系统、方法和装置。
在本公开的一方面,一种用于使第一设备传送消息的方法包括向第二设备传送第一消息。在一方面,当在第二设备的休眠状态期间在第二设备处检测到第一消息时,第一消息至第二设备的传输触发第二设备处的苏醒操作。该方法进一步包括:接收第二消息;确定第二消息是否是第一消息的回波;当第二消息是第一消息的回波时确定第二设备处于休眠状态;以及当第二消息是第一消息的回波时向第二设备重传第一消息。
在本公开的一方面,确定第二消息是否是第一消息的回波包括:标识第二消息中指示第二消息的发起方的比特;当该比特将第一设备指示为第二消息的发起方时确定第二消息是回波;以及当该比特将第二设备指示为第二消息的发起方时确定第二消息不是回波。
在本公开的一方面,重传第一消息包括:在确定第二消息是回波之后等待预定义的时间量以使第二设备苏醒;以及在该预定义的时间量已流逝之后向第二设备重传第一消息。
在本公开的另一方面,重传第一消息包括:在确定第二消息是回波之后等待从第二设备接收苏醒指示;以及在接收到该苏醒指示之后向第二设备重传第一消息。在进一步方面,重传第一消息包括:当在最大等待时间已流逝之后未接收到苏醒指示时向第二设备重传第一消息。
在本公开的另一方面,用于传送消息的第一设备包括存储器和耦合至该存储器的处理电路。该处理电路被配置成:向第二设备传送第一消息;接收第二消息;确定第二消息是否是第一消息的回波;当第二消息是第一消息的回波时确定第二设备处于休眠状态;以及当第二消息是第一消息的回波时向第二设备重传第一消息。
在本公开的进一步方面,用于传送消息的第一设备包括:用于向第二设备传送第一消息的装置;用于接收第二消息的装置;用于确定第二消息是否是第一消息的回波的装置;用于当第二消息是第一消息的回波时确定第二设备处于休眠状态的装置;以及用于当第二消息是第一消息的回波时向第二设备重传第一消息的装置。
在本公开的一方面,一种具有一条或多条指令的处理器可读存储介质,该一条或多条指令在被第一设备的处理电路执行时使该处理电路:向第二设备传送第一消息;接收第二消息;确定第二消息是否是第一消息的回波;当第二消息是第一消息的回波时确定第二设备处于休眠状态;以及当第二消息是第一消息的回波时向第二设备重传第一消息。
本文公开的进一步方面提供了用于在接收设备的休眠状态期间检测信号/分组/消息的系统、方法和装置。
在本公开的一方面,一种用于使接收设备在休眠状态期间检测消息的方法包括:当接收设备进入休眠状态时启用环回开关;在休眠状态期间检测来自传送设备的第一消息;基于所检测到的第一消息来执行苏醒操作;经由启用的环回开关来向传送设备传送第二消息,其中该第二消息是第一消息的回波;以及在接收设备苏醒之后接收来自传送设备的对第一消息的重传。
在本公开的一方面,第二消息包括将传送设备指示为第二消息的发起方的比特。在进一步方面,第二消息是作为第一消息的回波来传送的以指示接收设备处于休眠状态。
在本公开的另一方面,苏醒操作包括在第二消息被传送之后的预定义的时间量内唤醒接收设备。相应地,第一消息的重传是在该预定义的时间量已流逝之后被接收的。在本公开的进一步方面,苏醒操作包括在接收设备的苏醒之后向传送设备传送苏醒指示。相应地,第一消息的重传是在苏醒指示被传送之后被接收的。
在本公开的另一方面,用于在休眠状态期间检测消息的接收设备包括存储器和耦合至该存储器的处理电路。该处理电路被配置成:当接收设备进入休眠状态时启用环回开关;在休眠状态期间检测来自传送设备的第一消息;基于所检测到的第一消息来执行苏醒操作;经由启用的环回开关向传送设备传送第二消息,其中第二消息是第一消息的回波;以及在接收设备的苏醒之后接收来自传送设备的对第一消息的重传。
在本公开的进一步方面,用于在休眠状态期间检测消息的接收设备包括:用于当接收设备进入休眠状态时启用环回开关的装置;用于在休眠状态期间检测来自传送设备的第一消息的装置;用于基于所检测到的第一消息来执行苏醒操作的装置;用于经由启用的环回开关来向传送设备传送第二消息的装置,其中第二消息是第一消息的回波;以及用于在接收设备的苏醒之后接收来自传送设备的对第一消息的重传的装置。
在本公开的一方面,一种具有一条或多条指令的处理器可读存储介质,该一条或多条指令在被接收设备的处理电路执行时使该处理电路:当接收设备进入休眠状态时启用环回开关;在休眠状态期间检测来自传送设备的第一消息;基于所检测到的第一消息来执行苏醒操作;经由启用的环回开关向传送设备传送第二消息,其中第二消息是第一消息的回波;以及在接收设备的苏醒之后接收来自传送设备的对第一消息的重传。
附图简要说明
图1是根据本公开的一方面的示例虚拟通用输入/输出接口(VGI)架构的框图。
图2A是其中处理器与单个远程处理器通信的VGI架构的高级框图。
图2B是其中处理器与两个远程处理器通信的VGI架构的高级框图。
图3解说了根据本公开的一方面的示例帧格式。
图4解说了用来编程VGI和消息传递帧长度的长度编程帧。
图5解说了被传送以确收响应于图4的帧而被编程的帧长度的确收帧。
图6解说了示例VGI帧和示例消息传递信号帧。
图7解说了包括VGI信号和消息传递信号两者的混合帧。
图8解说了用于图1的系统的基于阻抗的流控制电路系统。
图9解说了图8的系统中的TX缓冲器和RTS控制电路的进一步细节。
图10解说了关于由图8的系统传送的帧中的停止比特的变化的输出阻抗。
图11解说了根据本公开的一方面的用于数据帧的低阻抗时段和高阻抗时段。
图12是根据本公开的一方面的包括中间停止比特和中间开始比特的帧的示图。
图13是纳入了图1的系统中所示的集成电路之一的示例电子系统的框图。
图14描绘了用于基于设备的所确定的功率状态来传达信号的装置。
图15解说了促成基于设备的所确定的功率状态来传达信号的装置的系统架构。
图16是解说通过物理接口来互连的设备的示图。
图17是解说根据本公开的诸方面的通过物理接口来互连并且包括环回开关的设备的示图。
图18是解说根据本公开的诸方面的第一设备的苏醒以及基于固定延迟的来自第二设备的传输重试的示图。
图19是解说根据本公开的诸方面的第一设备的苏醒以及基于苏醒指示的来自第二设备的传输重试的示图。
图20是根据本公开的一个或多个方面的基于对等方设备的所确定的功率状态来向该对等方设备传达信号的方法的示图。
图21是根据本公开的一个或多个方面的对配置成支持与基于所确定的功率状态来向设备传送信号/分组/消息有关的操作的装置的解说。
图22是解说根据本公开的一个或多个方面的用于使第一设备基于第二设备的所确定的功率状态来向第二设备传送信号/分组/消息的方法的流程图。
图23是根据本公开的一个或多个方面的对配置成支持与在休眠状态期间检测信号/分组/消息有关的操作的装置的解说。
图24是解说根据本公开的一个或多个方面的用于使接收设备在该接收设备的休眠状态期间检测来自传送设备的信号/分组/消息的方法的流程图。
详细描述
现在参照附图描述本公开的各个方面。在以下描述中,出于解释目的阐述了众多具体细节以提供对一个或多个方面的透彻理解。但是显然的是,没有这些具体细节也可实践此(诸)方面。
针对具有可变帧长的双导线接口系统的基于阻抗的流控制的概览
在本公开的一方面,提供了用于各自具有处理器的两个集成电路(例如,两个设备)之间的通信的虚拟GPIO架构。每个集成电路还包括用于使用一组信号与远程处理器通信的GPIO接口。该组信号包括一组GPIO信号以及一组虚拟GPIO信号。每个集成电路由此包括对应于该组GPIO信号的一组GPIO引脚。这些GPIO引脚被用于以GPIO领域中所知的常规方式来传送该组GPIO信号。就此而言,该组GPIO信号中的第一GPIO信号是在第一GPIO引脚上传送,该组GPIO信号中的第二GPIO信号是在第二GPIO引脚上传送的,依此类推,以使得该组GPIO信号中的最后一个GPIO信号是在最后一个GPIO引脚上传送的。
与该组GPIO信号相反,该组虚拟GPIO信号是使用流控制接口在专用UART传送引脚上传送的,该流控制接口进而由虚拟GPIO接口有限状态机(VGI FSM)驱动。针对每个集成电路的虚拟GPIO接口(VGI)信号包括传送集和接收集。传送集在专用传送引脚上传送给远程集成电路,而接收集在专用接收引脚上从远程集成电路接收。注意,“设备”和“集成电路”在本文中被视为等效术语。每个设备中的VGI FSM被配置成在专用传送引脚上通过UART接口向远程处理器串行地传送传送集。UART接口被进一步配置成在专用接收引脚上从远程处理器串行地接收VGI信号的接收集并且将VGI信号的接收集呈现给VGI FSM。
以下讨论将假定流控制是通过UART接口来实现的。但是将领会,本文讨论的流控制技术可以在没有任何UART能力的情况下实践。UART接口是公知的。在其常规格式中,UART接口包括传送引脚(TX)、接收引脚(RX)、请求发送(RTS)引脚、以及清除发送(CTS)引脚。UART接口使用通常是比特率的16倍的过采样时钟信号(每个收到比特有16个采样)。UART传输是简单直接的。为了发送二进制1,UART接口将其TX引脚驱动至电源电压VDD达如由其过采样时钟信号的16个循环决定的比特时段历时。接收方UART接口使用其自己的过采样时钟来对其RX接口上的结果得到的收到信号进行采样。逻辑0的传输是二进制1传输的补。传送方UART接口使其TX引脚接地达由其过采样时钟信号循环十六次所确定的比特时段历时。在一些方面,可以使用过采样时钟的两个边沿,以使得一比特时段对应于过采样时钟的8个循环。
常规的UART接口将另一对引脚用作控制协议。具体地,常规的UART接口通过将请求发送(RTS)引脚充电至电源电压来指示其准备好接收数据。该经断言的电压随后在接收方UART接口处在其清除发送(CTS)引脚上被接收。因此,常规的UART接口在该接口看到其CTS引脚电压被断言时进行传送。结果所得的传输是8比特帧的形式。
通过如本文进一步解释的VGI FSM来修改常规的UART控制协议以使大小可变的虚拟GPIO数据帧能够在UART接口的TX引脚上传送。如本文公开的UART接口被配置成在空闲时段(没有数据传输)期间微弱地将其TX引脚拉至VDD。帧传输的开始可随后通过传送方UART接口将其TX引脚拉低达一比特时段来划界。每个集成电路的处理器向GPIO接口提供第一组信号。从该GPIO接口,该第一组信号的一部分作为第一组GPIO信号在第一组对应GPIO引脚上被传送到远程处理器。来自该处理器的该第一组信号的剩余部分由该GPIO接口并行地提供到VGI FSM。VGI FSM可随后通过UART接口并且在专用传送引脚上串行地传送该剩余部分作为VGI信号的传送集。该GPIO接口还在第二组对应GPIO引脚上从该远程处理器接收第二组GPIO信号。取决于操作模式,VGI FSM从远程处理器串行地接收VGI信号的接收集或消息传递信号的接收集,以及并行于GPIO接口地提供该接收集。
除了VGI信号之外,UART接口还可传送UART信号。UART信号代表在本文中标示为“消息传递”信号的信号以与VGI信号区分开来。如本文中使用的,消息传递信号是至处理器的与对应地址相关联的信号。就此而言,常规的GPIO信号是在对应的GPIO引脚上接收或传送的。因此,GPIO信号不需要地址,因为接收方处理器通过对应GPIO引脚的身份来确定所接收到的GPIO信号的身份。为了标识VGI信号,VGI FSM将每个VGI信号指派到帧中的对应比特位置。例如,帧可包括从第一VGI信号安排到第八VGI信号的8个VGI信号。接收方VGI FSM由此从其帧中的比特位置来标识给定的所接收到的VGI信号。但是消息传递信号不像常规GPIO信号那样被指派到个体引脚。处理器通过将消息传递信号写入特定的寄存器地址或者从特定的寄存器地址接收消息传递信号来标识消息传递信号。以下讨论将假定消息传递信号是UART信号,但是将领会,可以使用其他类型的消息传递信号(诸如集成电路间(I2C)信号或改进的集成电路间(I3C)信号)。在帧内,类似于VGI信号,通过其比特位置来标识消息传递信号;然而,VGI FSM将所接收到的消息传递信号写入其恰适的寄存器而不是将它们呈现给GPIO接口。处理器可随后以常规方式检索或写入消息传递寄存器。
提供了与针对所公开的虚拟GPIO架构的虚拟GPIO信号和消息传递信号有关的数个方面。在一个方面,在专用传送引脚上传送的每个帧包括报头,该报头标识该帧是包括VGI信号的传送集还是包括消息传递信号的传送集。报头还可指示要在接收机侧设置的帧长度或者指示期望帧长度的确认。在另一方面,报头针对包括VGI信号和消息传递信号两者的帧被延展,从而经延展的报头标识VGI信号和消息传递信号的比特位置。
为了实现流控制,每个UART接口包括耦合至接收引脚的RTS控制电路。RTS控制电路通过两个可选择的输入阻抗(高输入阻抗和低输入阻抗)来将接收引脚耦合至接地,其中高输入阻抗大于低输入阻抗。RTS控制电路在终止每个所传送帧的停止比特期间应用流控制。如果接收方集成电路尚未准备好接收任何附加帧,则接收方集成电路的RTS控制电路选择其低输入阻抗。由于传送方集成电路此时正通过相对较大的输出阻抗来驱动其传送引脚,因而传送方集成电路的传送引脚上的电压将向接地下降。传送方集成电路的UART接口包括耦合至其传送引脚的用以检测电压降的CTS控制电路。如果CTS控制电路在停止比特的传输期间检测到电压降,则传送方集成电路将制止传送进一步帧直至其传送引脚上的电压恢复。电压恢复将仅在接收方集成电路的RTS控制电路选择其高输入阻抗时发生。以此方式,在传送引脚上达成流控制而不需要用于RTS和CTS功能的任何单独引脚。
针对具有可变帧长的双导线接口系统的基于阻抗的流控制的示例性描述
提供了实现可变帧长能力以及两个引脚(传送引脚和接收引脚)上的基于阻抗的流控制的串行接口。以下讨论将涉及使用配置成用于基于阻抗的流控制的UART接口的一方面。然而,将领会,任何双引脚串行接口可被修改以有利地包括本文讨论的可变帧长和基于阻抗的流控制能力。由此,以下讨论将不失一般性地涉及VGI/UART方面。
图1中示出了示例虚拟通用输入/输出接口(VGI)架构100。主机集成电路(或设备)101和外围集成电路(或设备)105两者包括包含传送(TX)引脚111和接收(RX)引脚112的双引脚接口。每个TX引脚111通过合适的传输线(诸如耦合在主机集成电路101(其也可被标示为主机设备101)与外围集成电路105(其也可被标示为外围设备105)之间的电路板迹线)来耦合至对应的RX引脚112。
主机设备101和外围设备105各自包括处理器(CPU)102。主机设备101中的处理器102耦合至对应的GPIO接口103,所以它可按常规方式与一组常规GPIO引脚125对接。类似地,外围设备105中的处理器102耦合至对应的GPIO接口103,所以它可与一组常规GPIO引脚125对接。在主机设备101和外围设备105中,可在常规GPIO引脚125上传送和接收来自对应处理器102的作为常规GPIO信号130通过对应的GPIO接口103处理的信号的某一部分。为了解说清楚起见,仅个体地标记了常规GPIO信号130的一部分,从GPIO信号#1到GPIO信号#n。但是,来自对应处理器102的通过GPIO接口103处理的信号的其余部分并不通过常规GPIO引脚125来传送或接收。取而代之的是,该其余部分包括使用专用传送引脚111和专用接收引脚112通过对应的VGI有限状态机(FSM)115传送和接收的多个VGI信号135。对于接收和传送消息传递信号(诸如UART信号136)而言,每个VGI FSM 115还直接与对应的处理器102对接。因为UART信号136不是GPIO信号,所以它们不通过GPIO接口103来耦合。每个VGI FSM 115通过其专用传送引脚111和接收引脚112来传送和接收UART信号136。这些引脚由此是“混合”引脚,因为它们被用于VGI信号135和UART信号136两者。在VGI架构100中,针对主机设备101和外围设备105的VGI信号135的传送和接收集包括多个(m个)VGI信号135,范围从VGI信号#1到VGI信号#m,其中m是正整数。
VGI信号135并非如常规GPIO信号130的情形中那样各自具有它们自己的专用引脚。这是相当有利的,因为VGI架构100达成了与其中每个虚拟GPIO信号135将各自要求它们自己的引脚的常规GPIO实现相比显著的引脚减少。UART信号136常规上也会要求另一专用传送引脚和另一专用接收引脚。但是在本公开的有利的VGI架构100中也消除了这些附加引脚,因为消息传递信号也在传送引脚111传送并且在接收引脚112上接收。
集成电路可以仅包括一个VGI FSM 115或者可以包括用于与多个外部系统对接的多个这些元件。图2A解说了VGI架构,其中集成电路200包括用于与集成电路205(包括其自己的VGI FSM 115)中的远程处理器(未解说)通信的单个FSM 115。作为对比,图2B中所示的集成电路220包括用于分别与集成电路225和230中的远程处理器(未解说)通信的第一VGIFSM 115A和第二VGI FSM 115B。每个集成电路225和230由此包括其自己的VGI FSM115。就此而言,片上系统(SoC)可配置有为容适与多个其他设备的VGI信令所必需的那样多的VGIFSM 115。无论设备可具有的VGI FSM 115的数目如何,每个VGI FSM 115使用其自己的专用传送引脚111和接收引脚112来通信,如参照图1所讨论的。
再次参照图1,因为VGI信号135是使用有限状态机(诸如VGI FSM115)来容适的,所以处理器102可以处于休眠或者另一类型的蛰伏状态,却仍能够接收VGI信号135和消息传递信号136。以此方式,VGI架构100不仅有利地节约了每个GPIO接口103的引脚的数目,而且也以低功率来操作。
如本文中所使用的,“引脚”是覆盖了集成电路用来耦合到电路板上的导线或者其他合适的物理互连(例如,封装互连或者穿孔式通孔互连)的结构(诸如焊盘或实际引脚)的普适术语。例如,如果集成电路具有16个GPIO引脚或焊盘125(诸如图1中所示),则这些引脚可被配置成容适8个对称的GPIO信号130或16个不对称的GPIO信号130。对称的GPIO信号130通过主机设备101和外围设备105两者来传送。不对称的GPIO信号130是仅由主机设备101和外围设备105中的一者来传送的GPIO信号。另外,每个集成电路可容适多个(m个)VGI信号135的输入/输出对接。类似地,每个集成电路可容适多个(m个)UART信号136的输入/输出对接。关于每个处理器102,在GPIO信号130与VGI信号135之间没有区别,两者均作为在必要时通过GPIO接口103来传送和接收的普通GPIO信号来对待。然而,因为VGI信号135和消息传递信号136没有专用引脚(这与常规GPIO信号130形成对比),所以VGI信号135和消息传递信号136在VGI FSM 115中被串行化以供在对应的传送引脚111上传送。在接收引脚112上的接收之际,每个VGI FSM 115解串行化所接收到的经串行化的VGI信号135和所接收到的经串行化的消息传递信号136(如以上提及的,以下讨论将“消息传递信号”和“UART信号”考虑为同义,条件为其他类型的消息传递信号136在替换方面可以是诸如I2C或I3C信号)。每个VGIFSM 115由此关于VGI信号135和UART信号136起到串行器/解串器的作用。
处理器102可能需要响应于所选VGI信号135或消息传递信号136的变化而接收中断信号。关于VGI信号135,调制解调器功率管理器(MPM)140诸如通过中断配置寄存器(未解说)被编程的方式来监视这些选定的VGI信号135。每个VGI信号135具有对应的中断配置寄存器。如果要求VGI信号135响应于该信号改变状态而生成中断,则对应的配置寄存器将被相应地编程。类似地,如果VGI信号135是无论该信号是否改变状态都不生成中断的信号,则对应的中断配置寄存器也将被相应地编程。MPM 140也可包括有限状态机。由此,类似于VGIFSM 115,MPM 140以低功率来操作并且无论其处理器是处于休眠模式还是某种其他蛰伏状态均是活跃的。
VGI信号135可被细分成传送集和接收集。在对称系统中,每个传送集可以具有相同的数目。类似地,每个接收集可以具有相同数目的信号。然而,将领会,VGI架构100是有利的,因为它可容易地容适其中虚拟GPIO信号135和UART信号136的传送集在主机设备101中具有与外围设备105相比不同的大小的不对称信令方面。类似地,VGI信号135和UART信号136的接收集也可在主机设备101中具有与外围设备105相比不同的大小。无论VGI架构100是对称的还是不对称的,每个VGI FSM 115并行地从GPIO接口103接收VGI信号135的传送集,并行的意义是指这些传送集中的每个信号被承载在在GPIO接口103与VGI FSM 115之间的其自身的导线上。UART信号136不通过GPIO接口103来耦合。就此而言,每个VGI FSM 115可由对应的处理器102给予某个外围地址。每个VGI FSM 115被配置成解码如从对应的处理器102接收到的UART信号136中的地址字段137,从而给定的UART信号136可以被存储在对应的消息传递寄存器138中。这些消息传递寄存器138可各自被映射到对应的处理器102的地址空间内的用于VGI FSM 115的通用地址的某个偏移。处理器102可随后访问消息传递寄存器138以获得恰适的UART信号136。类似于VGI信号135,UART信号136可以被细分为传送集和接收集。无论该架构是对称的还是不对称的,结果得到的由VGI FSM 115对UART信号136的传送集进行的传输是在专用传送引脚111上发生的。来自传送方处理器102的VGI信号135的传送集变成接收方处理器102的VGI信号135的接收集。类似地,来自传送方设备的UART信号136的传送集变成接收方设备的UART信号136的接收集。接收设备的VGI FSM 115随后将VGI信号135的接收集解串行化,从而它们可以被并行地呈现给GPIO接口103。
在将VGI信号135的传送集串行化之后,VGI FSM 115将结果得到的经串行化的传送集呈现给对应的UART接口116。每个UART接口116被配置成响应于来自过采样时钟源117的过采样时钟信号118的循环而在对应的传送引脚上传送串行帧。如以上提及的,将16X过采样频率用于过采样时钟信号118是常规的,以使得UART接口116通过将传送引脚111充电至高(例如,至电源电压)达过采样时钟信号118的16个采样来传送二进制1比特。类似地,每个UART接口116通过将传送引脚111放电至低(例如,至接地)达过采样时钟信号118的16个循环来传送二进制0比特。每个UART接口116还被配置成在过采样时钟信号118的16个循环上对接收引脚112上的收到比特进行采样。每个UART接口116还被配置成将结果得到的采样与某一阈值(例如,用于二进制1比特传输的电源电压的一半)进行比较以确定采样的二进制值。如果大部分采样是二进制1,则每个UART接口116接收作为二进制1的比特。接收二进制0比特的相反情形将对应于大多数采样为0。此类UART传输和接收是公知的。但是如本文中进一步讨论的,由每个UART接口116在传送引脚111上实现流控制不是常规的。类似地,使用UART接口116来传送和接收VGI信号135不是常规的。
由于VGI信号135是通过对应的UART接口116来传送的,因而VGI信号135的所传送帧可被认为是经隧穿的虚拟GPIO信号135。如稍早讨论的,UART信号136和VGI信号135两者均被指派到所传送帧中的对应比特位置,从而接收方VGI FSM 115可以标识它们。传送设备和接收设备由此均必须使用共同的帧大小,以使得收到帧中的比特位置是可理解的。例如,如果接收设备被配置成接收8比特帧、但是接收到10比特帧,则接收设备将不知道10比特帧中的额外两个比特的身份。在上电时,对于主机设备101和外围设备105两者而言,帧大小应当具有预定义的大小。但是,可能存在设备之一期望使用比在上电时使用的默认大小更长或更短的帧长度的情形。在一个方面,帧大小可因此由传送设备编程以改变接收设备所预期的帧大小。例如,传送设备可传送包括报头的编程帧,该报头标识传送设备将编程或更改由接收设备使用的当前帧大小的意图。
图3中示出了如由传送方VGI FSM 115和对应的UART接口116(图1)配置的示例帧300。帧300开始于以下进一步讨论的开始比特306。跟随在开始比特306之后的报头305可包括两个功能比特fn_0和fn_1。然而,将领会,替换方面可使用更大数目的功能比特。在一个方面,如果这两个功能比特都为零,那么帧300中的后续比特是VGI信号135。如果fn_0为0且fn_1等于1,那么后续比特是消息传递信号(诸如UART信号136)。如果fn_0为1且fn_1等于0,那么后续比特表示接收方VGI FSM 115所预期的帧长度。类似地,如果这两个功能比特都为1,那么后续比特表示接收方VGI FSM 115对于新的帧长度的确收。如果虚拟GPIO信号135的传送集(或消息传递信号的传送集)小于此固定帧大小,那么每帧内未被使用的比特可以是随意(don't care)值。替换地,每个FSM 115可以被配置成取决于给定应用所需的比特数而更改所传送的帧的大小。
为了检测完整帧300的接收,接收方UART接口116可包括在接收到开始比特306之后对过采样时钟信号118的循环数进行计数的逻辑电路(未解说)。在一个方面,每个比特时段对应于过采样时钟信号118的16个循环。例如,假定接收帧具有响应于过采样时钟信号118的160个循环而被接收的10个VGI信号135的帧体。由于报头305是两个比特,因而对报头305的采样需要32个采样。在检测到开始比特306并且等待过采样时钟的另一160+32循环之后,接收方UART接口116将随后预期接收到停止比特310。如果相应地检测到停止比特310,则经修改的UART接口116可随后针对帧300选通对应的VGI FSM 115。在VGI FSM 115内锁存帧300之后,VGI信号135的对应的接收集可随后被呈现给GPIO接口103。替换地,如果帧300具有UART信号136的帧体,则VGI FSM 115将它们写入恰适的消息传递寄存器138。
VGI信号135的传送集可由此在帧300中传送。由于传送设备的传送集变成接收设备的接收集,因而该接收集也相应被成帧。该成帧是有利的,因为每个处理器由此可以监视远程处理器的健康而不需要任何的附加专用引脚。例如,每个UART接口116可被配置成在默认状态(没有帧传输)期间将其传送引脚112微弱地拉到电源电压(并且因此将接收方UART接口116的对应的接收引脚112微弱地拉到电源电压)。对于此类方面,开始比特306将是逻辑0,以使得经修改的UART接口116将其传送引脚111接地达过采样时钟信号118的恰适数目的循环(该恰适数目对应于过采样速率)以传送开始比特306。以此方式,每个经修改的UART接口116可通过检测接收引脚112已被拉向接地达过采样时钟信号118的恰适数目的循环来容易地检测开始比特的接收。在一个方面,开始比特306和停止比特310是逻辑互补的。
存在接收设备发生故障以使得其不恰适地将其传送引脚111拉至接地的可能性。接收方UART接口116将由此将其检测为开始比特306并且相应地朝帧的末尾开始计数。但是在此方面停止比特310是逻辑1,以使得每个经修改的UART接口116将其传送引脚充电至电源电压达比特历时以发信令通知帧传输的结束。如果接收设备发生故障(例如,其处理器崩溃)以使得接收方UART接口116已检测到被认为是开始比特306的情形,则后续的停止比特310将不被检测到,从而接收方VGI FSM 115可相应地向其处理器102通知传送方处理器102的故障。
考虑帧300(仅具有两个功能比特305、开始比特306和停止比特310的开销)的优点,UART信号136和VGI信号135的帧可仅在一个专用传送引脚111上传送。图4中示出了用于设置VGI帧长度的示例VGI编程帧400以及用于设置UART帧长度的示例UART编程帧405。帧长度在上电之际是预定义的。由此,一旦VGI FSM 115接收到具有指示编程长度正被设置的报头305的帧(诸如先前所讨论的fn_0等于1且fn_1等于0),则将知晓接下来将有多少个编程比特。例如,如果预定义的帧长度(针对数据有效载荷)是8个比特,则将有8个编程比特。就此而言,接收方VGI FSM 115需要知晓VGI帧或UART帧的长度是否正被编程。因此,在帧400和405中的每个报头305之后跟随有身份比特410。例如,如VGI编程帧400中所示的等于1的身份比特410可表示VGI帧长度正被编程,而如UART编程帧405中所示的等于0的身份比特410可表示UART帧长度正被编程。在身份比特410之后的编程有效载荷中的每个编程比特表示二进制2的幂。编程比特的范围从比特0(表示2的零次幂)到比特4(表示2的四次幂)。在VGI编程帧400中,仅编程比特1和比特3是二进制1,所以帧长度等于2与8的总和10。在接收到VGI编程帧400之后,接收方VGI FSM 115所预期的VGI帧长度将随后从诸如8比特的默认值重新配置成10比特。类似地,在UART编程帧405中,仅编程比特1和3是二进制1。因此,在接收到UART编程帧405之后,UART帧长度将从默认值改变成10比特。VGI编程帧400和UART编程帧405两者均开始于开始比特306并且结束于停止比特310,如参照图3所讨论的。
一旦帧长度已被编程,接收方VGI FSM 115就可通过在传送引脚111上传送确收帧来确认它将使用新的帧长度。图5中示出了示例VGI确收帧500和示例UART确收帧505。功能比特305是如参照图3所讨论的1和1,用以标识确收帧正被传送。在VGI确收帧500中的报头305之后的身份比特510具有二进制1值以标识VGI确收帧500确收新的VGI帧长度的设置。在身份比特510之后的有效载荷中的比特匹配预期由VGI编程帧400(图4)编程的比特。这些比特具有与参照图4所讨论的二进制加权相同的二进制加权。UART确收帧505具有设置成0的身份比特510以将自身标识为UART确收帧。UART确收帧505的有效载荷具有与用于VGI确收帧500的二进制加权相同的二进制加权。VGI确收帧500和UART确收帧505两者均开始于开始比特306并且结束于停止比特310,如参照图3所讨论的。
一旦帧长度由此被编程,就可如图6中所示的那样传送VGI帧600或UART帧605。针对有效载荷长度(n+1)VGI比特对VGI帧600进行编程,所以(跟随在功能报头305之后的)VGI比特的范围为从VGI比特0到第n VGI比特n(n是正整数)。在不在传送引脚111上进行相应串行化的情况下,(n+1)个VGI信号135将需要(n+1)个常规GPIO引脚125。
如先前讨论的,存在其中来自传送方VGI FSM 115的帧包括VGI信号135和UART信号136两者的替换方面。这些帧可在本文中标示为“混合”帧,因为它们将UART信号136与VGI信号135混合。例如,图7示出了包括开始比特306、跟随在开始比特306之后的功能报头305以及扩展报头705的示例混合帧705。扩展报头705指示跟随在扩展报头705之后并且在停止比特310之前的一组消息传递信号(例如,UART)比特710和一组VGI比特715的比特位置。取决于等待时间要求,UART比特710或VGI比特715可以在帧体中的最前面。在一些方面,扩展报头705可包括纠错比特,诸如循环冗余校验(CRC)比特。注意,扩展报头705只需要标识仅仅VGI比特715的位置和长度或者仅仅UART比特710的位置和长度,这是因为默认由此知晓剩余比特属于剩余的比特位置。为了标识包含在VGI比特715中的比特数或者包含在UART比特710中的比特数,范围为从第0扩展报头比特EXT_Hdr[0]到第n扩展报头比特EXT_Hdr[n]的扩展报头比特可各自标识2的相应幂,如参照图5的编程有效载荷所讨论的。
现在将讨论通过每个UART接口116实现的基于阻抗的流控制。图8解说了用于包括主机集成电路(IC)或设备801和外围IC或设备802的系统800的流控制电路系统的各方面。为了解说清楚起见,仅在主机IC 801中的UART接口116中示出传送电路系统。类似地,仅在外围IC 802中的UART接口116中示出接收电路系统。由于简化,仅在主机IC 801上示出传送(TX)引脚111。类似地,仅在外围IC 802上示出接收(RX)引脚112。然而,将领会,这些接口包含参照图1讨论的两种类型的引脚。主机IC 801中的VGI FSM115由移位寄存器805表示,并且外围IC 802中的VGI FSM 115由外围IC 802中的移位寄存器836表示。
主机IC 801中的处理器或其他数据源(未解说)提供源数据(诸如GPIO信号或UART信号)。在系统800中,在传送引脚111上传送的帧(未解说)可以是如稍早讨论的VGI帧600、UART帧605、或混合帧700。主机IC 801中的(由移位寄存器805表示的)VGI FSM 115还包括从系统总线接收数据的先进先出(FIFO)存储器803或者与FIFO存储器803相关联。将领会,为了解说清楚起见,系统800中未示出对应的GPIO接口103(用于VGI帧600的传送)。外围IC802包括耦合至其系统总线的对应的FIFO存储器840。如常规的,每个FIFO存储器803和840可以包括用以监视其接收附加数据的能力的FIFO水印逻辑。根据其先进先出逻辑,主机FIFO存储器803将其最早加载的数据加载到传送移位寄存器805中。UART接口116中的传送控制电路810使用16X过采样时钟信号(未解说)的每16个循环循环一次的移位时钟来选通传送移位寄存器805以移入其内容。在替换方面,可使用其他过采样时钟速率。传送控制电路810从传送移位寄存器805接收移入比特并控制传送(Tx)缓冲器815以根据移入比特的二进制值来驱动传送引脚111的电压。例如,Tx缓冲器815可对移入的二进制1进行响应以在16X过采样时钟信号的16个循环上用电源电压来驱动其传送引脚111以传送二进制1。相反,传送缓冲器815被配置成对移入的0比特进行响应以在16X过采样时钟信号的16个循环上将其传送引脚111接地以传送二进制0。将领会,如稍早讨论的,VGI FSM 115(图1)将期望的开始比特、报头、扩展报头、身份比特和停止比特插入从传送移位寄存器805移出的结果得到的数据帧。
如将在以下进一步解释的,传送缓冲器815被配置成在两个输出阻抗(高输出阻抗和低输出阻抗)之间进行选择。从帧的开始比特到数据有效载荷传输,传送控制电路810命令传送缓冲器815使用其低输出阻抗。另外,传送控制电路810命令传送缓冲器815在帧的停止比特的某一初始部分上(诸如16x过采样时钟信号的一个或两个循环上)使用其低输出阻抗。传送控制电路810随后命令传送缓冲器815在停止比特传输的剩余部分内并且还在帧传输之间的任何等待时段期间使用其高输出阻抗。高输出阻抗显著大于低输出阻抗。
在停止比特传输的高输出阻抗部分期间,主机的UART接口116中的清除发送(CTS)控制电路820使用某个阈值电平(诸如电源电压的一半(或更一般地,由传送缓冲器815用于传送二进制1值的传送电压,该传送电压可等于电源电压或者可被减小以节省功率))来检测传送引脚电压是二进制1还是二进制0。基于传送引脚电压的二进制值,CTS控制电路820可随后相应地驱动其输出信号(Tx_OK)。例如,输出信号Tx_OK的二进制0值可触发传送控制电路810不选通移位寄存器805,以不移入在当前帧的停止比特传输之后的后续帧。此空闲状态将继续直至CTS控制电路820再次检测到传送引脚电压为二进制高值,从而CTS控制电路820相应地断言其输出信号Tx_OK。传送控制电路810可随后命令传送缓冲器815进入其低输出阻抗状态以开始另一帧传输(假定存在要传送的一个帧,这取决于主机的FIFO缓冲器或存储器803的状态)。
在外围IC 802中,其UART接口116中的接收(RX)缓冲器825被配置成在接收引脚112上接收每个帧。例如,RX缓冲器825可以包括反相器(或比较器,未解说),其中接收引脚112电压驱动反相器晶体管的栅极。因为MOSFET晶体管在它们的栅极处呈现相对较高的阻抗,因此RX缓冲器825具有对应高输入阻抗。RX缓冲器825被配置成响应于过采样时钟信号(未解说)而对收到帧中的每个比特进行采样。在16X过采样速率下,收到帧中的每个比特通过16个采样来表示。基于每组16个采样的二进制状态,RX缓冲器825作出比特判决以将结果得到的收到比特驱动至接收控制电路835,该接收控制电路835进而响应于移位时钟的选通而将收到比特移入接收移位寄存器836。接收移位寄存器836的选通可以由此具有等于16X过采样时钟信号的16个循环的时段。一旦整个帧被加载到移位寄存器836中,结果得到的帧就可以被移入到接收FIFO缓冲器840中,以使得其可以最终在系统总线上并行地呈现给外围IC 802中的处理器或其他数据阱(未解说)。
RX缓冲器825的输入阻抗被固定至高阻抗值,如以上所讨论的。但是,请求发送(RTS)控制电路830可在接收引脚112的两个输入阻抗(低输入阻抗和高输入阻抗)之间进行选择。该高输入阻抗通常显著高于主机IC 801的高输出阻抗(例如,10KΩ)。该低输入阻抗显著小于该高输入阻抗。在默认模式期间并且还在接收当前帧的开始比特直到数据有效载荷时,RTS控制电路830向接收引脚112呈现其高输入阻抗。在此低输入阻抗呈现期间,RTS控制电路830有效地与影响接收引脚电压隔离。接收控制电路835检测当前帧的收到停止比特的开始并检查接收FIFO缓冲器840内的接收(RX)FIFO水平,以确定接收FIFO缓冲器840是否有足够的存储可用于接收另一帧。如同传送FIFO缓冲器803,接收FIFO缓冲器840可以包括用以生成RX FIFO水平信号的水印逻辑或其他合适电路。如果存在足够的存储可用,则接收控制电路835在当前帧的停止比特的剩余部分上不改变RTS控制电路830的默认高输出阻抗。但是如果不存在足够的存储可用,则接收控制电路835命令RTS控制电路830选择其低输入阻抗(例如,50欧姆)。此低输入阻抗可以基本上等于外围IC 802的低输出阻抗。由外围IC802中的RTS控制电路830的低输入阻抗相比于主机IC 801中的传送缓冲器815的高输出阻抗所导致的结果得到的分压器使RTS控制电路830快速地耗尽接收引脚112上的电荷,这进而对主机IC 801的传送引脚111进行放电。主机IC 801中的CTS控制电路820随后检测传送引脚电压降,以使得主机IC 801进入其中主机IC 801制止发送附加帧的等待模式直到传送引脚电压恢复。外围IC 802中的RX控制电路835确定其RX FIFO水平何时指示有足够的接收另一帧的存储能力,此时RX控制电路835命令RTS控制电路830恢复其默认高输出阻抗。主机IC 801处的传送引脚电压的结果得到的恢复随后触发另一帧的传输。主机IC 801与外围IC802之间的流控制由此不需要单独的CTS或RTS引脚。
图9中示出了TX缓冲器815和RTS控制电路830的示例方面。TX缓冲器815中的开关S1通过电阻器RHigh(R高)耦合至传送引脚111。类似地,开关S2通过电阻器RLow(R低)耦合至传送引脚111。RHigh的电阻是以上讨论的高输出阻抗(诸如10K欧姆),而电阻器RLow的电阻是也在以上讨论的低输出阻抗(诸如50欧姆)。在从开始比特直到数据有效载荷结束的帧传输期间,TX缓冲器815中的开关S2闭合,而开关S1断开。帧的这个开头部分(实际上帧的大部分)由此使用低输出阻抗来传送。此低输出阻抗至少在帧的停止比特的第一个过采样时钟循环上继续。对于停止比特传输的其余部分,开关S1闭合并且开关S2断开,以使得停止比特的其余部分使用高输出阻抗来传送。
RTS控制电路830包括开关S3和S4的类似布置以及类似的一对电阻器RHigh和RLow。在所接收到的帧接收的大部分(从开始比特直到停止比特的采样中的初始采样)期间,开关S3闭合并且开关S4断开以向接收引脚112呈现高输入阻抗(电阻器RHigh的电阻)。外围IC的高输入阻抗与主机IC的低输出阻抗之间的结果得到的分压使TX缓冲器815能够在所传送/所接收的帧的此初始部分期间快速地对其传送引脚电压进行充电(或者取决于每个比特的二进制值而对其传送引脚电压进行放电)。当TX缓冲器815针对停止比特传输的其余部分切换至高输出阻抗时,如果在RX FIFO缓冲器840中没有足够的空间,则RTS控制电路830闭合开关S4并且断开开关S3以向接收引脚112呈现低输入阻抗。如果有足够的空间,则开关S3保持闭合并且开关S4保持断开。
图10中解说了诸如参照图3所讨论的在停止比特1010的传输期间TX缓冲器815的输出阻抗的定时。初始低输出阻抗时段A和后续高输出阻抗时段B的历时响应于16X UART过采样时钟信号1000的循环而确定。在一个方面,初始低输出阻抗时段A发生在16X UART过采样时钟信号1000的前两个循环期间。在此类方面,高输出阻抗时段B随后将出现在16X UART过采样时钟信号1000的剩余14个循环上。鉴于初始低输出阻抗时段,停止比特1010可被快速地驱动至期望逻辑高电平。
图11中示出了由传送设备传送的示例帧1100。另外,还示出了主机IC 801中的TX缓冲器(由“TX”指示)的阻抗状态以及接收设备中的RTS控制电路(由“RX”指示)的阻抗状态。在此方面,帧1100具有8比特数据有效载荷,但是此类长度在替换方面可被改变。传送设备通过将其传送引脚拉低达开始比特历时来开始帧1100。如同帧1100中的数据比特和停止比特,开始比特可以具有对应于16X过采样时钟信号的16个循环的时段。在替换方面,可以使用不同的过采样速率来对帧1100中的各比特的历时进行定时。帧1100结束于停止比特,在该停止比特期间TX缓冲器尝试将传送引脚电压充电至高。
RX缓冲器使用其过采样时钟信号(诸如16X过采样时钟信号)来对收到帧进行采样。在开始比特、后续数据比特(为了解说清楚起见未在帧1100中示出报头中的功能比特,但是这些比特也将在低输出阻抗下传送)以及停止比特的初始部分的传输期间,TX缓冲器使用其低输出阻抗(Zout等于50欧姆)。在此时间期间,接收设备中的RTS控制电路使用其高输入阻抗(“高Z”),以使得TX缓冲器能响应于每个所传送比特的二进制值而将其传送引脚的电压快速地摆动至恰适的二进制值(VDD或接地)。另外,TX缓冲器也可以在停止比特的初始部分期间(诸如在16x过采样时钟的一个循环上)将传送引脚快速地充电至电源电压。在如先前参照图10所讨论的用于停止比特的过采样时钟的剩余循环上,TX缓冲器使用其高输出(O/P)阻抗。存在在图11中关于停止比特传输的剩余部分期间的该TX缓冲器高输出阻抗时段解说的两种接收机状态。在第一状态(情形#1)中,RX FIFO水平低于FIFO阈值设置点(诸如在接收器控制电路(未解说)内确定的)。此种状况指示在接收FIFO缓冲器(也未解说)内有存储能力。接收设备中的RTS控制电路由此维持其默认高输出阻抗达停止比特的历时。在第二状态(情形#2)中,RX FIFO水平大于FIFO阈值设置点。TX缓冲器最初使用低输出阻抗来驱动停止比特的开始部分,以使得传送引脚电压可在此初始停止比特时段期间容易地充电至电源电压。
响应于在停止比特的初始部分内检测到接收引脚的高电压,接收节点中的RTS控制电路可做两件事情之一——它可通过低输入阻抗或通过高输入阻抗来将接收引脚耦合至接地。RTS控制电路如以上所讨论的那样作出此类选择。如果接收方UART接口准备好接收帧(在图11中指示为情形#1的RX=OK状况),则RTS控制电路通过高输入阻抗(优选地显著大于TX缓冲器中所使用的高输出阻抗的高输入阻抗)将接收引脚耦合至接地。结果是TX缓冲器和RTS控制电路在接收方UART接口准备好接收帧的情况下形成维持接收引脚电压为高的分压器。经修改的传送方UART接口通过其CTS控制电路来感测该高电压。如果CTS控制电路在停止比特时段的高输出阻抗部分期间感测到其传送引脚电压为高,则经修改的传送方UART接口自由地发送另一数据帧。
另一方面,如果经修改的接收方UART接口未准备好接收另一数据帧(如在图11中由情形#2的RX=Not OK(不OK)状况所指示的),则RTS控制电路在其接收到停止比特时通过相对较低的阻抗来将其接收引脚耦合至接地。因为TX缓冲器正通过高输出阻抗来驱动传送引脚为高,所以结果是接收引脚和传送引脚电压将被充分地放电至接地,其被传送设备解读为CTS信号=0状况经修改的传送方UART接口中的CTS控制电路感测其传送引脚上的该低电压(如同常规UART接口将感测(现在不存在的)CTS引脚的低状态那样),以使得传送设备将制止发送另一数据帧。当接收方UART接口中的RTS控制电路如图11的情形#1中那样通过其高输入阻抗来将其接收引脚耦合至接地时,传送方UART接口可行进至传送另一帧。
尽管先前讨论涉及不使用常规RTS和CTS引脚的流控制,但是将领会,在需要与常规UART传输后向兼容的方面可提供RTS引脚和CTS引脚。
在给定本文中实现的灵活的帧长度的情况下,注意,可以增加帧长度,以使得传送设备和接收设备中的过采样时钟之间的缺乏同步可能导致错误。就此而言,在假定使用16X过采样时钟的情况下,帧的10比特数据有效载荷将由160个采样来表示。在此相同的采样速率下,20比特数据有效载荷将由320个采样来表示。随着采样数的增加,接收方集成电路将变得更有可能欠采样或过采样帧中的给定比特,这是因为相异设备中的过采样时钟不同步。为了维持同步,较大的帧可包括中间停止比特和开始比特。先前讨论的功能比特可对较大帧中的这些中间比特的位置进行编程。例如,如果知道较大帧将在前10比特之后包括中间停止比特,则接收设备可在接收到中间停止比特之前预期已作出160个采样(假定使用16X过采样速率)。如果有更多或更少采样,则接收设备可相应地调整其过采样速率以保持与传送设备的过采样速率充分同步。图12中示出了具有中间停止比特1200以及跟随在中间停止比特1200之后的中间开始比特1205的示例帧1201。帧1201开始于开始比特306并且结束于停止比特310,如参照图3的帧300所讨论的。中间停止比特1200跟随在前8个数据比特D0到D7之后。与停止比特310形成对比,不需要用于中间停止比特1200的传输的变化的输出阻抗——对应的TX缓冲器可针对该比特将传送引脚驱动至电源电压。相反,TX缓冲器将使传送引脚接地以传送中间开始比特1205。
可变输出阻抗不仅有利地辅助建立双导线接口上的流控制,而且还固有地保护免受设备上电之后的反向功率状况。就此而言,当设备上电时可能是这种情形,即:一个集成电路首先将其传送引脚电压驱动为高,而同时接收设备仍断电。在断电的设备处接收到的此经断言的电压可能在接收设备处形成正向偏置的寄生二极管,该寄生二极管浪费电流并且在接收设备最终上电时还导致锁存或其他毛刺。这个问题通常被标示为反向功率状况。但是本文中公开的TX缓冲器的默认高输出阻抗固有地避免了这个问题,因为其采用某一电流量来正向偏置接收设备中的寄生二极管。TX缓冲器的高输出阻抗限制了由断电的接收设备汲取的电流,以使得不会创建反向功率状况。
另外,在上电时使用的高输出阻抗在枚举过程期间是有利的。在上电重置时,在初始枚举之前,传送引脚的电压电平以高输出阻抗保持为“1”。以状态“1”断言传送引脚的设备首先获得“主控”状态。这意味着在将传送引脚设置成“1”之前设备检查其接收引脚处的信号状态。由于主控SoC始终首先上电,因而通过此简单协议来确保其作为主控的角色。此相同行为(首先开启的成为主控)还解决了可能在涉及多点配置的VGI接口中出现的任何冲突。
在远程临界情况状态中,由于防回跳定时差异(其可能在多点配置中从一个设备到另一设备发生),早期枚举的首次迭代会导致失败。后续尝试开始于尝试带头作为主控的每一侧上的异步本地时钟。由于这两侧上的异步时钟的正边沿具有0相位差异的概率无穷小,因而这两个设备之一将始终变成主控。
图1的VGI架构100中的主机设备101可作为片上系统(SOC)1305纳入到图13中所示的移动设备1300中。移动设备1300可包括蜂窝电话、智能电话、个人数字助理、平板计算机、膝上型计算机、数码相机、手持式游戏设备、或其他合适设备。SOC 1305使用系统总线1315内的两条导线与参照VGI架构100类似地讨论的外围IC 1310通信。系统总线1315还耦合至存储器(诸如DRAM 1320)以及显示控制器1325。进而,显示控制器1325耦合至驱动显示器1335的视频处理器1330。
用于功率状态无感知接口中的链路状态检测和苏醒的技术的概览
常开(AON)功率域中的虚拟通用输入/输出接口(VGI)有限状态机(FSM)和相关联的物理接口(例如,UART或其他接口)实现可以是理想的硅级实现。然而,许多实现折衷可能不允许遵从这条路径。
在片上系统(SoC)上集成VGI可具有将VGI块放置在非常开(非AON)功率域中的限制。非AON功率域就其本质而言会塌陷在低功率状态中,即,不是常开的(不始终活跃)。当在非AON功率域中实现VGI FSM和物理接口时,VGI FSM和物理接口将不会在从低功率状态转变至活跃功率状态时立即可操作。因此,VGI的非AON功率域实现可能需要苏醒机制,该苏醒机制可使用调制解调器功率管理器(MPM)块和/或资源功率管理器(RPM)块来实现。
目前的苏醒机制的启用是以附加等待时间为代价的。尽管此类等待时间在许多情形中是可接受的,但是目前的苏醒机制仍不能解决与由共同的物理接口互连的设备(例如,主机设备和外围设备)的功率状态无知/无感知相关联的问题。功率状态无知/无感知的根本原因在于以下事实:物理接口的空闲状态保持相同(例如,逻辑高或逻辑低),而无论经互连的设备的功率状态如何。因此,一个经互连的设备可能不知道另一经互连的设备是处于活跃状态还是休眠状态。不知道另一设备的当前功率状态的设备可能以消息丢失的高风险来向另一设备发送消息。因此,所需要的是向传送设备通知所传送的消息由于接收设备处于低功率状态而丢失的可能性而同时确保最小等待时间的架构解决方案。在本公开的一方面,提供了高度适用于VGI和/或其他类型的对等(P2P)物理链路的解决方案,其中经连通的设备不知道/不知晓彼此的功率状态和协议或者针对休眠/苏醒的附加的基于硬件引脚的握手将被避免。
示例性操作环境
某些所公开的示例涉及用于基于设备的所确定的功率状态来向该设备传达信号的系统和装置。
本公开的某些方面可适用于被部署在电子组件之间的通信链路,这些电子组件可包括设备(诸如电话、移动计算设备、电器、汽车电子、航空电子系统等)的子组件。参照图14,例如,用于基于设备的所确定的功率状态来传达信号的装置1400可包括被配置成控制装置1400的操作的处理电路1402。处理电路1402可访问并执行软件应用以及控制装置1400内的逻辑电路和其他设备。在一个示例中,装置1400可包括无线通信设备,该无线通信设备通过射频(RF)通信收发机1406与无线电接入网(RAN)、核心接入网、因特网和/或另一网络通信。通信收发机1406可以可操作地耦合至处理电路1402。处理电路1402可包括一个或多个IC设备,诸如专用集成电路(ASIC)1408。ASIC1408可包括一个或多个处理设备、逻辑电路等等。处理电路1402可包括和/或被耦合到处理器可读存储1412,该处理器可读存储1412可维护可由处理电路1402执行的指令和数据。处理电路1402可由操作系统以及支持并实现驻留在无线设备的存储1412中的软件模块的执行应用编程接口(API)1410层中的一者或多者来控制。存储1412可包括只读存储器(ROM)或随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、闪存设备、或可被用于处理系统和计算平台中的任何存储器设备。处理电路1402可包括和/或访问本地数据库1414,该本地数据库1414可维护用于配置和操作该装置1400的操作参数和其它信息。该本地数据库1414可使用数据库模块或服务器、闪存、磁介质、EEPROM、光学介质、磁带、软盘或硬盘等中的一者或多者来实现。处理电路也可以可操作地耦合至外部设备,诸如天线1422、显示器1424、操作者控件(诸如按钮1428和按键板1426)、以及其他组件。
图15是解说装置1500的某些方面的框图,该装置诸如是无线移动设备、移动电话、移动计算系统、无线电话、笔记本计算机、平板计算设备、媒体播放器、游戏设备等。装置1500可包括通过通信链路1520交换数据和控制信息的多个IC设备1502和1530。通信链路1520可被用于连接IC设备1502和1530,IC设备1502和1530可定位成彼此紧邻或者物理上位于装置1500的不同部件中。在一个示例中,通信链路1520可设在承载IC设备1502和1530的芯片载体、基板或电路板上。在另一示例中,第一IC设备1502可位于折叠式电话的按键板区段中,而第二IC设备1530可位于该折叠式电话的显示器区段中。通信链路1520的一部分可包括电缆或光学连接。
通信链路1520可包括多个信道1522、1524和1526。一个或多个信道1526可以是双向的,并且可以在半双工模式和/或全双工模式中操作。一个或多个信道1522、1524可以是单向的。通信链路1520可以是非对称的,由此在一个方向上提供较高带宽。在本文描述的一个示例中,第一通信信道1522可被称为前向链路1522,而第二通信信道1524可被称为反向链路1524。第一IC设备1502可以被指定为主机(host)、主控方(master)和/或发射机,而第二IC设备1530可以被指定为客户端、从动方(slave)和/或接收机,即便IC设备1502和1530两者都被配置成在通信链路1520上进行传送和接收。在一个示例中,前向链路1522可以在将数据从第一IC设备1502传达给第二IC设备1530时以较高数据率操作,而反向链路1524可以在将数据从第二IC设备1530传达给第一IC设备1502时以较低数据率操作。
IC设备1502和1530可各自包括处理器或其它处理和/或计算电路或设备1506、1536。在一个示例中,第一IC设备1502可执行装置1500的核心功能,包括维护通过无线收发机1504和天线1514的无线通信,而第二IC设备1530可支持管理或操作显示器控制器1532的用户接口,并且可使用相机控制器1534来控制相机或视频输入设备的操作。IC设备1502和1530中的一者或多者所支持的其他特征可包括键盘、语音识别组件、以及其他输入或输出设备。该显示器控制器1532可包括支持显示器(诸如液晶显示器(LCD)面板、触摸屏显示器、指示器等)的电路和软件驱动器。存储介质1508和1538可包括瞬态和/或非瞬态存储设备,其被适配成维护由相应处理电路1506和1536、和/或IC设备1502和1530的其它组件所使用的指令和数据。每个处理电路1506、1536及其相应的存储介质1508和1538以及其它模块和电路之间的通信可分别由一个或多个总线1512和1542来促成。
反向链路1524可按与前向链路1522相同的方式来被操作。前向链路1522和反向链路1524可以能够以相当的速度或以不同的速度进行传送,其中速度可被表达为数据传输速率和/或时钟速率。取决于应用,前向和反向数据率可以基本上相同或可相差几个数量级。在一些应用中,单个双向链路1526可支持第一IC设备1502与第二IC设备1530之间的通信。当例如前向和反向链路1522和1524共享相同的物理连接并且以半双工方式工作时,前向链路1522和/或反向链路1524可以是可配置成以双向模式操作的。
在某些示例中,反向链路1524从前向链路1522推导时钟信号以用于同步目的、用于控制目的、促进功率管理和/或用于简化设计。该时钟信号可具有通过对用于在前向链路1522上传送信号的码元时钟的频率进行分频所获得的频率。码元时钟可被叠加或以其他方式编码在前向链路1522上传送的码元中。使用作为码元时钟的衍生物的时钟信号允许发射机和接收机(收发机1510、1540)的快速同步并使得数据信号能够快速开始和停止而无需靠成帧(framing)来启用训练和同步。
在某些示例中,单个双向链路1526可支持第一IC设备1502与第二IC设备1530之间的通信。在一些实例中,第一IC设备1502和第二IC设备1530提供在处理设备与存储器设备(诸如动态随机存取存储器(DRAM))之间传送的数据、地址和控制信号的编码和解码。
基于所确定的功率状态来向设备传达信号的示例性描述
图16是解说通过物理接口来互连的设备的示图1600。在图16中,第一设备1602通过共同的物理接口1606来互连至第二设备1604。物理接口1606的空闲状态防止传送设备(例如,第一设备1602)获取关于接收设备(例如,第二设备1604)的功率状态的信息。即,当物理接口1606空闲时,物理接口1606不向传送设备1602指示接收设备1604的功率状态(活跃/非活跃)。因此,如果传输发生在接收设备1604的休眠状态期间,则从传送设备1602传送的分组很有可能丢失。任何基于软件或基于协议的用于防止此类丢失的解决方案都是有问题的,因为它将添加不想要的等待时间。此外,任何基于硬件的用于防止此类丢失的解决方案(诸如涉及附加的握手线1608)也是有问题的,因为它将增加封装和系统级成本。
用于解决由物理接口1606互连的第一设备1602和第二设备1604的功率状态无知/无感知的当前解决方案在常开(AON)域中实现物理接口1606,以确保第一设备1602与第二设备1604之间的链路始终准备好进行通信。然而,此类解决方案具有数个问题。第一,基于AON功率域的实现产生功率惩罚,这负面地影响设备的运行时间。第二,AON实现的有效性还要求两个经互连的设备在AON域中。然而,这在其中支持来自不同原始设备制造商(OEM)的即插即用设备的情况下难以确保,并且此类设备可能不具有受保障的AON能力。第三,即使忽略功率惩罚,AON实现的片上系统(SoC)级实现也会提出关于管芯划分、封装引脚分配以及印刷电路板(PCB)布线的若干问题。
根据本公开的各方面,用于最优地解决与由共同的物理接口互连的设备的功率状态无知/无感知相关联的问题的新颖解决方案包括数个特征。例如,接口架构的硬件和软件方面可被添加至现有的物理接口/链路以促成具有最小等待时间的功率状态检测,并且在传送设备确定接收设备处于休眠(不活跃)状态的情况下使传送设备能够自动地重试对消息、分组和/或信号的传输。在本公开的另一方面,提供了知晓功率状态的环回网关,该环回网关在接收设备处于休眠状态时由接收设备自动地启用以用于将消息环回至传送设备。在本公开的进一步方面,提供了将收到消息标识为来自接收设备的有效传输或者在接收设备处于休眠状态时标识为(先前从传送设备传送的消息的)环回回波的简单协议。在本公开的一方面,如果传送设备确定接收设备处于休眠状态,则传送设备可在可配置的延迟之后重试消息传输。在本公开的进一步方面,如果传送设备确定接收设备处于休眠状态,则传送设备可在接收到接收设备苏醒的指示之际重试消息传输。
图17是解说根据本公开的一方面的通过物理接口来互连并且包括环回开关的设备的示图1700。在图17中,第一设备(Dev-1)1702通过物理接口(例如,UART或其他接口)1706互连至第二设备(Dev-2)1704。尽管本公开的各方面在本文中是参照双导线LM-UART接口来描述的,但是可构想此类方面还可应用于其他类型的总线结构。此外,本公开的各方面可应用于基于差分线(具有A/C和D/C耦合两者)的接口。在本公开的一方面,第一设备1702可以是图1的主机设备101,其包括与主机设备101相关联的所有电路/模块和功能性。此外,第二设备1704可以是图1的外围设备105,其包括与外围设备105相关联的所有电路/模块和功能性。第一设备1702可进一步包括环回开关7108和用于管理第一设备1702的苏醒操作的苏醒块(RPM)1712。类似地,第二设备1704可进一步包括环回开关1710和用于管理第二设备1704的苏醒操作的苏醒块(RPM)1714。
图17中描绘的特征的组合提供了用于克服由外围接口1706互连的第一设备1702与第二设备1704之间的功率状态无知/无感知的解决方案。在本公开的一方面,当物理接口1706进入休眠状态时,第一设备1702处的环回开关1708和第二设备1704处的环回开关1710被启用。
在本公开的进一步方面,传输签名可通过唯一性的预先指派的比特或比特序列来标识。例如,比特序列中的比特“D0”可包含指示哪个设备是所传送的消息的发起方的传输签名。传输签名帮助设备确定所接收到的传输是来自另一设备的有效传输还是该设备自己的传输的经环回的回波。如图17中所示,当第一设备1702经由比特序列D0到D7向第二设备1704传送消息1752(Dev-1到Dev-2)时,1722处的比特D0可包含指示第一设备1702是消息的发起方的值“1”。当第二设备1704经由比特序列D0到D7向第一设备1702传送消息1754(Dev-2到Dev-1)时,1724处的比特D0可包含指示第二设备1704是消息的发起方的值“0”。相应地,如果第一设备1702接收到消息,其中比特D0包含值“0”,则第一设备1702可确定该消息是来自第二设备1704的有效传输。然而,如果由第一设备1702接收到的消息具有包含值“1”的比特D0,则第一设备1702可确定该消息是第一设备1702自己的传输的经环回的回波。如果第二设备1704接收到消息,其中比特D0包含值“1”,则第二设备1704可确定该消息是来自第一设备1702的有效传输。然而,如果由第二设备1704接收到的消息具有包含值“0”的比特D0,则第二设备1704可确定该消息是第二设备1704自己的传输的经环回的回波。在本公开的一方面,尽管图17解说了仅实现1个比特(例如,比特D0)来指示哪个设备是所传送的消息的发起方,但是可构想在其他实现中,多个(不止一个)比特可被用于指示消息发起方。此类多比特实现可在多点网络情景中使用。
作为示例,假定第一设备1702处于休眠状态并且第二设备1704处于活跃状态。当第一设备1702处于休眠状态时,第一设备1702的环回开关1708被启用(接通)。当第二设备1704处于活跃状态时,第二设备1704的环回开关被禁用(断开)。
当第二设备1704向第一设备1702传送消息(Dev-2到Dev-1)而第一设备1702处于休眠状态时,该消息将在Rx引脚1732处被检测到,通过经启用的环回开关1708来路由,并且经由Tx引脚1742返回到第二设备1704。另外,由传入消息引起并且在Rx引脚1732处检测到的线转变可由苏醒块(RPM)1712用于发起第一设备1702处的苏醒序列。例如,在一个实现中,当物理接口1706的空闲状态是逻辑高(逻辑1)时,苏醒序列将在Rx引脚1732检测到1到0线转变时发起。在另一实现中,当物理接口1706的空闲状态是逻辑低(逻辑0)时,苏醒序列将在Rx引脚1732检测到0到1线转变时发起。在消息返回到第二设备1704之际,第二设备1704将针对签名检查比特D0。如果比特D0包含值“0”,则第二设备1704将确定收到消息是它自己先前传送的消息的回波并且推断第一设备1702处于休眠状态。
当第一设备1702向第二设备1704传送消息(Dev-1到Dev-2)而第二设备1704处于休眠状态时,该消息将在Rx引脚1734处被检测到,通过经启用的环回开关1710来路由,并且经由Tx引脚1744返回到第一设备1702。另外,由传入消息引起并且在Rx引脚1734处检测到的线转变可由苏醒块(RPM)1714用于发起第二设备1704处的苏醒序列。例如,在一个实现中,当物理接口1706的空闲状态是逻辑高(逻辑1)时,苏醒序列将在Rx引脚1734检测到1到0线转变时发起。在另一实现中,当物理接口1706的空闲状态是逻辑低(逻辑0)时,苏醒序列将在Rx引脚1734检测到0到1线转变时发起。在消息返回到第一设备1702之际,第一设备1702将针对签名检查比特D0。如果比特D0包含值“1”,则第一设备1702将确定收到消息是它自己先前传送的消息的回波并且推断第二设备1704处于休眠状态。
图18是解说根据本公开的诸方面的第一设备的苏醒以及基于固定延迟从第二设备的传输重试的示图1800。当第二设备(Dev-2)向第一设备(Dev-1)1820传送消息而第一设备处于休眠状态时,在休眠的第一设备处检测到的消息将触发第一设备处的苏醒块(RPM)执行苏醒序列1802。同时,在休眠的第一设备处检测到的消息被返回给第二设备。在消息返回到第二设备之际,第二设备针对签名检查比特D0,并且当比特D0包含值“0”1804时可确认该消息是其自己的传输的经环回的回波1822以及第一设备处于休眠状态。由第二设备执行的苏醒序列在少于时间ΔT 1806内完成。时间ΔT可以是预定义的或者可配置的传输重试延迟。在本公开的一方面,第一设备处的苏醒序列可在第二设备确认经环回的回波之前的一时间量(例如,两个比特的长度)开始。相应地,在第二设备可重试传输之前,第一设备可具有受保障的活跃时间1808(例如,两个比特的长度)。当时间ΔT已流逝时(即,在第一设备的受保障的活跃时间之后),第二设备可重试该消息至第一设备1810的传输。由此,当第一设备休眠时可能已经在该消息的原始传输期间丢失的任何分组现在在已知第一设备苏醒时被重传。
图19是解说根据本公开的诸方面的第一设备的苏醒以及基于苏醒指示从第二设备的传输重试的示图1900。当第二设备(设备2)向第一设备(设备1)1920传送消息而第一设备处于休眠状态时,在休眠的第一设备处检测到的消息将触发第一设备处的苏醒块(RPM)执行苏醒序列1902。同时,在休眠的第一设备处检测到的消息被返回给第二设备。在消息返回到第二设备之际,第二设备针对签名检查比特D0,并且当比特D0包含值“0”1904时可确认该消息是其自己的传输的经环回的回波1922以及第一设备处于休眠状态。在确定第一设备处于休眠状态之后,第二设备进入等待模式1906,其中第二设备等待第一设备指示苏醒。等待模式的最长长度可以是可配置的。当第一设备完成苏醒序列并且苏醒时,第一设备可向第二设备传送信号以指示苏醒1908。在本公开的一方面,可针对最优等待时间来配置用于在第一设备苏醒之后传送苏醒指示信号的指示延迟。例如,该指示延迟可在主机设备与外围设备之间配置,以使得主机设备对指示延迟的长度具有最终决定权。一旦第二设备1910检测到来自第一设备的苏醒指示,第二设备就可重试该消息至第一设备1912的传输。由此,当第一设备休眠时可能已经在该消息的原始传输期间丢失的任何分组现在在已知第一设备苏醒时被重传。
根据本公开的各方面,尽管关于图18和19的操作在以上是参照第二设备向休眠的第一设备传送消息来描述的,但是可构想相同的原理适用于其中第一设备在第二设备处于休眠状态时向第二设备传送消息的情景。
图20是用于基于对等方设备的所确定的功率状态来向对等方设备传送信号的方法的示图2000。该方法可由一装置(例如,图1的主机设备101或外围设备105、图14的装置1400、图17的第一设备1702或第二设备1704、或者图21的装置2100)执行。
该装置向对等方设备传送消息(2002)。此后,该装置接收消息并且检查消息签名以确定所接收到的消息是来自对等方设备的有效传输还是该装置的先前传输的经环回的回波(2004)。如果所接收到的消息不是经环回的回波,则该装置确定在传输缓冲器中是否存在下一条消息(2020)并且向对等方设备发送该下一条消息(2002)。
如果所接收到的消息是经环回的回波,则该装置根据两种模式之一来执行消息重传:1)固定延迟等待模式;或者2)苏醒指示模式。当该装置在固定延迟等待模式(2006)下操作时,该装置在向对等方设备重传消息(2002)之前等待所定义的延迟时段(2008)。当该装置不在固定延迟等待模式(2006)下操作时,该装置在苏醒指示模式下操作并且等待从对等方设备接收该对等方设备苏醒的指示(2010)。当该装置接收到对等方设备苏醒的指示(2012)时,该装置向对等方设备重传该消息(2014)。替换地,如果该装置没有从对等方设备接收到苏醒指示和/或如果用于等待接收苏醒指示的最大时段已流逝(2016),则该装置重试对等方设备的苏醒(2018)并且向对等方设备重传该消息(2002)。
用于基于所确定的功率状态来向设备传送信号的示例性设备和方法
图21是根据本公开的一个或多个方面的对配置成支持与基于所确定的功率状态来向设备传送信号/分组/消息有关的操作(例如,与图20和22的方法有关的方面)的装置2100的解说。装置2100包括通信接口(例如,至少一个收发机)2102、存储介质2104、用户接口2106、存储器设备2108以及处理电路2110。
这些组件可以经由信令总线或其他合适的组件(由图21中的连接线一般化地表示)彼此耦合和/或彼此进行电通信。取决于处理电路2110的具体应用和整体设计约束,信令总线可包括任何数目的互连总线和桥接器。信令总线将各种电路链接在一起以使得通信接口2102、存储介质2104、用户接口2106和存储器设备2108中的每一者耦合到处理电路2110和/或与处理电路2110进行电通信。信令总线还可链接各种其他电路(未示出),诸如定时源、外围设备、稳压器和功率管理电路,这些电路在本领域中是众所周知的,且因此将不再进一步描述。
通信接口2102可被适配成促成装置2100的无线通信。例如,通信接口2102可包括被适配成促成关于网络中的一个或多个通信设备进行双向信息通信的电路系统和/或代码(例如,指令)。通信接口2102可耦合到一个或多个天线2112以用于在无线通信系统内进行无线通信。通信接口2102可以配置有一个或多个自立接收机和/或发射机以及一个或多个收发机。在所解说的示例中,通信接口2102包括发射机2114和接收机2116。
存储器设备2108可表示一个或多个存储器设备。如所指示的,存储器设备2108可维护网络相关信息2118连同装置2100所使用的其他信息。在一些实现中,存储器设备2108和存储介质2104被实现为共用存储器组件。存储器设备2108还可被用于存储由处理电路2110或由装置2100的某个其他组件操纵的数据。
存储介质2104可表示用于存储代码(诸如处理器可执行代码或指令(例如,软件、固件))、电子数据、数据库、或其他数字信息的一个或多个计算机可读、机器可读、和/或处理器可读设备。存储介质2104还可被用于存储由处理电路2110在执行代码时操纵的数据。存储介质2104可以是能被通用或专用处理器访问的任何可用介质,包括便携式或固定存储设备、光学存储设备、以及能够存储、包含或携带代码的各种其他介质。
作为示例而非限制,存储介质2104可包括:磁存储设备(例如,硬盘、软盘、磁条)、光盘(例如,压缩碟(CD)或数字多功能碟(DVD))、智能卡、闪存设备(例如,记忆卡、记忆棒、或钥匙驱动器)、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦式PROM(EPROM)、电可擦式PROM(EEPROM)、寄存器、可移动盘、以及任何其他用于存储可由计算机访问和读取的代码的合适介质。存储介质2104可以在制品(例如,计算机程序产品)中实施。作为示例,计算机程序产品可包括封装材料中的计算机可读介质。鉴于上述内容,在一些实现中,存储介质2104可以是非瞬态(例如,有形)存储介质。
存储介质2104可被耦合至处理电路2110以使得处理电路2110能从存储介质2104读取信息和向存储介质2104写入信息。即,存储介质2104可耦合到处理电路2110,以使得存储介质2104至少能由处理电路2110访问,包括其中至少一个存储介质被集成到处理电路2110的示例和/或其中至少一个存储介质与处理电路2110分开(例如,驻留在装置2100中、在装置2100外部、跨多个实体分布等)的示例。
由存储介质2104存储的代码和/或指令在由处理电路2110执行时使处理电路2110执行本文描述的各种功能和/或过程操作中的一者或多者。例如,存储介质2104可包括被配置用于以下动作的操作:管控处理电路2110的一个或多个硬件块处的操作以及利用通信接口2102通过利用其相应通信协议进行无线通信。
处理电路2110一般被适配成用于处理,包括执行存储在存储介质2104上的此类代码/指令。如本文中使用的,术语“代码”或“指令”应当被宽泛地解读成包括但不限于编程、指令、指令集、数据、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、可执行件、执行的线程、规程、函数等,无论其被称为软件、固件、中间件、微代码、硬件描述语言、还是其他术语。
处理电路2110被安排成获得、处理和/或发送数据、控制数据的访问与存储、发布命令,以及控制其他期望操作。在至少一个示例中,处理电路2110可包括被配置成实现由恰适的介质提供的期望代码的电路系统。例如,处理电路2110可被实现为一个或多个处理器、一个或多个控制器、和/或配置成执行可执行代码的其他结构。处理电路2110的示例可包括被设计成执行本文所描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑组件、分立的门或晶体管逻辑、分立的硬件组件、或者其任何组合。通用处理器可包括微处理器,以及任何常规处理器、控制器、微控制器、或状态机。处理电路2110还可实现为计算组件的组合,诸如DSP与微处理器的组合、数个微处理器、与DSP核协作的一个或多个微处理器、ASIC和微处理器、或任何其他数目的变化配置。处理电路2110的这些示例是为了解说,并且还设想了落在本公开范围内的其他合适的配置。
根据本公开的一个或多个方面,处理电路2110可适配成执行用于本文中描述的任何或所有装置的特征、过程、功能、操作和/或例程中的任一者或全部。如本文所使用的,涉及处理电路2110的术语“适配”可指处理电路2110被配置、采用、实现和/或编程(以上一者或多者)为执行根据本文描述的各种特征的特定过程、功能、操作和/或例程。
根据装置2100的至少一个示例,处理电路2110可包括消息传送电路/模块2120、消息接收电路/模块2122、回波确定电路/模块2124、休眠状态确定电路/模块2126、以及消息重传电路/模块2128中的一者或多者,这些电路/模块被适配成执行本文中所描述的特征、过程、功能、操作和/或例程(例如,参照图20和/或图22描述的特征、过程、功能、操作和/或例程)中的任何一者或全部。
消息传送电路/模块2120可包括适配成执行涉及例如向第二设备传送第一消息的若干功能的电路系统和/或指令(例如,存储在存储介质2104上的消息传送指令2130)。
消息接收电路/模块2122可包括适配成执行涉及例如接收第二消息的若干功能的电路系统和/或指令(例如,存储在存储介质2104上的消息接收指令2132)。
回波确定电路/模块2124可包括适配成执行涉及例如确定第二消息是否是第一消息的回波的若干功能的电路系统和/或指令(例如,存储在存储介质2104上的回波确定指令2134)。
休眠状态确定电路/模块2126可包括适配成执行涉及例如基于确定第二消息是回波来确定第二设备处于休眠状态的若干功能的电路系统和/或指令(例如,存储在存储介质2104上的休眠状态确定指令2136)。
消息重传电路/模块2128可进一步包括适配成执行涉及例如在第二消息是第一消息的回波时向第二设备重传第一消息的若干功能的电路系统和/或指令(例如,存储在存储介质2104上的消息重传指令2138)。
如上所提及的,由存储介质2104存储的指令在由处理电路2110执行时使处理电路2110执行本文描述的各种功能和/或过程操作中的一者或多者。例如,存储介质2104可包括消息传送指令2130、消息接收指令2132、回波确定指令2134、休眠状态确定指令2136、以及消息重传指令2138中的一者或多者。
图22是解说用于基于第二设备的所确定的功率状态来向第二设备传送信号/分组/消息的方法的流程图2200。该方法可由第一设备(例如,图1的主机设备101或外围设备105、图14的装置1400、图17的第一设备1702或第二设备1704、或者图21的装置2100)执行。
第一设备向第二设备传送第一消息(2202)。在本公开的一方面,第一消息至第二设备的传输触发第二设备处的苏醒操作。此后,第一设备接收第二消息(2204)。
第一设备确定第二消息是否是第一消息的回波(2206)。确定第二消息是否是第一消息的回波可包括标识第二消息中的指示第二消息的发起方的比特。当该比特指示第一设备是第二消息的发起方时,第一设备确定第二消息是回波。相应地,当第二消息是回波时,第一设备进一步确定第二设备处于休眠状态(2208)。当该比特指示第二设备是第二消息的发起方时,第一设备确定第二消息不是回波并且第二设备处于活跃状态。
当第二消息是第一消息的回波时,第一设备向第二设备重传第一消息(2210)。在本公开的一方面,重传第一消息包括:在确定第二消息是回波之后等待预定义的时间量以使第二设备苏醒,以及在该预定义的时间量已流逝之后向第二设备重传第一消息。在本公开的另一方面,重传第一消息包括:在确定第二消息是回波之后等待从第二设备接收苏醒指示;以及在接收到该苏醒指示之后向第二设备重传第一消息。此外,如果在最大等待时间已流逝之后第一设备未接收到苏醒指示,则第一设备可行进至向第二设备重传第一消息。
用于在休眠状态期间检测信号的示例性设备和方法
图23是根据本公开的一个或多个方面的对配置成支持与在休眠状态期间检测信号/分组/消息有关的操作(例如,与图20和24的方法有关的方面)的装置2300的解说。装置2300包括通信接口(例如,至少一个收发机)2302、存储介质2304、用户接口2306、存储器设备2308以及处理电路2310。
这些组件可以经由信令总线或其他合适的组件(由图23中的连接线一般化地表示)彼此耦合和/或彼此进行电通信。取决于处理电路2310的具体应用和整体设计约束,信令总线可包括任何数目的互连总线和桥接器。信令总线将各种电路链接在一起以使得通信接口2302、存储介质2304、用户接口2306和存储器设备2308中的每一者耦合到处理电路2310和/或与处理电路2110进行电通信。信令总线还可链接各种其他电路(未示出),诸如定时源、外围设备、稳压器和功率管理电路,这些电路在本领域中是众所周知的,且因此将不再进一步描述。
通信接口2302可被适配成促成装置2300的无线通信。例如,通信接口2302可包括被适配成促成关于网络中的一个或多个通信设备进行双向信息通信的电路系统和/或代码(例如,指令)。通信接口2302可耦合到一个或多个天线2312以用于在无线通信系统内进行无线通信。通信接口2302可以配置有一个或多个自立接收机和/或发射机以及一个或多个收发机。在所解说的示例中,通信接口2302包括发射机2314和接收机2316。
存储器设备2308可表示一个或多个存储器设备。如所指示的,存储器设备2308可维护网络相关信息2318连同装置2300所使用的其他信息。在一些实现中,存储器设备2308和存储介质2304被实现为共用存储器组件。存储器设备2308还可被用于存储由处理电路2310或由装置2300的某个其他组件操纵的数据。
存储介质2304可表示用于存储代码(诸如处理器可执行代码或指令(例如,软件、固件))、电子数据、数据库、或其他数字信息的一个或多个计算机可读、机器可读、和/或处理器可读设备。存储介质2304还可被用于存储由处理电路2310在执行代码时操纵的数据。存储介质2304可以是能被通用或专用处理器访问的任何可用介质,包括便携式或固定存储设备、光学存储设备、以及能够存储、包含或携带代码的各种其他介质。
作为示例而非限制,存储介质2304可包括:磁存储设备(例如,硬盘、软盘、磁条)、光盘(例如,压缩碟(CD)或数字多功能碟(DVD))、智能卡、闪存设备(例如,记忆卡、记忆棒、或钥匙驱动器)、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦式PROM(EPROM)、电可擦式PROM(EEPROM)、寄存器、可移动盘、以及任何其他用于存储可由计算机访问和读取的代码的合适介质。存储介质2304可以在制品(例如,计算机程序产品)中实施。作为示例,计算机程序产品可包括封装材料中的计算机可读介质。鉴于上述内容,在一些实现中,存储介质2304可以是非瞬态(例如,有形)存储介质。
存储介质2304可被耦合至处理电路2310以使得处理电路2310能从存储介质2304读取信息和向存储介质2304写入信息。即,存储介质2304可耦合到处理电路2310,以使得存储介质2304至少能由处理电路2310访问,包括其中至少一个存储介质被集成到处理电路2310的示例和/或其中至少一个存储介质与处理电路2310分开(例如,驻留在装置2300中、在装置2300外部、跨多个实体分布等)的示例。
由存储介质2304存储的代码和/或指令在由处理电路2310执行时使处理电路2310执行本文描述的各种功能和/或过程操作中的一者或多者。例如,存储介质2304可包括被配置用于以下动作的操作:管控处理电路2310的一个或多个硬件块处的操作以及利用通信接口2302通过利用其相应通信协议进行无线通信。
处理电路2310一般被适配成用于处理,包括执行存储在存储介质2304上的此类代码/指令。如本文中使用的,术语“代码”或“指令”应当被宽泛地解读成包括但不限于编程、指令、指令集、数据、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、可执行件、执行的线程、规程、函数等,无论其被称为软件、固件、中间件、微代码、硬件描述语言、还是其他术语。
处理电路2310被安排成获得、处理和/或发送数据、控制数据的访问与存储、发布命令,以及控制其他期望操作。在至少一个示例中,处理电路2310可包括被配置成实现由恰适的介质提供的期望代码的电路系统。例如,处理电路2310可被实现为一个或多个处理器、一个或多个控制器、和/或配置成执行可执行代码的其他结构。处理电路2310的示例可包括被设计成执行本文所描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑组件、分立的门或晶体管逻辑、分立的硬件组件、或者其任何组合。通用处理器可包括微处理器,以及任何常规处理器、控制器、微控制器、或状态机。处理电路2310还可实现为计算组件的组合,诸如DSP与微处理器的组合、数个微处理器、与DSP核协作的一个或多个微处理器、ASIC和微处理器、或任何其他数目的变化配置。处理电路2310的这些示例是为了解说,并且还设想了落在本公开范围内的其他合适的配置。
根据本公开的一个或多个方面,处理电路2310可适配成执行用于本文中描述的任何或所有装置的特征、过程、功能、操作和/或例程中的任一者或全部。如本文所使用的,涉及处理电路2310的术语“适配”可指处理电路2310被配置、采用、实现和/或编程(以上一者或多者)为执行根据本文描述的各种特征的特定过程、功能、操作和/或例程。
根据装置2300的至少一个示例,处理电路2310可包括环回开关启用电路/模块2320、消息检测电路/模块2322、苏醒处理电路/模块2324、消息传送电路/模块2326、以及消息接收电路/模块2328中的一者或多者,这些电路/模块被适配成执行本文中所描述的特征、过程、功能、操作和/或例程(例如,参照图20和/或图24描述的特征、过程、功能、操作和/或例程)中的任何一者或全部。
环回开关启用电路/模块2320可包括适配成执行涉及例如在接收设备进入休眠状态时启用环回开关的若干功能的电路系统和/或指令(例如,存储在存储介质2304上的环回开关启用指令2330)。
消息检测电路/模块2322可包括适配成执行涉及例如在休眠状态期间检测来自传送设备的第一消息的若干功能的电路系统和/或指令(例如,存储在存储介质2304上的消息检测指令2332)。
苏醒处理电路/模块2324可包括适配成执行涉及例如基于所检测到的第一消息来执行苏醒操作的若干功能的电路系统和/或指令(例如,存储在存储介质2304上的苏醒处理指令2334)。
消息传送电路/模块2326可包括适配成执行涉及例如经由经启用的环回开关来向传送设备传送第二消息(其中第二消息是第一消息的回波)的若干功能的电路系统和/或指令(例如,存储在存储介质2304上的消息传送指令2336)。
消息接收电路/模块2328可进一步包括适配成执行涉及例如在接收设备苏醒之后接收来自传送设备的对第一消息的重传的若干功能的电路系统和/或指令(例如,存储在存储介质2304上的消息接收指令2338)。
如上所提及的,由存储介质2304存储的指令在由处理电路2310执行时使处理电路2310执行本文描述的各种功能和/或过程操作中的一者或多者。例如,存储介质2304可包括环回开关启用指令2330、消息检测指令2332、苏醒处理指令2334、消息传送指令2336、以及消息接收指令2338中的一者或多者。
图24是解说用于在休眠状态期间检测来自传送设备的信号/分组/消息的方法的流程图2400。该方法可由接收设备(例如,图1的主机设备101或外围设备105、图14的装置1400、图17的设备1702或设备1704、或者图23的装置2300)执行。
接收设备在该接收设备进入休眠状态时启用环回开关(2402)。此后,接收设备在休眠状态期间检测来自传送设备的第一消息(2404)并且行进至基于所检测到的第一消息来执行苏醒操作(2406)。
接收设备随后经由经启用的环回开关来向传送设备传送第二消息,其中第二消息是第一消息的回波(2408)。在本公开的一方面,接收设备将第二消息作为第一消息的回波来传送以指示接收设备处于休眠状态。第二消息可包括将传送设备指示为第二消息的发起方的比特。
接收设备进一步在接收设备苏醒之后接收来自传送设备的对第一消息的重传(2410)。在本公开的一方面,苏醒操作包括接收设备在第二消息被传送之后的预定义时间量内苏醒。相应地,接收设备可在预定义的时间量已流逝之后接收第一消息的重传。在本公开的另一方面,苏醒操作包括接收设备在该接收设备苏醒之后向传送设备传送苏醒指示。相应地,接收设备在苏醒指示被传送之后接收第一消息的重传。
应理解,所公开的过程中各步骤的具体次序或层次是示例性办法的解说。基于设计偏好,可以重新编排这些过程中各步骤的具体次序或层次。所附方法权利要求以示例次序呈现各种步骤的要素,且并不意味着被限定于所给出的具体次序或层次。
如本申请中所使用的,术语“组件”、“模块”、“系统”及类似术语旨在包括计算机相关实体,诸如但并不限于硬件、固件、硬件与软件的组合、软件、或执行中的软件。例如,组件可以是但不限于是,在处理器上运行的进程、处理器、对象、可执行件、执行的线程、程序和/或计算机。作为解说,在计算设备上运行的应用和该计算设备两者皆可以是组件。一个或多个组件可驻留在进程和/或执行的线程内,且组件可以本地化在一台计算设备上和/或分布在两台或更多台计算设备之间。此外,这些组件能从其上存储着各种数据结构的各种计算机可读介质来执行。这些组件可借助于本地和/或远程进程来通信,诸如根据具有一个或多个数据分组的信号来通信,这样的数据分组诸如是来自藉由该信号与本地系统、分布式系统中另一组件交互的、和/或跨诸如因特网之类的网络与其他系统交互的一个组件的数据。
此外,术语“或”旨在表示包含性“或”而非排他性“或”。即,除非另外指明或从上下文能清楚地看出,否则短语“X采用A或B”旨在表示任何自然的可兼排列。即,短语“X采用A或B”得到以下任何实例的满足:X采用A;X采用B;或X采用A和B两者。另外,本申请和所附权利要求书中所用的冠词“一”和“某”一般应当被理解成表示“一个或多个”,除非另外声明或者可从上下文中清楚看出是指单数形式。
提供先前描述是为了使本领域任何技术人员均能够实践本文中所述的各种方面。对这些方面的各种修改将容易为本领域技术人员所明白,并且在本文中所定义的普适原理可被应用于其他方面。因此,权利要求并非旨在被限定于本文中所示的方面,而是应被授予与语言上的权利要求相一致的全部范围,其中对要素的单数形式的引述除非特别声明,否则并非旨在表示“有且仅有一个”,而是“一个或多个”。除非特别另外声明,否则术语“某个”指的是“一个或多个”。本公开通篇描述的各种方面的要素为本领域普通技术人员当前或今后所知的所有结构上和功能上的等效方案通过引述被明确纳入于此,且旨在被权利要求所涵盖。此外,本文中所公开的任何内容都并非旨在贡献给公众,无论这样的公开是否在权利要求书中被显式地叙述。没有任何权利要求元素应被解释为装置加功能,除非该元素是使用短语“用于……的装置”来明确叙述的。

Claims (28)

1.一种用于传送消息的第一设备,包括:
存储器;以及
处理电路,其被耦合至所述存储器并被配置成:
向第二设备传送第一消息;
接收第二消息;
确定所述第二消息是否是所述第一消息的回波;以及
当所述第二消息是所述第一消息的回波时,向所述第二设备重传所述第一消息。
2.如权利要求1所述的第一设备,其特征在于,所述处理电路被配置成通过以下操作来确定所述第二消息是否是所述第一消息的回波:
标识所述第二消息中的指示所述第二消息的发起方的比特;
当所述比特将所述第一设备指示为所述第二消息的发起方时,确定所述第二消息是所述回波;以及
当所述比特将所述第二设备指示为所述第二消息的发起方时,确定所述第二消息不是所述回波。
3.如权利要求1所述的第一设备,其特征在于,所述处理电路被进一步配置成基于确定所述第二消息是所述回波来确定所述第二设备处于休眠状态。
4.如权利要求3所述的第一设备,其特征在于,所述处理电路被配置成通过以下操作来重传所述第一消息:
在确定所述第二消息是所述回波之后等待预定义的时间量以使所述第二设备苏醒;以及
在所述预定义的时间量已流逝之后向所述第二设备重传所述第一消息。
5.如权利要求3所述的第一设备,其特征在于,所述处理电路被配置成通过以下操作来重传所述第一消息:
在确定所述第二消息是所述回波之后等待从所述第二设备接收苏醒指示;以及
在接收到所述苏醒指示之后向所述第二设备重传所述第一消息。
6.如权利要求5所述的第一设备,其特征在于,所述处理电路被配置成通过在最大等待时间已流逝之后未接收到所述苏醒指示的情况下向所述第二设备重传所述第一消息来重传所述第一消息。
7.如权利要求1所述的第一设备,其特征在于,所述第一消息至所述第二设备的传输触发所述第二设备处的苏醒操作。
8.一种用于使第一设备传送消息的方法,包括:
向第二设备传送第一消息;
接收第二消息;
确定所述第二消息是否是所述第一消息的回波;以及
当所述第二消息是所述第一消息的回波时,向所述第二设备重传所述第一消息。
9.如权利要求8所述的方法,其特征在于,所述确定所述第二消息是否是所述第一消息的回波包括:
标识所述第二消息中的指示所述第二消息的发起方的比特;
当所述比特将所述第一设备指示为所述第二消息的发起方时,确定所述第二消息是所述回波;以及
当所述比特将所述第二设备指示为所述第二消息的发起方时,确定所述第二消息不是所述回波。
10.如权利要求8所述的方法,其特征在于,进一步包括基于确定所述第二消息是所述回波来确定所述第二设备处于休眠状态。
11.如权利要求10所述的方法,其特征在于,所述重传所述第一消息包括:
在确定所述第二消息是所述回波之后等待预定义的时间量以使所述第二设备苏醒;以及
在所述预定义的时间量已流逝之后向所述第二设备重传所述第一消息。
12.如权利要求10所述的方法,其特征在于,所述重传所述第一消息包括:
在确定所述第二消息是所述回波之后等待从所述第二设备接收苏醒指示;以及
在接收到所述苏醒指示之后向所述第二设备重传所述第一消息。
13.如权利要求12所述的方法,其特征在于,所述重传所述第一消息进一步包括:当在最大等待时间已流逝之后未接收到所述苏醒指示时向所述第二设备重传所述第一消息。
14.如权利要求10所述的方法,其特征在于,所述第一消息至所述第二设备的传输触发所述第二设备处的苏醒操作。
15.一种用于传送消息的第一设备,包括:
用于向第二设备传送第一消息的装置;
用于接收第二消息的装置;
用于确定所述第二消息是否是所述第一消息的回波的装置;以及
用于当所述第二消息是所述第一消息的回波时向所述第二设备重传所述第一消息的装置。
16.如权利要求15所述的第一设备,其特征在于,所述用于确定所述第二消息是否是所述第一消息的回波的装置被配置成:
标识所述第二消息中的指示所述第二消息的发起方的比特;
当所述比特将所述第一设备指示为所述第二消息的发起方时,确定所述第二消息是所述回波;以及
当所述比特将所述第二设备指示为所述第二消息的发起方时,确定所述第二消息不是所述回波。
17.如权利要求15所述的第一设备,其特征在于,进一步包括用于基于确定所述第二消息是所述回波来确定所述第二设备处于休眠状态的装置。
18.如权利要求17所述的第一设备,其特征在于,所述用于重传所述第一消息的装置被配置成:
在确定所述第二消息是所述回波之后等待预定义的时间量以使所述第二设备苏醒;以及
在所述预定义的时间量已流逝之后向所述第二设备重传所述第一消息。
19.如权利要求17所述的第一设备,其特征在于,所述用于重传所述第一消息的装置被配置成:
在确定所述第二消息是所述回波之后等待从所述第二设备接收苏醒指示;以及
在接收到所述苏醒指示之后向所述第二设备重传所述第一消息。
20.如权利要求19所述的第一设备,其特征在于,所述用于重传所述第一消息的装置被进一步配置成在最大等待时间已流逝之后未接收到所述苏醒指示时向所述第二设备重传所述第一消息。
21.如权利要求17所述的第一设备,其特征在于,所述第一消息至所述第二设备的传输触发所述第二设备处的苏醒操作。
22.一种用于在休眠状态期间检测消息的接收设备,包括:
存储器;以及
处理电路,其被耦合至所述存储器并被配置成:
当所述接收设备进入休眠状态时启用环回开关;
在所述休眠状态期间检测来自传送设备的第一消息;
基于所检测到的第一消息来执行苏醒操作;
经由经启用的环回开关来向所述传送设备传送第二消息,其中所述第二消息是所述第一消息的回波;以及
在所述接收设备苏醒之后接收来自所述传送设备的对所述第一消息的重传。
23.如权利要求22所述的接收设备,其特征在于,所述第二消息包括将所述传送设备指示为所述第二消息的发起方的比特。
24.如权利要求22所述的接收设备,其特征在于,所述处理电路将所述第二消息作为所述第一消息的回波来传送以指示所述接收设备处于所述休眠状态。
25.如权利要求22所述的接收设备,其特征在于,所述苏醒操作包括在所述第二消息被传送之后的预定义时间量内唤醒所述接收设备。
26.如权利要求25所述的接收设备,其特征在于,所述处理电路被配置成在所述预定义时间量已流逝之后接收所述第一消息的所述重传。
27.如权利要求25所述的接收设备,其特征在于,所述苏醒操作包括在所述接收设备苏醒之后向所述传送设备传送苏醒指示。
28.如权利要求27所述的接收设备,其特征在于,所述处理电路被配置成在所述苏醒指示被传送之后接收所述第一消息的所述重传。
CN201680013907.9A 2015-03-06 2016-03-04 用于功率状态无感知接口中的链路状态检测和苏醒的技术 Pending CN107408094A (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201562129697P 2015-03-06 2015-03-06
US62/129,697 2015-03-06
US201662302141P 2016-03-01 2016-03-01
US62/302,141 2016-03-01
US15/060,221 2016-03-03
US15/060,221 US9971666B2 (en) 2015-03-06 2016-03-03 Technique of link state detection and wakeup in power state oblivious interface
PCT/US2016/021047 WO2016144816A1 (en) 2015-03-06 2016-03-04 Technique of link state detection and wakeup in power state oblivious interface

Publications (1)

Publication Number Publication Date
CN107408094A true CN107408094A (zh) 2017-11-28

Family

ID=56849907

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680013907.9A Pending CN107408094A (zh) 2015-03-06 2016-03-04 用于功率状态无感知接口中的链路状态检测和苏醒的技术

Country Status (4)

Country Link
US (1) US9971666B2 (zh)
EP (1) EP3265892A1 (zh)
CN (1) CN107408094A (zh)
WO (1) WO2016144816A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170617A (zh) * 2017-12-01 2018-06-15 广东高云半导体科技股份有限公司 一种i3c设备及通信方法
CN108365923A (zh) * 2018-01-05 2018-08-03 海信集团有限公司 一种数据传输的方法及无线终端设备
CN112292673A (zh) * 2018-06-21 2021-01-29 罗伯特·博世有限公司 I3c从机接口、具有i3c从机接口的集成电路及用于运行i3c从机接口的方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9563398B2 (en) 2015-03-06 2017-02-07 Qualcomm Incorporated Impedance-based flow control for a two-wire interface system with variable frame length
EP3200033B1 (de) * 2016-01-29 2019-07-10 Siemens Aktiengesellschaft Anordnung mit zumindest zwei peripherie-einheiten und mit einem sensor
WO2018000193A1 (zh) * 2016-06-28 2018-01-04 北京小米移动软件有限公司 引脚控制方法及装置
US10079015B1 (en) * 2016-12-06 2018-09-18 Amazon Technologies, Inc. Multi-layer keyword detection
EP3343386B1 (en) * 2016-12-30 2020-02-05 GN Audio A/S Apparatus with inter-communicating processors
US10209755B2 (en) 2017-01-30 2019-02-19 Arm Limited No-operation power state command
DE102017201537B3 (de) * 2017-01-31 2018-06-14 Lenze Automation Gmbh Schaltung zum Erzeugen eines Abtastsignals für eine UART-Schnittstelle und UART-Schnittstelle
US11880314B1 (en) * 2018-07-27 2024-01-23 Dialog Semiconductor B.V. Microcontroller for driving an external device
US11513991B2 (en) * 2020-10-01 2022-11-29 Qualcomm Incorporated Batch operation across an interface
CN116414212B (zh) * 2023-04-13 2024-02-13 海光信息技术股份有限公司 芯粒以及芯粒的控制方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5600656A (en) * 1993-06-10 1997-02-04 Siemens Stromberg-Carlson Remote loopback apparatus and method for telephone line repeaters
DE10340806B3 (de) * 2003-09-04 2005-05-19 Siemens Ag Schnittstelle für ein UART-basiertes Bussystem
US20140355421A1 (en) * 2013-05-31 2014-12-04 Hangzhou H3C Technologies Co., Ltd. Link Aggregation Control Protocol (LACP) Loop Detection

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5944803A (en) 1997-03-25 1999-08-31 Sony Corporation Isolatable multi-point serial communication utilizing a single universal asynchronous receiver and transmitter (UART)
US6020760A (en) 1997-07-16 2000-02-01 Altera Corporation I/O buffer circuit with pin multiplexing
US6728249B2 (en) * 1998-06-27 2004-04-27 Intel Corporation System and method for performing cut-through forwarding in an ATM network supporting LAN emulation
JP2003143044A (ja) 2001-10-31 2003-05-16 Matsushita Electric Ind Co Ltd 2線式電源多重通信システム、そのマスター装置及び2線式電源多重通信方法
FR2845783A1 (fr) 2002-10-15 2004-04-16 St Microelectronics Sa Generateur d'horloge a consigne decimale et application d'un tel generateur d'horloge a un circuit uart
KR100665457B1 (ko) * 2003-04-30 2007-01-04 삼성전자주식회사 광대역 무선 접속 통신 시스템에서 슬립 모드 및 어웨이크 모드에서의 상태 천이 제어 시스템 및 방법
US20050076140A1 (en) * 2003-09-24 2005-04-07 Hei Tao Fung [topology loop detection mechanism]
JP4293964B2 (ja) * 2004-09-29 2009-07-08 富士通株式会社 ループ接続検出方法及び装置
US20060285499A1 (en) * 2005-06-17 2006-12-21 Broadcom Corporation Loop detection for a network device
TW200701707A (en) * 2005-06-22 2007-01-01 Mitac Technology Corp System and method for switching internet connection settings according to internet environment
US7539888B2 (en) 2006-03-31 2009-05-26 Freescale Semiconductor, Inc. Message buffer for a receiver apparatus on a communications bus
US8085676B2 (en) * 2006-06-29 2011-12-27 Nortel Networks Limited Method and system for looping back traffic in QIQ ethernet rings and 1:1 protected PBT trunks
JP5065941B2 (ja) * 2008-02-29 2012-11-07 アラクサラネットワークス株式会社 スイッチ装置およびネットワークシステム
CN101287221A (zh) 2008-06-13 2008-10-15 中兴通讯股份有限公司 智能双模手机及其无线调制解调器之间的信息传递方法
US8201005B2 (en) 2009-03-17 2012-06-12 Intel Corporation Negotiating a transmit wake time
EP2330514B1 (en) 2009-12-07 2018-12-05 STMicroelectronics (Research & Development) Limited An integrated circuit package
US9092393B2 (en) 2011-03-11 2015-07-28 Skyworks Solutions, Inc. Dual mode serial/parallel interface and use thereof in improved wireless devices and switching components
US9007958B2 (en) * 2011-06-29 2015-04-14 Brocade Communication Systems, Inc. External loop detection for an ethernet fabric switch
CN102388644A (zh) * 2011-09-30 2012-03-21 华为技术有限公司 检测睡眠小区的方法和系统
US9129072B2 (en) 2012-10-15 2015-09-08 Qualcomm Incorporated Virtual GPIO
TW201431320A (zh) * 2013-01-24 2014-08-01 Accton Technology Corp 迴路偵測的方法及網路裝置
US9722916B2 (en) * 2013-09-30 2017-08-01 Cisco Technology, Inc. Data-plane driven fast protection mechanism for MPLS pseudowire services
CN103888873B (zh) 2014-03-04 2017-06-16 苏州佳世达电通有限公司 电子装置、uart输出系统及方法
US9619427B2 (en) 2014-04-21 2017-04-11 Qualcomm Incorporated Hybrid virtual GPIO
JP6388434B2 (ja) * 2014-07-18 2018-09-12 アライドテレシスホールディングス株式会社 ネットワーク機器、通信方法、プログラム、記録媒体
US9660896B2 (en) * 2014-09-04 2017-05-23 Accedian Networks Inc. System and method for loopback and network loop detection and analysis
US9880965B2 (en) 2014-09-11 2018-01-30 Qualcomm Incorporated Variable frame length virtual GPIO with a modified UART interface
US9563398B2 (en) 2015-03-06 2017-02-07 Qualcomm Incorporated Impedance-based flow control for a two-wire interface system with variable frame length

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5600656A (en) * 1993-06-10 1997-02-04 Siemens Stromberg-Carlson Remote loopback apparatus and method for telephone line repeaters
DE10340806B3 (de) * 2003-09-04 2005-05-19 Siemens Ag Schnittstelle für ein UART-basiertes Bussystem
US20140355421A1 (en) * 2013-05-31 2014-12-04 Hangzhou H3C Technologies Co., Ltd. Link Aggregation Control Protocol (LACP) Loop Detection
CN104219075A (zh) * 2013-05-31 2014-12-17 杭州华三通信技术有限公司 一种基于开放流协议的lacp环路检测方法和装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170617A (zh) * 2017-12-01 2018-06-15 广东高云半导体科技股份有限公司 一种i3c设备及通信方法
CN108170617B (zh) * 2017-12-01 2019-12-13 广东高云半导体科技股份有限公司 一种i3c设备及通信方法
CN108365923A (zh) * 2018-01-05 2018-08-03 海信集团有限公司 一种数据传输的方法及无线终端设备
CN108365923B (zh) * 2018-01-05 2020-07-10 海信集团有限公司 一种数据传输的方法及无线终端设备
CN112292673A (zh) * 2018-06-21 2021-01-29 罗伯特·博世有限公司 I3c从机接口、具有i3c从机接口的集成电路及用于运行i3c从机接口的方法

Also Published As

Publication number Publication date
EP3265892A1 (en) 2018-01-10
US20160259702A1 (en) 2016-09-08
US9971666B2 (en) 2018-05-15
WO2016144816A1 (en) 2016-09-15

Similar Documents

Publication Publication Date Title
CN107408094A (zh) 用于功率状态无感知接口中的链路状态检测和苏醒的技术
CN105283862B (zh) 用于数据通信的方法和装置
CN107430571A (zh) 针对具有可变帧长的双导线接口系统的基于阻抗的流控制
US10339093B2 (en) USB interface using repeaters with guest protocol support
KR101497001B1 (ko) 그래픽스 멀티미디어 ic 및 그것의 동작 방법
CN105683936B (zh) 具有多个从设备标识符的相机控制从设备
US9396151B2 (en) PCI express tunneling over a multi-protocol I/O interconnect
CN104322033B (zh) 使用第二协议的扩展功能结构来控制第一协议的物理链路
CN101911000B (zh) 用于连接电子装置的控制总线
CN107209739A (zh) 电压模式和电流模式设备枚举
CN108885602A (zh) 多协议i3c共用命令码
CN105700732B (zh) 用于传输触摸传感器信息的装置、系统和方法
CN108351852A (zh) 通用串行总线(usb)type-c电缆上的增强型通信
CN108027791A (zh) 多节点网络中的输入/输出信号桥接和虚拟化
CN106255964A (zh) 传感器全局总线
CN106462528A (zh) Usb功率传输源装置的功率节约模式
CN106462516A (zh) 由多协议设备共享的可动态地调节的多线总线
CN104350720B (zh) 提供用于双向串行互连的串行协议的装置、方法和系统
CN106415518A (zh) 具有带内中断的相机控制接口扩展
CN106687942A (zh) 具有经修改uart接口的可变帧长度虚拟gpio
CN107209743A (zh) 串行总线的接收时钟校准
JP2006024217A (ja) 複数の機能デバイスで単一のホスト・コントローラを共有すること
CN106233273A (zh) 混合虚拟gpio
CN104380274B (zh) 用于优化的链路训练及管理的装置和方法
CN109344098A (zh) 主从设备间的数据操作方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20171128

WD01 Invention patent application deemed withdrawn after publication