日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

EtherCAT总线通信Freerun、SM、DC三种同步模式分析

發布時間:2024/3/12 编程问答 104 豆豆
生活随笔 收集整理的這篇文章主要介紹了 EtherCAT总线通信Freerun、SM、DC三种同步模式分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

EtherCAT總線三種同步模式分析

一、 分布式時鐘作用

使所有EtherCAT設備使用相同的系統時間,從而控制各設備任務的同步執行。

二、 名詞解析

1、 現場總線高速數據傳遞:即主站周期的向從站發送輸出信息并周期地讀取從站的輸入信息
2、 Output Valid:輸出有效,指的是主站輸出有效,表示的是從站將數據幀中對應數據從同步管理器通道上下載下來的一個過程。
3、 Input Latch:輸入鎖存,鎖存信號(LATCH0/1)用于給外部信號打上時間戳(time stamp) (在DC模式下主站對時的過程中,一般指的是從站鎖存主站數據幀到達的時間戳,然后將該時間戳數據寫入到同步管理器通道上,讓主站取走方便主站進行從站之間時間偏移補償和漂移補償)。
4、 (Output)Shift Time:指的是主站發送數據幀的起始時間到與從站Sync0 Event事件信號觸發之間的時間間隔。
5、 (Input)Shift Time:只對輸入模塊有效,表示輸入有效信號,指的是Sync0 Event事件信號后的一個固定延時時間或者Sync1 Event事件信號,用于設置Input Latch觸發信號。
6、 SM Event:EtherCAT總線通信的機制就是Frame數據幀到達從站后會觸發SM Event事件信號
7、 Sync0 Event:同步事件信號是由我們在主站TwinCAT上自定義的一個時間同步觸發事件信號,SYNC0 是最常用的同步信號,由DC產生,固定周期觸發
8、 Sync1 Event:指的是Input Latch輸入鎖存的一個事件觸發信號,SYNC1信號不獨立存在,通常是在SYNC0觸發之后,延時一段時間觸發,SYNC1觸發周期可以是SYNC0的整數倍

三、 EtherCAT網絡中各個站點之間時鐘計數不一致的兩個原因

1、時鐘偏移:各個站點啟動的順序不同,初始化流程也不同,因此各個從站本地時鐘開始計數的時間本身就是不一致的,這種偏差被稱為時鐘的偏移
2、時鐘漂移:受不同溫度、壽命與物理特性的影響,各個時鐘的晶振源的頻率并不完全一樣,因此隨著運行時間的增加,原本一致的時鐘也會逐漸產生偏差,這種偏差被稱為漂移

四、 時鐘偏移和時鐘漂移分別的解決思路

1、針對時鐘偏移->偏移補償(初始化)

1. 記錄主站時間并廣播一個鎖存各從站時鐘的報文。(DC下是記錄第一個從站的時間) 2. 依次讀取各從站被鎖存的時間,計算鎖存的從站時間與記錄的主站的差。(計算其他從站與第一個從站的時間差) 3. 將這各個從站的時鐘差值附加到從站的本地時鐘上。

2、針對時鐘漂移->漂移補償(定期)

  • 在從站中選擇第一個支持分布式時鐘功能的站點作為參考時鐘。
  • 在位移補償之后,主站在每個周期中對參考時鐘的時鐘計數執行單讀單寫(RMW)指令,讀取其時間并廣播到其他從站中。
  • 其他從站會將自身時間與接收到的參考時間進行比較。比參考時鐘快的從站會降低計數器在每次晶振震動時的加值,而較慢的從站會增加計數器的加值。
  • 動態補償在系統的整個運行階段內持續運行,保證時鐘都始終維持收斂。
  • 五、 分布式時鐘的三種同步模式

    1 Free Run模式


    1、每個從站的定時周期都不一樣
    2、每個定時周期到的時候,每個從站去執行自己的程序,<比如檢查通道上有沒有合適的新的輸入數據,有的話就令其輸出有效(Output valid)或者檢查有沒有需要輸入的數據,將其放到對應的同步管理器通道上(input prepare)讓主站取走>
    3、對于Free Run 模式而言,好比每個人都有自己的手表,但是如果沒有一起對時的話。手表的本身的時間是不一樣的(可能表和表之間存在時間差,一個8點一個10點),那么在這種情況下,公司如果要求9點上班,那么每個人到公司的時間都是自己手表上的9點,但是不是統一的9點,他們到達公司的時間是不一樣,所以Free Run模式沒有任何的同步性可言

    2 SM同步機制(Sync Manager同步管理器)



    1、一般而言,如果EtherCAT總線通訊時的同步模式不是DC模式,那么就是SM同步模式了,
    2、SM(Sync Manager同步管理器)指的是同步管理器的同步,它的觸發方式是通過SM Event,也就是我們的數據幀在到達對應的從站的時候,會觸發一個叫做同步管理器事件的信號(即SM Event),當從站接受到這個信號的時候,會進入到對應的中斷服務例程(即中斷保存當期任務,去執行插入的中斷例程,這里指線程中斷處理相關數據,這也是SM Event和 Free Run的不同之處),即SM是通過中斷服務例程來處理對應的數據。
    3、從站檢測到SM Event事件信號的時候會進入到中斷服務例程去處理相應的數據(比如把輸出數據有效,然后把輸入數據放到同步管理器的通道上讓主站取走)
    4、由于SM同步模式是根據數據幀到達特定從站的時候來觸發SM Event事件信號來進行同步,那么對于一個特地給的幀來說,它到達每一個從站的時間必然是不同的,當系統很龐大的時候,每個從站接收到數據幀的時間就會相差很大,越在后邊的從站接收到數據幀的時間就越晚,它的同步效果就越差。
    5、手表舉例:10個人10個表,10個人開始對表,從0開始計時,當上一個人完成了對表計時之后,才通知到下一個人進行對表計時,依次傳遞,那么到最后的第10個人它開始計時的時間是最晚的。完成對時之后,如果公司要求是10點上班,每個人按照自己手表上的10點到達,那么第10個人一定是最晚的。

    3 簡單DC同步機制(Sync0 Event)

    1、Sync0 Event和SM Event事件信號是類似的,他們都是一個中斷事件信號,對于一個從站而言,如果中斷信號觸發了而且中斷屏蔽寄存器沒有屏蔽掉該中斷信號,那么從站就會進入到中斷服務例程
    2、中斷服務例程就是說從站從主循環中跳出,暫停并保留主程序狀態,然后執行中斷服務例程這一部分內容,比如說周期性數據的輸出<周期性數據的實時性比較強,那么中斷信號可以滿足這種比較強的實時性需求,不會因為其他信號來耽誤它的操作,其它的中斷信號會進入等待狀態直到前一個中斷信號被恢復,即進入到恢復現場階段>
    3、不同于SM Event的地方是Sync0 Event是根據我們自己設定的延時時間觸發而不是幀到達時候才觸發
    4、注意,雖然簡單DC同步機制中沒有用到SM Event事件信號,但是它依舊是存在的,因為只要當Frame幀到達從站的時候就會觸發SM Event事件信號,這里只是不用到該信號來進行觸發而已,(但是應該明白不管是哪一種同步機制,SM Event都是存在的,當從站接受到數據幀的時候都會產生SM Event事件信號)

    4 簡單DC同步機制的時序分析


    1、除了Sync0 Event信號之外,還可以看到有一些其他的信號,包括Output Valid和Input latch信號,像這些信號都是TwinCAT主站在初期設置的時候可以設置的內容,Output Valid表輸出有效,實際上是主站在Sync0 Event事件信號觸發后的基礎上作了一定的時間偏移
    2、偏移時間(Output Delay Time)是可以在TwinCAT上看到并且可以手動調整的
    3、Input Latch的偏移時間也是在TwinCAT上可以調整的,所以說以上兩部分內容都是可以靈活設置的
    4、手表舉例:10個人10快手表,它們的時間在和參考時間對時之后,每個人的時間都是和參考時間同步,他們的時間是一樣的,公司要求9點上班,那么他們按照各自的時間準時達到也是一致的。

    5 DC同步機制優化


    1、優化的DC模式同時使用了SM Event事件信號和Sync0 Event事件信號,而簡單DC同步機制只是使用Sync0 Event這一種事件信號進行同步,《同樣應該明確的是,無論使用哪一種同步模式,只要當數據幀Frame到達從站的時候都會觸發對應的SM Event事件信號》
    2、==在這種優化的DC模式中,當對應的SM Event事件信號觸發后,從站會進入到中斷服務例程進行數據的處理《把數據幀Frame中對應的所需數據進行計算,然后復制到管理器通道對應的用戶區域,等待Sync0 Event同步信號觸發之后讓從站取走,然后SM Event中斷完成,恢復現場》,==然后等待Sync0 Event信號的觸發到來,也就是同步信號的觸發,可以看到由于之前SM Event中斷中已經完成了前期數據的處理,當Sync0 Event同步信號觸發時,程序進入到中斷服務例程,就只需要很短的一段Output Delay Time,馬上就進入到Output Valid(輸出有效)狀態。
    3、這種優化版的DC同步機制相對于之前的簡單DC模式,優點就是Output Delay Time輸出延時沒有那么長了,主要是因為第二種優化的DC模式利用SM Event事件信號的觸發完成了前期從數據幀中對應從站數據的計算和復制到管理器通道上,所以當Sync0 Event同步信號觸發后,只需要從管理器通道取走已經計算并復制好了的數據,進入到輸出有效Output Valid的延時時間自然就比較短了,而第一種簡單的DC模式只是使用到了Sync0 Event同步信號,所以當Sync0 Event觸發后,需要在Output Delay Time時間內完成數據的復制和計算,所以簡單DC模式下的Output Delay Time延時時間就會比較長。

    6 DC同步丟幀

    1、問題描述:在使用DC模式的時候會出現一種同步丟幀的情況,就是說數據幀在到達尾端從站之前,所有從站的Sync0 Event同步事件信號就已經觸發了,也就是說數據幀傳輸的太慢,可能還來不及到達尾端從站,但是它的同步事件信號已經觸發了,而此時從站卻從管理器通道上獲取不到數據幀中對應的數據,從站就會判斷數據幀丟失了,這就是同步丟幀的問題。
    這種問題一般在考前的從站中發生較少,當一個系統較大時,尾端的從站接收到數據幀的時間也比較晚,因為存在物理傳輸時間,所以越后面的從站接收到的數據幀時間就越晚,==(雖然Sync0 Event事件信號在完成DC對時之后是同步觸發的,但是數據幀的傳遞時間是依次遞增的),==如果我們剛開始留出的偏移時間(shift time)不夠大的話就有可能在尾端從站發生同步丟幀的情況
    2、解決方案:把第一個從站和主站之間的偏移時間調大,可以在TwinCAT中對Shift Time進行調整。(由于Sync0 Event是同步觸發的,只需要設置好第一個從站和主站之間的Shift time,后面的從站和主站的Shift Time也都是這個值)。

    7 優化DC模式的時序分析


    1、當數據幀Frame依次到達每一個從站的時候,EtherCAT的機制會觸發SM Event事件信號,(數據幀依次發送到各個從站的時間是一個慢慢變長的延時時間,這是硬件上必然發生無法改善的事情)。
    2、然后從站會把數據幀上從站需要的數據進行計算并復制到同步管理器通道上,然后會進行中斷事件恢復,
    3、主程序等待一個DC Sync Signal同步事件中斷信號(也就是Sync0 Event),這個Sync0 Event同步事件信號是所以從站同時觸發的,就像規定的9點上班一樣<這里的前提是主站已經通過發送幀對各個從站完成了對表計時步驟,各個從站的時間是同步一致的>。
    4、當Sync0 Event事件信號同步觸發時候,由于之前已經完成了數據的計算和復制,那么此時的輸出抖動會非常小,約為15ns,(輸出抖動jitter和主站有關,在SM Event事件之前由主站觸發),同時同步性能也會非常好(Output Delay time會很短,Output Valid輸出有效很快觸發)。
    5、在Output Valid輸出有效觸發之后,從站會等待一個Input Latch信號,它可以是Sync1 Event事件信號,也可以是Sync0 Event事件信號觸發后一段固定的延時時間,這取決于我們在TwinCAT上的設置情況。

    六、 總結

    總體的DC分布式時鐘模式匯總如下流程所示:

    總結

    以上是生活随笔為你收集整理的EtherCAT总线通信Freerun、SM、DC三种同步模式分析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。