工業以太網的三種實時路線


首先分分類,以下幾個同學在不同的OSI層級上實現實時性,所以性能及通用性都各有千秋。

總的來說,第一梯隊的Ethercat/SERCOSIII/PROFINETIRT使用了修改的以太網包,直接改動了鏈路層,所以性能最高但是通用型最差;

第二梯隊的PowerLink和Profinet RT修改了以太網傳輸層而保留了完整的鏈路層,故而實時性能和通用型均處於中間層次;

Ethernet/IP和Profinet直接使用了以太網的傳輸層,由於沖突檢測和故障重傳的機制必然會帶來不確定性和延時,這兩種協議只能實現軟實時。但同時也具有最好的以太網兼容性能。

clip_image001

類型一:軟實時

以Ethernet/IP、Profinet為代表,僅僅在應用層利用軟件方式實現實時性,可以理解成基於“時間控制”的實時(相對“周期控制”而言),即只需保證每個從站在deadline之前收到包,然后通過時間同步來提高實時性。能夠實現這些,以下三大法寶缺一不可:

  1. UDP:基於UDP而不是TCP,UDP更快更簡單而且不需建立連接;
  2. QOS(Quality of Service):保證每個從站在周期結束之前必須收到包;
  3. IEEE1588 :通過IEEE1588協議來讓從站擁有精確的同步時鍾,保證從站動作能夠同步;

類型二:基於以太網幀

以PowerLink和Profinet RT為代表。核心思想是,既然導致以太網不能實時的主要因素是避免介質訪問沖突的CSMA/CD機制帶來的不確定性延時,那么我們修改下介質訪問的方式不就得啦:大家也不要通過監聽和競爭的方式來獲取總線占有權,排排隊分時間片來使用總線就好了。在這種方式下,所有從站不再主動競爭總線使用權,而讓主站作為管理者來調度從站對總線的占用。

最容易想到的方式就是想下圖,一個周期開始,每個從站依次按各自的時間片收發實時數據包,每個實時數據包也是一個以太網包。最后會留一段空余時間來收發非實時的普通以太網數據。

SERCOS III也使用了以下這種時間片的介質訪問方式,但區別是只有非實時階段才使用以太網包,實時階段使用了定制優化了的組幀方式,所以總的來說並沒有兼容以太網的鏈路層。

clip_image002

類型三:基於集束幀

這一類主要是Ethercat和SERCOS-III。

Ehtercat的實現方式可以比喻成一列依次經過所有從站的火車:所有從站的數據集成在一個以太網包中,依次經過每個從站,經過的時候從站從中取出發給自己的下行數據,同時把上行數據塞進包中。所有從站加在一起可以理解成一個以太網節點,而每個從站的數據則是以太網包文中的一個子包。相較於輪詢所有從站的方式,這種方式顯然具有更高的數據吞吐率和更短的通信周期。

clip_image003

SERCOS-III的實現方式稍有區別:一個周期開始先采用時間片划分的方式傳輸完每個從站的實時數據,實時數據結束到周期結束前的一段時間片用來傳輸非實時包,僅非實時包是標准的以太網包。

clip_image004


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM