具有经修改UART接口的可变帧长度虚拟GPIO的制作方法

文档序号:11935158阅读:151来源:国知局
具有经修改UART接口的可变帧长度虚拟GPIO的制作方法与工艺

相关申请的交叉引用

本申请要求于2014年9月11日提交的美国临时申请No.62/049,346的权益,且要求于2015年9月10日提交的美国专利申请No.14/850,809的申请日的优先权,这两篇申请通过援引纳入于此。

技术领域

本申请涉及通用输入/输出(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信号标识去往接收方处理器的信号。但是,消息接发信号在专用接收引脚(诸如在串行外围接口(SPI)或进程间通信(IPC)接口中的专用接收引脚)上被接收。各种消息接发信号可以由此在相同专用接收引脚上被接收。为了在消息接发信号之间进行区分,常规上消息接发信号包括地址报头,该地址报头包含地址。接收方集成电路基于该地址将接收到的消息接发信号路由到恰适的寄存器。例如,一种类型的消息接发信号可涉及所安装的卡(诸如无线卡或GPS卡)的身份。那么此类消息接发信号将具有映射到恰适寄存器的地址,从而对应的消息内容可被相应地寄存。通过解读寄存器的结果所得的内容,接收方处理器可随后解读所安装的卡的身份。其他类型的消息接发信号可按类似方式被路由到接收方集成电路中的恰适寄存器。

每个集成电路还包括用于使用GPIO信号传送集来与其他集成电路通信的虚拟GPIO接口。该虚拟GPIO接口被配置成以常规方式在GPIO引脚上向远程处理器传送该传送集的一部分。但是,该传送集的剩余部分不是在个体GPIO引脚上传送的。相反,该GPIO信号传送集的剩余部分由混合虚拟GPIO有限状态机(FSM)串行化为至少一个帧并在专用传送引脚上传送。该混合虚拟GPIO有限状态机还被配置成将这些消息接发信号串行化到该至少一个帧中或串行化为这些消息接发信号的(诸)专用帧。

为了排除对用于同步对虚拟GPIO信号和消息接发信号的传送和接收的外部时钟的需要,每个集成电路还包括经修改通用异步接收机/发射机(UART)接口。每个集成电路的混合虚拟FSM被配置成将虚拟GPIO信号帧和/或消息接发信号帧提供给对应的经修改UART接口。每个经修改UART接口被配置成通过以下操作来在UART传送引脚上传送这些帧中的每个比特:使用过采样时钟来对该比特进行过采样;以及在该传送引脚上向远程集成电路中的经修改UART接口的接收引脚传送结果所得的采样。接收方经修改UART接口使用其过采样时钟来对每个收到比特进行采样,并如UART领域已知的那样基于结果所得的采样来解码这些比特。结果所得的架构是相当有利的,因为仅使用单个传送引脚和单个接收引脚来同步结果所得的对虚拟GPIO信号和消息接发信号的传输并不需要外部时钟引脚。

附图简要说明

图1是其中每个集成电路均包括经修改UART接口的示例混合虚拟GPIO系统的框图。

图2A是其中处理器与单个远程处理器通信的混合虚拟GPIO系统的高级框图。

图2B是其中处理器与两个远程处理器通信的混合虚拟GPIO系统的高级示图。

图3是图1的系统中的经修改UART接口的高级电路图。

图4解说了图1的系统的虚拟GPIO/消息接发信号帧的格式。

图5解说了用于编程图1的系统中的虚拟GPIO和消息接发帧长度的一对编程帧。

图6解说了用于确收响应于图5的帧而被编程的帧长度的一对确收帧。

图7解说了用于图1的系统的示例专用虚拟GPIO帧和示例专用消息接发信号帧。

图8解说了用于图1的系统的包括虚拟GPIO信号和消息接发信号两者的混合帧。

图9是用于图1的系统中的集成电路的操作方法的流程图。

图10是纳入了图1的系统中所示的集成电路之一的示例设备的框图。

图11解说了不具有中间定时比特的帧、具有一个中间定时比特的帧、以及具有两个中间定时比特的帧。

本发明的各实施例及其优势通过参考以下详细描述而被最好地理解。应当领会,相同参考标记被用来标识在一个或多个附图中所解说的相同元件。

详细描述

提供了一种混合虚拟通用输入/输出(GPIO)架构或系统,其使得集成电路能够使用一对UART传送(TX)和接收(RX)引脚,如同它们构成了更大数目的GPIO引脚一样。这一架构被视为是虚拟的,因为对于创建GPIO信号的系统级应用而言,这就如同这些GPIO信号正被容适在常规GPIO引脚上进行输入/输出一样,而不管这些GPIO信号正作为虚拟GPIO信号被串行化和传送。换言之,具有本文中所公开的虚拟GPIO架构的片上系统(SoC)或其他集成电路不会经历GPIO信号与虚拟GPIO信号之间的功能差异。然而,使用了仅两个引脚来传送和接收原本各自需要它们自己的专用GPIO引脚对(若GPIO信号是对称的)的虚拟GPIO信号。

该系统被视为是“混合的”,因为其容适虚拟GPIO信号和消息接发信号两者。如前文所讨论的,常规GPIO系统中的GPIO信号专用于特定引脚。在对应GPIO引脚上接收到GPIO信号标识去往接收方处理器的信号。在所公开的混合虚拟GPIO架构中,每个集成电路包括耦合至虚拟GPIO接口的处理器。该处理器向该虚拟GPIO接口提供GPIO信号传送集。该虚拟GPIO接口以常规方式在相应GPIO引脚上驱动GPIO信号传送集的第一部分。该虚拟GPIO接口将该GPIO信号传送集的剩余第二部分提供给混合虚拟GPIO有限状态机(FSM)。该混合虚拟GPIO FSM被配置成将该GPIO信号传送集的剩余第二部分串行化为组织成一个或多个帧的虚拟GPIO信号传送集。经修改的虚拟UART接口被配置成在专用传送引脚上传送这些帧。帧内的位置将给定虚拟GPIO信号链接至其变换自的对应GPIO信号。

每个经修改UART接口包括专用接收引脚,其耦合至该系统中的传送方集成电路中的经修改UART接口的传送引脚。接收方经修改UART接口在专用接收引脚上接收虚拟GPIO信号传送集以形成虚拟GPIO信号接收集,该虚拟GPIO信号接收集随后在一个或多个帧中被提供给接收方集成电路的混合虚拟GPIO FSM。接收方集成电路中的混合虚拟GPIO FSM可随后使用该虚拟GPIO信号接收集中的给定虚拟GPIO信号的帧位置来将该给定虚拟GPIO信号变换成GPIO信号,该GPIO信号随后被呈现给接收方集成电路的虚拟GPIO接口,从而其可被提供给对应处理器。这是相当有利的,因为传送方集成电路中的处理器或接收方集成电路中的处理器均不要求任何软件或硬件修改:GPIO信号的虚拟化对于这些处理器而言是透明的,因为其在混合虚拟GPIO FSM和虚拟GPIO接口中被执行。

与GPIO信号形成对比,消息接发信号通常在专用接收引脚(诸如在串行外围接口(SPI)或进程间通信(IPC)接口中的专用接收引脚)上被接收。各种消息接发信号可以由此在相同专用接收引脚上被接收。为了在消息接发信号之间进行区分,常规上消息接发信号包括包含地址的地址报头。接收方集成电路基于该地址将接收到的消息接发信号路由到恰适的寄存器。例如,一种类型的消息接发信号可涉及所安装的卡(诸如无线卡或GPS卡)的身份。那么此类消息接发信号将具有映射到恰适寄存器的地址,从而对应的消息内容可被相应地寄存。通过解读寄存器的结果所得的内容,接收方处理器可随后解读所安装的卡的身份。其他类型的消息接发信号可按类似方式被路由到接收方集成电路中的恰适寄存器。

为了容适消息接发信号的传输,每个混合虚拟GPIO FSM被配置成包括用于对应处理器的消息接发寄存器集。每个处理器可将消息接发信号传送集写入这些消息接发寄存器。类似于对虚拟GPIO信号的标识,消息接发信号也可由它们在帧中的位置来标识。接收方混合虚拟GPIO有限状态机被配置成使用所接收到的消息接发信号的帧位置以将它们写入对应的消息接发寄存器。接收方集成电路中的处理器随后按常规方式从消息接发寄存器检索接收到的消息接发信号。如同虚拟GPIO信号的情形一样,由此对于每个处理器而言消息接发信号通过混合虚拟GPIO有限状态机被传送和接收是透明的。

可使用外部时钟来同步虚拟GPIO信号和消息接发信号从一个混合虚拟GPIO有限状态机到另一混合虚拟GPIO有限状态机的传送和接收。但是使用外部时钟是以时钟引脚为代价的。为了消除对时钟引脚的需要,每个混合虚拟GPIO有限状态机通过经修改UART接口耦合至其传送引脚。每个经修改UART接口与常规UART接口的不同之处在于不需要请求发送(RTS)引脚和清除发送(CTS)引脚。与常规UART信号形成对比,GPIO信号不需要流控制,因为它们是相对低带宽的信号。除非接收方集成电路的处理器无法操作,否则可由此假定接收方集成电路在正常操作期间总是准备好接收虚拟GPIO信号接收集。本文中所公开的经修改UART接口由此不需要常规UART流控制,诸如通过RTS和CTS引脚实现的流控制。然而,每个经修改UART接口利用如在常规UART接口中使用的UART过采样时钟。过采样时钟速率充分快于虚拟GPIO信号和消息接发信号的比特率,从而这些信号被过采样。例如,过采样时钟速率可以是比特率的16倍。然而,将领会,更快或更慢的过采样时钟速率可被用于替换的经修改UART接口实现。以下讨论将由此假定使用16X过采样时钟速率而不失一般性。

从传送方经修改UART接口至接收方经修改UART接口的通信是相对直接的:为了发送具有二进制1值的比特,传送方经修改UART接口可将其传送引脚驱动至电源电压VDD达由其16个过采样时钟循环确定的比特时段的历时。接收方经修改UART接口使用它自己的过采样时钟来对其比特时段进行计数。接收到的每个比特根据该过采样时钟被采样。接收方经修改UART接口包括配置成针对所接收到的每个比特采样作出二元判定的接收机。例如,如果所接收到的比特采样小于VDD/2,则所接收到的比特采样可被视为二进制0采样。相反,如果所接收到的比特采样大于VDD/2,则所接收到的比特采样可被视为二进制1采样。接收机由此可关于作出比特判定来针对每个比特时段确定其接收到大多数二进制1采样还是大多数二进制0采样。

混合虚拟GPIO系统中的每个集成电路由此包括虚拟GPIO接口、混合虚拟GPIO有限状态机、以及耦合至UART传送引脚和UART接收引脚的相应经修改UART接口。每个集成电路的处理器将GPIO信号传送集提供给虚拟GPIO接口,并且将消息接发信号传送集提供给混合虚拟GPIO FSM中的消息接发信号。GPIO信号传送集的第一部分可作为GPIO信号通过对应的第一GPIO引脚集从虚拟GPIO接口传送至远程处理器。来自传送方集成电路的处理器的该GPIO信号传送集的剩余第二部分被提供给混合虚拟GPIO FSM。混合虚拟GPIO FSM将这些GPIO信号的剩余第二部分串行化为虚拟GPIO信号传送集并将该虚拟GPIO信号传送集提供给经修改UART接口,从而它们能以帧的形式通过UART传送引脚被发送出去。混合虚拟GPIO FSM还将消息接发信号传送集串行化并将经串行化的消息接发信号集提供给其经修改UART接口。经修改UART接口被配置成以帧的形式通过传送引脚来传送经串行化的消息接发信号传送集。

接收方经修改UART接口处的接收与关于传送所讨论的类似地发生。具体而言,由传送方经修改UART接口传送的虚拟GPIO信号传送集是作为虚拟GPIO信号接收集来接收的。在常规GPIO引脚上传送的GPIO信号在接收方集成电路中的对应GPIO引脚上被接收。接收方集成电路中的虚拟GPIO接口以常规方式将GPIO引脚上所接收到的GPIO信号呈现给对应处理器。虚拟GPIO信号和消息接发信号的帧由接收方经修改UART接口解码并被提供给接收方集成电路中的混合虚拟GPIO FSM。接收方混合虚拟GPIO FSM将所接收到的消息接发信号写入对应的消息接发寄存器,从而它们可由接收方集成电路中的处理器检索。接收方混合虚拟GPIO FSM将所接收到的虚拟GPIO信号解串行化为呈现给虚拟GPIO接口的GPIO信号。虚拟GPIO接口随后可将结果所得的“解虚拟化”GPIO信号提供给接收方集成电路中的对应处理器。

与经修改UART接口形成对比,常规UART接口将另一对引脚用作控制协议。具体而言,UART接口通过在清除发送(CTS)引脚上断言在接收方UART接口处被接收的请求发送(RTS)引脚来指示其准备好接收数据。因此常规UART接口仅在其看到其CTS引脚被断言时才进行传送。结果所得的传输是以8比特帧的形式。由于对于常规GPIO信号而言没有必要进行流控制,因此经修改UART接口不同于常规UART接口之处在于CTS和RTS引脚被删除。另外,经修改UART接口被配置成使得能够使用将在经修改UART接口的传送引脚上被传送的可变大小的虚拟GPIO数据帧。此类修改是期望的,因为帧可以包括来自这些虚拟GPIO信号和/或消息接发信号的各1比特。用户可能需要将被虚拟化的相对较大数目的GPIO信号或者仅需要相对较小数目。类似地,用户可能需要将在来自混合虚拟GPIO接口的帧中被传送的相对较大数目的消息接发信号或相对较小数目的消息接发信号。取决于用户需求,固定的帧大小由此可能过小或过大。为了更改帧大小,每个混合虚拟GPIO FSM被配置成生成编程帧以供对应的经修改UART接口在传送引脚上传送。消息接发信号可包括通常在专用总线上传送的任何类型的信号。例如,消息接发信号可包括用于处理器的初始配置的集成电路间(I2C)信号。就像虚拟GPIO信号那样,消息接发信号可被划分成传送集和接收集。传送方经修改UART接口使用专用传送引脚来串行地传送消息接发信号传送集,从而接收方经修改UART接口可使用专用接收引脚来串行地接收消息接发信号接收集。

所公开的混合虚拟GPIO架构有两种主要实施例或实现。在第一实现中,在专用传送引脚上传送的每个帧包括报头,该报头标识该帧是包括虚拟GPIO信号传送集还是包括消息接发信号传送集。此类帧在本文中被标示为专用帧,因为它们专用于虚拟GPIO信号或专用于消息接发信号。在第二实现中,帧可包括虚拟GPIO信号和消息接发信号两者。第二实现的这些帧由此可在本文中被指定为混合帧,因为它们包括虚拟GPIO信号和消息接发信号两者。每个混合帧的扩展报头标识虚拟GPIO信号和消息接发信号的比特位置。不管帧类型如何,接收方混合虚拟GPIO FSM将所接收到的虚拟GPIO信号解串行化并将结果所得的经解串行化的虚拟GPIO信号提供给虚拟GPIO接口,从而它们可被呈现给接收方处理器,如同它们是常规GPIO信号一样。类似地,接收方混合虚拟GPIO FSM将所接收到的消息接发信号解串行化并将结果所得的经解串行化的消息接发信号写入恰适的消息接发寄存器,从而接收方处理器可以检索它们。每个传送方混合虚拟GPIO FSM通过开始比特和结束比特来对每个帧进行划界。接收方混合虚拟GPIO FSM确定每个收到帧是否包括开始比特和结束比特两者以监视传送方集成电路中的处理器是否已失败。此检测是相当有利的(尤其是在软件实现的调试阶段期间),因为其向接收方处理器指示传送方处理器变为无法操作的时间。

本文中所公开的混合虚拟GPIO架构将关于容适移动电话或其他通信设备中的主机处理器与外围集成电路之间的IPC来讨论。然而,将领会,本文中所公开的虚拟GPIO电路和技术广泛应用于要求GPIO能力的片上系统(SoC)或专用集成电路(ASIC)。现在转到附图,图1解说了包括应用处理器集成电路(IC)101和调制解调器处理器IC 105的混合虚拟GPIO系统100。集成电路101和105各自包括虚拟GPIO接口103、混合虚拟GPIO FSM 115和经修改UART接口116。应用处理器IC 101中的经修改UART接口116被配置成驱动传送引脚111,传送引脚111通过传输线(诸如电路板迹线)耦合至调制解调器处理器IC 105中的经修改UART接口116的接收引脚112。类似地,调制解调器处理器IC 105中的经修改UART接口116的传送引脚111耦合至应用处理器IC 100中的经修改UART接口116的接收引脚112。如本文中所使用的,“引脚”是涵盖集成电路用来耦合到电路板上的引线或其他合适的传输线的结构(诸如焊盘或实际引脚)的通用术语。

每个混合虚拟GPIO FSM 115监视以下所讨论的GPIO状态变化。在对应集成电路的上电复位(POR)处,每个UART接口116可被配置成对虚拟GPIO帧长度和消息接发信号帧长度使用相同波特率和相同设置。每个UART接口116也可以是由对应集成电路的处理器(CPU)102配置的软件,如由至每个UART接口116的CPU链路所指示的。

每个处理器102被配置成通过对应的虚拟GPIO接口103来传送和接收GPIO信号。具体而言,每个处理器102可将GPIO信号传送集呈现给对应的虚拟GPIO接口103以供传输至远程处理器。类似地,每个处理器102可从对应的虚拟GPIO接口103接收如从远程处理器传送的GPIO信号接收集。就GPIO信号传送集而言,GPIO信号的第一部分可在常规GPIO引脚125上被传送和接收,如GPIO信号130。为了解说清楚,在图1中针对每个虚拟GPIO接口103仅标记了范围从GPIO信号#1到GPIO信号#4的4个GPIO信号130。GPIO信号130的实际数目可以大于或小于4。从对应处理器102呈现给每个虚拟GPIO接口103的GPIO信号传送集的剩余部分不通过常规GPIO引脚125来传送或接收。取而代之,每个虚拟GPIO接口103将该剩余部分作为多个虚拟GPIO信号135提供给对应的混合虚拟GPIO FSM 115,从而它们可被串行化并以一个或多个虚拟GPIO信号帧的形式传送给集成电路101和105中的接收方集成电路。在系统100中,虚拟GPIO信号集135的范围从第一虚拟GPIO信号(#1)到第m虚拟GPIO信号(#m)。正整数m的值可取决于给定实现的需要而变化。

另外,每个处理器102可将消息接发信号传送集写入对应混合虚拟GPIO FSM 115中的消息接发寄存器集136。每个消息接发寄存器136对应于相应消息信号138的特定地址137。在系统100中,每个混合虚拟GPIO FSM 115被示为具有范围从0寄存器136到第M寄存器136的多个(M+1个)消息接发寄存器。正整数M的值可取决于给定实现的需要而变化。每个混合虚拟GPIO FSM 115将其消息接发信号传送集和虚拟GPIO信号传送集呈现给对应的经修改UART接口116,以下进一步解释。注意,虚拟GPIO信号135并非如常规GPIO信号130的情形中那样各自具有它们自己的专用引脚。这是相当有利的,因为与其中虚拟GPIO信号135将各自需要它们自己的GPIO引脚的常规GPIO实施例相比,混合虚拟GPIO系统100实现了集成电路101和105的引脚的显著减少。

混合虚拟GPIO系统(诸如系统100)中的集成电路可包括仅一个混合虚拟GPIO FSM 115或者可包括多个这些元件以用于与多个外部系统对接。图2A解说了其中集成电路200包括单个混合虚拟GPIO(vGPIO)FSM 115以用于与集成电路205(其包括它自己的单个混合虚拟GPIO FSM 115)中的远程处理器通信的混合虚拟GPIO系统。相反,图2B中所示的集成电路220包括用于分别与集成电路225和230中的远程处理器通信的混合虚拟GPIO FSM 115A和混合虚拟GPIO FSM 115B。就此而言,集成电路(诸如片上系统(SoC))可配置有容适与其他集成电路的混合虚拟GPIO信令所必需的那样多的混合虚拟GPIO FSM 115。不管集成电路可具有的混合虚拟GPIO FSM 115的数目如何,每个混合虚拟GPIO FSM 115使用它自己的专用传送引脚240和专用接收引脚245来通信,如图2A所指示的。

再次参照图1的系统100,由于虚拟GPIO信号135和消息接发信号138通过有限状态机(诸如混合虚拟GPIO FSM 115)被传送和接收,因此处理器102可以睡眠或处于另一种类型的休眠状态但仍然能够接收虚拟GPIO信号135和消息接发信号136。以这种方式,混合虚拟GPIO系统100不仅有利地节约了每个虚拟GPIO接口103的引脚数目,而且也是低功率的。就每个处理器102而言,GPIO信号130与虚拟GPIO信号135之间没有差异:它们均被当作按需通过GPIO接口103来传送和接收的GPIO信号。

处理器102可能需要响应于所选虚拟GPIO信号135的变化而接收中断信号。例如,调制解调器功率管理器(MPM)140可以监视所选虚拟GPIO信号135的状态(诸如通过中断配置寄存器(未解说)被编程)。每个虚拟GPIO信号135可具有对应的中断配置寄存器。如果要求虚拟GPIO信号135响应于该信号改变状态而生成中断,则对应的配置寄存器将被相应地编程。类似地,如果虚拟GPIO信号135是无论该信号是否改变状态都不生成中断的信号,则对应的中断配置寄存器也将被相应地编程。MPM 140也可包括有限状态机。由此,就像混合虚拟GPIO FSM 115一样,MPM 140是低功率的且无论其处理器102处于睡眠模式还是某种其他休眠状态都是活跃的。

虚拟GPIO信号135可被细分成传送集和接收集。类似地,消息接发信号136可被细分成传送集和接收集。在对称系统中,每个集合将具有相同数目。然而,将领会,混合虚拟GPIO系统100是有利的,因为其能够容易地容适其中虚拟GPIO信号135和消息接发信号136的传送集和接收集具有不同大小的非对称信令实施例。无论系统100是对称还是非对称的,每个混合虚拟GPIO FSM 115并行地从虚拟GPIO接口103接收虚拟GPIO信号135的传送集,因为这些传送集中的每个信号被携带在它自己的在虚拟GPIO接口103与对应的混合虚拟GPIO FSM 115之间的引线(未解说)上。相反,结果所得的由混合虚拟GPIO FSM 115对传送集的传输发生在单个传送引脚111上。

图3中更详细地示出了经修改UART接口116。来自对应的混合虚拟GPIO FSM(未解说)的虚拟GPIO信号或消息接发信号的传送集可在移位寄存器305中被接收。每16个16X过采样时钟300循环,移位寄存器305向过采样发射机310移出1比特。响应于过采样时钟300循环以及要传送的比特的二进制内容,过采样发射机310将传送引脚111驱动至电源电压VDD或接地。例如,过采样发射机310可将该传送引脚充电至电源电压VDD达16个过采样时钟300循环,以传送具有二进制值1的比特。相反,过采样发射机310可将该传送引脚放电至接地达16个过采样时钟300循环,以传送具有二进制值0的比特。

经修改UART接口116还包括响应于过采样时钟300循环来对接收引脚112上的收到信号进行采样的过采样接收机315。例如,过采样接收机315可将收到信号的每个采样与阈值电压(诸如VDD/2)作比较,以确定收到信号是二进制0还是二进制1。如果采样大于VDD/2,则过采样接收机315可认为该采样是二进制1比特的采样。相反,如果采样小于VDD/2,则过采样接收机315可认为该采样是二进制0比特的采样。解码器320通过确定在16个过采样时钟300循环上的大多数采样是二进制1采样还是二进制0采样来解码来自过采样接收机315的结果所得的采样。如果大多数采样是二进制1采样,则解码器320认为收到比特是二进制1比特。相反,如果大多数采样是二进制0采样,则解码器320认为收到比特是二进制0比特。每16个过采样时钟300循环,结果所得的比特被移入接收移位寄存器325。注意,由于相应的虚拟GPIO信号135和消息接发信号138相对较低的带宽,如先前所讨论的RTS或CTS控制不是必需的。在一个实施例中,经修改UART接口116可被认为包括用于响应于过采样时钟循环来在单个传送引脚上向远程第二处理器传送至少一个第一帧的装置。

现在将讨论由每个混合虚拟GPIO FSM 115进行的帧长度控制。帧长度是重要的,因为每个虚拟GPIO信号135和消息接发信号138可由其相对于传送或收到帧的位置来标识。传送方和接收方混合虚拟GPIO FSM 115两者由此必须使用相同帧长度大小,从而可以查明所接收到的虚拟GPIO信号135和消息接发信号138的身份。在一个实现中,帧的帧大小由报头确定为特定数目的比特长。图4中示出了示例专用帧400。报头405可包括两个功能比特——fn_0和fn_1。在一个实施例中,如果这两个功能比特均为0,则随后的比特是vGPIO信号135(专用帧400专用于虚拟GPIO信号135)。如果fn_0是0且fn_1等于1,则随后的比特可以是消息接发信号138(专用帧400专用于消息接发信号138)。如果fn_0是1且fn_1等于0,则随后的比特可以编程或改变专用帧400的长度。类似地,如果这两个功能比特均为1,则专用帧400中随后的比特表示远程处理器对先前所改变的期望帧长度的确收。如果虚拟GPIO信号传送集(或消息接发信号传送集)小于此固定帧大小,则每个专用帧400内未被使用的比特可以是无关紧要值。替换地,每个混合虚拟GPIO FSM 115可被配置成取决于给定应用所需的比特数而更改所传送帧的大小。

为了检测对完整专用帧400的接收,每个经修改UART接口116可包括在接收到专用帧400的开始比特406之后对UART过采样时钟循环的数目进行计数的逻辑电路(未解说)。例如,假设专用帧400的帧长度是10比特。那么该逻辑电路将在接收到开始比特406之后计数160个过采样时钟300循环。在等待另外160个过采样时钟循环之后,经修改UART接口116随后将期望收到结束或停止比特410。如果相应地检测到停止比特410,则经修改UART接口116可用完整的虚拟GPIO信号135或消息接发信号138帧来选通对应的混合虚拟GPIO FSM 115。锁存的收到虚拟GPIO信号集135随后可被呈现给虚拟GPIO接口103,如先前所讨论的。

通过开始比特406和停止比特410对每个专用帧400的这种组帧是有利的,因为每个处理器102随后能够监视远程处理器的健康,而无需任何附加专用引脚。例如,每个经修改UART接口116可被配置成在默认状态期间将其传送引脚111微弱地拉至电源电压VDD(虚拟GPIO信号135传送集的当前状态相对于先前状态未改变)。对于此类实施例而言开始比特406将为逻辑0,以使得经修改UART接口116可将其传送引脚111接地达开始比特406的历时。以此方式,每个接收方经修改UART接口116可通过检测其接收引脚112已被放电来容易地检测对开始比特406的接收。存在处理器102发生故障以使得其不恰适地将其传送引脚111拉至接地的可能性。接收方集成电路中的经修改UART接口116由此将这种情况检测为开始比特,并相应地开始朝专用帧400的结束进行计数。但是在此实施例中停止比特410是逻辑1,以使得每个经修改UART接口116将其传送引脚111充电至电源电压VDD达停止比特410的历时以发信令通知帧传输的结束。如果处理器102发生故障以使得接收方混合虚拟GPIO FSM 115检测到被认为是开始比特406的信号,则停止比特410将不会被检测到,从而接收方混合虚拟GPIO FSM 115可相应地向其处理器102通知远程处理器故障。

考虑专用帧400的优点:仅有两个功能比特的开销;可在仅一个专用传送引脚111上传送各种消息接发信号138和虚拟GPIO信号135。当专用帧400被用于编程专用帧长度时,该帧还可被指定为编程帧。图5中示出了用于设置专用帧长度的示例编程帧。编程帧500设置专用于虚拟GPIO信号的帧的长度。类似地,编程帧605设置专用于消息接发信号的帧的帧长度。预定义了用于定义帧长度(以及由此每个编程帧的长度)的比特数。由此,一旦混合虚拟GPIO FSM 115看到指示编程长度被设置的报头405(诸如先前所讨论的fn_0等于1且fn_1等于0),则其将从后续帧体中读取帧长度。就此而言,混合虚拟GPIO FSM 115需要知晓专用虚拟GPIO帧还是专用消息接发帧的长度被编程。由此,编程帧500和505的每个报头405后可跟随有帧类型比特510。例如,帧类型比特510等于1可表示专用虚拟GPIO帧长度被编程,而帧类型比特510等于0可表示专用消息接发信号帧长度被编程。在一个实施例中,每个编程帧500和505包括范围从比特0到比特4的5个编程比特。每个比特是2的幂的系数,如其名称所标识的。换言之,比特0是乘以20的系数,比特1是乘以21的系数,比特2是乘以22的系数,比特3是乘以23的系数,且比特4是乘以24的系数。这5个编程比特由此可以编程从0到31的帧长度。附加编程比特将使得能够编程多达63的帧长度,等等。在图5中,编程帧500的编程比特将新的专用虚拟GPIO帧长度设置为10比特。类似地,编程帧505的编程比特将新的专用消息接发帧长度设置为14比特。

当接收方混合虚拟GPIO FSM 115接收到编程帧(诸如帧500或505)时,其可行进至使用确收帧来确收所定义的帧长度。图6中示出了示例确收帧。确收帧600是虚拟GPIO确收帧,而帧605是消息接发信号确收帧。每个确收帧600和605包括报头405,其中功能比特将该帧标识为确收帧(诸如fn_0等于1且fn_1等于1,如先前所讨论的)。跟随在报头405后的帧类型比特610标识确收帧类型。例如,虚拟GPIO确收帧600由帧类型比特610等于逻辑1来标识。相反,消息接发信号确收帧605可由帧类型比特610等于逻辑0来标识。跟随在帧类型比特610后的编程比特等于如参照图5所讨论的对应编程帧500或505中的编程比特。

一旦帧长度由此通过编程帧和确收帧被编程,虚拟GPIO信号135的专用帧700或消息接发信号138的专用帧705就可如图7中所示的那样被传送。再次参照图1,回想有m个虚拟GPIO信号135和M+1个消息接发信号138。帧700由此可专用于仅一个GPIO端口(m个虚拟GPIO信号135中的一个),或者其可包括来自这m个GPIO信号135的各1比特。换言之,可根据各种端口串行地传送GPIO字或者它们可被并行地传送。相同的串行/并行考虑适用于消息接发信号。无论每个专用帧700和705正携带多个端口还是仅一个端口,报头405标识出该专用帧是虚拟GPIO帧还是消息接发信号帧。

并非使用单独的专用帧来传送虚拟GPIO信号135和消息接发信号138,这些信号在针对混合虚拟GPIO系统的替换实施例中可被组合,其中混合帧包括虚拟GPIO信号135和消息接发信号136两者。例如,图8示出了包括报头405以及扩展报头805的示例混合帧800。扩展报头805指示跟随在扩展报头805之后且在停止比特410之前的消息接发信号比特和虚拟GPIO比特的比特位置。取决于等待时间要求,消息接发比特集810或虚拟GPIO比特集815可在帧体中靠前。在一些实施例中,扩展报头805可包括纠错比特,诸如CRC比特。注意,扩展报头805只需要标识仅仅虚拟GPIO比特815的位置和长度或者仅仅消息接发比特810的位置和长度,这是因为默认由此知晓剩余比特属于剩余的比特类别。

现在将参照图9的流程图来讨论系统100中的集成电路101和105中的任一者的操作方法。该方法包括动作900:在虚拟GPIO接口处从第一处理器接收GPIO信号传送集。在每个虚拟GPIO接口103处从对应处理器102接收被形成为GPIO信号130和虚拟GPIO信号135的GPIO信号传送集是动作900的示例。该方法还包括动作905:通过专用GPIO引脚向远程第二处理器传送该GPIO信号传送集的第一部分。通过GPIO引脚125从集成电路101向集成电路105中的处理器102传送GPIO信号130是动作905的示例。该方法还包括动作910:将该GPIO信号传送集的剩余第二部分串行化为虚拟GPIO信号帧。在混合虚拟GPIO FSM 115中将虚拟GPIO信号135串行化是动作910的示例。最后,该方法包括动作915:响应于经修改UART接口的过采样时钟循环来在UART传送引脚上向远程第二处理器传送这些虚拟GPIO信号帧。如参照图1、4和8所讨论的通过经修改UART接口且在传送引脚111上传送虚拟GPIO信号135的专用帧400或混合帧800是动作915的示例。

图1的系统100中的每个集成电路101和105可作为片上系统(SoC)205被纳入到如图10中所示的设备1000中。设备1000可包括蜂窝电话、智能电话、个人数字助理、平板计算机、膝上型计算机、数码相机、手持式游戏设备、或其他合适设备。SoC 205通过系统总线1015来与外围设备210(诸如传感器)通信,系统总线1015还耦合至存储器(诸如DRAM 1020)和显示器控制器1025。显示器控制器1025进而耦合至驱动显示器1035的视频处理器1030。

将领会,诸如关于专用帧和混合帧所讨论的帧结构可被修改成包括纠错码,诸如汉明码。另外,本文中所讨论的帧可被修改成包括中间定时比特,以解决传送方经修改UART接口中的过采样时钟速率相比于接收方经修改UART接口中的过采样时钟速率之间的不同步性。如果帧大小相对较短,则结果所得的不同步性可能相对无害。例如,如图11中所示的帧1100在开始比特406与停止比特410之间具有8个数据比特(其可以是虚拟UART比特或消息接发信号比特)的有效载荷长度。这8个数据比特排列成从初始数据比特D0到最后数据比特D7以形成帧1100的数据有效载荷。按经同步的16X过采样时钟速率,接收方经修改UART接口将跨帧1100的数据有效载荷进行128次采样。但是如果过采样时钟速率过慢,则可代之以跨数据有效载荷进行仅127次采样,以使得第128次采样将错误地取自停止比特410而非数据比特D7。相反,在接收方经修改UART接口中,过采样时钟速率可能过快。在此情形中,结果所得的误差可能较小,因为它们仅涉及少量错误采样。

然而,错误采样的数量可随着帧长度增大而增加。为了保持接收方经修改UART接口中的过采样时钟速率与传送方UART接口中的过采样时钟速率同步,中间定时比特1110可被插入到数据有效载荷中,如针对图11中的帧1105所示的。传送方集成电路和接收方集成电路两者均在帧传输之前配置有中间定时比特的位置及其二进制值。此类配置可与关于以上所讨论的编程和确收帧类似地执行。接收方经修改UART接口将由此知晓在中间定时比特1110被采样之前应当对数据有效载荷取多少个采样。在帧1105中,中间定时比特1110跟随在数据比特D7后,以使得接收方经修改UART接口在对中间定时比特1110进行采样之前应当取128个采样(假定使用16X过采样速率)。如果接收方经修改UART接口在对中间定时比特1110进行采样之前已取得比期望采样数更多或更少的采样数,则其可相应地调整其过采样时钟速率。可在中间定时比特1110后插入附加开始比特406。随着帧大小增大,可以插入附加中间定时比特1110以维持同步性。例如,图11中所示的帧1115包括两个中间停止比特1110。将领会,随着帧大小增大,可将多于两个中间定时比特1110插入到该帧中。

如本领域普通技术人员至此将领会的并取决于手头的具体应用,可以在本公开的设备的材料、装置、配置和使用方法上做出许多修改、替换和变动而不会脱离本公开的范围。有鉴于此,本公开的范围不应当被限定于本文所解说和描述的特定实施例(因为其仅是作为本公开的一些示例),而应当与所附权利要求及其功能等同方案完全相当。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1