POWERLNK協議筆記
1、基本概念
POWERLINK協議滿足以太網IEEE802.3標準,該協議提供了所有標準的以太網功能特點包括交叉通信和熱熱插拔,允許網絡以任意方式進行拓撲。網絡中指定的PLC/PC作為管理節(jié)點(MN),該管理節(jié)點周期性調度并根據此來同步網絡上的所有節(jié)點,并控制周期性數據通信。其他所有運行設備稱為受控節(jié)點(CN),一個POWERLINK周期分為3個部分:
①在開始階段,MN發(fā)送循環(huán)啟動SoC幀給網絡中的CN,以同步網絡中的所有設備,抖動大概為20ns(納秒)。
②循環(huán)階段,周期性同步數據交換,同時使用多路復用技術來優(yōu)化帶寬。
③異步啟動信號SoA,用于傳輸大容量,非時間苛刻的數據包。
POWERLINK分為實時和非實時域,由于異步階段的數據傳輸支持標準的IP幀,路由器將數據與實時域安全隔離開。
2、詳細資料提供網址:
?
3、系統的通信架構
支持集中控制和分布式控制;集中控制和分布式控制性能沒有明顯的區(qū)別。
4、主站實現
POWERLINK是開源免費的,基于標準以太網硬件。
5、潛在的成本需求
POWERLNK沒有特殊的需求,外部設備為標準的HUB或交換機,內部為標準的HUB(集線器),有源HUB對信號有放大作用。支持熱插拔,允許網絡在帶電狀態(tài)下相互交換設備。
7、POWERLINK協議層劃分
①普通以太網OSI (開放式系統互聯參考模型) 模型:從上至下一次為:應用層/表示層/繪畫層/傳輸層/網絡層/數據鏈路層/物理層
②POWERLINK分為三層:應用層/數據鏈路層/物理層
物理層:遵循IEEE802.3快速以太網標準。
數據鏈路層:主要功能構建解析數據幀/對數據幀定界/網絡同步/數據收發(fā)順序控制/實時通信的傳輸控制。
POWERLINK的通信機制有2種
①請求應答模式
②定時主動上報模式(PRC)
POWERLINK一共有5種數據幀格式:SoC/Preq/Pres/SoA/AsyncData;一個完整的周期包含同步和異步倆個階段;SoC到SoA為同步階段;SoA到AsyncData為異步階段;
SoC是同步信號,每一個循環(huán)周期開始主站都會廣播一個SoC信號,實現時鐘同步和動作同步。
SoA是異步信號,包含請求那個從站的上報數據,AsyncData包含從站上報的數據,但是每個周期只能有一個從站上報異步數據。
應用層:POWERLINK應用層遵循CANopen協議,為應用程序提供了同意的接口,使得不同設備與應用程序之間有統一的訪問接口,CANopen協議有三個主要的部分:
PDO:過程數據對象,可以理解為需要周期性/實時傳輸的數據(在傳統的CANopen協議中最大可以傳輸8字節(jié),在POWERLINK協議中可以最大傳輸1490字節(jié));
SDO:服務數據對象,可以理解為非周期性傳輸/實時性要求不高的數據;
OD:對象字典:是很多對象的集合,而對象可以理解為參數;假設一個設備有很多參數,CANopen通過給每個參數編號來區(qū)分,即索引,它的尋址方式是按編號尋址,不像TCP按IP尋址。
數據如何傳輸需要的關鍵2個參數:
在CANopen協議中數據傳輸需要倆個參數:
網絡參數:將數據發(fā)送到那個站或者接收來自那個站的數據
映射參數:決定如何組成需要發(fā)送的數據包或者如何解析接收到的數據包。
不論接收還是發(fā)送,網絡參數和映射參數必須是成對的:0x1800和0x1A00是對應的,依此類推,0x1801和0x1A01是一對。
?
網絡參數
映射參數
數量
接收
0x1400~0x14fe
0x1600~0x16fe
?
發(fā)送
0x1800~0x18fe
0x1A00~0x1Afe
?
POWERLINK性能及特點:
支持240個節(jié)點,每個節(jié)點支持1500Bytes輸入輸出
循環(huán)周期:100us(高性能CPU或者高性能FPGA)
??????????200us(低性能CPU或者低性能FPGA)
抖動:小于1us,實際循環(huán)周期中最大值與最小值的差值;
POWERLINKMAC尋址遵循IEEE802.3,每個設備的地址都是唯一的,我們稱之為節(jié)點ID;
實時域和非實時域一般使用網關隔離開;
9、在vxworks下移植POWERLINK大概需要做的工作:
在vxworks下使用powerlink需要做哪些工作,以及可行性
1、VXWORSK下Shelltasks的有限級為1,最高優(yōu)先級,需要將其優(yōu)先級降低,防止shell輸入比較長的指令會影響協議棧的運行。
2、初始化高精度時鐘,powerlink需要時鐘精度為us級別,vxworks系統時鐘目前是ms級別;
3、綁定openpowerlink協議棧與vxworks協議棧,初始化協議棧的哥哥模塊;
4、設置CDC文件名,主要在自動配置對象時用。
5、初始化應用;
6、軟件復位操作;
10、Powerlink協議工作機制: (1)等時同步階段
①Preq/Pres請求應答模式
?
Powerlink收發(fā)數據是由主站控制,對于一個主站MN,和n和從站CN的網絡結構來說,主站發(fā)送Soc(絕對時間和相對時間)幀廣播到整個網絡,從站收到主站的Soc幀之后進入等時同步階段,主站發(fā)送給第一個節(jié)點Preq(以太網單播幀)幀,該節(jié)點收到主站發(fā)來的Preq幀后就會上報一個Pres(以太網多播幀),從站回復的幀是廣播的,幀頭有mac地址,所有主從站都可以收到,然后各站根據自己的對象字典得到自己的數據。也就是說,每次從站回復主站時只發(fā)一幀,這幀包含了給主站和其它從站的數據,所有站都能收到該幀,取不取數據要看各站自己的對象字典;當主站收到該從站的pres幀后,完成了一次信息交互;接下來主站與第二個等時同步從節(jié)點進行相同的信息交互,直到所有節(jié)點交互完畢,為一個周期。
Preq/Pres模式時間以及周期的計算:100M/s的網絡,傳輸速率為12.5Bytes/us,完成一個從站所需要的時間為T1 = Tpreq+Tgap+Tpres;
Tpreq:主站發(fā)送給從站preq幀數據的時間;
Tpres:從站發(fā)送給主站pres幀數據的時間;
Tgap:Tpreq和Tpres幀之間的間隙約為2us;
一幀數據的最大長度為1490Bytes,最大的時間Tpreq = 120us;Tpres = 120us;
Tgap = 2us;總的時間T1 = 242us
如果當同時和相同的50個設備已最大數據幀通信的話周期為242*50 = 12.1ms
②PollResponse Chaining(PRC)模式
?
PRC模式省去了主站的Preq數據幀,取而代之的是主站發(fā)送PresMN給所有從站,該幀包含主站周期性上報的PDO數據,同時該幀也是一個時間參考點,支持PRC模式CN發(fā)送數據的時間參考點,從站從接收完PresMN開始計時觸發(fā)發(fā)送數據幀pres幀;主站MN配置PRC模式的CN,使得CN在特定的時間點發(fā)送數據,這個時間點由主站根據網絡的配置情況、網絡延遲計算出來并配置給CN。3個從站主站可以配置CN1在收到PresMN的第5us上傳Pres幀數據,CN2在收到PresMN的第15us上傳Pres數據,CN3在收到PresMN的第25us上傳Pres數據,這樣避免了沖突。
PRC模式時間周期的計算:
T1 = Tpres+Tgap
Tpres:從站發(fā)送給主站pres幀數據的時間;
Tgap:Tpreq和Tpres幀之間的間隙約為2us;
一幀數據的最大長度為1490Bytes,最大的時間Tpres = 120us;
Tgap = 2us;總的時間T1 = 122us
如果當同時和相同的50個設備已最大數據幀通信的話周期為122*50 = 6.1ms
從站采用PRC模式還是preq/pres模式是由主機配置的,每一個從站只能采用這倆種模式中的一種,但是不同的從站可以這倆種模式的任意一種。
③系統中不同周期設備處理
一個系統中既有100ms的周期,也有200ms的周期,以及1s的周期,此時介意將主站系統周期設置200ms,通過多路復用機制來解決其他周期的通信問題。
(2)異步階段
每個周期只能有一個節(jié)點發(fā)送異步報文,如果有多個節(jié)點需要發(fā)送異步報文就需要排隊,在MN中存在一個隊列調度異步數據的發(fā)送權。當CN需要發(fā)送一個異步幀的時候,則通過pres幀或者Statues Response幀通知MN,MN的異步調度器決定異步幀發(fā)送的權限在那個周期被允許,保證發(fā)送請求不會被延遲不確定的時間長度
(3)空閑階段
空閑階段是在異步階段終點和下一周期的起點之間剩余的時間間隔。
?
11、POWERLINK與TCP、UDP的區(qū)別 (1)異步數據在網絡繁忙時數據發(fā)送的確定性
POWERLINK網絡所有節(jié)點通信周期與收發(fā)數據的時間具有確定性,而TCP/UDP在網絡繁忙的時候傳輸時間是不確定的。這主要基于POWERLINK協議有專管理受控節(jié)點CN數據發(fā)送的隊列,具有優(yōu)先級,當CN節(jié)點告訴MN節(jié)點需要進行發(fā)送異步數據的時候,MN節(jié)點會確切的告訴CN節(jié)點在哪個周期進行發(fā)送數據,而不會讓CN節(jié)點無限期的等待MN發(fā)來的數據發(fā)送的權限。
(2)實時域和非實時域隔離
POWERLINK的實時域即周期性傳輸的數據與非實時域(異步數據)是分離開的,保證了實時數據的實時性。
(3)收發(fā)數據具有統一的管理MN(主站)
所有CN(受控節(jié)點即除主站外的所有從站)收發(fā)數據都是受MN來控制在管理的,相互間收發(fā)數據不會出現網絡沖突的現象。
(4)尋址方式的不同
TCP/UDP是依靠IP(網絡地址)尋址,而POWERLINK是通過自身編號尋址,該編號由MN(主站)統一管理分配。
(5)發(fā)送機制的區(qū)別
對于TCP來說如果發(fā)送失敗會進行重發(fā),但是POWERLINK沒有重發(fā)機制,在本周起發(fā)送出去沒有得到目標對象的回應,本周期不會重發(fā),而會在下一周期重新發(fā)送。
(6)周期的精確性
POWERLINK最小可以實現200us左右的周期,POWERLINK的周期會隨著CN節(jié)點的增加和減少而變化(在受控節(jié)點相當多的情況下,訪問所有節(jié)點加起來的時間大于設定的MN的周期,不過一般不會出現);