CN111343228B - 用于异步通信系统的分布式时间同步协议 - Google Patents
用于异步通信系统的分布式时间同步协议 Download PDFInfo
- Publication number
- CN111343228B CN111343228B CN201911307935.3A CN201911307935A CN111343228B CN 111343228 B CN111343228 B CN 111343228B CN 201911307935 A CN201911307935 A CN 201911307935A CN 111343228 B CN111343228 B CN 111343228B
- Authority
- CN
- China
- Prior art keywords
- master node
- bus
- packet
- slave
- node
- 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
- 230000006854 communication Effects 0.000 title claims abstract description 100
- 238000004891 communication Methods 0.000 title claims abstract description 100
- 230000005540 biological transmission Effects 0.000 claims abstract description 64
- 238000000034 method Methods 0.000 claims description 77
- 230000007704 transition Effects 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 15
- 230000007175 bidirectional communication Effects 0.000 claims description 6
- 238000012546 transfer Methods 0.000 description 36
- 239000000872 buffer Substances 0.000 description 13
- 230000004044 response Effects 0.000 description 12
- 230000000694 effects Effects 0.000 description 10
- 230000001934 delay Effects 0.000 description 7
- 230000001276 controlling effect Effects 0.000 description 6
- 230000015654 memory Effects 0.000 description 6
- 238000012937 correction Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000000875 corresponding effect Effects 0.000 description 4
- 235000019801 trisodium phosphate Nutrition 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000003750 conditioning effect Effects 0.000 description 2
- 238000010924 continuous production Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/0016—Arrangements for synchronising receiver with transmitter correction of synchronization errors
- H04L7/0033—Correction by delay
- H04L7/0041—Delay of data signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/403—Bus networks with centralised control, e.g. polling
-
- 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/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B7/00—Radio transmission systems, i.e. using radiation field
- H04B7/24—Radio transmission systems, i.e. using radiation field for communication between two or more posts
- H04B7/26—Radio transmission systems, i.e. using radiation field for communication between two or more posts at least one of which is mobile
- H04B7/2662—Arrangements for Wireless System 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/10—Protocols in which an application is distributed across nodes in the network
-
- 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/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Abstract
提供了一种分布式采集系统的主节点。所述主节点包括用于在控制部件与总线和所述控制部件之间对接的通信接口。所述总线联接到分布在所述采集系统中的一个或多个从节点。所述控制部件被配置为:获取提供包间隔的定义的配置,其中所述包间隔定义提供足够的时序余量以确保由所述主节点和所述一个或多个从节点传输的通信包仅在所述包间隔定义的谐波处出现;基于所述包间隔定义经由所述总线将所述通信包的时间基准包分配到所述分布式采集系统的所有所述从节点;以及基于所述包间隔定义来调度由所述主节点经由所述总线向一个或多个选定的从节点传输的通信包的传输。
Description
发明背景
1.发明领域
本公开涉及一种用于异步通信系统的协议,并且更具体地,涉及一种用于异步通信系统的分布式时间同步协议。
2.相关技术的描述
分布式采集系统执行远程数据采集和处理。可以经由一个或多个通信链路将获取或处理的信息传送到处理部件以进行聚合、分析、数据存储和/或报告。
对于某些操作模式,数据采集需要在一组分布式从装置之间高度相关。为了实现这个需要,经常采用主机生成的时间同步脉冲,其中脉冲转变表示每个从机的时间基准。
同步脉冲是经由专用于时间同步的独立物理链路递送的,从而增加成本和重量。此外,由于各种电缆长度引起的从装置之间的传播延迟的差异增加时序误差,这可能使系统性能降级。
尽管通常认为常规方法和系统对于他们的预期目的是令人满意的,但是在本领域中仍然需要用于异步通信系统的改进的分布式时间同步协议。
发明内容
下文描述的所示实施方案的目的和优点将在以下描述中进行阐述并且从以下描述显而易见。所示实施方案的额外优点将通过书面说明书及其权利要求以及附图中特别指出的装置、系统和方法实现和获得。
为了实现这些和其他优点并且根据所示实施方案的目的,在一个方面,提供了一种分布式采集系统的主节点。所述主节点包括用于在控制部件与总线和所述控制部件之间对接的通信接口。所述总线联接到分布在所述采集系统中的一个或多个从节点。所述控制部件被配置为:获取提供包间隔的定义的配置,其中所述包间隔定义提供足够的时序余量以确保由所述主节点和所述一个或多个从节点传输的通信包仅在所述包间隔定义的谐波处出现;基于所述包间隔定义经由所述总线将所述通信包的时间基准包分配到所述分布式采集系统的所有所述从节点;以及基于所述包间隔定义来调度由所述主节点经由所述总线向一个或多个选定的从节点传输的通信包的传输。
根据本公开的其他方面,提供了一种同步分布式采集系统的主节点与一个或多个从节点之间的通信的方法。所述方法包括:获取提供包间隔的定义的配置,其中所述包间隔定义提供足够的时序余量以确保由所述主节点和所述一个或多个从节点传输的通信包仅在所述包间隔定义的谐波处出现;基于所述包间隔定义经由所述总线将所述通信包的时间基准包分配到所述分布式采集系统的所有所述从节点;以及基于所述包间隔定义来调度由所述主节点经由所述总线向一个或多个选定的从节点传输的通信包的传输。
根据本公开的另一方面,提供了一种分布式采集系统的主节点的控制部件。所述控制部件包括处理装置,所述处理装置被配置为:获取提供包间隔的定义的配置,其中所述包间隔定义提供足够的时序余量以确保由所述主节点和所述一个或多个从节点传输的通信包仅在所述包间隔定义的谐波处出现;基于所述包间隔定义经由所述总线将所述通信包的时间基准包分配到所述分布式采集系统的所有所述从节点;以及基于所述包间隔定义调度由所述主节点经由所述总线向一个或多个选定的从节点传输的通信包的传输。
根据结合附图进行的优选实施方案的以下详细描述,本主题公开的系统和方法的这些和其他特征对于本领域技术人员来说将变得更易于显而易见。
附图说明
为了使本主题公开所属领域的技术人员将易于在没有过度实验的情况下理解如何制造和使用本主题公开的装置和方法,下文中将参考某些图式详细描述本主题公开的优选实施方案,图中:
图1是根据本公开的实施方案的示例性分布式数据采集系统通信拓扑的示意图;
图2是根据本公开的实施方案的由分布式数据采集系统的节点使用的示例性计算机系统的框图;
图3A是示出根据本公开的实施方案的由分布式数据采集系统中的主节点执行的用于与一个或多个从节点通信的实例方法的流程图;
图3B是示出根据本公开的实施方案的由分布式数据采集系统中的从节点执行的用于与主节点通信的实例方法的流程图;
图4是示出根据本公开的实施方案的由分布式数据采集系统的从节点执行的用于实施实例时间同步协议校正逻辑的实例方法的流程图;
图5是示出根据本公开的实施方案的由分布式数据采集系统的从节点执行的用于实施实例时间同步协议功能逻辑的实例方法的流程图;
图6是示出根据本公开的实施方案的由分布式数据采集系统的主节点执行的用于实施实例时间同步协议功能逻辑的实例方法的流程图;
图7是示出根据本公开的实施方案的由分布式数据采集系统的主节点执行的用于实施输出生成逻辑的实例方法的流程图;
图8是示出根据本公开的实施方案的由分布式数据采集系统的主节点执行的用于实施总线控制逻辑的实例方法的流程图;以及
图9示出了根据本公开的实施方案的由主节点执行的用于实施传播延迟校正逻辑的实例方法的流程图900。
具体实施方式
控制通信总线上的总线活动,其中通信包的时序在可配置的包间隔的谐波处出现。包间隔是主机和从机都知道的可配置值。作为系统设置的一部分,利用通信参数数据项(PDI)来更新主节点和从节点的非易失性存储器,所述PDI包含可配置的参数:最大有效负载大小、波特率和包间隔。复位时,节点使用这些参数来控制通信行为。包间隔适用于MOSI通道和MISO通道活动。
通信包本身的开始可以用作在一组从节点之间实现时间同步的参考时间。数据传送被划分成适合于可配置的包间隔(包括时序余量)内的包。最大包有效负载大小和通信波特率是定义任何包的最大预期传输时间的可配置的参数。时序余量适应误差源,诸如波特率差异和字符间间隙时间。选择包间隔以平衡同步和通信考虑。由于时钟差异,从装置之间的数据采集时序可能随时间漂移。包间隔需要足够频繁地出现以校正该误差。通信协议开销影响数据传送时间。包间隔需要考虑足够的带宽利用率。
根据本公开的其他方面,提供了一种同步分布式采集系统的主节点与一个或多个从节点之间的通信的方法。所述方法包括定义包间隔、最大有效负载大小和波特率,其提供足够的时序余量以确保通信包可以在包间隔的每个谐波处出现。通过适当的选择,这些参数确保通信活动具有确定性。另外,所述方法包括用于基于包间隔来管理总线所有权的可配置的规定。主节点生成输出包,所有从节点都接收并有条件地消耗所述输出包,并有条件地使用所述输出包来基于包的开始更新时间同步。如果包是有效的,并且包源地址通过指示主机生成包的特定地址准则,则所有从节点都使用所述包来更新时间同步。此外,如果包目的地地址通过指示包打算用于从节点的特定地址准则,并且包内容与通道数据匹配,则特定从节点消耗任何包有效负载并调度任何适当的从机输出包。通道数据由端口号、数据偏移和事务标识(ID)组成。端口号管理独立的数据传送、方向和优先级。数据偏移管理数据顺序。事务ID有助于区分特定事务并确保数据完整性,尤其是多个数据传送在多个通道上挂起或在活动中的情况下。匹配的通道数据指示已为给定数据事务对数据传送排序。基于主机输出包,一个且只有一个从节点被授予总线访问。从机总线访问需要受到限制,使得以最小速率更新时间同步,最小速率取决于主节点总线所有权。该协议使用总线控制参数以在可配置数量的包间隔内转移总线所有权。从节点从下一个包间隔开始输出数据持续随后的一组包间隔,所述一组包间隔限于由主节点指定的总线控制号。利用这种方法,以确定性方式管理时间同步更新和带宽利用率。该协议处置所有排列。如果到达数据传送的末尾,则从节点尽早将总线所有权转移回主节点。该协议包括规定数据顺序和完整性检查,从而允许主节点从通信错误中恢复。
根据本公开的另一方面,提供了一种分布式采集系统的主节点的控制部件。所述控制部件包括处理装置,所述处理装置被配置为捕获相对于主节点的同步时间的来自每个从节点的通信包输入的开始时间,所述同步时间被定义为包间隔的当前谐波。基于时间差,主节点确定从机特定的传播延迟。主节点将该信息提供给每个从节点,使得可以校正从节点数据采集时序以适应传播延迟,并且还在任何将来的从机到主机通信包中反映从节点数据采集时序。利用这种方法,可以将分布式采集系统的时间同步误差降低到可忽略的水平。
现在将参考附图,其中相同的附图标记识别主题公开的类似的结构特征或方面。出于解释和说明而非限制的目的,在图1中示出了并且大体上用参考符号100标明根据本公开的第一实施方案的异步采集系统的示例性实施方案的框图。采集系统100包括经由总线106通信的主节点102和一个或多个分布式从节点104。总线106可以是半双工多点2线物理链路,其中主节点102联接到总线106的第一端,而从节点104联接到总线106的多点的第二端。在一个实例中,总线106是RS-485物理层,其在带有信号终止电阻的双绞线上使用差分信令来支持在噪声环境中的有效的长距离通信。三态逻辑允许禁用驱动器以支持多点通信。RS-485物理层驱动器和接收器与定义数据链路层的时序和成帧方案的通用异步接收器发射器(UART)对接。移位寄存器用于执行并行到串行的转换以按顺序方式输出各个位,并执行串行到并行的转换以对输入位进行缓冲。主节点102可以与一个或多个选定的从节点104通信或向所有从节点104广播。
采集系统100可以执行远程数据采集和处理。例如,从节点104可以是采集节点,其感测物理特性并将感测到的数据传输到主节点102以进行聚合、分析、数据存储和/或报告。主节点102发起所有总线事务。对于某些事务,主节点102在指定的时间段内将总线所有权转移到选定的从节点104。
在某些应用中,数据采集需要在一组分布式从节点104之间高度相关。为了实现这个需要,某些采集系统已使用由主节点生成的同步脉冲以用作从节点的时间基准。然而,这具有缺点,诸如使用专用于时间同步的独立物理链路,这会增加这种数据采集系统的成本和重量,并且数据的传输受到传播延迟的影响,所述传播延迟可能影响聚合数据的一致性。
在采集系统100中,总线106本身用于适应数据传送和时间同步,这由各自采用协议逻辑的主节点102和从节点104实现。协议逻辑消除了对用于时间同步的独立物理链路的需要,从而降低成本和重量。协议逻辑还允许传播延迟由主节点102测量并传送到从节点104,使得从节点104可以补偿传播延迟,以减小从装置104之间的时间同步误差。
采集系统100可以使用建立的时间同步协议(TSP),TSP是基于用于通信系统的开放系统互连(OSI)模型的组合的网络和传输层协议。TSP使用确认和错误检查来实现可靠的传输。TSP还使用分段、多路复用和总线所有权逻辑来平衡数据优先级、数据等待时间、数据传送效率和时间同步考虑。在TSP中,数据被封装在一系列数据包内,每个数据包都具有有效负载部分。TSP还使用报头和报尾来管理和路由数据传送。称为控制包的某些包不包含有效负载部分。
TSP数据传送被映射到特定的通道,以适应数据优先级和数据方向考虑。该协议定义两个优先级,高和低。高优先级数据传送基于总线管理逻辑而在特定时间抢先于低优先级数据传送。高优先级传送适用于控制和状态信息。低优先级传送适用于文件传送。每个通道由两个端口,一个输出端口和一个输入端口组成,所述端口指示包有效负载中包含的会话数据流。方向被指定为主机输出从机输入(MOSI)或主机输入从机输出(MISO)。对于MOSI通道,仅主节点102生成包含有效负载的数据包。相反,对于MISO通道,仅从节点104生成包含有效负载的数据包。对于MOSI通道和MISO通道两者,可以生成不包含有效负载的控制包。控制包不传送会话数据;它们仅在控制数据传送本身时补充数据包。包报头包含限定通道的端口号参数。主节点可以使用主机输出/从机输入(MOSI)通道来将主机包的会话数据传输从主节点102发送到从节点104中的一个或多个,以传送数据(写入操作)或触发从机数据的缓冲以供输出(读取操作的前半部分)。使用MOSI通道,主节点102还可以使用数据包或控制包来向特定从节点104请求数据传送的状态。作为响应,特定从节点104使用控制包来确认会话数据传送的进度,以允许主节点102从可能的通信错误中恢复。主节点可以使用主机输入/从机输出(MISO)通道来请求从节点使用控制包输出缓冲的会话数据(读取操作的后半部分)。作为响应,如果数据可用,则从节点104生成包含所请求的会话数据的数据包。如果数据不可用,则从节点104生成控制包以指示该可能性。每个通道都有指派的优先级以用于控制总线活动。如果主节点已将总线所有权转移到特定的从节点,则主机评估任何输入以确定从节点是否已将总线所有权转移回主节点。另外,主机使用超时来处置可能的通信错误以夺回总线的所有权。
在实例应用中,主节点102是从节点104的网络或子网的控制器或主机。从节点104可以包括感测元件,所述感测元件感测其中部署了所述感测元件的系统的物理特性。响应于感测,感测元件可以输出感测到的数据,所述感测到的数据可以在从节点104的缓冲区中缓冲。在诸如交通工具(诸如飞机)的健康监测的应用中,不限于特定应用,从节点104可以通过其感测元件以快速速率获取感测到的数据。感测到的数据可以由主节点104分析以对感测到的状况进行地理定位。在这类应用中,从节点104需要被同步以便适应高速感测到的数据的相关性。
参考图2,示出了实例节点200的框图,其提供了主节点102和从节点104的实例配置。节点200仅仅是合适的系统的一个实例并且不旨在提出关于本文中描述的公开内容的实施方案的用途或功能的范围的任何限制。节点200可以使用硬件、软件和/或固件实施。无论如何,节点200能够如本公开中所阐述被实施和/或执行功能。
示出了呈通用计算装置的形式的节点200。节点200包括处理装置202、存储器204、可以与外部部件220以及任选地与内部部件208通信的输入/输出(I/O)接口(I/F)206。
处理装置202可以是例如可编程逻辑装置(PLD)、微处理器、数字信号处理器(DSP)、微控制器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或具有类似的处理能力的其他离散或集成的逻辑电路。
处理装置202和存储器204可以包括在提供在例如FPGA、ASIC、微控制器或微处理器中的部件中。存储器204可以包括例如易失性和非易失性存储器以用于暂时地或长期地存储数据,并用于存储可由处理装置202执行的可编程指令。
I/O I/F 208可以通信地联接到总线106。另外,I/O I/F 108可以包括例如经由连接器、近频通信以及有线或无线通信联接到一个或多个外部部件220、外部感测元件、键盘、指示装置、显示器、另一计算装置和/或局域网或广域网(诸如因特网)的接口。例如,从节点104可以经由I/O I/F 206联接到总线106,并且可能联接到外部感测元件。主节点102可以经由I/O I/F 206联接到总线106,并且可能联接到远程数据库以上传从从节点102接收的数据。
对于从节点104,内部部件208可以包括例如感测元件、模/数(A/D)转换器和/或信号调节(SC)电路。感测元件可以感测例如其环境的物理特性,诸如温度、振动、速度、加速度、位移、湿度、压力或其他特性。感测元件可以是模拟的或数字的,并且可以具有执行模/数转换、一些信号调节和/或一些预处理的能力。
参考采集系统100的操作,采集系统100所使用的TSP时序由可配置数据(有效负载大小、波特率和包间隔)确定。有效负载大小是每个包允许的有效负载的最大字节数。该值限制传输包的预期时间。波特率以每秒的符号数来定义通信速度。对于基于UART的通信,符号包括数据位以及开销位,诸如起始位和停止位。最大包有效负载大小和波特率限定任何包的最大预期传输时间。
包间隔定义从主节点102到从节点104或从从节点104到主节点102的连续包之间的时间。控制总线活动,其中通信包的时序在可配置包间隔的谐波处出现。以这种方式,主机的输出通信包本身的开始可以用作实现一组从节点之间的时间同步的参考时间。
数据传送被划分成适合于可配置的包间隔(包括时序余量)内的包。时序余量适应误差源,诸如波特率差异和字符间间隙时间。另外,当对总线的控制在主节点或从节点到主节点和从节点中的另一者之间转变时,时序余量适应处理延迟。
作为实例,在TSP协议开销为20字节,并且UART配置为每字节10个符号(1个起始位、8个数据位、1个停止位),并且时序余量为40us的情况下,可以如下选择可配置参数:最大有效负载大小为460字节,波特率为5Mbaud,包间隔为1ms。
波特率误差可能是由于主机与从机之间的时钟差异引起的。时序余量适应这些波特率误差。
UART字符间间隙时间被定义为一个包内的停止位与随后的起始位之间的时间。它可能是显著时序变化的来源。然而,利用诸如先进先出(FIFO)存储器接口的硬件缓冲机制,预期UART字符间间隙时间为零。当将字节传送到UART时,产生者可以轻松避免下溢情况,只要对数据进行缓冲,UART将生成连续输出。利用这一知识,包可以由主节点102以周期性确定性的包间隔传输,这是因为包间隔推断出确定性总线活动并且促进用于与UART硬件对接的确定性行为。然而,对于主节点102来说,优良做法是在将新包写入到其输出端口(这触发总线106上的传输)之前检查UART接口(FIFO或移位寄存器)是空的。如果已超过包间隔(由UART接口不为空指示),则应在下一间隔开始时发送传输。
在对总线的控制从主节点102到从节点104中的一者或从从节点104中的一者到主节点102之间转变时的延迟归因于过滤和验证包内容是否打算用于接收器的时间。过滤可以是使用寻址方案来确定传输是否打算用于接收器的过程。验证可以是评估接收的传输的内容并将内容与锁存的通道数据进行比较的过程。包间隔可以用于:a)限定将由主节点102用于生成所有主机输出包的时序,b)限定由从节点104用于生成所有从机输出包的时序,c)同步从节点104以用于数据采集,d)控制总线106的所有权,和/或e)使主节点102能够确定从节点104的传播延迟,以便利用从节点104生成的输出中反映的反馈来校正数据采集时序。
关于限定主节点102用来传输包的时序,主节点102控制其输出以在包间隔的谐波处开始。这意味着主机包的所有开始时间都是包间隔的倍数。
关于限定从节点104用于传输包的时序,每个从节点104捕获所有主节点102包的开始时间,并且将其输出调度为与包间隔的后续谐波一致,包间隔的后续谐波相对于所捕获的开始时间偏移从机特定的传播延迟。
关于在从装置104之间提供同步,从节点104使用所有主节点102包的所捕获的开始时间来触发数据采集同步事件以与包间隔的后续谐波一致,包间隔的后续谐波相对于所捕获的开始时间偏移从机特定的传播延迟。
从节点104的同步是可选的协议特征,其取决于主节点102的能力和个别从节点执行同步的能力。该协议不会基于节点类型的混合或同步能力而中断。一些从节点104可以使其数据采集和/或其输出包同步,而其他从节点104可能不具有该能力。
当支持时间同步时,从节点104调度其输出以在计算出的同步时间(也称为同步时间)开始。主节点102预期在其包间隔的谐波处开始接收包,包间隔偏移从机到主机传播延迟(往返传播延迟的一半)。为了实现该时序,从节点104对接收到的主机输出包的开始加时间戳,并通过增加包间隔并减去主机到从机传播延迟来计算用于输出响应输出包的开始时间。传播延迟由主节点102针对个别从机进行测量,并传送到相应的从节点104。包间隔限定连续主机包开始时间与从机包开始时间之间的基本时间,这意味着所有主机包和所有从机包都在包间隔的倍数输出,其中同步在任一从节点104接收到任一主机包时提供。
当不支持时间同步时,从节点104的输出紧接在包布置之后开始,这被限制为最小和最大延迟时间。对于从节点104的连续数据传送,在从节点104的第一个输出开始之后,将从节点104的输出调度为包间隔的倍数。在实施方案中,包间隔限制主节点102的最后一个包结束时间与从节点104的第一个包开始时间之间的时间。最大延迟是(1.n×包间隔),其对应于软件实现方式,其中n被选择为适应在包间隔处为通信接口提供n%的余量。在实施方案中,n=2。最小延迟对应于固件实现方式,取决于物理配置,例如10μs的延迟。
关于控制总线所有权,主节点102可以在有限的时间段内使用包间隔来控制总线所有权到从节点104的转移,以确认对传输的接收或响应于来自主节点102的请求而发送数据。在包含在包报头内的包总线控制值中反映的对总线所有权的这种控制限定从节点104可以使用总线(例如,就包来说)的持续时间。从从节点104的角度来看,主节点102限定对总线106的控制,而从节点104只是按照主节点102的指示进行操作。在将总线106的所有权转移到从节点104之后,在从节点104指示其输出已完成或从节点的控制期满之后(以先发生者为准),主节点102收回总线所有权。从节点104通过使用包报头内包含的相同的包总线控制值将总线所有权转移回主节点102。当布置来自从节点104的输入包时,主节点102基于该值而更新总线所有权。在主节点102收回总线所有权之后,它可以在下一可用的包间隔处输出其下一传输。
对于从节点104,如果在对总线106的控制被转移到从机104的时间段内发生了使从节点的传输延迟的意外事件,则当从节点独立于由主节点104提供的控制时段输出其下一传输时,总线所有权被放弃回到主节点104。主节点102还可以使用超时来从从节点104接收输入,以适应诸如情形或其他通信错误。
可以通过在从主节点102到从节点104的传输中设置总线控制值来执行总线所有权的转移。限制在0与255之间的8位总线控制值指示允许从节点104生成输出的连续包间隔的数量。一旦接收到非零总线控制值,从节点104就使输出包启用对应于总线控制值的计数。由于在从节点104拥有总线106时不可能进行时间同步更新,因此在选择最大允许的总线控制值时需要考虑时序误差和带宽利用率。从节点104使用8位总线控制值,但是允许的值是0或1。如果从节点104具有总线106的所有权,则从节点104在总线控制值是1时将总线所有权转移回主节点102,并且在总线控制值是0的情况下保留总线所有权。
当主节点102诸如通过向从节点104请求状态或请求获取的数据而将总线所有权转移到特定从节点104时,从节点104在支持时间同步时将其第一输出调度为在下一同步时间开始,或在不支持时间同步时将其第一输出调度为紧接在包布置之后开始。
关于传播延迟的确定,当通过捕获时间基准并基于包间隔预测下一同步时间来使从节点104的输出与主节点102的输出同步时,主节点102能够测量到该从节点104的传播延迟。然后,主节点102可以向从节点104报告传播延迟。然后,从节点104可以使用传播延迟来补偿其传输的时序,从而减少可能干扰从节点104之间的同步或从节点104与主节点102之间的同步的时序误差。
在实施方案中,可以将约束应用于TSP时序的可配置数据,以便满足设计考虑,诸如有效负载、波特率和包间隔及其允许的分辨率中的每一者的最小和最大值以及分辨率值。例如,包间隔的分辨率可以是同步事件,其中同步事件是数据采集活动(诸如,切换缓冲区)的特定于设计的时序。基于硬件时钟限制、收发器能力和信号完整性考虑,波特率可以覆盖目标数据速率范围。最大有效负载约束可以允许某种灵活性来平衡开销、带宽利用率和包缓冲区大小。4字节的倍数可以简化循环冗余校验(CRC)计算。此外,可以提供适应时序变化的时序余量约束。
关于主节点102的操作,主节点102将传输发送到从节点104,其中每个传输的开始以包间隔的倍数间隔开。主节点102控制总线106的所有权,除非总线106已经向从节点104发送对状态或指定数据的请求,否则允许总线106仅用于主节点的传输。主节点102允许从节点104在指定数量的间隔内控制总线106以用所请求的数据回复,之后主节点102恢复对总线106的控制。在实施方案中,主节点102可以等待从节点的响应,从而允许响应跨越指定数量的间隔。在发生通信错误的情况下,主节点102可以应用超时特征来恢复其对总线106的控制。
当应用同步时,主节点102可以将请求确认的主机包传输到从节点104,并且基本上同时向从节点104授予总线106的所有权。主节点102可以向从节点104授予足以允许从节点104回复该请求的总线的所有权,然后重新获得总线106的所有权。主节点102可以在某个时间,例如,在固件或硬件实施方案中在下一包间隔的开始时,或者在软件实施方案中在第二包间隔的开始时预期来自从节点的响应中的确认。主节点102可以基于预期响应接收时间与实际响应接收时间之间的差来确定传播延迟。主节点102可以经由总线106将确定的传播延迟传输到从节点104。
在从节点104被配置为将其数据采集和/或传输的输出与主节点102的传输同步的实施方案中,从节点104监视总线106从不传输传输的不活动状态到正在传输传输的活动状态的转变。关于主节点102的操作,它可以控制总线所有权并将MOSI传输输出到各个从节点104。为了确保最小的同步速率,主节点102可以在最大允许的延迟内发送其输出传输。当没有数据事务挂起时,主节点102可以进一步有条件地输出控制包,以确保在不需要数据传送时可以维持同步。以这种方式,所有主机包可以由每个从节点104使用来校正其同步时间。即使当传播延迟基于采集系统100的安装和布线修改和/或环境变化而改变时,同步时间的校正也可以是连续的过程。
关于用于确定用于同步数据采集和/或生成输出包的同步时间的从节点104的操作,当经由总线106接收到主机输出包时,每个从节点104将输入传输路由到其接收器(例如,在这个实例中,是UART)输入以用于解码。另外,将输入传输路由到捕获端口,该捕获端口评估信号转变以便为新包的开始加时间戳。从节点104利用预期的字符间间隙时间0和最小包间时间(例如10μs)来等待特定条件,其中从节点104检测到至少阈值时间量的不活动输入状态(在此期间,总线106是不活动的),随后转变为活动输入状态(在此期间,总线106转变为活动的)。由于UART被配置为使用不归零(NRZ)编码方案,因此在此实例中,将不活动状态定义为逻辑电平高。将活动转变定义为从逻辑电平高到逻辑电平低的转变。
在实施方案中,通过将转变不活动时间计数器初始化为零并在输入状态保持不活动时使计数器递增来执行对预定条件的检测。一旦发生超时,这意味着不活动输入状态持续阈值时间量(其中阈值是超时值),从节点104就等待输入状态转变为活动的(逻辑电平低)。直到超时发生时,如果输入状态变为活动的,则复位计数器。
当检测到转变时,这意味着正在从总线106接收包,从节点104捕获与包的开始相对应的当前时间,称为开始时间(t_k)。可以从自由运行计时器捕获当前时间,其中计时器的计数值例如由从节点104的固件锁存。
当接收到包的字节时,从节点104评估包的有效性,并确定该包是否为来自主节点102的传输(无论其目的地是哪个从节点104)。如果包来自另一从节点104,则可以将其忽略,并且不使用锁存时间。如果该包来自主节点102,则基于等式(1)校正同步时间(t_s):
t_s=t_k+t_p-t_prop, (1)
其中(t_p)是可配置的包间隔并且(t_prop)是由主机提供的从机特定的传播延迟。从节点104使用同步时间来控制其数据采集和输出传输的时序。
当从节点104接收主节点102输出包时,其中数据被推送到从节点104,从节点104对该包进行缓冲。当接收到完整的包时,从节点104基于其内容并且根据预定准则来布置包。如果包是无效的或不打算用于从机,则除了确定同步时间外,忽略该包。如果包是有效的并且打算用于从节点104(如包的报头中的目的地地址所指示的),则从节点104初始化用于接收包的特定通道的事务数据,并基于随后接收的包来维护数据。事务数据包括特定通道的端口号、数据偏移、事务ID和源/目的地地址。如果数据是有序的,则从节点104对数据进行缓冲并更新数据偏移。在会话层,评估和消耗缓冲的数据(如果已完成)。
在操作中,当主节点102例如经由写入操作状态请求或读取操作拉取请求将总线所有权转移到从节点10时,将来自从节点104的下一传输输出调度为在未来的时间开始或紧接在包布置之后开始。如果不支持时间同步,则受最小和最大延迟时间限制,从机输出紧接在包布置之后开始。在包间隔的倍数处调度连续从机数据传送。
如果支持时间同步,则将传输输出调度为在计算出的同步时间开始,在该时间,主节点102预期在其包间隔的谐波处开始接收包。
在复位时,启动自由运行计时器,其中其“计数值”表示当前时间t_c。初始化自由运行计时器的复位可以是上电复位、硬件复位(诸如来自监控器电路或看门狗电路)或控制器发起的复位(诸如来自软件或固件动作)。此外,基于等式(2),使用当前时间来更新同步时间:
t_s=t_c+t_p–t_prop, (2)
其中t_p是包间隔并且t_prop是主节点102提供给从节点104的特定传播延迟。
当当前时间达到同步时间时,根据操作模式来更新采集过程。例如,如果使用缓冲方案,则从节点104可以切换其活动缓冲区。在使每个适用的从节点104(通过广播多播指令以执行采集过程而寻址的从节点104)同步以几乎同时执行该动作的情形中,在每个缓冲区开始时对所获取的数据进行时间同步。在适用的从节点104的缓冲区中,缓冲区中可以包含数量略有不同的所获取样本,可以在主节点102进行的处理或数据聚合期间适应该情形。例如,数据集可以被截断到最小数据集的长度。
从节点104基于是否被调度而开始有条件地输出缓冲的数据。根据通道的优先级以及通道的先前输出(如果有)是否已按预期完成,可以调度连续输出发生。
现在参考图3A-9,示出了展示各种示例性实施方案的实现方式的流程图和流程图表。应注意,图3A-9所示的操作顺序不是必须的,因此,原则上,各种操作可以不按图示顺序或并行地执行。也可以跳过某些操作,可以添加或替换不同的操作,或者可以按照本文中描述的实施方案在单独的应用中执行选定的操作或一组操作。
图3A示出了流程图300,其示出了由采集系统的主节点(诸如图1所示的采集系统100的主节点102)执行的实例方法。在输入302处,获取提供包间隔的定义的配置,其中包间隔定义提供足够的时序余量以确保由主节点和一个或多个从节点传输的通信包仅在包间隔定义的谐波处出现。换句话说,数据传送被划分成适合于可配置的包间隔(包括时序余量)内的包。在操作304处,经由总线将通信包的时间基准分配到分布式采集系统的所有从节点,其中时间基准是基于包间隔定义。具体地说,主机的输出通信包本身的开始可以用作实现一组从节点之间的时间同步的参考时间。该方法可以通过操作306、308和/或310继续。
在操作306处,基于包间隔定义,使经由总线的通信与一个或多个从节点同步。
在操作308处,基于包间隔来控制总线的所有权。在实施方案中,在将对总线的控制提供给从节点中的一者之后,可以使用超时特征来重新获得对总线的控制。有效地,控制总线活动,其中通信包的时序在可配置的包间隔的谐波处出现。
在操作310处,确定传播延迟,其中该传播延迟与主节点传输的通信包的传输的开始到从节点中的一者接收通信包的时间之间的时间量和/或从节点中的一者传输的通信包的传输的开始到主节点接收通信包之间的时间量相关联。在操作312处,经由总线将传播延迟传输到从节点。
在实施方案中,操作306、308和/或(310和312)中的一个或多个可以在不同的时间,以不同的顺序或同时执行。
在实施方案中,总线106用于双向通信。控制部件还基于包间隔定义来控制总线的所有权。
在实施方案中,一个或多个从节点包括多个从节点,并且控制总线的所有权包括为多个从节点中的单个选定的从节点授予对总线的有限访问。
在实施方案中,被授予的有限访问是针对当选定的从节点被授予对总线的访问时允许由选定的从节点传输的指定数量的包。
在实施方案中,总线被配置用于双向通信,包间隔定义是由主节点传输的通信包的连续传输开始时间之间的最大预期时间,并且控制部件预期基于包间隔定义来同步由一个或多个从节点传输的通信包。
在实施方案中,包间隔定义适应用于基于所获取配置的最大包有效负载大小和通信波特率定义来传输由主节点或一个或多个从节点传输的通信包的最大预期传输时间。
在实施方案中,由主节点传输到从节点中的任一者的时间基准包和通信包中的每个包的开始时间是包间隔定义的倍数。
在实施方案中,包间隔定义是基于由至少一者引起的延迟:主节点与至少一个从节点之间的时钟差异引起的波特率误差、在对总线的控制在主节点或从节点到主节点和从节点中的另一者之间转变时进行的处理,以及字符间时序间隙的总和。
图3B示出了流程图350,其示出了由采集系统的多个分布式从节点中的从节点(诸如图1所示的采集系统100的从节点104)执行的实例方法。在输入352处,获取提供包间隔的定义的配置,所述包间隔确保由主节点和一个或多个从节点传输的通信包仅在包间隔定义的谐波处出现。在操作354处,确定新的主机传输的开始时间。
接下来,在操作355处,确定主机传输是否包括由主节点针对特定从节点测量的传播延迟。如果在操作355处的确定为是,这意味着主机传输包括由主节点确定的从节点的特定传播延迟,则在操作357处,从节点锁存更新后的传播延迟,之后该方法在操作356处继续。如果在操作处的确定为否,这意味着主机传输不包括传播延迟,则在操作356处,从节点基于锁存的传播延迟和主机传输的开始时间而校正其同步时间。当主节点没有需要在传输中发送的特定消息时,它可以发送同步消息,从节点可以使用所述同步消息以通过校正同步时间来校正其自己的同步。
在操作358处,确定是否已经将采集系统的总线的临时所有权指派给从节点。如果在操作358处的确定为是,这意味着总线的所有权例如在固定的时间量或固定数量的包间隔内已被临时指派给从节点,则在操作360处确定从机对总线的所有权是否仍有效。如果在操作358处的确定为否,这意味着没有将总线的所有权指派给从节点,则该方法在操作354处继续。
如果在操作360处的确定为是,这意味着从机的所有权仍然有效并且尚未到期,则在操作362处,确定主节点是否已经请求确认(ACK)。如果在操作360处的确定为否,这意味着从机对总线的所有权不再有效,例如已经到期,则该方法在操作354处继续。如果在操作362处的确定为是,这意味着已经请求确认,则在操作368处,从节点在下一可用同步时间传输确认,每个同步时间以包间隔间隔开。然后,主节点可以使用其确认的接收时间来确定从节点的传播延迟。接下来,该方法在操作354处继续。
如果在操作362处的确定为否,这意味着尚未请求确认,则在操作364处,确定主节点是否请求了采集数据。如果在操作364处的确定为是,这意味着已经请求采集数据,则在操作366处确定是否存在可用的采集数据。这类可用的采集数据可以基于先前的请求(读取事务的前半部分)进行缓冲并等待发送到主节点。如果在操作364处的确定为否,这意味着尚未请求采集数据,则该方法在操作354处继续。
如果在操作366处的确定为是,这意味着采集数据可用,则在操作370处,从节点在下一可用同步时间传输采集数据。接下来,该方法在操作354处继续。如果在操作366处的确定为否,这意味着采集数据不可用,则在操作372处,从节点传输控制包以指示该数据不可用。利用此输入,主节点知道从节点需要更多时间来对请求的数据进行缓冲。该方法在操作354处继续。
图4示出了流程图400,其示出了由采集系统的从节点(诸如图1所示的采集系统100的从节点104)执行的用于同步从节点的实例方法。在操作402处,响应于复位信号或来自操作404的活动输入,初始化不活动时间计数器。在操作404处,确定从节点输入状态是活动的还是不活动的。如果输入状态为活动的,则控制返回到操作402,并且将不活动时间计数器复位为零。如果输入状态为不活动的,则该方法在操作406处继续。在操作406处,使不活动计时器递增。在操作408处,评估不活动时间计数值以确定其是否已超过阈值。当已超过阈值时,确定超时条件已发生。如果超时条件没有发生,这意味着不活动时间计数器未超过阈值,则控制返回到操作404。如果超时条件已发生,则该方法在操作410处继续。
在操作410处,再次确定从节点输入状态是活动的还是不活动的。执行操作410,同时不活动计时器继续递增。如果确定输入状态为不活动的,则重复操作410,同时不活动时间计数器继续递增。如果确定输入状态为活动的,则该方法在操作412处继续,其中锁存例如从自由运行计时器捕获的当前时间的时间戳。自由运行计时器的计数值表示当前时间t_c。在操作414处,确定在处于活动输入状态时接收到的传入包是否为有效的主机输出包。
如果在操作414处的确定为否,这意味着传入的包不是主机包,而是因此来自另一从节点104,则控制在操作402处继续,以将不活动计时器重新初始化为零。出于校正同步时间(t_s)的目的,忽略输入包,并且不使用锁存时间。如果在操作414处的确定为是,这意味着传入的包是有效的主机包,则操作在操作416处继续。在操作416处,基于以上等式(1)校正同步时间(t_s)。然后,从节点可以使用校正后的同步时间(t_s)来控制从节点进行数据采集和输出传输的时序。
图5示出了流程图500,其示出了由采集系统的从节点(诸如图1所示的采集系统100的从节点104)执行的用于应用同步时间(t_s)来同步从节点的操作的实例方法。在操作502处,将自由运行计时器初始化为当前时间t_c。自由运行计时器的值随时间递增,表示更新的当前时间。在操作504处,基于等式(2),使用当前时间t_c来更新同步时间(t_s)。
在操作506处,确定自由运行计时器值(其为更新的当前时间)是否已经达到同步时间t_s。如果确定为否,这意味着自由运行计时器值尚未达到同步时间t_s,则重复操作506,同时自由运行计时器基于经过的时间递增。当确定为是时,这意味着自由运行计时器值已经达到同步时间t_s,则该方法在操作508处继续。在操作508处,如果传感器节点处于采集操作模式,则诸如通过切换其活动缓冲区来更新采集。对于与主节点进行通信的其他从节点,应同步操作508。
在操作510处,确定是否调度了输出。当从节点被主节点给予对总线的控制(诸如,以发送确认或用请求的数据,诸如获取的数据回复)时,调度输出。如果在操作510处的确定为否,这意味着没有为从节点调度输出,则该方法在操作504处继续以更新同步_时间。如果在操作510处的确定为是,这意味着为从节点调度了输出,则该方法在操作512处继续,之后该方法在操作504处继续。在操作512处,执行用于输出所请求的数据或确认的传输程序。
图6示出了流程图600,其示出了采集系统的主节点(诸如图1所示的主节点102)的用于与采集系统的从节点同步时序的功能的实例方法。在操作602处,初始化同步时间(t_s),并且使自由运行计时器的值随时间递增,从而表示更新的当前时间。在操作604处,更新同步时间(t_s),其中t_s=t_c+t_p,其中t_p是可配置的包间隔。
在操作606处,确定自由运行计时器值(其为更新的当前时间)是否已达到同步时间t_s。如果在操作606处的确定为否,这意味着自由运行计时器值尚未达到同步时间t_s,则重复操作606,同时自由运行计时器基于经过的时间递增。当在操作606处的确定为是时,这意味着自由运行计时器值已达到同步时间t_s,则该方法在操作608处继续。
在操作608处,确定主节点是否拥有采集系统的总线,诸如图1所示的总线106。如果在操作608处的确定为否,这意味着主节点不拥有总线,则该方法在操作604处继续以更新同步_时间。如果在操作608处的确定为是,这意味着主机拥有总线,则该方法在操作610处继续,之后该方法在操作604处继续。在操作610处,主节点生成输出。主机通过恢复任何活动的高优先级输出来确定输出的内容。否则,主节点开始任何挂起的高优先级输出。否则,主节点恢复任何活动的低优先级输出。否则,主节点开始任何挂起的低优先级输出。否则,如果数据采集是活动的,则主节点输出同步包,所述同步包不包含有效负载,而仅用于提供时间同步更新。
图7示出了流程图700,其描述了图6的操作610内的过程。该流程图示出了用于选择要生成什么输出包以及用于由采集系统的主节点来控制总线(诸如图1所示的采集系统100的总线106和主节点102)的实例方法。在操作702处,主节点确定关于从机中的任一者的MISO通道(读取事务)是否为活动的。如果在操作702处的确定是MISO通道是活动的,则该方法在操作704处继续,其中主节点生成拉取输出控制包。该包请求开始或恢复来自特定从节点的读取事务数据传送。在操作706处,基于拉取输出,在最大数量的包间隔内,主节点将对总线的控制转移到与活动的MISO通道相关联的从节点,在此期间,预期从节点生成输出以将数据传送到主节点。
如果在操作702处确定MISO通道不是活动的,则在操作708处确定MOSI通道(写入事务)是否为活动的或挂起的。如果不是,则尽管未在图7中示出,但可以将用于更新同步时间(t_s)的控制包输出传输到总线。如果在操作708处确定MOSI通道是活动的或挂起的,则在操作710处,主节点将数据推送到一个或多个从节点。输出包用于开始、恢复和/或请求写入事务的状态。在操作712处,确定是否预期确认。如果在操作712处的确定为是,即预期确认,则该方法在操作706处继续。在操作706处,基于请求状态输出,在一个包间隔内,主节点将对总线的控制转移到与活动的MOSI通道相关联的从节点,在此期间,预期从节点生成输出以指示其从主节点接收的输入的状态。如果在操作712处的确定为否,即不预期确认,则该方法在操作714处继续。在操作714处,确定是否已经输出最后一个包。如果在操作714处的确定为否,则没有输出最后一个包,则该方法结束,之后该方法在下一包间隔处在操作702处重新开始。否则,如果在操作714处确定是,输出最后一个包,则在操作716处,确定输出是用于读取事务还是用于写入事务。如果在操作716处确定否,输出不是针对读取操作而是针对写入操作,则该方法在操作718处继续,在操作718中完成当前事务,之后该方法结束并在下一包间隔处在操作702处重新开始。如果在操作716处确定是,输出是针对读取操作的,则该方法在操作720处继续,在操作720中激活正在执行读取事务的从装置的MISO通道,之后该方法结束并在下一包间隔处在操作702处重新开始。有效地,主节点使用MOSI通道写入数据以触发从节点对输出进行缓冲,然后可以使用相关联的MISO通道来拉取所述输出。
图8示出了流程图800,其示出了由主节点执行的实例方法,该方法提供主节点基于从节点输入或超时条件而夺回总线。在操作802处,当从节点控制总线时,主节点从总线获得输入数据。在操作804处,主节点基于预定准则来布置输入。在操作806处,确定从节点是否已将总线所有权转移回到主节点。如果到达数据传送的最后一个包或达到允许的包数量,则从节点使用总线控制值1以放弃总线所有权。如果在操作806处的确定为是,条件是要收回总线,则在操作810处,主节点收回总线,之后该方法在操作802处继续。如果在操作806处的确定为否,从节点尚未明确放弃总线所有权,则在操作808处,确定是否已满足超时条件。有效地,主节点评估是否已经过足够的时间,它将自动收回总线所有权。选择可配置的超时以超过与在最后一个主节点输出包期间主节点授予从节点的包间隔的数量相对应的时间。如果在操作808处的确定为是,已经满足超时条件,则在操作810处,主节点收回总线,并且该方法在操作802处继续。如果在操作808处的确定为否,不满足超时条件,则该方法在操作802处继续。
图9示出了流程图900,其示出了由主节点执行的用于确定传播延迟校正的实例方法。由主节点102接收的总线106上的来自从节点104的传输可以被路由以用于解码,诸如路由到UART的输入,并且可以被进一步路由以用于例如在捕获端口处捕获以评估信号转变以便为接收到的新包的开始加时间戳。该方法可以由主节点固件执行。例如,通过利用预期的字符间间隙时间0和最小包间时间10μs,主机固件可以等待总线不活动状态,随后进行活动转变。例如,在使用UART的实施方案中,使用不归零(NRZ)编码方案,并且将不活动状态定义为逻辑电平高,其中可以将活动转变检测为从逻辑电平高到逻辑电平低的转变。
在操作902处,响应于复位信号或来自操作904的活动输入,初始化不活动时间计数器。在操作904处,基于是否已经捕获了新包来确定主节点输入状态是活动的还是不活动的。如果输入状态是活动的,这意味着已经捕获包,则控制返回到操作902,并且将不活动时间计数器复位为零。如果输入状态是不活动的,这意味着尚未捕获包,则该方法在操作906处继续。在操作906处,使不活动计时器递增。在操作908处,评估不活动时间计数值以确定其是否已超过阈值。当已超过阈值时,确定超时条件已发生。如果超时条件没有发生,这意味着不活动时间计数器未超过阈值,则控制返回到操作904。如果超时条件已发生,则该方法在操作910处继续。
在操作910处,再次确定从节点输入状态是活动的还是不活动的。执行操作910,同时不活动计时器继续递增。如果确定输入状态为不活动的,则重复操作910,同时不活动时间计数器继续递增。
如果确定输入状态为活动的,则该方法在操作912处继续,其中锁存例如从自由运行计时器捕获的当前时间的时间戳。自由运行计时器的计数值表示当前时间t_c。在操作914处,除了评估预期包的有效性之外,主节点还通过使用计算t_e=t_k-t_s-t_prop确定相对于主机同步时间(t_s)的时序误差(t_e)来更新传输检测到的传输的特定从节点的传播延迟,其中(t_prop)是当前从机特定的传播延迟。在操作918处,可能在过滤之后,确定误差是否为显著的,例如,是否超过预定阈值。在操作918处,主节点调度到特定从节点的输出以更新从节点的特定传播延迟。通过累积一半的误差来更新传播延迟,以适应两个方向上的延迟。
所公开的采集系统的各种实施方案的潜在优势是能够应用协议逻辑以使用通信链路来适应主节点与分布式从节点之间的数据传送,校正时序误差并提供分布式从节点的同步。不需要单独的同步链路。
尽管在飞机发动机相关应用的健康监测的示例性上下文中示出和描述,但是本领域技术人员将容易了解,根据本公开的采集系统可以用于使用分布式从节点获取的高度相关的传感数据的任何其他合适的应用,包括民用和军事应用。因为对用于使主节点与从节点之间的通信重新同步的同步时间的校正可以是连续的过程,所以即使当传播延迟基于采集系统的安装和布线修改而改变时,也可以重新同步采集系统。因此,采集系统可以用于监视静止或移动系统,诸如陆基、海基、天基或空基交通工具。
尽管已经参考优选实施方案示出和描述了本主题公开的设备和方法,但本领域技术人员将易于了解在不脱离本主题公开的精神和范围的情况下可以对其进行改变和/或修改。
Claims (20)
1.一种分布式采集系统的主节点,所述主节点包括:
通信接口,所述通信接口用于在控制部件与总线之间对接,所述总线是联接到分布在所述采集系统中的一个或多个从节点的通信总线;以及
所述控制部件,所述控制部件被配置为:
获取提供包间隔的定义的配置,其中所述包间隔定义提供足够的时序余量以确保由所述主节点和所述一个或多个从节点传输的通信包仅在所述包间隔定义的谐波处出现,其中所述包间隔定义是由所述主节点传输的通信包的连续传输开始时间之间的最大预期时间;
基于所述包间隔定义经由所述总线将所述通信包的时间基准包分配到所述分布式采集系统的所有从节点;以及
基于所述包间隔定义来调度由所述主节点经由所述总线向一个或多个选定的从节点传输的通信包的传输,
其中所述控制部件预期基于所述包间隔定义来同步由所述一个或多个从节点传输的通信包。
2.如权利要求1所述的主节点,其中所述总线被配置用于双向通信,并且所述控制部件还基于所述包间隔定义来控制所述总线的所有权。
3.如权利要求2所述的主节点,其中所述一个或多个从节点包括多个从节点,并且控制所述总线的所有权包括为所述多个从节点中的单个选定的从节点授予对所述总线的有限访问。
4.如权利要求3所述的主节点,其中所授予的所述有限访问是针对当所述选定的从节点被授予对所述总线的访问时允许由所述选定的从节点传输的指定数量的包。
5.如权利要求3所述的主节点,其中控制所述总线的所有权包括当所述总线满足不活动条件或超时条件时,在有限访问的所述授予期满之后重新获得对所述总线的控制。
6.如权利要求1所述的主节点,其中所述总线被配置用于双向通信。
7.如权利要求6所述的主节点,其中所述包间隔定义适应用于基于所获取配置的最大包有效负载大小和通信波特率定义而传输由所述主节点或所述一个或多个从节点传输的所述通信包的最大预期传输时间。
8.如权利要求1所述的主节点,其中所述控制部件还被配置为:
确定传播延迟,所述传播延迟与所述主节点传输的通信包的传输的开始到所述从节点中的一者接收所述通信包的时间之间的时间量和/或所述从节点中的一者传输的通信包的传输的开始到所述主节点接收所述通信包之间的时间量相关联;以及
经由所述总线将所述传播延迟传输到所述从节点。
9.如权利要求1所述的主节点,其中由所述主节点传输到所述从节点中的任一者的所述时间基准包和所述通信包中的每个包的开始时间是所述包间隔定义的倍数。
10.如权利要求1所述的主节点,其中所述包间隔定义是基于由至少一者引起的延迟:由所述主节点与所述至少一个从节点之间的时钟差异引起的波特率误差、在对所述总线的控制在所述主节点或所述从节点到所述主节点和所述从节点中的另一者之间转变时进行的处理,以及字符间时序间隙的总和。
11.一种同步分布式采集系统的主节点与一个或多个从节点之间的通信的方法,所述方法包括:
获取提供包间隔的定义的配置,其中所述包间隔定义提供足够的时序余量以确保由所述主节点和所述一个或多个从节点传输的通信包仅在所述包间隔定义的谐波处出现,以及所述包间隔定义是由所述主节点传输的通信包的连续传输开始时间之间的最大预期时间;
基于所述包间隔定义经由总线将所述通信包的时间基准包分配到所述分布式采集系统的所有从节点;以及
基于所述包间隔定义来调度由所述主节点经由所述总线向一个或多个选定的从节点传输的通信包的传输,
其中控制部件预期基于所述包间隔定义来同步由所述一个或多个从节点传输的通信包。
12.如权利要求11所述的方法,其中所述总线被配置用于双向通信,并且所述控制部件还基于所述包间隔定义来控制所述总线的所有权。
13.如权利要求12所述的方法,其中所述一个或多个从节点包括多个从节点,并且控制所述总线的所有权包括为所述多个从节点中的单个选定的从节点授予对所述总线的有限访问。
14.如权利要求13所述的方法,其中所授予的所述有限访问是针对当所述选定的从节点被授予对所述总线的访问时允许由所述选定的从节点传输的指定数量的包。
15.如权利要求13所述的方法,其中控制所述总线的所有权包括当所述总线满足不活动条件或超时条件时,在有限访问的所述授予期满后重新获得对所述总线的控制。
16.如权利要求11所述的方法,其中所述总线被配置用于双向通信。
17.如权利要求11所述的方法,其中所述包间隔定义适应用于基于所获取配置的最大包有效负载大小和通信波特率定义而传输由所述主节点或所述一个或多个从节点传输的所述通信包的最大预期传输时间。
18.如权利要求11所述的方法,其中所述方法还包括:
确定传播延迟,所述传播延迟与所述主节点传输的通信包的传输的开始到所述从节点中的一者接收所述通信包的时间之间的时间量和/或所述从节点中的一者传输的通信包的传输的开始到所述主节点接收所述通信包之间的时间量相关联;以及
经由所述总线将所述传播延迟传输到所述从节点。
19.如权利要求11所述的方法,其中由所述主节点传输到所述从节点中的任一者的所述时间基准包和所述通信包中的每个包的开始时间是所述包间隔定义的倍数。
20.一种分布式采集系统的主节点的控制部件,所述控制部件处理装置被配置为:
获取提供包间隔的定义的配置,其中所述包间隔定义提供足够的时序余量以确保由所述主节点和一个或多个从节点传输的通信包仅在所述包间隔定义的谐波处出现,以及所述包间隔定义是由所述主节点传输的通信包的连续传输开始时间之间的最大预期时间;
基于所述包间隔定义经由总线将所述通信包的时间基准包分配到所述分布式采集系统的所有从节点;以及
基于所述包间隔定义来调度由所述主节点经由所述总线向一个或多个选定的从节点传输的通信包的传输,
其中所述控制部件预期基于所述包间隔定义来同步由所述一个或多个从节点传输的通信包。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/223,550 US10812251B2 (en) | 2018-12-18 | 2018-12-18 | Distributed time synchronization protocol for an asynchronous communication system |
US16/223550 | 2018-12-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111343228A CN111343228A (zh) | 2020-06-26 |
CN111343228B true CN111343228B (zh) | 2024-04-09 |
Family
ID=68917700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911307935.3A Active CN111343228B (zh) | 2018-12-18 | 2019-12-18 | 用于异步通信系统的分布式时间同步协议 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10812251B2 (zh) |
EP (1) | EP3672161B1 (zh) |
JP (1) | JP2020108144A (zh) |
CN (1) | CN111343228B (zh) |
BR (1) | BR102019026985A2 (zh) |
CA (1) | CA3065060A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6969455B2 (ja) * | 2018-03-13 | 2021-11-24 | オムロン株式会社 | 制御装置、制御システム、制御方法、および、制御プログラム |
US11210258B2 (en) * | 2019-12-19 | 2021-12-28 | Christian Cicerone | Trigger/array for using multiple cameras for a cinematic effect |
EP3934179B1 (en) * | 2020-06-30 | 2022-10-26 | Melexis Technologies NV | High speed communication system |
CN112506839B (zh) * | 2020-12-07 | 2023-02-03 | 天津津航计算技术研究所 | 一种一对多spi总线切换方法及装置 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0800295A2 (en) * | 1996-04-05 | 1997-10-08 | Sony Corporation | Method and apparatus for data packet transmission |
WO2004073257A2 (en) * | 2003-02-12 | 2004-08-26 | Nortel Networks Limited | Transit link coordination systems and methods for a distributed wireless communication network |
CN101150475A (zh) * | 2007-10-30 | 2008-03-26 | 西安电力机械制造公司 | 一种基于can总线的电子式互感器数据传输方法 |
CN101631016A (zh) * | 2009-04-14 | 2010-01-20 | 华中科技大学 | 一种现场总线的时间同步方法 |
EP2434674A1 (de) * | 2010-09-24 | 2012-03-28 | Siemens Aktiengesellschaft | Verfahren zur Zeitsynchronisation in einem Kommunikationsnetz |
CN102857397A (zh) * | 2012-10-09 | 2013-01-02 | 南京国电南自电网自动化有限公司 | 一种多主异步双工差分总线及通讯方法 |
CN102984042A (zh) * | 2012-11-27 | 2013-03-20 | 浙江中控技术股份有限公司 | 一种实现总线通信的确定性调度方法及系统 |
CN103812591A (zh) * | 2014-01-26 | 2014-05-21 | 长沙瑞纬电气有限公司 | 一种列车通信网的时钟频率间接补偿方法 |
CN104507156A (zh) * | 2014-12-17 | 2015-04-08 | 西南大学 | 针对无线网络的基于ieee 1588ptp机制的时间同步改进方法 |
CN105279070A (zh) * | 2015-10-14 | 2016-01-27 | 安徽四创电子股份有限公司 | 用于时间同步装置的总线通信方法及装置 |
CN106444425A (zh) * | 2016-10-24 | 2017-02-22 | 南京航空航天大学 | 面向航空发动机分布式控制的ttp/c总线控制器设计方法 |
CN107040284A (zh) * | 2017-03-27 | 2017-08-11 | 西安电子科技大学 | 一种提高数据传输的可靠性与稳定性的多址接入方法 |
CN107809295A (zh) * | 2017-11-06 | 2018-03-16 | 中国舰船研究设计中心 | 一种跨平台时间同步装置及方法 |
CN108282243A (zh) * | 2017-12-28 | 2018-07-13 | 清华大学 | 一种适用于主从式时间同步方法的时钟源可靠性保障机制 |
CN108347439A (zh) * | 2018-02-06 | 2018-07-31 | 清华大学 | 一种ZigBee设备到WiFi设备的时间同步方法及设备 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2326065B (en) * | 1997-06-05 | 2002-05-29 | Mentor Graphics Corp | A scalable processor independent on-chip bus |
US6370159B1 (en) | 1998-07-22 | 2002-04-09 | Agilent Technologies, Inc. | System application techniques using time synchronization |
US7930041B2 (en) | 2008-09-29 | 2011-04-19 | Rockwell Automation Technologies, Inc. | Industrial controller with coordination of network transmissions using global clock |
US8274998B2 (en) | 2008-10-02 | 2012-09-25 | Cortina Systems, Inc. | Systems and methods for packet based timing offset determination using timing adjustment information |
JP5363379B2 (ja) * | 2009-05-20 | 2013-12-11 | ルネサスエレクトロニクス株式会社 | 通信システム |
US9021292B2 (en) | 2011-05-20 | 2015-04-28 | Texas Instruments Incorporated | Method and system for asynchronous serial communication in a ring network by generating an oversampling clock using a fractional rate multiplier and sampling a received data bit sequence that includes voltage and temperature information in a battery management system |
CN105323054B (zh) | 2014-06-26 | 2019-05-17 | 中兴通讯股份有限公司 | 时钟同步方法及装置 |
US10163819B2 (en) | 2014-11-27 | 2018-12-25 | National Institute Of Advanced Industrial Science And Technology | Surface mount package and manufacturing method thereof |
US10033517B2 (en) | 2015-03-19 | 2018-07-24 | Mitsubishi Electric Corporation | Communication apparatus and network system |
ITUB20153295A1 (it) | 2015-08-31 | 2017-03-03 | Marposs Spa | Sistema e metodo di elaborazione e trasmissione dati |
US10187195B2 (en) | 2016-04-28 | 2019-01-22 | Hamilton Sundstrand Corporation | Controller area network synchronization |
-
2018
- 2018-12-18 US US16/223,550 patent/US10812251B2/en active Active
-
2019
- 2019-12-12 CA CA3065060A patent/CA3065060A1/en active Pending
- 2019-12-16 EP EP19216685.8A patent/EP3672161B1/en active Active
- 2019-12-17 BR BR102019026985-5A patent/BR102019026985A2/pt unknown
- 2019-12-18 CN CN201911307935.3A patent/CN111343228B/zh active Active
- 2019-12-18 JP JP2019228578A patent/JP2020108144A/ja active Pending
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0800295A2 (en) * | 1996-04-05 | 1997-10-08 | Sony Corporation | Method and apparatus for data packet transmission |
WO2004073257A2 (en) * | 2003-02-12 | 2004-08-26 | Nortel Networks Limited | Transit link coordination systems and methods for a distributed wireless communication network |
CN101150475A (zh) * | 2007-10-30 | 2008-03-26 | 西安电力机械制造公司 | 一种基于can总线的电子式互感器数据传输方法 |
CN101631016A (zh) * | 2009-04-14 | 2010-01-20 | 华中科技大学 | 一种现场总线的时间同步方法 |
EP2434674A1 (de) * | 2010-09-24 | 2012-03-28 | Siemens Aktiengesellschaft | Verfahren zur Zeitsynchronisation in einem Kommunikationsnetz |
CN102857397A (zh) * | 2012-10-09 | 2013-01-02 | 南京国电南自电网自动化有限公司 | 一种多主异步双工差分总线及通讯方法 |
CN102984042A (zh) * | 2012-11-27 | 2013-03-20 | 浙江中控技术股份有限公司 | 一种实现总线通信的确定性调度方法及系统 |
CN103812591A (zh) * | 2014-01-26 | 2014-05-21 | 长沙瑞纬电气有限公司 | 一种列车通信网的时钟频率间接补偿方法 |
CN104507156A (zh) * | 2014-12-17 | 2015-04-08 | 西南大学 | 针对无线网络的基于ieee 1588ptp机制的时间同步改进方法 |
CN105279070A (zh) * | 2015-10-14 | 2016-01-27 | 安徽四创电子股份有限公司 | 用于时间同步装置的总线通信方法及装置 |
CN106444425A (zh) * | 2016-10-24 | 2017-02-22 | 南京航空航天大学 | 面向航空发动机分布式控制的ttp/c总线控制器设计方法 |
CN107040284A (zh) * | 2017-03-27 | 2017-08-11 | 西安电子科技大学 | 一种提高数据传输的可靠性与稳定性的多址接入方法 |
CN107809295A (zh) * | 2017-11-06 | 2018-03-16 | 中国舰船研究设计中心 | 一种跨平台时间同步装置及方法 |
CN108282243A (zh) * | 2017-12-28 | 2018-07-13 | 清华大学 | 一种适用于主从式时间同步方法的时钟源可靠性保障机制 |
CN108347439A (zh) * | 2018-02-06 | 2018-07-31 | 清华大学 | 一种ZigBee设备到WiFi设备的时间同步方法及设备 |
Non-Patent Citations (5)
Title |
---|
Ultraprecise Absolute Time Synchronization for Distributed Acquisition Systems;Brian R. Calder;IEEE Journal of Oceanic Engineering;全文 * |
分布式测试系统时间同步技术的研究;牟宗磊;宋萍;;计算机测量与控制(05);全文 * |
基于1553B与RS-422总线的时间同步系统的设计与实现;郑家宁;电子测量技术;全文 * |
基于CAN总线的分布式高精度时钟的实现;何万里, 隋江华, 任光;计算机工程与应用(36);全文 * |
实时分布式系统中的时间同步;魏建军;康继昌;雷艳静;陈付龙;;中北大学学报(自然科学版)(05);全文 * |
Also Published As
Publication number | Publication date |
---|---|
EP3672161A1 (en) | 2020-06-24 |
US10812251B2 (en) | 2020-10-20 |
CN111343228A (zh) | 2020-06-26 |
BR102019026985A2 (pt) | 2020-07-07 |
US20200195415A1 (en) | 2020-06-18 |
JP2020108144A (ja) | 2020-07-09 |
CA3065060A1 (en) | 2020-06-18 |
EP3672161B1 (en) | 2023-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111343228B (zh) | 用于异步通信系统的分布式时间同步协议 | |
EP3672162B1 (en) | Distributed time synchronization protocol for an asynchronous communication system | |
US7898987B2 (en) | Method and device for the exchange of data between at least two users connected to a bus system | |
US4939724A (en) | Cluster link interface for a local area network | |
JP5717240B2 (ja) | 通信システム及び通信装置 | |
US20130170498A1 (en) | Ethernet for avionics | |
JP5563165B2 (ja) | 切り替え可能なデータレートによる直列データ伝送のための方法及び装置 | |
US20070127521A1 (en) | Interface between network data bus application and avionics data bus | |
US20220350773A1 (en) | Low complexity ethernet node (len) one port | |
US10567194B2 (en) | User station for a bus system and method for increasing the transmission capacity in a bus system | |
CN105993142B (zh) | 用于在总线系统中确定性地进行数据传输的方法和总线系统 | |
Ayavoo et al. | Two novel shared-clock scheduling algorithms for use with ‘Controller Area Network’and related protocols | |
Ayavoo et al. | Two novel shared-clock scheduling algorithms for use with CAN-based distributed systems | |
Hasnaoui et al. | An implementation of a proposed modification of CAN protocol on CAN fieldbus controller component for supporting a dynamic priority policy | |
Hartwich et al. | Introducing can xl into can networks | |
KR101601303B1 (ko) | 이종 프로토콜 메시지 중개 방법 | |
US8095703B2 (en) | Data transfer method | |
Khumalo | A CAN based distributed telemetry and telecommand network for a nanosatellite | |
Compton | Goldilocks Serial Communication Protocol | |
SU1569837A1 (ru) | Устройство дл сопр жени магистрали с ЦВМ | |
KR101058414B1 (ko) | FlexRay 통신에서의 신뢰성 향상을 위해 정적 세그먼트 내에서 슬롯을 배치하는 방법 및 장치 | |
Sastry et al. | An Open Specification for Fire wire Standard to Extend its suitability to diversified Applications | |
TINDELL et al. | Calculating Controller Area Network (CAN) | |
KR20020047962A (ko) | 등시전송 효율을 높인 인터페이스 장치 및 방법 |
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 |