CN110870229B - 用于使从设备同步的技术 - Google Patents
用于使从设备同步的技术 Download PDFInfo
- Publication number
- CN110870229B CN110870229B CN201880046406.XA CN201880046406A CN110870229B CN 110870229 B CN110870229 B CN 110870229B CN 201880046406 A CN201880046406 A CN 201880046406A CN 110870229 B CN110870229 B CN 110870229B
- Authority
- CN
- China
- Prior art keywords
- time interval
- sensor
- watermark
- current time
- offset
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0685—Clock or time synchronisation in a node; Intranode synchronisation
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01D—MEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
- G01D21/00—Measuring or testing not otherwise provided for
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/14—Time supervision arrangements, e.g. real time clock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q9/00—Arrangements in telecontrol or telemetry systems for selectively calling a substation from a main station, in which substation desired apparatus is selected for applying a control signal thereto or for obtaining measured values therefrom
- H04Q9/04—Arrangements for synchronous operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W56/00—Synchronisation arrangements
- H04W56/001—Synchronization between nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W56/00—Synchronisation arrangements
- H04W56/004—Synchronisation arrangements compensating for timing error of reception due to propagation delay
- H04W56/0045—Synchronisation arrangements compensating for timing error of reception due to propagation delay compensating for timing error by altering transmission time
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W56/00—Synchronisation arrangements
- H04W56/0055—Synchronisation arrangements determining timing error of reception due to propagation delay
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q2209/00—Arrangements in telecontrol or telemetry systems
- H04Q2209/80—Arrangements in the sub-station, i.e. sensing device
- H04Q2209/84—Measuring functions
- H04Q2209/845—Measuring functions where the measuring is synchronized between sensing devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/18—Self-organising networks, e.g. ad-hoc networks or sensor networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
公开了用于计算传感器设备处的传感器定时校正的方法和装置。该方法和装置将采样时段确定为在从设备中获取所配置数目的样本时所计数的内部时钟的循环数,使用与观察到通信链路上发生硬件事件的时间的偏移来确定样本之间的时间区间,该偏移是在来自主设备的命令中接收到的,以及通过迭代数字近似来调节样本之间的时间区间以校正从设备与主设备的定时之间的差,同时并发地计算与由主设备配置用于一个或多个从设备的样本开始时间相对应的水印时间。
Description
相关申请的交叉引用
本申请要求于2017年7月14日在美国专利商标局提交的临时专利申请S/N.62/532,553以及于2018年7月2日在美国专利商标局提交的非临时专利申请S/N.16/025,863的优先权和权益,这些申请的全部内容通过援引如同全面阐述那样且出于所有适用目的被纳入于此。
技术领域
本文所公开的主题涉及电子设备,并且尤其涉及用于使控制器和传感器同步的方法、装置和系统。
背景技术
当代的移动设备包含许多传感器。一般而言,数据处理单元、控制器、主机设备、或主设备(以下简称为控制器或主机控制器)被提供以接收和处理由传感器或从单元(以下称为“传感器”)收集到的数据。为了节省功率,当没有数据正从传感器传递到控制器时,该控制器会定期被置于睡眠状态中。
通常利用两种将数据从传感器传递到控制器的方法。在被称为异步方法的第一方法中,具有可用数据要传递的传感器通过发出信号(例如,通过用于某些已知系统的专用数据就绪中断(DRI)引脚的DRI信号)来通知控制器(这唤醒控制器),并且随后该传感器在控制器就绪时传递数据。在被称为同步方法的第二方法中,控制器以预定时间区间自发地从睡眠状态苏醒、轮询各传感器、并且从传感器接收该传感器上存在的任何数据。同步方法在包括多个传感器的设备中更加能量高效,因为来自一个以上传感器的数据传递可以合并到单个轮询和传递会话中。
在多个传感器或其他设备提供周期性采样数据的系统中,进一步有利的是能够指令各传感器在基本同步的时间处收集数据,以及控制器在相同唤醒时间窗口或系统唤醒时段内从若干传感器读取数据。理想地,假定传感器仅递送最当前的结果,则以与该传感器采样频率一致的频率来对传感器进行轮询就足以获得该传感器所收集到的所有数据。但是,由于控制器和传感器通常不共享定时信号,因此可能导致定时信号的失准。定时信号的失准可导致一些传感器数据样本丢失和/或导致一些传感器数据样本被读取两次,即使在各传感器以其定义的采样频率来被轮询时亦是如此。失准可能由于一些传感器具有不良的时钟或定时器准确度(例如,在温度范围内以及设备彼此间的±15%偏差)而被加剧。此外,许多传感器具有可被用于校准时钟和定时器的受限处理能力。
发明内容
根据本公开的一方面,公开了一种用于计算用传感器从设备实现的传感器定时校正的方法。该方法包括:将同步时段确定为在从设备中获取所配置数目的样本时所计数的内部时钟的循环数,接收定义与观察到通信链路上发生硬件同步事件的时间的偏移的信息,该偏移是在来自主设备的命令中接收到的,通过迭代数字近似基于该硬件同步事件和该偏移来调节样本之间的时间区间,同时并发地计算与由主设备配置用于一个或多个从设备的样本开始时间相对应的水印时间。
在一个方面,调节样本之间的时间区间包括分批次减去偏移的倍数,每个批次被右移基于以偏移的二进制表示计的比特值的次数。
在一个方面,样本开始时间是基于硬件同步事件和偏移来确定的。硬件同步事件可以是同步滴答(Sync Tick)。偏移可以包括延迟时间。定义偏移的信息可以包括分辨率比,该分辨率比被用于计算用来调节样本之间的时间区间的分辨率步长。
在某些方面,调节时间区间包括:在同步电路处接收当前时间区间和旧时间区间,以及重复以下操作直至当前时间区间与旧时间区间之间的差异小于期望的最大差异:右移当前时间区间的二进制表示以获得差值;在当前时间区间大于旧时间区间时,从当前时间区间中减去该差值以获得新时间区间;在当前时间区间小于旧时间区间时,向当前时间区间添加该差值以获得新时间区间;将当前时间区间存储为旧时间区间;以及将新时间区间存储为当前时间区间。计算水印时间可以包括:在同步电路处接收水印时间,以及重复以下操作直至当前时间区间与旧时间区间之间的差异小于期望的最大差异:右移该水印时间的二进制表示以获得水印差;在当前时间区间大于旧时间区间时,从该水印时间中减去该水印差;以及在当前时间区间小于旧时间区间时,将该水印差添加到该水印时间。
根据本公开的一方面,一种装置包括耦合到串行总线的通信收发机、以及组合逻辑。该组合逻辑可被配置成:将同步时段确定为在从设备中获取所配置数目的样本时所计数的内部时钟的循环数,接收定义与观察到通信链路上发生硬件同步事件的时间的偏移的信息,该偏移是在来自主设备的命令中接收到的,以及在从设备处通过迭代数字近似基于该硬件同步事件和该偏移来调节同步时段,同时并发地计算与由主设备配置用于一个或多个从设备的样本开始时间相对应的水印时间。
在另一方面,组合逻辑包括移位寄存器和减法逻辑。移位寄存器和减法逻辑可以被配置成通过分批次减去偏移的倍数来调节同步时段,每个批次被右移基于以偏移的二进制表示计的比特值的次数。
在另一方面,样本开始时间可以是基于硬件同步事件和偏移来确定的。硬件同步事件可以包括同步滴答。偏移可以包括延迟时间。定义偏移的信息可以包括分辨率比,该分辨率比被用于计算用来调节样本之间的时间区间的分辨率步长。
在另一方面,组合逻辑包括一个或多个移位寄存器、加法器和减法器,其被配置成通过以下操作来调节同步时段:在同步电路处接收当前时间区间和旧时间区间,以及重复以下操作直至当前时间区间与旧时间区间之间的差异小于期望的最大差异:右移当前时间区间的二进制表示以获得差值;在当前时间区间大于旧时间区间时,从当前时间区间中减去该差值以获得新时间区间;在当前时间区间小于旧时间区间时,向当前时间区间添加该差值以获得新时间区间;将当前时间区间存储为旧时间区间;以及将新时间区间存储为当前时间区间。组合逻辑可以被配置成通过以下操作来计算水印时间:在同步电路处接收水印时间,以及重复以下操作直至当前时间区间与旧时间区间之间的差异小于期望的最大差异:右移该水印时间的二进制表示以获得水印差;在当前时间区间大于旧时间区间时,从该水印时间中减去该水印差;以及在当前时间区间小于旧时间区间时,将该水印差添加到该水印时间。
根据本公开的一方面,一种装备包括:用于将同步时段确定为在从设备中获取所配置数目的样本时所计数的内部时钟的循环数的装置,用于接收定义与观察到通信链路上发生硬件同步事件的时间的偏移的信息的装置,该偏移是在来自主设备的命令中接收到的,以及用于通过迭代数字近似基于该硬件同步事件和该偏移来调节样本之间的时间区间,同时并发地计算与由主设备配置用于一个或多个从设备的样本开始时间相对应的水印时间的装置。
在另一方面,用于调节时间区间的装置被配置成分批次减去偏移的倍数,每个批次被右移基于以偏移的二进制表示计的比特值的次数。
在另一方面,样本开始时间是基于硬件同步事件和偏移来确定的。硬件同步事件可以包括同步滴答,并且偏移可以包括延迟时间。定义偏移的信息可以包括分辨率比,该分辨率比被用于计算用来调节样本之间的时间区间的分辨率步长。
在另一方面,用于调节时间区间的装置被配置成:在同步电路处接收当前时间区间和旧时间区间,以及重复以下操作直至当前时间区间与旧时间区间之间的差异小于期望的最大差异:右移当前时间区间的二进制表示以获得差值;在当前时间区间大于旧时间区间时,从当前时间区间中减去该差值以获得新时间区间;在当前时间区间小于旧时间区间时,向当前时间区间添加该差值以获得新时间区间;将当前时间区间存储为旧时间区间;以及将新时间区间存储为当前时间区间。用于调节时间区间的装置可以被配置成:在同步电路处接收水印时间,以及重复以下操作直至当前时间区间与旧时间区间之间的差异小于期望的最大差异:右移该水印时间的二进制表示以获得水印差;在当前时间区间大于旧时间区间时,从该水印时间中减去该水印差;以及在当前时间区间小于旧时间区间时,将该水印差添加到该水印时间。
在本公开的一方面,一种处理器可读存储介质具有存储在其上的代码,该代码在由处理器执行时使得该处理器:将同步时段确定为在从设备中获取所配置数目的样本时所计数的内部时钟的循环数,接收定义与观察到通信链路上发生硬件同步事件的时间的偏移的信息,该偏移是在来自主设备的命令中接收到的,以及通过迭代数字近似基于该硬件同步事件和该偏移来调节样本之间的时间区间,同时并发地计算与由主设备配置用于一个或多个从设备的样本开始时间相对应的水印时间。
在另一方面,该代码使得处理器通过分批次减去偏移的倍数来调节样本之间的时间区间,每个批次被右移基于以偏移的二进制表示计的比特值的次数。
在另一方面,样本开始时间是基于硬件同步事件和偏移来确定的。硬件同步事件可以包括同步滴答,并且偏移可以包括延迟时间。定义偏移的信息可以包括分辨率比,该分辨率比被用于计算用来调节样本之间的时间区间的分辨率步长。
在另一方面,该代码使得处理器通过以下操作来调节时间区间:在同步电路处接收当前时间区间和旧时间区间,以及重复以下操作直至当前时间区间与旧时间区间之间的差异小于期望的最大差异:右移当前时间区间的二进制表示以获得差值;在当前时间区间大于旧时间区间时,从当前时间区间中减去该差值以获得新时间区间;在当前时间区间小于旧时间区间时,向当前时间区间添加该差值以获得新时间区间;将当前时间区间存储为旧时间区间;以及将新时间区间存储为当前时间区间。该代码可使得该处理器通过以下操作来计算水印时间:在同步电路处接收水印时间,以及重复以下操作直至当前时间区间与旧时间区间之间的差异小于期望的最大差异:右移该水印时间的二进制表示以获得水印差;在当前时间区间大于旧时间区间时,从该水印时间中减去该水印差;以及在当前时间区间小于旧时间区间时,将该水印差添加到该水印时间。
附图说明
图1解说了采用诸IC设备之间的根据多个可用标准中的一者来选择性地操作的数据链路的装置。
图2是解说其中可以实现当前公开的方法和装置的示例性移动设备的框图。
图3是解说其中可以实现当前公开的方法和装置的示例性硬件环境的框图。
图4是解说用于使主机控制器和传感器定时器同步的示例性方法的流程图。
图5解说了接口上的活动的示例性系统时序图。
图6解说了示出接口上的同步规程的示例的时间线示图。
图7解说了示出通过计及抖动和同步消息接发定时来设置轮询定时的时间线示图。
图8解说了可根据本文公开的某些方面来适配的传感器。
图9是解说根据本文中公开的某些方面的用于调节采样时间区间的规程的流程图。
图10是解说根据本文中公开的某些方面的用于计算水印时间的规程的流程图。
图11是解说采用可根据本文公开的某些方面来适配的处理电路的装置的示例的框图。
图12是解说耦合至串行总线且根据本文公开的某些方面配置的从设备的某些操作的流程图。
具体实施方式
在以下说明书和相关附图中公开的所公开的方法和装置的某些方面涉及作为出于说明性目的示例来呈现的特定实施例。可以设计出替换实施例而不会脱离本公开的范围。附加地,众所周知的要素可以不被详细描述或可被省去以免混淆本公开的相关细节。
措辞“示例性”在本文中用于意指用作“示例、实例、或解说”。本文中描述为“示例性”的任何实施例不必被解释为优于或胜过其他实施例。同样,术语“实施例”并不要求所有实施例都包括所讨论的特征、优点、或操作模式。
本文中所使用的术语仅出于描述特定实施例的目的,而并不旨在限定本发明的实施例。如本文中所使用的,单数形式的“一”、“某”和“该”旨在也包括复数形式,除非上下文另有明确指示。将进一步理解,术语“包括”、“具有”、“包含”和/或“含有”在本文中使用时指明所陈述的特征、整数、步骤、操作、要素、和/或组件的存在,但并不排除一个或多个其他特征、整数、步骤、操作、要素、组件和/或其群组的存在或添加。
此外,许多实施例是依据将由例如计算设备(例如,服务器或设备)的元件执行的动作序列来描述的。将认识到,本文所描述的各种动作能由专用电路(例如,专用集成电路)、由正被一个或多个处理器执行的程序指令、或由这两者的组合来执行。另外,本文所描述的这些动作序列可被认为是完全体现在任何形式的计算机可读存储介质内,该计算机可读存储介质内存储有一经执行就将使相关联的处理器执行本文描述的功能性的相应计算机指令集。由此,本发明的各方面可以用数种不同的形式来体现,所有这些形式都已被构想落在所要求保护的主题内容的范围内。另外,对于本文中所描述的每个实施例,任何此类实施例的对应形式可在本文中被描述为例如“配置成执行所描述的动作的逻辑”。
具有多个传感器和/或外围设备的装置的示例
图1解说了管理或支持由数据通信总线耦合的多个外围设备和/或传感器的装置100的示例。装置100可以包括具有多个电路和/或其他设备104、106、108和/或110(包括可以包括或支持一个或多个传感器的某些设备104)的处理电路102。处理电路102和/或设备104可以在一个或多个ASIC、和/或一个或多个SoC中实现。在一个示例中,装置100可以是通信设备并且处理电路102可包括充当主机或应用处理器的ASIC 104。装置100可包括一个或多个外围设备106、一个或多个调制解调器110以及收发机108,收发机108使得该装置能够通过天线124与无线电接入网、核心接入网、因特网和/或另一网络通信。电路或设备104、106、108、110的配置和位置可以在各应用之间有所不同。
电路或设备104、106、108、110可包括子组件的组合。在一个示例中,ASIC 104可包括一个或多个处理器112、板载存储器114、总线接口电路116和/或其他逻辑电路或功能。处理电路102可由提供应用编程接口(API)层的操作系统来控制,该API层使得该一个或多个处理器112能够执行驻留在板载存储器114或在处理电路102上提供的其他处理器可读存储122中的软件模块。软件模块可包括存储在板载存储器114或处理器可读存储122中的指令和数据。ASIC 104可访问其板载存储器114、处理器可读存储122、和/或在处理电路102外部的存储。板载存储器114、处理器可读存储122可包括只读存储器(ROM)或随机存取存储器(RAM)、电可擦除可编程ROM(EEPROM)、闪存卡、或可在处理系统和计算平台中使用的任何存储器设备。处理电路102可包括、实现或访问本地数据库或其他参数存储,该本地数据库或其他参数存储可维护用于配置和操作装置100和/或处理电路102的工作参数和其他信息。本地数据库可使用寄存器、数据库模块、闪存、磁介质、EEPROM、软盘或硬盘等来实现。处理电路102也可以可操作地耦合到外部设备,诸如天线124、显示器126、操作者控件(诸如开关或按钮128、130和/或集成或外部按键板132)、以及其他组件。用户接口模块可被配置成通过专用通信链路或通过一个或多个串行数据互连与显示器126、按键板132等一起操作。
处理电路102可提供使得某些设备104、106和/或108能够进行通信的一条或多条总线118a、118b、118c、120。在一个示例中,ASIC 104可包括总线接口电路116,其包括电路、计数器、定时器、控制逻辑、和其他可配置电路或模块的组合。在一个示例中,总线接口电路116可被配置成根据通信规范或协议来操作。处理电路102可包括或控制配置和管理装置100的操作的功率管理功能。
图2是解说可根据本文公开的某些方面来适配的装置200的某些特征的框图。装置200可以包括一个或多个处理器201、存储器或存储设备205、I/O控制器225和网络接口210。装置200还可以包括耦合到一条或多条总线或信号线、进一步耦合到处理器201的数个传感器设备。装置200还可包括显示器220、用户接口(例如,键盘、触摸屏或类似设备)、功率设备221(例如,电池)、以及通常与电子设备相关联的其他组件。在一些实施例中,装置200可以是移动或非移动设备。在此,“处理器”,“控制器”和“数据处理单元”可互换地使用。
装置200可以包括传感器,诸如环境光传感器(ALS)235、加速计240、陀螺仪245、磁力计250、温度传感器251、大气压传感器255、红绿蓝(RGB)色彩传感器252、紫外线(UV)传感器253、UV-A传感器、UV-B传感器、指南针、邻近度传感器267、近场通信(NFC)269、和/或全球定位传感器(GPS)260。多个相机可以被集成到设备中或对该设备是可访问的。例如,移动设备可以至少具有前置相机和后置相机。装置200可以包括多个其他类型的传感器。
存储器或存储设备205可以耦合到处理器201,并且可以存储供处理器201执行的指令。存储器或存储设备205可以是非瞬态的。存储器或存储设备205还可存储一个或多个模型或模块以实现本文所公开的某些功能和/或过程。存储器或存储设备205还可以存储来自集成或外部传感器的数据。
网络接口210可以耦合到数个射频(RF)子系统215,这些RF子系统215包括被配置成通过无线电链路向/从无线电接入网络传送和接收数据流的接口。在各种示例中,接口可以包括蓝牙接口266、WiFi接口211、蜂窝电话网络接口261、和/或可以将装置200耦合到其他类型的网络的接口。网络接口210可以包括用于直接连接到网络(诸如因特网、以太网或其他有线网络)的有线接口。装置200可以包括连接到一个或多个天线(未示出)的一个或多个局域网收发机。局域网收发机包括用于与RF AP通信和/或检测去往/来自RF AP的信号、和/或直接与网络内的其他RF设备通信和/或检测去往/来自网络内的其他RF设备的信号的合适设备、硬件和/或软件。在一个示例中,局域网收发机可以包括适合于与一个或多个RF接入点通信的WiFi(IEEE 802.11x)通信系统。
装置200还可以包括可被连接到一个或多个天线的一个或多个广域网收发机。广域网收发机包括用于与网络内的其他RF设备通信和/或检测去往/来自网络内的其他RF设备的信号的合适设备、硬件和/或软件。在一个示例中,广域网收发机可以包括适合于与RF基站的CDMA网络进行通信的CDMA通信系统。在其他示例中,RF通信系统可以包括另一类型的蜂窝电话网络或毫微微小区,诸如举例而言,TDMA、4G LTE、高级LTE、WCDMA、UMTS、5G或GSM。附加地,可以使用任何其他类型的组网技术,例如WiMax(802.16)、超宽带、ZigBee等等。
装置200可以被实现在移动设备、通信设备、蜂窝电话、个人数字助理、移动计算机、可穿戴设备(例如,手表、头戴式显示器、虚拟现实眼镜等)、机器人导航系统、平板式设备、无人机、多轴直升机、个人计算机、膝上型计算机、电器、或具有处理和/或通信能力的任何类型的设备中。如本文所使用的,移动设备可以是可配置成获取从一个或多个无线通信设备或网络传送的RF信号以及向其发送RF信号的任何便携式或可移动的设备或机器。因此,作为示例而非限制,装置200可以包括无线电设备、蜂窝电话设备、计算设备、个人通信系统设备、或其他类似的配备有可移动RF通信的设备、装置或机器。上文的任何可操作组合也被认为是“移动设备”。装置200可以被实现或包括在基本驻定或位于固定位置处的设备中。在各种示例中,装置200可以实现在计算机、电器、网络基础设施、娱乐系统(包括电视)、监视和安全系统(包括相机和传感器)、工业装备(包括操作、管理和/或控制流水线装备的设备和系统(包括机器人设备))等中。
装置200可使用RF信号(例如,2.4GHz、3.6GHz、以及4.9/5.0GHz频带)以及用于调制RF信号和交换信息分组的标准化协议(例如,IEEE 802.11x)来与多个RF接入点(AP)、B节点、演进型B节点、基站等进行通信。
可以由装置200的处理器201和/或装置200的其他电路系统通过执行指令(诸如存储在存储器或存储设备205或其他元件中的指令)来实现本文所描述的某些示例。具体地,装置200的电路系统(包括但不限于处理器201)可以在程序、例程的控制下或在指令的执行下操作以执行根据本发明的实施例的方法或过程。例如,该程序可以在固件或软件(例如,存储在存储器或存储设备205和/或其他位置中的固件或软件)中实现,并且可以由处理器(诸如处理器201)和/或设备的其他电路系统来实现。此外,应当领会,术语处理器、微处理器、电路系统、控制器等可以指能够执行逻辑、命令、指令、软件、固件、功能性等的任何类型的逻辑或电路系统。
本文所描述的某些功能、引擎或模块可以由设备自身执行,和/或本文所描述的某些或所有功能、引擎或模块可以由通过I/O控制器225或网络接口210连接的另一系统执行。因此,一些功能和/或所有功能可以由另一系统执行,并且结果或中间计算可以被传递回装置200。在一些实施例中,其他此类设备可以包括被配置成实时或接近实时地处理信息的服务器。在一些实施例中,其他设备被配置成例如基于设备的已知配置来预确定结果。此外,在图2中解说的一个或多个元件可以从装置200中省略。例如,在一些实施例中,可以省略传感器230-165中的一者或多者。
从设备的同步
图3是解说可根据本公开的某些方面来适配的硬件环境300的框图。可以提供主机控制器305(或主设备)以接收和处理从传感器310(或向主机或主设备提供采样数据的任何其他设备)传递的数据样本等。在一示例中,主机控制器305可以由装置200的处理器201实现或在装置200的处理器201内实现,但不限于此并且其可以与处理器201分开实现。传感器310可以是任何类型的传感器(诸如以上所述的那些类型的传感器)或收集并发送采样数据的任何设备。可以存在任何数目和类型的传感器。在一些示例中,可以向主机控制器305提供由时钟电路307生成的时钟或定时器信号。在其他实施例中,内部时钟生成器可以与主机控制器305一起被嵌入。传感器310将内部定时器315包括在该传感器310中,该内部定时器315可以包括时钟生成器和/或生成用于对传感器310收集和传输样本进行定时的定时器信号的其他电路。数据连接、总线或接口317将处理器201与传感器310链接并且尤其允许对主机控制器305与传感器310之间的数据传递进行定时。在图3中所示出的示例中,数据连接可以是IC间总线(I2C总线)或I3C总线,它们包括串行数据(SDA)线320和串行时钟(SCL)线330。可以用上拉电阻器(未示出)来将SDA线320和SCL线330两者上拉。I2C或I3C总线的操作在本领域中是已知的,并且为了简洁起见,在此将不进行详细描述。
数据连接可使用通用异步接收机/发射机(UART)连接、串行外围设备接口(SPI)总线、系统管理总线(SMBus)、串行低功率芯片间媒体总线(SLIMbusTM)、SoundWire总线、RF接口来实现。在一些实施例中,传感器310可以具有数据就绪中断(DRI)引脚,其可以经由DRI线340来连接到主机控制器305。在存在一个以上传感器的实施例中,来自多个传感器的DRI线可以在被连接到处理器201之前被复用。在一些其他实施例中,除了DRI引脚之外或代替DRI引脚,传感器310可以具有专用时钟校正引脚,其可以经由定时器校正线350来连接到处理器201。
装置200可以包括传感器310和主机控制器305和/或耦合到传感器310和主机控制器305。传感器310可以在该传感器310中具有定时器315,并且主机控制器305可以具有时钟电路307或耦合到时钟电路307。时钟电路307可以生成或恢复时钟信号,并且可以包括一个或多个定时器。例如,时钟电路307可以包括由主机控制器305用来第一次校正传感器310中的定时器315以及在传递来自传感器310的数据之后第二次校正传感器310中的定时器315的定时器。传感器310中的定时器315的两次校正之间的时间区间可以被选择成使得传感器310中的定时器315在该时间区间上与主机控制器305中的时钟电路307充分对准。
通常利用两种将数据从传感器310传递到主机控制器305的方法。在也称为异步方法的第一方法中,具有可用数据要传递的传感器310可通过藉由专用数据就绪中断(DRI)引脚发出DRI信号来通知主机控制器305(这将处理器从睡眠状态唤醒),并且随后在处理器就绪以供进行数据传递时传递数据。在也称为同步方法的第二方法中,主机控制器305可以按预定时间区间自发地从睡眠状态苏醒,并且可以轮询传感器310以接收数据。同步方法在具有或支持多个传感器的设备中更加能量高效,因为来自一个以上传感器的数据传递可以合并到单个轮询和传递会话中。
可以按与传感器的采样频率一致的频率来轮询传感器310。当传感器310仅递送最当前结果时,这种类型的轮询可能足以获得传感器310所收集的所有数据样本。然而,主机控制器305和传感器310往往不共享时钟或定时信号,以及可能发生相应的时钟电路307与定时器315的定时的失准,并且当传感器310是以其采样频率来被轮询时一些传感器数据样本可能丢失或被读取不止一次。该现象可能通过一些传感器可具有非常不良的定时器准确度(即,在温度范围内以及设备彼此间的±15%偏差)这一事实而被加剧。失准可能由于一些传感器具有不良的时钟或定时器准确度(例如,在温度范围内以及设备彼此间的±15%偏差)而被加剧。
图4包括解说用于使传感器定时同步的方法的示例的流程图400。在框410,可以第一次校正传感器310中的定时器315。校正传感器310中的定时器315可以包括:将定时器校正因子应用于传感器310中采样事件所基于的定时器315,以使得传感器310中的定时器315与主机控制器305中的时钟电路307所使用的时钟信号充分对准。当可以保证一足够长的时间段内以与传感器指定的采样频率一致的频率来轮询传感器310将导致接收到所有传感器数据样本而不会丢失数据样本且不会读取两次数据样本时,传感器310中的定时器315可以与用于控制轮询事件的处理器时钟信号充分对准。两个完全对准的定时信号的实际频率之间的比率等于两个定时信号的指定频率之间的比率。在框420,可以由主机控制器305来轮询传感器310,并且可以将传感器数据样本从传感器310传递到主机控制器305。可以在框420进行多次轮询和多次数据采样传递。在框430,可以按与框410中的第一次校正相同的方式来第二次校正传感器时钟。传感器310中的定时器315的两次校正之间的时间区间可以被选择成使得定时器信号在该时间区间上保持充分对准,包括在该时间区间上累积了不准确的定时器信号时。如果所选择的时间区间太短,则浪费在校正传感器定时器315上的能量可能比所需的能量更多。另一方面,如果区间被选择得太长,则定时器信号可能变得失准,并且可能发生数据样本丢失或数据样本的重复传递。
两次传感器定时器校正之间的时间区间可以被称为相位时间或时间相位区间(T_Ph)。具体而言,时间相位区间(T_Ph)可以是由主设备或主机控制器305提供的时间段,其指示由从设备(传感器310)用于调节这些从设备的内部定时器和采样事件序列的开始时间的预先建立的时间历时。“T”代表“时间”或“时段”,“Ph”代表“相位”,从而表示采样事件序列在相同时间段内发生并且在相同时刻处开始。在某些示例中,T_Ph可以被表示为在T_Ph时段上在采样事件序列中的预先配置或预定义数目个样本或采样事件。在一个示例中,T_Ph可以被表示为在每个T_Ph时段中发生的20个采样事件。
当重复地执行框410至430时,传感器310中的内部定时器315可以保持与主机控制器时钟充分对准。在一些示例中,T_Ph可以是与活跃的传感器或所安装的传感器相关联的采样时段的公倍数。在存在分别具有为200Hz、100Hz和10Hz的采样频率(分别对应于5ms、10ms和100ms的采样时段)的三个传感器的示例中,可以选择100ms作为T_Ph。使用作为采样时段的公倍数的T_Ph来使多个传感器基本上同时同步可以使传感器时钟信号彼此对准并且允许处理器在同步操作模式中以最少的唤醒窗口获得所有采样。例如,当三个传感器的具有分别为200Hz,100Hz和10Hz的采样频率的传感器时钟未被相互对准时,在最坏场景中处理器可能必须每秒总计苏醒410次以获得所有样本,其中处理器在每个唤醒窗口中从单个传感器接收单个样本(对于200Hz传感器而言每秒200次,对于100Hz传感器而言每秒100次,对于10Hz传感器而言每秒10次)。另一方面,如果三个传感器的传感器定时器是对准的,则处理器仅需每秒苏醒200次以获得所有样本:每次处理器苏醒都轮询200Hz传感器;每隔一次处理器苏醒就轮询100Hz传感器;以及每20次处理器苏醒就轮询10Hz传感器。减少所需的唤醒窗口数目可以节省功率并延长电池寿命。在一些示例中,T_Ph可以被设为大约1秒。在由传感器310来提供与时钟有关的反馈信息的实施例中,T_Ph也可以在运行时间处被调节。
可以采用各种方法来校正传感器310中的定时器315。在一些示例中,传感器310可以接收与时钟电路307有关的信息、导出并应用对应的校正因子。在一些示例中,传感器310可以将与其内部定时器315有关的信息发送到主机控制器305,接收在主机控制器305处导出的定时器校正因子,并且应用该定时器校正因子。
可以用各种方式在主机控制器305与传感器310之间交换与定时器有关的信息。在一些示例中,可以使用DRI线340来传递时钟或定时器信息。在其他示例中,可以使用专用时钟或定时器校正线350来传递时钟或定时器信息。在又一些其他示例中,可以使用处理器201与传感器310之间所提供的数据通信链路(诸如I2C或I3C总线或另一串行多点总线)来传递时钟或定时器信息。
在一个示例中,传感器310可以接收与时钟电路307有关的信息,导出定时器校正因子,并且在该传感器310中的定时器315正被校正时应用该定时器校正因子。当传感器310中的定时器315正被校正时,主机控制器305可以将包括预定数目个脉冲的脉冲突发传送到传感器310。脉冲突发可以从主机控制器时钟电路307导出,并且其频率可以取决于主机控制器时钟电路307的频率。该突发可以持续达相对较短的时间段。在此,传感器310可以被先验地配置成具有该突发的预期频率。一旦传感器310接收到突发,它就可以将所接收到的突发的频率与预期频率进行比较,相应地导出定时器校正因子,并且应用定时器校正因子以将传感器310中的内部定时器315校正。
在另一示例中,主机控制器305可以将两个脉冲传送到传感器310,其中当传感器310中的定时器315正被校正时,这些脉冲被(如由处理器定时器测量的)预定时间区间间隔开。该时间区间可被选择成使得其可以被可靠地用于导出定时器校正因子以校正传感器310中的定时器315。该时间区间可以被称为频率时间区间(T_Fq)。T_Fq可能在几毫秒的范围内。在一些实例中,T_Fq被选择成与存在的最短传感器采样时段一致。在一些实例中,T_Fq可以被选择成与T_Ph一样长。例如,T_Fq可以是1秒。在此,传感器310可以被先验地配置成具有预定T_Fq。一旦传感器310接收到两个脉冲,它就可以将(如由传感器定时器测量的)被所接收到的两个脉冲间隔的时间区间的历时与(也如由传感器定时器测量的)预定T_Fq的历时进行比较,相应地导出定时器校正因子,并且应用该定时器校正因子以校正内部传感器定时器。
在另一示例中,可以通过以下方式来校正传感器定时器:使得主机控制器305在该主机控制器305与传感器310之间的数据连接上将定时器校正消息传送到传感器310以使得在定时器校正消息的传输期间生成的两个可标识的有效边沿间隔(如由处理器定时器测量的)预定T_Fq。主机控制器305与传感器310之间的数据连接可以是I2C总线或I3C总线。它也可以是UART总线连接、SPI总线、或适用于在控制器与传感器之间传递数据的任何其他类型的连接。预定T_Fq可以与以上所描述的相同。在此,传感器310可以被先验地配置成具有预定T_Fq。一旦传感器310接收到定时器校正消息,它就可以将与该定时器校正消息包括在一起的通过两个可标识的有效边沿来间隔的(如由传感器中的定时器315测量的)时间区间的历时与(也如由传感器定时器测量的)预定T_Fq的历时进行比较,相应地导出定时器校正因子,并且应用该定时器校正因子以校正内部传感器定时器。
在主机控制器305与传感器310之间的数据连接是I2C或I3C总线的示例中,可以传送两个时钟校正消息。这两个定时器校正消息可以分别被称为MS1和MS2。T_Fq可以是在关于MS1的START(开始)条件中的在SDA线320上的下降沿以及在关于MS2的START条件中的在SDA线320上的下降沿所间隔的,或者替换地可以是在关于MS1的STOP(停止)条件中的在SDA线320上的上升沿以及在关于MS2的START条件中的在SDA线320上的下降沿所间隔的。当T_Fq被选择成与T_Ph一样长时,仅需要一个定时器校正消息,例如MS1,并且例如在每个T_Ph的开始处,可以由处理器201来传送MS1消息。因此,等于T_Ph的时间段T_Fq可以是例如在关于两个连贯MS1消息的START条件中的在SDA线320上的下降沿所间隔的。其他示例使用不同的变型和参数。此外,使用诸如I2C或I3C总线之类的串行总线来促成传感器310中定时器315的校正也允许进行补充的纠错规程、故障检测、和中止命令等。例如,传感器310可以传送时间戳或包括时间偏差信息的消息,并且主机控制器305可以相应地校正后续数据流。通过利用该规程,可以放宽T_Ph的准确度要求。还已经构想了将I2C或I3C总线的双向通信能力用于定时器校正目的的其他方法。
在用于校正传感器310中的定时器315的其他技术的一个示例中,传感器310可以将与在该传感器310中的其内部定时器315有关的信息发送到主机控制器305,接收在主机控制器305处导出的定时器校正因子,以及在传感器310中的定时器315正被校正时应用该定时器校正因子。
在一些示例中,当传感器310中的定时器315正被校正时,该传感器310可以将间隔(如由传感器定时器测量的)预定T_Fq或输出数据速率(ODR)时段的两个脉冲传送到主机控制器305。预定T_Fq可以与以上所描述的相同。在此,主机控制器305可以被先验地配置成具有预定T_Fq。当主机控制器305接收到这两个脉冲时,它可以将由(如由处理器定时器测量的)所接收到的两个脉冲来间隔的时间区间的历时与(也如由处理器定时器测量的)预定T_Fq的历时进行比较,相应地导出定时器校正因子,并且经由主机控制器305与传感器310之间的接口317(诸如I2C或I3C总线)来将定时器校正因子传送到传感器310。随后,传感器310可以接收定时器校正因子并应用该校正因子。
可以在不使用定时器校正因子的情况下实现用于校正传感器310中的定时器315的其他技术。在各种示例中,时钟电路307可以向传感器310提供信号或其他信息,并且传感器310可以将采样事件直接基于时钟电路307所提供的信号或信息。时钟电路307所提供的信号或信息可以使用专用线、DRI线340来传送,或者可以在处理器201与传感器310之间的数据连接上传递的消息内被传送。
在一个示例中,主机控制器305可以使用时钟电路307来生成采样定时器信号,并且可以将采样定时器信号传送到传感器310。采样定时器信号的频率可以与传感器310的采样频率相同。传感器310可以被配置成忽略该传感器310中的其内部定时器315,并且仅当它在主机控制器305所传送的采样定时器信号中遇到脉冲时才收集样本。
在存在多个传感器的示例中,由主机控制器305生成的采样定时器信号的频率可以被选择成使得采样定时器信号的频率是存在的各传感器的采样频率的公倍数。例如,对于其中存在分别具有为200Hz、100Hz和10Hz的采样频率的三个传感器的实施例,处理器201可以基于处理器定时器来生成具有为200Hz的频率的采样定时器信号,并且将该采样定时器信号传送到所有三个传感器。随后,可以将具有200Hz采样频率的传感器配置成在采样定时器信号中遇到的每个脉冲处收集样本;可以将具有100Hz采样频率的传感器配置成在采样定时器信号中遇到的每隔一个脉冲处收集样本;以及可以将具有10Hz采样频率的传感器配置成在采样定时器信号中遇到的每20个脉冲处收集样本。
当采样定时基于主机控制器305中的时钟电路307时,可预期传感器310的采样事件与主机控制器305的轮询事件总是对准的。采样定时器信号也可以充当轮询信号。在另一示例中,可以将由时钟电路307生成的信号或信息直接提供给传感器310,并且传感器310可以将采样事件基于时钟电路307而不是在该传感器310中的其内部定时器315。
通过利用本文所述的用于使传感器定时器同步的方法,控制器可以协调传感器的定时器校正,并且以节能同步模式从多个传感器中分批地接收所有传感器数据样本,而不会在以高于必要的频率来轮询传感器上浪费能量。可以通过从处理器向传感器传送单组定时器校正消息来确定重新同步传感器的频率,其中定时器校正消息包括一个或多个消息。重新同步传感器的频率可以是T_Ph的乘法逆或倒数。
特定的硬件和/或软件事件可以用作时间控制的同步事件。特定的硬件和/或软件事件可能取决于所使用的传输系统或接口,例如,事件将在控制器/主设备与传感器/从设备之间所提供的不同总线接口(诸如I2C、I3C、RFFE、SPMI等)之间而不同。可以用特定的一组命令和数据来标识事件。在一个示例中,此类命令可以在例如用于其他正常数据交换的相同总线事务内被发送,由此限制能量使用。时间同步事件可以由主机控制器以T_Ph区间来发送。在一个示例中,可以从已知要发生在传输系统或接口上的硬件事件中选择时间同步事件。在关于诸如I2C或I3C之类的总线的特定方面,已知存在要发生在接口上的若干开始条件(START)可用作时间同步事件,尽管硬件事件并不限于此。在一方面,无论传输系统或接口如何,硬件事件都可以包括主机控制器和传感器两者先验已知的可相互标识的消息。因此,传感器(和主机控制器)可以标识:在可相互标识的硬件事件发生在传输系统或接口上时开始的T_Ph区间。
在一些系统中,不同的传感器或其他设备在不同的时间处对其数据进行采样。当设置一共用采样频率时可能发生这种情形,这是因为不同传感器设备中的定时器或振荡器通常不够准确而无法保持同步,并且最终漂移远离。某些系统(例如,根据MIPI I3Csm规范的I2C总线或I3C总线系统)中所提议的同步时间控制机制或硬件事件为控制器提供了一种形成同步脉冲或消息的方式,称为同步滴答(ST)。以此方式,即使在传感器定时器或振荡器变化的情况下,采样也将在时间上紧挨着被执行,从而允许它们准备并激活采样机制。此外,硬件事件是由主机控制器/主设备和传感器/从设备相互商定的,并且是将要由从设备/传感器针对其时间基线(即,其内部定时器/计数器)来盖时间戳的事件。在其他示例中,硬件事件可以是线上通信的开始,例如,对于I2C、I3C或系统管理总线(SMBus)而言,作为示例,该硬件事件可以被选择作为传输开始中将是要由传感器/从设备来记录/盖时间戳的时刻的一者。对于其他接口,硬件事件可以是某种其他机制。例如,在SPI中,硬件事件可以是CS线变为低(LOW)以进行传输。作为另一示例,假定相对于硬件事件的定时而言非常快的接口,则该时刻甚至可以是ST消息自身,如在SPI的情形中,该消息仅占用1微秒,并且因此将足以使1秒长的T_Ph同步。
在某些示例中,ST可以是一消息,该消息被配置成验证并标识接口上正发生的许多类似硬件事件中的哪一者是应当用于进一步计算T_Ph的正确开始的硬件事件。硬件事件可以是任何数目个已知事件中的一者。作为硬件事件的示例,ST自身可以构成SPI传输中所商定的硬件事件,其中ST消息总共仅占用1微秒的时间,该时间对于同步事件而言是足够短的。硬件事件的其他示例可以是传输介质上的脉冲边沿。一些硬件事件可具有补充特性,诸如作为经定义的一组脉冲的最后边沿。在RF通信系统中,RF接口上通信的开始可构成硬件事件。在关于RF接口的另一示例中,硬件事件可以被传达并且通过使用特定于各种已知联网协议的特殊或专用通信或通信信道。附加地,延迟时间(DT)可以被提供作为验证和/或校正消息。在具有这三个要素即,硬件事件、ST标识消息、和DT验证和/或校正消息的情况下,可以完成本公开的同步规程。并且因为这些消息(例如,硬件事件、ST和DT)可以在T_Ph的正确开始之后的某个时间被发送,所以该方法涵盖了整个系统的所有不确定性。出于本公开的目的,应注意,硬件事件和标识该硬件事件的ST消息的组合可以被统称为“同步消息”。在某些方面,硬件事件可以被归入ST消息中,其中ST消息的开始边沿或时间构成该硬件事件。
图5解说了与接口上的活动的示例有关的系统时序图500,其中该图示出了从系统中的不同步或随机采样定时转变到用于在T_Ph时间段上进行采样的同步定时状态。应注意,该接口并不限于特定的传输系统,并且在其他示例中可以包括有线总线或RF接口。在图5的示例中解说了三个传感器,但是可以在系统中提供更少或更多的传感器,并且本文所公开的概念适用于一个或多个传感器。图5中顶部的三个时间线502、504和506解说了接口(诸如I2C、I3C、SPI等接口)上可见的活动,并且包括由主机控制器发送到在该接口上提供数据样本的各种传感器或其他设备的命令、以及来自各种传感器或其他设备的数据样本。时间线502、504和506还解说了从不同步状态(时间线502)到同步状态(时间线506)的时间或状态变化。底部的三个时间线508、510和512解说了个体传感器(或提供数据的其他设备)内的数据可用性。与时间线502、504、506一样,时间线508、510和512还解说了从不同步状态(时间线508)到同步状态(时间线512)的时间或状态变化。应注意,时间线502对应于同步过程已经实现之前的时间,而时间线506对应于同步过程被实现之后的时间。
如在时间线502中可见,来自通过接口连接的不同传感器的传感器数据(即,第一传感器的数据514、第二传感器的数据516、和第三传感器的数据518)不同步,因为数据是在接口上的各种且看似随机的时间处发送的,其中各传感器运行在其各自的ODR和不相关的定时器上。在这种不同步状态的某些方面,主机控制器将针对每个传感器的DRI事件苏醒,这浪费相当大量的系统能量。类似地,时间线508示出了各种传感器处的传感器数据514、516、518的不同步状态。
时间线504解说了主机控制器可以将信息信号或信息消息520作为时间同步事件传送,这些信息信号或信息消息520在每个T_Ph时段的开始处被发送到与接口耦合的各种传感器。根据一方面,信息消息520中的每一者可以包括硬件事件,诸如同步边沿、同步脉冲、或同步消息(即,ST消息)、以及DT消息,这将在下文更详细地讨论。出于本公开的目的,本文所使用的术语“信息消息”520表示并且在本文中可被称为经组合的ST和DT消息。信息消息520中的ST边沿或消息尽管在图5中没有被示出为与信息消息520分开但是其可以发生在信息消息520的开始处并且可以与DT消息不同,或者可以替换地被配置成使得信息消息520的上升沿提供ST消息接发,而其余部分包括DT信息。传感器可以使用信息消息520来校正其定时;即,出于与主机控制器同步的目的而校正其定时器。
在各种方面,各信息消息520之间的时间段被选择成时间相位时段T_Ph。然而,由于硬件和软件开销,在新T_Ph时段的预期开始与信息消息520的传输之间可能存在延迟,并且该延迟在本文中可被称为延迟时间(DT),这在图5中在标记522处解说。为了补偿可由T_Ph时段的不可预测和可变的开始(以及ST边沿或消息的发出)导致的潜在不准确性,可以由主机控制器来测量DT时段,并且该经测量的时间段由主机控制器作为信息消息520的DT部分一起被传达。此外,在一方面,信息消息520的DT部分在信息消息520的ST边沿或消息部分的传输之后被传送。在I3C接口的示例中,信息消息520可以在带内被传送,因此仅需要两条线(例如,SDA和SCL)。此外,DT消息或命令可以被配置成提供相对于完全同步定时在传输系统或介质(例如,I2C或I3C总线)上START条件已经被延迟的时间单位的数目。DT消息可能使用一个数据字节,其中数据字节的最高有效比特(MSB)是指示时间延迟计数器的溢出是否已经发生的标志。例如,值1b’0将指示没有溢出。数据字节的较低7个比特可以被配置成包含有效的定时器值。MSB中的值1b’1可指示:溢出已经发生且数据字节的较低7个比特不包含有效值,并且传感器或从设备应当中止当前同步规程。
在一个示例中,DT由主机控制器参考该主机控制器的内部时钟或定时器来测量。在一个示例中,主机控制器可以在其运行定时器上利用预定时间(例如,“水印”)或重合时间,这对应于用于开始T_Ph的理想时间(称为“开始T_Ph时间”)。随后,主机控制器可以将命令发送到接口控制器,以供将ST消息发送到传感器或从设备(例如,图11中所示的收发机1112)。随后,该接口控制器可以调度传输,并且最终可以在接口可用时开始传输。接口控制器针对主机控制器时间基线来记录传输开始时的实时时刻(称为“实际T_Ph时间”)。在一个示例中,可以基于与主机控制器用于确定水印或重合时间的相同运行定时器或该定时器的衍生物来确定定时。无论如何,这两个时间信息(即“开始T_Ph时间”和“实际T_Ph时间”)是相关的,并且基于相同的时间基线,即主机控制器的时间基线。随后,主机控制器计算“开始T_Ph时间”与“实际T_Ph时间”之间的差异,并且随后按照先前与从设备/传感器商定的时间单位来表示该差异,格式化DT消息,并且跨相同接口将其发送到从设备/传感器。因此,从设备/传感器可以从其接收到实时硬件事件的时间(即,在“实际T_Ph时间”处)扣除所传达的DT,并且因此针对从设备/传感器时间基线(即,传感器的定时器/计数器)在T_Ph实际上应当已经开始时到达开始T_Ph时间。此外,指示DT时段的信息可以指示延迟时段大约是时间相位时段T_Ph的1/n,其中n是2的幂(例如1、2、4、8……)。基于同步消息的定时和指示DT时段的信息,传感器/从设备可以确定新T_Ph时段的预期开始。
基于包括DT信息的信息消息520的定时,接收到该信息的传感器可以确定(例如在时间线510中由脉冲或时间戳524所指示的)下一T_Ph时段或新T_Ph时段的预期开始,从而示出信息消息520的处理已经发生。在具有下一T_Ph时段的所确定的开始的情况下,传感器随后可以在T_Ph时段内以特定的预定重复或系统唤醒区间来传送数据,如在时间线512中可见。当传感器的定时器同步时,传感器数据可以在同步传感器中的每一者的每个时间戳或采样频率处被传送,如在时间线512中可见。因此,传感器数据是同步的(一般参见图5中的526),并且该数据在接口上将是同步的(例如,参见时间线506中的528)且主机控制器将能够更加高效地读取这些数据因为数据集是在期间完成传感器轮询的相同系统唤醒区间内被读取的。应进一步注意,根据一方面,系统唤醒时段是可调节的。
图5解说了同步系统提供对传感器采样时段的频率和相位的调节。主机控制器或主设备以重复的T_Ph时段来发送同步信息(即,信息消息520或同步事件)。如之前所讨论的,时间相位时段T_Ph可以是相对较大的时间区间(诸如1秒),并且可以被耦合至主机控制器的传感器的采样时段的最小公倍数整除。然而,在实际情形中,并非总是有可能在不同的从设备/传感器与其不同的ODR之间具有适当的对应性,以使得最小公倍数具有有用的值。在此类情形中,同步过程可以调节某些ODR,或者在最坏的情形中,可以在更多但更小的群中使传感器同步。
应进一步注意,对于图5中的同步时间线示例,在主机控制器传送相位和频率信息(T_Ph)之后,传感器将在相互同步的时刻使其数据就绪,如时间线512中所解说的。这减少了主机控制器唤醒时段数,并且使读取期望传感器数据所需的能量最小化。
还应注意,主机控制器305可以被配置成在接口317(诸如I2C或I3C接口)上传送各种命令和对应的数据。在特定方面,主机控制器将向特定传感器或设备传送ODR命令和数据,该ODR命令和数据设置或建立用于一个或多个传感器的运行输出数据率。ODR值指示传感器在给定时间段内采用的样本数,并且还因在接口上采样和传送数据的每个特定传感器或设备而异。附加地,主机控制器还发出传达时间相位时段T_Ph的命令和数据。在一方面,T_Ph可以用所选ODR的采样时段数来表达。可以由主机控制器发出的另一命令和数据是分辨率比(RR),其表示DT的分辨率比。RR可以用T_Ph时间的所选2的幂的除数来表达,如稍后将更详细讨论的。
如之前所提及的,ST和DT可以跨许多不同类型的接口被发送,并且本文所公开的方法体系不限于任何一种类型的接口。在一些方面,该方法体系可以在若干或多个接口以及多个接口协议上使用,其中可以针对主机控制器的内部时间基线来同步若干传感器。这是有可能的,因为由于对延迟时间的测量和传输,硬件事件(即,ST、和/或ST与DT一起或成对)不需要以相对于T_Ph的正确开始的准确或精确的定时来被发送。
如本文所公开的,T_Ph区间的开始可以对应于大多数传感器将同时收集数据的时间,并且若干传感器的采样时刻在一个T_Ph时段期间应当重合至少一次。这些重合的采样时刻允许来自所有传感器的数据传递在相同事务期间发生(例如,如还在时间线512中可见的),并且采样时刻在图5中的垂直虚线处可见(参加例如图5中的线530)。而且,在一方面,T_Ph值一般被选择成使得传感器的定时器相对于T_Ph历时保持0.1%的精确性,该T_Ph历时一般大约一(1)秒。
图6解说了示出接口(诸如I2C或I3C总线)上的同步规程的示例的时间线示图600。具体而言,图6解说了控制器(例如,主机控制器305)与传感器(例如,传感器310)之间的接口上的通信的时间线,其中传感器的定时被调节以提供协调多个传感器的效率并保证传感器读取不重复数据或丢失期望数据。作为该传感器定时调节的一部分,图6的示例将信息消息(例如,信息消息520)用于将传感器定时器同步到主机控制器,该信息消息包括跟随有延迟时间DT消息或与延迟时间DT消息成对的ST消息。
时间线602解说了由主机控制器305进行的对接口上从传感器(例如,310)发出的通信的读取事件的示例。在I2C或I3C的情形中,通信包括START事件604,其后跟随有携带来自传感器的数据和控制信息的消息606。信息605的第一部分可以包括ST和DT,其中通信信息的其余部分包括交换轮询数据和控制信息的典型通信。根据一方面,如果ST是I2C或I3C通信的一部分,则传感器在内部记录ST何时发生,并且如果信息后跟随有指示该信息被用作同步脉冲或事件的命令,则使用该信息。在另一方面,同步事件是控制器与传感器之间的可相互标识的硬件事件,其可以被先验确定。在一方面,硬件事件可以是I2C或I3C接口已知的各种START条件之一,诸如由SDA线的下降沿定义的START条件,但是事件当然不限于此。T_Ph时段内的后续通信可以包括轮询或其他命令和/或消息606。
在一些方面,包括轮询消息的消息606向传感器索求响应,传感器可以在该响应中将传感器样本数据传送回主机控制器。传感器还可基于它们自己的相应传感器定时器来传送指示传输时间的时间戳。时间戳可以用任何合适的形式,例如,作为I2C或I3C总线响应消息的一部分连同传感器采样数据一起,在使用比I2C或I3C更快的协议(例如,SPI)的情况下作为专用消息或者在处理器与传感器之间的分开连接上。
下一时间线608解说了当将传感器时间戳610记录在传感器自身上时的定时,其在时间上对应于START事件604。时间线608中的这些传感器时间戳610表示不同步操作。在一方面,传感器最终可将这些时间戳连同任何对应的传感器数据一起传送回主机控制器。这些传感器时间戳610可以用许多形式来配置,诸如I2C或I3C通信的一部分(即,在SDA和SCL线上)、在分开的线上、或者甚至在通信系统比I2C更快(诸如举例而言SPI)的情况下可以是一完整消息。
时间线612解说了可被用于使主机控制器与传感器进行同步的经组合的ST和DT消息614(例如,图5的信息消息520)。ST消息由DT消息验证,该DT消息给出传感器可用于进行定时校正的时间延迟。在一个方面,对于在主机控制器中出现的延迟的校正可不同于在传感器内基于ST脉冲之间的时间来确定的传感器时钟速率校正。在另一方面,可以通过在每个消息的定义字节(Defining Byte)字段中设置不同的值来区分经组合的ST和DT消息614的ST和DT部分。
如本文所公开的,主机控制器可以确定或测量DT 620,该DT 620是从T_Ph时段(序列时段)的预期开始起的同步中的时间,如在时间线616上在T_Ph开始处的时间戳脉冲618处所指示的。在T_Ph时段期间的附加传感器时间戳622是与主机控制器同步的。由DT消息传达的时间校正计及T_Ph的开始与在接口上发送出ST消息时之间的时间。如本文所公开的,可能由于主机控制器中存在硬件和软件开销而发生该延迟。往往从主机控制器的数字逻辑的等待时间中提前知晓硬件开销。在另一方面,软件开销等待时间可能不那么稳定,并且可能由于操作系统或控制软件中的竞争优先级而出现。例如,在即将发送ST的时间期间,软件可能正在处置优先级中断。这可能导致ST的发送将被延迟。此外,这些延迟可随循环变化。因此,与ST一起发送经测量的DT 620向传感器提供了适配T_Ph时段的开始和ST的发送的延迟的能力。因此,DT消息有效地限定了每个ST时间戳。根据其他方面,应注意,ST消息优选地在START条件之后被尽快发送(针对直接消息,还有从设备地址),从而为发送和接收DT消息提供足够的时间。附加地,DT消息应当在下一最短轮询时间窗口之前到达,这将在稍后更详细地讨论。根据又其他方面,DT消息可以包含START条件和所要求的T_Ph开始之间的时间延迟,或者包含当前同步窗口的中止次序。
操作中,每个传感器可以被配置成在检测到硬件事件的时刻处记录其内部定时器的值。在一示例中,START条件的SDA下降沿可能构成在使用I2C或I3C总线的示例中将要在接口上检测到的硬件事件。在后一示例中,对最后START条件的记录可以存储在寄存器或用于存储值的类似设备中。当传感器识别出其从设备地址或广播命令以及ST消息时,随后,每个传感器或从设备被配置成将所存储的START条件时间用作新T_Ph时段的开始时间的参考。随后,在识别出作为信息消息520、614的一部分的后续DT消息之际,每个传感器或从设备可以相对于其内部定时器来校正T_Ph开始时间和T_Ph历时(若需要),或者中止当前同步规程,从而保留内部定时器的运行参数。当T_Ph区间期满时(例如,在一个示例中,大约为1.0秒之后),主机控制器或主设备通过随后以上述方式发送跟随有DT消息的下一ST消息来重复同步事件。
在系统的配置或设立以实现图6的同步定时期间,主设备或主机控制器305可以向例如特定的I2C和I3C系统中的传感器(例如,传感器/从设备310)发出各种命令,尽管其功能性并不必限于I2C和I3C系统。如本文所公开的,主机控制器可以针对每个传感器发出ODR命令。在一方面,ODR命令可以将正运行的ODR传达到传感器。在另一方面,ODR命令码可以是单个字节(0xXX)连同另一字节的传感器专用数据。
配置期间的另一参数是用于设置T_Ph时间段的历时(即,同步事件重复时段或同步时段)的命令,其也可被称为TPH命令。该命令设置T_Ph的重复率。在一方面,ST消息可以将该TPH命令码包括在定义字节字段内,该定义字节字段跟随有与特定时间设置或值有关的一个或多个特定数据字节。
可以在配置期间使用的又一命令是时间单元(TU)命令,其可能因每个或所有传感器而异。该命令设置传递到传感器或从设备的时间单位的值。在一方面,ST消息可以将该TPH命令码包括在定义字节字段内,该定义字节字段跟随有与特定时间设置或值有关的一个或多个特定数据字节。
附加地,在系统的配置期间的另一命令是主机控制器发送到传感器的RR命令。RR命令提供一除法因子,该除法因子可适用于计算DT命令的T_Ph时间的分辨率步长。使用T_Ph的相对除法来传送延迟时间避免了主机控制器或传感器需要知晓彼此的真实定时器或时钟值。
T_Ph分辨率步长的计算可以通过将对应的T_Ph时间段乘以RR来确定。如前所述,RR是通过T_Ph时间的所选2的逆幂用除数来表示的。例如,RR值可以被表示为2-x,其中x可以是11到14的整数值(因此,RR值的范围是2-11到2-14)。在RR命令或消息的结构方面,RR消息中的两个最低有效比特(LSB)可被用于向传感器指示从整数值11到值14的2的逆幂中哪个T_Ph除法因子被用于计算时间分辨率步长(例如, )。因此,例如,如果假定T_Ph时段为1秒(即,1000ms)并且RR值被设为2-11,则分辨率步长时间将为1000ms x 2-11,或即488μs。由于除法因子被表示为2的整数幂,因此应注意,乘法运算是简单右移与除法值的正整数指数相同数目的位置。在一方面,DT消息可以用一个字节来构造,使得可以将7个比特用来传达延迟步长,并且最高有效比特(MSB)将指示中止(尽管该消息不必限于一个数据字节)。因此,绝对最大延迟时间将是对应于127个分辨率步长的时间段。基于被确定为T_Ph时段的除法因子的分辨率步长时间和用于其中应当传送ST+DT消息的最大延迟时间(DT)的分辨率步长的预定数目,可以计算最大延迟时间。例如,如果根据以上示例,分辨率有步长时间为488μs,则最大DT校正范围将为488μs x 127,或即62.01ms。以下表1解说了给定不同的T_Ph时段和从11到14的RR值的情况下,各个最大ST+DT延迟时间(或DT校正范围)的示例。
表1
应注意,在特定系统中,传感器具有可用数据是必须的,即使无法发送ST+DT消息或系统在错误状态中亦是如此。这是因为传感器数据对于不在主控制器直接控制下的其他设备或过程而言可能是必需的。由于当前所公开的技术的某些方面假设ST和DT配对在一起并且被传感器设备确收,因此,如果不能在DT校正范围内给出ST命令,则提供该ST命令将不得不晚得多。在此类情形中,ST消息后必须跟随有DT,并且带有中止同步次序。随后,将是正确的ST,由其配对的DT验证。
此处应注意,RR提供了表示延迟时间的一种紧凑方式,适用于主机控制器/主设备和传感器/从设备的定时器所基于的任何实时单元。通过将DT指定成整个T_Ph除以数字2的幂,结果的分辨率可以被隐式地设置。与使用RR表示DT的效率相反,在T_Ph为200ms的情况下以毫秒表示DT、或针对1秒钟或更长的T_Ph以微秒表示DT将不是非常有用或高效的。
影响本文所公开的同步操作的其他因素包括关于ST+DT消息的START事件必须至少在同步定时器的预期漂移之后到达总线以捕获可能的最慢传感器或从设备的考虑。此外,由于因硬件、固件和软件滞后导致的主机控制器不确定性(在本文中将该不确定性称为“抖动”),ST+DT消息的START事件的SDA下降沿可能甚至更晚到来。然而,ST+DT消息的START事件条件不能晚于可接受的读取正确数据的定时,即读取需要在新数据开始填充传感器处的输出寄存器或FIFO缓冲区之前发生。相应地,还构想了用于确保计及和缓解同步定时器的漂移和主机控制器抖动的方法和装置。
在一方面,术语“抖动”可暗指在理想时间或预期时间处发出ST消息的主机控制器的统计不确定性的总和(例如,如果不确定性为±1ms,则总不确定性针对整个区间为1ms+1ms=2ms,以涵盖所有可能的变化)。附加地,传感器上存在一定范围的定时器定时,这可以是由于包括量化误差的抖动。该定时范围可以表示为在主机控制器的定时器中测量的T_Ph时段的百分比。对于整个系统的给定抖动,可以确定最大T_Ph。
图7解说了示出通过计及抖动和同步消息接发定时来设置轮询定时的时间线示图700。具体而言,图7解说了抖动对传感器同步和轮询的影响,以及确定最大读取窗口以确保系统中从传感器正确轮询或读取数据。第一时间线702解说了在ODR时段或轮询时段703的开始处的三个可能的T_Ph时段标记704、706、708。标记704表示理想定时点,而标记706和708分别表示快速极限和慢速极限(例如,仅作为一个示例,在标记706处的T_Ph时段的-0.1%和在标记708处的T_Ph时段的+0.1%)。应注意,理想、快速和慢速标记仅出于解说目的而示出为这些定时将在何处发生的可视化。接下来的三个时间线710、712和714表示传感器上的理想、快速和慢速定时器或时钟,其中与理想值的快速或慢速偏差表示传感器的可接受范围。传感器时间戳在时间上出现的时间量(即快速时间戳718、理想时间戳716、和慢速时间戳720)由传感器的定时器或时钟生成来确定。该定时可能会受温度、电源电压、以及传感器操作的其他因素的影响。
时间线722解说了主机控制器可以通过考虑理想、快速、或慢速传感器定时的不同情况来轮询传感器的时间。如脉冲724所示,开始轮询的最小延迟必须足够晚,以确保即使慢速传感器定时也已经完成数据采样,如脉冲724在时间上正好在慢速传感器定时的时间戳720之后发生所解说的,如可在时间点726处可见。当主机控制器可以保证在那个准确时间进行轮询时,该定时是有可能的。但是,并且如本文所公开的,由于硬件、固件和软件中的延迟,当主机控制器可用于实际进行轮询时,该主机控制器自身可能遭受变化。该变化被示出为主机抖动最大值728,其中该最大抖动表示可能的最长延迟时间,其结尾可以被认为是ST+DT信息消息730的最大延迟定时。主机抖动最大值728时间段可以是先验已知的,或者是基于由主机控制器执行的测量或计算的。
在主机抖动最大值728的时间已经流逝之后,主机控制器可以通过以用于传送ST+DT信息消息730所需的伴随时间段发送ST+DT信息消息730来执行重新同步。为了在下一传感器输出数据时段上获取正确的传感器数据样本,主机控制器在最快传感器已经被更新(参见快速传感器时间戳718,其指示其数据刚好在时间点732之前就绪)之前轮询传感器,并在标记734处示出为在快速传感器已使其数据就绪之前用于传感器读取窗口的最大时间(即,最大读取窗口736)。用于最大读取窗口的时间将需要为非负,以确保时间窗口已存在。为了保证最大读取窗口定时对于给定主机抖动最大值728和对快速和慢速传感器时间的给定要求而言是非负值,将ST+DT信息消息730的发送率设得足够低以使最大读取窗口为非负。相应地,最大读取窗口736的确定包括主动设置或调节ST+DT信息消息730。此外,将领会,图7的方法体系允许确定可以在同步时段(即,T_Ph)期间在其内传感器数据可以被采样的ODR时段(例如,轮询时段703)的数目的计算。例如,可以确定允许在最快可能传感器采样定时将改变要在下一ODR(即,时间戳718和时间点732)处将要读取的数据之前对传感器数据进行采样的ODR时段的数目。可以由主机控制器设置或确定同步时段(T_Ph)(或者如果在初始同步之后发生,则为重新同步)期间的ODR时段的数目(或轮询定时或轮询循环的数目)。
应进一步注意,如图7所示的最快到最慢的传感器定时的范围(即,706至708)不一定表示特定数目的传感器,而是解说了特定传感器定时的可能变化范围(或者替换地,这可以是数个传感器的共同可能定时器变化范围),并且物理系统中的传感器数目可以是一个或多个,其中该范围涵盖该一个或多个传感器的最快和最慢可能定时。
根据另一方面,主机控制器可以监视传感器定时器与所传送的时间戳(例如,716、718、720、或没有由图7示出的其他时间)之间的渐进式偏移,这些时间戳指示数据变成可用于主机控制器的时刻。根据该监视,可以动态地调节最小和/或最大延迟时间(即,最慢和最快传感器定时之间的变化范围)的确定。
有同步能力的从设备
在许多实例中,传感器被实现为具有受限处理能力的从设备。传感器可以被实现为由内部时钟生成器驱动的数字传感器。传感器的相关功能可以使用本文所公开的时间水印来控制。可以使用由内部时钟生成器所提供的基时钟来对时间水印进行计数或测量。
图8解说了可根据本文公开的某些方面来适配的传感器800。在一个示例中,传感器800可以通过根据I3C、I2C、RFFE、SPMI或其他协议来操作的两线串行总线820耦合。传感器800可以用低成本制造且具有最小复杂度。例如,设备控制器808可以被实现为有限状态机或低成本微控制器。可以通过板载或外部存储设备806中所提供的指令或其他信息来指导或控制设备控制器808的操作。在各种示例中,设备控制器808可以循环通过控制环路,该控制环路确定何时要执行某些功能,包括传感器读取功能和通信功能。由控制环控制的某些活动可以由定时器或计数器812触发,该定时器或计数器812对由时钟生成电路810所提供的一个或多个信号中的时钟脉冲进行计数。在一个示例中,当时钟信号中已计数所配置数目的时钟循环时,定时器可以生成信号、中断或事件。在另一示例中,计数器可以对时钟信号中的时钟循环进行计数,并且在计数器值达到零时生成信号、中断或事件。
设备控制器808可以通过从感测电路802读取数据来响应第一定时器或计数器事件。感测电路802可以耦合至对传感器800位于其中的环境的一些方面的进行测量的外部或内部设备。例如,感测电路802可以从换能器或仪器获得环境温度、表面的应变、设备取向、气压等的读数。感测电路802可以在设备控制器808可访问的一个或多个寄存器804中提供读数或读数的经操纵的版本。设备控制器808可以通过将寄存器值传达通过串行总线820来响应第一定时器或计数器事件、或第二定时器或计数器事件。可以通过激活总线接口814以使得总线接口814和/或设备控制器808响应与针对寄存器804的读取命令来完成寄存器值的传达。
设备控制器808可具有受限的处理能力。在许多低成本传感器800中,设备控制器808被用于启用和禁用某些功能以及在各寄存器之间移动数据。在这些传感器800中,在设备控制器808中包括较复杂的功能(诸如算术逻辑单元)可能对传感器800的成本和功耗产生负面影响。在这些类型的传感器中,传感器800与其他设备之间的定时电路的同步通常需要主机应用处理器的参与。当在一些常规系统中部署大量传感器800时,同步负担可能降低主机应用处理器的性能,并且最终可能使主机应用处理器和串行总线820的能力不堪重负。本文所公开的某些方面使具有受限处理能力的传感器800自同步到由主机应用处理器所提供的定时信号和/或事件,而无需主机应用处理器的持续干预。在一个示例中,主机应用处理器可以在设备初始化期间、或者在系统配置或重新配置期间配置某些同步参数,并且不进一步参与能够使传感器800与主机应用处理器和/或其他传感器同步的偏移、延迟和其他定时信息的计算。
ODR是因传感器而异的参数,它定义给定时间单位中可用的样本数目,例如,其中时间单位可以是一秒。典型的传感器800支持受限数目的ODR值。ODR的值会影响处理在样本之间被处理的原始数据的方法。采样时段是基于与基计数器相关联的水印定义的或使用基计数器来实现的。在一个示例中,使用1MHz时钟基时钟为基计数器提供时钟定时,并且ODR=100Hz在毗邻样本之间产生10,000个计数。
主机设备可以提供硬件可识别的同步事件,诸如在由较高级别的应用所确定或配置的时段生成的ST。ST命令可以将ST与众多类似的硬件事件区分开。ST在正确时间处可能没有出现在总线上。主机设备可以被配置成向目标传感器800发送标识ST与同步事件的正确时间之间的延迟的信息。该信息可以在DT消息或命令中被传递。DT值可以等效地用时间单位来表示。在一个示例中,分辨率步长(Rstep(R步长))可以被表示为将毗邻同步滴答之间的总历时除以2的幂。2的幂的指数被表示为分辨率比。在该示例中,可以用传感器样本数(即,TPH)来定义发送毗邻同步滴答的间隔区间(即,T_Ph)。
期望纳入传感器800的从设备计算将要获取一个或多个样本的时间。从设备可以基于涉及同步信息的某些计算来调节取得样本的时刻。以编程方式,一种最简单的对于样本的获取进行定时的办法是采用数字乘法器和除法器来计算采样时刻。一些基于微控制器的从设备可能配备有数字乘法器和除法器,其往往具有双精度能力。然而,用作传感器800的大多数从设备是相对简单的设备,并且可以使用能在不具有微控制器的情况下操作的有限状态机或其他逻辑电路来实现。向此类从设备上添加乘法器或除法器将导致成本上不可接受的增大。
本文所公开的某些方面提供了一种用于从设备的设计,该从设备可以使用基本数字规程和简单数字逻辑来计算采样区间和采样时刻。在一个示例中,可以仅使用基本加法器/减法器、数字比较器和/或数字计数器来提供综合设计。
本文所公开的某些方面提供了一种“传感器同步”(S4S)技术,其中主机可以在系统配置期间传递目标ODR,其中T_Ph以由从设备取得的样本数(TPH值)和RR深度来表示,该RR深度是相应2的幂的指数。从设备被配置有用于获取样本的定时,包括指派给每个可用ODR的样本水印(SWM)。计算关于T_Ph的计数的总数。随后,ST/DT命令对提供用于计算从设备时钟数中的正确T_Ph所必须的信息,如与主机定时相关的。随后,从设备可以计算用于采样时刻的经调节的时间水印。
在常规系统中,使用乘法器来计算初始T_Ph以确定TPH与SWM的乘积。根据本文所公开的某些方面,可以准许在同步时段的开始(T_Ph的开始)处所发起的计数器运行直至获取最后的样本,如TPH值所指定的。使用计数器可以避免使用乘法器。
根据某些方面,主设备可以使得T_Ph计算被调节。从设备可以为由ST/DT命令对所标识的同步硬件事件盖时间戳。主设备向从设备发送SYNC滴答命令,其定义了从设备用来创建时间戳的硬件事件。被盖时间戳的事件用作从设备的参考。然而,时间戳可能由于一个或多个环境条件和/或由繁忙的总线或繁忙的主设备导致的条件的影响而被延迟。从设备可以通过基于由DT命令所提供的值扣除分辨率步长数目来完成同步。在常规系统中,分辨率步长数目乘以DT以获得将要从时间戳中扣除的数。
根据本文所公开的某些方面,可以在不进行乘法的情况下调节时间戳。该时间戳可以被记录成SDA_TS。DT传递从T_Ph的正确结束到同步硬件事件在总线上被提供的时刻之间流逝的时间单位数。随后,从设备可以从其取得的时间戳中扣除对应的时钟数。最初,从设备可以将DT值和Rstep(使用RR来计算的Rstep)相乘。可以从时间戳中减去经计算的值。典型地,RStep具有较小的值且为2的幂,并且可能执行导致深度截断该值的右移。深度截断该值可能导致较大的量化误差,该量化误差在被乘时会被加剧。
图9是解说了用于乘DT值以及计算将要从时间戳中扣除的值的过程的流程图900。根据本文所公开的某些方面,涉及延迟时间的步进减法是由校准电路执行的,其中基于DT的二进制值来分批次右移。在所解说的示例中,在DT=5(二进制101)的情况下,常规系统将在扣除之前将分辨率步长乘以5。根据本文所公开的某些方面,可以使用逐比特办法来完成对时间戳的调节。在框902,校准电路接收RR、DT和初始时间戳(SDA_TS)。在方框904处,发起环路计数器(N),向DT计数器加载DT的值,将初始T_Ph_DIF(T_Ph_差)值设为SDA_TS的值,并将其右旋RR-6比特,以及将T_Ph_New(T_Ph_新)设为SDA_TS的值。在框906,校准电路确定比特DT_BIN[6]的值。如果DT_BIN[6]被清除(即,等于0),则不进行扣除。如果设置了DT_BIN[6](即,等于1),则在框908,通过从T_Ph_New中减去T_Ph_DIF值来进行扣除。
如果环路计数器已经达到零,则在框910,校准电路可以终止该规程。如果环路计数器不为零,则在框912,校准电路将T_Ph_Dif(T_Ph_差)右旋1比特,将DT_BIN左旋1比特,并使环路计数器递减。该规程重复在框906开始。
在该示例中,第一扣除对应于分辨率步长的LSB(此处为‘1’),并且从时间戳中扣除TPH值的一个单位。随后,TPH值和DT被右移。DT LSB现在为‘0’,并且不进行扣除。随后,TPH值和DT再次被右移。DT LSB现在为‘1’,并且从时间戳中扣除经两次移位的TPH值的一个单位。
以此方式,避免了使用乘法器,并且减小了量化误差。移位寄存器和数字比较器(以监视经移位的TPH的LSB)可以实现恰适的扣除。右移可以被应用于正在运行的T_Ph或SDA_TS。在该规程的第一迭代中,使用初始计算值为现实应用提供了合适的准确度。结果得到的新T_Ph可以被称为T_Ph_New(T_Ph_新)。
以下表2和表3解说了使用图9中所解说的规程的示例。在这些示例中,SDA_TS被初始化为4,020,000,RR设为12,DT设为31,并且目标T_Ph_New值为3,989,803.73。DT_Bin的比特选择符解说为8比特值,尽管该示例使用较少的DT_Bin比特(DT_Bin[6:0])。表1和表2所解说的示例在初始Diff(T_Ph_差异)值方面不同。
表2
比特 | 比特选择符 | 值 | T_Ph_Diff | T_Ph_New |
7 | 10000000 | 0 | 124674 | 4020000 |
6 | 01000000 | 0 | 62337 | 4020000 |
5 | 00100000 | 0 | 31168 | 4020000 |
4 | 00010000 | 16 | 15584 | 4004416 |
3 | 00001000 | 8 | 7792 | 3996624 |
2 | 00000100 | 4 | 3896 | 3992728 |
1 | 00000010 | 2 | 1948 | 3990780 |
0 | 00000001 | 1 | 974 | 3989806 |
表3
图10是解说根据本文所公开的某些方面的用于计算样本水印(SWM)的过程的流程图1000,其通过对旧T_Ph(T_Ph_Old(T_Ph_旧))的迭代调节进行镜像来获得新T_Ph(T_Ph_New)。在一个方面,可以通过使用与用于获得T_Ph_New的迭代数字近似成比例的迭代数字近似来调节SWM来实现镜像。例如,用于以迭代方式来调节SWM的SWM差值(SWM_Dif)可以通过以下方式来获得:将SWM右移用于移位T_Ph的相同比特数,以获得用于相同迭代的T_Ph差值(T_Ph_Dif)。使用镜像获得经校正的SWM可以消除对乘法器和除法器的需要。在每次迭代中,可以通过使用移位、加法和/或减法对先前的T_Ph值进行数字操作来获得T_Ph的新值。可以使用先前的SWM值和每次迭代中用于获得T_Ph的新值的相同数字操作来获得SWM的新值。在一些方面,数字操作可以被表征为缩放规程,其可以表示为:
在流程图1000的框1002,校准电路可以接收先前的SWM(SWM_Old(SWM_旧))、T_Ph_Old和T_Ph_New。校准规程迭代地修改来自框1004的T_Ph_Old,直至T_Ph_Old尽可能地接近T_Ph_New。在框1004,校准电路可以在1比特右旋之后将T_Ph_Dif设为T_Ph_Old的值,并且可以在1比特右旋之后将SWM_Dif设为SWM_Old的值。
在框1006,校准电路确定SWM_Dif是否具有非零值。如果SWM_DIF为零,则在框1008,将SWM_New设为SWM_Old的当前值,并且该规程被终止。如果SWM_DIF为非零,则规程在框1010处继续。
在框1010,校准电路确定T_Ph_Old和T_Ph_New是否相等。如果T_Ph_Old和T_Ph_New相等,则在框1008,将SWM_New设为SWM_Old的当前值,并且该规程被终止。如果T_Ph_Old和T_Ph_New不相等,则规程在框1012继续。
在框1012,校准电路确定对T_Ph_Old和SWM_Old的调节是相加还是相减。如果T_Ph_Old小于T_Ph_New,则在框1014,通过分别添加T_Ph_Dif和SWM_Dif来增大T_Ph_Old和SWM_Old。如果T_Ph_Old大于T_Ph_New,则在框1016,通过分别减去T_Ph_Dif和SWM_Dif来减小T_Ph_Old和SWM_Old。
在调节T_Ph_Old和SWM_Old之后,该规程返回到框1004以进行另一迭代。
在每个阶段,将当前修改的T_Ph_Old与目标T_Ph_New进行比较(见框1012)。如果T_Ph_Old较小,则通过向其添加其右移一个位置的值来计算下一阶段。如果T_Ph_Old较大,则通过从其减去其右移一个位置的值来计算下一阶段。并行地将相同的规程应用于SWM_Old;通过将SWM_Old的相应值右移来计算这些数。最终结果是SWM_New。该过程继续直至经修改的T_Ph_Old=T_Ph_New或SWM_Old的经加/减值=0。
图10中所解说的规程使用每次迭代中减小的差值来迭代地向上或向下调节当前值(T_Ph_Old)。当观察到新值与旧值之间没有差异时,就可以实现目标值(T_Ph_New)。
以下表4和表5解说了使用图10中所解说的迭代规程的示例。表4和表5解说了由该规程达成的收敛。T_Ph值可被用于表示在ST-DT对之间发生的同步时段。同步时段可以被测量为由与从设备相关联的传感器取得的样本数。在一个示例中,传感器可以被适配成当计数器到达表示为内部基时钟生成器的时钟数目的SWM时捕获样本。同步时段可以被计算为SWM值与TPH数的乘积。在各表中所提供的示例中,初始SWM被选择为100,000,并且同步时段具有为6个样本的历时。T_Ph值最初是:
6×100,000=600,000。
对于表4而言,目标T_Ph值为610,948,而对于表5而言,目标T_Ph采样时段为610,619。根据某些方面,从设备可以使用对6x SWM历时(100,000个内部时钟时段)的SWM进行计数的计数器来发现600,000值。常规系统采用乘法器来获得同步时段。根据本文所公开的某些方面,通过迭代近似来调节600,000的值,并且提供经调节的值,其例如在表4中为610,948。在调节同步时段时,相同的数字近似规程被应用于调节SWM值。近似规程包括添加或减去经右移的参考值。近似规程准许在没有除法器的情况下完成调节。足够精度的除法器将使610,948除以6(样本数)来获得为610,755.17的正确值。本文所公开的规程从最初的100,000中得出为101,824的经计算SWM。从设备将SWM值用于采样,并且基于经计算的101,824的SWM值,从设备在样本之间对610,944个基时钟进行计数。相对于使用双精度乘法器/除法器所获得的正确计算的同步时段(610,755.17),结果误差为0.0309%。
结果T_Ph | 610,944 |
正确T_Ph | 610,755.17 |
误差% | 0.0309% |
表4
结果T_Ph | 610,620 |
正确T_Ph | 610,755.17 |
误差% | -0.0221% |
表5
包括图9和图10中所解说的规程的本文所公开的规程提供其中可以使用用于执行数字近似的基本数字电路和/或功能而不使用双精度乘法器和/或除法器来迭代地校正大值同步时段的示例。
处理电路和方法的示例
图11是解说了采用可被配置成执行本文公开的一个或多个功能的处理电路1102的装置1100的硬件实现的示例的示图。根据本公开的各方面,如本文公开的元素、或元素的任何部分、或者元素的任何组合可使用处理电路1102来实现。处理电路1102可包括一个或多个处理器1104,其由硬件和软件模块的某种组合来控制。处理器1104的示例包括微处理器、微控制器、数字信号处理器(DSP)、SoC、ASIC、现场可编程门阵列(FPGA)、可编程逻辑设备(PLD)、状态机、定序器、门控逻辑、分立的硬件电路、以及配置成执行本公开通篇描述的各种功能性的其他合适硬件。一个或多个处理器1104可包括执行特定功能并且可由诸软件模块1116之一来配置、增强或控制的专用处理器。一个或多个处理器1104可通过在初始化期间加载的软件模块1116的组合来配置,并且通过在操作期间加载或卸载一个或多个软件模块1116来进一步配置。
在所解说的示例中,处理电路1102可以用由总线1110一般化地表示的总线架构来实现。取决于处理电路1102的具体应用和总体设计约束,总线1110可包括任何数目的互连总线和桥接器。总线1110将包括一个或多个处理器1104和存储1106的各种电路链接在一起。存储1106可包括存储器设备和大容量存储设备,并且在本文中可被称为计算机可读介质和/或处理器可读介质。总线1110还可链接各种其他电路,诸如定时源、定时器、外围设备、稳压器、和功率管理电路。总线接口1108可提供总线1110与一个或多个收发机1112之间的接口。可针对处理电路所支持的每种联网技术来提供收发机1112。在一些实例中,多种联网技术可共享收发机1112中存在的电路系统或处理模块中的一些或全部。每个收发机1112提供用于通过传输介质与各种其它装置通信的手段。取决于装置1100的本质,也可提供用户接口1118(例如,按键板、显示器、扬声器、话筒、操纵杆),并且该用户接口1110可直接或通过总线接口1108通信地耦合到总线1110。
处理器1104可负责管理总线1110以及负责一般处理,该一般处理可包括对存储在计算机可读介质(其可包括存储1106)中的软件的执行。在这一方面,处理电路1102(包括处理器1104)可被用来实现本文公开的方法、功能和技术中的任一种。存储1106可被用于存储处理器1104在执行软件时操纵的数据,并且该软件可被配置成实现本文公开的方法中的任一种。
处理电路1102中的一个或多个处理器1104可执行软件。软件应当被宽泛地解释成意为指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、可执行件、执行的线程、规程、函数、算法等,无论其是用软件、固件、中间件、微代码、硬件描述语言、还是其他术语来述及皆是如此。软件可按计算机可读形式驻留在存储1106中或驻留在外部计算机可读介质中。外部计算机可读介质和/或存储1106可包括非瞬态计算机可读介质。作为示例,非瞬态计算机可读介质包括磁存储设备(例如,硬盘、软盘、磁条)、光盘(例如,压缩碟(CD)或数字多功能碟(DVD))、智能卡、闪存设备(例如,“闪存驱动器”、卡、棒、或钥匙驱动器)、RAM、ROM、可编程只读存储器(PROM)、可擦式PROM(EPROM)(包括EEPROM)、寄存器、可移动盘、以及用于存储可由计算机访问和读取的软件和/或指令的任何其他合适介质。作为示例,计算机可读介质和/或存储1106还可包括载波、传输线、以及可由计算机访问和读取的用于传送软件和/或指令的任何其他合适介质。计算机可读介质和/或存储1106可驻留在处理电路1102中、在处理器1104中、在处理电路1102外部、或跨包括该处理电路1102在内的多个实体分布。计算机可读介质和/或存储1106可实施在计算机程序产品中。作为示例,计算机程序产品可包括封装材料中的计算机可读介质。本领域技术人员将认识到如何取决于具体应用和加诸于整体系统的总体设计约束来最佳地实现本公开通篇给出的所描述的功能性。
存储1106可以维护以可加载代码段、模块、应用、程序等来维护和/或组织的软件,其在本文中可被称为软件模块1116。每个软件模块1116可包括在安装或加载到处理电路1102上并由一个或多个处理器1104执行时对运行时映像1114作出贡献的指令和数据,该运行时映像1104控制一个或多个处理器1004的操作。在被执行时,某些指令可使得处理电路1102执行根据本文中所描述的某些方法、算法和过程的功能。
一些软件模块1116可在处理电路1102的初始化期间被加载,并且这些软件模块1116可配置处理电路1102以使得能够执行本文公开的各种功能。例如,一些软件模块1116可配置处理器1104的内部设备和/或逻辑电路1122,并且可管理对外部设备(诸如收发机1112、总线接口1108、用户接口1118、定时器、数学协处理器等)的访问。软件模块1116可包括控制程序和/或操作系统,其与中断处理程序和设备驱动器交互并且控制对由处理电路1102提供的各种资源的访问。这些资源可包括存储器、处理时间、对收发机1112的访问、用户接口1118等等。
处理电路1102的一个或多个处理器1104可以是多功能的,由此一些软件模块1116被加载和配置成执行不同功能或相同功能的不同实例。一个或多个处理器1104可以被附加地适配成管理响应于来自例如用户接口1118、收发机1112和设备驱动器的输入而发起的后台任务。为了支持多个功能的执行,该一个或多个处理器1104可被配置成提供多任务环境,由此多个功能中的每个功能按需或按期望实现为由一个或多个处理器1104服务的任务集。在一个示例中,多任务环境可使用分时程序1120来实现,分时程序1120在不同任务之间传递对处理器1104的控制,由此每个任务在完成任何未完结操作之际和/或响应于输入(诸如中断)而将对一个或多个处理器1104的控制返回给分时程序1020。当任务具有对一个或多个处理器1104的控制时,处理电路有效地专用于由与控制方任务相关联的功能所针对的目的。分时程序1120可以包括操作系统、在循环基础上转移控制权的主环路、根据各功能的优先级化来分配对一个或多个处理器1104的控制权的功能、和/或通过将对一个或多个处理器1104的控制权提供给处置功能来对外部事件作出响应的中断驱动式主环路。
图12是可在耦合到主设备的从设备处执行的用于计算传感器定时校正的方法的流程图1200。从设备可以被纳入传感器中或与传感器相关联。
在框1202,从设备可将同步时段确定为在从设备中获取所配置数目的样本时所计数的内部时钟的循环数。
在框1204,从设备可接收定义与观察到通信链路上发生硬件同步事件的时间的偏移的信息,该偏移是在来自主设备的命令中接收到的。
在框1206,从设备可通过以下操作来校正传感器定时:使用第一迭代数字近似基于硬件同步事件和偏移来调节同步时段,而使用与第一迭代数字近似成比例的第二迭代数字近似来调节与样本开始时间相对应的水印时间。样本开始时间可以是由主设备配置用于一个或多个从设备的。
在一个示例中,调节样本之间的时间区间包括分批次减去偏移的倍数。每个批次可以被右移基于以偏移的二进制表示计的比特值的次数。
在各种示例中,样本开始时间是基于硬件同步事件和偏移来确定的。硬件同步事件可以是同步滴答。偏移可以包括延迟时间。定义偏移的信息可以包括分辨率比,该分辨率比被用于计算用来调节样本之间的时间区间的分辨率步长。
在某些示例中,调节时间区间包括:接收当前时间区间和旧时间区间,以及重复一组计算直至当前时间区间与旧时间区间之间的差异小于期望的最大差异。该计算可包括:右移当前时间区间的二进制表示以获得一差值,在当前时间区间大于旧时间区间时,从当前时间区间中减去差值以获得新时间区间,在当前时间区间小于旧时间区间时,向当前时间区间添加差值以获得新时间区间,将当前时间区间存储为旧时间区间,以及将新时间区间存储为当前时间区间。该组计算可以在组合逻辑和/或移位寄存器、加法器和数字比较器中实现。调节时间区间可以包括:接收水印时间,并且该组计算还可以包括右移水印时间的二进制表示以获得水印差,在当前时间区间大于旧时间区间时,从水印时间中减去水印差,以及在当前时间区间小于旧时间区间时,将水印差添加到水印时间。
应理解,所公开的过程中各步骤的具体次序或层次仅是示例性办法的示例。基于设计偏好,应理解这些过程中步骤的具体次序或层次可被重新安排而仍在本公开的范围之内。所附方法权利要求以示例次序呈现各种步骤的要素,且并不意味着被限定于所给出的具体次序或层次。
本领域技术人员将理解,信息和信号可使用各种不同技术和技艺中的任何一者来表示。例如,贯穿上面说明始终可能被述及的数据、指令、命令、信息、信号、比特、码元和码片可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子、或其任何组合来表示。
技术人员将进一步领会,结合本文所公开的各实施例描述的各种说明性逻辑框、模块、电路和算法步骤可被实现为电子硬件、计算机软件、或两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、块、模块、电路、以及步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员可针对每种特定应用以不同方式来实现所描述的功能性,但此类实现决策不应被解读为致使脱离本发明的范围。
提供所公开的实施例的先前描述是为了使本领域任何技术人员皆能制作或使用本发明。对这些实施例的各种修改对本领域技术人员来说将是显而易见的,且本文所定义的普适原理可被应用于其它实施例而不背离本发明的精神或范围。由此,本发明并非旨在被限定于本文中示出的各实施例,而是应被授予与本文中公开的原理和新颖性特征一致的最广的范围。
Claims (26)
1.一种用于计算传感器定时校正的方法,包括:
将同步时段确定为在从设备中获取所配置数目的样本时所计数的内部时钟的循环数;
接收定义与观察到通信链路上发生硬件同步事件的时间的偏移的信息,所述偏移是在来自主设备的命令中接收到的,其中定义所述偏移的所述信息包括分辨率比,所述分辨率比被用于计算用来调节所述同步时段的分辨率步长;以及
通过以下操作来校正传感器定时:使用第一迭代数字近似基于所述硬件同步事件和所述偏移来调节所述同步时段,而使用与所述第一迭代数字近似成比例的第二迭代数字近似来调节与样本开始时间相对应的水印时间,
其中所述样本开始时间是由所述主设备配置用于一个或多个从设备的。
2.如权利要求1所述的方法,其特征在于,调节所述同步时段包括:
在所述从设备处,分批次减去所述偏移的倍数,每个批次被右移基于以所述偏移的二进制表示计的比特值的次数。
3.如权利要求1所述的方法,其特征在于,所述样本开始时间是基于所述硬件同步事件和所述偏移来确定的。
4.如权利要求1所述的方法,其特征在于,所述硬件同步事件包括同步滴答。
5.如权利要求1所述的方法,其特征在于,所述偏移包括延迟时间。
6.如权利要求1所述的方法,其特征在于,调节所述同步时段包括:
由所述从设备在同步电路处接收当前时间区间和旧时间区间;以及
在所述从设备处重复以下操作直至所述当前时间区间与所述旧时间区间之间的差异小于期望的最大差异:
右移所述当前时间区间的二进制表示以获得一差值;
在所述当前时间区间大于所述旧时间区间时,从所述当前时间区间中减去所述差值以获得新时间区间;
在所述当前时间区间小于所述旧时间区间时,向所述当前时间区间添加所述差值以获得所述新时间区间;
将所述当前时间区间存储为所述旧时间区间;以及
将所述新时间区间存储为所述当前时间区间。
7.如权利要求6所述的方法,其特征在于,进一步包括:
在所述同步电路处接收所述水印时间;以及
在所述从设备处重复以下操作直至所述当前时间区间与所述旧时间区间之间的所述差异小于所述期望的最大差异:
右移所述水印时间的二进制表示以获得水印差;
在所述当前时间区间大于所述旧时间区间时,从所述水印时间中减去所述水印差;以及
在所述当前时间区间小于所述旧时间区间时,将所述水印差添加到所述水印时间。
8.一种传感器,包括:
通信收发机,其耦合到串行总线;以及
组合逻辑,其被配置成:
将同步时段确定为在所述传感器中获取所配置数目的样本时所计数的内部时钟的循环数;
接收定义与观察到通信链路上发生硬件同步事件的时间的偏移的信息,所述偏移是在来自主设备的命令中接收到的,其中定义所述偏移的所述信息包括分辨率比,所述分辨率比被用于计算用来调节所述同步时段的分辨率步长;以及
通过以下操作来校正传感器定时:使用第一迭代数字近似基于所述硬件同步事件和所述偏移来调节所述同步时段,而使用与所述第一迭代数字近似成比例的第二迭代数字近似来调节与样本开始时间相对应的水印时间,
其中所述样本开始时间是由所述主设备配置用于一个或多个从设备的。
9.如权利要求8所述的传感器,其特征在于,所述组合逻辑包括:
移位寄存器;以及
减法逻辑,
其中所述移位寄存器和所述减法逻辑被配置成通过分批次减去所述偏移的倍数来调节所述同步时段,每个批次被右移基于以所述偏移的二进制表示计的比特值的次数。
10.如权利要求8所述的传感器,其特征在于,所述样本开始时间是基于所述硬件同步事件和所述偏移来确定的。
11.如权利要求8所述的传感器,其特征在于,所述硬件同步事件包括同步滴答。
12.如权利要求8所述的传感器,其特征在于,所述偏移包括延迟时间。
13.如权利要求8所述的传感器,其特征在于,所述组合逻辑包括一个或多个移位寄存器、一加法器和一减法器,并且所述组合逻辑被配置成通过以下操作来调节所述同步时段:
在同步电路处接收当前时间区间和旧时间区间;以及
重复以下操作直至所述当前时间区间与所述旧时间区间之间的差异小于期望的最大差异:
右移所述当前时间区间的二进制表示以获得一差值;
在所述当前时间区间大于所述旧时间区间时,从所述当前时间区间中减去所述差值以获得新时间区间;
在所述当前时间区间小于所述旧时间区间时,向所述当前时间区间添加所述差值以获得所述新时间区间;
将所述当前时间区间存储为所述旧时间区间;以及
将所述新时间区间存储为所述当前时间区间。
14.如权利要求13所述的传感器,其特征在于,所述组合逻辑被进一步配置成:
在所述同步电路处接收所述水印时间;以及
重复以下操作直至所述当前时间区间与所述旧时间区间之间的所述差异小于所述期望的最大差异:
右移所述水印时间的二进制表示以获得水印差;
在所述当前时间区间大于所述旧时间区间时,从所述水印时间中减去所述水印差;以及
在所述当前时间区间小于所述旧时间区间时,将所述水印差添加到所述水印时间。
15.一种从设备,包括:
用于将同步时段确定为在所述从设备中获取所配置数目的样本时所计数的内部时钟的循环数的装置;
用于接收定义与观察到通信链路上发生硬件同步事件的时间的偏移的信息的装置,所述偏移是在来自主设备的命令中接收到的,其中定义所述偏移的所述信息包括分辨率比,所述分辨率比被用于计算用来调节所述同步时段的分辨率步长;以及
用于基于所述硬件同步事件和所述偏移来校正传感器定时的装置,
其中传感器定时是通过以下操作来调节的:使用第一迭代数字近似基于所述硬件同步事件和所述偏移来调节所述同步时段,而使用与所述第一迭代数字近似成比例的第二迭代数字近似来调节与样本开始时间相对应的水印时间,并且
其中所述样本开始时间是由所述主设备配置用于一个或多个从设备的。
16.如权利要求15所述的从设备,其特征在于,用于校正传感器定时的装置被配置成:
分批次减去所述偏移的倍数,每个批次被右移基于以所述偏移的二进制表示计的比特值的次数。
17.如权利要求15所述的从设备,其特征在于,所述样本开始时间是基于所述硬件同步事件和所述偏移来确定的。
18.如权利要求15所述的从设备,其特征在于,所述硬件同步事件包括同步滴答,并且所述偏移包括延迟时间。
19.如权利要求15所述的从设备,其特征在于,用于校正传感器定时的装置被配置成:
在同步电路处接收当前时间区间和旧时间区间;以及
重复以下操作直至所述当前时间区间与所述旧时间区间之间的差异小于期望的最大差异:
右移所述当前时间区间的二进制表示以获得一差值;
在所述当前时间区间大于所述旧时间区间时,从所述当前时间区间中减去所述差值以获得新时间区间;
在所述当前时间区间小于所述旧时间区间时,向所述当前时间区间添加所述差值以获得所述新时间区间;
将所述当前时间区间存储为所述旧时间区间;以及
将所述新时间区间存储为所述当前时间区间。
20.如权利要求19所述的从设备,其特征在于,用于校正传感器定时的装置进一步被配置成:
在所述同步电路处接收所述水印时间;以及
重复以下操作直至当前时间区间与旧时间区间之间的差异小于期望的最大差异:
右移所述水印时间的二进制表示以获得水印差;
在所述当前时间区间大于所述旧时间区间时,从所述水印时间中减去所述水印差;以及
在所述当前时间区间小于所述旧时间区间时,将所述水印差添加到所述水印时间。
21.一种具有存储在其上的代码的处理器可读存储介质,所述代码在由从设备的处理器执行时使得所述处理器:
将同步时段确定为在所述从设备中获取所配置数目的样本时所计数的内部时钟的循环数;
接收定义与观察到通信链路上发生硬件同步事件的时间的偏移的信息,所述偏移是在来自主设备的命令中接收到的,其中定义所述偏移的所述信息包括分辨率比,所述分辨率比被用于计算用来调节所述同步时段的分辨率步长;以及
通过以下操作来校正传感器定时:使用第一迭代数字近似基于所述硬件同步事件和所述偏移来调节所述同步时段,而使用与所述第一迭代数字近似成比例的第二迭代数字近似来调节与样本开始时间相对应的水印时间,
其中所述样本开始时间是由所述主设备配置用于一个或多个从设备的。
22.如权利要求21所述的存储介质,其特征在于,所述代码使得所述处理器通过以下操作来调节所述同步时段:
分批次减去所述偏移的倍数,每个批次被右移基于以所述偏移的二进制表示计的比特值的次数。
23.如权利要求21所述的存储介质,其特征在于,所述样本开始时间是基于所述硬件同步事件和所述偏移来确定的。
24.如权利要求21所述的存储介质,其特征在于,所述硬件同步事件包括同步滴答,并且所述偏移包括延迟时间。
25.如权利要求21所述的存储介质,其特征在于,所述代码使得所述处理器通过以下操作来调节所述同步时段:
在同步电路处接收当前时间区间和旧时间区间;以及
重复以下操作直至所述当前时间区间与所述旧时间区间之间的差异小于期望的最大差异:
右移所述当前时间区间的二进制表示以获得一差值;
在所述当前时间区间大于所述旧时间区间时,从所述当前时间区间中减去所述差值以获得新时间区间;
在所述当前时间区间小于所述旧时间区间时,向所述当前时间区间添加所述差值以获得所述新时间区间;
将所述当前时间区间存储为所述旧时间区间;以及
将所述新时间区间存储为所述当前时间区间。
26.如权利要求25所述的存储介质,其特征在于,所述代码使得所述处理器通过以下操作来计算所述水印时间:
在所述同步电路处接收所述水印时间;以及
重复以下操作直至当前时间区间与旧时间区间之间的差异小于期望的最大差异:
右移所述水印时间的二进制表示以获得水印差;
在所述当前时间区间大于所述旧时间区间时,从所述水印时间中减去所述水印差;以及
在所述当前时间区间小于所述旧时间区间时,将所述水印差添加到所述水印时间。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762532553P | 2017-07-14 | 2017-07-14 | |
US62/532,553 | 2017-07-14 | ||
US16/025,863 US10707984B2 (en) | 2017-07-14 | 2018-07-02 | Techniques for synchronizing slave devices |
US16/025,863 | 2018-07-02 | ||
PCT/US2018/040705 WO2019014018A1 (en) | 2017-07-14 | 2018-07-03 | SYNCHRONIZATION TECHNIQUES OF SLAVE DEVICES |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110870229A CN110870229A (zh) | 2020-03-06 |
CN110870229B true CN110870229B (zh) | 2021-10-29 |
Family
ID=64999721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880046406.XA Active CN110870229B (zh) | 2017-07-14 | 2018-07-03 | 用于使从设备同步的技术 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10707984B2 (zh) |
CN (1) | CN110870229B (zh) |
WO (1) | WO2019014018A1 (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10079650B2 (en) | 2015-12-04 | 2018-09-18 | Infineon Technologies Ag | Robust high speed sensor interface for remote sensors |
US10142196B1 (en) * | 2016-04-15 | 2018-11-27 | Senseware, Inc. | System, method, and apparatus for bridge interface communication |
CN108521474B (zh) * | 2018-03-30 | 2021-05-25 | 青岛海尔空调电子有限公司 | 多联式控制系统的地址竞争方法 |
US10750452B2 (en) * | 2018-05-17 | 2020-08-18 | Avago Technologies International Sales Pte. Limited | Ultralow-power sensor hubs |
US11030133B2 (en) * | 2018-08-30 | 2021-06-08 | Qualcomm Incorporated | Aggregated in-band interrupt based on responses from slave devices on a serial data bus line |
JP7107393B2 (ja) * | 2019-01-16 | 2022-07-27 | 日本電気株式会社 | モニタリングシステム、および同期方法 |
CN113383325A (zh) * | 2019-04-26 | 2021-09-10 | 西门子股份公司 | 数据获取系统和方法 |
US11194386B1 (en) * | 2019-05-22 | 2021-12-07 | Facebook Technologies, Llc | Artificial reality wearable magnetic sensor system for body pose tracking |
US11169585B2 (en) * | 2019-08-16 | 2021-11-09 | Apple Inc. | Dashboard with push model for receiving sensor data |
CN110753313A (zh) * | 2019-10-30 | 2020-02-04 | 深圳市道通智能航空技术有限公司 | 一种数据同步方法和系统 |
US11025357B1 (en) * | 2019-12-19 | 2021-06-01 | Stmicroelectronics, Inc. | Robust sensor timestamp management |
CN111309094A (zh) * | 2020-02-06 | 2020-06-19 | 上海图趣信息科技有限公司 | 一种传感器设备采集数据的同步板卡及方法 |
CN111446890B (zh) * | 2020-03-25 | 2022-02-11 | 武汉迈信电气技术有限公司 | 一种具有电流检测功能的编码器及电流检测方法 |
CN111683346B (zh) * | 2020-04-29 | 2023-07-25 | 深圳星普森信息技术有限公司 | 一种基于蓝牙散射组网的多采集点时间同步修正的方法及系统 |
US11356240B2 (en) * | 2020-05-05 | 2022-06-07 | Maged E. Beshai | Time alignment of access nodes to optical distributors of a global network |
US11800476B2 (en) * | 2020-06-02 | 2023-10-24 | Analog Devices International Unlimited Company | Wireless BMS host time synchronization mechanism |
CN111897394B (zh) * | 2020-06-28 | 2022-08-05 | 北京凌宇智控科技有限公司 | 一种设备配对方法、配对设备及设备配对系统 |
DE102020120840A1 (de) * | 2020-08-07 | 2022-02-10 | Dspace Digital Signal Processing And Control Engineering Gmbh | Computerimplementiertes Verfahren zur latenzarmen Erzeugung und Einspeisung von Sensordaten in ein Steuergerät oder in Steuergeräteverbünde |
CN111935691B (zh) * | 2020-08-12 | 2024-01-16 | 深圳市蓝信物联科技有限公司 | 一种无线低功耗配置方法与装置 |
CN113014352B (zh) * | 2021-05-21 | 2021-09-14 | 北京国科天迅科技有限公司 | 一种基于光纤通道协议的设备时间同步方法及装置 |
JP7520768B2 (ja) * | 2021-05-26 | 2024-07-23 | 株式会社東芝 | 通信システム、通信方法、通信装置およびプログラム |
CN113890664B (zh) * | 2021-09-24 | 2024-01-30 | 锐盟(深圳)医疗科技有限公司 | 体域网内数据同步方法、检测终端及计算机可读存储介质 |
CN114364010B (zh) * | 2021-12-10 | 2023-10-27 | 深圳市汇顶科技股份有限公司 | 同步关系建立方法、芯片、电子设备及存储介质 |
US11696243B1 (en) * | 2021-12-28 | 2023-07-04 | Texas Instruments Incorporated | Methods to improve connectionless reception window widening |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6346911B1 (en) * | 2000-03-30 | 2002-02-12 | Motorola, Inc. | Method and apparatus for determining time in a GPS receiver |
US7388886B2 (en) * | 2003-04-16 | 2008-06-17 | Motorola, Inc. | Method and device for distributing communication signals |
US9106353B2 (en) | 2011-12-13 | 2015-08-11 | Jds Uniphase Corporation | Time synchronization for network testing equipment |
DE102012207138A1 (de) | 2012-04-27 | 2013-10-31 | Robert Bosch Gmbh | Sensorzeit-Synchronisation |
US20170041897A1 (en) | 2013-11-12 | 2017-02-09 | Qualcomm Incorporated | Apparatus and methods for synchronizing a controller and sensors |
US9436214B2 (en) * | 2013-11-12 | 2016-09-06 | Qualcomm Incorporated | System and methods of reducing energy consumption by synchronizing sensors |
US9781055B2 (en) * | 2014-08-18 | 2017-10-03 | Cisco Technology, Inc. | Dynamic cascaded clustering for dynamic VNF |
KR101550552B1 (ko) | 2014-09-19 | 2015-09-07 | 성균관대학교산학협력단 | 시간 동기화 주기를 조절할 수 있는 시간 동기화 슬레이브 장치 및 시간 동기화 주기 결정 방법 |
US9806876B2 (en) * | 2015-03-30 | 2017-10-31 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for compensating synchronization timing in a distributed timing network |
US9924245B2 (en) | 2015-05-06 | 2018-03-20 | Crystal Instruments Corporation | Synchronized measurement device using local area network with ethernet messaging |
JP6458673B2 (ja) | 2015-07-29 | 2019-01-30 | 株式会社デンソー | 通信システム |
US9579025B1 (en) | 2015-08-14 | 2017-02-28 | The United States Of America, As Represented By The Secretary Of The Navy | Timestamp-free synchronization for wireless body area networks |
EP3365994A1 (en) | 2015-10-23 | 2018-08-29 | QUALCOMM Incorporated | Apparatus and methods for synchronizing a controller and sensors |
EP3365746A2 (en) * | 2015-10-23 | 2018-08-29 | QUALCOMM Incorporated | Apparatus and methods for synchronizing a controller and sensors |
-
2018
- 2018-07-02 US US16/025,863 patent/US10707984B2/en not_active Expired - Fee Related
- 2018-07-03 WO PCT/US2018/040705 patent/WO2019014018A1/en active Application Filing
- 2018-07-03 CN CN201880046406.XA patent/CN110870229B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US20190020433A1 (en) | 2019-01-17 |
US10707984B2 (en) | 2020-07-07 |
WO2019014018A1 (en) | 2019-01-17 |
CN110870229A (zh) | 2020-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110870229B (zh) | 用于使从设备同步的技术 | |
US20170041897A1 (en) | Apparatus and methods for synchronizing a controller and sensors | |
CA3000011A1 (en) | Apparatus and methods for synchronizing a controller and sensors | |
US10863469B2 (en) | System and method for accurate timestamping of virtual reality controller data | |
JP2018534686A (ja) | コントローラおよびセンサを同期するための装置および方法 | |
US20170041688A1 (en) | Apparatus and methods for timestamping in a system synchronizing controller and sensors | |
US20160370845A1 (en) | System and methods of reducing energy consumption by synchronizing sensors | |
US20180224887A1 (en) | Apparatus and method for asynchronous event timestamping | |
US20200019517A1 (en) | Wireless communication with peripheral device | |
EP3593572B1 (en) | Remote signal synchronization | |
CN110800246A (zh) | 通信系统、主装置及从装置 | |
CN102638339B (zh) | 一种用于实现精确时间同步的方法和装置 | |
EP2990886B1 (en) | Time synchronization system | |
CN105578586B (zh) | 一种同步定时装置及方法 | |
JP2020048152A (ja) | 無線センサ装置および無線センサシステム | |
CN112602031B (zh) | 系统间的精确定时 | |
CN109960187A (zh) | 具有可调整发光频率功能的电子装置、电脑系统以及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |