CN108604219A - 具有最优传输等待时间的串行通信链路 - Google Patents
具有最优传输等待时间的串行通信链路 Download PDFInfo
- Publication number
- CN108604219A CN108604219A CN201780010219.1A CN201780010219A CN108604219A CN 108604219 A CN108604219 A CN 108604219A CN 201780010219 A CN201780010219 A CN 201780010219A CN 108604219 A CN108604219 A CN 108604219A
- Authority
- CN
- China
- Prior art keywords
- signal
- frame
- gpio
- serially
- fsm
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/126—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4009—Coupling between buses with data restructuring
- G06F13/4018—Coupling between buses with data restructuring with data-width conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System 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
- G06F15/7817—Specially adapted for signal processing, e.g. Harvard architectures
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)
- Microelectronics & Electronic Packaging (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Information Transfer Systems (AREA)
Abstract
串行接口被提供有有限状态机,该有限状态机被配置成将多个信号的当前状态与先前状态进行比较,以确定传送包括该多个信号的帧还是传送仅包括这些信号中的一个经改变信号的比特位置的帧。
Description
L·J·米什拉和R·韦斯特费尔特
相关申请的交叉引用
本申请要求于2016年2月10日提交的美国申请No.15/040,271的优先权。
技术领域
本申请涉及串行通信,并且尤其涉及具有最优传输等待时间的串行通信链路。
背景
串行通信接口是用于诸如片上系统(SoC)之类的集成电路处理器的常见元件。SoC必须服务不断增长的功能集合,诸如网页浏览、电子邮件、视频游戏等。在执行这些功能期间与其各种外围设备对接要求特定数目的引脚或端子。将每个输入/输出信号指派给其自己的唯一引脚将是方便的,但是增大集成电路的引脚数目增大了其成本。此外,即使成本不是问题,集成电路也仅能在其表面上安装如此多的引脚。
为了限制所要求的引脚数目,常规SoC通常包括具有一个或多个串行通信接口,诸如通用异步接收机发射机(UART)接口、集成电路间(I2C或I3C)接口、或串行外围接口(SPI)。随后,可以将多个信号串行化并且通过对应的串行接口来传送该多个信号,该对应的串行接口具有由各种经串行化的信号共享的单个数据引脚(或多个数据引脚)。
尽管串行接口因此是有利的,但是信号的串行化固有地引入了等待时间。例如,如果1比特信号具有其自己的诸如用于通用输入输出(GPIO)信号的唯一引脚,则可以响应于系统时钟的单个循环来传送结果得到的1比特GPIO信号。但是,如果将该1比特GPIO信号与其他GPIO信号串行化成帧(诸如虚拟GPIO接口中的8比特帧),则将花费8个时钟循环来传送结果得到的帧(假定关于时钟边沿的单数据率)。因此,与常规GPIO传输相比,虚拟GPIO系统中的串行传输将花费8倍的时间来传送GPIO信号。在时间敏感的应用(诸如用于无线电前端控制的应用)中,结果得到的等待时间可能是关键的。
相应地,在本领域中存在对于减少串行接口固有的等待时间的需要。
概述
公开了一种串行接口,其将多个信号串行化成帧,其中每个信号在该帧中具有其自己的唯一性位置。例如,8比特帧可被认为从第一比特到第八比特地安排。通过第一比特的二进制值来定义第一信号、通过第二比特的二进制值来定义第二信号、并且依此类推,以使得可以通过信号在所接收到的帧中的位置来标识该帧中的信号。在替换实施例中,这些信号中的一者或多者可以包括多比特信号。但是,这种多比特信号也被指派给帧内的唯一性位置。
为了优化该帧的结果得到的串行传输的等待时间,该串行接口包括逻辑电路(诸如处理器或状态机),该逻辑电路被配置成将当前帧与前一帧进行比较,以确定与前一帧相比当前帧内已经改变其二进制状态的信号的数目。如果经改变信号的数目足够小,则串行接口可以传送在本文中表示为“比特模式”帧的帧,其中有效载荷仅标识(诸)经改变信号的比特位置并且还标识经改变信号的二进制值。未经改变的比特不在比特模式帧中传送。例如,可以用三个比特来标识一字节长的帧中的给定信号的比特位置。如果仅一个比特已经变化,则对应的串行接口可以因此传送具有三个比特位置比特的有效载荷的比特位置帧,以标识经改变信号以及还标识经改变信号的比特值,从而该有效载荷是四个比特。相反,全字节传输(本文中被指定为全批量模式)要求8个比特。因此,与全批量模式帧的传输相比,比特模式帧的传输减少了等待时间。相反,如果与前一帧相比,当前帧中的足够数目的信号已经改变了状态,则它不再节省用于传送比特模式帧的等待时间,从而传送全批量模式帧而不是比特模式。通过取决于当前帧中经改变比特的数目而在各帧类型之间动态地切换,本文公开的串行接口减少了结果得到的串行传输的等待时间。
附图简述
图1是根据本公开的实施例的包括无时钟虚拟GPIO接口的系统的框图。
图2是其中处理器包括用于与两个远程处理器进行通信的一对无时钟虚拟GPIO接口的虚拟GPIO架构的高级框图。
图3是图1的无时钟虚拟GPIO接口中的有限状态机的框图。
图4解说了图3的有限状态机内的逻辑电路。
图5是解说对于传输八个1比特信号而言,与批量模式帧相比,比特模式帧的等待时间改进的概念图。
图6解说了用于传输16比特信号的批量模式帧、字节模式帧、以及比特模式帧。
图7是用于优化串行传输的等待时间的示例方法的流程图。
图8解说了纳入图1的SoC和远程处理器的系统。
本公开的各实施例及其优点通过参考以下详细描述而被最好地理解。应当领会,相同参考标记被用来标识在一个或多个附图中所解说的相同元件。
详细描述
公开了一种串行接口,其将多个信号串行化成帧,其中每个信号在该帧中具有其自己的唯一性位置。例如,8比特帧可被认为是从第一比特到第八比特地安排的。通过第一比特的二进制值来定义第一信号、通过第二比特的二进制值来定义第二信号、并且依此类推,以使得可以通过信号在所接收到的帧中的位置来标识该帧中的信号。在替换实施例中,信号中的一者或多者可包括多比特信号。但是,这种多比特信号也被指派给帧内的唯一性位置。
给定帧内的这种唯一性位置,接收机可以通过其唯一性位置来标识该帧内的给定信号。例如,帧中的第一比特可以被指派给第一个1比特信号。类似地,帧中的第二比特可以被指派给第二个1比特信号,并且依此类推,以使得帧中的第n比特可以被指派给第n个1比特信号,其中n是正整数。将这种唯一性位置扩展成多比特信号是类似的。例如,可以将8比特信号指派给帧的第一个字节,并且依此类推。给定通过信号在帧内的位置来标识信号,可以容易地修改以实践本文所公开的等待时间减少的串行接口是虚拟通用输入输出(GPIO)接口,诸如在于2014年11月13日提交的共同转让的美国申请No.14/540,366(“366申请”)中所公开的GPIO接口,其内容通过援引来纳入。然而,任何串行接口(诸如在通用异步接收机发射机(UART)接口、外围组件接口(PCI)、以及集成电路间(I2C)接口中实践的串行接口)以唯一次序来传送串行数据。因此,以下讨论将不失一般性地涉及虚拟GPIO(VGI)实施例,因为将领会,可以如本文所讨论的那样修改任何串行接口以实践等待时间减少。
具有VGI接口的集成电路使用一对引脚,就如同它们构成更大量的多个GPIO引脚那样。该架构被视为是虚拟的,因为系统级应用通过该架构内的虚拟GPIO接口将用于传输的信号创建为虚拟GPIO信号,这就如同那些虚拟GPIO信号正在常规GPIO引脚上传送和接收那样。因此,具有VGI接口的片上系统(SOC)或处理器在常规GPIO信号与虚拟GPIO信号之间不经历功能性差异。这是有利的,因为处理器不需要新的配置或编程来与VGI接口一起起作用。然而,VGI接口仅使用两个引脚来传送和接收虚拟GPIO信号,如果该虚拟GPIO信号取而代之是作为常规GPIO信号来传送的,则每个虚拟GPIO信号将原本各自需要它们自己的专用GPIO引脚。
将关于容适诸如应用处理器与调制解调器处理器之间的处理器间通信(IPC)来讨论该架构。然而,将领会,本文中所公开的VGI接口广泛应用于要求GPIO能力的其他SoC或专用集成电路(ASIC)。此外,可以有利地修改用于控制无线电前端的串行接口以实践本文所公开的等待时间减少。
VGI接口使得传送方节点的健康对于接收方节点来说是透明的。这是重要的优势,在软件实现的调试阶段期间尤其如此,因为其向接收方处理器指示了传送方处理器变为不操作的时间。
为了实现此类稳健的虚拟GPIO能力,传送方和接收方集成电路中的每个处理器通过耦合到传送线的专用传送引脚和耦合到接收线的专用接收引脚来通信。用于传送方集成电路的传送线变成用于接收方集成电路的接收线。虚拟GPIO信号可以被划分为用于在该传送线上进行传送的传送集和用于在该接收线上进行接收的接收集。如果信令是对称的,则在每个处理器的传送集和接收集中的信号数目相同。然而,本文所公开的虚拟GPIO架构能够容适不对称信令,其中一个处理器的虚拟GPIO信号的传送集与相同处理器的接收集的大小不同。
在一个实施例中,传送方和接收方VGI接口可各自接收外部时钟信号,以同步VGI帧的传送和接收。但是外部时钟的接收要求一时钟引脚。为了消除对于时钟引脚的需要,每个VGI接口可包括过采样时钟,诸如如在UART接口中使用的16倍(16×)过采样时钟。在替换实施例中,每个集成电路将其虚拟GPIO信号的传送集脉宽调制成数据帧,以供传输到另一集成电路。数据帧中的每个比特对应于信号传送集中的1比特。对脉宽调制的控制可以由有限状态机(FSM)执行。数据帧中的每个所传送比特在比特时段内由传送线上的电压脉冲表示。第一脉宽表示用于所传送比特的一个二进制值,而第二脉宽表示用于所传送比特的另一二进制值。例如,一个脉宽可以大于比特时段的50%(该比特时段的大部分)。类似地,其余的第二脉宽可以小于比特时段的50%(该比特时段的小部分)。
为了执行脉宽调制,每个FSM可包括振荡器(诸如环形振荡器)或者与振荡器相关联、以及用于对该振荡器的振荡进行计数的一个或多个计数器。在比特时段的开始处,计数器在对传送引脚/传送线施以脉冲之前开始计算振荡次数。取决于用于所传送脉冲的脉宽,计数器计数到第一计数或者大于第一计数的第二计数。在完成所选计数(其取决于所传送比特的二进制值)之际,FSM对传送线施以脉冲。例如,每个处理器可被配置成在空闲(没有要传送的数据帧)时使其传送线弱充电至电源电压VDD。随后,在这样的实施例中,使传送线放电将指示所传送比特的开始。更一般地,每个传送线将保持在某个默认电压状态中,其可以被称为第一二进制电压。随后,通过使传送线充电(或放电)到第二二进制电压来标识所传送比特的开始取决于传送集中对应比特的二进制值,FSM随后将传送线保持在第二二进制电压达大部分比特时段或小部分比特时段。具体而言,如果传送集中的对应比特具有第一二进制值,则计数器计数到第一计数。相反,如果传送集中的对应比特具有相反的第二二进制值,则计数器计数到第二计数。
在一个实施例中,第二二进制值是逻辑0,而第一二进制值是逻辑1。类似地,第一二进制电压可以等于电源电压VDD,而第二二进制电压可以等于接地。在这样的实施例中,FSM随后串行地检查传送集中的每个比特并且基于它们的二进制值,针对每个比特用相对较宽的脉冲或相对较窄的脉冲来对传送线施以脉冲。随后,接收方FSM可以通过确定脉宽来解调所接收到的数据帧。可以通过对接收线放电时发生的振荡次数相对于接收线被施以脉冲到电源电压VDD时发生的振荡次数进行计数来在逐比特的基础上执行该确定。
给定针对从一个处理器发送到另一处理器的每个数据帧结果得到的脉宽调制和解调,集成电路不需要公共时钟,从而使得来自一个集成电路的数据帧的传输关于其远程集成电路处的接收完全异步。由于不需要公共时钟,因此在每个集成电路中不需要用于接收公共时钟的时钟引脚。随后,这释放了可能原本为公共时钟保留的引脚以用于其他用途。这些有利的特征可通过以下对示例实施例的讨论来更好地领会。
现在转到附图,图1解说了包括应用处理器100和调制解调器处理器105的VGI架构101。然而,将领会,可以在架构101内使用其他类型的处理器。用于在传送引脚111a上从应用处理器100传送虚拟GPIO信号作为IPC信号的传送线110a也是调制解调器处理器105处的用于在接收引脚111b上接收这些信号的接收线。类似地,调制解调器处理器105的用于将其IPC信号作为虚拟GPIO信号来传送的传送线110b也是应用处理器100的接收线。这些线可被携带在集成电路之间的电路板上,如由虚线150所指示的。每个处理器包括传送引脚或焊盘(未解说)以耦合到其传送线。类似地,每个处理器包括接收引脚或焊盘(未解说)以耦合到其接收线。每个处理器中的有限状态机(FSM)115控制使用这些专用线和引脚来对虚拟GPIO信号进行传输和接收。
如在GPIO领域中已知的,每个处理器包括在其上与GPIO引脚对接的GPIO接口103。有利地,关于虚拟GPIO架构101中的对应处理器,GPIO接口103可以不改变。换句话说,每个处理器以常规方式通过其GPIO接口103接收和传送信号,从而虚拟GPIO架构101对于处理器100和105而言是透明的。通过每个GPIO接口103处理的信号的特定部分可以在常规GPIO引脚125上作为GPIO信号130来传送和接收。但是,通过GPIO接口103处理的信号的其余部分并不通过常规GPIO引脚或焊盘125来传送或接收。替代地,通过GPIO接口103处理的信号的该其余部分包括多个虚拟GPIO信号135,该多个虚拟GPIO信号135在专用传送引脚(或焊盘)111a上从FSM 115传送并且在专用接收引脚(或焊盘)111b上接收。在GPIO接口103处从对应处理器接收的作为常规GPIO信号130处理的信号的一部分可在本文中被标示为第一信号集。类似地,在GPIO接口103处从对应处理器接收的作为虚拟GPIO信号135处理的信号的其余部分可在本文中被标示为第二信号集。与常规GPIO信号130相比,每个虚拟GPIO信号135不具有其自己的专用引脚,但是取而代之在引脚111a和111b上与其余虚拟GPIO信号135复用。这十分有利,因为每个处理器核不要求对其GPIO接口103的改组,而虚拟GPIO架构101达成了与其中虚拟GPIO信号135将各自要求其自身引脚的常规GPIO实施例相比而言显著的引脚减少。
诸如处理器100或调制解调器105之类的集成电路可以仅包括一个FSM 115或者可以包括用于与多个外部系统对接的多个这些元件。例如,图2示出了分别通过两个FSM 115A和115B来与两个调制解调器处理器225和230对接的应用处理器220。处理器220中的每个FSM 115A和115B容适与各调制解调器处理器中的对应一者的虚拟GPIO信令。就此而言,诸如SOC之类的集成电路可被配置有容适与各种外部处理器的虚拟GPIO信令所必需的那样多的FSM。
不管处理器可具有的FSM数目是多少,如关于图1所讨论的,每个FSM使用其自己的专用传送引脚111a和专用接收引脚111b进行通信。因为虚拟GPIO信号135使用有限状态机(诸如FSM 115)来容适,所以处理器核可以休眠或处于其他类型的睡眠状态,但是能够接收虚拟GPIO信号135。以这种方式,虚拟GPIO架构101不仅有利地节约了每个GPIO接口103的引脚的数目,而且还是低功率的。
如本文中所使用的,“引脚”是通用术语,涵盖了集成电路用于耦合到电路板上导线或者其他物理互连(例如,封装互连或者穿孔式通孔互连)的结构(诸如焊盘或实体引脚)。例如,如果每个集成电路具有十六个GPIO引脚125,那么这些引脚可以配置成容适八个对称GPIO信号130(为了解说清楚起见,图1中仅示出了四个常规GPIO信号#1到#4)或者十六个不对称GPIO信号130。另外,每个集成电路可以使用其传送引脚111a和接收引脚111b来容适多个(n个)虚拟GPIO信号135的输入/输出对接,其中n是任意复数整数。对于每个处理器核而言,GPIO信号130与虚拟GPIO信号135之间没有差异:它们两者均简单地是按需通过GPIO接口103来传送和接收的信号。然而,与常规GPIO信号130形成对比的是,因为虚拟GPIO信号135没有专用引脚,所以虚拟GPIO信号135在FSM 115中被串行化以用于在线110a和110b上传输。在接收之际,每个FSM 115就将接收到的经串行化的虚拟GPIO信号解串行化。由此,每个FSM 115用作关于虚拟GPIO信号135的串行器/解串行器。
为了标识如从远程处理器传送来的收到虚拟GPIO信号135的存在,每个处理器可被配置成响应于虚拟GPIO信号135中所选信号的变化来接收中断信号。为了提供中断,调制解调器功率管理器(MPM)140监视如通过中断(INT_configuration(INT_配置))寄存器145编程的所选虚拟GPIO信号。如果MPM 140看到所监视的信号变化,则它相应地向其处理器传送中断。关于传输,每个FSM 115通过其处理器的与对应的GPIO接口103的对接来将由其处理器产生的虚拟GPIO信号135调制成在传送线110a上传送的脉宽调制信号。类似地,每个FSM 115在其接收线110b上从远程处理器接收脉宽调制信号。该脉冲传输是相当有利的,因为它实现了处理器100与105之间的异步传输(没有公共时钟),如将在本文中进一步解释。
图3是FSM 115的框图以更好地解说其传送和接收操作。FSM 115通过复用模块300从其GPIO接口103(在图1中示出)接收虚拟GPIO信号传送集。该虚拟GPIO信号传送集原本将常规地作为关于图1讨论的普通GPIO信号130来传送,但是取而代之由GPIO接口103标识为虚拟GPIO信号135并且相应地通过FSM 115来处理。FSM 115包括逻辑电路301,该逻辑电路301在与传送集的先前状态相比传送集中已经存在变化的情况下将授权在传送线110a上作为脉宽调制信号来传送虚拟GPIO信号传送集。用这种方式,不需要重传相比于先前传送而言未改变状态的传送集。逻辑电路301由此比较虚拟GPIO信号的当前传送集和存储在锁存器或配置寄存器107中的先前传送集。为了执行该比较,逻辑电路301可包括异或门310,该异或门将当前传送集与存储在配置寄存器107中的先前传送集(该先前传送集可以指定为如图2中所示的“上一GPIO状态”)进行异或。复用模块300将该当前传送集并行加载到并入串出(PISO)移位寄存器315中。如果来自异或门310的使能信号320走高(指示当前传送集与存储在寄存器107中的传送集之间有变化),则PISO移位寄存器315随后被启用以响应于移位信号120而串行地将其内容移出到传送线110a上。
来自图1的虚拟GPIO信号135的每个传送集包括存储在PISO移位寄存器315中的数据帧。FSM 115包括脉宽调制器355,该脉宽调制器355将从PISO移位寄存器315移出的比特传送集脉宽调制成在传送线110a上被驱动到远程处理器的经脉宽调制的输出信号。该调制响应于对来自振荡器的振荡循环的计数,诸如来自发射环形振荡器(RO)361的发射环形振荡器输出信号350的计数。调制器355和发射环形振荡器350可以通过从异或门310断言使能信号320来被触发。响应于该触发,调制器355选通移位信号120,从而PISO移位寄存器315将虚拟GPIO信号传送集的初始比特移位到调制器355。
调制器355包括对环形振荡器输出信号360中的循环进行计数的至少一个计数器(未解说)。取决于来自脉宽调制的期望脉宽,计数器计数到第一计数或者计数到大于第一计数的第二计数。在对足够数目的循环进行计数以满足第一和第二计数中的恰适一者之后,计数器重新选通移位信号120,从而来自存储在PISO移位寄存器315中的数据帧的后续比特被移入调制器355中。用这种方式,作为数据帧存储在PISO移位寄存器315中的虚拟GPIO信号135的传送集一次一比特地移入到调制器355中。取决于被移出PISO移位寄存器315的每一比特的二进制值,脉宽调制器355对在传送线110a上传送的对应脉冲进行脉宽调制。就此而言,处理器100可被配置成在默认状态(没有数据传送)期间将传送线110a弱充电拉高至电源电压VDD。
FSM 115还使用串入并出(SIPO)移位寄存器325以类似的方式将虚拟GPIO信号135的接收集解串行化。解调器370解调来自远程处理器的、如在接收线110b上接收的所接收到的经脉宽调制的信号。解调器370被配置成诸如通过检测接收线110b的放电来从所接收到的经脉宽调制的信号检测收到数据帧的开始,以触发接收环形振荡器375开始使接收环形振荡器输出信号380振荡。注意,在替换实施例中,环形振荡器350和380可包括相同的振荡器。类似于调制器355,解调器370可包括计数器(未解说),诸如低计数器和高计数器。在每个比特时段中,低计数器在接收线110b被放电时被触发以进行计数。相反,高计数器在接收线110b被充电到电源电压VDD时被触发以进行计数。在替换实施例中,单个公共计数器可以对接收线110b的每个二进制电压状态中的振荡次数进行计数。通过比较低计数和高计数,解调器370可以相应地形成经解调数据信号382。具体而言,如果在给定的比特时段中高计数大于低计数,则解调器370可以将经解调数据信号382驱动拉高至电源电压VDD以表示相对较宽的脉冲被接收到。相反,如果低计数更大,则解调器370可以将经解调数据信号382放电至VSS以表示相对较窄的脉冲被接收到。
解调器370还可以在来自比特时段边界的计数的检测之际将移位信号381断言到SIPO移位寄存器325中。SIPO移位寄存器325随后将从解调器370移入经解调数据信号382。SIPO移位寄存器325可以响应于输出锁存选通信号390而与输出锁存器351并行地提供完整的虚拟GPIO数据帧。FSM模块115可被配置成处理用于虚拟GPIO信号的传送集和接收集的预定义数据帧大小——例如,每个集可包括多个(n个)虚拟GPIO信号。该n个虚拟GPIO信号在帧中关于起始比特和停止比特来传送和接收。FSM 115易于编程以针对给定设计的需要来更改该预定义集大小。起始比特是数据帧中的初始比特。停止比特是数据帧中的最后比特,并且可以跟随有比特时段的附加放电部分。因此,响应于检测到停止比特已经被移位到SIPO移位寄存器325中而可以断言输出锁存选通信号390。存储在输出锁存器351中的结果得到的虚拟GPIO数据帧可被并行地呈现给复用模块300,以使得它可被转移到GPIO接口103(图1)。关于脉宽调制的附加细节在‘366申请中讨论。
无论使用外部时钟还是过采样时钟,或者如关于图3所讨论的脉宽调制方案,都要注意在专用传送引脚110a上传送的常规GPIO信号与VGI信号之间的差异。具体而言,常规GPIO信号通过其在常规GPIO引脚125中对应一者上的接收来标识。相反,FSM 115通过VGI信号在VGI帧中的位置来标识该VGI帧中的VGI信号。例如,如果VGI帧的有效载荷大小是从第一比特到最后比特安排的8个比特,则在VGI帧有效负载中将存在8个不同的比特位置。传送方和接收方FSM 115两者可由此被配置有哪些比特位置对应于哪些VGI信号的信息。给定通过VGI信号在帧内的位置来标识VGI信号,可以容易地实现以下等待时间减少技术。
FSM 115可以如图4中所示出的那样被配置成包括传输方案决定逻辑电路400和分组创建逻辑电路405,它们一起被配置成通过选择恰适的帧类型(诸如批量模式帧或比特模式帧)来减少等待时间。将领会,类似的FSM可以在任何合适的串行接口(诸如以上提及的UART、PCI、以及I2C接口)中实现。诸如寄存器之类的存储器410存储先前传送的帧。例如,存储器410可以耦合到复用模块300,以接收当前帧的有效载荷。该有效载荷被存储在存储器410中,并且在后续有效载荷准备好作为后续当前帧来从复用模块300传送时变成后续有效载荷。传输方案决定逻辑电路400被配置成将从复用模块300接收到的当前有效载荷与从存储器410接收到的先前有效载荷进行比较,以确定经改变比特的数目。基于来自传输方案决定逻辑电路400的决定,分组创建电路405基于由传输方案决定逻辑电路400选择的恰适的帧类型来形成分组(帧)。分组创建电路405可以将报头附加到结果得到的帧以标识帧类型。随后,I/O传输电路415(例如,图3的PISO移位寄存器315)可以在传送引脚110a上传送所选分组。
对于其中有效载荷大小是从VGI信号Q0到比特Q7安排的8比特的实施例,可以参考图5来更好地理解由传输方案决定逻辑电路400执行的逻辑。每个信号在帧中具有其自己的对应比特位置。在先前的有效载荷500中,信号Q7、Q3、Q2、以及Q0都是二进制1,而信号Q6、Q5、Q4、以及Q1是二进制0。除了改变成二进制1的信号Q6之外,这些值在当前有效载荷505中保持不变。如果传输方案决定逻辑电路400(图4)选择在批量模式帧510中传送当前有效载荷505,则所有比特Q7至Q0在它们相应的比特位置中传送。批量模式帧510包括报头520(其也可以被指定为标志),该报头520通过二进制值0将批量模式帧510标识为批量模式帧。批量模式帧510中的每个比特需要供其传输的一定时间量,其可被表示为比特时段。因此,批量模式帧510的串行传输将需要9个比特时段来容适所有信号Q7至Q0以及报头520。
传输方案决定逻辑电路400将先前有效载荷500与当前有效载荷505进行比较,以确定经改变信号的数目。在有效载荷500和505之间,仅信号Q6已经变化(从有效载荷500中的二进制0变化到有效载荷505中的二进制1)。因此,传输方案决定逻辑电路400取而代之选择比特模式帧515将减少等待时间,该比特模式帧515仅通过经改变信号(在这种情形中为信号Q6)的比特位置的地址525来标识该经改变信号的比特位置以及标识该经改变信号的二进制值530。比特模式帧515的报头520通过具有二进制值1来将该比特模式帧515标识为比特模式帧类型。将领会,在替换实施例中,用于批量模式帧510与比特模式帧515的恰适报头的实际二进制值(以及比特数目)可以变化。
对于用于标识关于8个比特Q0到Q7的比特位置的地址525而言,使用3个地址比特。报头520和二进制值530各自为1比特,因此比特模式帧515的串行传输的比特时段总数为5。因此,由传输方案决定逻辑电路400选择比特模式帧515而不选择批量模式帧510将使用于有效载荷的串行传输的等待时间减少3个比特时段(等待时间减少37.5%)。接收方FSM 115(图4)被配置成分析报头520以标识帧类型。如果标识了比特模式帧类型,则接收方FSM 115将未经改变信号指派为具有与存储在存储器410中的值相同的值。随后,可以向复用模块300(图3)加载未经改变信号和经改变信号530,以使得可以将结果得到的有效载荷作为虚拟GPIO信号的当前有效载荷来呈现给图1的GPIO接口103。在替换实施例中,可以从比特模式帧515中省略二进制值530以进一步减少等待时间,因为接收方FSM可以简单地反转由地址525标识的信号的存储值以恢复二进制值530。
注意,由传输方案决定逻辑电路400关于经改变信号530的数目所使用的阈值将取决于有效载荷大小。在诸如图5中所示出的字节有效载荷实施例中,如果改变了两个比特,则比特模式帧类型将不减少等待时间,因为每个经改变比特需要3个地址比特来标识其比特位置,并且潜在地需要另一比特来标识经改变的二进制值。因此,传输方案决定逻辑电路400可以在字节有效载荷实施例中被配置成:如果在当前有效载荷505中已经改变了不止一个比特,则选择批量模式帧类型。但是如果有效载荷大小增大,则该阈值变化。例如,图6中示出了两个字节的有效载荷600。给定有效载荷600的经增大大小,除了批量模式和比特模式帧类型之外,还引入另一帧类型,其被表示为字节模式帧类型。为了标识这三种不同的帧类型,报头605可包括两个比特。全批量模式610包括整个有效载荷600。对于有效载荷600的组合,全批量模式610因此需要18个比特时段以用于其串行传输,以使得与16个比特时段的原始有效载荷等待时间相比的等待时间减少是-12.5%。如果有效载荷600中的每个字节均具有一个或多个经改变比特,则优选全批量模式610。如果各字节中只有一个字节已经变化并且该变化大于1比特,则优选其中经改变字节以字节传输模式来传送的字节模式帧615。字节模式帧615包括字节号标志635,以标识正在完整地传送哪个字节。接收方FSM 115(图4)随后将未经改变字节指派成具有该字节的存储在存储器410中的值。字节模式帧615将11个比特时段用于其串行传输,以使得关于有效载荷600的等待时间减少是31.25%。最后,如果有效载荷600中的各字节中的一个字节中仅1个比特已经变化,则优选比特模式帧620。为了标识双字节有效载荷中的比特位置,使用4个地址比特625。经改变比特的二进制值630是可任选的,因为可以简单地反转存储器410中对应比特位置处的所存储的值,以恢复二进制值630,如类似地关于比特模式帧515所讨论的。字节模式帧615可以通过相应地修改字节号635来容易地扩展成较大的有效载荷。
现在将关于图7中示出的流程图来讨论一种FSM(诸如FSM 115)的操作方法。该方法包括用于安排在有效载荷中以使得每个信号在该有效载荷中具有对应比特位置的多个信号的动作700。这种有效载荷的示例包括图5的有效载荷500和505以及图6的有效载荷600。动作700包括响应于确定自从第一帧传输以来仅信号中的一个经改变信号已经改变状态而串行地传送第一帧,该第一帧标识有效载荷中的信号中的该经改变信号的比特位置,其中第一帧不包括该有效载荷中的该多个信号中的未经改变的其余信号。以上关于图5的比特模式帧515或图6的比特模式帧620讨论了这种第一帧传输的示例。
另外,该方法包括动作705,该动作705在第二帧传输之后发生并且包括响应于确定自从第一帧传输以来信号中的不止一个信号已经改变状态而传送包括该有效载荷中的该多个信号的第二帧。以上关于图5的批量模式帧510或图6的批量模式帧610讨论了第二帧传输的示例。
图8中示出了示例系统800,其中片上系统(SOC)805被配置有FSM(未解说),诸如以上所讨论的用于优化与多个外围设备810的串行通信的等待时间的FSM 115。每个外围设备810因此还包括对应的FSM。SOC 805与每个外围设备810之间的对应双导线链路为了简明起见也未示出,但包含在系统总线815内。系统800可包括蜂窝电话、智能电话、个人数字助理、平板计算机、膝上型计算机、数码相机、手持式游戏设备、或其他合适设备。除了与外围设备810进行通信之外,SoC 805还通过系统总线815与存储器(诸如DRAM 820)和显示控制器825通信。显示器控制器830进而耦合到驱动显示器835的视频处理器930。
尽管前述讨论涉及VGI实施例,但是将领会,FSM 115可以被容易地修改成实现所公开的用于任何合适的串行接口(诸如UART、PCI、I2C等)的等待时间减少。如本领域普通技术人员至此将领会的并取决于手头的具体应用,可以因此在本公开的设备的材料、装置、配置和使用方法上做出许多修改、替换和变动而不会脱离本公开的范围。有鉴于此,本公开的范围不应当被限定于本文所解说和描述的特定实施例(因为其仅是作为本公开的一些示例),而应当与所附权利要求及其功能等同方案完全相当。
Claims (20)
1.一种方法,包括:
对于安排在有效载荷中以使得每个信号在所述有效载荷中具有对应比特位置的多个信号,响应于确定自从第一帧传输以来仅所述信号中的一个经改变信号已经改变了状态而串行地传送第一帧,所述第一帧标识所述有效载荷中的所述信号中的所述一个经改变信号的所述比特位置,其中所述第一帧不包括所述有效载荷中的所述多个信号中的未经改变的其余信号;以及
在第二帧传输之后,响应于确定自从所述第一帧传输以来所述信号中的不止一个信号已经改变状态而串行地传送包括所述有效载荷中的所述多个信号的第二帧。
2.如权利要求1所述的方法,其特征在于,串行地传送所述第一帧包括串行地传送第一报头,并且其中串行地传送所述第二帧包括串行地传送第二报头。
3.如权利要求1所述的方法,其特征在于,进一步包括:
在通用输入输出(GPIO)接口处,从处理器接收第一信号集并且从所述处理器接收第二GPIO信号集;
从所述GPIO接口,通过对应的GPIO引脚向远程处理器传送所述第二GPIO信号集;以及
从所述GPIO接口,向有限状态机(FSM)并行地提供所述第二GPIO信号集,其中所述第二GPIO信号集包括在所述第一帧的传输之前的所述有效载荷中的所述多个信号。
4.如权利要求3所述的方法,其特征在于,进一步包括:
将所述第二GPIO信号集存储在存储器中;
在所述第一帧的传输之后,在所述GPIO接口处从所述处理器接收第三GPIO信号集;
将所述第三GPIO信号集与所存储的第二GPIO信号集进行比较,以确定自从所述第一帧的传输以来所述GPIO信号中的不止一个GPIO信号已经改变状态,其中串行地传送所述第二帧包括串行地传送所述第三GPIO信号集。
5.如权利要求3所述的方法,其特征在于,所述串行地传送所述第一帧和所述第二帧不响应于外部时钟。
6.如权利要求4所述的方法,其特征在于,串行地传送所述第三GPIO信号集包括:
将来自所述GPIO接口的第三信号集脉宽调制成对应的一系列经脉宽调制信号;以及
通过专用传送引脚将所述一系列经脉宽调制信号串行地传送到所述远程处理器。
7.如权利要求1所述的方法,其特征在于,所述有效载荷包括一字节有效载荷。
8.一种集成电路,包括:
处理器,所述处理器配置成周期性地生成从第一信号到最后信号地安排在有效载荷中的多个信号,以使得所述多个信号中的每个信号在所述有效载荷中具有对应比特位置;
存储器,所述存储器配置成存储来自所述处理器的每个周期性生成的所述多个信号;以及
有限状态机(FSM),所述FSM配置成将所述多个信号的当前状态与从所述存储器检索到的所述多个信号的先前状态进行比较,以确定与所述先前状态相比所述当前状态中的所述信号中是否仅单个信号已经改变状态,所述FSM还被进一步配置成响应于确定仅单个经改变信号已经改变状态而将第一帧串行地传送到远程处理器,所述第一帧标识关于所述单个经改变信号的比特位置的地址。
9.如权利要求8所述的集成电路,其特征在于,所述FSM被进一步配置成将所述多个信号的所述当前状态与所述先前状态进行比较,以确定与所述先前状态相比所述当前状态中的所述信号中是否有不止一个信号已经改变状态,所述FSM还被配置成响应于确定所述信号中的不止一个信号已经改变状态而将包括所述多个信号的第二帧串行地传送到所述远程处理器。
10.如权利要求8所述的集成电路,其特征在于,所述多个信号包括多个第一通用输入输出(GPIO)信号。
11.如权利要求10所述的集成电路,其特征在于,进一步包括:
专用传送引脚;
多个GPIO引脚;以及
GPIO接口,其中所述处理器被配置成向所述GPIO接口提供多个第二GPIO信号,并且其中所述GPIO接口被配置成通过所述多个GPIO引脚来将所述多个第二GPIO信号传送到所述远程处理器,并且其中所述FSM被进一步配置成在专用传送引脚上将所述多个第一GPIO信号作为多个虚拟GPIO信号串行地传送到所述远程处理器。
12.如权利要求9所述的集成电路,其特征在于,所述FSM被进一步配置成串行地传送具有第一报头的所述第一帧,以及串行地传送具有第二报头的所述第二帧。
13.如权利要求12所述的集成电路,其特征在于,所述第一报头和所述第二报头两者是1比特信号。
14.如权利要求9所述的集成电路,其特征在于,所述多个信号包括一对字节,并且其中所述FSM被进一步配置成将所述多个信号的所述当前状态与所述先前状态进行比较,以确定与所述先前状态相比所述字节中是否仅一个经改变字节已经改变状态,并且其中所述FSM被进一步配置成响应于确定仅所述经改变字节已经改变状态而仅在第三帧中将所述经改变字节串行地传送到所述远程处理器。
15.如权利要求11所述的集成电路,其特征在于,所述FSM被进一步配置成将所述多个虚拟GPIO信号作为多个经脉宽调制信号来串行地传送。
16.如权利要求11所述的集成电路,其特征在于,所述FSM被进一步配置成响应于外部时钟的循环而串行地传送所述多个虚拟GPIO信号。
17.如权利要求11所述的集成电路,其特征在于,所述集成电路被包括在选自包括以下各项的组的系统中:蜂窝电话、智能电话、个人数字助理、平板计算机、膝上型计算机、数码相机、以及手持式游戏设备。
18.一种方法,包括:
将多个信号的状态周期性地存储在第一集成电路的存储器中,其中所述信号以从第一信号到最后信号的顺序来排序,以使得每个信号在所述顺序中具有唯一性位置;
将所述多个信号的当前状态与从所述存储器检索到的所述多个信号的先前状态进行比较;
响应于所述比较指示在所述当前状态中所述信号中的不止一个信号已经改变状态而将第一帧串行地传送到第二集成电路,其中所述第一帧包括根据所述顺序来排序的所述多个信号;以及
响应于所述比较指示在所述当前状态中所述信号中只有一个信号已经改变状态并且所述信号中的其余信号没有改变状态而将第二帧串行地传送到所述第二集成电路,其中所述第二帧包括关于经改变信号的位置的地址并且不包括所述信号中的其余信号。
19.如权利要求18所述的方法,其特征在于,串行地传送所述第二帧进一步包括传送所述经改变信号。
20.如权利要求18所述的方法,其特征在于,进一步包括将第一报头附连至所述第一帧以及将第二报头附连至所述第二帧,其中所述第一报头与所述第二报头不同。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/040,271 | 2016-02-10 | ||
US15/040,271 US9934171B2 (en) | 2016-02-10 | 2016-02-10 | Serial communication link with optimal transfer latency |
PCT/US2017/012874 WO2017139059A1 (en) | 2016-02-10 | 2017-01-10 | Serial communication link with optimal transfer latency |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108604219A true CN108604219A (zh) | 2018-09-28 |
CN108604219B CN108604219B (zh) | 2021-05-04 |
Family
ID=57915097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780010219.1A Active CN108604219B (zh) | 2016-02-10 | 2017-01-10 | 具有最优传输等待时间的串行通信链路 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9934171B2 (zh) |
EP (1) | EP3387546B1 (zh) |
CN (1) | CN108604219B (zh) |
WO (1) | WO2017139059A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BR112019004408A8 (pt) * | 2016-09-05 | 2023-02-14 | Iot Nxt Bv | Sistema e método de interface de dispositivo definido por software |
US10343606B2 (en) * | 2017-05-05 | 2019-07-09 | Connaught Electronics Ltd. | Using parallel data lines for GPIO purposes |
US10073799B1 (en) * | 2017-11-02 | 2018-09-11 | Synopsys, Inc. | Programmable data width converter device, system and method thereof |
KR20200093106A (ko) | 2019-01-25 | 2020-08-05 | 삼성전자주식회사 | 반도체 집적 회로 및 그것의 동작 방법 |
US11943658B2 (en) * | 2020-11-03 | 2024-03-26 | Cypress Semiconductor Corporation | Multi-protocol communication network |
US11757610B1 (en) * | 2022-04-18 | 2023-09-12 | Nxp B.V. | Low phase noise clock recovery over a data connection |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1848719A (zh) * | 2005-02-15 | 2006-10-18 | 三星电子株式会社 | 分配位图存储器、产生网络实体间应答的方法及其系统 |
US20100115140A1 (en) * | 2008-10-30 | 2010-05-06 | Micron Technology, Inc. | Encoded addressing within control code for bus communication |
EP2330514A1 (en) * | 2009-12-07 | 2011-06-08 | STMicroelectronics (Research & Development) Limited | An integrated circuit package |
CN101904139B (zh) * | 2007-12-20 | 2013-09-11 | 英国电讯有限公司 | 通信业务的适应方案 |
WO2015077803A1 (en) * | 2013-11-22 | 2015-05-28 | Qualcomm Incorporated | Clockless virtual gpio |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10216822B4 (de) | 2002-04-16 | 2013-08-01 | Qimonda Ag | Schaltungsanordnung mit Signalleitungen zur seriellen Übertragung von mehreren Bitgruppen |
US20060143348A1 (en) * | 2004-12-29 | 2006-06-29 | Wilson Matthew T | System, method, and apparatus for extended serial peripheral interface |
US8027359B2 (en) | 2007-03-26 | 2011-09-27 | Sony Corporation | Extended serial communication protocols |
US8606982B2 (en) | 2008-03-10 | 2013-12-10 | Qimonda Ag | Derivative logical output |
DE102011077493A1 (de) | 2010-06-23 | 2012-04-26 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Datenübertragung mit variabler Bitlänge |
US8989328B2 (en) | 2013-03-14 | 2015-03-24 | Qualcomm Incorporated | Systems and methods for serial communication |
CN107209739A (zh) * | 2015-02-04 | 2017-09-26 | 高通股份有限公司 | 电压模式和电流模式设备枚举 |
-
2016
- 2016-02-10 US US15/040,271 patent/US9934171B2/en active Active
-
2017
- 2017-01-10 WO PCT/US2017/012874 patent/WO2017139059A1/en active Application Filing
- 2017-01-10 EP EP17702195.3A patent/EP3387546B1/en active Active
- 2017-01-10 CN CN201780010219.1A patent/CN108604219B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1848719A (zh) * | 2005-02-15 | 2006-10-18 | 三星电子株式会社 | 分配位图存储器、产生网络实体间应答的方法及其系统 |
CN101904139B (zh) * | 2007-12-20 | 2013-09-11 | 英国电讯有限公司 | 通信业务的适应方案 |
US20100115140A1 (en) * | 2008-10-30 | 2010-05-06 | Micron Technology, Inc. | Encoded addressing within control code for bus communication |
EP2330514A1 (en) * | 2009-12-07 | 2011-06-08 | STMicroelectronics (Research & Development) Limited | An integrated circuit package |
WO2015077803A1 (en) * | 2013-11-22 | 2015-05-28 | Qualcomm Incorporated | Clockless virtual gpio |
Also Published As
Publication number | Publication date |
---|---|
EP3387546A1 (en) | 2018-10-17 |
CN108604219B (zh) | 2021-05-04 |
US20170228327A1 (en) | 2017-08-10 |
US9934171B2 (en) | 2018-04-03 |
WO2017139059A1 (en) | 2017-08-17 |
EP3387546B1 (en) | 2019-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108604219A (zh) | 具有最优传输等待时间的串行通信链路 | |
CN107273329B (zh) | 虚拟gpio | |
EP3134819B1 (en) | Hybrid virtual gpio | |
US10241953B2 (en) | Dynamic data-link selection over common physical interface | |
CN106487372A (zh) | 包括单线接口的装置和具有该装置的数据处理系统 | |
EP3283969B1 (en) | Enhanced virtual gpio with multi-mode modulation | |
US9747244B2 (en) | Clockless virtual GPIO | |
CN104156333A (zh) | 一种基于fpga的uart多接口扩展系统和方法 | |
CN104050121A (zh) | 双收双发可编程arinc429通讯接口芯片 | |
US6874047B1 (en) | System and method for implementing an SMBus/I2C interface on a network interface card | |
CN212342250U (zh) | Led驱动电路、显示装置与显示系统 | |
CN215773156U (zh) | 以太网开发装置 | |
CN107391406A (zh) | 一种用于协议处理的微处理器及处理协议的方法 | |
JPH0546535A (ja) | データ転送インタフエース装置 | |
EP3117330A1 (en) | Clockless virtual gpio |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |