主权项 |
一种基于周期性脉冲信号的异地数据同步采集方法,该方法用于为中低速数据采样过程提供异地微秒级精度的时间同步,所述方法包含:步骤101)用于初始化的步骤,该步骤具体包含:设置数据采样时钟为计数器的计数源;设置周期性脉冲信号为所述计数器的读数触发信号,同时设置该周期性脉冲为数据采样过程的采样动作的触发信号;步骤102)由第一个周期性脉冲信号启动数据采样过程,同时启动所述计数器开始计数;步骤103)记录第一个周期性脉冲信号触发计数器开始计数所对应的绝对时刻t<sub>0</sub>,并根据设定数据采样频率连续记录采样数据和每个周期性脉冲信号触发计数器时的计数器的读数值序列(c<sub>1</sub>,c<sub>2</sub>...c<sub>m</sub>,c<sub>m+1</sub>...);步骤104)对采样数据进行时间标定,完成数据采样过程的同步,具体步骤为:首先,假设f<sub>s</sub>为设定的采样频率,f<sub>c</sub>为数据采集过程的采样时钟,计数器在第1秒的计数值用c<sub>1</sub>表示,第2秒的计数值用c<sub>2</sub>表示,依此类推,第m秒的计数值用c<sub>m</sub>表示,所以每个周期性脉冲信号触发计数器时的计数器的读数值组成序列(c<sub>1</sub>,c<sub>2</sub>...c<sub>m</sub>,c<sub>m+1</sub>...),且这些读数值序列所对应的数据采样点的序列号组成递增序列n为:(n<sub>1</sub>,n<sub>2</sub>...n<sub>m</sub>,n<sub>m+1</sub>...),该序列进一步由下式获取:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mo>(</mo><msub><mi>n</mi><mn>1</mn></msub><mo>,</mo><msub><mi>n</mi><mn>2</mn></msub><mo>...</mo><msub><mi>n</mi><mi>m</mi></msub><mo>,</mo><msub><mi>n</mi><mrow><mi>m</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>...</mo><mo>)</mo><mo>=</mo><mfrac><msub><mi>f</mi><mi>s</mi></msub><msub><mi>f</mi><mi>c</mi></msub></mfrac><mo>(</mo><msub><mi>c</mi><mn>1</mn></msub><mo>,</mo><msub><mi>c</mi><mn>2</mn></msub><mo>...</mo><msub><mi>c</mi><mi>m</mi></msub><mo>,</mo><msub><mi>c</mi><mrow><mi>m</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>...</mo><mo>)</mo><mo>+</mo><mn>1</mn><mo>;</mo></mrow>]]></math><img file="FDA0000881707940000011.GIF" wi="1060" he="142" /></maths>然后,从上述递增序列n中寻找n<sub>m</sub>,使得第N个数据采样点满足:n<sub>m</sub>≤N≤n<sub>m+1</sub>;最后,将上述个步骤获取的:绝对时刻t<sub>0</sub>、m、N、n<sub>m</sub>、f<sub>s</sub>代入下式,得到第N个数据采样点的绝对时刻,从而实现异地分布式的数据采样同步;T=t<sub>0</sub>+m+(N‑n<sub>m</sub>)/f<sub>s</sub>。 |