[go: up one dir, main page]

CN106233273A - 混合虚拟gpio - Google Patents

混合虚拟gpio Download PDF

Info

Publication number
CN106233273A
CN106233273A CN201580020626.1A CN201580020626A CN106233273A CN 106233273 A CN106233273 A CN 106233273A CN 201580020626 A CN201580020626 A CN 201580020626A CN 106233273 A CN106233273 A CN 106233273A
Authority
CN
China
Prior art keywords
signals
gpio
signal
processor
messaging
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
Application number
CN201580020626.1A
Other languages
English (en)
Other versions
CN106233273B (zh
Inventor
L·J·米什拉
R·D·韦斯特费尔特
M·K·普拉萨德
J·L·帕尼安
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 CN106233273A publication Critical patent/CN106233273A/zh
Application granted granted Critical
Publication of CN106233273B publication Critical patent/CN106233273B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/4252Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using a handshaking protocol
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F2015/761Indexing scheme relating to architectures of general purpose stored programme computers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Position Fixing By Use Of Radio Waves (AREA)
  • Radio Relay Systems (AREA)
  • Control Of Eletrric Generators (AREA)
  • Error Detection And Correction (AREA)
  • Monitoring And Testing Of Transmission In General (AREA)

Abstract

提供了一种有限状态机(115),其既将虚拟GPIO信号(135)和消息传递信号(136)串行化,也将虚拟GPIO信号和消息传递信号解串行化。该有限状态机将经串行化虚拟GPIO信号和消息传递信号框定为各自由开始位和结束位划界的帧。

Description

混合虚拟GPIO
相关申请
本申请要求于2014年4月21日提交的美国临时专利申请No.61/982,286的权益,其要求于2014年11月5日提交的美国专利申请S/N.14/533,431的权益,这两篇申请的全部内容通过援引整体纳入于此。
技术领域
本申请涉及通用输入/输出(GPIO),并且尤其涉及配置成将引脚对用作虚拟GPIO引脚的集成电路。
背景
通用输入/输出(GPIO)使得集成电路设计者能够提供可以为特定应用定制的普适引脚。例如,取决于用户需要,GPIO引脚可以被编程为输出引脚或者输入引脚。GPIO模块或者外围设备通常将控制基于接口要求而能变动的引脚群。因为GPIO引脚的可编程性,所以它们一般被包括在微处理器和微控制器应用中。例如,移动设备中的应用处理器可以使用数个GPIO引脚来进行握手信令,诸如进行与调制解调器处理器的处理器间通信(IPC)。
对于此类握手信令,若边带信号必须既被处理器发射又被其接收,那么该边带信号可以被视为是“对称”的。若有n个对称的边带信号需要被交换,那么每个处理器要求n*2个GPIO(一个GPIO发射给定信号并且一个GPIO接收该信号)。例如,调制解调器处理器与应用处理器之间的对称IPC接口可以包括五个信号,其转译成结果所得的IPC信令需要10个GPIO引脚。IPC通信需要如此之多的GPIO引脚增加了制造成本。此外,为IPC投入过多的GPIO限制了GPIO对其他系统级外围接口的可用性。该问题不能够通过将IPC通信移到处理器之间的主数据总线上来得到解决,因为如此就违反了特定角点条件。
除了GPIO信号之外,处理器常规上还与外部设备进行消息传递,诸如通过具有专用发射引脚和接收引脚的SPI总线来与外部设备进行消息传递。与GPIO信号形成对比的是,此类消息传递信号并不专供特定引脚换言之,可以在专用消息传递发射引脚上传送各种消息。接收设备(先验地)并不知晓该消息传递涉及什么,这与GPIO信号形成对比——GPIO信号专供特定GPIO引脚,所以在对应GPIO引脚上接收到该GPIO信号这一事实便向处理器标识了该信号。但对于消息传递信号而言并非如此。此类信号具有处理器用来将接收到的消息传递信号路由到恰适寄存器的地址位。在寄存之际,处理器必须随后解读所寄存的消息。结果造成的对于专用消息传递发射引脚和专用消息传递接收引脚的需要显著增加了制造成本。
相应地,本领域中存在对能够容适众多输入/输出信号,而不要求过多数目的引脚的混合GPIO和消息传递架构的需求。
概述
提供了一种用于在各自具有处理器的两个集成电路之间进行通信的混合虚拟GPIO架构。该架构被视为“混合”的,因为其容适GPIO信号和消息传递信号两者。如前文所讨论的,常规GPIO系统中的GPIO信号专供特定引脚。对应GPIO引脚上收到GPIO信号便向接收处理器标识了该信号。但是,消息传递信号在专用接收引脚上被接收,诸如在串行外围接口(SPI)或进程间通信(IPC)接口中的专用接收引脚上被接收。各种消息传递信号可以由此在相同专用接收引脚上被接收。为了在消息传递信号之间进行区分,常规上消息传递信号包括地址报头,该地址报头包含地址。接收处理器基于该地址将接收到的消息路由到恰适的寄存器。例如,一种类型的消息可以涉及所安装的卡(诸如无线卡或GPS卡)的身份。那么此类消息将具有映射到恰适寄存器的地址,从而对应的消息内容可以被相应地寄存。通过解读寄存器的结果所得的内容,处理器可以随后解读所安装的卡的身份。其他类型的消息可以用类同的方式被路由到恰适的寄存器。
在本文所公开的混合GPIO接口中,消息传递信号在承载虚拟GPIO信号的相同专用发射引脚上被发射。虚拟GPIO信号的数目和消息传递信号的数目可以针对给定发射和接收处理器对来定制。公开了一种握手协议,从而在其各自集成电路中的处理器可以被告知虚拟GPIO和消息传递信号的数目。每个集成电路还包括用于使用信号集来与远程处理器通信的混合GPIO接口。该信号集包括GPIO信号集、虚拟GPIO信号集、以及一个或多个消息传递信号。每个集成电路由此包括对应于该GPIO信号集的GPIO引脚集。这些GPIO引脚被用于以GPIO领域中所知的常规方式来传送该GPIO信号集。
与该GPIO信号集形成对比的是,该虚拟GPIO信号集和这些消息传递信号并不在GPIO引脚上被传送。替换地,每个集成电路使用专用发射引脚和专用接收引脚来传送和接收该虚拟GPIO信号集和这些消息传递信号。有鉴于此,该虚拟GPIO信号集包括发射集和接收集。每个集成电路中的有限状态机(FSM)被配置成通过该专用发射引脚来向远程处理器串行地传送该发射集。该有限状态机进一步配置成在该专用接收引脚上从该远程处理器串行地接收虚拟GPIO信号的该接收集。
消息传递信号可包括通常在各种消息传递信号所共享的专用总线上传送的任何类型的信号。例如,消息传递信号可包括用于处理器的初始配置的集成电路间(I2C)信号。就象虚拟GPIO信号那样,消息传递信号可以被分为发射集和接收集。该FSM使用专用发射引脚来串行地传送消息传递信号发射集,以及使用专用接收引脚来串行地接收消息传递信号接收集。
该处理器向该混合GPIO接口提供第一信号集。从该混合GPIO接口,该第一信号集的一部分作为第一GPIO信号集在第一组对应GPIO引脚上被传送到远程处理器。来自该处理器的该第一信号集的剩余部分由该混合GPIO接口并行地提供到FSM。取决于剩余部分的内容(GPIO还是消息传递信号),FSM可以随后将剩余部分作为虚拟GPIO信号的发射集在专用发射引脚上串行地传送。
该GPIO接口还在第二组对应GPIO引脚上从该远程处理器接收第二GPIO信号集。取决于操作的模式,FSM从远程处理器串行地接收虚拟GPIO信号的接收集或消息传递信号的接收集,以及并行地向混合GPIO接口提供该接收集。
所公开的混合虚拟GPIO架构有两种主要实施例。在第一实施例中,在专用发射引脚上传送的每个帧包括报头,该报头标识该帧是包括虚拟GPIO信号的发射集还是包括消息传递信号的发射集。该报头还可指示对应帧将标识要在接收机侧设置的vGPIO流长度或者指示对期望的vGPIO流长度的确收。帧大小由此是可变的并且由结果所得的流长度确定帧来确定。在第二实施例中,报头针对包括虚拟GPIO信号和消息传递信号二者的帧被延展,从而经延展的报头标识了虚拟GPIO信号和消息传递信号的位(bit)位置。该混合GPIO接口能够随后向接收处理器提供第二信号集,该第二信号集包括来自该远程处理器的第二GPIO信号和消息传递信号集。
该FSM在各自由开始位和结束位划界的帧中传送虚拟GPIO信号和消息传递信号的发射集。远程处理器中的FSM由此将所传送的帧作为虚拟GPIO信号的和消息传递信号的接收集来接收。通过监视其是否接收到包括了开始位和结束位二者的完整帧,用于一个处理器的FSM就能够检测出该远程处理器是否发生了故障。
附图简述
图1是示例混合虚拟GPIO架构的框图。
图2A是其中处理器与单个远程处理器通信的混合虚拟GPIO架构的高级框图。
图2B是其中处理器与两个远程处理器通信的混合虚拟GPIO架构的高级图。
图3是响应于外部时钟的混合虚拟GPIO有限状态机的框图。
图4解说了虚拟GPIO/消息传递信号帧的格式。
图5是图1的GPIO架构所实践的方法的流程图。
图6解说了用来编程虚拟GPIO和消息传递帧长度的长度编程帧。
图7解说了被传送以确收响应于图6的帧而被编程的帧长度的确收帧。
图8解说了示例虚拟GPIO帧和示例消息传递信号帧。
图9解说了示例组合虚拟GPIO和消息传递帧。
图10解说了不使用外部时钟的混合虚拟GPIO有限状态机。
图11是用于通过图10的有限状态机来传送数据帧的时序图。
本发明的各实施例及其优势通过参考以下详细描述而被最好地理解。应当领会,在一个或多个附图中,相同的参考标记被用来标识相同的元件。
详细描述
提供了一种混合虚拟通用输入/输出(GPIO)架构,其使得系统能够将引脚对用作就如同该引脚对构成了更大数目的多个GPIO引脚以及用于消息传递信号的专用发射引脚和专用接收引脚那样。如本文中所使用的,“消息传递信号”是指常规地将会在专用发射引脚上发射的信号(诸如在IPC或SPI协议中实践的那样)。消息传递信号由此包括使得接收处理器可以将接收到的消息传递信号路由到恰适的寄存器的地址。该混合虚拟GPIO架构被视为是“虚拟”的,因为对于创建那些虚拟GPIO信号的系统级应用而言,这就如同那些虚拟GPIO信号正被容适以供在常规GPIO引脚上进行输入/输出那样。换言之,具有本文中所公开的虚拟GPIO架构的片上系统(SoC)或处理器不会体验到GPIO信号与虚拟GPIO信号之间的功能性差异。然而,仅使用了两个引脚来传送和接收原本各自需要它们自身的专用GPIO引脚对(若GPIO信号是对称的)的虚拟GPIO信号。该混合虚拟GPIO架构被视为“混合”的,因为用于传送虚拟GPIO信号的专用发射引脚也被用于将消息传递信号传送到远程处理器。类似地,被用来接收虚拟GPIO信号的专用接收引脚也被用来从远程处理其接收消息传递信号。
本文中所公开的虚拟GPIO信号可以针对容适移动电话或其他通信设备中的应用处理器与调制解调器处理器之间的IPC来讨论。然而,将领会,本文中所公开的虚拟GPIO电路和技术广泛应用于要求GPIO能力的片上系统(SoC)或者专用集成电路(ASIC)。
所公开的混合虚拟GPIO架构使得发射节点的健康对于接收节点来说是透明的。这是重要的优势,在软件实现的调试阶段期间尤其如此,因其向接收处理器指示了发射处理器变为不起作用的时间。
为了使得能够实现此类稳健的虚拟GPIO能力,每个集成电路包括耦合到电路板上的发射线的专用发射引脚、以及耦合到该电路板的接收线的专用接收引脚。鉴于此,虚拟GPIO信号可以被划分为用于在该发射线上进行传送的发射集和用于在该接收线上进行接收的接收集。如果信令是对称的,那么每个处理器的发射集中信号的数目是相同的。然而,本文中所公开的混合虚拟GPIO架构能够容适不对称信令,其中一个处理器的虚拟GPIO信号的发射集与远程处理器的发射集的大小并不相同。类同于虚拟GPIO信号,消息传递信号也在专用发射引脚上被传送且在专用接收引脚上被接收。
现在转到附图,图1解说了包括移动电话或其他通信设备内的应用处理器集成电路101和调制解调器处理器集成电路105的混合虚拟GPIO架构101。因为每个集成电路耦合到专用的发射线和专用的接收线,所以应用处理器集成电路100的发射线110a由此是调制解调器处理器集成电路105的接收线。类似地,调制解调器处理器集成电路105的发射线110b是应用处理器集成电路100的接收线。这些线或导线被承载在电路板或者集成电路100和105之间的其他物理互连上。每个集成电路包括专用发射引脚112以耦合到对应发射线(例如,调制解调器处理器集成电路105的线110b)。类似地,每个集成电路包括专用接收引脚111以耦合到对应接收线(例如,调制解调器处理器集成电路105的线110a)。每个集成电路中的有限状态机(FSM)115使用这些专用线和引脚,参考来自外部时钟源(例如,32KHz休眠时钟)的外部时钟信号120来控制传送和接收。
应用处理器集成电路100包括处理器101。类似地,调制解调器处理器集成电路105包括处理器102。每个处理器通过GPIO接口103来耦合,其以常规方式用GPIO接口103来与GPIO引脚125对接。通过每个混合GPIO接口103处理的这些信号的特定部分可以作为常规GPIO信号130在常规GPIO引脚125上被传送和接收。但是,通过GPIO接口103处理的这些信号的剩余部分并不通过常规GPIO引脚125被传送或接收。替代地,该剩余信号部分中的一些包括使用专用发射引脚和专用接收引脚通过对应FSM 115来传送和接收的多个虚拟GPIO信号135。对于接收和传送消息传递信号136而言,每个FSM 115还直接与对应处理器对接。因为消息传递信号136不是GPIO信号,所以它们不是通过GPIO接口103耦合。每个FSM 115通过其专用发射引脚112和接收引脚111来传送和接收消息传递信号136。这些引脚由此是“混合”引脚,因为它们被用于虚拟GPIO信号135和消息传递信号136二者。
虚拟GPIO信号135并非如常规GPIO信号130的情形中那样各自具有它们自身的专用引脚。这是相当有利的,因为混合虚拟GPIO架构101达成了与其中虚拟GPIO信号135将各自要求它们自身的引脚的常规GPIO实施例相比而言引脚的显著的减少。消息传递信号136常规上也会要求另一专用发射引脚和另一专用接收引脚。但是,这些附加引脚在本申请内容的有利混合虚拟GPIO架构中也被消除了。
集成电路可以仅包括一个FSM 115或者可以包括用于与多个外部系统对接的多个此类元件。图2A解说了混合虚拟GPIO架构,其中集成电路200包括用于与集成电路205(包括其自身的FSM 115)中的远程处理器通信的单个FSM 115。作为对比,图2B中所示的集成电路220包括用于分别与集成电路225和230中的远程处理器通信的FSM 115A和FSM 115B。有鉴于此,片上系统(SoC)(诸如本文中所讨论的处理器)可以被配置有容适与其他SoC的混合虚拟GPIO信令所需要的那样多的FSM。
不管处理器可能具有的FSM的数目是多少,如图2A中所指示的,每个FSM使用其自身专用的发射引脚240和接收引脚245进行通信。
再次参见图1,因为虚拟GPIO信号135是使用诸如FSM 115的有限状态机来容适的,所以处理器101和102可以处于休眠或者其他类型的蛰伏状态,却仍能够接收虚拟GPIO信号135和消息传递信号136。以这种方式,虚拟GPIO架构101不仅有利地节约了每个GPIO接口103的引脚的数目,而且也是低功率的。
如本文中所使用的,“引脚”是覆盖了集成电路用来耦合到电路板上的导线或者其他物理互连(例如,封装互连或者穿孔式通孔互连)的结构(诸如焊盘或实际引脚)的普适术语。例如,若如图1中所示,每个集成电路具有十六个GPIO引脚或焊盘125,那么这些引脚可以配置成容适八个对称GPIO信号130(为了解说清楚起见,图1中仅示出了四个常规GPIO信号#1到#4)或者十六个不对称GPIO信号130。此外,每个集成电路能够使用线110a和110b来容适多个(n个)虚拟GPIO信号135的输入/输出对接,其中n是任意性复数整数。类似地,每个集成电路可以使用线110a和110b来容适多个(m个)消息传递信号136的输入/输出对接,其中m是复数(plural)正整数。对于每个处理器核而言,GPIO信号130与虚拟GPIO信号135之间没有差异:它们两者都只不过是要按需通过GPIO接口103传送和接收的信号。然而,因为虚拟GPIO信号135和消息传递信号136没有专用引脚(这与常规GPIO信号130形成对比),所以虚拟GPIO信号135和消息传递信号136在FSM 115中被串行化以供在线110a和110b上传送。在接收之际,每个FSM 115将接收到的经串行化虚拟GPIO信号和接收到的经串行化的消息传递信号解串行化。由此,每个FSM 115对于虚拟GPIO信号135和消息传递信号136而言起到串行器/解串器的作用。
处理器可能需要响应于这些GPIO信号或消息传递信号中选定的若干信号的改变而接收中断信号。针对虚拟GPIO信号135和消息传递信号136而言,调制解调器功率管理器(MPM)140按通过中断配置寄存器(未解说)被编程的方式来监视这些选定的GPIO信号和消息传递信号。每个虚拟GPIO信号135具有对应的中断配置寄存器。如果虚拟GPIO信号135被要求响应于该信号改变状态而生成中断,那么对应的配置寄存器将被相应地编程。类似地,如果虚拟GPIO信号135或消息传递信号136是无论该信号是否改变了状态均不生成中断的信号,那么对应的中断配置寄存器也将被相应地编程。MPM 140也可以包括有限状态机。由此,就像FSM 115,MPM 140是低功率的并且无论其处理器是处于休眠模式还是某种其他蛰伏状态均呈活跃。
虚拟GPIO信号135可以被细分为发射集和接收集。在对称系统中,每个发射集可以具有相同的数目。类似地,每个接收集可以具有相同数目的信号。然而,将会领会,虚拟GPIO架构101是有益的,因为其能现成地容适不对称信令实施例,在该不对称信令实施例中,虚拟GPIO信号135的发射集和消息传递信号136的发射集具有不同的大小,并且其中GPIO信号135的接收集和消息传递信号136的接收集也具有不同的大小。无论架构101是对称的还是不对称的,每个FSM 115并行地从GPIO接口103接收虚拟GPIO信号135的发射集,并行的意义是指这些发射集中的每个信号被承载在该信号自身在GPIO接口103与FSM 115之间的导线106上。消息传递信号136不是GPIO信号并且由此它们并不通过GPIO接口103耦合。有鉴于此,由每个FSM 115所表示的混合接口可以由对应处理器101或102给予定某个外围地址。每个FSM 115被配置成解码消息传递信号136中的地址字段137,从而给定的消息传递信号136可以被存储在对应消息寄存器138中。这些消息传递寄存器138各自被映射到对应处理器101或102的地址空间内的用于FSM 115的通用地址的某个偏移。响应于来自MPM 140的中断,处理器101或102可以随后接入消息传递寄存器138来获取恰适的消息传递信号136。就象虚拟GPIO信号135那样,消息传递信号136可以被细分为发射集和接收集。无论该架构是对称的还是不对称的,结果由FSM 115对这些发射集进行的传输是在单个发射引脚112上发生的。来自一个处理器的虚拟GPIO信号135的发射集成为了远程处理器的虚拟GPIO信号135的接收集。类似地,消息传递信号136的发射集成为了远程处理器的消息传递信号136的接收集。远程处理器的FSM 115接着将虚拟GPIO信号135的接收集解串行化,从而其可以被并行地呈递给GPIO接口103。
每个FSM 115包括存储虚拟GPIO信号135和消息传递信号136的发射集的先前状态的配置寄存器(未解说)。以这种方式,每个FSM 115能够监视从GPIO接口103接收到的虚拟GPIO信号135发射集的当前状态,并且仅在当前状态相对于先前状态而言改变了时才触发对应发射集的串行传送。换言之,FSM 115将仅在通过在配置寄存器107中存储先前状态监测到发射集内的一个或多个信号改变了状态的情况下才触发发射集的串行传送。每个处理器知晓消息传递信号寄存器138的地址并且可以由此将期望的发射集写入到它们并且也读取接收集中的任何变化。FSM 115监视消息传递信号136的发射集是否相对于它们先前的传送发生了变化并且会相应地触发发射集去往远程处理器的传送。MSM 140监视接收集是否如先前所讨论地发生了改变,并且中断对应的处理器,从而可以处理改变了的接收集。
如以上所讨论的,每个FSM 115充当串行器/解串器以将每个发射集串行化并且将每个接收集解串行化。图3是FSM 115的框图用以更好地解说这些操作。FSM 115通过复用模块300与对应处理器交换虚拟GPIO信号135和消息传递信号136。复用模块针对虚拟GPIO信号135通过虚拟GPIO接口103与对应处理器对接,并且针对消息传递信号136,直接与对应处理器对接。在一个实施例中,每个FSM 115包括仅在任一发射集中有改变的情况下才将授权在发射线110a上传送虚拟GPIO信号135的发射集或消息传递信号136的发射集的传输的逻辑电路301。逻辑电路301由此将虚拟GPIO信号135(或消息传递信号136)的发射集的当前状态与存储在相应配置寄存器107中的该发射信号集合的先前状态作比较。例如,逻辑电路301可以包括异或(XOR)门310以执行该比较。复用模块300将该发射集并行加载到并入串出(PISO)移位寄存器315中。若来自异或门310的使能信号320走高(指示发射集的当前状态与先前状态之间有改变),则PISO移位寄存器315被启用以响应于外部时钟120的循环,串行地将其内容移出到发射线110a上。
FSM 115还使用串入并出(SIPO)移位寄存器325用类同的方式将虚拟GPIO信号135或消息传递信号136的接收集解串行化。虚拟GPIO信号135和消息传递信号136的接收集由远程处理器生成并且由远程处理器传送到接收线110b上。该虚拟GPIO信号135(或消息传递信号136)的接收集响应于外部时钟120的循环被相继地移到SIPO移位寄存器325中。如本文中所进一步讨论的,FSM 115被配置成在诸具有单独开始位和结束位的帧中进行虚拟GPIO信号135和消息传递信号136的该发射集的传送和接收集的接收。
在一个实施例中,FSM 115可以被视为包括用于进行以下操作的装置:从GPIO接口接收虚拟GPIO信号的发射集以及在专用发射引脚上向远程处理器串行地传送虚拟GPIO信号的发射集,以及从消息传递信号寄存器取回消息传递信号的发射集以及在专用发射引脚上向远程处理器传送消息传递信号的发射集。
这些帧具有预定义的大小。在一个实施例中,帧大小由报头确定为长达特定数目的位。图4中示出了示例帧400。报头405可包括两个功能位,fn_0和fn_1。在一个实施例中,若这两个功能位都为零,那么随后的位是虚拟GPIO信号135。若fn_0为零,且fn_1等于1,那么随后的位是消息传递信号136。若fn_0为一且fn_1等于0,那么随后的位表示远程处理器所期望的虚拟GPIO帧的长度。类似地,若这两个功能位都为一,那么随后的位表示远程处理器对于期望帧长度的确收。若虚拟GPIO信号135的发射集(或消息传递信号136的发射集)小于此固定帧大小,那么每帧内未被使用的位可以是随意(don't care)值。替换地,每个FSM115可以被配置成取决于给定应用所需的位数而变更所传送的帧的大小。将会领会,前述对使用两个功能位的编码的讨论仅仅是示例,且可以使用其他报头和编码协议来标识帧是否携带虚拟GPIO信号135、消息传递信号136、虚拟GPIO帧长度的标识、虚拟GPIO帧长度的确收、消息传递信号帧长度的标识、或消息传递信号帧长度的确收。在一个实施例中,帧400也可包括与以下进一步讨论的编程和确收帧相关联的类型位(type_bit)。例如,在一个实施例中,类型位可以为高以标识虚拟GPIO帧,以及为低以标识消息传递信号帧。
发送虚拟GPIO信号135或消息传递信号136的发射集要求的帧数取决于特定发射集中的信号数目以及帧大小。例如,假设帧大小为八位且发射集中有十个虚拟GPIO信号135。要使用该八位帧来发送该发射集由此则将需要两个帧。
为了检测收到虚拟GPIO信号135或消息传递信号136的接收集的完整帧,FSM 115可以包括如图3中所示的在收到该帧的开始位后对所需的外部时钟120循环数目进行计数的逻辑电路350。例如,假设接收集包括响应于外部时钟120的十个循环所接收到的十个虚拟GPIO信号135。在检测到开始位并且等待了外部时钟120的另外十个循环后,逻辑电路350将接着期望收到结束位。如果相应地检测到了结束位,那么逻辑电路350可以接着选通输出锁存器351来并行接收已作为完整帧被移入SIPO移位寄存器325的虚拟GPIO信号135的接收集。被锁存的虚拟GPIO信号的接收集接着可以通过复用模块300被呈递给GPIO接口103。虽然消息传递信号的接收集被加载到消息传递信号寄存器138而非通过GPIO接口103路由,但是也类同地发生对消息传递信号136的接收集的锁存。
再次参照PISO移位寄存器315,将会领会,该寄存器被配置成将虚拟GPIO信号和消息传递信号的发射集用开始位和结束位来框定。虚拟GPIO信号的发射集由此在由开始位和结束位划界的帧400中被传送。因为发射处理器的发射集变成远程处理器的接收集,所以该接收集也相应被框定。该框定是有利的,因为每个处理器由此可以监视远程处理器的健康而不需要任何的附加专用引脚。例如,每个FSM 115可以被配置成在缺省状态(虚拟GPIO信号的发射集的当前状态相比于先前状态没有改变)期间将其专用发射引脚112弱拉(并因此将发射线110a弱拉)至电源电压。对于此类实施例而言,开始位将会是逻辑零,以使得为了传送此开始位,FSM 115将发射线110a接地。用这种方式,每个FSM 115可以通过检测接收线110b已被拉向地而现成地检测出收到开始位。在一个实施例中,开始位和停止位是逻辑互补的。若开始位为逻辑零,则停止位由此将为逻辑高。该帧的载荷可以随后从类型位延展到划界帧结束的停止位410。
存在处理器发生故障使得其不恰适地将其发射线110a拉到地的可能性。该远程处理器会由此将这一情况检测为开始位,并且逻辑电路350会相应地开始向着帧的结束进行计数。但是,若结束位是逻辑1,那么每个FSM 115将发射线110a充电至电源电压以信令通知帧传输的结束。若处理器发生了故障以使得远程FSM 115检测到被视为开始位的信号,则逻辑电路350将不会检测到结束位,并且将会相应告知其处理器有关远程处理器的故障。
为了允许有足够的建立时间来进行接收,帧400的传送应当参照第一时钟沿来发生,并且接收参照剩余的时钟沿来发生。例如,PISO移位寄存器315中的位可以响应于外部时钟120的下降沿或即负沿而被移出以供在发射线110a上传送。相反地,接收线110b上收到的位可以响应于时钟120的上升沿或即正沿而被移入SIPO移位寄存器325。
为使一个处理器检测到远程处理器中的非活跃状态,每个FSM 115可以被配置成在缺省状态(其中没有帧要传送)中弱拉高其发射线。如先前所讨论的,开始位和停止位具有相反的逻辑状态。图4的帧400的开始位406可以由此为逻辑零(接地),以使得发射线110a为该位的传送而被拉低,而停止位410可以为二进制1值,以使得发射线110a为该位的传送而被拉高到电源电压。再次参见图3,逻辑电路350被配置成参照外部时钟120的上升沿来监视接收线110b。无帧传输的缺省逻辑状态由接收线110b因其上文所讨论的弱上拉而简单地维持在高来指示。如果逻辑电路350在外部时钟120的上升沿之一检测到接收线110b被拉低了(指示开始位405的零值),则逻辑电路350根据帧400的预定义大小等待足够数目的时钟循环以接着检测停止位410的逻辑高值。收到停止位410向逻辑电路350指示完整帧400已被完全移入SIPO移位寄存器325。此刻,逻辑电路350选通SIPO移位寄存器325,以使得收到的帧通过锁存器351被并行地提供到复用模块300。虚拟GPIO信号(或消息传递信号136)的接收集可以接着通过GPIO接口103被相应地提供到处理器核。
相对慢的外部时钟120(诸如32KHz休眠时钟)对于IPC的信令要求来说是充足的。例如,假设虚拟GPIO信号135和消息传递信号136的传输的最小建立和保持要求各自为两纳秒,并且FSM 115处收到外部时钟120的最大预期领先或滞后为六纳秒。能够容易地示出,外部时钟120的结果所得的最大频率将会是62MHz。诸如来自休眠时钟的32KHz频率由此会为此类实施例提供非常大的安全边际。现在将概述架构101的示例操作方法。
图5的流程图中总结了架构101的操作方法。该方法始于步骤500,在GPIO接口处从第一处理器接收GPIO信号集。步骤505包括从GPIO接口通过GPIO引脚向远程处理器传送该GPIO信号集的一部分。步骤510包括将该GPIO信号集的剩余部分作为虚拟GPIO信号在专用发射引脚信号上从GPIO接口传送到远程处理器。最后,该方法包括从由第一处理器写入的消息传递信号寄存器取回消息传递信号并且在专用发射引脚上向远程处理器串行地传送所取回的消息传递信号的动作515。
考虑所公开的虚拟混合GPIO架构的优势:仅需要两个引脚,而任何数目的虚拟GPIO信号135和消息传递信号136能通过有限状态机被串行化和反串行化。仅有的限制是对虚拟GPIO信号参照外部时钟120和任何预期的时钟滞后或领先量的时序要求。此外,不需要任何其他引脚来使得一个处理器的健康对于对方处理器透明。
帧400也是相当有利的,因为仅仅使用少至两个功能位的开销,各种消息传递信号136和虚拟GPIO信号135就可以在专用发射引脚112上被传送。图6中示出了用以设置虚拟GPIO帧长度(以及设置消息传递信号帧长度)的示例编程帧。编程帧600设置了虚拟GPIO帧长度。类似地,编程帧605设置消息传递信号帧长度。预定义了用来定义帧长度(以及由此每个编程帧的长度)的位数。由此,一旦FSM 115看到指示编程长度被设置的报头(诸如先前所讨论的fn_0等于1且fn_1等于0),那么其将会从帧体中读取该帧长度。有鉴于此,FSM 115需要知晓虚拟GPIO帧或消息传递帧的长度是否被编程。由此,用于编程帧600和605的每个报头405后跟随帧类型位610。例如,帧类型位610等于一可以表示虚拟GPIO帧长度被编程,而帧类型位610等于零可以表示消息传递信号帧长度被编程。在一个实施例中,每个编程帧600和605具有五个编程位,范围从位-0到位-4。如其名称所标识的,每个位是2的幂的系数。换言之,位-0是乘以20的系数,位-1是乘以21的系数,位-2是乘以22的系数,位-3是乘以23的系数,且位-4是乘以24的系数。这五个编程位可以由此编程从零到31的帧长度。附加一编程位将使得能够进行至多到63的帧长度的编程,等等。
当远程FSM 115接收到诸如帧600或605的编程帧时,其可以行进到使用确收帧来确收所定义的帧长度。图7中示出了示例确收帧。帧700是虚拟GPIO确收帧,而帧705是消息传递信号确收帧。每个帧700和705包括报头405,在报头405中,功能位将该帧标识为确收帧。在一个实施例中,其中这两个功能位都为逻辑一的报头405标识了确收帧。跟随在报头405后的帧类型位710标识了确收帧类型。在一个实施例中,虚拟GPIO确收帧700由帧类型位710等于逻辑一来标识。相反,消息传递信号确收帧705可以由帧类型位710等于逻辑零来标识。跟随在帧类型位710后的编程位等于对应帧600或605中的编程位。
一旦帧长度由此被编程,虚拟GPIO信号136的帧800或消息传递信号的帧805可以如图8中所示的那样被传送。再次参见图1,注意,有n个虚拟GPIO信号135和m个消息传递信号136。每个帧800可以由此仅专用于一个GPIO端口(n个GPIO信号135中的一者),或者其可以为n个GPIO信号135中的每个都包括一位。换言之,可以根据各种端口串行地传送GPIO字或者它们可以被并行传送。相同的串行/并行考虑应用于消息传递信号。无论每个帧800和805正承载多个端口还是仅一个端口,报头405都标识了帧是虚拟GPIO帧还是消息传递信号帧。
与使用单独的帧来传送虚拟GPIO信号135和消息传递信号136不同,在混合虚拟GPIO架构的替换性实施例中这些信号可以被组合,其中每个帧包括GPIO信号135和消息传递信号136二者。例如,图9示出了包括报头405以及经延展报头905的示例混合帧900。经延展报头905指示跟随在经延展报头905之后且在停止位410之前的消息传递信号位和虚拟GPIO位的位的位置。取决于等待时间要求,消息位910或虚拟GPIO位915可以在帧体中在前面。在一些实施例中,经延展报头905可包括校错位,诸如CRC位。注意,经延展报头912只需要标识仅仅虚拟GPIO位915的位置和长度或者仅仅消息位910的位置和长度,因为默认由此知晓剩余的位属于剩下的位类别。
使用如上所讨论的共用外部时钟120是简单易于实现的,但是其要求每个FSM 115与用于接收共用时钟120的时钟引脚相关联。为了避免该附加的引脚需要,外部时钟120可以如美国临时申请号61/907,947中所讨论的那样被消除,其内容通过援引被纳入于此。再次参见图1,架构101可由此通过消除外部时钟120及其对应引脚而被修改。为了消除对于在每个集成电路中保留用于接收共用时钟120的引脚的任何需要,针对发射集成电路和接收集成电路的信号发射集的传输是异步的。为了使得能够实现该有利的异步传送和接收,每个FSM 115可包括振荡器(诸如环形振荡器)或与振荡器相关联。发射FSM脉宽通过对来自振荡器的振荡进行计数来响应于在发射集中的每一位调制在专用发射引脚上传送的信号。发射集中的诸位可以在数据帧中被传送,该帧中的每一位是发射集中的对应位的经脉宽调制的版本。所传送的数据帧中的每一位都具有针对脉宽调制而使用的特定位周期。例如,若发射位具有一个二进制状态(诸如,二进制零),那么FSM可以计数第一数目个振荡,从而该位周期的大部分期满。在计数了第一数目个振荡之际,FSM用第一二进制电压(诸如用电源电压VDD)来脉动专用发射引脚。在计数的开始,该专用发射引脚被以相反的第二二进制电压状态(诸如,接地)来脉动。
相反,若发射位具有相反的二进制状态(诸如,二进制一),那么FSM以第二二进制电压(诸如接地)来开始发射位,并且行进到计数第二数目个振荡,从而该位周期的小部分期满。在计数第二数目个振荡之际,FSM用第一二进制电压来脉动专用发射引脚。用这种方式,耦合到专用发射引脚的发射线的电压被根据可变脉宽来用第一二进制电压来脉动。若当前发射位具有第一二进制值,那么发射线根据第一脉宽来用第一二进制电压来脉动。相反,若当前发射位具有相反的第二二进制值,那么发射线根据第二脉宽来用第一二进制电压来脉动。
在FSM处在其专用接收引脚上从远程处理器接收到的所传送的数据帧用类同的方式来解调。让每个发射线(其为接收处理器的接收线)的缺省状态(或空闲模式)被充电到电源电压VDD是很便利的。这使得如以下所进一步讨论的,远程处理器的健康对于接收处理器是透明的。此类实施例中的第二二进制电压可随后被接地。接收FSM会随后通过检测专用接收引脚何时被放电来识别收到位的开始。接收FSM可以随后开始对来自其振荡器的振荡进行计数。随后将生成两个计数:在专用接收引脚被充电到第一二进制电压的位部分期间有多少振荡发生的第一接收计数,以及专用接收引脚被充电到第二二进制电压的位部分期间有多少振荡发生的第二接收计数。通过比较这两个接收计数,接收FSM可以确定是第一脉宽还是第二脉宽被施加到了收到的位。接收到的数据帧被相应地解调,从而不需要共用时钟来协调数据帧在发射线上的传输。为了区别此类FSM和使用外部时钟的FSM 115,以下的FSM将会被记位内部时钟FSM。
图10是内部时钟FSM 1015的框图以更好地解说其发射和接收操作。FSM 1015通过复用模块300从其GPIO接口103(图1中示出)接收虚拟GPIO信号135的发射集。替换地,如稍早针对FSM 115所讨论的,复用模块300可以接收消息传递信号136的发射集。FSM 1015包括若与发射集的先前状态相比,发射集中有改变时,将授权在发射线110a上信号发射集作为脉宽调制信号来串行传送的逻辑电路301。用这种方式,不需要重传相比于先前传送而言未发生改变的发射集。逻辑电路301由此比较虚拟GPIO信号的当前发射集和存储在锁存器或配置寄存器107中的先前发射集。为了执行该比较,逻辑电路301可包括异或门310,该异或门将当前发射集与存储在配置寄存器107中的先前发射集(该先前发射集可以记为如图2中所示的“上一GPIO状态”)进行异或。复用模块300将当前发射集并行加载到并入串出(PISO)移位寄存器315。若来自异或门310的使能信号320走高(指示当前发射集与存储在寄存器107中的发射集之间有改变),则PISO移位寄存器315随即被启用以响应于移位信号120串行地将其内容移出到发射线110a上。
每个信号发射集包括存储在PISO移位寄存器315中的数据帧。FSM 1015包括将从PISO移位寄存器315移出的位发射集脉宽调制成在发射线110a上被驱动到远程处理器的经脉宽调制的输出信号的脉宽调制器355。该调制响应于对来自振荡器的振荡循环的计数,诸如,来自发射环形振荡器(RO)361的发射环形振荡器输出信号360的计数。调制器355和发射环形振荡器361可以通过从异或门310断言使能信号来被触发。响应于该触发,调制器355选通移位信号120,从而PISO移位寄存器315将信号发射集的初始位移位到调制器355。
调制器355包括对环形振荡器输出信号360中的循环进行计数的至少一个计数器(例如,在以下进一步描述的,图11中示出的计数器1105和1110)。取决于来自脉宽调制的期望脉宽,计数器计数到第一计数或者计数到大于第一计数的第二计数。在对足够数目的循环进行计数以满足第一和第二计数中的恰适一者之后,计数器重新选通移位信号120,从而来自存储在PISO移位寄存器315中的数据帧的后续位被移入调制器355中。用这种方式,存储在PISO移位寄存器315中的数据帧的信号发射集一次有一位被移入到调制器355中。取决于被移出PISO移位寄存器315的每一位的二进制值,脉宽调制器355对在发射线110a上传送的对应脉冲进行脉宽调制。有鉴于此,每个处理器可以被配置成在缺省状态(没有数据传送)期间将其发射线110a微弱充电拉高至电源电压VDD。在此类实施例中,如图11的时序图中所示,对于数据帧,长达位时间周期的脉冲传送始于将发射线110a放电至接地(VSS)。每个脉宽调制位传送始于将发射线110a放电至接地达位周期的某个初始放电部分(诸如,位时间周期的25%)。取决于位值,调制器355保持发射线110a的放电长达位周期的大部分(例如,75%),或者在位周期的初始放电部分到期之后立即将发射线110a充电回到VDD。换言之,一个二进制值可以被调制成位周期中的相对窄的高压(VDD)脉冲,而该二进制值的补可以被调制成位周期中相对宽的高压(VDD)脉冲。
图11中所示的示例数据帧的初始位为二进制零。在一个实施例中,二进制零可以调制成第一脉冲宽度,其中发射线110a被保持在接地长达位周期的75%。这一位周期的大部分对应于计数到第二计数的大部分计数器1110。若要传送的位是二进制零,那么脉宽调制器355由此会保持发射线110a放电直到满足第二计数。当达到第二计数,那么脉宽调制器355会随后脉动发射线110a到电源电压VDD长达该位周期的剩余部分。那么该脉冲历时将对应于计数到第一计数(仅为该位周期的25%)的小部分计数器1105。这一位的在发射线110a上传送的结果所得电压脉冲则将具有位周期的仅25%的脉宽。
相反,二进制一可以被调制成第二脉宽,其中发射线110a仅在小部分放电部分期间(诸如位周期的前25%)被接地。发射线110a随后会被放电直到满足第一计数。如由将大部分计数器410重置成零并进行计数直到其满足第二计数所确定的,一旦满足第一计数,脉宽调制器355就将脉动发射线110a以拉高至电源电压VDD长达位周期的剩余部分。发射线110a的电压在其间被充电到电源电压VDD的第二脉宽则将包括位周期的75%。然而,将领会,可以在替换实施例中使用不同的脉宽来表示期望的二进制值。
在一个实施例中,调制器355可包括逻辑电路1100。取决于位值,逻辑电路1100触发小部分计数器1105或大部分计数器1110以开始计数。然而,将会领会,取决于期望的脉宽调制,单个计数器可以被用来计数到第一或第二计数。在由逻辑电路1110触发之际,小部分计数器1105或大部分计数器1110对来自发射环形振荡器(RO)361的循环进行计数。例如,小部分计数器1105可以被配置成计数对应于位时间周期的25%的足够数目的循环,此时其断言输出信号以表示满足第一计数。类似地,大部分计数器1110可以被配置成计数对应于位时间周期的75%的足够数目的循环,此时其断言其输出信号。在该实施例中,调制器355配置成在每个位时间周期开始时将发射线110a放电到接地。取决于位值,调制器355在来自恰适计数器的输出信号的断言之际将发射线110a充电回电源电压VDD。例如,数据帧中的第一位是二进制零,所以在计数器1105断言其输出信号之际,调制器355将发射线110a断言高至VDD。类似地,因为数据帧中的第二位是二进制一,所以在计数器1110断言其输出信号之际,调制器355将发射线110a断言高至VDD。将会领会,初始的25%低周期仅为示例且也可以实现位时间周期的其他分数。
在一个实施例中,逻辑电路41100、计数器1105和1110、调制器355和SIPO移位寄存器315的组合可以被视为包括用于将发射集中的每个信号串行地处理成对应脉宽调制信号序列的装置,其中该装置配置成通过响应于经串行处理信号的二进制值对来自振荡器的振荡计数达第一技数和第二计数中的一者来确定每个经串行处理的信号的脉宽,并且其中该装置被进一步配置成通过专用发射引脚在专用发射引脚上向远程处理器传送对应经脉宽调制信号序列。
再次参见图9,FSM 1015还使用串入并出(SIPO)移位寄存器325用类同的方式将信号接收集(虚拟GPIO和/或消息传递信号)解串行化。解调器370解调来自远程处理器的,在接收线110b上接收的,收到经脉宽调制的信号。解调器370被配置成诸如通过检测接收线110b的放电来从收到的经脉宽调制的信号检测收到数据帧的开始,以触发接收环形振荡器375以开始振荡接收环形振荡器输出信号380。注意,在替换性实施例中,振荡器375和361可包括相同的振荡器。类似于解调器355,解调器370可包括计数器,诸如低计数器415和高计数器420。在每个位周期中,低计数器415被触发以在接收线110b被放电时进行计数。相反,高计数器420被触发以在接收线110b被充电到电源电压VDD时进行计数。在替换性实施例中,计数器415和420可以使用单个共用计数器实现,该共用计数器对接收线110b的每个二进制电压状态中的振荡的数目进行计数。通过比较来自计数器415和420的计数,解调器370可以相应地形成解调数据信号382。特别地,若在给定的位周期中,来自高计数器420的计数大于来自低计数器415的计数,则解调器370可以将经解调数据信号382驱动高至电源电压VDD以表示接收到的相对宽的脉冲。相反,若来自低计数器的计数更大,那么解调器370可以将经解调数据信号382放电至VSS以表示接收到了相对窄的脉冲。
解调器370还可以在来自位时间周期边界的计数的检测之际将移位信号381断言到SIPO移位寄存器325中。SIPO移位寄存器325随后将从解调器370移入经解调数据信号382。FSM模块1015可以被配置成处理由以上讨论的编程帧确定的信号发射和接收集的预定义数据帧大小。计数器415和420二者在位时间周期开始时被初始化。当接收线110b电压为低时,低计数器415对来自接收环形振荡器375的循环进行计数,而当接收线电压为高(VDD)时,高计数器420对来自接收环形振荡器375的循环进行计数。比较器425由此在每个位时间周期结束时通过比较来自低计数器415的低计数(CL)和来自高计数器420的高计数(CH)来执行解调位决定。该些位周期可以确定自无论何时由接收线110b被放电而触发的高计数器420停止计数并且输出CH。计数器420可以相应地在每个位时间边界被初始化。在每个位周期的结束处,在一个实施例中,若CL大于CH,比较器425将经调制的数据信号382驱动为低,这对应于二进制零的解调。相反,在此类实施例中,若在位周期的结束处,CH大于CL,则比较器驱动经解调数据信号382为高,这对应于二进制一的解调。SIPO移位寄存器325响应于移位信号381的选通而寄存每个经解调位决定。
如本领域普通技术人员至此将领会的并取决于手头的具体应用,可以在本公开的设备的材料、装置、配置和使用方法上做出许多修改、替换和变动而不会脱离本公开的精神和范围。有鉴于此,本公开的范围不应当被限定于本文中所解说和描述的特定实施例(因为其仅是作为本公开的一些示例),而应当与所附权利要求及其功能等效方案完全相当。

Claims (22)

1.一种集成电路,包括:
第一处理器;
多个消息传递信号寄存器,其中所述第一处理器被配置成将消息传递信号的发射集写入到所述消息传递信号寄存器中;
多个GPIO引脚;
GPIO接口,其被配置成从所述第一处理器接收第一信号集,并且在所述多个GPIO引脚上将所述第一信号集的一部分作为GPIO信号传送到远程处理器;
专用发射引脚;以及
有限状态机(FSM),其被配置成从所述GPIO接口接收所述第一信号集的剩余部分,并且在所述专用发射引脚上将所述剩余部分作为虚拟GPIO信号的发射集来串行地传送到所述远程处理器,并且其中所述FSM进一步配置成从消息传递信号寄存器取回消息传递信号的发射集以及在所述专用发射引脚上向所述远程处理器串行地传送所述消息传递信号的发射集。
2.如权利要求1所述的集成电路,其特征在于,进一步包括:
专用接收引脚,其中所述FSM被进一步配置成在所述专用接收引脚上从所述远程处理器串行地接收虚拟GPIO信号的接收集以及向所述GPIO接口提供所述虚拟GPO信号的接收集。
3.如权利要求2所述的集成电路,其特征在于,所述GPIO接口被进一步配置成从所述GPIO引脚接收GPIO信号的接收集以及向所述第一处理器传送所述GPIO信号的接收集。
4.如权利要求1所述的集成电路,其特征在于,所述第一处理器包括应用处理器。
5.如权利要求1所述的集成电路,其特征在于,所述第一处理器包括调制解调器处理器。
6.如权利要求2所述的集成电路,其特征在于,所述FSM包括并入串出(PISO)移位寄存器和串入并出(SIPO)移位寄存器。
7.如权利要求2所述的集成电路,其特征在于,所述FSM被进一步配置成在帧中串行地传送所述虚拟GPIO信号的发射集和所述消息传递信号的发射集,每个帧由开始位和结束位划界。
8.如权利要求7所述的集成电路,其特征在于,所述FSM被进一步配置成通过检测未能接收到所述帧中的一者的结束位来检测所述远程处理器的故障。
9.如权利要求3所述的集成电路,其特征在于,所述FSM被进一步配置成响应于外部时钟的循环来串行地传送所述虚拟GPIO信号的发射集和所述消息传递信号的发射集。
10.如权利要求9所述的集成电路,其特征在于,所述FSM被进一步配置成响应于所述外部时钟的第一时钟沿来串行地传送信号的发射集,以及响应于所述外部时钟的第二时钟沿来串行地接收所述接收集。
11.如权利要求3所述的集成电路,其特征在于,所述FSM被进一步配置成将信号的发射集作为经脉宽调制的信号来串行地传送。
12.如权利要求11所述的集成电路,其特征在于,所述FSM包括振荡器以及用以对来自振荡器的振荡进行计数的至少一个计数器,并且其中所述FSM被进一步配置成响应于来自所述至少一个计数器的计数为每个经脉宽调制的信号确定脉宽。
13.如权利要求12所述的集成电路,其特征在于,所述振荡器是环形振荡器。
14.如权利要求11所述的集成电路,其特征在于,所述FSM被进一步配置成生成每个经脉宽调制的信号以具有第一脉宽或第二脉宽,其中所述第二脉宽大于所述第一脉宽。
15.一种方法,包括:
在GPIO接口处从第一处理器接收GPIO信号集;
通过专用GPIO引脚向远程处理器传送所述GPIO信号集的一部分;
510:
在专用发射引脚上将所述GPIO信号集的剩余部分作为虚拟GPIO信号来串行地传送到所述远程处理器;以及
从由所述第一处理器写入的消息传递信号寄存器取回消息传递信号并且在所述专用发射引脚上向所述远程处理器串行地传送所取回的消息传递信号。
16.如权利要求15所述的方法,其特征在于,进一步包括:
在专用接收引脚上从所述远程处理器串行地接收虚拟GPIO信号的接收集;
在所述专用GPIO引脚上从所述远程处理器串行地接收GPIO信号的接收集;以及
通过所述GPIO接口向所述第一处理器提供所述虚拟GPIO信号的接收集和所述GPIO信号的接收集。
17.如权利要求16所述的方法,其特征在于,进一步包括:
在所述专用接收引脚上从所述远程处理器串行地接收消息传递信号的接收集;
根据所述消息传递信号的接收集的地址将所述消息传递信号接收集写入到所述消息传递信号寄存器中;以及
由所述第一处理器从所述消息传递信号寄存器取回所述消息传递信号的接收集。
18.如权利要求17所述的方法,其特征在于,串行地传送所述虚拟GPIO信号和检索到的消息传递信号是响应于外部时钟的循环。
19.如权利要求17所述的方法,其特征在于,串行地传送所述虚拟GPIO信号和所取回的消息传递信号包括对在所述专用发射引脚上传送的信号进行脉宽调制。
20.一种集成电路,包括:
第一处理器;
多个消息传递信号寄存器,其中所述第一处理器被配置成将消息传递信号的发射集写入到所述消息传递信号寄存器中;
多个GPIO引脚;
GPIO接口,其被配置成从所述处理器接收第一信号集,并且在所述多个GPIO引脚上将所述第一信号集的一部分作为GPIO信号传送到远程处理器;
专用发射引脚;以及
用于执行以下操作的装置:从所述GPIO接口接收所述第一信号集的剩余部分,并且在所述专用发射引脚上将所述剩余部分作为虚拟GPIO信号的发射集串行地传送到所述远程处理器,以及从消息传递信号寄存器取回消息传递信号的发射集以及在所述专用发射引脚上向所述远程处理器串行地传送所述消息传递信号的发射集。
21.如权利要求20所述的集成电路,其特征在于,所述装置被配置成响应于外部时钟的循环来串行地传送这些发射集。
22.如权利要求20所述的集成电路,其特征在于,进一步包括振荡器;并且其中所述装置被配置成响应于对于来自所述振荡器的振荡的计数而将这些发射集作为经脉宽调制的信号来串行地传送。
CN201580020626.1A 2014-04-21 2015-04-15 混合虚拟gpio Active CN106233273B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461982286P 2014-04-21 2014-04-21
US61/982,286 2014-04-21
US14/533,431 US9619427B2 (en) 2014-04-21 2014-11-05 Hybrid virtual GPIO
US14/533,431 2014-11-05
PCT/US2015/026033 WO2015164152A1 (en) 2014-04-21 2015-04-15 Hybrid virtual gpio

Publications (2)

Publication Number Publication Date
CN106233273A true CN106233273A (zh) 2016-12-14
CN106233273B CN106233273B (zh) 2019-05-10

Family

ID=54322155

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580020626.1A Active CN106233273B (zh) 2014-04-21 2015-04-15 混合虚拟gpio

Country Status (10)

Country Link
US (1) US9619427B2 (zh)
EP (1) EP3134819B1 (zh)
JP (1) JP6538715B2 (zh)
KR (1) KR102287708B1 (zh)
CN (1) CN106233273B (zh)
BR (1) BR112016024354A2 (zh)
ES (1) ES2693538T3 (zh)
HU (1) HUE040709T2 (zh)
MX (1) MX2016013305A (zh)
WO (1) WO2015164152A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113204507A (zh) * 2021-04-25 2021-08-03 山东英信计算机技术有限公司 一种通用输入输出数据传输方法、装置、设备及介质

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9971666B2 (en) 2015-03-06 2018-05-15 Qualcomm Incorporated Technique of link state detection and wakeup in power state oblivious 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
US10146727B2 (en) 2015-04-14 2018-12-04 Qualcomm Incorporated Enhanced virtual GPIO with multi-mode modulation
US20170168966A1 (en) * 2015-12-10 2017-06-15 Qualcomm Incorporated Optimal latency packetizer finite state machine for messaging and input/output transfer interfaces
CN105553557B (zh) * 2015-12-16 2019-04-19 华进半导体封装先导技术研发中心有限公司 光纤通信光接收单元结构
EP3200033B1 (de) * 2016-01-29 2019-07-10 Siemens Aktiengesellschaft Anordnung mit zumindest zwei peripherie-einheiten und mit einem sensor
US10467154B2 (en) * 2017-02-10 2019-11-05 Qualcomm Incorporated Multi-port multi-sideband-GPIO consolidation technique over a multi-drop serial bus
US10482055B2 (en) * 2017-05-10 2019-11-19 Qualcomm Incorporated Hardware event priority sensitive programmable transmit wait-window for virtual GPIO finite state machine
US11880314B1 (en) * 2018-07-27 2024-01-23 Dialog Semiconductor B.V. Microcontroller for driving an external device
KR102767055B1 (ko) * 2019-01-25 2025-02-14 삼성전자주식회사 반도체 집적 회로 및 그것의 동작 방법
CN113568850B (zh) * 2020-04-29 2024-12-31 杭州海康威视数字技术股份有限公司 数据传输方法、装置、电子设备及存储介质
US11513991B2 (en) * 2020-10-01 2022-11-29 Qualcomm Incorporated Batch operation across an interface
KR20230049421A (ko) * 2021-10-06 2023-04-13 삼성전자주식회사 데이터를 처리하는 전자 장치 및 그 방법
KR20240032376A (ko) * 2022-09-02 2024-03-12 주식회사 엘엑스세미콘 반도체 장치 및 이의 통신 방법
US20250301030A1 (en) * 2024-03-19 2025-09-25 Nxp Usa, Inc. Method and apparatus for encoding and multiplexing a stream in a serial channel

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050135424A1 (en) * 2003-11-19 2005-06-23 Seiko Epson Corporation Synchronous/asynchronous interface circuit and electronic device
CN1893696A (zh) * 2005-07-04 2007-01-10 中兴通讯股份有限公司 一种双模终端及其内部芯片间控制和通信的方法
CN102262557A (zh) * 2010-05-25 2011-11-30 运软网络科技(上海)有限公司 通过总线架构构建虚拟机监控器的方法及性能服务框架

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3483913B2 (ja) * 1993-08-25 2004-01-06 株式会社日立製作所 データ転送制御方式
US20020091826A1 (en) 2000-10-13 2002-07-11 Guillaume Comeau Method and apparatus for interprocessor communication and peripheral sharing
WO2003019391A2 (en) 2001-08-24 2003-03-06 Intel Corporation A general input/output architecture protocol and related methods to manage data integrity
US20030061431A1 (en) 2001-09-21 2003-03-27 Intel Corporation Multiple channel interface for communications between devices
US7260660B1 (en) 2004-05-21 2007-08-21 Zilog, Inc. Flow control by supplying a remote start bit onto a single-wire bus
CA2576508A1 (en) 2004-08-04 2006-02-16 Osa Technologies, Inc. Software and firmware adaptation for unanticipated/changing hardware environments
US8510487B2 (en) * 2010-02-11 2013-08-13 Silicon Image, Inc. Hybrid interface for serial and parallel communication
JP2011234199A (ja) * 2010-04-28 2011-11-17 Sony Corp 通信装置、及びデータ伝送方法
US9129072B2 (en) * 2012-10-15 2015-09-08 Qualcomm Incorporated Virtual GPIO

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050135424A1 (en) * 2003-11-19 2005-06-23 Seiko Epson Corporation Synchronous/asynchronous interface circuit and electronic device
US7395450B2 (en) * 2003-11-19 2008-07-01 Seiko Epson Corporation Synchronous/asynchronous interface circuit and electronic device
CN1893696A (zh) * 2005-07-04 2007-01-10 中兴通讯股份有限公司 一种双模终端及其内部芯片间控制和通信的方法
CN102262557A (zh) * 2010-05-25 2011-11-30 运软网络科技(上海)有限公司 通过总线架构构建虚拟机监控器的方法及性能服务框架

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113204507A (zh) * 2021-04-25 2021-08-03 山东英信计算机技术有限公司 一种通用输入输出数据传输方法、装置、设备及介质

Also Published As

Publication number Publication date
ES2693538T3 (es) 2018-12-12
JP2017514230A (ja) 2017-06-01
EP3134819A1 (en) 2017-03-01
MX2016013305A (es) 2017-01-18
WO2015164152A1 (en) 2015-10-29
US20150301979A1 (en) 2015-10-22
JP6538715B2 (ja) 2019-07-03
KR20160145771A (ko) 2016-12-20
KR102287708B1 (ko) 2021-08-06
EP3134819B1 (en) 2018-08-15
US9619427B2 (en) 2017-04-11
HUE040709T2 (hu) 2019-03-28
CN106233273B (zh) 2019-05-10
BR112016024354A2 (pt) 2017-08-15

Similar Documents

Publication Publication Date Title
CN106233273A (zh) 混合虚拟gpio
US10241953B2 (en) Dynamic data-link selection over common physical interface
CN104737148B (zh) 虚拟gpio
US9880965B2 (en) Variable frame length virtual GPIO with a modified UART interface
CN108604219B (zh) 具有最优传输等待时间的串行通信链路
KR101823315B1 (ko) 가변 프레임 길이를 갖는 2-와이어 인터페이스 시스템에 대한 임피던스-기반 플로우 제어
US10146727B2 (en) Enhanced virtual GPIO with multi-mode modulation
US9747244B2 (en) Clockless virtual GPIO
EP3117330A1 (en) Clockless virtual gpio

Legal Events

Date Code Title Description
C06 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