0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(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ā)簡(jiǎn)介

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

IEEE1588是精確網(wǎng)絡(luò)對(duì)時(shí)協(xié)議,簡(jiǎn)稱(chēng)PTP。它通過(guò)硬件實(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í)間同步的硬件脈沖,通常稱(chēng)為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í)際的測(cè)試中發(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),再通過(guò)一個(gè)簡(jiǎn)單的D觸發(fā)器生成最后的觸發(fā)脈沖。硬件方案涉及3個(gè)信號(hào)如下:

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

●TRG_EN:觸發(fā)使能,通常用一位GPIO來(lái)實(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管腳作為T(mén)RG_EN,本方案沒(méi)有限制??筛鶕?jù)設(shè)備的具體情況來(lái)確定。

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

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

#!/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"

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

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

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

    關(guān)注

    87

    文章

    11123

    瀏覽量

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

    關(guān)注

    7

    文章

    6081

    瀏覽量

    34940
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

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

    分布式時(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 ?444次閱讀
    【<b class='flag-5'>技術(shù)</b>分享】EtherCAT <b class='flag-5'>分布式</b>時(shí)鐘<b class='flag-5'>簡(jiǎn)介</b>

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

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

    STM32 IEEE1588時(shí)間同步

    有誰(shuí)在STM32上實(shí)現(xiàn)過(guò)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 ?602次閱讀

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

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

    zookeeper分布式原理

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

    虹科干貨 | 適用于基于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 ?1021次閱讀
    虹科干貨 | 適用于基于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 ?583次閱讀
    適用于基于FPGA的網(wǎng)絡(luò)設(shè)備的<b class='flag-5'>IEEE</b> <b class='flag-5'>1588</b>透明時(shí)鐘架構(gòu)

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

    請(qǐng)問(wèn)W5500芯片是否支持IEEE1588,如果支持的話(huà)是否可以提供一段代碼參考。顯示全部
    發(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)

    分布式文件系統(tǒng)的設(shè)計(jì)原理是什么?

    什么是分布式文件系統(tǒng)?分布式文件系統(tǒng)(DFS)是一種計(jì)算機(jī)文件系統(tǒng),使用戶(hù)能夠從多個(gè)分布式位置存
    的頭像 發(fā)表于 10-17 17:35 ?678次閱讀

    淺談網(wǎng)絡(luò)精確時(shí)間同步—PTP(IEEE1588)

    。IEEE1588 協(xié)議是通用的提升網(wǎng)絡(luò)系統(tǒng)定時(shí)同步能力的規(guī)范,在起草過(guò)程中主要參考以太網(wǎng)來(lái)編制,使分布式通信網(wǎng)絡(luò)能夠具有嚴(yán)格的定時(shí)
    的頭像 發(fā)表于 10-09 10:58 ?7809次閱讀
    淺談網(wǎng)絡(luò)精確時(shí)間<b class='flag-5'>同步</b>—PTP(<b class='flag-5'>IEEE1588</b>)

    中國(guó)唯一參會(huì)企業(yè)!賽思ISPCS 2023倫敦展圓滿(mǎn)收官!

    時(shí)鐘的分布式應(yīng)用。IEEE1588精密時(shí)鐘同步測(cè)量、控制和溝通國(guó)際研討會(huì)ISPCS展覽是IEEE1588精密時(shí)鐘同步測(cè)量、控制和溝通國(guó)際研討
    的頭像 發(fā)表于 09-28 11:39 ?1070次閱讀
    中國(guó)唯一參會(huì)企業(yè)!賽思ISPCS 2023倫敦展圓滿(mǎn)收官!