色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

同一網絡,同一瞬間!一起玩轉1588!

先楫半導體HPMicro ? 2022-08-03 10:05 ? 次閱讀

在HPM6700/6400系列微控制器上,提供了2個以太網控制器。都可以支持IEEE1588-2002IEEE1588-2008標準。方便用戶實現基于網絡的精確時間同步。

本文提供了與HPM6700/6400系列微控制器基于網絡的IEE1588的功能示例和使用指南。


IEEE1588簡介

IEEE1588的全稱是網絡測量和控制系統的精密時鐘同步協議標準(PTP – Precision Time Protocol)。目前為2個版本,分別為IEEE1588(v1)和IEEE1588(v2)。IEEE1588的目的是為了對全網設備時鐘同步,這對于網絡設備在控制和采集同步尤為重要。本節簡單介紹IEEE1588的基礎知識,詳細的協議描述,請參考相關網站。

1588的同步原理

1588的原理是通過網絡中的主設備對從設備發送特殊的報文并以此和從設備進行交互得出時間的偏離以進一步將設備時鐘同步。如下圖所示:

33458b70-0f88-11ed-9ade-dac502259ad0.png

端口在t1時刻發送同步報文,并在接下來的報文中發送t1點的時間,從端口在t2時間點收到同步報文并在t3時刻發送響應給主端口,主端口在收到從端口的響應后再將t4時刻發送給從端口。


在這個過程中,得到網絡延遲和時鐘偏差。

Toffset=((t2 - t1) + (t4 – t3)) / 2

Tdelay=((t4 - t1) -(t3 – t2)) / 2

在整個網絡拓撲中,所有的節點定期的進行時鐘同步,最終達到納秒(IEEE1588-2008)或者微秒級(IEEE1588-2002)的精度。


HPM67/64系列1588功能介紹

IEEE1588本身是基于以太網提出的,因此其詳細使用以及寄存器描述請參見HPM6700/6400用戶手冊的第60章

使用1588功能,首先要為該功能賦予時鐘源。因為HPM6700/6400有2個以太網控制器,ENET0, ENET1。因此,控制器為1588設立了2個時鐘源,分別為:

CLOCK_TOP_PTP0;

CLOCK_TOP_PTP1。


HPM6700/6400微控制器上,CLOCK_TOP_PTP0/1分別作為ENET0/1的1588時間戳計數器的運行時鐘,其默認頻率選擇是使用PLL1CLK1輸出, PLL1CLK1的默認輸出為400MHz,默認時鐘分頻系數為4,因此CLOCK_TOP_PTP0/1的默認頻率為100MHz。用戶可以根據自己的需要設置成不同的頻率作為輸入。

clock_set_source_divider(clock_ptp0, clk_src_pll1_clk1, 4);clock_set_source_divider(clock_ptp1, clk_src_pll1_clk1, 4);

用戶需要設置以下幾個寄存器來實現相應的1588功能

TS_CTRL 時間戳控制寄存器

SUB_SEC_INCR 次-秒增量寄存器

SYST_SEC 系統時間 – 秒寄存器

SYST_NSEC 系統時間 – 納秒寄存器

SYST_SEC_UPD 系統時間 – 秒更新寄存器

SYST_NSEC_UPD 系統時間 – 納秒更新寄存器

TS_ADDEND 時間戳加法寄存器

當確定好輸入頻率后,用戶需要在SUB_SEC_INCR中填寫增量值。它的填寫主要依靠2個因素,一個是TS_CTRL中的第9位TSCTRLSSR,另一個因素是前面提到的輸入頻率。

TSCTRLSSR是計數方式的選擇,當其置1時,SYS_NSEC納秒寄存器到0x3B9AC9FF時翻轉;當其置0時,SYS_NSEC納秒寄存器到0x7FFFFFFF時翻轉。SYS_NSEC每翻轉一次代表時間上的1秒鐘。因此,當TSCTRLSSR置1時,SYS_NSEC中的1代表1ns;當TSCTRLSSR置0時,SYS_NSEC中的1代表0.465ns。SUB_SEC_INCR.SSINC中的數代表著輸入頻率所對應的時間,它會根據SYS_NSEC中1個計數所代表的時間進行相應的折算。

