0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)IEEE1588協(xié)議驅(qū)動(dòng)分布式系統(tǒng)高精度同步觸發(fā)簡介

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-02-12 10:35 ? 次閱讀

IEEE1588是精確網(wǎng)絡(luò)對(duì)時(shí)協(xié)議,簡稱PTP。它通過硬件實(shí)現(xiàn)的時(shí)間標(biāo)簽(hardware time stamp),使對(duì)時(shí)精度達(dá)到亞微秒級(jí)(< 1us),大大高于常規(guī)的網(wǎng)絡(luò)對(duì)時(shí)協(xié)議(NTP)。PTP協(xié)議的另一個(gè)特色是它可輸出精確時(shí)間同步的硬件脈沖,通常稱為PPS脈沖。在網(wǎng)絡(luò)化的嵌入式系統(tǒng)中,利用PTP的硬件PPS脈沖,可對(duì)處于不同位置的多臺(tái)設(shè)備實(shí)現(xiàn)同步觸發(fā)的功能。這對(duì)分布式系統(tǒng)的數(shù)據(jù)采集、實(shí)時(shí)控制都具有非常的意義。

英創(chuàng)公司的多款嵌入式主板,ESM7000、ESM6802和ESM6800,其網(wǎng)絡(luò)接口均支持PTP協(xié)議,且可輸出PPS脈沖,因此是分布式智能設(shè)備的理想嵌入式平臺(tái)。以下將以ESM7000為例,介紹實(shí)現(xiàn)分布式同步觸發(fā)的軟硬件方案。

基于PTP的同步觸發(fā)軟件流程

ESM7000預(yù)裝的Linux平臺(tái)文件系統(tǒng)中,已包含了PTP對(duì)時(shí)及硬件時(shí)間同步的完整工具,即ptp4l和phc2sys,同時(shí)可方便的控制PPS脈沖的使能。在這個(gè)基礎(chǔ)上,按照?qǐng)D1所示流程就可實(shí)現(xiàn)同步觸發(fā)的功能。

圖1同步觸發(fā)軟件流程

在實(shí)際的測試中發(fā)現(xiàn),PTP的對(duì)時(shí)精度與網(wǎng)絡(luò)環(huán)境有密切關(guān)系。在單一的100M網(wǎng)絡(luò)環(huán)境所獲得的設(shè)備間的同步精度在±200ns;而在1000M網(wǎng)環(huán)境,同步精度就下降到±1us;混合網(wǎng)絡(luò)環(huán)境,同步精度可差至±15us。

同步觸發(fā)脈沖的硬件方案

所謂硬件方案,是指圖1中觸發(fā)脈沖生成器的實(shí)現(xiàn)方案。以PTP協(xié)議生成的周期性PPS脈沖為基礎(chǔ),由應(yīng)用程序生成觸發(fā)使能信號(hào),再通過一個(gè)簡單的D觸發(fā)器生成最后的觸發(fā)脈沖。硬件方案涉及3個(gè)信號(hào)如下:

●PPS_OUT:整秒脈沖輸出,即周期固定為1秒,在ESM7000上,PPS的脈沖寬度為10ns,上升沿有效。

●TRG_EN:觸發(fā)使能,通常用一位GPIO來實(shí)現(xiàn),其高電平有效。

●TRG_PULSE:觸發(fā)脈沖,上升沿有效;在TRG_EN為低時(shí),將強(qiáng)制TRG_PULSE為低;當(dāng)TRG_EN為高時(shí),后續(xù)的PPS_OUT脈沖上升沿將鎖存高電平,從而是TRG_PULSE變高電平。TRG_PULSE脈沖上升沿將將作為系統(tǒng)采集控制硬件單元的觸發(fā)輸入,觸發(fā)各個(gè)嵌入式設(shè)備同步動(dòng)作。

圖2同步觸發(fā)脈沖生成電路原理

在圖2中,TRG_PULSE還可反饋給ESM7000主板,通知同步觸發(fā)已發(fā)生。但不是必須的。

大部分ESMARC主板均可支持PTP同步觸發(fā)功能。對(duì)不同型號(hào)的主板,PPS脈沖輸出管腳有所不同,如下表所示:

