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