例如,當輸入頻率為100MHz時,一個clock是10ns,當TSCTRLSSR置1時,則SUB_SEC_INCR.SSINC設為10(10/1);當TSCTRLSSR置0時,則SUB_SEC_INCR.SSINC設為21(10/0.465)。

建議用戶將TSCTRLSSR置1,這樣理解和計算都更方便。


SYST_SEC和SYST_NSEC為MAC維護的時間戳。SYST_SEC為秒級時間戳,SYST_NSEC為納秒級時間戳。其中SYS_NSEC會根據TSCTRLSSR的設置在不同的數據下翻轉。當TSCTRLSSR置1時,它將會在0x3B9AC9FF時翻轉,當TSCTRLSSR置0時,它將會在0x7FFFFFFF時翻轉。


SYST_SEC_UPD和SYST_NSEC_UPD為更新時間戳的寄存器,如果需要減少納秒時間,需要將SYST_NSEC_UPD中的最高位置1,如果需要增加納秒時間則需要將SYST_NSEC_UPD中的最高位置0。


假設時鐘同步算法發現時鐘偏慢,希望將累加的步長調整為10.1 ns,這時,可以保持SUB_SEC_INCR.SSINC為10,設置ADDEND = 0xFFFFFFFF * (0.1) = 0x19999999。此時,可以視為累加的等效步長為10.1 ns。

假設時鐘同步算法發現時鐘偏快,希望將累加的步長調整為9.9 ns,這時,需要設置SUB_SEC_INCR.SSINC為 9,設置ADDEND = 0xFFFFFFFF * (0.9) = 0xE6666666。此時,可以視為累加的等效步長為9.9 ns。


注意,以上所有的寄存器的寫入都是需要通過設置TS_CTRL中相應的狀態位為1,等待此位為0時,認為設置成功。


在先楫提供的SDK中,可以直接調用

../../hpm_sdk/drivers/src/hpm_enet_drv.c進行設置

void enet_init_ptp(ENET_Type *ptr, enet_ptp_config_t *config)void enet_set_ptp_timestamp(ENET_Type *ptr, enet_ptp_time_t *timestamp)

1588例程分析

在先楫發布的SDK中,可以找到1588的實現例程v1(即IEEE1588-2002)

..\..\hpm_sdk\samples\lwip\lwip_ptp\v1

其中包括master和slave, 分別對應主端口和從端口。在不改動任何設置的情況下,用戶需要2塊進行測試,一塊作為主端口,另一塊作為從端口。為了測試IEEE1588的時鐘同步性能,我們采用了2塊HPM6750EVK,分別燒寫master和slave的程序。

需要注意一下2塊板子的ip地址應該是不同的。默認的例程使用的是板子上的RMIIPHY,用戶可以根據自身的需求更換成RGMII PHY進行測試。

1. 代碼分析


初始化系統,首先初始化IO,以太網芯片以及設置1588的時鐘。

board_init();board_init_enet_ptp_clock(ENET);board_init_enet_pins(ENET);enet_init(ENET);

在初始化以太網芯片成功后,初始化lwip,設置網絡參數,ptp時鐘

enet_ptp_init();lwip_init();netif_config();user_notification(&gnetif);ptpd_Init();

接受網絡時鐘同步數據包,并以此進行時鐘校正。如此往復。

while (1) {ethernetif_input(&gnetif); ptpd_periodic_handle(localtime);}

2. 測試方法


因為1588的時鐘精確同步功能需要在網絡中實現,因此先楫用了2塊HPM6750EVK通過對接的方式測試。在分別燒入了master和slave的程序后,通過網線直接連接板子上的RJ45(J10)端口。如圖所示:

337a8c58-0f88-11ed-9ade-dac502259ad0.jpg

系統上電后,在從端口的串口中顯示

