处理系统、相关集成电路、装置和方法与流程

文档序号:22889403发布日期:2020-11-10 18:11阅读:168来源:国知局
处理系统、相关集成电路、装置和方法与流程

相关申请的交叉引用

本申请要求2019年5月8日提交的意大利专利申请第102019000006633号的权益,该申请通过引用结合于此。

本公开的实施例涉及诸如微控制器的处理系统内的时间管理。



背景技术:

图1示出了典型的电子系统,诸如车辆的电子系统,该电子系统包括多个处理系统10,诸如嵌入式系统或集成电路,例如现场可编程门阵列(fpga)、数字信号处理器(dsp)或微控制器(例如专用于汽车市场)。

例如,在图1中示出了通过适当的通信系统20连接的三个处理系统101、102和103。例如,通信系统可以包括:车辆控制总线,诸如控制器局域网(can)总线;以及可能的多媒体总线,诸如媒体定向系统传输(most)总线,其经由网关连接到车辆控制总线。通常,处理系统10位于车辆的不同位置,并且可以包括例如发动机控制单元(ecu)、变速器控制单元(tcu)、防抱死制动系统(abs)、车身控制模块(bcm)和/或导航和/或多媒体音频系统。

未来各代处理系统,特别是专用于汽车应用的微控制器,将表现出复杂度的显著增加,这主要是由于功能数量的增加(例如新协议、新特征等)以及关于系统操作条件的严格限制(例如更低的功耗、增加的计算能力和速度等)。

图2示出了示例性数字处理系统10(例如微控制器,其可用作图1的任何处理系统10)的框图。

在所考虑的示例中,处理系统10包括通过软件指令编程的至少一个处理单元102,例如微处理器,通常是中央处理单元(cpu)。通常,由处理单元102执行的软件被存储在程序存储器104中,例如非易失性存储器中,例如闪存或eeprom中。通常,存储器104可以在单个集成电路中与处理单元102集成,或者存储器104可以是分离的集成电路的形式并且例如经由印刷电路板的迹线连接到处理单元102。因此,通常存储器104包含用于处理单元102的固件,其中术语固件包括微处理器的软件和诸如fpga的可编程逻辑电路的编程数据两者。

在所考虑的示例中,处理单元102可以具有从以下组中选择的相关联的一个或多个资源106:

例如用于经由通信系统20交换数据的一个或多个通信接口if,诸如通用异步接收机/发射机(uart)、串行外围接口总线(spi)、集成电路间(i2c)、控制器局域网(can)总线、和/或以太网接口、和/或调试接口;和/或

一个或多个模数转换器ad和/或数模转换器da;和/或

一个或多个专用数字部件dc,诸如硬件定时器和/或计数器,或密码协处理器;和/或

一个或多个模拟部件ac,诸如比较器、传感器,例如温度传感器等;和/或

一个或多个混合信号部件msc,例如pwm(脉宽调制)驱动器。

因此,数字处理系统10可以支持不同的功能。例如,处理单元102的行为由存储在存储器104中的固件确定,例如由微控制器10的微处理器102执行的软件指令确定。因此,通过安装不同的固件,相同的硬件(微控制器)可以用于不同的应用。

如前所述,处理系统10可以控制车辆的不同操作,其中处理系统10可以位于车辆中的不同位置,并且每个处理系统10可以实现一个或多个功能/操作。许多这些功能/操作必须实时执行。例如,发动机控制受制于热力学定律,而热力学定律应与车辆的实时状态相平衡。通常,车辆的实时状态通过传感器来监测,传感器可以直接连接到实现发动机控制单元(ecu)的处理系统10或者连接到车辆的其它处理系统10。类似地,为了控制/命令马达的操作,发动机控制单元(ecu)必须控制/命令一个或多个致动器,例如为了喷射燃料,打开用于气体排放的阀门等,该致动器可以直接连接到实现发动机控制单元(ecu)的处理系统10或连接到车辆的其它处理系统10。

因此,在许多应用中,处理系统10内的第一操作的执行必须与同一处理系统10内或另一处理系统10内的第二操作的执行同步。



技术实现要素:

鉴于上述内容,本公开的各种实施例的目的是提供用于在处理系统内生成时间基准以及用于将该时间基准分配给处理系统的一个或多个电路的解决方案。

根据一个或多个实施例,一个或多个上述目的通过具有在所附权利要求中具体阐述的特征的处理系统来实现。此外,实施例涉及相关的集成电路、装置和方法。

权利要求书是本文提供的公开的技术教导的不可缺少的部分。

如前所述,本公开的各种实施例涉及处理系统。在各种实施例中,诸如集成电路的处理系统包括:数字处理单元,根据存储到非易失性存储器的固件可编程;和资源,经由通信系统连接到数字处理单元。例如,处理系统可以是微控制器,数字处理单元可以是微控制器的微处理器。

在各种实施例中,处理系统还包括时间基准电路,该时间基准电路包括:第一数字计数器电路,被配置为响应于时钟信号而生成包括指示时间节拍计数的多个位的系统时间信号。例如,在各种实施例中,时间基准电路的第一数字计数器电路被配置为响应于时钟信号,通过将系统时间信号的值增加给定量来生成系统时间信号。在各种实施例中,该给定量可以通过处理单元来编程。

在各种实施例中,处理系统还包括:时基分配电路,被配置为通过选择系统时间信号的位的子集来生成时基信号。例如,在各种实施例中,时基分配电路被配置为当选择信号具有第一值时,通过选择系统时间信号的给定数目的位的第一子集而生成时基信号,并且当选择信号具有第二值时,通过选择系统时间信号的给定数目的位的第二子集而生成时基信号,由此时基信号的时间分辨率根据选定信号而变化。

在各种实施例中,将时基信号提供给资源。在这种情况下,资源可以被配置为检测给定事件、响应于该事件而将时基信号存储到寄存器、并且向所述数字处理单元发信号通知所述事件。因此,数字处理单元可以响应于已经由资源用信号通知的事件,经由通信系统从寄存器读取时基信号。

例如,资源可以是模数转换器并且事件可以对应于模数转换的完成,和/或资源可以是通信接口并且事件可以对应于经由通信接口接收数据。

在各种实施例中,时间基准电路还可以包括其它电路。

例如,在各种实施例中,时间基准电路包括:扩展定时器电路,包括第二数字计数器电路,该第二数字计数器电路被配置为响应于时钟信号或根据时钟信号而生成的触发信号,生成扩展系统时间信号,该扩展系统时间信号包括大于系统时间信号的位的数目的位数,其中扩展系统时间信号可通过数字处理单元读取。

在各种实施例中,时间基准电路包括:操作时间计数器电路,包括多个第三数字计数器电路,该多个第三数字计数器电路被配置为响应于时钟信号或根据时钟信号而生成的触发信号,而生成相应的计数值,其中多个第三数字计数器电路中的每一个可由数字处理单元复位、启动和停止。

最后,在各种实施例中,时间基准电路可包括:触发生成器电路,包括一个或多个第四数字计数器电路,该第四数字计数器电路被配置为响应于时钟信号或根据时钟信号而生成的触发信号,生成至少一个触发信号。

附图说明

现在将参考附图描述本公开的实施例,附图单纯通过非限制性示例的方式提供,并且其中:

图1示出了典型的电子系统;

图2示出了图1的电子系统的典型处理系统;

图3示出了处理系统的实施例,该处理系统包括被配置为生成系统时间信号的定时器基准电路和被配置为使用系统时间信号的电路;

图4示出了图3的定时器基准电路的实施例,其中定时器基准电路经由计数器电路生成全球基准时间信号,并且经由时基分配电路生成多个附加基准时间信号;

图5示出了图4的计数器电路的实施例;

图6a和图6b示出了处理系统的处理单元如何获得全球基准时间信号或一个附加基准时间信号实施例;

图7和图8示出了一个或多个电路的实施例,其使用附加基准时间信号以便响应于给定事件而直接在硬件级存储时间戳;

图9示出了图4的时基分配电路的实施例;

图10示出了图3的定时器基准电路的另一实施例,该定时器基准电路还包括扩展定时器电路、操作时间计数器电路和触发发生器电路;

图11示出了触发发生器电路的实施例,该触发发生器电路生成适于激活图10的扩展定时器电路,操作时间计数器电路和触发生成器电路的触发信号;

图12示出了图10的扩展定时器电路的实施例;

图13示出了图12的扩展定时器电路的操作的实施例;

图14、图15、图16和图17示出了图10的触发生成器电路的实施例;

图18示出了图10的操作时间计数器电路的实施例;

图19示出了图18的操作时间计数器电路的操作的实施例;以及

图20示出了将图4的附加基准时间信号传输到处理系统的一个或多个电路的实施例。

具体实施方式

在以下描述中,给出了许多具体细节以提供对实施例的透彻理解。实施例可以在没有一个或多个具体细节的情况下实施,或者使用其它方法、部件、材料等实施。在其它实例中,未详细示出或描述公知的结构、材料或操作,以避免模糊实施例的方面。

在整个说明书中,所提及的“一个实施例”或“实施例”意味着结合实施例描述的特定特征、结构或特性被包括在至少一个实施例中。因此,在贯穿本说明书的各个地方出现的短语“在一个实施例中”或“在实施例中”不一定都是指相同的实施例。此外,特定特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。

本文提供的标题仅为方便而不解释实施例的范围或含义。

在下面的图3至图20中,已经参照图1和图2描述的部件、元件或组件由先前在这些图中使用的相同的附图标记表示;为了不使本详细描述负担过重,在下文中将不重复对这些先前描述的元件的描述。

如前面关于图1和图2所述,在许多应用中,处理系统10内的第一操作的执行必须与同一处理系统10内或另一处理系统10内的第二操作的执行同步。

例如,在许多应用中,与处理系统10的一个或多个资源106的数据/消息交换(例如可以包括诸如状态数据、传感器数据、致动器命令等的信息)应当链接到某种时间基准/时间戳。因此,对于这些功能/操作的时间相关性,需要公共时基。例如,该请求的常规方法包括在被配置为执行同步操作的每个处理系统10内实现一些时间基准(timereference),其中时间基准电路为各个处理系统10提供全球系统时间。例如,该内部时间基准电路可以用定时器电路或实时时钟来实现。

例如,处理系统10可以经由模数转换器adc(也参见图2中的块ad)从传感器获取传感器数据。通常,为此目的,adc被配置为当a/d转换完成时为处理单元102生成中断。响应于该中断,诸如经由软件指令编程的微处理器的处理单元102可以读取由adc提供的数字样本,并且还从基准电路读取全球系统时间,从而将采样时间/时间戳与传感器数据的数字样本相关联。指示给定事件的类似中断(该给定事件随后应与给定时间戳相关联,)也可由处理系统10的其它的资源106生成,其它的资源106为诸如在接收到消息(诸如状态消息或致动命令)时生成中断的通信接口、定时器电路等。

因此,时间戳(即获取全球系统时间以及将该时间与给定事件关联),可以由处理单元102执行,例如通过软件指令,例如借助于安装在处理单元102上的操作系统。然而,与由一个或多个资源106发信号通知的给定事件/中断相关联的这种软件生成的时间戳,可能仅具有与接收或生成事件/中断时的时间点相关的粗略精度,例如,因为它们需要在添加软件时间戳之前首先通过若干软件层传送。因此,该延迟可能对整个系统的实时行为具有负面影响,因此延迟和延迟的变化应尽可能小。

图3示出了根据本说明书的处理系统10a的实施例。

在所考虑的实施例中,处理系统10a包括:时间基准电路122,被配置为生成时间基准信号gst,该时间基准信号gst被提供给处理系统10a的多个电路110。通常,电路110可以是需要基准时间的处理10a的任何电路。例如,可以参考图2所示的处理系统10的描述。例如,电路110可以是图2所示的处理单元102或多个资源106中的一个资源。优选地,时间基准电路122和电路110集成在同一集成电路中。

具体地,在所考虑的实施例中,时间基准电路122被配置为响应于由振荡器电路120提供的时钟信号clk而生成信号gst。通常,振荡器电路120可以集成在处理系统10a的集成电路中,或者可以至少部分地连接到处理系统10a的集成电路的引脚。例如,在各种实施例中,振荡器电路120可以用外部基准振荡器和内部锁相环(pll)来实现。

因此,通常,时间基准电路122在输入端接收时钟信号clk并生成时间基准信号gst。具体地,在各种实施例中,时间基准信号gst不是单纯的二进制触发信号,而是对应于具有多个位的数据信号,其中时间基准信号gst的值表示系统时间。例如,时间基准信号gst可以具有32位或64位。

具体地,在各种实施例中,电路122被配置为响应于时钟信号clk而增加时间基准信号gst,使得时间基准信号gst对应于自给定起始日期(通常称为纪元(epoch))以来已经发生的“节拍”的数量。通常,纪元可以是固定日期,例如类似于unix系统时间的1970年1月1日00:00:00ut或类似于基于windows系统时间的1601年1月1日00:00:00ut,或者是可变的,例如从处理系统10a的接通开始。

例如,可以参考网页https://en.wikipedia.org/wiki/system_time来了解系统时间的可能编码方案,其也可以应用于时间基准信号gst。

因此,从电路的角度来看,根据时钟信号clk而确定的每个节拍(tick,滴答声)对应于给定的周期/时间,例如100纳秒或1毫秒,并且信号gst的(计数)值可用于例如触发电路110内的给定操作。此外,通过在多个处理系统10a之间同步信号gst的值(例如,通过使用图2所示的接口if和图1所示的通信系统20),并且通过对各个处理系统10a中的节拍使用相同的时间分辨率,可以同步这些处理系统10a的操作。

如前所述,信号gst被提供给处理系统10a的多个电路110。具体地,在各种实施例中,信号gst可以以降低的分辨率提供给电路110。

例如,图4示出了这种时间基准电路122的实施例。

具体地,如上所述,在前述内容中,时间基准电路122被配置为增加计数值。例如,在图4中示意性地示出了计数器电路124,其被配置为响应于时钟信号clk而增加信号gst。

例如,图5示出了计数器电路124的可行实施例。

在所考虑的实施例中,计数器电路124包括:数字计数器电路1242,被配置为响应于时钟信号nsc_clk而例如,在时钟信号nsc_clk的每个上升沿或下降沿,将信号gst的值增加给定量inc,数字计数器电路1242将计数值(信号gst)的值增加值inc。例如,在所考虑的实施例中,数字计数器电路1242包括:

寄存器1248,被配置为存储计数值(信号gst);以及

数字加法器电路1246,被配置为将由寄存器1248提供的计数值(信号gst)与信号inc相加,其中响应于时钟信号nsc_clk将结果再次存储到寄存器1248中。

在各种实施例中,信号inc是可编程的,并且可为此目的存储在寄存器1244中。在各种实施例中,寄存器1244的内容是可编程的,例如通过处理单元102,例如经由软件指令。例如,在各种实施例中,信号inc的值是根据时钟信号nsc_clk的频率而确定,以便实现纳秒计数器124。例如,为此目的,信号gst可以具有64位,而对于通常的时钟信号(例如,在10mhz和100mhz之间的范围内),信号inc可以仅具有16位。

在各种实施例中,寄存器1248的内容(即信号gst),可由处理单元102例如经由软件指令读取。此外,寄存器1248的内容也可以是可写/可编程的,例如通过处理单元102,例如经由软件指令。例如,以这种方式,处理单元102可以设置寄存器1248/信号gst的初始值。实际上,在启动之后,信号gst基本上指示自处理系统10a接通以来所经过的时间。相反地,通过覆盖寄存器1248的内容,可以相对于开始日期/纪元和/或与其它处理系统10来同步信号gst。

如前所述,在各种实施例中,寄存器可存储64位。然而,通常处理单元102可能仅支持32位读和写访问。在这种情况下,处理单元102需要执行两次读或写访问以便读或写寄存器1248的内容。然而,与此同时寄存器1248的内容可能已经改变。

因此,在各种实施例中,计数器电路124可包括:另一寄存器或锁存器1250,被配置为当执行对信号gst的读或写访问时存储寄存器1248的至少部分内容。例如,一旦处理单元102请求对信号gst的高位或低位32位的读访问(如信号rw示意性地指示的),寄存器或锁存器1250可存储信号gst的所有位的内容或仅存储信号gst的当前不读取的相应低位或高位32位的内容。接下来,当处理单元102请求对信号gst的剩余的低位或高位32位的读访问时,可以从寄存器或锁存器1250读取相应的位。

通常,时钟信号nsc_clk可以直接对应于图4中所示的时钟信号clk。相反,在所考虑的实施例中,计数器电路124支持多个时钟信号clk1……clkk。在这种情况下,计数器电路124可包括:多路复用器1240,被配置为根据选择信号clk_sel选择时钟信号clk1……clkk中的一个作为时钟信号nsc_clk。在各种实施例中,信号clk_sel也可以是可编程的(例如,将信号clk_sel的值存储在寄存器中),例如通过处理单元102,例如经由软件指令。

图4还示出了时间基准电路122还可以包括时基分配电路(timebasedistributioncircuit)126。具体地,电路126被配置为生成多个时基信号tbi0……tbin,其中时基信号tbi0……tbin中的每一个被提供给处理系统10a的一个或多个相应的电路110。

在各种实施例中,一个或多个电路110可以是可选择的,例如通过处理单元102的适当编程或通过处理系统10a的配置数据,该配置数据在处理系统10a的启动期间被读取。

例如,可以始终向处理单元102提供时基信号tbi0和/或可以向处理系统10a的各个资源106提供一个或多个时基信号tbi1……tbin。

因此,如图6a和图6b中示意性示出的,在各种实施例中,处理单元102可经由两个接口与时间基准电路122相接。

具体地,如图6a所示,处理单元102可以经由系统总线108连接到时间基准电路122,例如,系统总线108用于将资源106连接到处理系统102。例如,这样的系统总线可以包括一个或多个高级微控制器总线架构(amba)总线,诸如amba高性能总线(ahb)。因此,在各种实施例中,微处理器102可通过使用与寄存器1248/信号gst相关联的地址,经由常规软件指令(例如经由处理单元102的操作系统os)读取寄存器1248/信号gst的内容。

相反地,许多现代微处理器也包括内部时间戳计数器(tsc),例如,自奔腾以来,x86处理器中就包括该计数器。如图6b所示,在这种情况下,时基信号之一,例如tbi0,可以对应于时间戳计数器tsc的信号。

基本上,虽然在图6a中软件指令不得不访问通过总线系统108路由的处理系统10a的硬件资源,但图6b中的访问发生在微处理器102的(虚拟)内部资源。

如上所述,一个或多个时基信号,例如tbi1……tbin,可以被提供给处理系统10a的各个(例如可编程的)资源106。例如,这在图7中示意性地示出,其中:

时基信号tbi1被提供给处理系统10a的模数转换器adc;和/或

时基信号tbi2被提供给处理系统10a的第一通信接口if1,例如spi接口;和/或

时基信号tbi3被提供给处理系统10a的第二通信接口if2,例如can总线接口。

因此,在所考虑的实施例中,处理系统10a的一个或多个资源106直接接收指示全球系统时间gst的时基信号(tbi0……tbin)。

因此,这些一个或多个资源106可以响应于给定事件,例如当为处理单元102生成相应中断时,直接存储相应时基信号的值。

例如,这在图7中示意性地示出,其中接收时基信号的每个(或至少一个)资源106可包括用于存储相应时基信号的值的相应寄存器,例如:

模数转换器adc可包括用于存储时基信号tbi1的内容的寄存器reg1;

接口if1可包括用于存储时基信号tbi2的内容的寄存器reg2;以及

接口if2可以包括用于存储时基信号tbi3的内容的寄存器reg3。

在各种实施例中,因此处理系统10a被配置为处理单元102可以读取这些寄存器(reg1、reg2、reg3)的内容。因此,以这种方式,当生成相应的事件时,时间戳被直接存储在硬件级,从而避免了处理单元102必须例如经由软件指令(也参见图6a和图6b)单独地获得相应的时间戳。

例如,图8示出了车辆30的电子系统的可行实施例。如关于图1所述,在这种情况下,多个处理系统10a、10b、10c和10d连接到诸如can总线的通信系统20。

例如,在该架构中,图7的处理系统10a的块可以集成在集成电路中,其中:

模数转换器adc连接到模拟传感器as;和/或

通信接口if1连接到数字传感器ds,和/或

通信接口if2连接到通信系统20。

例如,在这样的处理系统10a中,当模数转换已经完成时,模数转换器adc可以将相应时基信号tbi1的值存储到寄存器reg1。可选地,模数转换器adc可为处理单元102生成(优选地同时生成)中断。

类似地,当已经从数字传感器ds接收到响应时,接口if1可以将相应时基信号tbi2的值存储到寄存器reg2。可选地,接口if1可为处理单元102生成(优选地同时生成)中断。

最后,当已经经由通信系统20(例如,从连接到通信系统20的另一处理系统10)接收到数据分组时,接口if2可以将相应时基信号tbi3的值存储到寄存器reg3。可选地,接口if2可为处理单元102生成(优选地同时生成)中断。

因此,一旦处理单元102例如经由相应中断或通过周期性地读取相应状态寄存器的内容来确定资源106之一的给定事件,处理单元102还可以读取(例如,除了转换器adc提供的数字样本之外,接口if1接收的数据和/或接口if2接收的数据)在事件发生时存储了时基信号的相应寄存器的内容。例如,如图7所示,在各种实施例中,资源106,特别是寄存器reg1、reg2、reg3可为此目的连接到总线108。因此,在各种实施例中,处理单元102可经由软件指令读取寄存器reg1、reg2、reg3的内容。

通常,各种电路110(处理单元102和/或资源106)可能需要时间信号gst的不同分辨率。因此,如图4所示,每个时基信号tbi0……tbin可以与相应的时基接口电路1260……126n相关联,相应的时基接口电路1260……126n被配置为根据信号gst生成相应的时基信号tbi0……tbin。

例如,在各种实施例中,时基信号tbi0……tbin中的每一个连接到处理系统10a的给定资源110。因此,已知给定资源110所支持的时间分辨率,每个资源110可仅接收给定数目的位的时间基准信号gst。因此,位的路由可以在每个时基接口电路1260……126n内的硬件级处固定,例如:

处理单元102可以接收所有64位的信号gst;

转换器adc可以接收24位的信号gst;

接口if1可以接收16位的信号gst;以及

接口if2可以接收32位的信号gst。

相反地,图9示出了可编程时基接口电路126i的实施例,其可用作时基接口电路1260……126n中的至少一个。

具体地,在所考虑的实施例中,时基接口电路126i在输入端接收具有给定数目n1(例如64位)位的信号gst,并在输出端提供相应的时基信号tbii,其中时基信号tbii具有由连接到时基信号tbii的相应资源110所支持的位的数目n2(例如64、32、24或16位)。

在所考虑的实施例中,时基接口电路126i还包括:选择电路1262,例如多路复用器,其被配置为根据选择信号csel为信号tbii选择信号gst的n2位。在各种实施例中,信号csel可以是可编程的(例如将信号csel的值存储在寄存器中),例如通过处理单元102,例如经由软件指令。

例如,在各种实施例中,信号csel可以具有两个位,并且选择电路1262可以被配置为对信号tbii使用以下映射:

在各种实施例中,时基接口电路126i还可以支持一个或多个另外的基准时间信号etb0和etb1。例如,在图9中示出了另一个多路复用器1260,其根据选择信号ssel而选择信号gst、etb0或etb1中的一个作为时基接口电路126i的当前基准时间信号,即,选择电路1262在输入端接收由多路复用器1260选择的当前基准时间信号。在各种实施例中,信号ssel可以是可编程的(例如,将信号ssel的值存储在寄存器中),例如通过处理单元102,例如经由软件指令。

通常,在另一基准时间信号的位的数目小于信号gst的位的数目(n1)的情况下,丢失的(例如,最有效的)位可被设置为“0”。

例如,经常使用外部时间戳总线的处理系统10a的资源106可以是canfd(具有灵活数据速率的can)接口、σ-δ(sigma-delta)模数转换器、复杂adc等。

通常,就另一基准时间信号可以具有与信号gst不同的节拍时间而言,在选择电路1262内实现的选择(根据选择信号csel)也可以基于是否已选择基准时间信号gst或另一基准时间信号(etb0、etb1)而改变。

在各种实施例中,时间基准电路122还可以实现进一步的功能。

例如,图10示出了一个实施例,其中时间基准电路122可以包括(除了计数器电路124和时基电路126之外)以下可选电路中的一个或多个:

扩展定时器电路128;和/或

运算时间计数器电路130;和/或

触发生成器电路132。

通常,这些电路128、130和132的共同之处在于它们不直接接收基准时间信号gst,而是经由例如由计数器电路124生成的触发信号trig来驱动它们。

具体地,在各种实施例中,触发信号trig对应于计数器电路124使用的时钟信号clk,例如图5所示的信号nsc_clk。

相反地,图11示出了触发生成器电路134的实施例,该触发生成器电路134可以包括在计数器电路124中。

具体地,在所考虑的实施例中,触发生成器电路134实现对计数器电路124所使用的时钟信号clk/nsc_clk的预定标器(pre-scaler)。例如,在所考虑的实施例中,触发生成器电路134为此目的包括数字计数器1342,当计数器达到给定基准值时,数字计数器1342生成信号counter_exp_int。

例如,在各种实施例中,计数器1342是当计数器1342的计数值达到0时生成信号counter_exp_int的逐减计数器(down-counter)。在这种情况下,计数器1342可以被配置为将计数值再次设置为重新加载值counter_reload_val。在各种实施例中,信号counter_reload_val可以是可编程的(例如,将信号counter_reload_val的值存储在寄存器中),例如通过处理单元102,例如经由软件指令。

在各种实施例中,可以选择性地使能触发生成器电路134。例如,在所考虑的实施例中,可以通过经由使能信号counter_en使能计数器1342来使能触发生成器电路134。在各种实施例中,信号counter_en可以是可编程的(例如,将信号counter_en的值存储在寄存器中),例如通过处理单元102,例如经由软件指令。

因此,触发信号trig可以对应于信号counter_exp_int,该信号基本上在每次时钟信号达到给定数量的counter_reload_val循环时被设置。

在各种实施例中,触发生成器电路134还被配置为在电路1340处使计数器电路124使用的时钟信号clk/nsc_clk与指示给定事件的辅助信号aevent同步,从而在时钟信号clk/nsc_clk被设置以及辅助信号aevent被设置时生成被设置的信号aux_event_synced。

在所考虑的实施例中,因此触发生成器电路134可以包括:多路复用器,被配置为根据选择信号event_source_sel为触发信号trig选择信号aux_event_synced或信号counter_exp_int。在各种实施例中,信号event_source_sel可以是可编程的(例如,将信号event_source_sel的值存储在寄存器中),例如通过处理单元102,例如经由软件指令。

因此,在所考虑的实施例中,电路124实现基本时间单位(btu),其基本上包括计数器1242,例如64位纳秒计数器(nsc)。优选地,该计数器的时间节拍粒度是可经由信号inc编程的,并且应该基于所使用的时钟信号nsc_clk来设置,使得单个节拍周期等于1纳秒。例如,假设时钟源频率为10mhz,则增量步长inc应为(10^9/10^5)=100或0x64。相反地,触发器/事件生成器134被配置为基于可编程(例如,超时)计数器1342生成周期性脉冲,该计数器1342与时钟信号nsc_clk一起运行。

如前所述,触发信号trig可由可选电路128、130和132使用。

例如,图12示出了扩展定时器电路128的实施例。

具体地,在所考虑的实施例中,扩展计时器电路128通过计数器电路128实现,计数器电路128被配置为生成具有80位的时间信号entp,其中低64位的位序列遵循网络时间协议(ntp)格式,该格式例如在https://en.wikipedia.org/wiki/network_time_protocol#timestamps中描述。

具体地,这样的ntp格式也基本上使用32位的第一位序列1280b,该第一位序列1280b指示自1900年1月1日的时代纪元以来流逝的秒数。相反,32位的第二位序列1280c表示秒的一部分(fraction)。因此,32位(秒)计数器1280b将在2036年溢出。为了克服这种潜在的溢出,更新的ntpv4格式使用64位表示秒和64位表示秒的一部分。但是这个扩展的范围对于典型的处理系统10a基本上是无用的,并且因此在所考虑的实施例中仅添加额外的16位溢出计数器1280a,从而基本上使用48位第二计数器(ieee1588-2008实现)。

在各种实施例中,存储的“秒的一部分”的分辨率为1纳秒。因此,在这种情况下,计数器1280c应当在相应计数值达到0x3b9a_c9ff时执行翻转。

在各种实施例中,可经由触发信号trig或直接经由计数器电路124使用的时钟信号clk/nsc_clk来驱动扩展定时器电路128。

因此,在各种实施例中,用于扩展定时器电路128,特别是计数器1280c的增量步长exntp_inc_step也可以是可编程的,例如通过处理单元102,例如经由软件指令。例如,当扩展定时器电路128使用具有100mhz频率的时钟信号clk/nsc_clk时,应当将步长exntp_inc_step设置为10。相反地,当扩展定时器电路128对于相同的时钟信号clk/nsc_clk(100mhz)使用为4的预刻度值counter_reload_val的触发信号trig时,步长exntp_inc_step应为40。

在各种实施例中,扩展计时器电路128的值可以通过处理单元102(例如,经由软件指令)是可读的,并且可选地也是可写的。在处理单元102具有较少位(例如仅32位)的情况下,处理单元102可执行对计数器1280a、1280b和1280c的值的多次连续访问。因此,在这种情况下,也可以使用寄存器或锁存器来存储计数器电路124的剩余位,如关于图5所述。

此外,在各种实施例中,扩展定时器电路128还可以经由由另一ntp定时器电路136,诸如(外部或内部)以太网mac(ieee1588-2008)投诉模块(complaintmodule)的ntp定时器,提供的同步信号sync来支持同步操作。

例如,用于同步扩展定时器电路128的可行过程在图13中示出。

在步骤1000开始之后,处理单元102获得(例如,从模块136获得)16(msb)位并在步骤1002将其存储到计数器1280a。

在下一步骤1004,处理单元102例如通过向扩展定时器电路128发送合适的命令来激活扩展定时器电路128的同步模式。因此,扩展定时器电路128将会把信号sync存储到较低的64位,即,将会覆盖计数值1280b和1280c的内容。

在各种实施例中,然后处理单元102可以在步骤1006再次从模块136获得16msb,并且在步骤1008验证由模块136提供的相应位是否改变,例如执行溢出。

在位改变的情况下(验证步骤1008的输出“n”),处理单元102可返回到步骤1002以执行新的同步操作。

相反,在位没有改变的情况下(验证步骤1008的输出“y”),过程在停止步骤1010结束。

如前所述,时间基准电路122还可以包括可选的触发生成器电路132。例如,图14示出了触发生成器电路132的可行实现。

具体地,在所考虑的实施例中,触发生成器电路132在输入端接收触发信号trig并生成一个或多个触发信号trig0……trgm。

例如,在所考虑的实施例中,触发生成器电路132包括至少一个触发生成器子电路1320……132m,其中每个触发生成器子电路被配置为生成一个或多个相应的触发信号trig0……trgm。

例如,图15示出了通用触发生成器子电路132i的可行实施例。

在所考虑的实施例中,触发生成器子电路132i基本上包括:数字计数器1322,被配置为响应于触发信号trig而增加相应计数值,并且触发生成器子电路132i被配置为根据计数器1322的计数值设置一个或多个相应触发信号trigi。

在各种实施例中,计数器1322不直接接收触发信号trig,而是将信号trig提供给另一可编程的预缩放电路(pre-scalecircuit)1320,并且计数器1322响应于预缩放的触发信号trig而增加。对预缩放电路1342(见图11)的相应描述也适用于预缩放电路1320。

因此,在各种实施例中,每个触发生成器子电路132i可以包括相应的预缩放电路1320和计数器1322。

如前所述,给定触发生成器子电路132i的一个或多个触发信号trigi根据相应计数器1322的计数值而被生成。

图16和图17在这方面示出了两个实施例,它们可以替代地或也可以组合地(例如通过使用相应模式选择信号)实现。

具体地,图16示出了一个实施例,其中触发生成器子电路132i被用作超时计数器,其被配置为当计数器1322已经计数给定数量的循环时生成信号re。

例如,在所考虑的实施例中,计数器1322被用作逐增或逐减计数器,并且当计数器1322达到给定值(例如,对于32位计数器,0x00000000或0xffffffff)时,计数器1322加载给定的重新加载值rel_val并生成重新加载信号re。在各种实施例中,信号rel_val可以是可编程的(例如,将信号rel_val的值存储在寄存器1324中),例如通过处理单元102,例如经由软件指令。类似地,计数器1322的计数方向(逐增或逐减)也可以是可编程的。

因此,在所考虑的实施例中,触发信号trigi可以对应于重新加载信号re。在所考虑的实施例中,重新加载信号re也被存储到触发生成器子电路132i的状态寄存器1326。

相反地,图17示出了一个实施例,其中触发生成器子电路132i被用作比较模块。

具体地,在所考虑的实施例中,计数器1322再次被重置到给定的起始值(通常为0)并且计数器1322被激活,从而改变相应的计数值。例如,在各种实施例中,计数器1322可以经由处理单元102(例如,经由软件指令)复位和启动。在各种实施例中,计数器1322的计数方向(逐增或逐减)可以是可编程的。

在该实施例中,计数器1322的计数值被提供给一个或多个比较器1330。例如,图17中显示了四个比较器13300……13303。比较器13300……13303中的每一个被配置为将计数器1322的计数值与相应的比较值comp_val0……comp_val3进行比较。在各种实施例中,比较值comp_val0……comp_val3可以是可编程的(例如,将比较值comp_val0……comp_val3存储在相应的寄存器13280……13283中),例如通过处理单元102,例如经由软件指令。

因此,在所考虑的实施例中,当计数器1322的计数值对应于相应的比较值comp_val0……comp_val3时,比较器13300……13303中的每一个可生成相应的触发信号trigi0……trigi3。在所考虑的实施例中,触发信号trigi0……trigi3的值也被存储到触发发生器子电路132i的状态寄存器1326的相应位cmp0……cmp3。

通常,因此由触发生成器子电路132i提供的触发信号可以在各种模式下使用,例如:

仅存储到触发生成器子电路132i的状态寄存器1326的标志;

为处理单元102生成中断;

为处理系统10a的其它资源106生成触发信号/中断,例如开始a/d转换,从数字传感器获得传感器数据等。

在各种实施例中,触发生成器子电路132i中的每一个还可以与处理系统10a的给定电路110(处理单元102或资源106)相关联。

在各种实施例中,触发信号的使用,例如简单地存储到状态寄存器1326或还为处理单元102的生成中断,可以是可编程的。

如前所述,在各种实施例中,时间基准电路122还可以包括操作时间计数器电路130。例如,图18示出了操作时间计数器电路130的实施例。

在所考虑的实施例中,操作时间计数器电路130包括至少一个计数器1302o……1302l,其中每个计数器11302o……1302l被配置为生成相应计数值otco……otcl,该计数值可以经由处理单元102例如经由软件指令被读取(并且可能还被写入)。此外,在各种实施例中,计数器1302o……1302l中的每一个可由处理单元102例如经由软件指令复位和/或启动和/或停止。

通常,计数器1302o……1302l中的每一个可以基本上具有图5所示的计数器1242的架构(可能还包括寄存器或锁存器1250,用于改进对计数值的读取访问)。实际上,同样在这种情况下,计数器1302o……1302l中的每一个被配置为以给定的增加速率来增加相应计数值,该给定的增加速率是可经由处理单元102例如经由软件指令编程的。

因此,关于图5所示的计数器电路124,每个计数器1302o……1302l响应于触发信号trig而不是直接响应于时钟信号nsc_clk而操作。然而,也如关于扩展时间电路128所描述的,在各种实施例中,计数器1302o……1302l的时钟源也可以在时钟信号nsc_clk或触发信号trig之间选择。因此,通过以适当的方式设置/编程增加速率,计数器1302o……1302l也可以用作纳秒计数器(类似于扩展时间电路128)。

例如,计数器1302o……1302l可用于监测由处理单元102执行的给定应用的操作时间。

在各种实施例中,计数器1302o……1302l被配置为在功能复位期间也保持相应的计数值和配置。例如,示意性地如图19所示。

具体地,响应于步骤2000处的通电复位或破坏性复位,处理单元102可在步骤2004处配置一个(或多个)计数器1302o……1302l。例如,处理单元102可以从处理系统10a的非易失性存储器104读取给定的初始计数值,并将初始计数值写入所选计数器1302o……1302l。

因此,所选择的计数器1302o……1302l将在步骤2006等待新的计数事件(如由触发信号trig或时钟信号nsc_clk所指示的)。具体地,在不存在计数事件的情况下(步骤2006的输出“n”),计数器返回步骤2006。相反,当发信号通知计数事件时(步骤2006的输出“y”),计数器在步骤2008增加计数值。

如图19中示意性示出的,在各种实施例中,处理单元102可周期性地存储所选计数器1302o……1302l的计数值。例如,为此目的,处理单元102可以在步骤2010验证给定存储间隔是否已经逝去。在存储间隔尚未逝去的情况下(步骤2010的输出“n”),过程返回到步骤2006。相反,在存储间隔已经逝去的情况下(步骤2010的输出“y”),处理单元102可以在步骤2012用所选计数器1302o……1302l的当前计数值覆盖处理单元10a的非易失性存储器104中的初始计数值,并且过程返回到步骤2012。

因此,通过将计数值存储到非易失性存储器104并将计数值重新编程到所选计数器1302o……1302l,计数值也可以在通电复位/破坏性复位之后被保存。

相反,当在步骤2002发生功能复位时,计数器1302o……1302l可能已经保留相应的计数值和配置。因此,在这种情况下,可以省略步骤2004,即,过程可以直接进行到步骤2006。

在各种实施例中,时间基准信号(全球系统时间gst和/或时间基准信号tbi0……tbin)中的一个或多个可以以编码格式发送。

例如,时间基准信号tbi0……tbin的示意图如图20所示。具体地,如关于图4所描述的,时基接口电路1260……126n中的每一个被配置为生成相应的时间基准信号tbi0……tbin,该时间基准信号tbi0……tbin被提供给相应的电路1100……110n(处理单元102或资源106)。

在所考虑的实施例中,基准信号tbi0……tbin不直接发送到相应的电路110,而是每个时基接口电路1260……126n将相应的时间基准信号tbi0……tbin提供给编码器电路1380……138n,从而生成相应的编码时间基准信号。接下来,每个编码器电路1380……138n经由相应的通信信道1420……142n向相应的解码器电路1400……140n发送相应的编码时间基准信号。最后,解码器电路1400……140n对相应接收到的编码时间基准信号进行解码,并将解码的时间基准信号提供给相应电路1100……110n。

例如,编码器电路1380……138n和解码器电路1400……140n可以是:

格雷码(gray)编码器和解码器;

误差检测和可行的校正编码器和解码器。

因此,上述各种解决方案可具有以下特征中的一个或多个:

计数器电路124,可用于实现纳秒计数器(参见例如图5);

多个附加基准时间信号tbi0……tbin,可由电路126生成,其可由处理系统10a的一个或多个资源106使用,以便当在相应资源106中检测到给定事件时在硬件级直接存储指示计数器电路124的计数值的值(参见例如图6b和图7);

附加基准时间信号tbi0……tbin可以具有可编程宽度和/或分辨率(参见例如图9);

附加基准时间信号tbi0……tbin可以通过不同的时钟信号(参见例如,图11)进行操作;

可以使用扩展ntp定时器128,该定时器提供自1900年1月1号过去的秒(和秒的一部分)(参见例如图12);

一个或多个(操作)时间计数器1302o……1302l可记录由处理单元102执行的应用程序的执行或生存期(参见例如图18和图19);

触发生成器电路1320……132m可用于为处理单元102或资源106生成周期性中断(参见例如图16);

触发生成器电路1320……132m可用于当计数器值达到给定比较值时生成中断(参见例如图17)。

因此,本文公开的解决方案使用高分辨率(64位)全球系统时间gst,其在硬件级被提供给处理系统10a的处理单元102和/或(以降低的分辨率)被提供给处理系统10a的一个或多个资源106,因此处理系统10a可以响应于给定事件存储时间戳。该特征使得处理单元102(例如,其操作系统)能够获得精确的基于硬件的时间戳,而不是粗略的基于软件的时间戳。事实上,捕获的基于硬件的时间戳值相对于捕获时间戳时触发的事件具有非常短且恒定的延迟。因此,处理单元102正在处理硬件时间戳值的时间,对时间戳信息的精度不再有任何影响。

当然,在不损害本发明的原理的情况下,结构和实施例的细节可以相对于本文纯粹通过示例的方式描述和说明的内容广泛地变化,而没有因此偏离由所附的权利要求限定的本发明的范围。

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