国产视频一区在线,日韩三级网,日韩欧美在线观看一区二区,午夜欧美福利视频,国产人妖视频一区二区,久久亚洲精品中文字幕,国产成人午夜高潮毛片

數(shù)控總線的消息安全通信方法

來源:互聯(lián)網(wǎng)

點擊:1150

A+ A-

所屬頻道:新聞中心

關(guān)鍵詞:數(shù)控總線 消息安全

    前言

      工業(yè)通信網(wǎng)絡(luò)在提高生產(chǎn)速度、管理生產(chǎn)過程、合理高效加工以及保證安全生產(chǎn)等方面起到關(guān)鍵性作用。然而,由于通信過程中一些難以避免的系統(tǒng)故障、電磁干擾等問題,導致消息在傳輸過程中可能出現(xiàn)重復、插入、延時及偽裝等,消息破壞及丟包現(xiàn)象也時有發(fā)生,進一步導致通信系統(tǒng)錯誤,這給工業(yè)控制帶來了巨大危險。因此,消息安全通信已成為工業(yè)通信安全研究的關(guān)鍵問題之一。如何保證消息安全通信,傳統(tǒng)方法一般在通信協(xié)議的數(shù)據(jù)鏈路層進行循環(huán)冗余校驗(Cyclical redundancy check,CRC),同時為提高校驗能力,對CRC生成的多項式進行改進研究,但這些方法難以降低通信過程中所產(chǎn)生的剩余錯誤率。剩余錯誤率是指接收端在對所收到消息進行校驗之后,沒有被檢測到的錯誤位的數(shù)量與所有傳輸位總數(shù)的比值。目前數(shù)控系統(tǒng)正朝著開放式、網(wǎng)絡(luò)化及智能化等方向發(fā)展,數(shù)控總線作為工業(yè)通信網(wǎng)絡(luò)的一種,用于連接數(shù)控系統(tǒng)裝置間數(shù)字式、雙向、多點的通信,其采用了同步和異步兩種通信機制,在這兩種機制下如何保證消息的安全通信是本文研究重點。

      基于此,本文提出一種用于數(shù)控總線的消息安全通信方法,消息發(fā)送前在應(yīng)用層之上利用動態(tài)CRC進行校驗,同時采用對消息進行連續(xù)編號等機制封裝安全報文。通過該方法有效降低了剩余錯誤率,保障了消息的安全性。

    1 研究背景

      如何采取有效措施以保障消息安全是總線通信安全研究的關(guān)鍵。DZUNG針對消息傳輸、訪問控制等問題,提出了一種基于網(wǎng)絡(luò)分層的安全保護機制。RANMANI針對剩余錯誤率問題,提出了一種對數(shù)據(jù)包的包頭編號和包尾CRC校驗的機制進行消息保護。與總線通信安全研究相關(guān)的標準主要有歐洲EN 50159-2標準、IEC 61508.2標準以及最近的IEC 61784.3標準。在安全性設(shè)計上,用戶希望新設(shè)計的安全總線具有現(xiàn)存總線向上兼容的能力,目的是方便使用現(xiàn)有總線的設(shè)備和相關(guān)知識。從這些需求出發(fā),IEC 61784-3標準在現(xiàn)有總線協(xié)議上提出了安全通信層,用以處理通信過程中的消息錯誤。

      1.1現(xiàn)有安全總線

      基于上述標準,目前安全總線主流研究方向是將安全保護措施封裝在安全通信層,現(xiàn)有安全總線協(xié)議主要有Profisafe、Interbus Safety、CANopenSafety、EtherCat Safety等。

      Profisafe安全協(xié)議是在Profibus總線協(xié)議基礎(chǔ)上增加了安全通信層。安全通信層封裝的安全報文由安全數(shù)據(jù)、狀態(tài)/控制位、報文編號以及傳統(tǒng)CRC.16/32校驗方式等構(gòu)成。

      但Profisafe安全機制存在以下問題。

      (1)Profisafe安全報文采用了傳統(tǒng)CRC校驗方式對安全數(shù)據(jù)進行校驗,所以通信過程中如果存在連續(xù)多個相同的安全數(shù)據(jù),則會產(chǎn)生連續(xù)多個相同的CRC校驗值,這可能使接收端無法判斷新接收到的數(shù)據(jù)包是有效數(shù)據(jù)包還是錯誤數(shù)據(jù)包。

      (2)Profisafe采用了報文編號在一定程度上可避免問題1的產(chǎn)生,但由于其為保證短幀傳輸,只使用了8位報文編號,所以如果通信過程中存在連續(xù)多個相同的安全數(shù)據(jù),每255個循環(huán)重復一次,則也會產(chǎn)生連續(xù)多個完全相同的數(shù)據(jù)包。如果存在緩沖延遲,則也會導致接收端可能無法正確判斷。

      Interbus Safety安全協(xié)議是在Interbus總線協(xié)議基礎(chǔ)上增加一個SafeControl控制模塊,該模塊專門用于檢測安全報文,安全報文的傳輸正確與否通過傳輸檢測位CRC-LoopbackWord的測試來確定,其CRC校驗采用傳統(tǒng)的CRC-16檢測機制。CANop%Safety安全協(xié)議是在CANopen總線協(xié)議CANopen Safety安全協(xié)議是在CANopen總線協(xié)議基礎(chǔ)上定義了安全相關(guān)數(shù)據(jù)對象(Safety-relateddata object, SRDO)用于安全報文傳輸,但SRDO的CRC校驗仍然采用了傳統(tǒng)CRC檢測機制。CC-Link Safety安全協(xié)議是在CC-Link總線協(xié)議基礎(chǔ)上增加了安全功能層,用于安全報文的傳輸和傳輸錯誤的檢測。在CC-Link Safety安全協(xié)議中,主站與一般從站傳輸?shù)膱笪呐cCC-Link總線協(xié)議相同,而與安全從站傳輸?shù)陌踩珗笪氖窃谠械臄?shù)據(jù)域中儲存安全功能層使用的信息,該信息包括確定信息順序的序列號和檢測信息位錯亂的CRC-32校驗碼,采用雙重CRC校驗方。分析可知,以上三種總線安全機制生成的CRC校驗碼只同安全報文內(nèi)容和生成多項式有關(guān),因此仍然存在接收端可能無法正確判斷連續(xù)多個相同數(shù)據(jù)包的問題。

      為此,EtherCat Safety安全協(xié)議提出了一種解決方法,也在安全通信層中為待發(fā)送的數(shù)據(jù)包提供CRC校驗,不同之處在于:CRC校驗值根據(jù)安全數(shù)據(jù)本身和一新加起始值一起計算產(chǎn)生,該起始值是接收到的上一個數(shù)據(jù)包的CRC校驗值。這種機制能保證持續(xù)動態(tài)的生成CRC校驗值,可解決傳統(tǒng)CRC校驗中由于連續(xù)多個相同數(shù)據(jù)包產(chǎn)生相同CRC校驗值的問題。但是EtherCat Safety這種消息安全通信機制也存在一個問題,即發(fā)送端和接收端的CRC起始值存在依賴關(guān)系。每次發(fā)送端要發(fā)送新數(shù)據(jù)包時,必須等待上一個接收到的數(shù)據(jù)包的CRC值,經(jīng)計算產(chǎn)生新的CRC值后方能發(fā)送該新數(shù)據(jù)包。這意味著需要等待接收到上一個數(shù)據(jù)包后方可發(fā)送下一個數(shù)據(jù)包,這會降低通信的實時性,特別是像基于總線的數(shù)控系統(tǒng)這種強實時通信的系統(tǒng)。

      1.2數(shù)控總線安全需求

      數(shù)控總線作為一種面向特殊領(lǐng)域應(yīng)用的工業(yè)通信網(wǎng)絡(luò),要求總線滿足周期性、實時性、同步性、可靠性及安全性等要求。總線通信協(xié)議由物理層、數(shù)據(jù)鏈路層、應(yīng)用層與用戶層行規(guī)組成。用戶層行規(guī)里定義了兩種命令,異步命令和同步命令。異步命令用于數(shù)控系統(tǒng)的定位及快移等操作,同步命令則用于數(shù)控系統(tǒng)的多軸聯(lián)動插補操作。因此,兩種不同的需求要求數(shù)控總線要同時支持異步及同步消息通信。異步通信是當發(fā)送端有控制需求時向接收端發(fā)送新消息,在發(fā)送新消息時發(fā)送端需確認所發(fā)送的上一條消息的反饋己經(jīng)回來。同步通信則要求發(fā)送端在每個通信周期到來時,都要向接收端發(fā)送下一條新消息,不用考慮發(fā)送端所發(fā)送的上一條消息的反饋是否己經(jīng)回來,不能等待,每個周期到來時都須發(fā)送新消息。

    2 數(shù)控總線消息安全方法

      針對數(shù)控總線通信的特殊需求,安全性需考慮如何保證數(shù)控總線在進行異步及同步通信時消息安全問題,主要是同步通信機制下消息的安全性。本文解決的思路主要基于兩點:一是要求能夠持續(xù)動態(tài)的生成CRC校驗值以保證每條消息能使用新的CRC校驗值:二是要求能使發(fā)送端和接收端校驗方式互不相關(guān)以保證同步通信。

      基于上述考慮,針對消息通信過程中可能出現(xiàn)的重復、刪除、插入、破壞及偽裝等錯誤,在盡量降低算法復雜度的前提下,本文提出在應(yīng)用層之上采取狀態(tài)位控制、會話號、序列編號以及新的動態(tài)CRC安全校驗等措施構(gòu)建安全通信層,以保證消息的安全通信。

      (1)安全數(shù)據(jù)。來自用戶行規(guī)的異步及同步命令,是接收端所需要的有用數(shù)據(jù),發(fā)送端用其與CRC起始值一起動態(tài)計算產(chǎn)生新的CRC校驗值用于安全校驗。

      (2)狀態(tài)位。用于標識數(shù)據(jù)包狀態(tài)。

      (3)會話號。在每次建立連接進行數(shù)據(jù)發(fā)送期間保持使用同一個會話號,以保證即使在通信鏈路中斷和重啟后也不會出現(xiàn)重復的數(shù)據(jù)包。

      (4)序列號。用于發(fā)送端和接收端在產(chǎn)生新消息的同時產(chǎn)生序列順序號。

      (5)動態(tài)CRC。由安全數(shù)據(jù)和CRC起始值共同計算動態(tài)產(chǎn)生,發(fā)送端和接收端所需要的動態(tài)CRC校驗不相依賴。

      2.1消息安全通信機制

      圖4所示為本文所設(shè)計的消息安全通信機制,其中:①CRC_ST_ADDR:每個站點地址編號:②安全數(shù)據(jù)Mi:發(fā)送端發(fā)送的第i條有用數(shù)據(jù):③安全數(shù)據(jù)Si:接收端發(fā)送的第i條有用數(shù)據(jù);④CRC M,:發(fā)送端發(fā)送第i條有用數(shù)據(jù)時所動態(tài)生成的CRC校驗值,也是產(chǎn)生CRC_Mi+1所需要的起始值,同時也是接收端用于校驗第i條數(shù)據(jù)所需要的起始值;⑤CRC_Si:接收端所產(chǎn)生的第i條消息的校驗值,發(fā)送端通過計算S;與CRC_Mi一起產(chǎn)生的校驗值與CRC_Si進行比較,判斷是否有錯。

      通信開始時,發(fā)送端采用與其通信的接收端站點的地址編號CRC_ST_ADDR值作為發(fā)送端和接收端進行動態(tài)CRC計算的起始值,因為每個站點的CRC_ST_ADDR值在整個通信系統(tǒng)中都是唯一的。通信過程中,發(fā)送端負責動態(tài)生成CRC_Mi校驗值,接收端只需利用發(fā)送端所產(chǎn)生的CRC從值即可進行校驗,同時發(fā)送端也只利用CRC_Mi值進行校驗。 

      2.2算法描述

      消息安全通信算法分發(fā)送端算法與接收端算法兩部分,發(fā)送端算法描述如下。

      (1)設(shè)置本次建立連接后通信的會話號,轉(zhuǎn)步驟(2)。

      (2)如果在一段時間內(nèi)未收到消息,則進行新消息的發(fā)送,轉(zhuǎn)步驟(3)。否則,對接收到的消息進行處理,轉(zhuǎn)步驟(7)。

      (3)判斷發(fā)送端所要發(fā)送的安全數(shù)據(jù)Mi的類型,如果無法識別則報錯,轉(zhuǎn)步驟(2)。否則為可識別的類型,轉(zhuǎn)步驟(4)。

      (4)對發(fā)送端所要發(fā)送的安全數(shù)據(jù)Mi進行封裝操作。封裝過程分為以下幾步:①加載本次即將發(fā)送的安全數(shù)據(jù)Mi;②加載1字節(jié)的狀態(tài)位,該狀態(tài)位初始值為1,表示正常通信:③加載1字節(jié)的會話號;④加載1字節(jié)的序列號;⑤根據(jù)發(fā)送端上一個CRC校驗值與當前安全數(shù)據(jù)城一起計算出新的CRC校驗值,加載該新的CRC校驗值,大小為2字節(jié)。封裝完畢,發(fā)送封裝后的消息給接收端,轉(zhuǎn)步驟(5)。同時記錄新的CRC校驗值用于下一次發(fā)送校驗。

      (5)如果發(fā)送端所發(fā)送的安全數(shù)據(jù)從的類型是同步消息,轉(zhuǎn)步驟(2)。否則為異步消息,轉(zhuǎn)步驟(6)。

      (6)中斷發(fā)送端消息的發(fā)送,等待接收到安全數(shù)據(jù)Si后,轉(zhuǎn)步驟(2)。

      (7)讀取所接收消息的序列號,根據(jù)序列號提取相關(guān)CRC:校驗值,進行校驗,如果校驗成功,轉(zhuǎn)步驟(8)。否則校驗不成功,轉(zhuǎn)步驟(9)。

      (8)提取所接收消息中的狀態(tài)位,如果是0,即為重發(fā)請求,則重發(fā)消息,然后轉(zhuǎn)步驟(2).否則,不是重發(fā)請求,直接轉(zhuǎn)步驟(2)。

      (9)要求從站重發(fā),將狀態(tài)位置為0,將重發(fā)消息發(fā)送給接收端,然后轉(zhuǎn)步驟(2)。

      接收端算法描述如下。

      (1)等待發(fā)送端所發(fā)送的消息,根據(jù)其會話號和序列號提取相關(guān)CRC校驗值,轉(zhuǎn)步驟(2)。

      (2)使用提取的CRC校驗值對所接收的消息進行校驗,如果校驗通過,則轉(zhuǎn)步驟((3)。否則校驗未通過,轉(zhuǎn)步驟(5)。

      (3)提取所接收消息中的狀態(tài)位,對其值進行判斷,如果為1,是正常消息,轉(zhuǎn)步驟(4)。否則為0,是重發(fā)消息,則進行重發(fā),轉(zhuǎn)步驟(1)。

      (4)提取所接收消息中的CRC校驗值并儲存,然后用儲存的CRC校驗值對欲發(fā)送給發(fā)送端的安全數(shù)據(jù)S;進行處理,得到的新的CRC校驗值并不存儲,但卻跟安全數(shù)據(jù)Si、狀態(tài)位、會話號以及序列號封裝到一起,共同發(fā)送給發(fā)送端,然后轉(zhuǎn)步驟(1)。

      (5)判斷該消息發(fā)生錯誤的次數(shù),如果大于某個設(shè)定界限,則向發(fā)送端發(fā)送上一消息的重發(fā)請求消息,然后轉(zhuǎn)步驟(1)。否則,向發(fā)送端發(fā)送該消息的重發(fā)請求消息,然后轉(zhuǎn)步驟(1)。

    3 性能分析

      剩余錯誤率為檢驗消息安全傳輸方法性能好壞的主要標準之一。首先定義性能分析中需要用到的各種函數(shù)及變量。

      (1)Sd:安全數(shù)據(jù),即需要安全傳輸?shù)脑紨?shù)據(jù),用Sa (x)表示其多項式。

      (2) Sc:校驗值,由上一個CRC校驗值與安全數(shù)據(jù)Sa共同求得,用Sc(x)表示其多項式。

      (3) G:生成多項式,用g(x)表示其多項式。

      (4) m:安全數(shù)據(jù)Sd所包含的位數(shù)。

      (5) r:生成多項式g(x)的度數(shù),亦即Sc中所包含的位數(shù)。

      (6) n:在通信中傳輸?shù)膸奈粩?shù)。

      (7) Be:在通信中發(fā)生錯誤的位的總數(shù)。

      (8) Bude:在通信中沒有被檢測到的錯誤位的總數(shù)。

      (9) Ball:在通信中所有傳輸位的總數(shù)。

      3.1 CRC方法 

      3.3剩余錯誤率

      剩余錯誤率P1是指在解碼校驗之后仍然沒有被檢測到的已經(jīng)被破壞的傳輸數(shù)據(jù)所占的比例,即沒有被檢測出的錯誤位的數(shù)量與所有傳輸位的總數(shù)的比值。

      通常來講,剩余錯誤率尸1與消息長度n、生成多項式加)以及位錯誤率P有關(guān)。位錯誤率P表示通信過程中發(fā)生錯誤的位的數(shù)量與所有傳輸?shù)奈坏臄?shù)量比值。

      最壞情況下p=0.5,意味著每兩位中有一位出現(xiàn)錯誤,實際應(yīng)用中P的取值范圍在。0

      剩余錯誤率P1的計算方法主要有直接代碼分析法、Monte-Carlo模擬法以及代碼轉(zhuǎn)化分析法等幾種,本文從降低算法復雜度的角度出發(fā)采用了直接代碼分析法。

      對于傳統(tǒng)的CRC校驗,無法檢測的錯誤主要分為兩種情況,一種是只有安全數(shù)據(jù)發(fā)生錯誤,而CRC校驗值卻沒有發(fā)生錯誤;第二種是安全數(shù)據(jù)和CRC校驗值都發(fā)生了錯誤。因此,對于本文提出的方法,由于即將用于傳輸?shù)男r炛凳怯缮弦粋€校驗值與即將用于傳輸?shù)陌踩珨?shù)據(jù)Sd,i共同產(chǎn)生的,而CRC的校驗也是由上一個CRC和安全數(shù)據(jù)凡,共同完成的,所以當上一個CRC校驗值發(fā)生傳輸錯誤時,一般都會造成當前CRC校驗無法通過。根據(jù)本文所述方法,這種情況下是需要重傳安全數(shù)據(jù)Sd,i-1與上一個CRC校驗值,因此在很大程度上降低了剩余錯誤率。

    4 試驗測試與評價

      4.1實時性

      本方法使用查表法計算CRC校驗碼,以字節(jié)為單位進行循環(huán)計算,循環(huán)次數(shù)為被校驗字符串的字節(jié)長度n。每一次循環(huán)計算過程只涉及一次左移運算、一次查表運算和兩次異或運算,時間復雜度為O(1),因此本方法時間復雜度為O(n)。由此可知,從理論上分析,本方法的時間復雜度不高。在此基礎(chǔ)上,本文對增加安全通信層后該層對總線通信所增加的時延進行了測試。

      測試用工控機硬件環(huán)境為1.6 GHz x86 CPU、512 MB RAM, 40 GB硬盤,所用數(shù)控總線是基于之RS485、傳輸速率為16 MB/s的同步串行總線。試}驗包括1個主站點和1個從站點。試驗過程中,主站點發(fā)送10 000幀給從站點,每幀大小16 B。通過總線分析儀累加記錄通信總時延和安全通信層所耗時間,取每幀平均耗時得:td=48.26μstms=1.23μs。

      測試結(jié)果表明,安全通信層時延開銷占整個總線時延的3%左右,在可接受范圍之內(nèi)。因此,本方法在實時性方面可滿足數(shù)控總線要求。

      4.2剩余錯誤率

      本方法和傳統(tǒng)方法以剩余錯誤率Pre為評價標準,對比測試兩種方法之間的消息安全通信性能。同時,對消息完整性等級IC級別也進行了測試。

      本文通過Matlab自帶的Simulink建模與仿真工具構(gòu)建試驗環(huán)境,獲取P1與P之間的關(guān)系。傳統(tǒng)方法與本方法的建模與仿真結(jié)構(gòu)圖大體相似,在此以本方法為例,介紹試驗過程。本方法試驗過程如圖6所示,二進制貝努利序列產(chǎn)生器周期性產(chǎn)生一個長度為128位的隨機二進制序列Sd(x),該序列經(jīng)通用CRC編碼器模塊進行CRC校驗,產(chǎn)生校驗碼Sc(x),然后封裝成報文t(x)。t(x)分兩路進行處理,第一路經(jīng)數(shù)據(jù)鏈路層(Data link layer, DLL)通用CRC編碼器模塊模擬數(shù)據(jù)鏈路層的CRC校驗,產(chǎn)生相應(yīng)校驗碼并進行封裝,封裝后的報文mt(x)通過誤比特率統(tǒng)計模塊統(tǒng)計總通信位數(shù)Ball,同時經(jīng)二進制對稱信道模塊模擬位錯誤率為P的信道傳輸:第二路t(x)進入使能子系統(tǒng)1進行未被檢測到的錯誤位數(shù)Bude的相關(guān)統(tǒng)計。

      其中,mt(x)所封裝的t(x)經(jīng)第一路模擬信道傳輸后變?yōu)閠'(x),由Sd'(x)和Sc'(x)構(gòu)成。DLL層通用CRC檢測器模塊對mt'(x)進行CRC校驗,在校驗結(jié)果顯示為通過的情況下,啟動使能子系統(tǒng)1,進行t'(x)與第二路t(x)的相關(guān)比較。圖7為使能子系統(tǒng)的內(nèi)部結(jié)構(gòu)圖,該子系統(tǒng)在t'(x)通過CRC校驗且Sc(x)和Sc'(x)相同的前提下,累加統(tǒng)計Sd(x)和Sd'(x)中的不同位數(shù),從而得到本方法中未被檢測到的錯誤位數(shù)Bude。

      為保證試驗具有可比性,傳統(tǒng)方法和本方法均使用相同生成多項式g(x)=xt16+xt12+x5+x0。傳統(tǒng)方法得出的總通信位數(shù)Ball、位錯誤率P、沒有被檢測到的錯誤位數(shù)Bude以及剩余錯誤率P1結(jié)果。 

      同時,試驗對本方法的消息完整性等級IC進行了測試,本方法的完整性等級比IC3更高,這意味著本方法的消息完整性等級完全能滿足數(shù)控總線的遠程控制需要。

      為進一步獲取實際對比試驗結(jié)果,本文對兩種方法的通信性能進行了實際應(yīng)用測試。使用兩種總線進行測試,一種為傳統(tǒng)同步串行總線,其上沒有安全通信層,另一種在傳統(tǒng)總線基礎(chǔ)上結(jié)合本方法,實現(xiàn)了安全通信層。

      測試過程中,由于位錯誤率P很小會導致試驗時間過長,故為盡快得到有效數(shù)據(jù),實際測試中,在站點供電電源端口接入電快速瞬變脈沖群發(fā)生器,其開路輸出電壓設(shè)置為4 kV,脈沖重復頻率設(shè)置為2.5 kHz,同時特意不對傳輸線路進行任何抗干擾保護,以提高P值。主站對一個由同步和異步命令構(gòu)成的工件程序進行反復循環(huán)空跑約200 h,統(tǒng)計總通信位數(shù)Ball。從站將已通過自身校驗的接收報文同預先存儲的應(yīng)接收報文進行比較,統(tǒng)計錯誤位數(shù),累加得到?jīng)]有被檢測到的錯誤位數(shù)Bude。

    5 結(jié)論

      (1)提出了一種適合數(shù)控總線同步及異步通信的消息安全通信方法。

      (2)通過建立基于動態(tài)CRC校驗的安全通信機制,解決了現(xiàn)有總線安全機制中連續(xù)傳輸多個相同數(shù)據(jù)包所帶來的問題,同時也克服了發(fā)送端與接收端之間消息安全校驗的依賴性。

      (3)在滿足數(shù)控總線實時性要求的情況下,安全通信方法明顯降低了通信過程中所產(chǎn)生的剩余錯誤率,同時也滿足了消息安全完整性等級要求。

    </p<0.5,一般認為p=10-4較合理。因此,本方法中也采用0

    (審核編輯: 智匯胡妮)

    聲明:除特別說明之外,新聞內(nèi)容及圖片均來自網(wǎng)絡(luò)及各大主流媒體。版權(quán)歸原作者所有。如認為內(nèi)容侵權(quán),請聯(lián)系我們刪除。