CN104737148B - 虚拟gpio - Google Patents

虚拟gpio Download PDF

Info

Publication number
CN104737148B
CN104737148B CN201380053473.1A CN201380053473A CN104737148B CN 104737148 B CN104737148 B CN 104737148B CN 201380053473 A CN201380053473 A CN 201380053473A CN 104737148 B CN104737148 B CN 104737148B
Authority
CN
China
Prior art keywords
gpio
processor
pin
integrated circuit
collection
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.)
Active
Application number
CN201380053473.1A
Other languages
English (en)
Other versions
CN104737148A (zh
Inventor
L·米希拉
M·普拉萨德
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
Priority to CN201710675757.4A priority Critical patent/CN107273329B/zh
Publication of CN104737148A publication Critical patent/CN104737148A/zh
Application granted granted Critical
Publication of CN104737148B publication Critical patent/CN104737148B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • G06F13/4273Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Systems (AREA)
  • Telephone Function (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

提供了一种有限状态机,其响应于外部时钟的循环进行串行化虚拟GPIO信号和反串行化虚拟GPIO信号二者。该有限状态机将经串行化虚拟GPIO信号框定为各自由开始位和结束位划界的帧。

Description

虚拟GPIO
相关申请
本申请要求于2012年10月15日递交的美国临时申请No.61/714,118的权益,其内容通过引用完全被纳入于此。
技术领域
本申请涉及通用输入/输出(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架构的需求。
发明内容
提供了一种用于在各自具有处理器的两个集成电路之间进行通信的虚拟GPIO架构。每个集成电路还包括用于使用一组信号与远程处理器通信的GPIO接口。该组信号包括一组GPIO信号和一组虚拟GPIO信号。每个集成电路由此包括对应于该组GPIO信号的一组GPIO引脚。
与该组GPIO信号形成对比的是,该组虚拟GPIO信号并不在GPIO引脚上被发射。替换地,每个集成电路使用专用发射引脚和专用接收引脚来传送和接收该组虚拟GPIO信号。鉴于此,该组虚拟GPIO信号包括发射集和接收集。每个集成电路中的有限状态机(FSM)配置成通过该专用发射引脚向远程处理器串行地传送该发射集。该有限状态机进一步配置成在该专用接收引脚上从该远程处理器串行地接收虚拟GPIO信号的该接收集。
该处理器向该GPIO接口提供第一组信号。从该GPIO接口,该第一组信号的一部分作为第一组GPIO信号在第一组对应GPIO引脚上被传送到远程处理器。来自该处理器的该第一组信号的剩余部分由该GPIO接口并行地提供到FSM。该FSM能够接着将该剩余部分作为虚拟GPIO信号的发射集在专用发射引脚上串行地传送。
该GPIO接口还在第二组对应GPIO引脚上从该远程处理器接收第二组GPIO信号。此外,该FSM从该远程处理器串行地接收虚拟GPIO信号的接收集,并且并行地向该GPIO接口提供该接收集。该GPIO接口能够接着向该处理器提供第二组信号,该第二组信号包括来自该远程处理器的第二组GPIO信号、以及虚拟GPIO信号的接收集。
用这种方式,该处理器对于其向该GPIO接口提供的第一组信号是否包括任何虚拟GPIO信号是“不置可否”的。类似地,对于该处理器来说,它从该GPIO接口接收到的第二组信号是否包括任何虚拟GPIO信号并没有功能上的差别。该处理器由此不需要针对其与本文中所公开的虚拟GPIO架构的集成进行任何配置或者重编程。此外,该有限状态机独立于该处理器,因为其并非是由软件驱动的。该虚拟GPIO架构由此能够在该处理器处于休眠模式或以其他方式呈非活跃时独立地运作,这节省了功率。
一个处理器中的FSM在由开始位和结束位划界的帧中传送虚拟GPIO信号的发射集。远程处理器中的FSM由此将所传送的帧作为其虚拟GPIO信号的接收集来接收。通过监视其是否接收到包括了开始位和结束位二者的完整帧,一个处理器的FSM就能够检测出该远程处理器是否发生了故障。
附图说明
图1是示例虚拟GPIO架构的框图。
图2A是其中处理器与单个远程处理器通信的虚拟GPIO架构的高级框图。
图2B是其中处理器与两个远程处理器通信的虚拟GPIO架构的高级框图。
图3是虚拟GPIO有限状态机的框图。
图4解说了虚拟GPIO帧的传送与接收之间的时序关系。
图5是图1的GPIO架构所实践的方法的流程图。
本发明的实施例及其优势通过参考之后的详细描述而被最好地理解。应当领会,在一个或多个附图中,相同的参考标记被用来标识相同的元件
具体实施方式
提供了一种虚拟通用输入/输出(GPIO)架构,其使得系统能够将一对引脚使用为就如同这对引脚构成了更大数目的GPIO引脚一样。这一架构被视为是虚拟的,因为对于创建那些虚拟GPIO信号的系统级应用而言,这就如同那些虚拟GPIO信号正被容适在常规GPIO引脚上进行输入/输出一样。换句话说,具有本文中所公开的虚拟GPIO架构的片上系统(SoC)或处理器不会体验到GPIO信号与虚拟GPIO信号之间的功能性差异。然而,仅使用了两个引脚来传送和接收原本各自都需要它们自身专用的GPIO引脚对(若GPIO信号是对称的)的虚拟GPIO信号。
本文中所公开的虚拟GPIO架构可以针对容适移动电话或其他通信设备中的应用处理器与调制解调器处理器之间的IPC来讨论。然而,将领会,本文中所公开的虚拟GPIO电路和技术广泛应用于要求GPIO能力的片上系统(SoC)或者专用集成电路(ASIC)。
所公开的虚拟GPIO架构使得发射节点的健康对于接收节点来说是透明的。这是重要的优势,在软件实现的调试阶段期间尤其如此,因其向接收处理器指示了发射处理器变为不起作用的时间。
为了使得能够实现此类稳健的虚拟GPIO能力,每个集成电路包括耦合到电路板上的发射线的专用发射引脚以及耦合到该电路板的接收线的专用接收引脚。鉴于此,虚拟GPIO信号可以被划分为用于在该发射线上进行传送的发射集和用于在该接收线上进行接收的接收集。如果信令是对称的,那么每个处理器的发射集中信号的数目是相同的。然而,本文中所公开的虚拟GPIO架构能够容适不对称信令,其中一个处理器的虚拟GPIO信号的发射集与远程处理器的发射集的大小不相同。
现在转到附图,图1针对移动电话或其他通信设备中对应集成电路中的应用处理器集成电路100和调制解调器处理器集成电路105来解说虚拟GPIO架构101。因为每个集成电路耦合到专用的发射线和专用的接收线,所以应用处理器100的发射线110a由此是调制解调器处理器105的接收线。类似地,调制解调器处理器105的发射线110b是应用处理器100的接收线。这些线或导线被承载在电路板(由虚线150指示)或者集成电路100和105之间的其他物理互连上。每个集成电路包括耦合到对应发射线(例如,调制解调器处理器105的线110b)的专用发射引脚。类似地,每个处理器包括耦合到对应接收线(例如,调制解调器处理器105的线110a)的专用接收引脚。每个集成电路中的有限状态机(FSM)115使用这些专用线和引脚,参考来自外部时钟源(例如,32KHz休眠时钟)的外部时钟信号来控制传送和接收。
如在GPIO领域所已知的,每个处理器包括其用来与GPIO引脚对接的GPIO接口103。有利地,GPIO接口在虚拟GPIO架构101中可以是不变的。换句话说,每个处理器以常规方式通过其GPIO接口103接收和传送信号,从而虚拟GPIO架构101对于处理器100和105而言是透明的。通过每个GPIO接口103处理的这些信号的特定部分可以作为GPIO信号130在常规GPIO引脚125上被发射和接收。但是,通过GPIO接口103处理的这些信号的剩余部分并不通过常规GPIO引脚125被发射或接收。替代地,该剩余部分包括使用专用发射引脚和专用接收引脚通过FSM 115来传送和接收的多个虚拟GPIO信号135。
通过GPIO接口103处理的这些信号的此剩余部分被指定为虚拟GPIO信号135,因为它们并不如常规GPIO信号130的情形中那样各自具有它们自身专用的引脚。这十分有利,因为每个处理器核不要求对其GPIO接口103的改组,而虚拟GPIO架构101达成了与其中虚拟GPIO信号135将各自要求其自身引脚的常规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的有限状态机来容适的,所以这些处理器核可以处于休眠或者其他类型的休止状态,却能够接收虚拟GPIO信号135。以这种方式,虚拟GPIO架构101不仅有利地节约了每个GPIO接口103的引脚的数目,而且也是低功率的。
如本文中所使用的,“引脚”是覆盖了集成电路用来耦合到电路板上或者其他物理互连(例如,封装互连或者穿孔式通孔互连)上的导线的结构(诸如焊盘或实际引脚)的通用术语。例如,若每个集成电路具有十六个GPIO引脚125,那么这些引脚可以配置成容适八个对称GPIO信号130(为了解说清楚起见,图1中仅示出了四个常规GPIO信号#1到#4)或者十六个不对称GPIO信号130。此外,每个集成电路能够使用线110a和110b来容适多个(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信号中选定的若干信号上的改变而接收中断信号。针对虚拟GPIO信号135而言,调制解调器功率管理器(MPM)140按通过中断配置寄存器145被编程的方式来监视这些选定的GPIO信号。每个虚拟GPIO信号135具有对应的中断配置寄存器145。如果虚拟GPIO信号135被要求响应于该信号改变状态而生成中断,那么对应的配置寄存器145将被相应地编程。类似地,如果虚拟GPIO信号135是无论该信号是否改变了状态均不生成中断的信号,那么对应的中断配置寄存器也将被相应地编程。MPM 140也可以包括有限状态机。由此,就像FSM 115,MPM 140是低功率的并且无论其处理器是处于休眠模式还是某种其他休止状态均呈活跃。
虚拟GPIO信号135可以被细分为发射集和接收集。在对称系统中,每个集合可以具有相同的数目。然而,将会领会,虚拟GPIO架构101是有利的,因为其能够现成地容适其中虚拟GPIO信号135的发射集和接收集具有不同大小的不对称信令实施例。无论架构101是对称的还是不对称的,每个FSM 115并行地从GPIO接口103接收虚拟GPIO信号135的发射集,并行的意义是指虚拟GPIO信号135的该发射集中的每个信号被承载在GPIO接口103与FSM 115之间的该信号自身的导线106上。与之形成对比的是,由FSM 115对此发射集所做的结果传输发生在单个发射引脚240上,如针对图2A所讨论的。虚拟GPIO信号的该发射集接着变成远程处理器的接收集。该远程处理器的FSM接着反串行化该接收集,以使得其可以并行地呈递给GPIO接口103。
每个FSM 115包括存储虚拟GPIO信号135的发射集的先前状态的配置寄存器107。以这种方式,每个FSM 115能够监视从GPIO接口103接收到的发射集的当前状态,并且仅在当前状态相对于先前状态而言改变了时才触发发射集的串行传输。换句话说,FSM 115将仅在通过配置寄存器107中存储先前状态监测到发射集内的一个或多个信号改变了状态时才触发发射集的串行传输。
如以上所讨论的,每个FSM 115作为串行器/反串行器来串行化虚拟GPIO信号135的发射集并且反串行化虚拟GPIO信号135的接收集。图3是FSM 115的框图用以更好地解说这些操作。FSM 115经由GPIO接口103(图1)通过复用模块300与处理器核交换虚拟GPIO信号135。在一个实施例中,FSM 115包括若发射集中有改变则将授权在发射线110a上传送虚拟GPIO信号135的发射集的逻辑电路301。逻辑电路301由此将虚拟GPIO信号135的发射集的当前状态与存储在配置寄存器107中的发射信号的该集合的先前状态作比较。例如,逻辑电路301可以包括异或门310以执行该比较。复用模块300将该发射集并行加载到并入串出(PISO)移位寄存器315。若来自异或门310的使能信号320走高(指示发射集的当前状态与先前状态之间有改变),则PISO移位寄存器315被启用以响应于外部时钟120的循环,串行地将其内容移出到发射线110a上。
FSM 115还使用串入并出(SIPO)移位寄存器325用类似的方式将虚拟GPIO信号的接收集反串行化。虚拟GPIO信号135的接收集由远程处理器生成并且由远程处理器传送到接收线110b上。该虚拟GPIO信号135的接收集响应于外部时钟120的循环被成功地移到SIPO移位寄存器325中。如本文中所进一步讨论的,FSM 115被配置成在具有单独开始位和结束位的帧中传送该发射集并且接收虚拟GPIO信号135的接收集。
这些帧具有预定义的大小。在一个实施例中,帧大小可以被固定为长达特定数目的位。若虚拟GPIO信号的发射集小于此固定大小,那么每帧内未被使用的位可以是随意(don't care)值。替换地,每个FSM 115可以被配置成取决于给定应用所需的位的数目而变更所发射的帧的大小。
为了检测收到虚拟GPIO信号135的接收集的完整帧,FSM 115可以包括在收到帧的开始位后计数外部时钟120的必要循环数目的逻辑电路350。例如,假设接收集包括响应于外部时钟120的十个循环所接收到的十个虚拟GPIO信号。在检测到开始位并且等待了外部时钟120的另外十个循环后,逻辑电路350将接着期望收到结束位。如果相应地检测到了结束位,那么逻辑电路350可以接着选通输出锁存器351来并行接收已作为完整帧移入SIPO移位寄存器325的虚拟GPIO信号的接收集。被锁存的虚拟GPIO信号的接收集接着可以通过复用模块300被呈递给GPIO接口103。
再次参照PISO移位寄存器315,将会领会,该寄存器被配置成将虚拟GPIO信号的发射集用开始位和结束位来框定。虚拟GPIO信号的发射集由此在由开始位和结束位划界的帧中被传送。因为处理器的发射集变成远程处理器的接收集,所以该接收集也相应被框定。该框定是有利的,因为每个处理器由此可以监视远程处理器的健康而不需要任何的附加专用引脚。例如,每个FSM 115可以配置成在默认状态(虚拟GPIO信号的发射集的当前状态相比于先前状态没有改变)期间将其专用发射引脚240弱拉(并因此将发射线110a弱拉)至电源电压。对于此类实施例而言,开始位将会是逻辑零,以使得为了传送开始位,FSM 115将发射线110a接地。用这种方式,每个FSM 115可以通过检测接收线110b被拉向接地而现成地检测出收到开始位。在一个实施例中,开始位和停止位是逻辑互补的。
存在处理器发生故障使得其不恰适地将其发射线110a拉到接地的可能性。该远程处理器会由此将这一情况检测为开始位,并且逻辑电路350会相应地开始向着帧的结束进行计数。但是,结束位在该实施例中是逻辑1,这样每个FSM 115将发射线110a充电至电源电压以信令通知帧传输的结束。若处理器发生了故障使得远程FSM检测到被视为开始位的信号,则逻辑电路350将不会检测到结束位,并且将会相应告知其处理器有关远程处理器的故障。
图4示出了针对用于虚拟GPIO帧400的传送和接收的外部时钟120的示例性时序。为了允许有足够的建立时间来进行接收,传输应当参照第一时钟沿来发生,并且参照剩余的时钟沿接收。例如,PISO移位寄存器315中的位可以响应于外部时钟120的下降沿或负沿而被移出以用于在发射线110a上传输。相反地,接收线110b上收到的位可以响应于时钟120的上升沿或正沿而被移入SIPO移位寄存器325。
为使一个处理器检测到远程处理器中的非活跃状态,每个FSM 115可以被配置成在默认状态(其中没有帧要发射)中弱拉高其发射线。开始位和停止位具有相反的逻辑状态。开始位405可以由此为零,以使得发射线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信号的接收集可以接着通过GPIO接口103被相应地提供到处理器核。
相对慢的外部时钟120(诸如32KHz休眠时钟)对于IPC的信令要求来说是充足的。例如,假设虚拟GPIO信号的传输的最小建立和保持要求各自为两纳秒,并且虚拟GPIO FSM处收到外部时钟120的最大预期领先或滞后为六纳秒。能够容易地示出,外部时钟120的结果所得的最大频率将会是62MHz。诸如来自休眠时钟的32KHz频率由此会为此类实施例提供非常大的安全边际。
图5的流程图中总结了架构101的操作方法。该方法始于GPIO接口在步骤500从其处理器接收一组信号。在步骤505该组信号接着从该GPIO接口被提供到FSM。在步骤510,FSM响应于外部时钟的循环,在专用发射引脚上串行地发射该组信号。
考虑所公开的虚拟GPIO架构的优势:仅需要两个引脚以及共用时钟源,而任何数目的虚拟GPIO信号能通过有限状态机被串行化或反串行化。仅有的限制是对虚拟GPIO信号参照外部时钟120和任何预期的时钟滞后或领先量的时序要求。此外,不需要任何其他引脚来使得一个处理器的健康对于对方处理器透明。
如本领域普通技术人员至此将会领会并取决于手头的具体应用,可以在本公开的设备的材料、装置、配置和使用方法上做出许多修改、替换和变动而不会脱离本公开的精神和范围。有鉴于此,本公开的范围不应当被限定于本文中所解说和描述的特定实施例(因为其仅是藉其一些示例来解说和描述的),而应当与所附权利要求及其功能等同方案完全相当。

Claims (20)

1.一种集成电路,包括:
处理器;
多个GPIO引脚;
配置成从所述处理器接收第一组GPIO信号以及从所述处理器接收第二组GPIO信号的GPIO接口,其中所述GPIO接口被进一步配置成在所述GPIO引脚中的对应GPIO引脚上向远程处理器传送所述第二组GPIO信号;
专用发射引脚;以及
有限状态机,其配置成从所述GPIO接口接收所述第一组GPIO信号,并且响应于外部时钟的循环,在所述专用发射引脚上将所述第一组GPIO信号作为虚拟GPIO信号的发射集串行地传送到所述远程处理器。
2.如权利要求1所述的集成电路,其特征在于,进一步包括专用接收引脚,所述有限状态机进一步配置成响应于所述外部时钟的循环,在所述专用接收引脚上从所述远程处理器串行地接收虚拟GPIO信号的接收集,并且向所述GPIO接口提供虚拟GPIO信号的所述接收集。
3.如权利要求1所述的集成电路,其特征在于,所述处理器包括应用处理器。
4.如权利要求1所述的集成电路,其特征在于,所述处理器包括调制解调器处理器。
5.如权利要求2所述的集成电路,其特征在于,所述有限状态机包括并入串出(PISO)移位寄存器和串入并出(SIPO)移位寄存器。
6.如权利要求1所述的集成电路,其特征在于,所述有限状态机进一步配置成在由开始位和结束位划界的帧中串行地传送虚拟GPIO信号的所述发射集。
7.如权利要求2所述的集成电路,其特征在于,所述有限状态机进一步配置成在由开始位和结束位划界的帧中串行地接收虚拟GPIO信号的所述接收集。
8.如权利要求7所述的集成电路,其特征在于,所述有限状态机进一步配置成通过检测未能接收到所述帧的所述结束位来检测所述远程处理器的故障。
9.如权利要求2所述的集成电路,其特征在于,所述有限状态机被配置成响应于所述外部时钟的第一时钟沿来串行地传送虚拟GPIO信号的所述发射集,并且响应于所述外部时钟的相反第二时钟沿来串行地接收虚拟GPIO信号的所述接收集。
10.如权利要求9所述的集成电路,其特征在于,所述第一时钟沿是上升时钟沿,并且其中所述第二时钟沿是下降时钟沿。
11.如权利要求1所述的集成电路,其特征在于,所述有限状态机被进一步配置成将虚拟GPIO信号的所述发射集的当前状态与先前状态进行比较,并且其中所述有限状态机进一步配置成在所述当前状态相比于所述先前状态改变了时串行地传送所述发射集,所述有限状态机进一步配置成在所述当前状态相比于所述先前状态未改变时维持所述专用发射引脚上的默认逻辑状态。
12.如权利要求11所述的集成电路,其特征在于,所述有限状态机进一步配置成在由开始位和结束位划界的帧中串行地传送虚拟GPIO信号的所述发射集,并且其中所述开始位具有与所述默认逻辑状态不同的逻辑状态。
13.如权利要求12所述的集成电路,其特征在于,所述结束位包括所述默认逻辑状态。
14.一种用于虚拟GPIO的方法,包括:
在GPIO接口处,从处理器接收第一组GPIO信号以及从所述处理器接收第二组GPIO信号,
从所述GPIO接口通过对应GPIO引脚向远程处理器传送所述第二组GPIO信号;
从所述GPIO接口向有限状态机并行地提供所述第一组GPIO信号;并且
在所述有限状态机中,响应于外部时钟的循环,在专用发射引脚上将所述第一组GPIO信号作为虚拟GPIO信号的发射集来串行地传送到所述远程处理器。
15.如权利要求14所述的方法,其特征在于,进一步包括:
在所述有限状态机处,响应于所述外部时钟的循环,在专用接收引脚上,从所述远程处理器串行地接收虚拟GPIO信号的接收集;
从所述有限状态机并行地向所述GPIO接口提供虚拟GPIO信号的所述接收集;并且
从所述GPIO接口将虚拟GPIO信号的所述接收集作为第二组信号提供到所述处理器。
16.一种集成电路,包括:
处理器;
多个GPIO引脚;
GPIO接口,其配置成从所述处理器接收第一组GPIO信号,并且通过所述GPIO引脚中的对应GPIO引脚,将所述第一组GPIO信号的一部分作为第一GPIO信号传送到远程处理器;
专用发射引脚;以及
第一装置,其用于从所述GPIO接口接收所述第一组GPIO信号的剩余部分并且用于响应于外部时钟的循环,在所述专用发射引脚上将所述剩余部分作为虚拟GPIO信号的发射集传送到所述远程处理器。
17.如权利要求16所述的集成电路,其特征在于,进一步包括:
专用接收引脚;以及
第二装置,其用于响应于所述外部时钟的循环,在所述专用接收引脚上从所述远程处理器串行地接收虚拟GPIO信号的接收集,并且用于将虚拟GPIO信号的所述接收集并行地呈递给所述GPIO接口。
18.如权利要求17所述的集成电路,其特征在于,所述GPIO接口进一步配置成向所述处理器提供第二组信号,并且其中所述第二组包括虚拟GPIO信号的所述接收集和来自所述远程处理器的第二组GPIO信号。
19.如权利要求16所述的集成电路,其特征在于,所述处理器包括移动电话中的应用处理器。
20.如权利要求16所述的集成电路,其特征在于,所述处理器包括移动电话中的调制解调器处理器。
CN201380053473.1A 2012-10-15 2013-10-15 虚拟gpio Active CN104737148B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710675757.4A CN107273329B (zh) 2012-10-15 2013-10-15 虚拟gpio

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261714118P 2012-10-15 2012-10-15
US61/714,118 2012-10-15
US13/750,839 2013-01-25
US13/750,839 US9129072B2 (en) 2012-10-15 2013-01-25 Virtual GPIO
PCT/US2013/065017 WO2014062661A1 (en) 2012-10-15 2013-10-15 Virtual gpio

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201710675757.4A Division CN107273329B (zh) 2012-10-15 2013-10-15 虚拟gpio

Publications (2)

Publication Number Publication Date
CN104737148A CN104737148A (zh) 2015-06-24
CN104737148B true CN104737148B (zh) 2017-09-05

Family

ID=50476494

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201710675757.4A Active CN107273329B (zh) 2012-10-15 2013-10-15 虚拟gpio
CN201380053473.1A Active CN104737148B (zh) 2012-10-15 2013-10-15 虚拟gpio

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201710675757.4A Active CN107273329B (zh) 2012-10-15 2013-10-15 虚拟gpio

Country Status (6)

Country Link
US (2) US9129072B2 (zh)
EP (1) EP2907035A1 (zh)
JP (1) JP6074052B2 (zh)
KR (2) KR101750672B1 (zh)
CN (2) CN107273329B (zh)
WO (1) WO2014062661A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9129072B2 (en) 2012-10-15 2015-09-08 Qualcomm Incorporated Virtual GPIO
US9417801B2 (en) * 2014-03-27 2016-08-16 Intel Corporation Virtual general-purpose I/O controller
US9619427B2 (en) * 2014-04-21 2017-04-11 Qualcomm Incorporated Hybrid virtual GPIO
US9880965B2 (en) 2014-09-11 2018-01-30 Qualcomm Incorporated Variable frame length virtual GPIO with a modified UART interface
EP3117330A1 (en) * 2014-11-13 2017-01-18 Qualcomm Incorporated Clockless virtual gpio
WO2016126874A1 (en) * 2015-02-04 2016-08-11 Qualcomm Incorporated Voltage mode and current mode device enumeration
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
US10241953B2 (en) * 2015-08-07 2019-03-26 Qualcomm Incorporated Dynamic data-link selection over common physical interface
US10140242B2 (en) * 2015-09-10 2018-11-27 Qualcomm Incorporated General purpose input/output (GPIO) signal bridging with I3C bus interfaces and virtualization in a multi-node network
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 华进半导体封装先导技术研发中心有限公司 光纤通信光接收单元结构
US10180925B2 (en) 2016-03-28 2019-01-15 Nxp Usa, Inc. Integrated circuit with pin level access to IO pins
US20180329837A1 (en) * 2017-05-10 2018-11-15 Qualcomm Incorporated Input/output direction decoding in mixed vgpio state exchange
CN109857485B (zh) * 2019-01-28 2021-06-15 山东华芯半导体有限公司 一种可编程gpio装置及基于该装置的时序实现方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998054664A1 (en) * 1997-05-30 1998-12-03 Quickturn Design Systems, Inc. Emulation system with time-multiplexed interconnect
US6020760A (en) * 1997-07-16 2000-02-01 Altera Corporation I/O buffer circuit with pin multiplexing
CN1387646A (zh) * 1999-11-05 2002-12-25 模拟装置公司 通用串行端口的结构和体系
EP2309395A1 (en) * 2008-07-31 2011-04-13 Actions Semiconductor Co., Ltd. Method for realizing pins time share multiplexing and a system-on-a-chip

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU4071499A (en) * 1998-05-08 1999-11-29 C-Port Corporation Digital communications processor
CN1149794C (zh) * 1999-07-27 2004-05-12 信息产业部武汉邮电科学研究院 以太网直接与物理信道适配的接口装置和方法
US6980563B2 (en) 2000-04-13 2005-12-27 International Business Machines Corporation Method and system for fast ethernet serial port multiplexing to reduce I/O pin count
WO2001095161A2 (en) * 2000-06-02 2001-12-13 Virtio Corporation Method and system for virtual prototyping
US6889331B2 (en) * 2001-08-29 2005-05-03 Analog Devices, Inc. Dynamic voltage control method and apparatus
KR20030019744A (ko) * 2001-08-30 2003-03-07 엘지전자 주식회사 개인휴대용 정보단말기의 외부 인터페이스장치 및인터페이스방법
US20040127207A1 (en) * 2002-09-25 2004-07-01 Interdigital Technology Corporation Programmable radio interface
US7131077B1 (en) * 2003-03-28 2006-10-31 Xilinx, Inc Using an embedded processor to implement a finite state machine
CN100351827C (zh) * 2004-04-13 2007-11-28 联发科技股份有限公司 引脚共用系统
US7484027B1 (en) * 2004-09-20 2009-01-27 Cypress Semiconductor Corporation Apparatus and method for configurable device pins
US7461210B1 (en) * 2006-04-14 2008-12-02 Tilera Corporation Managing set associative cache memory according to entry type
US7991296B1 (en) * 2006-11-10 2011-08-02 Marvell International Ltd. Method and apparatus for data frame synchronization and delineation
JP2010535453A (ja) 2007-08-02 2010-11-18 フェアチャイルド セミコンダクター コーポレイション シリアルストリームを介してlcd、カメラ、キーパッド、及びgpioデータをインタリーブ、及び、直列化/非直列化する方法、及び回路
US8249616B2 (en) * 2007-08-23 2012-08-21 Texas Instruments Incorporated Satellite (GPS) assisted clock apparatus, circuits, systems and processes for cellular terminals on asynchronous networks
GB2462997B (en) 2008-04-23 2010-09-08 Wolfson Microelectronics Plc Method and apparatus for configuring a device
CN101706552B (zh) * 2009-07-02 2011-09-28 苏州国芯科技有限公司 支持芯片不同引脚封装的可配置式片上测试模块
EP2330514B1 (en) 2009-12-07 2018-12-05 STMicroelectronics (Research & Development) Limited An integrated circuit package
TWI406135B (zh) 2010-03-09 2013-08-21 Nuvoton Technology Corp 資料傳輸系統與可編程序列周邊介面控制器
US8433838B2 (en) 2010-09-17 2013-04-30 International Business Machines Corporation Remote multiplexing devices on a serial peripheral interface bus
WO2012125504A2 (en) 2011-03-11 2012-09-20 Skyworks Solutions, Inc. Dual mode serial/parallel interface and use thereof in improved wireless devices and switching components
US9904646B2 (en) * 2011-09-27 2018-02-27 Microchip Technology Incorporated Virtual general purpose input/output for a microcontroller
CN103092810B (zh) * 2011-11-02 2017-03-01 飞思卡尔半导体公司 处理器、对处理器编程的方法以及电子设备
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
WO1998054664A1 (en) * 1997-05-30 1998-12-03 Quickturn Design Systems, Inc. Emulation system with time-multiplexed interconnect
US6020760A (en) * 1997-07-16 2000-02-01 Altera Corporation I/O buffer circuit with pin multiplexing
CN1387646A (zh) * 1999-11-05 2002-12-25 模拟装置公司 通用串行端口的结构和体系
EP2309395A1 (en) * 2008-07-31 2011-04-13 Actions Semiconductor Co., Ltd. Method for realizing pins time share multiplexing and a system-on-a-chip

Also Published As

Publication number Publication date
CN107273329B (zh) 2020-07-17
KR20160120806A (ko) 2016-10-18
US20150356053A1 (en) 2015-12-10
KR20150070291A (ko) 2015-06-24
WO2014062661A1 (en) 2014-04-24
EP2907035A1 (en) 2015-08-19
US9582456B2 (en) 2017-02-28
CN107273329A (zh) 2017-10-20
CN104737148A (zh) 2015-06-24
JP2016500174A (ja) 2016-01-07
US9129072B2 (en) 2015-09-08
JP6074052B2 (ja) 2017-02-01
KR101665985B1 (ko) 2016-10-13
US20140108679A1 (en) 2014-04-17
KR101750672B1 (ko) 2017-06-23

Similar Documents

Publication Publication Date Title
CN104737148B (zh) 虚拟gpio
CN106233273B (zh) 混合虚拟gpio
CN101329663B (zh) 一种实现片上系统管脚分时复用的装置及方法
US9250690B2 (en) Low-power modes of microcontroller operation with access to configurable input/output connectors
US9747244B2 (en) Clockless virtual GPIO
CN108604219B (zh) 具有最优传输等待时间的串行通信链路
CN104834620A (zh) 串行外设接口spi总线电路、实现方法以及电子设备
CN109992555A (zh) 一种供多路服务器共用的管理板卡
JP2014056374A (ja) 情報処理装置
EP3012829A1 (en) Display circuit of switchable external display ports
CN107436856B (zh) 具有直接控制的通信装置及相关方法
US20200225722A1 (en) Power management of discrete communication port components
CN104185826A (zh) 控制微服务器中的功率管理
CN105335322A (zh) 一种spi接口转换i2c总线接口的方法及转换器
US9710352B2 (en) Microcontroller with integrated monitoring capabilities for network applications
CN213069799U (zh) 数据处理控制板卡
CN103019994A (zh) 基于fpga的可变波特率串行通讯接口电路
CN211087224U (zh) 一种主板及计算机设备
CN111182514B (zh) 一种实现管脚分时复用方法、装置、设备和介质
CN107748626A (zh) 基于可编程片上系统的ps/2键盘鼠标切换和监测设备
CN108933882B (zh) 相机模组及电子设备
CN111624915A (zh) 一种上位机通过串口唤醒微控制器的方法
EP3117330A1 (en) Clockless virtual gpio

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant