本申请根据35U.S.C.§119(e)要求于2016年2月17日提交、题为“DATACOMMUNICATION INTERFACE FOR PROCESSING DATA IN LOW POWER SYSTEMS”的美国临时专利申请序列号62/296,512的优先权,该申请通过引用整体并入。
具体实施方式
在一些低功率的系统中,虽然微处理器具有从外围设备传输数据的相对被动的角色,微处理器可以消耗大量功率。在这样的系统中,微处理器可以启动从外围设备的数据传输和再进入睡眠模式,直到数据传输完成。如在本公开内容使用的,微处理器的“睡眠模式”包含基本上处于不活动状态的微处理器。例如,休眠模式特征在于悬浮数据处理的微处理器,并作为结果,消耗很少或没有功率。作为睡眠模式的另一示例,由微处理器执行操作的定时器可悬浮,并作为结果,微处理器在当前状态保持“冻结”,并执行任何操作。微处理器可以触发数据采集接口,以在进入睡眠模式之前从外围设备中检索数据。作为一个例子,智能手机中的处理器可从它由串行接口连接的加速度计传感器(即,外围设备)检索数据(即,数据)。响应于该触发,串行接口从所述外围设备获取数据,并在寄存器中存储数据。在数据传输期间,通用定时器(GPT)是活动的,被用于定时数据传输。在存储数据之后,串行接口中断微处理器。响应于该中断,微处理器从寄存器获得数据,并将数据置于在微处理器芯片驻在的芯片的主存储器上。外围设备(诸如,传感器)以特殊采样速率生成原始数据(例如,以每秒数据样本测量)。微处理器可以返回到睡眠模式一段时间(例如,根据所述外围设备的采样率),并且在时间到期之后,它再次唤醒并重复上述过程。微处理器也可通过在GPT定时(其中,GPT生成触发,启动由微处理器的每个传输)和串行外设接口(SPI)(其中,SPI生成中断,发起由微处理器的每个传输)之间的切换,启动突发传输。微处理器执行GPT和SPI的每个的不同的中断服务程序(ISR),使其能够响应GPT和SPI的中断(即,微处理器执行两组ISR:GPT的一组ISR和SPI的另一组ISR)。上述数据传输过程是一样的,不管每个提取(由串行接口)是否收集单数据值或多个数据值(即,突发传输)。关键的区别是微处理器可以对于多个数据值在突发传输期间多休眠一会儿。每当微处理器处于活动状态,其中微处理器集成的芯片(或板)相当消耗功率量。因此,虽然只有在数据传输完成时微处理器是活动的,该事件可经常发生,导致由芯片和/或微处理器的显著功耗。此外,功耗的问题由GPT进一步加剧,保持数据传输的定时活动。
在许多应用中,微处理器的主要功能是对数据执行算法(例如,使用上述例子,输出设备的整体加速)。微处理器可需要在执行该算法之前收集多个数据样本。其结果是,上述的数据传输过程可发生1000次,而微处理器收集足够的数据样本(例如,以检索匹配或超过阈值的数量)以执行数据的处理。如果微处理器执行需要M个数据样本的算法,则在成功地执行该算法之前,微处理器必须等待所述外围设备以生成M个样本(例如,其中M是具有大于零的值的整数)。该系统的问题在于:微处理器不能在数据收集期间保持睡眠(例如,对于收集M个样本的整个持续时间,不能保持休眠模式,而不中断)。一些系统可包括传感器轮询单元以在数据收集过程改进芯片的性能。例如,于2013年4月9日提交的、标题为“SENSORPOLLING UNIT FOR MICROPROCESSOR INTEGRATION”的美国专利号8914551(其在此通过引用将其整体并入本文)描述了一种传感器轮询单元,其可以用于从传感器收集数据。
在使微处理器在数据传输期间保持进入睡眠模式的系统中,从睡眠模式中断微处理器以处理(或预处理)数据。如果微处理器执行足够复杂性的算法,数据需要满足其他某些条件。当满足时,该“前提条件”(即,其他的条件)增加微处理器可以对数据成功执行算法并输出有意义的结果的可能性。这些先决条件需要在收集阈值数量的数据样本以外的处理,并进一步涉及数据样本的内容。例如,前提条件可包括:数据的格式,验证数据符合一项或多项标准,汇总数据为数据结构,对数据执行函数(例如,转换数据和/或识别数据的状态),错误检查和/或校正时间完整性,和/或数据内容的其他处理。
一些系统不验证数据符合前提条件;其他系统使用微处理器,以验证数据满足先决条件。在其中没有先决条件验证的系统中,微处理器对数据立即执行算法。如果前提条件不满足以及微处理器不知道该问题(因为它不验证先决条件),微处理器可以基于该算法产生错误输出(例如,不正确或无意义的输出)和/或误差值(例如,硬件异常、软件异常和/或中断)。通过微处理器执行这种算法至少代表′错误开始′,因为微处理器对不符合前提条件的数据执行算法。在其它系统中,微处理器可以确定该数据是否满足先决条件。当微处理器确定数据满足先决条件,微处理器前进到对数据执行算法。当微处理器确定数据部满足先决条件时,微处理器防止算法的执行。此外,微处理器可以指示数据通信接口在再次返回到睡眠模式之前收集其它数据样本。在后一种情况下(即,该数据不符合先决条件),微处理器给定错误开始,因为它从睡眠模式中断,而数据没有达到先决条件。由于错误开始唤醒微处理器(即从睡眠模式中断),并增加功耗,减少错误开始可显著降低其中集成微处理器的微处理器和/或芯片(或板)的功耗。
解决上述挑战(及其他)的方案在于从微处理器卸载数据采集和/或处理数据,以改进数据收集接口。在一些示例中,该改进的数据收集接口降低了其中集成微处理器的芯片的整体功耗(以及改进的数据收集接口)至少约2X的因子(例如,耗电量减少大约50%)。改进的数据收集接口可被实现为独立的数据采集接口和/或片上系统(SoC)。本公开内容提供应对这些挑战的系统、方法和装置,通过对数据采集接口的数据收集使用有效方法而从数据收集接口(和/或SoC)的微处理器卸载数据收集。例如,一种改进的数据收集接口(接口)可从传感器收集预定数量的传感器值,并同时保持与接口的引脚上所选传感器的单个通信会话活动;微处理器在单个通信会话的整个持续时间仍然处于睡眠模式(或其他非激活状态)。此外,本公开内容提供应对这些挑战的系统、方法和装置,其通过对数据采集接口(和/或SoC)从微处理器卸载数据处理,例如使用具有改进的功率使用特征的硬件。例如,改进的数据收集接口可以通过使用数据处理逻辑块以在中断微处理器(例如,预先处理数据)验证数据满足先决条件之前而减少错误开始的可能性。因为本文所公开的方法从微处理器卸载处理,微处理器可避免在GPT和SPI触发之间非常频繁的切换(和去除对于GPT和SPI的每个执行ISR的需要)。此外,由于改进的数据收集接口的操作,微处理器和GPT可对于数据传输期间用于其他任务。
本说明书公开通过添加逻辑块(和相关的定时器、状态机和寄存器)对现有数据采集接口的改进,以在唤醒微处理器之前不仅卸载数据收集以及数据处理。在这种改进的系统中,在进入代表微处理器的接口采集和处理(例如,预处理)数据的整个持续时间的睡眠模式之前,微处理器可以编程数据收集接口的逻辑块,定时器,状态机,和寄存器。例如,当被执行时,逻辑块对数据执行一个或多个函数(例如,错误检查,傅立叶变换,数据平均,验证数据的完整性,和/或其它处理),而不唤醒微处理器,并由此减少处理器和/或芯片的功耗。
图1是示出用于处理从外围设备接收的数据的系统100的框图。该系统100包括芯片102,微处理器110,直接存储器存取(DMA)控制器112,存储器114,数据总线116,一般项目定时器(GPT)118,数据通信接口(120,122,和124),和传感器104,106A-b和108。芯片102(使用其中集成的组件)可操作以从外围设备收集数据,其在这种情况下是传感器104、106A-b和108。芯片102被嵌入电路以操作包括如下的组件的每个:微处理器110,DMA控制器112,存储器114,GPT 118,以及数据通信接口(即,120,122,和124)。数据总线116可操作地彼此耦合部件。例如,数据总线116提供芯片的其它部件可提供进行电通信的电连接。数据通信接口包括三线串行外围接口(SPI)120,四线SPI 122,和跨集成电路(IIC)124。每一个数据通信接口可耦合到任何数量的传感器。而一个或多个传感器106A-B示出作为两个传感器,这样的传感器可包括任意数量的传感器,n(其中n是具有大于零的值的整数)。应当指出:术语“数据通信接口”和“接口”在本说明书中仅出于简洁起见可互换使用。微处理器110可操作以执行指令(例如,软件、代码、算法、先决条件、标准,等)。例如,当中断时,微处理器110可以从一个或多个数据集合接口检索数据,并将其存储在存储器114中。在其他情况下(例如,当要传送的数据超出阈值大小),则DMA控制器112可以(经由一个或多个数据收集接口)从外围设备传送数据到存储器114。存储器114集成在芯片102上(例如,是片上存储器),并可以存储用于本文所述操作的数据。存储器114可操作以存储指令(例如,软件,代码,算法,先决条件标准,等),其被执行以执行活动和/或存储在本公开描述的其它数据(例如,传感器值,处理后的数据,等)。在一个示例中,存储器114是非临时性计算机可读存储介质。GPT118产生时钟信号,用于由芯片102上集成的组件使用(例如,在定时通信中)。
芯片102可操作以从外围设备收集数据,其在这种情况下是传感器104,106A-B和108。芯片102可以利用微处理器110以配置一个或多个数据通信接口120,122和/或124,以从外围设备中的至少一个接收预定数目的数据样本。在这种配置后,微处理器110可进入睡眠模式,并同时数据通信接口收集预定数目的数据样本,从而降低由微处理器110(以及由微处理器110使用的其它部件,诸如GTP 118)所消耗的功率量。外围设备可以通过引脚选择性耦合到数据通信接口,这是用于与外围设备通信(例如,插拔)。
每个数据通信接口由一个或多个引脚耦合至一个或多个传感器。三线SPI 120由三个引脚104耦合到传感器,包括串行时钟(SCLK)引脚、从出/从入(SOSI)引脚,片选(CS)引脚。四线SPI 122由至少四个引脚耦合到一个或多个传感器106A-B,包括串行时钟(SCLK)引脚、主出/从入(MOSI)引脚,主入/从出(MISO)引脚,以及一个或多个芯片选择(CS)引脚CS1-CSn(下面进一步讨论)。IIC 124由两个引脚耦合到传感器108,包含串行数据(SDA)引脚和串行时钟(SCLK)引脚。关于在接口和传感器之间携带的信号,数据通信接口的引脚是单向(其中,方向在图1的引脚的两端由箭头所指示)与携带关于信号或双向(其中,方向在图1的一端由箭头所示)。在图1中示出的示例中,所述数据通信接口处于与周边设备的主从关系,其中数据通信接口是主机,和外围设备是从机。注意,在数据通信接口是从机和外围设备是主机的情况下,单向引脚的方向可以翻转到相反方向。
转到串行外设接口(SPI)120和122,每个接口包括串行时钟(SCLK)引脚和一个或多个芯片选择(CS)引脚。串行时钟(SCLK)引脚同步通过SCLK周期传输并接收的数据。在一些实现方式中,在8个SCLKP周期,字节(8位)被发送/接收(即,每个SCLK周期1位)。在其它实现中,不同数目的位在每个SCLK周期期间发射。SCLK引脚配置为当SPI处于主模式时为输出,并当SPI在从模式时作为输入。SCLK引脚用于从SPI时钟信号向所有连接的外围设备(例如,传感器)广播。SCLK是单向使用;方向取决于SPI处于主或从模式。寄存器可存储和控制在SCLK引脚上发送的时钟信号相关的相位和/或极性。CS引脚被SPI使用以选择连接的外围设备之一。所述外围设备和SPI存储逻辑电平,其对应于激活电平(例如,活性高或低有效)。在操作中,SPI在对应的CS引脚上发送活动水平到所连接的外围设备中的仅一个外围设备(并且只有一个外围设备将在相应的引脚CS上接收活动电平)。SPI在其它的CS引脚上发送活动电平(其可对应于不发送信号)。在对应的CS引脚上发送活动电平的外围设备是选择的外围设备,用于与接口的通信。在具体的例子中,当SPI处于主模式时,CS引脚发送有效的低电平输出信号。可替换地外,当SPI在从模式时,通过在CS引脚上接收活动的低输入信号,启动转移。当SPI处于主模式,CS引脚可以在传输的开始自动设置和/或传输有效电平,并一旦转移完成设置和/或传输活动电平。SPI传输和接收8位数据,直到传输通过CS引脚解除断言(即,活动信号被终止以及不在CS引脚上不发送)结束。当SPI在从模式时,CS引脚总是输入。在多个从机环境中,SPI支持多个从机。当作为多个从机的主机操作时,SPI可配置为使用选择的外设寄存器而驱动多达n个数量的CS线(例如,CS1,CS2,CS3,...,CSN)。选定的设备外围寄存器识别外围设备的哪一个(在这种情况下,传感器)是由CS引脚所选的外围设备。其他引脚(即,SCLK,MOSI和MISO引脚)被所有的从外围设备共享。还有一些覆盖领域以使得软件驱动活动CS引脚上的0或1,这可能是用于特殊用例。
转到三线串行外围接口(SPI)120,CS引脚可操作耦合SPI 120和传感器104。SOSI引脚使能在SPI 120和传感器104之间的双向数据传输。
转到四线串行外围接口(SPI)122,每个传感器106A-B是由不同的CS引脚可操作地耦合到SPI 122(即,通过相应的CS引脚CS1-n之一)。,MOSI引脚当SPI122处于主模式时配置为输出线,并当SPI在从模式时作为输入线122。在主(数据出)MOSI线被连接到从设备(数据)MOSI线。在某些实现中,数据被传输为字节宽(8位)的串行数据,和首先转移最显著位(MSB)。MOSI引脚使得从SPI 122到每个传感器106A-B的单向传输数据。SPI 122广播数据到传感器106a-b(即,每个传感器接收到相同的数据)。然而,可以所选外围设备指定这些数据。MISO引脚配置为当SPI 122处于主模式时为输入线,并当SPI 122处于从模式作为输出线。在主机(数据入)的MISO线连接到从设备的MISO线路(数据出)。在某些实现中,数据被传输为字节宽(8位)的串行数据,和首先转移最显著位(MSB)。MISO引脚允许从每个传感器106A-B到SPI 122的单向数据传输。每个传感器可操作以当选择时在MISO上传输。因此,只有所选择的传感器在MISO引脚将信号发送到SPI 122。对于图1中的SPI 120和122的每个,SPI是主机,和传感器是从机。在其他实现中,SPI可操作为从机。
转向内部集成电路(IIC)124,IIC124和传感器108的每个可以是主机和从机(其中一个是主机,另一个是从机)之一。在操作中,主设备在SCLK引脚上发送时钟信号到从机,并在SDA引脚上发送数据到从机。从机在SDA引脚上回复主机的指令。该SDA可双向使用,无论哪个设备是主机或从机。SCLK引脚从主机到从机单向使用。在SCLK引脚的数据传输的特定方向可以改变,以适应作为主机的IIC 124或传感器108(例如,基于哪个是主机改变的信号传输的方向)。因此,SCLK在图1中作为双向说明。
芯片102在如下内运行,例如智能手机,自驾车,可穿戴设备(如智能手表,健身追踪器,等等),网络连接的设备(例如,观光噪比(IoT)设备,远程可控灯泡,家庭自动化设备),其包括(或与之通信)多个传感器,和/或低功率电子设备的设备。例如,智能手机可包括诸如加速度计和陀螺仪的传感器。汽车(是否操作或自驾车)可包括这样的传感器,诸如压力传感器、全球定位系统(GPS)传感器、雷达和光传感器(例如,摄像机,接近传感器等)。芯片102可用于在医疗设置,由于监测外围设备(其可以包括传感器)生成数据的生命体征,包括例如,心脏速率,氧饱和度,温度,运动,和类似物。芯片102可用于监视机器的“健康”(例如,制造设备,实验室设备,等等)。在这样的示例中,外围设备可以包括测量机器的物理(或环境)的参数的传感器,诸如例如机器的振动、机器的温度和/或机器的功率特征(例如,根据现有的证据或数据的趋势),来主动确定机器的性能何时变化(例如,提高还是下降)。
在图1的任何数据采集接口可允许微处理器处于睡眠模式(从而减少由微控制器所消耗的功率),而由接口检索和/或处理预定数量的传感器值。此外,代替中断(例如,唤醒)微处理器以执行信号处理,该数据集合接口可以在唤醒处理器之前执行逻辑块(其包括用于执行信号处理的指令)。对数据收集接口卸载该处理通过允许微处理器尽可能保持不活动而减少由微处理器消耗的功率。功率节省(相对于唤醒微处理器)可来自由执行从存储器中的指令的微处理器(例如,闪存,静态随机存取存储器(SRAM))所消耗的功率,其在某些应用中是由微控制器消耗的约50%电源。
数据采集接口可以通过执行功能进行数据处理(由微处理器),包括(但不限于):验证函数来检查该日期满足先决条件,变换函数用于将数据转换为符合先决条件的形式,平均函数,错误检测函数,阈值函数,传感器状态检查函数,格式转换函数(例如,从第一编码到第二编码的数据变换,从传感器的数据包格式转换数据到由算法可解释的数据结构),过滤函数,掩蔽函数,峰值检测,快速傅里叶变换(FFT),离散傅立叶变换(DFT),和/或数据预调整函数,用于准备数据通过要由微处理器执行的算法的进一步处理。数据收集接口可以对数据执行一个或多个函数,而微处理器处于睡眠模式。一旦处理由数据采集接口完成,数据采集接口可以中断微处理器,以执行对数据的进一步处理(和/或对函数的输出)。
图2为根据本公开内容的一些实施例,在微处理器和外围设备之间传输和/或处理数据的数据通信接口200的框图。数据通信接口200是任何一种或多种的示例实施方式:三线串行外围接口(SPI)120,四线SPI 122和图1的内部集成电路(IIC)124。数据通信接口200(图2的)包括一个或多个寄存器202,流控制逻辑块204,状态机206,先进先出传输缓冲器(发送FIFO)/先入先出接收缓冲器(Rx FIFO的)212、中断请求(IRQ)/直接存储器存取(DMA)发生器214、外部接口216。流控制块240包括间隔计时器209。状态机206包括一个或多个数据处理逻辑块210和本地定时器208。
该数据通信接口200的组件协作以传输和/或处理从外围设备接收到的数据。寄存器202指定数据通信接口200的配置(例如,工作模式)。在一些实现中,寄存器202是存储器映射的寄存器。除其他事项外,基于寄存器202和流控制逻辑块204,状态机控制该数据通信接口200的操作。流控制逻辑块204可操作地耦合到寄存器202和状态机206。使用间隔定时器209,流控制逻辑块204控制传送的定时(例如,保持为等待间隔)。使用至少部分本地定时器208,状态机206控制传输(例如,发送命令,接收数据,并从数据处理块210处理输出)。本地定时器208可操作来生成时钟信号。此外,状态机206产生并发送命令,用于控制外围设备。状态机206(和其中的每个组件)可操作地耦合到每个寄存器202时,流程控制模块204,外部接口216,和Tx/Rx FIFO 212。Tx/Rx FIFO 212存储经由外部接口216发送/接收的数据的缓冲器。Tx/Rx FIFO 212可操作地耦合到寄存器202,状态机206,外部接口216以及IRQ/DMA发生器214。IRQ/DMA 214产生器可操作以产生中断请求220。中断请求220(其可基于至少部分地基于寄存器202中的值产生)将中断微处理器(例如,图1的微处理器110)和/或中断DMA控制器(例如,图1的DMA控制器112)。IRQ/DMA发生器214可操作地耦合到寄存器202,Tx/Rx FIFO 212,和一个或多个微处理器和DMA控制器。外部接口216通过至少一个引脚224与外围设备传送(即,接收/或发射)信号而与外围设备进行通信。外部接口216可操作地耦合到所述Tx/Rx FIFO 212、状态机206和至少一个外围设备。以下是的每个组件的进一步细节的描述。
该一个或多个寄存器202指定数据通信接口200的结构。寄存器202包括多个寄存器的。在操作中,在X位单元218中,数据传送往返于一个或多个寄存器202。X可以是对应于字节的数字(例如,8位,16位,24位等)或可以是任何其它值(例如,1比特,2比特,3比特,等等)。微处理器可通过在一个或多个所述多个寄存器中设置值来配置接口200。数据通信接口200的每个组件可以在寄存器202内存储一个或多个寄存器。例如,每一个如下可以具有在寄存器202中的相应寄存器:流控制逻辑块204,间隔定时器209,状态机206,本地定时器208,一个或多个数据处理逻辑块210,TxFIFO/Rx FIFO 212,IRQ/DMA发生器214,和外部接口216。另外,任何寄存器可在组件之间共享组件。例如,一个以上的组成可以访问相同的寄存器(并在其中存储值)。示例性(非限制性)寄存器在数据通信接口200的每个组件的以下描述中描述。
状态机206可操作来生成用于控制外围设备的命令和/或启动命令传输到外围设备。例如,状态机206产生用于传输到外围设备的读命令。读命令指示外围设备传输数据到数据通信接口200和/或使能接口从外围设备检索数据。状态机206发送读取命令到外围设备。在传输完成后,该状态机等待从流动控制逻辑块204的指令(或指示)。一旦从流控制逻辑方框204接收提示(即,指令或指示),状态机206通过利用外部接口216恢复数据检索,以在引脚224上接收和/或检索来自所述外围设备的数据。该状态机206可以(例如,从寄存器202中的状态机寄存器)检索对应于数据通信接口200的操作模式的值,并基于对应于操作模式的值而控制其它部件的操作。对于操作模式存储(在寄存器中)值标识选定的操作的模式。在操作中,基于运行模式,状态机206控制(例如,使用本地定时器)本身和外围设备之间的数据转移。
流控制逻辑方框204至少部分定时该数据通信接口200的操作。流控制逻辑块204可检索(例如,从寄存器202中的状态机寄存器)对应于数据通信接口200的值,并基于对应于操作模式的值而定时其上其它组件的操作。在操作中,基于运行模式,流控制逻辑方框204定时(例如,使用间隔计时器)本身和外围设备之间的数据转移。如上面所讨论的,状态机206产生读命令并且发送到外围设备,用于从所述外围设备发起传输数据。在启动数据传输之后,状态机206向流控制逻辑块204转移操作的控制。在执行进一步的操作之前,状态机对流控制逻辑块204保持(例如,通过执行线程监听事件)。流控制逻辑块204基于从寄存器检索的至少一个值(例如,工作模式的值)和至少一种触发状况(例如,对应于操作模式的触发)的检测而产生指令。例如,一旦由流控制逻辑块204检测到触发条件,流程控制逻辑块204向状态机206发送指令(例如,指示或事件对象)。指令(例如,指示或事件对象)导致状态机206恢复从所述外围设备中读取数据。
正如以上所述,流控制逻辑块204可检索来自状态机寄存器的至少一个值(例如,存储在寄存器202)。状态机寄存器可以实现为一个或多个寄存器位置(例如,每一个都具有存储器中的指定位置),其采用多个值之一,每个对应于数据通信接口的操作模式200的不同执行(或与之有关联的状态)。工作模式包括例如:中断模式(例如,在定时器模式或中断请求模式执行),主/从模式(例如,指定接口200是否主机或从机,其中主控制通信和从机回应来自主的提示),传输启动模式(例如,规定启动Rx传输(接收数据)或启动Tx传输(传输数据)的条件)和/或连续传输模式(例如,指定样本的预定数目应是否在DCI CS 200的单个帧转移)。作为实施状态机寄存器的进一步说明,该寄存器可以包括在存储单元中存储的主/从模式寄存器(例如,地址0x9FFF:000F),存储第一值(例如,零)来指定数据通信接口200是主机或第二值(例如,一)来指定数据通信接口200是从机。除了存储对应于操作模式的数据,该状态机寄存器可存储在选定的业务操作模式的其他值。这样的其他值可包括例如与间隔定时器209相关联的等待时间(例如,在基于定时器的模式中使用),引脚的标识符,有效电平的标识符(例如,在中断模式中使用),预定数值(例如,在连续传输模式中使用)。等待时间是流控制逻辑块204指示状态机206来检索从外围设备输出的新数据的时间间隔。在一些实施方式中,间隔定时器209是定时寄存器中存储的实际经过的时间间隔(以秒、分、时钟周期等等测得),用于结合本地定时器208以确定等待间隔(例如,多个本地定时器208)是否已相对于数据的最近传输逝去(例如,相对于来自外围设备的最后读命令或最后接收数据)。等待时间间隔可以存储在等待间隔(WAIT_TMR)寄存器。在本地定时器208的每个增量,SPI比较实际经过的等待间隔和时间间隔(例如,使用存储在所述定时器寄存器和WAIT_TMR寄存器中的值)来确定等待间隔是否已经过去。引脚的标识符标识流控制逻辑204响应有效电平的引脚(例如,标识其上流控制逻辑块204通过接收引脚上的有效电平而检测中断的引脚)。有效电平的标识符对应于信号电平(例如,电压电平),这定义了引脚的活动状态。例如,高压电平(相对于地信号的电压,诸如超过地信号的任何电压)可以对应于引脚的活动电平(′活动高′设置)。可替代地,低电压电平(相对于地信号的电压,如等于接地信号)可对应于所述引脚的活动电平(′活动低′设置)。
数据通信接口200可以结合工作模式。例如,当数据通信接口200是主机时,该数据通信接口200可通过只允许基于定时器的模式而结合中断模式和主/从模式(和/或当它是从机时,禁止基于定时器的模式)。通过在连续传输模式下运行并同时处于定时器或中断方式,数据通信接口200可结合中断传输模式和连续转移模式。其他组合尽管在本公开内容的范围,这里不列举仅出于简明的目的。结合工作模式的能力使得(组合)的工作模式的产生,其用于捕捉详细状态。
模式运算值(例如,在状态机206的寄存器中)对应于数据通信接口200的操作状态。因此,状态机206执行操作指令,其对应于存储在寄存器中活动模式操作的值。通过改变状态机206的状态,对工作模式值的任何变化可引起数据通信接口200的操作模式的改变。状态机206可利用存储在状态机寄存器中的其他值,来操作数据通信接口200的子流程,诸如检测触发条件的参数。例如,通过检测满足由该寄存器中的操作模式值设置条件的一个或多个事件,状态机206可利用流控制逻辑块204以检测触发条件。一旦检测触发条件,则流控制逻辑块204可操作以导致所述状态机从选定的外围设备接收(通过Tx/Rx FIFO 212)预定数量的值。例如,当定时器模式(即操作模式)中,流控制逻辑块204(由状态机206转移控制权后)可以使用等待时间,以确定是否经过的时间(例如,由于一个读生成命令)达到或超过了等待时间间隔(即,触发条件相应于定时器模式)。当流控制逻辑块204检测到经过时间满足或超过了等待时间(即,检测到触发条件)时,它向状态机206发送指令,这会导致状态机206恢复从所选外围设备读取数据(例如,对应于预定数量的值的数据)。当流控制逻辑块204检测到经过时间既不满足也不超过等待时间(即,未检测到触发条件)时,它不传输指令给状态机206。可替代地,在中断模式中,流控制逻辑块204通过检测至少一个引脚上的活动功率电平(例如,至少一个引脚被耦合到所选择的外围设备和/或通用输入/输出(GPIO)引脚)而检测到触发条件。预定数目的值用于识别数据通信接口200不应该接收的值的数目(在Tx/Rx FIFO 212),并同时保持在引脚上所选外围设备的单个通信会话用于与所选外围设备的通信。在一些实施例中,基于微处理器对值执行算法所需要的值的数量,微处理器设定预定数量的值(例如,通过在寄存器中存储它)。对于串行外设接口(SPI)(即,无论是三或四引脚),保持单个通信会话活动可对应于保持芯片选择引脚在活动电平(即,芯片选择对应于选择的传感器)。例如,图3A-C,4,和5示出对SPI系统的引脚发送的信号的示例。
图2的本地定时器208位于状态机206。本地定时器208可操作以在特别频率产生时钟信号。当数据通信接口200处于主模式下,存储在本地时钟寄存器(在寄存器202)的一个或多个时钟值至少部分定义本地定时器208产生时钟周期的频率。本地时钟寄存器可直接存储频率值或对应于频率值的识别符(例如,引用存储频率值的存储器位置)。可替换地,本地时钟寄存器可存储一个或多个值(例如,由本地计时器208)以确定频率。例如,本地时钟寄存器可存储对应于GPT的最近工作频率的主时钟(PCLK)值(例如,GPT 110),以及用于相对于GPT选择性地调节局部定时器208的工作频率的因子(′DIV′因子)。在这样的例子中,本地时钟208的频率“F”可以由公式确定:F=PCLK/[2×(1+DIV)。当数据通信接口200是在从模式下,本地时钟寄存器将配置具有期望输入时钟频率的相位和极性配置。在主机和从机模式下,数据在SCLK信号的一个边缘传输并在另一个采样。因此,重要的是该极性和相位对于主机和从机同样构造。
一个或多个数据处理逻辑块210位于状态机206。每个数据块处理逻辑可以全部或部分被实现为硬件作为固定功能逻辑块(例如,包括逻辑门,触发器等)或可编程逻辑块。数据处理逻辑块对于由外部接口216从外围设备检索的数据进行操作。数据处理逻辑块包括指令,在执行时,收集数据和/或处理数据(如进行身份验证,验证,或产生数据输出)。每个数据处理逻辑块可产生处理数据,例如认证、验证或修改数据。例如,该数据处理逻辑可接收一个或多个值作为输入,和从输入生成输出(即,处理数据)。在认证和/或验证的例子中,处理数据可以是布尔值,指示输入是否符合在数据处理逻辑块中限定的标准。在这样的例子中,输入可以包括在输出(即,处理数据可包括验证的原始数据的未经编辑拷贝)中。在修改数据的例子中,处理数据可是执行函数的结果,其修改输入(例如,从输入删除去除不符合标准的任何值)和/或生成与输入相关联的元数据(例如,从输入计算至少一个统计量)。一个或多个数据处理逻辑块210的每一个位于状态机206中。一旦收集或处理完成,每个数据收集逻辑块210可向状态机传输完成的指示和/或处理数据。一旦接收指示和/或处理数据,状态机206可由接口200的组件和/或接口200外部的组件,触发进一步操作(例如,诸如微处理器或DMA控制器)以收集处理后的数据。
一个或多个数据处理逻辑块210的每个可操作以对从外围设备检索的值执行至少一个函数。例如,数据处理逻辑块可以访问存储标准值的寄存器,并执行比较器以比较标准值和从外围设备检索的一个或多个值(或从检索值导出的其他值)。在数据采集的例子,标准值可是收集的多个值,和比较器可以比较收集的值的数量和收集值的实际数量。在数据处理的例子中,该标准值可以是目标值,和比较器可比较目标值和从一个或多个从外围设备检索的值。其它示例性功能如下所述。
用于数据收集的数据处理逻辑块可以由数据采集接口200利用,以收集预定数目的值。在一些实施方式中,微处理器设置寄存器值,其指示接口200执行用于数据收集(和/或定义预定数的寄存器值)的数据处理逻辑块。微处理器可以在其中接口200收集数据的持续时间休眠。微处理器对接口200卸载与执行数据处理逻辑块相关联的过程。实际上,微处理器向接口200卸载收集数据和操作计时器(这是需要时间来传送数据)。因为接口200208包括本地定时器,该接口可以定时在数据收集之间的间隔,而无需GPT计时器活动。因为接口200包括时间间隔计时器209,接口可定时数据接收之间的等待时间间隔,而不需要GPT计时器是活动的。当地定时器208和间隔定时器209独立于和微处理器相关联的GPT。因此,GPT和微处理器可保持在睡眠模式(并且由此降低功耗),或可用于执行其他过程(从而提高运行效率)。
用于数据处理的数据处理逻辑块可以由数据采集接口200用于(即,从外围设备接收到的数据)执行对输入数据的函数。函数包括(而不限于)以下任何一项:平均函数,数据完整性函数,阈值函数,验证函数,状态检测函数,格式转换函数,过滤函数,屏蔽函数,峰值检测函数,傅立叶通过算法变换的快速傅立叶变换(FFT),数据预调整函数,即准备数据由微处理器执行用于进一步处理,和/或任何其他函数或它们的组合。示例性数据处理逻辑块执行验证函数验证满足先决条件即数据(例如,基于算法设定的先决条件)。示例性数据处理逻辑块执行格式转换功能,从第一数据到第二编码方式进行编码。例如,格式转换功能可以转换数据,以满足先决条件和/或从传感器的包数据格式到由算法结构可解释的形式变换数据。执行傅立叶变换的示例性数据处理逻辑块可以执行:快速傅立叶变换(FFT),离散傅立叶变换(DFT),或者任何其他傅立叶变换。
执行阈值功能的示例性数据处理逻辑块进行比较数据(例如,多个传感器值的每一个)和阈值(例如,存储在阈值寄存器)。基于数据是否大于、小于和/或等于阈值,示例性数据处理逻辑块可包括不同的指令集。在一些现有的系统中,微处理器被加电(例如,从睡眠模式中断)来执行阈值函数。在这样的系统中,微处理器可以唤醒以检查从外围设备接收到的每个样本,并作为结果,计算消耗的显著资源。因为数据采集接口200实现在逻辑块中的阈值函数,微处理器避免信号与阈值函数相关的资源,并由此降低(例如,相对于现有的这种系统)由微处理器消耗的功率。在中断微处理器之前,接口200比较数据和阈值。使用逻辑块,当数据符合与微处理器(例如,由微处理器设定)有关的阈值标准,接口200可以仅中断微处理器。在一些实施例中,进行阈值功能(代替微处理器的)的接口200可以防止错误的开始,并节省10-20倍的功率。
执行平均函数的示例性数据处理逻辑块计算一组值的平均值,并输出该平均值。平均功能可被执行一次(例如,按需)和/或可以被重复执行的(例如,在每X数目的样本之后,产生运行的平均数)。在其他示例中,所述平均函数被用于生成修正值,其解决传感器读取的轻微差异(例如,以校正传感器的校准问题)。
执行数据完整性函数的示例性数据处理逻辑块确定是否含有最新检测到的错误。例如,数据完整性函数可是错误检测函数。在这样的例子中,数据包括一个或多个错误检查位。数据完整性功能对一个或多个差错检验位进行操作的,以验证所收到的分组没有错误。基于数据是否包含错误,示例性数据处理逻辑块可包括不同的指令集用于执行。例如,当它确定该数据包含错误,接口200可丢弃数据,并请求从数据源的另一传输。如果在数据中检测到没有错误,则接口200可以将数据传送到另一逻辑块和/或中断微处理器。在从接口200向微处理器传输数据之前,逻辑块检查检测数据是否包含错误。在中断微处理器之前,接口200检测(使用逻辑块)数据错误。使用该逻辑块,接口200可以仅当数据没有检测的错误时中断微处理器。因为微处理器仅当没有检测到错误中断,则接口200防止微处理器的错误开始执行算法,并由此,改善微处理器的功率效率。
执行状态检查函数的示例性的数据处理逻辑块验证外围设备的状态。例如,状态检查功能比较状态值(例如,从外围设备接收)到可接受的状态值(例如,存储在寄存器中)。当它被判断为状态值等于可接受的状态值,则状态检查功能可产生指示(例如,布尔值,真实,等):该外围设备具有可接受的状态。当它被判断为状态值不等于所述容许值的状态时,状态检查功能可产生指示(例如,布尔值,假的,等):该外围设备不具有可接受的状态。在外围设备是传感器的实现中,状态检查功能可以从耦合到所述传感器的专用线检索状态值。专用线路可是耦合在传感器用来触发接口200内中断接口200之间的电引脚或接触,使得接口200驻于的芯片可以检索数据。可替代地,并非等待中断,接口200可以从传感器的寄存器主动地读取状态值,以确定是否有新的传感器数据可用。在这样的示例中,状态值可采用一个值,指示所述传感器是否正常工作(例如,“无错误操作”,“有错误操作”,“没有信号”和/或没有信号),该传感器是否生成新的传感器值(例如,“新的数据可用”或“没有新的数据可用”),以及/或它们的组合。接口200装载寄存器值以解释这样的状态值,因此可以区分“状态检查数据”与“样本数据”。在传统系统中,微处理器可以不断地检查“状态检查数据”,以确定何时继续读取样本数据,这就需要微处理器清醒(即,不是在睡眠模式)并消耗功率。使用本文描述的状态检查功能,微处理器可保持在睡眠模式(或其他执行过程),而接口200检查该状态值。
在Tx/Rx FIFO 212内,Tx FIFO存储发送出数据采集接口200的数据,和RX FIFO存储由接口200从外部设备接收的数据。在数据传输期间,接口200从Tx FIFO数据发送。TxFIFO可以经由寄存器202填充。在某些实现中,微处理器或DMA控制器经由寄存器写入数据到Tx FIFO。从Tx FIFO一次一个比特输出数据。当在Rx FIFO接收数据时,微处理器或DMA控制器可以从Rx FIFO检索数据,并将其转移到另一个存储器元件(微处理器可访问的存储器、芯片上存储器和/或SRAM)。RX FIFO和/或Tx FIFO可包括多个存储器位置;当一个存储单元已满,则FIFO翻转到下一个可用的存储器位置。
至少部分地基于IRQ/DMA寄存器,该IRQ/DMA产生器214可操作以产生中断请求220。该IRQ/DMA寄存器存储中断传送到的组件的值的标识。例如,第一值可以对应于微处理器,和第二值可以对应于DMA控制器。因此,在IRQ/DMA寄存器中存储的值(即,第一或第二)标识哪个微处理器和DMA控制器将被中断。
外部接口216包括至少一个引脚224,其用于将数据通信接口200耦合到至少一个外围设备。外部接口216是用于通过与外围设备传送(接收和/或发射)信号而与外围设备进行通信。所述至少一个引脚224包括可以在本文中公开的任何引脚配置(例如,关于图1的任何数据通信接口120,122,以及124所描述的和/或相对于图3A-3C,4和5所述的三和四针配置)和其他引脚配置。基于哪个CS引脚对应于在所选择的外围设备寄存器中识别的外围设备寄存器,外部接口216可以在CS引脚上传输活动信号。选定的外围设备寄存器存储值(例如,由CS引脚),识别哪个外围设备是所选择的外围设备。在传感器的例子中,所选择的外围设备寄存器是可存储值的传感器寄存器,识别一个或多个传感器的哪个是用于在对应引脚上通信的选择传感器。
在图2的例子中,该数据通信接口200具有内置的定时器(即,本地计时器208和间隔计时器209)用于定时数据传输和等待间隔。在数据传输的开始,在数据采集之间所需的定时间隔存储在一个或多个寄存器控制定时器。例如,在微处理器在定时器模式配置接口200之后,微处理器进入睡眠模式。虽然微处理器处于睡眠模式,接口200使用间隔定时器209和/或本地计时器208定时自身,和周期性数据接收,直到整个数据传输完成(例如,直到样本的预定数目的累计)。因为事件由接口200自定时,从接口200到片上存储器的数据传送可发生,例如使用DMA控制器。至少部分基于定时其自己传输的接口200,微处理器可以完全避免启动突发传输,和在一般项目的目的定时器(GPT)的中断服务程序(ISR)和接口200的ISR之间的切换。如果系统需要更多的处理(例如,在电力费用),微处理器和GPT可用于其它任务,而接口200传输数据。数据通信接口200的一些实施都部分或全部包括在片上系统(SOC)包。只有接口200供电具有若干本地存储器,在接口200中捆绑所有功能的作用是功率幅度减少的命令,而共同芯片或SOC上的其它组分掉电(在和接口200相同芯片上的其它组件)。此外,微处理器不执行两组ISR(即,不执行GPT的一组ISR和接口的另一组ISR),并且仅执行单个组的ISR(即,仅执行接口200的ISR)。因为接口200可以定时其自己的转移(和等待间隔),GPT保持无效(例如,在睡眠模式)和GPT的ISR不由微处理器执行。
下面在四针串行外设接口的实施例(SPI)的环境中(即,图200的该数据通信接口200的具体实施例)描述图3A、3B和3C。在本实施例中,四针SPI实现配置寄存器(例如,类似于接口200的寄存器202),其用于启动传输,中断SPI(例如,基于Rx或Tx FIFO的下溢或溢出)和/或用于控制SPI的动作(即,由流控制逻辑块)。
配置寄存器控制其中启动SPI传输的方式。主模式使能(MASEN)位标识SPI是否处于主模式或从模式(例如,主/从模式寄存器的实施方式)。例如,当MASEN位是零时,SPI是从机;当MASEN位是0时,SPI是主机。中断模式(TIM)位标识SPI的传输和中断模式(即,其中发起SPI串行传输的方式)。设置TIM位将SPI置于传输(Tx)启动转移模式。清除TIM将SPI置于接收(Rx)启动转移模式。当设置TIM位(例如,设置为第一值,诸如一)时,写入到Tx FIFO发起传输(即,从Tx寄存器到外围设备)。当转移的字节数量等于在IRQ模式(IRQMODE)中存储的值(例如,二进制形式)加上1时,转移被中断(即,当传输的字节数量=IRQMODE+1,中断)。当TIM位被清除(例如,设置为第二值,诸如零),从Rx FIFO的读取启动传输(即,从外围设备到Rx寄存器)。读取必须完成,而SPI处于闲置状态。在主动转移期间执行的读取将不会启动另一个传输。TIM位至少部分控制SPI是否处于传输(Tx)启动传输模式或接收(Rx)启动传输模式。
在Tx启动的传输模式下,只要第一字节写入Tx FIFO,SPI开始传输数据。第一字节的SPI传输立即发生。该SPI采用连续发送使能(CON)位,以确定传输额外的数据是否超出第一字节。该CON位标识SPI是否处于连续传输模式。当启用连续传输模式(例如,CON位被设置为一)和中断使能模式(例如,TIM位被设置为一),从TX FIFO的SPI传输数据,直到任一:(1)指定的字节数已被转移(例如,在传输字节计数(CNT)寄存器中指明字节数),或(2)在未指定字节数(例如,在CNT寄存器被设置为零)的情况下,在Tx FIFO没有有效的数据(例如,有效的数据是尚未传送的数据)。在本实施例中,CNT寄存器标识字节数。在其他实施例中,CNT寄存器可识别在测量数据的任何单位的数据(例如,位,字节,或其倍数,诸如千、兆、千兆等)。CS引脚有效(即,活动信号在CS引脚上传输),并在每个8位(1字节)串行传输的完成时间保持活动(例如,当传输每个传输之间,周期重复)。因此,单个SPI帧(即,单个通信会话)包括从多个8位串行传输所收集的数据。CS引脚上的活动信号保持选定传感器的单个通信会话用于从Tx FIFO传输的持续时间(即,从传送开始直到传输结束)。
在Rx发起传输模式中,通过RX FIFO模式读取的发起传输的大小取决于IRQ(IRQMODE)位。如上述讨论的,在SPI被中断之前,IRQ模式(IRQMODE)位指定要传送的字节数量(例如,在二进制形式)减一。因此,要传送的字节数目是IRQMODE+1。例如,当IRQMODE被设定为7(即,111的二进制值),并读出到Rx FIFO发生时,SPI主机发起8字节传输,其后中断SPI。当启用连续传输模式(例如,CON位被设置为一)和中断模式位被禁用(例如,TIM位被设为零,或清除),该SPI继续数据传送,直到Rx FIFO已满。CS引脚被断言并重复的8位串行传输期间保持断言,直到RX FIFO已满(例如,传输重复具有每个传输重复之间的转移)。再次,单个SPI帧包括从多个8位串行传输所收集的数据。在到Rx FIFO的传输持续时间,CS引脚上的活动信号保持与选定传感器的单个通信会话(即,从传送开始直到Rx FIFO已满)。如果CON位被设置,8个字节传输反复发生,与字节之间的CS引脚没有去断言(即,活动信号被终止,并不在CS引脚上发送)。如果CON位清零,8个字节将发生具有转移之间的拖延期间,CS引脚去断言。然而,在连续模式下,如果CNT寄存器的值设置为大于0,表示断言将是持续整个画面CS引脚。
表1(如下)列出了示例性的二进制值和基于二进制值由SPI采取的相应操作。
表1:在数据发送(Tx)或数据接收(Rx)期间,示例性的二进制值和由SPI(基于值)采取的动作。
无论处于Rx或Tx发起传输模式(例如,基于TIM位),该SPI使用帧继续(FRAMECONT)位,以识别唯一SPI帧是否在SPI帧中包括多个字节。当FRAMECONT位被清除(即,设置为零),并CNT位被置>0时,SPI将仅发送仅传送一帧数据(例如,从Tx FIFO传输或加入到RxFIFO),没有更多的帧。在这样的情况下,一帧包含指定数量的的字节数(例如,在CNT寄存器中指定字节数)。当FRAMECONT位被设置(即,被设定为一),多个帧被传送,以及每个帧包含指定数量的字节。转移将持续到(和/或结束时)TX FIFO中不再包含活动数据,或者直到RXFIFO已满。当FIFO无数据/空间(即,分别为溢或下溢)时,转移拖延,直到传输数据/空间可用。该SPI通过不打卡串行时钟(例如,在SCLK引脚上不发送时钟信号)拖延,直到数据/空间可用。
当连续传输模式被禁用(例如,CON位被设置为零)时,每个SPI帧包括从单个8位串行传输所收集的数据。如果数据超过8位,则多个转移发生具有每个转移之间的拖延周期。CS引脚在停止周期切换到非活动信号。因此,每个SPI帧只包括来自8位串行传输所收集的数据。当连续传送模式被禁用(例如,CON位被设置为零)并中断使能模式(例如,TIM位设置为一)时,该SPI发起新的转移,直到没有有效的数据在Tx FIFO可用。当连续传送模式被禁用(例如,CON位被设置为0)和中断模式被禁用(例如,TIM位被设置为0)时,SPI发起新的传送,直到Rx FIFO为空。
配置寄存器控制在SPI中本地时钟的相位和极性。串行模式时钟相位(CPHA)位标识本地时钟的相位。当CPHA位被设置为第一值(例如,一),本地时钟在每一个串行位传输的开始脉冲。当CPHA位被设置为第二值(例如,零),本地时钟在每一个串行位传输结束脉冲。串行时钟极性(CPOL)位标识本地时钟的极性。当CPOL位被设置为第一值(例如,零)时,本地时钟空闲低(以及高电平有效)。当CPOL位被设置为第二值(例如,一),本地时钟空闲高(以及活动低电平)。SPI可与所选择的外围设备同步极性和相位(例如,通过与外围设备从机发送和/或接收相位和极性值,或设定从机的极性和相位以匹配SPI)。
寄存器的配置控制SPI对于Rx FIFO的溢出是否中断。在图3A,3B和3C的实施中,SPI同时接收数据,并在数据传输过程中发送数据。因此,在数据传输(即,从Tx FIFO发送数据)期间,SPI也在Rx FIFO接收数据并将其存储。当在RX FIFO中没有空间以存储输入数据而不覆盖从RX FIFO中读出的现有数据时,数据溢出发生。例如,如果接收的数据不从RxFIFO读取(和/或Rx FIFO已满),数据溢出Rx FIFO,作为结果,在SPI内产生溢出中断。RXFIFO刷新使能(RFLUSH)位用于启动刷新(例如,重设、忽略或以其他方式擦除)从接收(Rx)FIFO的数据。当RFLUSH位被设置(例如,设置成第一值,例如一),该SPI启动清除Rx FIFO。当RFLUSH位被设置,所有接收的数据被忽略,并且基于Rx FIFO的溢出不产生中断。当RFLUSH位被清除(例如,被设定为第二值,如零)时,SPI禁用清除Rx FIFO。RX FIFO刷新使能(RFLUSH)位可以设置以防止保存到Rx FIFO,因此防止Rx FIFO溢出,因为数据被刷新(例如,在接收数据被有意忽略和/或由SPI执行的代码不读取RX FIFO的情况下)。另外,当SPI从RX FIFO读取至少一部分的接收数据时,RFLUSH位清零,以允许数据溢出Rx FIFO。在这种情况下,中断(由于RX FIFO溢出)可以禁用,即使在当接收数据溢出RX FIFO(例如,在SPI故意忽略溢出条件和/或由SPI执行的代码不响应溢出条件的情况下),通过清除配置寄存器中的Rx中断使能(RXOVR)位溢出。该RXOVR位至少部分控制SPI是否被Rx FIFO溢出中断。在Rx FIFO溢出的情况下,将RXOVR比特设置为第一值(例如,零)禁用Rx-溢出中断并防止SPI中断微处理器。当RX FIFO溢出时,将RXOVR位设置为第二值(例如,一)允许接收溢出中断和SPI中断微处理器。
配置寄存器控制SPI是否对于Tx FIFO的下溢中断。在图3A,3B和3C的实施中,SPI同时接收数据,并在接收数据期间发送数据。因此,在接收数据(即,在Rx FIFO中存储接收的数据)时,SPI也从Tx FIFO转移数据。当传输的数据在从Tx FIFO的数据传输期间没有写入到TX FIFO时,数据出现下溢。如果新的数据(更换已经传输的数据)不写入Tx FIFO,由SPI产生下溢中断。Tx FIFO刷新使能(TFLUSH)位用于启动从传输(Tx)FIFO(例如,重设,忽略或否则删除)刷新数据。当TFLUSH位被设置(例如,设置成第一值,例如一),该SPI启动清除Tx FIFO。当TFLUSH位被清除(例如,被设定为第二值,如零)时,SPI禁用清除TX FIFO。该TFLUSH位可设置以防止Tx FIFO的下溢,由于在Tx FIFO中的数据被刷新(例如,在没有数据发送和/或由SPI执行的代码不传输数据的情况下)。当下溢条件在Tx FIFO存在时,设置的该TFLUSH位防止中断SPI。另外,TFLUSH位清零,以允许在SPI发送至少某些从Tx FIFO中的数据的情况下Tx FIFO的下溢。在这种情况下,中断(由于Tx FIFO下溢)可被禁用,即使在当下溢存在用于Tx FIFO中(例如,在SPI故意忽略下溢条件和/或凡由SPI执行的代码不响应下溢条件的情况下),通过在配置寄存器中清除Tx下溢中断使能(TXUNDR)位。所述TXUNDR位至少部分控制SPI是否产生用于发送FIFO下溢的中断。将TXUNDR比特设置为第一值(例如,零)禁用Tx-下溢中断并防止由Tx FIFO中断的微处理器下溢。将TXUNDR位设置为第二值(例如,一)启用Tx下溢中断,并且微处理器被Tx FIFO下溢中断。
配置寄存器包括流控制寄存器,用于控制SPI的操作。在图3A,3B和3C的实施中,SPI的配置寄存器支持(在其它操作模式中)中断模式(即,配置以设置在定时器模式或中断请求模式)和主/从模式(即,被配置以设置为从机的主机)。另外,配置寄存器存储其他值,包括相关于间隔定时器的等待间隔(例如,用于定时器模式),引脚的标识符(即,活动电平引起SPI的中断的引脚),读数据突发尺寸(RDBURSTSZ)寄存器,寄存器CNT和传输字节计数(TXBYTES)寄存器。RDBURSTSZ寄存器标识在从从机接收的单脉冲串中接收的数据量(例如,字节数,比特数,多个数据样本等),在等待流控制逻辑块之前(例如,由等待时间拖延的时钟信号)。在从机外围设备读取数据之前,该传输字节数(TXBYTES)寄存器确定了传输的多个字节。在图3A-3C的实施方式中,这种电阻存储发送的字节数-1(即,由于字节数从0开始)。这包括所有需要被发送到从机的字节数(例如,命令字节和地址字节,如果需要的话)。
中断模式寄存器设置为定时器模式。该SPI包括在当地时钟速率定时的16位定时器(即,间隔定时器)以引入等待状态,并读取数据。当在计时器模式下,SPI中的流控制逻辑块使用等待时间,以确定经过时间(例如,自从产生了最后的读命令或自从从外围设备最后读取数据)是否达到或超过了等待时间(即,对应于定时器模式的触发条件)。SPI等待,直到等待间隔在间隔计时器结束,以及在等待时间到期时,SPI读取由RDBURSTSZ寄存器指定的字节数(即,RDBURSTSZ+1的字节数,因为字节数开始在0)。例如,当SPI中的流控制逻辑块检测到经过的时间满足或超过了等待时间(即,检测到触发条件)时,它发送指令到SPI中的状态机,这会导致状态机恢复读取传输。在读取字节的指定数量后,SPI进入进入等待状态,同时重新启动间隔定时器。该SPI再等待,直到间隔定时器继续接收数据届满。这个过程不断重复,直到接收的字节总数等于由CNT寄存器指定的值。
中断模式寄存器被设置为中断模式。在中断模式下,当它检测到通过存储在配置寄存器中的识别符识别的引脚上发送的活动电平时,SPI被中断。在图3A,3B和3C的实施方式中,标识符识别SPI的MISO引脚(连接SPI到从外围设备)或RDY引脚(其连接SPI到一个或多个通用输入/输出设备输出端口(GPIO))。在SPI中的流控制逻辑块通过检测由所述标识符标识的引脚上的活动电平而检测触发条件。当标识符标识MISO脚时,SPI等待(保持在等待模式),直到它检测到MISO引脚上的活动电平。当SPI检测到MISO引脚上从无效电平到激活电平的转换(即,检测对应于中断模式的触发条件)时,SPI读取由RDBURSTSZ寄存器指定(从由MISO引脚连接的从外围设备)的字节数量(即,RDBURSTSZ+1的字节数)。在从从属外围设备读取数据后,SPI可以返到进入等待状态,直到它再次检测MISO引脚上的活动电平。该过程重复直到SPI从从属外围接收等于由该CNT寄存器指定的值的字节数。可替代地,当该标识符识别RDY引脚时,SPI等待(在等待模式存放)直到它检测到RDY引脚上的活动电平。当SPI检测到RDY引脚上从无效电平到激活电平的转换(即,检测对应于中断模式的触发条件)时,SPI读取(从由RDY引脚连接的从GPIO设备)RDBURSTSZ寄存器指定的字节数量(即,RDBURSTSZ+1的字节数)。在从GPIO从属设备读取数据后,SPI返回进入等待状态,直到它再一次检测到RDY引脚上的活动电平。这个过程重复进行,直到SPI从从GPIO设备接收等于由该CNT寄存器指定的值的字节数。
在一些实施方式中,由CNT寄存器指定的值是RDBURSTSZ的整数倍+1(即,无论SPI是否处于基于间隔定时器的定时器模式,基于MISO引脚的中断模式,和/或基于MISO引脚的中断模式)。这使能SPI在每次迭代读取相同量的数据(即,RDBURSTSZ+1)并产生数据的最终(总)量为RDBURSTSZ+1的整数倍。
图3A-3C,图4和5示出根据本公开的实施例,在单个通信会话期间由流控制逻辑块控制的数据传输中在串行外设接口(SPI)引脚上产生的信号。数据在SPI(这是上文广泛描述)和外围设备之间传输。SPI是主机和外围设备是从机。在每一个图中,信号在单个SPI帧中转移(即,单个通信会话),并示出具有相对于时间轴的定时。每个时间表开始在时间t0和按t1,t2,t3等等的顺序从其继续。
图3A-3C示出根据本公开内容的一些实施例,在单个SPI帧期间在四针SPI的每个引脚上发送的信号。引脚包括一个或多个片选(CS)引脚CSN 304,主出/从入(MOSI)引脚306,主入/从出(MISO)引脚308,和串行时钟(SCLK)引脚310。SPI包括本地计时器(例如,串行时钟)(未示出),用于在SCLK引脚310上生成时钟信号。SPI使用本地定时器(和相应的时钟信号),以协调由SPI传输的信号(在MOSI引脚306)和由SPI从外围设备接收的信号(MISO引脚308上)的相对定时。该SPI包括间隔定时器(例如,实现为定时器寄存器),用于定时从外围设备接收数据(例如,读取)的等待时间间隔等。
转到图3A,图3A示出一个例子,其中传送数据被SPI基于SPI发送读取命令到外围设备的外围设备接收(例如,使用状态机)。示出信号,具有相对于时间线302的时间。在时间t0,CS引脚304未被确立,和SCLK引脚310是不活动的(即,保持在不发送时钟信号的恒定状态下)。
在时间t1,通过在引脚上传输活动信号,SPI断言CS引脚304,并启动在MOSI引脚306上向外围设备传输读取命令。CS引脚304是活动低电平信号,以及因此,引脚的活动电平是低电压电平(即,在时间t0,CS引脚从高电压电平下降到低电压电平304,进入活动状态)。SPI在SCLK引脚310上产生时钟信号,以定时在MOSI引脚306上向外围设备传输读取命令(在图3A中,标记′Tx0′)。从SPI的TX寄存器检索读取命令,用于传输到外围设备。在t1和t2之间的时间段,SPI发送读取命令到外围设备。
在时间t2,SPI完成向外围设备传输读取命令,开始延缓输出时钟信号,并开始计时等待间隔。虽然本地计时器仍在操作并生成时钟信号,通过在SCLK引脚310上不发送时钟信号,SPI延缓时钟信号的输出。在时间t2和t3之间的时间间隔,SPI延缓SCLK引脚310的输出本地定时器的N个周期(即,图3A中,标有‘N SCLK周期’)。由SPI从WAIT_TMR寄存器检索周期(即,等待时间)的数量。SPI利用定时器寄存器(即,间隔计时器)来存储自从读取命令的传输(即,由于时间t2)已经过去的时钟周期的实际数量。在本地计时器的每个增量(在t2和t3之间的时间),SPI比较在定时器寄存器中存储的值和在寄存器WAIT_TMR存储的值,以确定是否等待间隔已经过去。在一些实施例中,等待时间对应于外围设备的数据的输出频率(例如,传感器数据的采样率)。通过保持等待间隔,SPI以外围设备产生输出数据的相同频率读取来自外围设备的数据。
在时间t3,SPI检测等待时间已经过去,并开始从所述外围设备中读取数据。通过确定存储在定时器寄存器中的值大于或等于给并存储在寄存器WAIT_TMR值,SPI检测等待时间已经已过。通过重置定时器寄存器(例如,零),SPI重置定时器间隔。在时间t3和t4之间的时间间隔中,SPI在MISO引脚308上从外围设备(标有“RX0′)接收数据样本。采样数据被存储在SPI的RX寄存器。在本实施例中,SPI只能在每个等待间隔之后读取从外围设备的仅仅一个采样数据。然而,SPI读取可以在每个间隔的等待之后从所述外围设备读取数据的“突发”,包括任何数目的数据样本。在读取间隔拖延之前,SPI利用读取数据突发尺寸(RDBURSTSZ)寄存器来决定在单一突发中从外围设备读取的数据量。在图3A的例子中,RDBURSTSZ寄存器标识字节数减一(即,读取字节数=RDBURSTSZ+1)。因此,RDBURSTSZ寄存器包含零值,其对应于读取0+1=1字节。
在时间t4时,SPI完成在MISO引脚308从所述外围设备读取数据样本,开始延缓输出时钟信号,并开始使用定时器寄存器计时等待间隔。SPI在当前SPI帧中存储总和寄存器,其标识从外围设备接收的数据量。总和寄存器匹配CNT寄存器的度量单位(例如,两个字节,位计算,或其整数倍)。SPI递增总和寄存器,即由对应于数据RX0的大小的值。SPI比较在总和寄存器中的值和CNT寄存器的值,以确定是否结束SPI帧。SPI决定在总和寄存器中的值是否小于在CNT寄存器中的值,因此,继续读数据(和不结束帧SPI)。再次在时间t4和时间t5之间的时间间隔,SP计时如上相对于时间t2和t3之间的等待时间间隔的等待时间间隔。SPI利用定时器寄存器(即间隔定时器)来存储时钟周期的实际数的计数已经过去了因为该数据是在MISO引脚308最后读取(即,自从时间t4)。
在时间t5,SPI检测等待时间已经过去时,附加的数据读出从外围设备开始,并重置定时器间隔。在时间t5和时间T6之间的时间间隔,SPI再次在MISO引脚308从外围设备接收附加的采样数据(标示于图3A“RX1”),则样本数据存储在SPI的RX寄存器。
在时间t6,SPI完成在MISO引脚308上从外围设备的样本读取,开始延缓输出时钟信号,并开始使用定时器寄存器计时等待间隔。在时间t6和时间t7之间的时间间隔期间,SPI再次等式等待时间,如上相对于时间t2和t3之间的等待时间间隔。
在时间t7和t8的时间间隔,SPI多次读取数据采样并保持等待时间,例如,如被重复相对于时间t5和t7的时间间隔的每个所述。此外,SPI反复递增寄存器,并确定该总和的总和寄存器中的值小于在所述CNT寄存器中的值,因此,继续读取数据(和不结束帧SPI)。
在时间t8,SPI检测等待时间已经过去,并且开始从外围设备中读取的其它数据。在时间t8和时间t9之间的时间间隔,SPI在MISO引脚308上从所述外围设备接收进一步的采样数据(在图3A,标记为“RXM′)。数据样本存储在SPI的RX寄存器中的。
在时间t9,SPI完成在MISO引脚308从所述外围设备的样本读取。SPI以对应于采样数据RXM的尺寸的值递增总和寄存器,并比较总和寄存器中的值和CNT寄存器中的值来确定是否结束该SPI帧。在这一点上,SPI已经在MISO引脚308上重复M+1次,等待的等待时间和收集数据样本的过程。在时间t9,SPI确定总和寄存器的值等于在CNT寄存器中的值,并通过从有效电平(即,低电压)到无效电平(即,高电压)结束CS引脚的过渡。在SPI已将数据转移到Rx FIFO之后,SPI利用数据处理逻辑模块以在中断处理器之前执行对数据的函数(或功能的组合),以对数据样本执行算法。
在图3A中,单个CS帧包括从外围设备多个收集的数据。单帧CS开始在时间t1和在时间t9结束。在CS帧期间,活动信号保持在CS引脚上,其在传输到Rx FIFO的持续时间连接SPI到外围设备。在这个例子中,基于CNT寄存器,预定M+1传输(例如,提前转移确定的)。微处理器将根据微处理器对值执行算法所需的数据样本量而设置该CNT寄存器。
转到图3B,图3B示出具体的例子,其中转移数据被SPI从基于所述的SPI发送读取命令到外围设备的外围设备接收。操作如类似于相对于图3A所描述,细节这里不再重复仅出于简洁。在本实施例中,SPI在寄存器存储以下具体值:串行时钟相位模式(CPHA)位被设置为一(例如,配置本地时钟在每个串行比特传输的开始脉冲),串行时钟极性(CPOL)位被设置到零(例如,配置本地时钟在低电压电平到空闲,并具有高电压电平的活动电平),传输字节计数(TXBYTES)寄存器被设定为零(例如,配置SPI传输1字节,在从从机读取数据之前(即TXBYTES+1=0+1)),转移字节计数(CNT)寄存器被设置为4(例如,预定数目的数据样本,以收集在单个通信会话和配置SPI以收集4个数据样本),读取数据脉冲串大小(RDBURSTSZ)寄存器被设置为一(例如,配置SPI收集2(即,RDBURSTSZ+1=1+1)),和等待时间(WAIT_TMR)寄存器被设置为10(例如,配置SPI等待本地定时器的10个时钟周期)。该SPI使用在寄存器中的特定值来控制数据的传输。
在图3B的例子中,SPI断言CS引脚304(即,在时间t1),并在MOSI引脚30发送(即,时间t1和t2之间)单字节读命令(在图3B中标记为“Tx0上′)6。SPI然后等待10个时钟周期(即,时间t2和t3之间)读取的数据的两字节脉冲串之前(在图3B,标记为“Rx0′以及′Rx1′)。在读取数据的两字节脉冲串之前(在图3B,标记为“Rx2”和“Rx3′),SPI再次等待10个时钟周期(即,时间t5和t6之间)。在时间t8,SPI判定总和寄存器中的值(对应于已经读取读的四个字节)等于在所述CNT寄存器的值(对应于读取的预定的四个字节数据),并通过从活动电平(即低压)向无效电平(即高压)转换CS引脚而结束SPI帧。单帧CS包括从外围设备多次读取数据的采集的数据。单帧CS在时间t1开始和在时间t8结束。
据指出,当用于流量控制或FIFO数据/空间的拖延时钟信号输出(即,在等待区间拖延SCLK引脚310)不可用,最后SCLK边缘始终是采样沿(即在这个例子中,下降信号)。因此,当等待周期结束时,被发送到从机的第一信号是驱动边缘(即,在这个例子中,上升信号)。虽然当CPOL位被设置为零,SCLK引脚310信号空闲LOW,并当CPOL位设置为一时空闲HIGH,CPHA位决定取样和驱动边缘的序列。因此,对于CPHA=1,SCLK信号是在相同的水平的空闲水平停滞不前。然而,当CPHA位被设置为零时,SCLK引脚延缓在和空闲电平的相对电平。在传输结束时(即,当CS未确立时),SCLK引脚始终空转为每个CPOL。下面的表2包括CPOL位和CPHA位的组合如何影响SCLK闲置和失速水平的摘要。图3C示出了例子,其中SCLK空转310引脚低和高失速(即,基于所述CPHA位被设置为零,且CPOL位被设置为0)。
s:在CPOL位和CPHA位和相应的SCLK SCLK闲置和失速水平的示范性组合。
转到图3C,图3C示出了一个具体的例子,如转移数据被SPI从基于所述的SPI发送读取命令到外围设备的外围设备接收的。操作如类似于相对于图3A和3B所述;细节这里不再重复仅出于简洁。在本实施例中,SPI在寄存器存储以下具体值:串行时钟相位模式(CPHA)位被设置到零(例如,配置本地时钟在每个串行位传输的结束脉冲),串行时钟极性(CPOL)位被设置到零(例如,配置本地时钟在低电压电平到空闲,并具有高电压电平的激活电平),传输字节计数(TXBYTES)寄存器被设定为零(例如,配置SPI传输1字节从从机读取数据之前(即TXBYTES+1=0+1)),转移字节计数(CNT)寄存器被设置为2(例如,预定数目的数据样本采集期间,单个通信会话和配置SPI收集2数据样本)时,读出的数据脉冲串大小(RDBURSTSZ)寄存器设置为零(例如,配置SPI收集1字节脉冲串(即,RDBURSTSZ+1=0+1))和等待间隔(WAIT_TMR)寄存器被设置为10(例如,配置SPI等待本地定时器的10个时钟周期)。SPI控制寄存器使用的具体数值数据的传输。特别是,在SCLK引脚310空闲低(即,时间t0和t1和再次在时间T6之后)和失速高(即,之间时间t2和t3和,再次在时间t4和t5之间)基于CPHA位被设定为零,且CPOL位被设为零(例如,作为相对于表2描述)。
在图3C的例子中,SPI断言CS引脚304(即,在时间t1),并在MOSI引脚306发送(即,时间t1和t2之间)单字节读命令(图3C中标记为“Tx0上′)。SPI然后延缓10个时钟周期等待间隔(即,时间t2和t3之间)。在延缓期间,SCLK引脚310保持在高电压电平。当等待时间结束时,SPI在MISO引脚308读取数据的一个字节突发(图3C标有“RX0′)。SPI再次延缓(SCLK引脚310在高电压电平)10个时钟周期(即时间t4和t5之间)的间隔,在读取数据的一个字节的脉冲串之前(在图3C,标记′Rx1′)。在时间T6,SPI确定在总和寄存器(对应于已被读取的两个字节)的值等于在所述CNT寄存器(对应于数据读取的预定的两个字节)的值,并通过从活动电平(即,低压)向无效电平(即,高压)转换CS而结束SPI帧。单帧CS包含来自从外围设备多个采集的数据读取。单帧CS在时间t1开始,在时间t6结束。
转到图4,图4示出了根据本公开的一些实施例的三针数据通信接口中的每一个引脚上发送信号。引脚包括一个或多个片选(CS)引脚CSn404,(Sosit)引脚406,和串行时钟从出/从(SCLK)引脚408。SPI包括本地定时器(例如,串行时钟)(未示出),用于生成SCLK引脚308。SPI包括间隔定时器,用于定时从所述外围设备的数据接收(例如,读取)之间的等待间隔(例如,实现为定时器寄存器)。该三针SPI的操作类似于参考图3A、3B和3C所述的四针SPI;细节这里不再重复仅出于简洁。差别在于:对于三针,数据发送/接收发生在单一的双向引脚(即,引脚SOSI 406)。在本实施例中,SPI在寄存器中存储如下特定值:CPHA位被设置为零,CPOL位被置零,TXBYTES寄存器被设置为零,CNT寄存器被设置为2,读取数据突发大小(RDBURSTSZ)寄存器被设置为零,并且WAIT_TMR寄存器被设置为一。
在图4的例子中,SPI断言CS引脚404(即,在时间t1),并在SOSI引脚406上发送(即,在时间t1和t2之间)单字节读命令(图3C中标记为“Tx0上′)。SPI然后延缓时钟周期的等待间隔(即,时间t2~t3之间)。在延缓期间,SCLK引脚408保持在高电压电平。当等待间隔结束时,从属外围设备在SOSI引脚406传送数据的一个字节的脉冲串(图4中标记为“Rx0′)到SPI。对于1个时钟周期(即,时间t4和t5)之间的等待间隔,SPI再次延缓(SCLK引脚408在高电压电平)。在时间t5,从外围设备传送数据的一个字节脉冲串(图4中标记为“Rx1”)。在时间T6,SPI确定在总和寄存器(对应于已被读取的两个字节)的值等于在所述CNT寄存器(对应于数据读取的预定的两个字节)的值,并通过从活动电平(即低压)到无效电平(即高压)转换CS引脚而结束SPI帧。从外围设备数据的单帧CS包含来自多个采集的数据读取。单帧的CS在时间t1开始,在时间t6结束。
图3A-3C和4的每个示出当SPI模式的操作例子是定时器模式的实施例。在图5的例子中,SPI的操作模式是中断模式(例如,基于检测引脚上的活动电平)。
转向图5,图5示出了根据本公开的一些实施例的四针数据通信接口中的每一个引脚上发送信号。图5中四针SPI的操作类似于相对于图3A,3B和3C所述的四针SPI;这里不再重复细节,仅出于简洁。引脚504、506、508和510分别对应于引脚404、406、408和410。在本实施例中,SPI在寄存器中存储如下的特定值,CPHA位被设置为零,CPOL位被置零,TXBYTES寄存器被设置为一(例如,在从从属数据读之前,配置SPI以传输2字节(即TXBYTES+1=1+1)),CNT寄存器被设置为三,读出的数据脉冲串的大小(RDBURSTSZ)寄存器被设置到零,以及引脚标识符标识MISO引脚508作为在这引脚中断当检测到有效电平。
在图5的例子中,SPI断言CS引脚504(即,在时间t1),并在MOSI引脚306向从机发送两个字节(例如,命令和地址)。第一个字节在时间t1和t2之间传送。第二个字节在时间t2和t3之间传送。SPI在时间t3延缓以等待MISO引脚508上的有效电平。在时间T3和T4之间的时间间隔,MISO引脚508是无效电平(即,空闲高电平)。在时间t4,从机开始在MISO引脚508发射有效信号到SPI(即,诸如无电压的活动低)。SPI通过检测MISO引脚508上的活动电平响应于检测到触发条件检测所述触发条件时,SPI读取从属数据。在时间T5和T6之间的间隔,SPI在MISO引脚508上从从机SPI读取一个字节的数据。SPI再次在时间t6延缓(图5中,标记为“Rx0′)以等待MISO引脚508上的活动电平。在时间T6和T7之间的时间间隔,MISO引脚508是无效电平。在时间t7,从机开始在MISO引脚508发射有效信号到SPI(即,诸如无电压的活动低)。在时间t8的t9之间的时间间隔,SPI在MISO引脚508从从机读取数据的一个字节(图5中,标为“Rx1)。等待MISO引脚上的活动电平和读取数据的该过程在时间t9和t12之间重复。在时间t12,SPI判定(已经读对应于三个字节)总和寄存器中的值等于在所述CNT寄存器(对应于要读取的预定的三字节数据)的值,并通过从活动电平(即,低电压)到无效电平(即,高压)转换CS引脚而结束SPI帧。从外围设备数据的单帧CS包含来自多个采集的数据读取。单帧CS在时间t1开始和在时间t12结束。
在图3A-3C,图4和5的实施例中,芯片选择引脚(CSN)处于活动状态仍然(在这种情况下,低状态是活动状态),而主机(例如,SPI)向从机(例如,选定的外围设备,选定的传感器,等等)发送单个读命令(在某些情况下,对应于读取命令的地址),和主机从从机接收传感器值的预定数(例如,基于CNT寄存器)。该值可以从传感器的寄存器收集,来自寄存器连续或不连续的位置。此外,通过反复从寄存器的至少一个位置检索更新值用于添加到传感器值,数值可以从寄存器读取。例如,当传感器检测更新的传感器值,所述值被更新依次放入在寄存器中的位置。该芯片可以选择,并多次从寄存器中的相同的位置检索更新值。
图6示出根据本公开内容的一些实施例,用于与数据通信接口通信的示例性逻辑(即,逻辑600)。程序602可以符合其它逻辑、例程和/或应用程序的开始或结束点。此外,在602,数据(例如,对象,值,变量等)可初始化,检索,或使用逻辑600。在604,微处理器向数据通信接口卸载传感器数据的处理。微处理器可以通过配置其他硬件组件来执行传感器数据的处理(例如,数据采集和/或预处理)而卸载处理。例如,微处理器可以配置DMA控制器和/或数据通信接口(DCI)的操作。该配置可包括设置寄存器值,用于控制由DCI的数据处理和/或数据收集操作,而微处理器稍后休眠。微处理器可以编程DCI中的本地定时器和/或间隔定时器。该编程可以包括设置(例如,在寄存器)等待间隔,定时器的时钟频率,或者控制本地计时器和/或间隔定时器的操作的任何其它值。当配置完成时,微处理器可指示DCI收集和处理由DCI从传感器检索的传感器数据。在606,微处理器在睡眠模式下,并同时数据通信接口处理传感器数据。微处理器进入睡眠模式,并保持在睡眠模式直到从DCI接收中断。在608,一旦由数据通信接口接收处理相关联的中断的数据,至少部分地由处理传感器数据的数据通信接口产生访问数据(例如,处理后的数据)。例如,微处理器从DCI检索处理后的数据(即,由DCI预处理的数据)。微处理器可以执行进一步处理或函数的执行或处理数据的算法。逻辑600在610结束。610可以与其他逻辑,例程和/或应用程序的开始或结束点一致。
逻辑600可以在系统100和/或800的组件或组件的组合来实现。例如,该微处理器110(图1中的系统100)可以执行逻辑600以经由数据采集接口(即,120,122,124)收集来自传感器的数据(即104,106A-b,108)。作为另一示例,微处理器802(在图8A和8B的系统800)可以执行逻辑600以经由串行外围接口808从传感器810收集数据。
图7示出了根据本公开内容的一些实施例,用于通过数据通信接口用于与微处理器进行通信执行的示例性逻辑(逻辑700)。程序702可以与其它逻辑、例程和/或应用程序的开始或结束点一致。此外,在702,数据(例如,对象,值,变量等)可初始化,检索,或访问,用于逻辑700。在704,在数据通信接口的(DCI)的至少一个引脚,启动与外围设备的通信会话。在706,在通信会话期间,向外围设备发送命令。在708,从所述外围设备接收预定数目的值。接收预定数目的值,并同时保持与在所述至少一个引脚的外围设备的通信会话活动。在710中,值被处理。逻辑700在712结束。712可以与其他逻辑、例程和/或应用程序的开始或结束点一致。
逻辑700可以实现在系统100和/或800的组件或组件组合中。例如,一个或多个数据收集接口(即,120,122,124)(在图1的系统100中)可以执行逻辑700以收集来自传感器(即104,106A-b,108)的数据,而微处理器处于睡眠模式。作为另一示例,串行外围接口(SPI)808(在图8A和8B的系统800)可以执行逻辑600以从传感器810收集数据而微处理器802处于睡眠模式。
图8A和8B示出一个系统(即,系统800),其中数据在片上组件和耦合到所述芯片的一个或更多个传感器之间传送。数据传输开始于图8A,并继续在图8B;图8A的标签′8B′和图8B的标签′8A′标注附图之间共同的参考点。系统800包括耦合到彼此的芯片801和传感器810。该芯片801包括微处理器802、片上存储器804、直接存储器存取(DMA)控制器806、和串行外围接口(SPI)808。SPI 808是微处理器802和传感器810之间的数据传输的数据通信接口。SPI 808包括相对于图2的数据通信接口200描述的组件,和执行(除其他事项外)图7中的逻辑700。微处理器802可操作以执行指令(例如,图6的逻辑600),当由SPI 808中断,接收至少部分由SPI 808产生的处理数据。当由DMA控制器从SPI检索的数据量超出阈值大小时,DMA控制器806从SPI 808中的Rx FIFO向存储器804的片上存储器传送数据。
在812,微处理器802在DMA806中设置值寄存器。
在814,微处理器802在SPI 808设置寄存器值。例如,该微处理器802可以编程逻辑块(和/或选择逻辑块形成多个驻留在SPI逻辑块),设置定时器,配置状态机,和/或在SPI808设定寄存器,在代表微处理器802的SPI 808采集和处理数据的整个持续时间(例如,预处理)进入睡眠模式之前。
在816,微处理器802发起由SPI 808的数据传输和/或处理。在发起之后,在818,微处理器802进入睡眠模式。代表微处理器802,微处理器802在SPI 808采集和处理数据(例如,预处理)的整个持续时间在休眠模式。虽然在睡眠模式,计时器-通过V 802执行操作利用-被暂停,并作为结果,微处理器保持“冻结”在当前状态,并执行任何操作。
响应于来自微处理器802接收的启动,在820,SPI 808发起引脚CS上的活动信号,其耦合SPI到传感器810。SPI 808在对应于传感器810的CS引脚即送该有效信号,以指示传感器810是(潜在的多个传感器)的选定传感器。
在822,SPI 808发送命令和/或地址到传感器810(例如,当SPI是三针SPI时,经过从出/从进(SOSI)引脚,或当SPI是四针SPI时,经过主出/从进(MOS)引脚)。
在824,该传感器810在传感器的寄存器存储值(例如,传感器值)。值被存储在寄存器的位置x(即,R[X])。在826,SPI 808从传感器寄存器读取数据(例如,包括在位置R[X]的值)。在828,SPI808在接收的先出缓冲器(Rx FIFO)存储数据。
在830,传感器810在寄存器中位置x+1中的寄存器存储另一个值(即,R[x+1])。在832,SPI 808从传感器寄存器读取数据(例如,包括在位置R[x+1]的另一值)。在834,SPI808在RX FIFO中存储数据。
在836,该传感器产生和存储值以及SPI从传感器获取数据的过程重复任意次数。在此例中,整个重复数重复填充寄存器和由SPI检索的数据。在传感器中的寄存器(R)包含其中存储数据的n个位置(例如,第一位置为R[1]和最后一个位置为R[n])。在由传感器重复存储数据期间,寄存器中的每一个位置被反复更新,以存储新的值(即,寄存器中每个各个位置(R[x])由新值更新)。在836之后立即,将寄存器的每个位置具有存储在其中的值,和寄存器已满(即,每个位置直至并包括位置R[n]的新近存储由传感器增加的值)。
在838,DMA控制器806从SPI 808的Rx FIFO中检索数据(例如,用于存储在存储器中,诸如存储器元件804)。DMA控制器可重复地从SPI 808检索数据,以防止数据从SPI的RxFIFO中溢出。
在840,传感器810在寄存器中的位置x寄存器存储另一个值(即R[x])。例如,该传感器将用新的传感器值覆盖在位置的初始传感器值。在842中,SPI 808从传感器寄存器读取数据(例如,包括在位置R[X]的另一值)。在寄存器R[X]的位置被重复地读取(例如,在826和再次在842),以检索更新值,用于添加到在SPI 808的Rx FIFO中的传感器值。每个更新值由传感器810(即,所选择的传感器)被依次放入寄存器R[X]的位置。在844,SPI808在RX FIFO中存储数据。
在846,SPI对从传感器810检索的数据(从传感器810检索)执行一个或多个数据处理逻辑块。数据可以存储在SPI的Rx FIFO 808或可由DMA控制器转移到不同的存储器(例如,存储器804)。所述一个或多个数据处理逻辑块(当由SPI执行时)检索操作针对来自传感器810的数据处理逻辑块包括指令,在执行时,过程中的数据(例如,认证,验证,或生成的数据输出之日起)。例如,数据处理逻辑块可以执行对数据的一个或多个的下列功能:平均函数,错误检测函数,阈值函数,传感器状态检查函数,滤波函数,掩蔽函数,快速傅立叶变换(FFT),离散傅立叶变换(DFT),数据预调节函数,用于通过一种算法来准备用于要由微处理器执行进一步处理的数据,和/或认证函数,以验证该传感器数据满足的先决条件。每个数据块处理逻辑产生由处理过的数据,例如,认证,验证,修改数据,或者在由微处理器到位的设置指定的方式转变的数据(即,在814)。在本实施例中,基于由一个或多个数据处理的逻辑块所产生的输出,SPI确定需要附加数据(例如,当输出识别出该数据不符合由微处理器802指明的预定条件时)。在848,SPI从传感器检索附加数据(即,在相对于822至844的任何一部分描述的类似方式)。
在850,SPI对从传感器810检索的附加数据(和/或数据和附加数据的组合)执行一个或多个数据处理逻辑块。同样,一个或多个数据处理逻辑检索产生输出块(即指示有关调节及/或处理数据)。当SPI确定附加数据(和/或数据和附加数据的组合)满足由微处理器中的SPI寄存器指定的条件时,SPI通信终止与传感器810的会话。在852,该SPI通过终止SPI的CS引脚上的有源信号的传输(例如,在CS引脚上开始发送没有信号或不活动信号)而终止与传感器810的通信会话。
SPI保持CS引脚为来自传感器的数据传输和数据的后续处理的持续时间上的活动信号,如由853总体表示。
在854,SPI发送DMA请求到DMA控制器806。在一些实施例中,DMA请求信号是在DMA特定通信介质(例如,电线)发送的激活信号。DMA请求的接收可以触发DMA控制器以从存储器元件访问其中经处理的数据(或原始数据)被存储的地址的指针。转向图8B,图8B重复854,仅为参考。
在856,DMA从SPI 808检索处理数据。在858,DMA将处理后的数据传送到片上存储器804。在860,DMA发送中断请求(IRQ)到微处理器802。该IRQ从睡眠模式中断微处理器802。在862,代表微处理器802,微处理器802退出睡眠模式(响应于IRQ)。微处理器802在SPI采集和处理数据808的持续时间(即,从816至860)保持在睡眠模式,如由863所指示一般。
在一些实施例中,DMA控制器806检索数据、传输数据,并响应于所述DMA请求生成IRQ(即,在854,由SPI发送到DMA)。因而,至少部分地基于由SPI产生和发送的请求,中断微处理器802。在其他实施例中,SPI直接中断微处理器808(例如,在向存储器传输处理数据之后,通过发送IRQ到微处理器)。
在864,微处理器802加载数据处理到微处理器802的静态随机存取存储器(SRAM)。在866,微处理器802对处理数据执行算法(至少部分使用在SRAM加载的数据),并产生输出。在868,微处理器802输出发送到另一元件。
在实施例和/或实施例的以上的讨论中,测量和/或单位特定号码的特定单元(例如,比特和/或字节的特定数目)由于是仅作为例子。本公开的教导不限于这些实施例和/或实施例(或千字节,兆字节,千兆等等例如,千位,兆,千兆位等),在其他实施方式和/或例子,计量单位和数字可被其他单位/数字代替。
在实施例的以上的讨论中,电容器,时钟,DFFS,除法,电感器,电阻器,放大器,开关,数字核心,晶体管和/或其它组件可容易加入、代替、取代或否则修改,以适应特定的电路需要。此外,必须继续应该是相辅相成即使用电子设备,硬件,软件等。同样实施本公开的教导可行的选择。
在一个示例实施例中,图中的任何数量的电路可以在相关联的电子设备的板上实现。板可以是能够保持电子设备的内部电子系统的各种部件,并且还提供用于其他外围设备的连接器的通用电路板。更具体地,板可以提供电连接,系统的其他部件可以通过该电连接电通信。基于特定配置需求,处理需求,计算机设计等,任何合适的处理器(包括数字信号处理器,微处理器,支持芯片组等),计算机可读非暂时性存储器元件等可以适当地耦合到板。诸如外部存储器,附加传感器,用于音频/视频显示的控制器以及外围设备的其它组件可以作为插入卡,经由电缆附接到板或者集成到板本身中。在各种实施例中,本文描述的功能可以仿真形式被实现为在布置在支持这些功能的结构中的一个或多个可配置(例如,可编程)元件内运行的软件或固件。提供仿真的软件或固件可以在包括允许处理器执行那些功能的指令的非暂时性计算机可读存储介质上提供。
在另一示例实施例中,附图的电路可以被实现为独立模块(例如,具有被配置为执行特定应用或功能的相关组件和电路的设备)或实现为应用中的插件模块电子设备的特定硬件。注意,本公开的特定实施例可以部分地或整体地容易地包括在片上系统(SOC)封装中。SOC表示将计算机或其他电子系统的组件集成到单个芯片中的IC。它可以包含数字,模拟,混合信号和通常的射频功能:所有这些可以提供在单个芯片衬底上。其他实施例可以包括多芯片模块(MCM),其具有位于单个电子封装内的多个分离的IC,并且被配置为通过电子封装彼此紧密地相互作用。在各种其它实施例中,数字滤波器可以在专用集成电路(ASIC),现场可编程门阵列(FPGA)和其它半导体芯片中的一个或多个硅核中实现。
这是必须还要注意,所有的规格,尺寸以及本文所概述的关系(例如,微处理器,传感器,寄存器,逻辑块,逻辑运算,数量等)只被提供的示例的目的,只有教学。这样的信息可以改变,而不脱离本公开的精神或所附权利要求的范围。这些规范仅适用于非限制性的例子,因此,它们应该被解释为这样的。在前面的描述,已经参照处理器和/或部件的安排描述示例实施例。各种修改和改变可以在不脱离所附权利要求的范围的前提作出。说明书和附图相应地看作是说明性而不是在限制性的意义。
需要注意的是,参照讨论的附图的活动都适用于任何集成电路即涉及传感器信号和/或信号处理,特别是那些能够执行专门的软件程序,或算法,其中一些可与处理数字化的关联实时数据。某些实施方案可以涉及到多DSP信号处理,浮点处理,信号/控制处理,固定功能处理,单片机应用等。
在某些情况下,本文讨论的特征可以适用于医疗系统,科学仪器,无线和有线通信,雷达,工业过程控制,音频和视频设备,电流检测,仪器仪表(可高度精确),和其他基于数字的处理系统。
此外,某些实施方案可以讨论上述技术的医疗成像,病人监护,医疗仪器和家庭医疗保健供应。这包括肺监视器,心脏速率监视器,起搏器等。其他汽车应用可涉及安全系统技术(例如,用于提供稳定性控制系统,驾驶辅助系统,制动系统,信息娱乐和任何类型的内部应用用户输入)。
在另一些示例方案,本发明适用的教导可以认为市场在工业过程控制系统包括帮助,推动生产力,能源效率和可靠性。在消费类应用,本发明的教导可用于用户或辅助自动对焦以及防抖(例如,用于数码相机,便携式摄像机等)。其他消费应用可以包括家庭影院系统,DVD录像机和高清电视接口。另外的其它高级消费应用涉及输入接口(例如,用于任何类型的便携式媒体设备)。因此,这些技术容易成为智能手机、平板电脑、安防系统、个人电脑、游戏技术、虚拟现实、模拟训练等的一部分
注意,利用本文提供的许多示例,可以根据两个,三个,四个或更多个电子部件来描述交互。然而,这仅仅是为了清楚和示例的目的。应当理解,系统可以以任何合适的方式合并。沿着类似的设计替代方案,附图的任何所示的部件,模块和元件可以以各种可能的配置组合,所有这些都明显在本说明书的广泛范围内。在某些情况下,可以通过仅参考有限数量的电气元件来更容易地描述给定的一组流的一个或多个功能。应当理解,图中的电路及其教导是容易扩展的,并且可以容纳大量部件,以及更复杂/复杂的布置和配置。因此,所提供的示例不应限制可能应用于无数其它架构的电路的范围或抑制电路的广泛教导。
注意,在本说明书中,引用在“一个实施例”,“示例实施例”,“实施例”“另一实施例”,“一些实施例”,“各种实施例”,“其他实施方案”,“替代实施例”等中包括的各种特征(例如,元件,结构,模块,组件,步骤,操作,特性等)意指任何此类特征包括在本公开的一个或多个实施方案中,可或不可必然在同一实施例中组合。
许多其它改变,替换,变化,改变,和修改可以确定本领域技术人员和其意图是本公开内容包括所有这样的改变,替换,变化,改变,和修改落入在范围的所附权利要求。
注意,上面描述的该装置的所有可选功能还可相对于本文描述的方法和处理实施,和实施例的细节可用于一个或多个实施例中的任何地方。
以下实施例涉及本发明的一些实施例:
示例1是用于一个微处理器和一个或多个传感器之间传送数据的数据通信接口。所述数据通信接口包括:至少一个引脚,可操作地耦合到微处理器和一个或多个传感器;传感器寄存器,存储标识所述一个或多个传感器的哪一个是在所述至少一个引脚上通信的选择传感器的值;状态机,配置为基于所述传感器寄存器来生成读取命令,向所选的传感器传输读取命令;流控制逻辑块,经配置以一旦检测到触发条件,则向状态机传输指令,其中状态机被配置为至少部分基于指令,从所选择的传感器接收预定数目的传感器值,并同时保持与至少一个引脚上所选传感器的单个通信会话活动。
在示例2,示例1的主题可任选地包括:从所选择的传感器接收预定数目的传感器值,并同时保持与至少一个引脚上所选传感器的单个通信会话活动包括:基于读出命令从寄存器反复读取传感器值中的一些,直到到达预定数目的传感器值,其中,所述寄存器中的至少一个位置被重复读出以检索添加到传感器值的更新值,更新值由所选择的传感器被连续地置于至少一个位置。
在示例3中,示例1或2的主题可任选地包括状态机,可操作以向由微处理器访问的片上存储器传输处理过的数据,至少部分基于所述传感器值生成处理数据
在示例4中,示例1-3的任何的主题进一步可任选的包括:耦合到状态机的一个或多个数据处理逻辑块,每个所述一个或多个数据处理逻辑块可操作来生成通过对传感器值执行函数的处理数据。
在示例5中,示例1-4的任何的主题可任选地包括:所述一个或多个数据处理逻辑块关联于用于存储标准值的寄存器,以及函数包括比较器,以比较传感器值的至少部分与标准值。
在示例6中,示例1-5的任意的主题可任选地包括从包括如下的组合中选择的函数:平均函数、错误检测功能、阈值函数、传感器状态检查函数、过滤函数、掩蔽功能,快速傅立叶变换(FFT),离散傅立叶变换(DFT),数据预调节函数,以准备数据用于由微处理器执行的算法的进一步处理,以及认证函数以验证该传感器数据满足先决条件。
在示例7中,示例1-6的任意的主题可任选进一步包括:可操作地连接到片上存储器和一个或多个数据处理的逻辑块的直接存储器存取(DMA)控制器,其中,所述DMA控制器可操作以从任何一个或多个数据处理逻辑块检索处理的数据。
在示例8中,示例1-7的任何的主题可任选地进一步包括:中断请求(IRQ)产生器,可操作地耦合到微处理器和一个或多个数据处理逻辑块;其中,所述一个或多个数据处理逻辑块的每个可操作以向IRQ发生器传输处理后的数据,和IRQ发生器可操作以产生中断请求,基于从一个或多个数据处理逻辑块的任何接收的处理,向微处理器传输中断请求。
在示例9中,示例1-8的任意的主题可任选地进一步包括:状态机寄存器,用于存储对应于在所述至少一个引脚的数据传输的一个或多个操作模式的模式值,其包括定时器模式和用于从所述选择的传感器接收所述传感器值的中断模式,其中所述触发条件对应于工作模式中选定的一个。
在示例10中,示例1-9的任何的主题可任选地包括:数据接口是串行通信接口。
在示例11中,示例1-10的任何的主题可任选地包括串行接口为从包括如下的组合中选出的:串行外围接口(SPI)、内部集成电路(IIC)、1-线总线,以及UNI/O总线。
在示例12中,示例1-11的任何的主题可任选地进一步包括:本地定时器,配置为产生时钟信号;和其中,串行接口是串行外设接口(SPI),以及至少一个引脚包括三个或多个引脚,其中三个或多个引脚包括:至少一个芯片选择引脚,用于基于低信号或高信号而识别所选的传感器,至少一个数据传输引脚,可操作以传输数据至选定的传感器或从选定的传感器接收数据,以及时钟引脚,可操作以传输时钟信号到所选择的传感器;和其中,保持与至少一个引脚上所选传感器的单个通信会话活动包括:保持至少一个芯片选择引脚在激活电平。
在示例13中,示例1-12的任何的主题可任选进一步包括:间隔计时器,配置为计数本地定时器的时钟信号的等待时间间隔,其中,所述流控制逻辑块检测所述触发条件包括:基于间隔计时器,流控制逻辑块检测所述本地计时器的等待时间的期满
在示例14中,示例1-13的任何的主题可任选地包括:流控制逻辑块检测触发条件包括流控制逻辑块检测所述至少一个引脚上的有效功率水平。
在示例15中,示例1-14的任何的主题可任选地进一步包括:通用输入/输出(GPIO)耦合到数据通信接口引脚,其中,所述流控制逻辑块检测所述触发条件包括数据通信接口检测GPIO引脚的活动水平。
在示例16中,示例1-15的任何的每一个的主题可以任选地包括一个或多个数据处理逻辑块关联于一个或多个传感器中的至少一个。
示例17是一种系统,包括:微处理器;一个或多个传感器;和一个数据通信接口,包括:至少一个引脚,可操作地耦合到微处理器和一个或多个传感器;传感器寄存器,存储标识所述一个或多个传感器的哪一个值是在所述至少一个引脚通信的选择传感器;和状态机,被配置为基于所述传感器寄存器产生读取命令,传输读命令到所选的传感器;和流控制逻辑块经配置以一旦检测到触发条件,向状态机传输指令,其中所述状态机配置为至少基于不同的指令而从选择的传感器接收预定数目的传感器值,同时保持与至少一个引脚上所选择的传感器的单个通信会话活动。
在示例18中,示例1的主题可任选地包括:从所选择的传感器接收预定数目的传感器值,并同时保持与至少一个引脚上所选传感器的单个通信会话活动包括:基于读出命令从寄存器反复读取传感器值中的一些,直到到达预定数目的传感器值,其中,所述寄存器中的至少一个位置被重复读出以检索添加到传感器值的更新值,更新值由所选择的传感器被连续地置于至少一个位置。
在示例19中,示例17或18的主题可任选地进一步包括:由微处理器访问的片上存储器,其中,所述状态机可操作以向由片上存储器传输处理过的数据,至少部分基于所述传感器值生成处理数据
在示例20中,示例17-19的任何的主题进一步可任选的包括:其中所述数据通信接口进一步包括:耦合到状态机的一个或多个数据处理逻辑块,每个所述一个或多个数据处理逻辑块可操作来生成通过对传感器值执行函数的处理数据。
在示例21中,示例17-20的任何的主题的至少可任选地包括:一个或多个数据处理的逻辑块中的至少一个关联于存储标准值的寄存器,以及函数包括比较器以比较至少传感器值和标准值。
在示例22中,示例17-21的任何的主题可任选地包括从包括如下的组合中选择的函数:平均函数,错误检测功能,阈值函数,传感器状态检查函数、或过滤函数、掩蔽函数、快速傅立叶变换(FFT),离散傅立叶变换(DFT),和/或数据预调节函数,以准备数据用于通过由通过微处理器执行的算法的进一步处理。
在示例23中,示例17-22的任何的主题可任选地进一步包括:直接存储器存取(DMA)控制器,可操作地连接到片上存储器和一个或多个数据处理逻辑块,其中,所述DMA控制器可操作以从任何一个或多个数据处理逻辑块检索处理的数据。
在示例24中,示例17-23的任何的主题可任选地包括所述数据通信接口,还包括:中断请求(IRQ)产生器,可操作地耦合到微处理器和一个或多个数据处理逻辑块;其中,所述一个或多个数据处理逻辑块的每个可操作以向IRQ发生器传输处理后的数据,和IRQ发生器,可操作以产生中断请求,基于从一个或多个数据处理逻辑块的任何接收的处理,向微处理器传输中断请求。
在示例25中,示例17-24的任何的主题可任选地包括所述数据通信接口,还包括:状态机寄存器,可操作以用于存储对应于在至少一个引脚的数据传输的一个或多个操作模式的模式值,所述工作模式包括定时器模式和的中断模式,用于从所选择的传感器接收传感器值,其中,所述触发条件对应于工作模式中选定的一个。
在示例26中,示例17-25的任何的主题可任选地包括:数据接口是串行通信接口。
在示例27中,示例17-26的任何的主题可任选地包括串行接口为包括如下的组合中选出的:串行外围接口(SPI),内部集成电路(IIC),1-Wire总线,以及UNI/O总线。
在示例28中的任示例17-27的主题可任选地包括所述数据通信接口,还包括:本地定时器,配置为产生时钟信号;和其中,串行接口是串行外设接口(SPI),以及至少一个引脚包括三个或多个引脚,其中三个或多个引脚包括:至少一个芯片选择引脚,用于基于低信号或高信号而识别所选的传感器,至少一个数据传输引脚,可操作以传输数据至选定的传感器或从选定的传感器接收数据,以及时钟引脚,可操作以传输时钟信号到所选择的传感器;和其中,保持与至少一个引脚上所选传感器的单个通信会话活动包括:保持至少一个芯片选择引脚在激活电平。
在示例29中,示例17-28的任何的主题可任选进一步包括:间隔计时器,配置为计数本地定时器的时钟信号的等待时间间隔,其中,所述流控制逻辑块检测所述触发条件包括:基于间隔计时器,流控制逻辑块检测所述本地计时器的等待时间的期满。
在示例30中,示例17-29的任何的主题可任选地包括:流控制逻辑块检测触发条件包括流控制逻辑块检测所述至少一个引脚上的有效功率水平。
在示例31中,示例17-30的任何的主题可任选地进一步包括:通用输入/输出(GPIO)耦合到数据通信接口引脚,其中,所述流控制逻辑块检测所述触发条件数据通信接口包括检测在GPIO引脚的活动水平。
在示例32中,示例17-31的任何的主题任选可以:所述一个或多个数据处理逻辑块的每个关联于一个或多个传感器中的至少一个。
示例33是一种在微处理器和一个或多个传感器之间传送数据的方法。该方法包括:从传感器寄存器检索识别所述一个或多个传感器的哪一个是用于在至少一个引脚上通信的选定传感器的值,所述至少一个引脚被可操作地耦合到微处理器和一个或多个传感器;基于所述传感器寄存器和触发条件的检测,产生读取命令;一旦检测到触发条件,向所选的传感器发送读取命令;和从所选择的传感器接收预定数目的传感器值,其中,接收预定数量的传感器值,并保持与至少一个引脚上所选传感器的的单个通信会话活动。
在示例34,示例33的主题可任选地包括:从所选择的传感器接收预定数目的传感器值,并同时保持与至少一个引脚上所选传感器的单个通信会话活动包括:基于读出命令从寄存器反复读取传感器值中的一些,直到到达预定数目的传感器值,其中,所述寄存器中的至少一个位置被重复读出以检索添加到传感器值的更新值,更新值由所选择的传感器被连续地置于至少一个位置。
在示例35中,示例33或34的主题任选地进一步包括:将处理数据传送到片上存储器,所述处理数据至少部分基于传感器值产生,其中,所述片上存储器由微处理器可访问。
在示例36中,示例33-35的任何的主题任选地进一步包括:可以通过在传感器值执行函数,产生处理数据。
在示例37中,示例33-36的任何的主题任选地进一步包括:在寄存器存储标准值,并且其中所述函数包括一个比较器,以比较至少部分所述传感器值与标准值。
在示例38中,示例33-37的任何的主题可任选地包括从包括如下的组合选择的函数:平均函数、错误检测函数、阈值函数、传感器状态检查函数、过滤函数、掩蔽函数、快速傅立叶变换(FFT)、离散傅立叶变换(DFT)和/或数据预调节功能,通过一种算法来准备用于进一步处理的数据要由微处理器执行。
在示例39中,示例33-38的任何的主题可任选进一步包括:将处理数据传送到直接存储器访问(DMA)控制器,其中所述DMA控制器可操作地耦合到所述片上存储器和一个或多个数据处理逻辑块。
在示例40中,示例33-39的任何的主题可任选地进一步包括:向中断请求(IRQ)发生器传输处理后的数据,其中,所述IRQ发生器可操作地耦合到微处理器和一个或多个数据处理逻辑块,通过IRQ发生器产生中断请求,基于从一个或多个数据处理逻辑块的任何接收的处理,向微处理器发送所述中断请求。
在示例41中,示例33-40的任何的主题可任选地进一步包括:在流控制寄存器中存储对应于在所述至少一个引脚的数据传输的一个或多个操作模式的模式值,其包括定时模式和中断模式,用于从所述选择的传感器接收所述传感器值,其中所述触发条件对应于工作模式中选定的一个。
在示例42中,示例33-41的任何的主题可任选地包括通过串行接口实施的方法。
在示例43中,示例33-42的任何的主题可任选地包括从包括如下的组合中选择的串行接口:串行外围接口(SPI),内部集成电路(IIC),1-线总线,以及UNI/O总线。
在示例44中,示例33-43的任何的主题可任选地进一步包括:由计时器产生时钟信号,并且其中,所述串行接口是串行外设接口(SPI),以及至少一个引脚包括三个或多个引脚,所述三个或多个引脚包括:至少一个芯片选择引脚,用于基于低信号或高信号而识别所选的传感器,至少一个数据传输引脚,可操作以传输数据至选定的传感器或从选定的传感器接收数据,以及时钟引脚,可操作以传输时钟信号到所选择的传感器;其中,保持与至少一个引脚上所选传感器的单个通信会话活动包括:保持至少一个芯片选择引脚在激活电平。
在示例45中,示例33-44的任何的主题可任选地包括检测所述触发包括检测计时器的等待时间的期满。
在示例46中,示例33-45的任何的主题可任选地包括,检测所述触发包括:检测所述至少一个引脚上的有效功率电平。
在示例47中,示例33-46的任何的主题可任选地包括,检测所述触发包括检测在通用输入/输出(GPIO)的活动水平。
在示例48中,示例33-47的任何的主题可任选地包括:通过对传感器值执行函数而产生处理数据,对于所述一个或多个传感器的每一个执行。
示例49是一种在微处理器和一个或多个传感器之间传送数据的系统。系统是可包括任何合适的电路、除法器、电容器、电阻器、电感器、模数转换器、DFF、逻辑门、软件、硬件、链接等,其可以是任何类型的计算机,它可以进一步包括耦合到多个电子部件中的一部分的电路板。该系统包括:装置,从传感器寄存器检索识别所述一个或多个传感器的哪一个是用于在至少一个引脚上通信的选定传感器的值,所述至少一个引脚被可操作地耦合到微处理器和一个或多个传感器;装置,用于基于所述传感器寄存器和触发条件的检测,产生读取命令;装置,用于一旦检测到触发条件,向所选的传感器发送读取命令;和从所选择的传感器接收预定数目的传感器值,其中,接收预定数量的传感器值,并保持与至少一个引脚上所选传感器的的单个通信会话活动。
在示例50中,示例49的主题可任选地包括:装置,用于从所选择的传感器接收预定数量的传感器值,同时保持与在至少一个引脚上所选传感器的单个通信会话活动;装置,根据读出的命令,从寄存器反复读取传感器值中的一些,直到到达预定数目的传感器值,其中在所述寄存器的至少一个位置被重复地读出,以用于添加到传感器值,更新值被所选择的传感器连续地置于至少一个位置。
在示例51中,示例49或50的主题可任选地进一步包括:装置,用于将处理数据传送到片上存储器,所述处理数据基于至少部分地根据所述传感器值产生,其中,片上存储器由微处理器可访问。
在示例52中,示例49-51的任何的主题任选地进一步包括:装置,用于通过对传感器值执行函数而产生处理数据。
在示例53中,示例49-52的任何的主题可任选地进一步包括:装置,用于在寄存器中存储标准值,并且其中所述函数包括比较器以比较至少所述传感器值的一部分和标准值。
在示例54中,示例49-53的主题可任选地包括从包括如下的组合中选择的函数:平均函数、错误检测功能、阈值函数、传感器状态检查函数、过滤函数、掩蔽功能,快速傅立叶变换(FFT),离散傅立叶变换(DFT),数据预调节函数,以准备数据用于由微处理器执行的算法的进一步处理,以及认证函数以验证该传感器数据满足先决条件。
在示例55中,示例49-54的任何的主题可任选地进一步包括:装置,用于将数据传送到直接存储器访问(DMA)控制器,其中所述DMA控制器可操作地耦合到芯片上存储器和一个或多个数据处理逻辑块。
在示例56中,示例49-55的任何的主题可任选地进一步包括:装置,向中断请求(IRQ)发生器传输处理后的数据,其中,所述IRQ发生器可操作地耦合到微处理器和一个或多个数据处理逻辑块,通过IRQ发生器产生中断请求,基于从一个或多个数据处理逻辑块的任何接收的处理,向微处理器发送所述中断请求。
在这些实例(见上文)中,′用于′可以包括使用任何合适的(不限于)这里讨论的任何合适的组件,以及任何合适的软件、电路、集线器、计算机代码、逻辑、算法、硬件、控制器、接口、链路、总线、通信通道等。在第二实例中,该系统包括存储器,其还包括机器可读指令在被执行时致使所述系统执行上面讨论的任何活动。
为了帮助美国专利商标局(USPTO)以及本申请发出的任何专利的任何读者解释权利要求,申请人谨指出申请:(a)不打算任何附加的权利要求援引35USC部分6的第112条款,因为它存在于申请的公布日期,除非词语“装置,用于”或者“步骤,用于在特定的权利要求;和(b)不打算由本说明书中的任何陈述来限制本公开内容中的任何方式,否则未在所附的权利要求所反映。
在示例57中,示例49-56的主题可任选进一步包括:在流控制寄存器中存储对应于在所述至少一个引脚的数据传输的一个或多个操作模式的模式值,其包括定时模式和中断模式,用于从所述选择的传感器接收所述传感器值,其中所述触发条件对应于工作模式中选定的一个。
在示例58中,示例49-57的任何的主题可任选地包括通过串行接口正在实施的方法。
在示例59中,示例49-58的任何的主题可任选地包括串行接口从包括如下的组合选出:串行外围接口(SPI)、内部集成电路(IIC)、1-线总线以及UNI/O总线。
在示例60中,示例49-59的任何的主题可任选进一步包括:由一个计时器产生时钟信号,并且其中,所述串行接口是串行外设接口(SPI),以及至少一个引脚包括三个或多个引脚,所述三个或多个引脚包括:至至少一个芯片选择引脚,用于基于低信号或高信号而识别所选的传感器,至少一个数据传输引脚,可操作以传输数据至选定的传感器或从选定的传感器接收数据,以及时钟引脚,可操作以传输时钟信号到所选择的传感器;和其中,保持与至少一个引脚上所选传感器的单个通信会话活动包括:保持至少一个芯片选择引脚在激活电平。
在示例61中,示例49-60的主题可任选地包括检测所述触发包括检测计时器的等待时间的期满。
在示例62中,示例49-61的任何的主题可任选地包括检测所述触发条件包括:检测所述至少一个引脚上的有效功率电平。
在示例63中,示例49-62的任何的主题可任选地包括检测所述触发提交包括检测在通用输入/输出(GPIO)的活动电平。
在示例64中,示例49-63的任何的主题可任选地包括:通过对对于一个或多个传感器的每一个执行的传感器值执行函数而执行处理数据。