(D 1651074120.060559130) state PTP_SLAVE(D 1651074121.919880830) addForeign: new record (0,1) 1 1 98bc9f:18(D 1651074121.923243890) event MASTER_CLOCK_CHANGED(D 1651074121.925549510) state PTP_UNCALIBRATED(D 1651074121.927681110) toState: Q = 0, R = 5(D 1651074123.919898550) updateOffset(D 1651074123.921597570) updateClock seconds(D 1651074134.003162180) setTime: resetting system clock to 1651074134s 3162050ns(D 1651074134.006781080) initClock(D 1651074134.008349500) one-way delay: 0s 0ns(D 1651074134.011270660) offset from master: -10s -79562820ns(D 1651074134.014279260) observed drift: 0(D 1651074135.999474620) updateOffset(D 1651074136.001174640) one-way delay: 0s 0ns(D 1651074136.004096190) offset from master: 0s 10170ns(D 1651074136.007017370) observed drift: 169(D 1651074137.999480800) updateOffset(D 1651074138.001180620) one-way delay: 0s 0ns(D 1651074138.004101330) offset from master: 0s 14370ns(D 1651074138.007022680) observed drift: 408

3. 測試結果

通過對結果的比對,我們將時間戳的偏移值進行比較,得到下圖:


339c46d6-0f88-11ed-9ade-dac502259ad0.png

從圖中可以看到,在同步之初,時間的偏差較大,但經過最初的快速調整后,時鐘精確在±10us之內。這對于IEEE1588-2002來說,已經是非常好的效果。

總結

本文介紹了HPM6700/6400系列微控制器的以太網1588功能的使用和示例的演示。在IEEE1588-2002下,100MHz的網絡測試中得到了很好的效果。對于1588-2008版本的測試,會在后續的文檔中推出。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    16332

    瀏覽量

    177812
收藏 人收藏

    評論

    相關推薦

    LV和組態王上位機軟件在同一電腦通過網線讀寫同一個PLC失敗

    問題:LV和組態王上位機軟件在同一電腦通過同一個網卡、同一根網線和IP讀寫同一個PLC失敗 PLC型號:西門子S7-200 smart 現狀:非標設備自帶組態王上位機軟件,因整條產線有
    發表于 10-18 08:26

    使用tlv320aic3101音頻芯片時,發現在播放的一瞬間,會聽到咔的聲,為什么?怎么解決?

    我在使用tlv320aic3101音頻芯片時,發現在播放的一瞬間,會聽到咔的聲。后面查找原因,發現是放大電路部分,有個電容,該電容在播放的一瞬間,產生了
    發表于 10-14 08:23

    工業NAT網關實現不同網段IP轉換成同一網

    的無縫通信,讓不同網段IP的設備能夠相互訪問,物通博聯提供基于工業NAT網關的解決方案,能夠將不同網段的IP地址轉換成同一網段的IP地址,從而簡化網絡管理,提升數據傳輸效率。 工業NAT網關能夠實現對 PLC、HMI、CNC、DCS、MES等
    的頭像 發表于 09-23 15:24 ?250次閱讀
    工業NAT網關實現不同網段IP轉換成<b class='flag-5'>同一網</b>段

    用LM2903做了個窗口比較器電路,比較器輸出個變化的電平導致LED閃爍怎么解決?

    我用LM2903做了個窗口比較器電路,在8.6V 至8.9V輸入時,比較器輸出個變化的電平,導致我后面LED 閃爍,請問有什么辦法可以解決?還有就是在電壓低于窗口下限電壓時,接電源的一瞬間
    發表于 09-18 08:44

    多個網站放在同一臺服務器ip有什么影響?

    將多個網站放在同一臺服務器上,使用同一個IP地址,可能會有以下影響: 1、資源共享:多個網站共享同一臺服務器的資源,如CPU、內存、存儲空間和帶寬。如果其中個網站流量或資源消耗突然增
    的頭像 發表于 09-12 11:15 ?539次閱讀

    為什么臺燈亮下就滅了?

    把臺燈上燒壞的電阻換掉后發現每次只有上電的一瞬間能微微亮下,并且電阻非常燙,懷疑是電阻功率不夠,就搞了幾個并聯,但還是樣,每次上電的一瞬間能亮
    發表于 07-05 23:07

    如何減少無線網絡同一信道內的干擾?

    減少無線網絡同一信道內的干擾是個復雜的問題,它涉及到無線通信的多個方面,包括信道管理、硬件設計、信號處理以及網絡協議等。
    的頭像 發表于 05-22 15:53 ?1537次閱讀

    二合一網絡信號防雷器應用解決方案

    導致網絡系統癱瘓。為了保護網絡設備免受雷電和電涌的侵害,地凱科技網絡信號防雷器應運而生。二合一網絡信號防雷器是種集成了
    的頭像 發表于 05-21 10:52 ?420次閱讀
    二合<b class='flag-5'>一網絡</b>信號防雷器應用解決方案

    六類網線可以和強電一起走嗎

    六類網線理論上不建議和強電一起走。從布線規范的角度來看,弱電線路和強電線路通常不建議共用同一橋架,以避免潛在的電磁干擾。然而,多年的施工經驗表明,在某些情況下,強電線和弱電網線可能一起
    的頭像 發表于 04-19 09:55 ?5563次閱讀

    STM32上電一瞬間GPIO是處于什么狀態?

    STM32 芯片上電一瞬間 GPIO是處于什么狀態?是高阻態嗎?還是還是高電平,記得51是高電平,請各位大佬指點一二。
    發表于 03-13 07:00

    SMT貼裝的常見缺陷,AOI機器一網打盡

    SMT貼裝的常見缺陷,AOI機器一網打盡
    的頭像 發表于 03-01 10:49 ?946次閱讀

    個進程內多次使用open打開同一個文件,可以嗎?

    個進程內多次使用 open 打開同一個文件時,每次都會得到個新的文件描述符(file descriptor)。
    的頭像 發表于 02-27 13:54 ?1264次閱讀

    蘋果手機用同一個id怎么取消同步

    蘋果手機用同一個id怎么取消同步? 取消蘋果手機間的同步功能可以通過以下步驟完成。請注意,這些步驟適用于iOS 11及更高版本。 步驟1:打開“設置”應用程序 首先,打開您的iPhone或iPad
    的頭像 發表于 02-19 10:19 ?3140次閱讀

    LTC1624在上電的一瞬間,電源芯片會發生異常如何解決?

    我用LTC1624設計了個24V轉5V的降壓電路,功率大概5V@1A。 偶爾會發生,在上電的一瞬間,電源芯片會發生異常,導致輸出電壓只有2點幾V。且需要斷電重啟,才能恢復。 請問是什么原因導致該
    發表于 01-08 08:01

    二合一網絡防雷器的原理、作用和應用方案

    二合一網絡防雷器(二合信號浪涌保護器) 是種集電源防雷和網絡信號防雷為體的防雷設備,主要用于監空系統前端高清
    的頭像 發表于 12-25 10:41 ?2884次閱讀
    二合<b class='flag-5'>一網絡</b>防雷器的原理、作用和應用方案
    主站蜘蛛池模板: 国产一区二区波多野结衣| 艳鉧动漫1~6全集观看在线| 欧美性色xo影院69| 美女脱得只剩皮肤| 女生扒开尿口| 日本 一二三 不卡 免费| 全免费午夜一级毛片| 伸到同桌奶罩里捏她胸h| 宿舍BL 纯肉各种PLAY H| 小妇人电影免费完整观看2021| 摥管专用动态图399期| 亚洲福利网站| 中文人妻熟妇精品乱又伦| acg全彩无遮挡口工漫画网址| bt天堂午夜国产精品| 搞基福利社| 激情丛林电影完整在线| 乐乐亚洲精品综合影院| 日韩精品 电影一区 亚洲高清| 色人阁综合| 一个人看的WWW高清电影| 99精品免费观看| 国产人妻精品午夜福利免费不卡| 精品精品国产自在现拍| 欧美A级肉欲大片XXX| 亚洲 欧美 制服 视频二区| 2018久久视频在线视频观看| 高h全肉图| 老年日本老年daddy| 手机在线亚洲日韩国产| 在线观看国产日韩| 国产精品一区二区AV97| 美女脱光app| 亚洲一区二区三区乱码在线欧洲 | 色哟哟网站入口在线观看视频| 亚洲精品一区国产欧美| 别停好爽好深好大好舒服视频| 久久成人国产精品一区二区| 天堂无码人妻精品AV一区| 91麻豆精品国产一级| 精品久久久麻豆国产精品|