主板型號(hào) PTP網(wǎng)口 PPS信號(hào)管腳 備注
ESM7000系列 eth0 CN2.GPIO0
ESM6802系列 eth0 CN2.GPIO24 V2.4版才支持
ESM6800系列 eth1 CN2.GPIO22 不能使用SD
ES6801 eth0 CN1.GPIO0 不能使用CAN1

對(duì)選擇哪一位GPIO管腳作為TRG_EN,本方案沒有限制??筛鶕?jù)設(shè)備的具體情況來確定。

對(duì)同步觸發(fā)從設(shè)備測試

本測試用從設(shè)備的“當(dāng)前時(shí)間+ 偏移量”來代替主設(shè)備發(fā)布的觸發(fā)時(shí)間TRGTIME,就可用簡單的腳本測試整個(gè)觸發(fā)過程,具體的腳本如下:

#!/bin/sh
# trg_en_3 $1 [$2] [$3]
# $1 = 0, off ptp; = 1: on ptp
# $2 = number of seconds to delay from cuurent time
# $3 = ip:port
PATH="/usr/bin:$PATH"
E_NOARGS=85
re='^[0-9]+$'
TRG_EN_GPIO="gpio1"
TRG_EN_DIRECTORY="/sys/class/em_gpio/em_gpio/$TRG_EN_GPIO"
PHC2SYSLOG="/tmp/phc2syslog.txt"
DELAY=10
# if no arg, exit
if [ -z "$1" ]
then
echo "Usage: `basename $0` filename"
exit $E_NOARGS
fi
# if $1 != 1, off ptp and exit
if [ "$1" -ne 1 ]
then
echo 0 > /sys/class/ptp/ptp0/pps_enable
pkill phc2sys
pkill ptp4l
exit 0
fi
# get trigger delay is available, default = 10(s)
if [ $# -ge 2 ]
then
DELAY="$2"
fi
# now we start to make trg_en step by step
echo "step 1: setup gpio1 as trg_en"
if [ ! -d "$TRG_EN_DIRECTORY" ]
then
echo "config $TRG_EN_GPIO as trg_en"
echo 1 > /sys/class/em_gpio/em_gpio/export
fi
echo out > /sys/class/em_gpio/em_gpio/$TRG_EN_GPIO/direction
echo 0 > /sys/class/em_gpio/em_gpio/$TRG_EN_GPIO/value
echo "step 2: start ptp"
phc2sys -s eth0 -c CLOCK_REALTIME -w -m -u 4 > $PHC2SYSLOG &
sleep 1
ptp4l -i eth0 -s &
echo "step 3: wait phc2sys sync convergence"
num_rms=0
while [ "$num_rms" -lt 3 ]
do
RMS_ARRAY=$(cat $PHC2SYSLOG | tail -n 3 | sed -r 's/.*rms[ ]+([0-9]+).*/\1/g')
# echo "$RMS_ARRAY"
for rms in $RMS_ARRAY
do
if ! [[ $rms =~ $re ]]
then
echo "$rms is NOT an integer!"
break
fi
echo "$rms"
if [ "$rms" -lt 350 ]; then
let "num_rms += 1"
fi
done
# clear log file if rms is convergence
if [ "$num_rms" -ge 3 ]; then
echo "rms is convergence ($num_rms)"
cat /dev/null > $PHC2SYSLOG
else
let "num_rms = 0"
sleep 2
fi
done
echo "step 4: enable pps, and setup trigger time"
echo 1 > /sys/class/ptp/ptp0/pps_enable
TRGTIME=$(date +%s) # get current date in seconds
let "TRGTIME = $TRGTIME + $DELAY"
PPSTIME=$(cat /sys/class/pps/pps0/assert | cut -d '.' -f 1)
echo "TRGTIME = $TRGTIME PPSTIME = $PPSTIME"
echo "step 5: wait pps time reach trigger time"
while [ "$PPSTIME" -lt "$TRGTIME" ]
do
sleep 0.1
PPSTIME=$(cat /sys/class/pps/pps0/assert | cut -d '.' -f 1)
done
echo "step 6: now PPSTIME = TRGTIME, set trg_en"
echo 1 > /sys/class/em_gpio/em_gpio/$TRG_EN_GPIO/value
echo "step 7: wait pps time reach trigger time + 1"
let "TRGTIME = $TRGTIME + 1"
while [ "$PPSTIME" -lt "$TRGTIME" ]
do
sleep 0.1
PPSTIME=$(cat /sys/class/pps/pps0/assert | cut -d '.' -f 1)
done
echo "step 8: clear trg_en"
echo 0 > /sys/class/em_gpio/em_gpio/$TRG_EN_GPIO/value
echo "basename $0 done"

示波器可觀察到,上述腳本產(chǎn)生的TRG_EN信號(hào),準(zhǔn)確使能PPS脈沖產(chǎn)生與之上升沿完全同步的觸發(fā)脈沖TRG_PULSE。

對(duì)分布式系統(tǒng)同步觸發(fā)功能感興趣的客戶,可通過郵件support@emtronix.com與英創(chuàng)公司技術(shù)部門聯(lián)系,以了解詳細(xì)的實(shí)現(xiàn)代碼。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11164

    瀏覽量

    208469
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6083

    瀏覽量

    35097
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    中國唯一受邀出席2024 IEEE ISPCS企業(yè)!賽思ePRTC系統(tǒng)成5G時(shí)頻同步網(wǎng)最強(qiáng)Buff!

    2024年10月7日-11日,國際IEEE1588精密時(shí)鐘同步測量、控制和通信研討(簡稱ISPCS)在日本東京成功舉辦。賽思受邀攜面向5G時(shí)頻同步網(wǎng)的最強(qiáng)Buff—ePRTC系統(tǒng)及相關(guān)
    的頭像 發(fā)表于 10-12 11:20 ?228次閱讀
    中國唯一受邀出席2024 <b class='flag-5'>IEEE</b> ISPCS企業(yè)!賽思ePRTC<b class='flag-5'>系統(tǒng)</b>成5G時(shí)頻<b class='flag-5'>同步</b>網(wǎng)最強(qiáng)Buff!

    分布式故障在線監(jiān)測|高精度技術(shù)選用 行波特征 故診模型

    高精度技術(shù)選用、行波特征及故障診斷模型的相關(guān)信息: 一、分布式故障在線監(jiān)測: 1、工作原理:通過在監(jiān)測對(duì)象(輸電線路)的不同位置分布式地安
    的頭像 發(fā)表于 10-11 12:00 ?5次閱讀

    在KeyStone器件實(shí)現(xiàn)IEEE1588時(shí)鐘方案

    電子發(fā)燒友網(wǎng)站提供《在KeyStone器件實(shí)現(xiàn)IEEE1588時(shí)鐘方案.pdf》資料免費(fèi)下載
    發(fā)表于 09-26 09:10 ?0次下載
    在KeyStone器件實(shí)現(xiàn)<b class='flag-5'>IEEE1588</b>時(shí)鐘方案

    TSN時(shí)鐘同步 | PTP對(duì)時(shí)案例演示——基于NXP i.MX 8M Plus

    )。 IEEE1588協(xié)議簡稱精確時(shí)鐘協(xié)議PTP(Precision Timing Protocol),它的全稱是“網(wǎng)絡(luò)測量和控制系統(tǒng)的精密時(shí)鐘同步
    發(fā)表于 07-10 10:28

    技術(shù)分享】EtherCAT 分布式時(shí)鐘簡介

    分布式時(shí)鐘是EtherCAT技術(shù)亮點(diǎn)之一,其精準(zhǔn)同步使得整個(gè)系統(tǒng)都運(yùn)行在統(tǒng)一的時(shí)鐘下,每個(gè)EtherCAT從站的同步性遠(yuǎn)小于1us。本文將介
    的頭像 發(fā)表于 06-04 08:25 ?518次閱讀
    【<b class='flag-5'>技術(shù)</b>分享】EtherCAT <b class='flag-5'>分布式</b>時(shí)鐘<b class='flag-5'>簡介</b>

    如何實(shí)現(xiàn)PTP協(xié)議的精準(zhǔn)同步時(shí)鐘?

    尊敬的技術(shù)大牛們,你們好! 現(xiàn)有一項(xiàng)目需要用到貴公司的STM32F4系列產(chǎn)品,由于業(yè)務(wù)場景對(duì)時(shí)鐘同步精度要求很高。所以需尋求你們的技術(shù)支撐,提供關(guān)于STM32F4系列的PTP
    發(fā)表于 03-26 07:57

    STM32 IEEE1588時(shí)間同步

    有誰在STM32上實(shí)現(xiàn)過IEEE1588精確時(shí)間同步的嗎?
    發(fā)表于 02-23 16:22

    分布式大屏控制系統(tǒng)的屏幕同步技術(shù)

    分布式大屏控制系統(tǒng)的屏幕同步技術(shù)是確保系統(tǒng)內(nèi)多個(gè)顯示屏幕顯示相同內(nèi)容的關(guān)鍵技術(shù)之一。以下是實(shí)現(xiàn)屏
    的頭像 發(fā)表于 01-29 14:40 ?732次閱讀

    分布式系統(tǒng)硬件資源池原理和接入實(shí)踐

    把各個(gè)設(shè)備的硬件外設(shè)抽象為外設(shè)信息單元,外設(shè)信息在各個(gè)可信設(shè)備之間自動(dòng)同步,如此,實(shí)現(xiàn)了外設(shè)信息的全局可見;結(jié)合分布式硬件虛擬化
    發(fā)表于 12-06 10:02

    zookeeper分布式原理

    Zookeeper是一個(gè)開源的分布式協(xié)調(diào)服務(wù),可以用于構(gòu)建高可用、高性能的分布式系統(tǒng)。它提供了一個(gè)簡單且高效的層次命名空間,可以用來存儲(chǔ)配置信息、狀態(tài)
    的頭像 發(fā)表于 12-03 16:33 ?564次閱讀

    虹科干貨 | 適用于基于FPGA的網(wǎng)絡(luò)設(shè)備的IEEE 1588透明時(shí)鐘架構(gòu)

    IEEE 1588透明時(shí)鐘(TC)架構(gòu),幫助您實(shí)現(xiàn)精確時(shí)間同步和高效通信。 在分布式系統(tǒng)中,傳感器/執(zhí)行器的事件和操作需要進(jìn)行精確的時(shí)間協(xié)
    的頭像 發(fā)表于 11-27 10:57 ?1114次閱讀
    虹科干貨 | 適用于基于FPGA的網(wǎng)絡(luò)設(shè)備的<b class='flag-5'>IEEE</b> <b class='flag-5'>1588</b>透明時(shí)鐘架構(gòu)

    適用于基于FPGA的網(wǎng)絡(luò)設(shè)備的IEEE 1588透明時(shí)鐘架構(gòu)

    IEEE1588透明時(shí)鐘(TC)架構(gòu),幫助您實(shí)現(xiàn)精確時(shí)間同步和高效通信。在分布式系統(tǒng)中,傳感器/執(zhí)行器的事件和操作需要進(jìn)行精確的時(shí)間協(xié)調(diào),因?yàn)闀r(shí)鐘差異可能導(dǎo)致操作失敗。
    的頭像 發(fā)表于 11-23 08:04 ?684次閱讀
    適用于基于FPGA的網(wǎng)絡(luò)設(shè)備的<b class='flag-5'>IEEE</b> <b class='flag-5'>1588</b>透明時(shí)鐘架構(gòu)

    請(qǐng)問W5500芯片是否支持IEEE1588?

    請(qǐng)問W5500芯片是否支持IEEE1588,如果支持的話是否可以提供一段代碼參考。顯示全部
    發(fā)表于 11-03 06:04

    基于TMS320DM642的硬件實(shí)現(xiàn)IEEE1588時(shí)鐘同步

    電子發(fā)燒友網(wǎng)站提供《基于TMS320DM642的硬件實(shí)現(xiàn)IEEE1588時(shí)鐘同步.pdf》資料免費(fèi)下載
    發(fā)表于 10-26 09:05 ?2次下載
    基于TMS320DM642的硬件實(shí)現(xiàn)<b class='flag-5'>IEEE1588</b>時(shí)鐘<b class='flag-5'>同步</b>

    IEEE1588時(shí)鐘同步在PTN網(wǎng)中的實(shí)現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《IEEE1588時(shí)鐘同步在PTN網(wǎng)中的實(shí)現(xiàn).pdf》資料免費(fèi)下載
    發(fā)表于 10-24 09:39 ?0次下載
    <b class='flag-5'>IEEE1588</b>時(shí)鐘<b class='flag-5'>同步</b>在PTN網(wǎng)中的實(shí)現(xiàn)