劉才思,劉 峰,鄭飂默,尹震宇
(1.中國(guó)科學(xué)院大學(xué),北京 100049; 2.中國(guó)科學(xué)院 沈陽(yáng)計(jì)算技術(shù)研究所,沈陽(yáng) 110171;3.沈陽(yáng)高精數(shù)控技術(shù)有限公司,沈陽(yáng) 110171)
?
基于EtherCAT的工業(yè)以太網(wǎng)安全技術(shù)的研究*
劉才思1,2,劉峰2,3,鄭飂默2,3,尹震宇2,3
(1.中國(guó)科學(xué)院大學(xué),北京100049; 2.中國(guó)科學(xué)院 沈陽(yáng)計(jì)算技術(shù)研究所,沈陽(yáng)110171;3.沈陽(yáng)高精數(shù)控技術(shù)有限公司,沈陽(yáng)110171)
摘要:在研究EtherCAT協(xié)議棧,以及EtherCAT的軟、硬件結(jié)構(gòu)特性和幀結(jié)構(gòu)特點(diǎn)的基礎(chǔ)上,分析了EtherCAT工業(yè)以太網(wǎng)存在的通信故障錯(cuò)誤,及其對(duì)應(yīng)的安全通信機(jī)制措施,建立了安全系統(tǒng)體系結(jié)構(gòu)和安全通信協(xié)議模型,設(shè)計(jì)了EtherCAT功能安全通信過程,開發(fā)了安全協(xié)議層軟件。經(jīng)過試驗(yàn)測(cè)試表明,通過在EtherCAT應(yīng)用層之上添加EtherCAT安全通信,并且對(duì)EtherCAT通信報(bào)文中用戶數(shù)據(jù)單元進(jìn)行擴(kuò)展,來實(shí)現(xiàn)關(guān)鍵安全措施,滿足了安全相關(guān)領(lǐng)域通信的要求,保障了EtherCAT系統(tǒng)的安全性和可靠性。
關(guān)鍵詞:EtherCAT;安全協(xié)議;CRC校驗(yàn);殘余錯(cuò)誤率
0引言
工業(yè)制造水平的不斷提高,使得對(duì)于安全相關(guān)技術(shù)的需求更加明顯,要求更加嚴(yán)格。安全,即免受不可接受的風(fēng)險(xiǎn)。安全從開始被認(rèn)為是成本負(fù)擔(dān)和“不可避免的禍”,逐步演化為提高生產(chǎn)率和減少停機(jī)時(shí)間的策略。另外,網(wǎng)絡(luò)安全不僅可以縮短啟動(dòng)時(shí)間,降低布線成本,而且,從長(zhǎng)遠(yuǎn)看,有助于快速高效的維護(hù)。
在國(guó)際標(biāo)準(zhǔn)IEC61508中,定義了安全相關(guān)系統(tǒng)的要求。此標(biāo)準(zhǔn)涵蓋了從概念定義階段到維護(hù)階段的整個(gè)產(chǎn)品生命周期。其中,不僅對(duì)設(shè)備本身做出要求,而且還指定開發(fā)和維護(hù)過程中的要求。
一般來講,要使得總線系統(tǒng)安全的方法有:設(shè)計(jì)一個(gè)全新的總線,或完善現(xiàn)有總線?;陂_發(fā)成本以及兼容性的考慮,大部分現(xiàn)場(chǎng)總線都采用了完善安全功能的措施。
本文的第一部分,將闡述EtherCAT總線的協(xié)議基本結(jié)構(gòu)。第二部分將在第一部分的基礎(chǔ)上,闡明實(shí)現(xiàn)EtherCAT安全的安全需求、相應(yīng)的安全措施以及安全層結(jié)構(gòu)。最后,將討論殘余錯(cuò)誤概率的計(jì)算方法,并給出相應(yīng)的實(shí)驗(yàn)結(jié)果。
1EtherCAT通信協(xié)議結(jié)構(gòu)
1.1EtherCAT協(xié)議結(jié)構(gòu)
EtherCAT是一種工業(yè)以太網(wǎng),它使用了以太網(wǎng)標(biāo)準(zhǔn)IEEE 802.3的物理層以及鏈路層。
EtherCAT將其數(shù)據(jù)幀嵌入到標(biāo)準(zhǔn)的以太網(wǎng)幀中,并在以太網(wǎng)幀類型字段中使用0x88A4作為其標(biāo)識(shí)。嵌入EtherCAT幀的以太網(wǎng)數(shù)據(jù)幀包括以太網(wǎng)幀頭、數(shù)據(jù)部分和幀檢測(cè)序列FCS。以太網(wǎng)幀的數(shù)據(jù)部分包括EtherCAT幀頭、EtherCAT報(bào)文。EtherCAT報(bào)文又分為多個(gè)子報(bào)文,子報(bào)文包括子報(bào)文頭、數(shù)據(jù)和工作計(jì)數(shù)器(WKC)。EtherCAT也可以使用UDP/IP協(xié)議格式傳輸EtherCAT數(shù)據(jù),需要在以太網(wǎng)幀頭和數(shù)據(jù)部分之間插入IP報(bào)頭和UDP報(bào)頭。
1.2EtherCAT通信原理
以太網(wǎng)幀由EtherCAT主站發(fā)送,經(jīng)過每個(gè)從站,一直到網(wǎng)段中的最后一個(gè)從站,當(dāng)拓?fù)浣Y(jié)構(gòu)中的最后一個(gè)從站設(shè)備檢測(cè)到其開放端口時(shí),于是就將幀數(shù)據(jù)返回給主站。每個(gè)從站讀取帶有尋址信息的數(shù)據(jù),同時(shí)在報(bào)文經(jīng)過時(shí)將數(shù)據(jù)插入到幀中,這種數(shù)據(jù)傳輸方式稱為移位同步,即從站設(shè)備讀寫其相應(yīng)數(shù)據(jù),同時(shí)將數(shù)據(jù)幀傳送到下一設(shè)備。EtherCAT主站是一個(gè)網(wǎng)段中唯一一個(gè)可以主動(dòng)發(fā)送EtherCAT幀的節(jié)點(diǎn),所有其他節(jié)點(diǎn)僅向下游轉(zhuǎn)發(fā)幀。
EtherCAT主站通過特定的尋址方式選擇從站,當(dāng)網(wǎng)絡(luò)中有路由器或交換機(jī)時(shí),主站根據(jù)目的MAC地址尋址到目的網(wǎng)段,其中目的地址是目的網(wǎng)段中第一個(gè)從站的MAC地址。當(dāng)數(shù)據(jù)經(jīng)過第一個(gè)網(wǎng)段后,從站將目的地址和源地址互換,因?yàn)閿?shù)據(jù)經(jīng)過全部從站后,要返回給主站。EtherCAT將上述的每個(gè)網(wǎng)段,看做成為一個(gè)以太網(wǎng)設(shè)備。
2EtherCAT安全通信機(jī)制的設(shè)計(jì)
2.1功能安全需求
國(guó)際標(biāo)準(zhǔn)IEC 61508中,將功能安全分為傳感器、通信鏈路、可編程電子設(shè)備和執(zhí)行器幾個(gè)部分報(bào)文在傳輸過程中,由于隨機(jī)、硬件錯(cuò)誤或系統(tǒng)失效,可導(dǎo)致的通信錯(cuò)誤有:
破壞(Corrutpion),由于總線錯(cuò)誤、傳輸介質(zhì)錯(cuò)誤或報(bào)文沖突,而導(dǎo)致報(bào)文受到破壞。如,接收到的報(bào)文未通過CRC校驗(yàn)。
非預(yù)期的重發(fā)(Unintended repetition),由于錯(cuò)誤、故障或沖突,使得報(bào)文在非預(yù)期的時(shí)間點(diǎn)上,出現(xiàn)重發(fā)。如,發(fā)送方在發(fā)出報(bào)文一段時(shí)間內(nèi),沒有接收到接收方的確認(rèn),而再次發(fā)送原來的報(bào)文,導(dǎo)致了通信錯(cuò)誤。
亂序(Incorrect sequence),由于錯(cuò)誤、故障或沖突,導(dǎo)致來自某個(gè)源站的消息的預(yù)定義順序錯(cuò)誤。如,報(bào)文在傳輸過程中,經(jīng)過存儲(chǔ)轉(zhuǎn)發(fā)設(shè)備時(shí),可能出現(xiàn)報(bào)文被覆蓋或者發(fā)生順序改變。
丟失(Loss),由于錯(cuò)誤、故障或沖突,發(fā)出的數(shù)據(jù)沒有被接收,或者沒有收到確認(rèn)。
不可接受的延時(shí)(Unacceptable delay),由于傳輸介質(zhì)錯(cuò)誤、傳輸線路阻塞、沖突等,而導(dǎo)致報(bào)文延時(shí),并超出預(yù)定義的傳輸時(shí)限。
插入(Insertion),由于故障或沖突,導(dǎo)致插入了一個(gè)未知或非預(yù)期源站的報(bào)文。
偽裝(Masquerade),由于故障或沖突,使得非安全數(shù)據(jù)插入到安全報(bào)文中,而接收方卻將其作為安全數(shù)據(jù)處理。
尋址出錯(cuò)(Addressing),由于故障或沖突,使得安全數(shù)據(jù)發(fā)送到錯(cuò)誤的目的設(shè)備,同時(shí)該目的設(shè)備將該報(bào)文視作正確報(bào)文接收,并做出響應(yīng)。
此外,還有可能出現(xiàn)的錯(cuò)誤有:不一致(Unconsistency),當(dāng)一個(gè)報(bào)文有很多接收方時(shí),不同的接收方以不同的方式識(shí)別數(shù)據(jù);另外,還有失序(Out-of-sequence)、回環(huán)(Loopback)錯(cuò)誤。
2.2安全措施
報(bào)文在傳輸中,可能發(fā)生如上所述的錯(cuò)誤:破壞、非預(yù)期的重發(fā)、亂序、丟失、延時(shí)、插入、偽裝和尋址錯(cuò)誤等。我們制定了如下安全相關(guān)的措施:順序號(hào)、時(shí)間戳、時(shí)間預(yù)期、連接認(rèn)證、回傳、數(shù)據(jù)完整性、交叉校驗(yàn)的冗余信息和不同的數(shù)據(jù)完整性系統(tǒng)等。
順序號(hào)(Sequence number),在安全報(bào)文中設(shè)置順序號(hào)字段,使用預(yù)定義的數(shù)字標(biāo)識(shí)報(bào)文與報(bào)文間的邏輯順序。
時(shí)間戳(Time stamp),通信發(fā)送方在其發(fā)送報(bào)文中插入時(shí)間或時(shí)間數(shù)據(jù),用以表示報(bào)文發(fā)送時(shí)間。
時(shí)間預(yù)期(Time expectation),通常作為接收方用來判斷連續(xù)報(bào)文的時(shí)間間隔是否超過預(yù)期時(shí)間的依據(jù),如過超出預(yù)期,則認(rèn)為發(fā)生了通信錯(cuò)誤??撮T狗(Watchdog)定時(shí)器,可作為時(shí)間預(yù)期的應(yīng)用。
連接認(rèn)證(Connection authentication),通過設(shè)定系統(tǒng)中唯一的標(biāo)識(shí),來表示主站和從站的通信連接關(guān)系。
反饋(Feedback message),接收方在接收到報(bào)文之后,反饋給發(fā)送方的確認(rèn)信息。
數(shù)據(jù)完整性(Data integrity assurance),通過差錯(cuò)控制編碼技術(shù),在信息中添加冗余碼,用以發(fā)現(xiàn)報(bào)文是否破壞,常見的措施有海明碼、循環(huán)冗余編碼等。
交叉校驗(yàn)的冗余信息(Redundancy with cross checking),通過在一個(gè)報(bào)文中拷貝兩份安全數(shù)據(jù),或者在將同一報(bào)文中分為兩次發(fā)送,并使用不同的完整性措施,檢驗(yàn)兩份數(shù)據(jù)的一致性,來判斷是否是安全數(shù)據(jù)。
不同的數(shù)據(jù)完整性系統(tǒng)(Different integrity assurance systems),當(dāng)安全和非安全相關(guān)報(bào)文通過同一通信線路傳輸時(shí),可以通過不同的數(shù)據(jù)完整性方式和數(shù)據(jù)編碼規(guī)則,來防止非安全相關(guān)報(bào)文影響安全相關(guān)報(bào)文。
通信錯(cuò)誤與相應(yīng)的安全措施的關(guān)系如表1。
表1 通信錯(cuò)誤與相應(yīng)的安全措施的關(guān)系
*僅限于串行總線
基于以上研究分析,設(shè)計(jì)出子報(bào)文中的安全幀結(jié)構(gòu)如圖1所示。
圖1子報(bào)文安全幀結(jié)構(gòu)
安全數(shù)據(jù)是主站點(diǎn)提供從站所需的數(shù)據(jù)。狀態(tài)/控制位用于標(biāo)識(shí)數(shù)據(jù)的狀態(tài)。連接ID用于認(rèn)證通信鏈路的權(quán)限。序列號(hào)用于標(biāo)識(shí)消息傳輸?shù)捻樞?。CRC用于檢驗(yàn)傳輸數(shù)據(jù)的完整性。
2.3安全層結(jié)構(gòu)
EtherCAT協(xié)議使用了ISO/OSI模型的1、2、7層分別作為其物理層、鏈路層和應(yīng)用層的參考標(biāo)準(zhǔn)。安全層的設(shè)計(jì)位于應(yīng)用層之上,負(fù)責(zé)處理上層安全應(yīng)用提供的安全數(shù)據(jù)。
基于EtherCAT的安全根據(jù)“黑通道”原理,利用原有的EtherCAT通信軟、硬件,并且對(duì)于通信硬件和軟件的可靠性不做要求。在EtherCAT安全通信系統(tǒng)中,標(biāo)準(zhǔn)和安全應(yīng)用共享同一通信線路(如圖1所示)。
EtherCAT安全的協(xié)議結(jié)構(gòu)如圖:
圖2 EtherCAT安全層結(jié)構(gòu)
圖中,黑色實(shí)心方塊代表中繼器、交換機(jī)、無線設(shè)備或智能IO數(shù)據(jù)路由器等。
3EtherCAT殘余錯(cuò)誤概率分析
循環(huán)冗余校驗(yàn)碼,即循環(huán)碼,廣泛用于數(shù)字通信鏈路的差錯(cuò)檢測(cè),是檢測(cè)數(shù)據(jù)傳輸錯(cuò)誤有效的辦法之一。如今衡量CRC多項(xiàng)式性能的主要標(biāo)準(zhǔn)是:殘余錯(cuò)誤概率(Residual Error Probability)和漢明距(Hamming Distance)。殘余錯(cuò)誤概率,是指?jìng)鬏數(shù)臄?shù)據(jù)受到破壞而未被檢測(cè)到的概率。它取決于單個(gè)位錯(cuò)的結(jié)合類型以及安全層檢錯(cuò)措施。漢明距指出了完全可以檢測(cè)到位錯(cuò)誤的最大長(zhǎng)度。數(shù)據(jù)完整性是其他安全措施行之有效的保證,所以一個(gè)系統(tǒng)的殘余錯(cuò)誤率的大小決定著這個(gè)系統(tǒng)安全級(jí)別。
3.1殘余錯(cuò)誤概率
實(shí)際的殘余錯(cuò)誤概率取決于報(bào)文長(zhǎng)度,生成多項(xiàng)式g(x) 以及位錯(cuò)誤概率p 。因此,選擇適當(dāng)?shù)纳啥囗?xiàng)式,可以使得傳輸過程中數(shù)據(jù)完整性校驗(yàn)達(dá)到事半功倍的效果。假設(shè)轉(zhuǎn)發(fā)信道是二元對(duì)稱信道,則基于最小漢明距離的殘余錯(cuò)誤概率的公式為:
(1)
其中,n 為安全消息長(zhǎng)度;d 為安全碼的最小漢明距離;p 為誤碼率。
式(1)滿足二項(xiàng)式定理中的通項(xiàng)要求,可將(1)變型為另一種形式。過程如下:
(2)
將式(1)轉(zhuǎn)換為求式(2),減少了計(jì)算量。式(2)雖然簡(jiǎn)化了運(yùn)算方法,但是精度還是不盡人意。由于線性碼殘余錯(cuò)誤概率的系數(shù),滿足[11]:
則相應(yīng)的殘余錯(cuò)誤概率有:
(3)
3.2實(shí)驗(yàn)結(jié)果與分析
常用的確定Pre的方法有:直接代碼分析,轉(zhuǎn)換代碼分析法(利用MacWilliams等式)以及Monte Carlo模擬。
假設(shè)多項(xiàng)式為13613h(16進(jìn)制),報(bào)文長(zhǎng)度為128比特,其中112比特信息位和16CRC校驗(yàn)碼,漢明距為6。由于殘余錯(cuò)誤概率依賴于報(bào)文長(zhǎng)度,所以將每個(gè)考慮到的報(bào)文長(zhǎng)度的最大殘余錯(cuò)誤概率看做為0
圖3 多項(xiàng)式為13613h的112比特信息的殘余錯(cuò)誤概率
實(shí)驗(yàn)結(jié)果表明,基于二元對(duì)稱信道的殘余錯(cuò)誤概率滿足上界為2-r(p<0.5 )。殘余錯(cuò)誤概率與誤碼率不一定是單純的單調(diào)遞增或單調(diào)遞減的關(guān)系。
4結(jié)論
安全(Safety)和安全(Security)是兩個(gè)不同的方面,前者指的是沒有造成人或環(huán)境的災(zāi)難性的后果,后者指的是,機(jī)密性、完整性和可用性三者的結(jié)合。對(duì)于安全的這兩個(gè)方面的研究,需要進(jìn)一步分析二者的依賴關(guān)系,權(quán)衡代價(jià),進(jìn)而得出合理的對(duì)策。
[參考文獻(xiàn)]
[1] International Electrotechnical Commission.IEC61508(all parts)Functional safety of electrical/electronic/Programmable electronic safety-related systems[S].1998.
[2] International Electrotechnical Commission.IEC61784-3 Digital data communications for measurement and control-Part3:Profiles for functional safety communications in industrial networks[S],2005.
[3] ETG.Ether CAT Communication Principles. EtherCAT Technology Group (ETG). 2011.http://www.ethercat.org/en/downloads.html.
[4] ETG. Ether CAT Technology Introduction. EtherCAT Technology Group. 2010. http:// www. ethercat.org/en/downloads.html.
[5] Dutuit Y, Innal F, Rauzy A, et al. Probabilistic assessments in relationship with safety integrity levels by using fault trees[J]. Reliability Engineering & System Safety, 2008, 93(12): 1867-1876.
[6] Novak T, Gerstinger A. Safety-and security-critical services in building automation and control systems[J]. Industrial Electronics, IEEE Transactions on, 2010, 57(11): 3614-3621.
[7] 卿斯?jié)h. 安全協(xié)議 20 年研究進(jìn)展[J]. 軟件學(xué)報(bào), 2004, 14(10): 1740-1752.
[8] 李正軍. 現(xiàn)場(chǎng)總線與工業(yè)以太網(wǎng)及其應(yīng)用技術(shù)[M].北京: 機(jī)械工業(yè)出版社, 2013.
[9] Kosmowski K T. Functional safety concept for hazardous systems and new challenges[J]. Journal of Loss Prevention in the Process Industries, 2006, 19(2): 298-305.
[10] Novak T, Treytl A, Palensky P. Common approach to functional safety and system security in building automation and control systems[C]//Emerging Technologies and Factory Automation, 2007. ETFA. IEEE Conference on. IEEE, 2007: 1141-1148.
[11] Kassey J L. Coding techniques for digital data networks[C]. Proceedings of the Int. Conf. on Info. Th. and Systems,1978. NTG Fachberiche,1978.
[12] Elia A, Ferrarini L, Veber C. Analysis of Ethernet-based safe automation networks according to IEC 61508[C]//Emerging Technologies and Factory Automation, 2006. ETFA'06. IEEE Conference on. IEEE, 2006: 333-340.
[13] Gilat A. MATLAB: an introduction with applications[M].New York:John Wiley & Sons, 2009.
(編輯趙蓉)
Researh and Application of Industrial Ethernet Safety Based on EtherCAT
LIU Cai-si1,2,LIU Feng2,3,ZHENG Liao-mo2,3,YIN Zhen-yu2,3
(1.University of Chinese Academy of Sciences,Beijing 100049,China;2.Shenyang Institute of Computing Technology, Chinese Academy of Sciences,Shenyang 110168,China)
Abstract:Under the study of EtherCAT protocol stack and the characteristics of software ,hardware and frame of EtherCAT , we analyzed communication faults and errors in the industrial ethernet and the counter safety communication mechanism measures, established the safety system architecture and safety communication protocol model, designed the EtherCAT safety communication process, and developed safety protocol layer software. As the result of experimental test shows, by adding EtherCAT safety layer upon application layer and safety measures into user data unit with some critical safety measures, we made the protocol meet the safety requirements of communication related fields and guarantee the EtherCAT system safety and reliability.
Key words:EtherCAT;safety protocol; CRC checksum;residual error probability
中圖分類號(hào):TH165;TG68
文獻(xiàn)標(biāo)識(shí)碼:A
作者簡(jiǎn)介:劉才思(1989—),男,內(nèi)蒙古赤峰人,中國(guó)科學(xué)院大學(xué)碩士研究生,研究方向?yàn)閿?shù)控技術(shù),(E-mail)iliucaisi@gmail.com。
*基金項(xiàng)目:“高檔數(shù)控與基礎(chǔ)制造裝備”國(guó)家科技重大專項(xiàng),數(shù)控系統(tǒng)功能安全技術(shù)研究(2014ZX04009-031)
收稿日期:2015-03-06;修回日期:2015-04-01
文章編號(hào):1001-2265(2015)12-0043-03
DOI:10.13462/j.cnki.mmtamt.2015.12.012