前言
工業(yè)通信網(wǎng)絡(luò)在提高生產(chǎn)速度、管理生產(chǎn)過程、合理高效加工以及保證安全生產(chǎn)等方面起到關(guān)鍵性作用。然而,由于通信過程中一些難以避免的系統(tǒng)故障、電磁干擾等問題,導(dǎo)致消息在傳輸過程中可能出現(xiàn)重復(fù)、插入、延時(shí)及偽裝等,消息破壞及丟包現(xiàn)象也時(shí)有發(fā)生,進(jìn)一步導(dǎo)致通信系統(tǒng)錯(cuò)誤,這給工業(yè)控制帶來了巨大危險(xiǎn)。因此,消息安全通信已成為工業(yè)通信安全研究的關(guān)鍵問題之一。如何保證消息安全通信,傳統(tǒng)方法一般在通信協(xié)議的數(shù)據(jù)鏈路層進(jìn)行循環(huán)冗余校驗(yàn)(Cyclical redundancy check,CRC),同時(shí)為提高校驗(yàn)?zāi)芰Γ瑢RC生成的多項(xiàng)式進(jìn)行改進(jìn)研究,但這些方法難以降低通信過程中所產(chǎn)生的剩余錯(cuò)誤率。剩余錯(cuò)誤率是指接收端在對所收到消息進(jìn)行校驗(yàn)之后,沒有被檢測到的錯(cuò)誤位的數(shù)量與所有傳輸位總數(shù)的比值。目前數(shù)控系統(tǒng)正朝著開放式、網(wǎng)絡(luò)化及智能化等方向發(fā)展,數(shù)控總線作為工業(yè)通信網(wǎng)絡(luò)的一種,用于連接數(shù)控系統(tǒng)裝置間數(shù)字式、雙向、多點(diǎn)的通信,其采用了同步和異步兩種通信機(jī)制,在這兩種機(jī)制下如何保證消息的安全通信是本文研究重點(diǎn)。
基于此,本文提出一種用于數(shù)控總線的消息安全通信方法,消息發(fā)送前在應(yīng)用層之上利用動(dòng)態(tài)CRC進(jìn)行校驗(yàn),同時(shí)采用對消息進(jìn)行連續(xù)編號(hào)等機(jī)制封裝安全報(bào)文。通過該方法有效降低了剩余錯(cuò)誤率,保障了消息的安全性。
1 研究背景
如何采取有效措施以保障消息安全是總線通信安全研究的關(guān)鍵。DZUNG針對消息傳輸、訪問控制等問題,提出了一種基于網(wǎng)絡(luò)分層的安全保護(hù)機(jī)制。RANMANI針對剩余錯(cuò)誤率問題,提出了一種對數(shù)據(jù)包的包頭編號(hào)和包尾CRC校驗(yàn)的機(jī)制進(jìn)行消息保護(hù)。與總線通信安全研究相關(guān)的標(biāo)準(zhǔn)主要有歐洲EN 50159-2標(biāo)準(zhǔn)、IEC 61508.2標(biāo)準(zhǔn)以及最近的IEC 61784.3標(biāo)準(zhǔn)。在安全性設(shè)計(jì)上,用戶希望新設(shè)計(jì)的安全總線具有現(xiàn)存總線向上兼容的能力,目的是方便使用現(xiàn)有總線的設(shè)備和相關(guān)知識(shí)。從這些需求出發(fā),IEC 61784-3標(biāo)準(zhǔn)在現(xiàn)有總線協(xié)議上提出了安全通信層,用以處理通信過程中的消息錯(cuò)誤。
1.1現(xiàn)有安全總線
基于上述標(biāo)準(zhǔn),目前安全總線主流研究方向是將安全保護(hù)措施封裝在安全通信層,現(xiàn)有安全總線協(xié)議主要有Profisafe、Interbus Safety、CANopenSafety、EtherCat Safety等。
Profisafe安全協(xié)議是在Profibus總線協(xié)議基礎(chǔ)上增加了安全通信層。安全通信層封裝的安全報(bào)文由安全數(shù)據(jù)、狀態(tài)/控制位、報(bào)文編號(hào)以及傳統(tǒng)CRC.16/32校驗(yàn)方式等構(gòu)成。
但Profisafe安全機(jī)制存在以下問題。
(1)Profisafe安全報(bào)文采用了傳統(tǒng)CRC校驗(yàn)方式對安全數(shù)據(jù)進(jìn)行校驗(yàn),所以通信過程中如果存在連續(xù)多個(gè)相同的安全數(shù)據(jù),則會(huì)產(chǎn)生連續(xù)多個(gè)相同的CRC校驗(yàn)值,這可能使接收端無法判斷新接收到的數(shù)據(jù)包是有效數(shù)據(jù)包還是錯(cuò)誤數(shù)據(jù)包。
(2)Profisafe采用了報(bào)文編號(hào)在一定程度上可避免問題1的產(chǎn)生,但由于其為保證短幀傳輸,只使用了8位報(bào)文編號(hào),所以如果通信過程中存在連續(xù)多個(gè)相同的安全數(shù)據(jù),每255個(gè)循環(huán)重復(fù)一次,則也會(huì)產(chǎn)生連續(xù)多個(gè)完全相同的數(shù)據(jù)包。如果存在緩沖延遲,則也會(huì)導(dǎo)致接收端可能無法正確判斷。
Interbus Safety安全協(xié)議是在Interbus總線協(xié)議基礎(chǔ)上增加一個(gè)SafeControl控制模塊,該模塊專門用于檢測安全報(bào)文,安全報(bào)文的傳輸正確與否通過傳輸檢測位CRC-LoopbackWord的測試來確定,其CRC校驗(yàn)采用傳統(tǒng)的CRC-16檢測機(jī)制。CANop%Safety安全協(xié)議是在CANopen總線協(xié)議CANopen Safety安全協(xié)議是在CANopen總線協(xié)議基礎(chǔ)上定義了安全相關(guān)數(shù)據(jù)對象(Safety-relateddata object, SRDO)用于安全報(bào)文傳輸,但SRDO的CRC校驗(yàn)仍然采用了傳統(tǒng)CRC檢測機(jī)制。CC-Link Safety安全協(xié)議是在CC-Link總線協(xié)議基礎(chǔ)上增加了安全功能層,用于安全報(bào)文的傳輸和傳輸錯(cuò)誤的檢測。在CC-Link Safety安全協(xié)議中,主站與一般從站傳輸?shù)膱?bào)文與CC-Link總線協(xié)議相同,而與安全從站傳輸?shù)陌踩珗?bào)文是在原有的數(shù)據(jù)域中儲(chǔ)存安全功能層使用的信息,該信息包括確定信息順序的序列號(hào)和檢測信息位錯(cuò)亂的CRC-32校驗(yàn)碼,采用雙重CRC校驗(yàn)方。分析可知,以上三種總線安全機(jī)制生成的CRC校驗(yàn)碼只同安全報(bào)文內(nèi)容和生成多項(xiàng)式有關(guān),因此仍然存在接收端可能無法正確判斷連續(xù)多個(gè)相同數(shù)據(jù)包的問題。
為此,EtherCat Safety安全協(xié)議提出了一種解決方法,也在安全通信層中為待發(fā)送的數(shù)據(jù)包提供CRC校驗(yàn),不同之處在于:CRC校驗(yàn)值根據(jù)安全數(shù)據(jù)本身和一新加起始值一起計(jì)算產(chǎn)生,該起始值是接收到的上一個(gè)數(shù)據(jù)包的CRC校驗(yàn)值。這種機(jī)制能保證持續(xù)動(dòng)態(tài)的生成CRC校驗(yàn)值,可解決傳統(tǒng)CRC校驗(yàn)中由于連續(xù)多個(gè)相同數(shù)據(jù)包產(chǎn)生相同CRC校驗(yàn)值的問題。但是EtherCat Safety這種消息安全通信機(jī)制也存在一個(gè)問題,即發(fā)送端和接收端的CRC起始值存在依賴關(guān)系。每次發(fā)送端要發(fā)送新數(shù)據(jù)包時(shí),必須等待上一個(gè)接收到的數(shù)據(jù)包的CRC值,經(jīng)計(jì)算產(chǎn)生新的CRC值后方能發(fā)送該新數(shù)據(jù)包。這意味著需要等待接收到上一個(gè)數(shù)據(jù)包后方可發(fā)送下一個(gè)數(shù)據(jù)包,這會(huì)降低通信的實(shí)時(shí)性,特別是像基于總線的數(shù)控系統(tǒng)這種強(qiáng)實(shí)時(shí)通信的系統(tǒng)。
1.2數(shù)控總線安全需求
數(shù)控總線作為一種面向特殊領(lǐng)域應(yīng)用的工業(yè)通信網(wǎng)絡(luò),要求總線滿足周期性、實(shí)時(shí)性、同步性、可靠性及安全性等要求??偩€通信協(xié)議由物理層、數(shù)據(jù)鏈路層、應(yīng)用層與用戶層行規(guī)組成。用戶層行規(guī)里定義了兩種命令,異步命令和同步命令。異步命令用于數(shù)控系統(tǒng)的定位及快移等操作,同步命令則用于數(shù)控系統(tǒng)的多軸聯(lián)動(dòng)插補(bǔ)操作。因此,兩種不同的需求要求數(shù)控總線要同時(shí)支持異步及同步消息通信。異步通信是當(dāng)發(fā)送端有控制需求時(shí)向接收端發(fā)送新消息,在發(fā)送新消息時(shí)發(fā)送端需確認(rèn)所發(fā)送的上一條消息的反饋己經(jīng)回來。同步通信則要求發(fā)送端在每個(gè)通信周期到來時(shí),都要向接收端發(fā)送下一條新消息,不用考慮發(fā)送端所發(fā)送的上一條消息的反饋是否己經(jīng)回來,不能等待,每個(gè)周期到來時(shí)都須發(fā)送新消息。
2 數(shù)控總線消息安全方法
針對數(shù)控總線通信的特殊需求,安全性需考慮如何保證數(shù)控總線在進(jìn)行異步及同步通信時(shí)消息安全問題,主要是同步通信機(jī)制下消息的安全性。本文解決的思路主要基于兩點(diǎn):一是要求能夠持續(xù)動(dòng)態(tài)的生成CRC校驗(yàn)值以保證每條消息能使用新的CRC校驗(yàn)值:二是要求能使發(fā)送端和接收端校驗(yàn)方式互不相關(guān)以保證同步通信。
基于上述考慮,針對消息通信過程中可能出現(xiàn)的重復(fù)、刪除、插入、破壞及偽裝等錯(cuò)誤,在盡量降低算法復(fù)雜度的前提下,本文提出在應(yīng)用層之上采取狀態(tài)位控制、會(huì)話號(hào)、序列編號(hào)以及新的動(dòng)態(tài)CRC安全校驗(yàn)等措施構(gòu)建安全通信層,以保證消息的安全通信。
(1)安全數(shù)據(jù)。來自用戶行規(guī)的異步及同步命令,是接收端所需要的有用數(shù)據(jù),發(fā)送端用其與CRC起始值一起動(dòng)態(tài)計(jì)算產(chǎn)生新的CRC校驗(yàn)值用于安全校驗(yàn)。
(2)狀態(tài)位。用于標(biāo)識(shí)數(shù)據(jù)包狀態(tài)。
(3)會(huì)話號(hào)。在每次建立連接進(jìn)行數(shù)據(jù)發(fā)送期間保持使用同一個(gè)會(huì)話號(hào),以保證即使在通信鏈路中斷和重啟后也不會(huì)出現(xiàn)重復(fù)的數(shù)據(jù)包。
(4)序列號(hào)。用于發(fā)送端和接收端在產(chǎn)生新消息的同時(shí)產(chǎn)生序列順序號(hào)。
(5)動(dòng)態(tài)CRC。由安全數(shù)據(jù)和CRC起始值共同計(jì)算動(dòng)態(tài)產(chǎn)生,發(fā)送端和接收端所需要的動(dòng)態(tài)CRC校驗(yàn)不相依賴。
2.1消息安全通信機(jī)制
圖4所示為本文所設(shè)計(jì)的消息安全通信機(jī)制,其中:①CRC_ST_ADDR:每個(gè)站點(diǎn)地址編號(hào):②安全數(shù)據(jù)Mi:發(fā)送端發(fā)送的第i條有用數(shù)據(jù):③安全數(shù)據(jù)Si:接收端發(fā)送的第i條有用數(shù)據(jù);④CRC M,:發(fā)送端發(fā)送第i條有用數(shù)據(jù)時(shí)所動(dòng)態(tài)生成的CRC校驗(yàn)值,也是產(chǎn)生CRC_Mi+1所需要的起始值,同時(shí)也是接收端用于校驗(yàn)第i條數(shù)據(jù)所需要的起始值;⑤CRC_Si:接收端所產(chǎn)生的第i條消息的校驗(yàn)值,發(fā)送端通過計(jì)算S;與CRC_Mi一起產(chǎn)生的校驗(yàn)值與CRC_Si進(jìn)行比較,判斷是否有錯(cuò)。
通信開始時(shí),發(fā)送端采用與其通信的接收端站點(diǎn)的地址編號(hào)CRC_ST_ADDR值作為發(fā)送端和接收端進(jìn)行動(dòng)態(tài)CRC計(jì)算的起始值,因?yàn)槊總€(gè)站點(diǎn)的CRC_ST_ADDR值在整個(gè)通信系統(tǒng)中都是唯一的。通信過程中,發(fā)送端負(fù)責(zé)動(dòng)態(tài)生成CRC_Mi校驗(yàn)值,接收端只需利用發(fā)送端所產(chǎn)生的CRC從值即可進(jìn)行校驗(yàn),同時(shí)發(fā)送端也只利用CRC_Mi值進(jìn)行校驗(yàn)。
2.2算法描述
消息安全通信算法分發(fā)送端算法與接收端算法兩部分,發(fā)送端算法描述如下。
(1)設(shè)置本次建立連接后通信的會(huì)話號(hào),轉(zhuǎn)步驟(2)。
(2)如果在一段時(shí)間內(nèi)未收到消息,則進(jìn)行新消息的發(fā)送,轉(zhuǎn)步驟(3)。否則,對接收到的消息進(jìn)行處理,轉(zhuǎn)步驟(7)。
(3)判斷發(fā)送端所要發(fā)送的安全數(shù)據(jù)Mi的類型,如果無法識(shí)別則報(bào)錯(cuò),轉(zhuǎn)步驟(2)。否則為可識(shí)別的類型,轉(zhuǎn)步驟(4)。
(4)對發(fā)送端所要發(fā)送的安全數(shù)據(jù)Mi進(jìn)行封裝操作。封裝過程分為以下幾步:①加載本次即將發(fā)送的安全數(shù)據(jù)Mi;②加載1字節(jié)的狀態(tài)位,該狀態(tài)位初始值為1,表示正常通信:③加載1字節(jié)的會(huì)話號(hào);④加載1字節(jié)的序列號(hào);⑤根據(jù)發(fā)送端上一個(gè)CRC校驗(yàn)值與當(dāng)前安全數(shù)據(jù)城一起計(jì)算出新的CRC校驗(yàn)值,加載該新的CRC校驗(yàn)值,大小為2字節(jié)。封裝完畢,發(fā)送封裝后的消息給接收端,轉(zhuǎn)步驟(5)。同時(shí)記錄新的CRC校驗(yàn)值用于下一次發(fā)送校驗(yàn)。
(5)如果發(fā)送端所發(fā)送的安全數(shù)據(jù)從的類型是同步消息,轉(zhuǎn)步驟(2)。否則為異步消息,轉(zhuǎn)步驟(6)。
(6)中斷發(fā)送端消息的發(fā)送,等待接收到安全數(shù)據(jù)Si后,轉(zhuǎn)步驟(2)。
(7)讀取所接收消息的序列號(hào),根據(jù)序列號(hào)提取相關(guān)CRC:校驗(yàn)值,進(jìn)行校驗(yàn),如果校驗(yàn)成功,轉(zhuǎn)步驟(8)。否則校驗(yàn)不成功,轉(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ù)其會(huì)話號(hào)和序列號(hào)提取相關(guān)CRC校驗(yàn)值,轉(zhuǎn)步驟(2)。
(2)使用提取的CRC校驗(yàn)值對所接收的消息進(jìn)行校驗(yàn),如果校驗(yàn)通過,則轉(zhuǎn)步驟((3)。否則校驗(yàn)未通過,轉(zhuǎn)步驟(5)。
(3)提取所接收消息中的狀態(tài)位,對其值進(jìn)行判斷,如果為1,是正常消息,轉(zhuǎn)步驟(4)。否則為0,是重發(fā)消息,則進(jìn)行重發(fā),轉(zhuǎn)步驟(1)。
(4)提取所接收消息中的CRC校驗(yàn)值并儲(chǔ)存,然后用儲(chǔ)存的CRC校驗(yàn)值對欲發(fā)送給發(fā)送端的安全數(shù)據(jù)S;進(jìn)行處理,得到的新的CRC校驗(yàn)值并不存儲(chǔ),但卻跟安全數(shù)據(jù)Si、狀態(tài)位、會(huì)話號(hào)以及序列號(hào)封裝到一起,共同發(fā)送給發(fā)送端,然后轉(zhuǎn)步驟(1)。
(5)判斷該消息發(fā)生錯(cuò)誤的次數(shù),如果大于某個(gè)設(shè)定界限,則向發(fā)送端發(fā)送上一消息的重發(fā)請求消息,然后轉(zhuǎn)步驟(1)。否則,向發(fā)送端發(fā)送該消息的重發(fā)請求消息,然后轉(zhuǎn)步驟(1)。
3 性能分析
剩余錯(cuò)誤率為檢驗(yàn)消息安全傳輸方法性能好壞的主要標(biāo)準(zhǔn)之一。首先定義性能分析中需要用到的各種函數(shù)及變量。
(1)Sd:安全數(shù)據(jù),即需要安全傳輸?shù)脑紨?shù)據(jù),用Sa (x)表示其多項(xiàng)式。
(2) Sc:校驗(yàn)值,由上一個(gè)CRC校驗(yàn)值與安全數(shù)據(jù)Sa共同求得,用Sc(x)表示其多項(xiàng)式。
(3) G:生成多項(xiàng)式,用g(x)表示其多項(xiàng)式。
(4) m:安全數(shù)據(jù)Sd所包含的位數(shù)。
(5) r:生成多項(xiàng)式g(x)的度數(shù),亦即Sc中所包含的位數(shù)。
(6) n:在通信中傳輸?shù)膸奈粩?shù)。
(7) Be:在通信中發(fā)生錯(cuò)誤的位的總數(shù)。
(8) Bude:在通信中沒有被檢測到的錯(cuò)誤位的總數(shù)。
(9) Ball:在通信中所有傳輸位的總數(shù)。
3.1 CRC方法
3.3剩余錯(cuò)誤率
剩余錯(cuò)誤率P1是指在解碼校驗(yàn)之后仍然沒有被檢測到的已經(jīng)被破壞的傳輸數(shù)據(jù)所占的比例,即沒有被檢測出的錯(cuò)誤位的數(shù)量與所有傳輸位的總數(shù)的比值。
通常來講,剩余錯(cuò)誤率尸1與消息長度n、生成多項(xiàng)式加)以及位錯(cuò)誤率P有關(guān)。位錯(cuò)誤率P表示通信過程中發(fā)生錯(cuò)誤的位的數(shù)量與所有傳輸?shù)奈坏臄?shù)量比值。
最壞情況下p=0.5,意味著每兩位中有一位出現(xiàn)錯(cuò)誤,實(shí)際應(yīng)用中P的取值范圍在。0
剩余錯(cuò)誤率P1的計(jì)算方法主要有直接代碼分析法、Monte-Carlo模擬法以及代碼轉(zhuǎn)化分析法等幾種,本文從降低算法復(fù)雜度的角度出發(fā)采用了直接代碼分析法。
對于傳統(tǒng)的CRC校驗(yàn),無法檢測的錯(cuò)誤主要分為兩種情況,一種是只有安全數(shù)據(jù)發(fā)生錯(cuò)誤,而CRC校驗(yàn)值卻沒有發(fā)生錯(cuò)誤;第二種是安全數(shù)據(jù)和CRC校驗(yàn)值都發(fā)生了錯(cuò)誤。因此,對于本文提出的方法,由于即將用于傳輸?shù)男r?yàn)值是由上一個(gè)校驗(yàn)值與即將用于傳輸?shù)陌踩珨?shù)據(jù)Sd,i共同產(chǎn)生的,而CRC的校驗(yàn)也是由上一個(gè)CRC和安全數(shù)據(jù)凡,共同完成的,所以當(dāng)上一個(gè)CRC校驗(yàn)值發(fā)生傳輸錯(cuò)誤時(shí),一般都會(huì)造成當(dāng)前CRC校驗(yàn)無法通過。根據(jù)本文所述方法,這種情況下是需要重傳安全數(shù)據(jù)Sd,i-1與上一個(gè)CRC校驗(yàn)值,因此在很大程度上降低了剩余錯(cuò)誤率。
4 試驗(yàn)測試與評價(jià)
4.1實(shí)時(shí)性
本方法使用查表法計(jì)算CRC校驗(yàn)碼,以字節(jié)為單位進(jìn)行循環(huán)計(jì)算,循環(huán)次數(shù)為被校驗(yàn)字符串的字節(jié)長度n。每一次循環(huán)計(jì)算過程只涉及一次左移運(yùn)算、一次查表運(yùn)算和兩次異或運(yùn)算,時(shí)間復(fù)雜度為O(1),因此本方法時(shí)間復(fù)雜度為O(n)。由此可知,從理論上分析,本方法的時(shí)間復(fù)雜度不高。在此基礎(chǔ)上,本文對增加安全通信層后該層對總線通信所增加的時(shí)延進(jìn)行了測試。
測試用工控機(jī)硬件環(huán)境為1.6 GHz x86 CPU、512 MB RAM, 40 GB硬盤,所用數(shù)控總線是基于之RS485、傳輸速率為16 MB/s的同步串行總線。試}驗(yàn)包括1個(gè)主站點(diǎn)和1個(gè)從站點(diǎn)。試驗(yàn)過程中,主站點(diǎn)發(fā)送10 000幀給從站點(diǎn),每幀大小16 B。通過總線分析儀累加記錄通信總時(shí)延和安全通信層所耗時(shí)間,取每幀平均耗時(shí)得:td=48.26μstms=1.23μs。
測試結(jié)果表明,安全通信層時(shí)延開銷占整個(gè)總線時(shí)延的3%左右,在可接受范圍之內(nèi)。因此,本方法在實(shí)時(shí)性方面可滿足數(shù)控總線要求。
4.2剩余錯(cuò)誤率
本方法和傳統(tǒng)方法以剩余錯(cuò)誤率Pre為評價(jià)標(biāo)準(zhǔn),對比測試兩種方法之間的消息安全通信性能。同時(shí),對消息完整性等級IC級別也進(jìn)行了測試。
本文通過Matlab自帶的Simulink建模與仿真工具構(gòu)建試驗(yàn)環(huán)境,獲取P1與P之間的關(guān)系。傳統(tǒng)方法與本方法的建模與仿真結(jié)構(gòu)圖大體相似,在此以本方法為例,介紹試驗(yàn)過程。本方法試驗(yàn)過程如圖6所示,二進(jìn)制貝努利序列產(chǎn)生器周期性產(chǎn)生一個(gè)長度為128位的隨機(jī)二進(jìn)制序列Sd(x),該序列經(jīng)通用CRC編碼器模塊進(jìn)行CRC校驗(yàn),產(chǎn)生校驗(yàn)碼Sc(x),然后封裝成報(bào)文t(x)。t(x)分兩路進(jìn)行處理,第一路經(jīng)數(shù)據(jù)鏈路層(Data link layer, DLL)通用CRC編碼器模塊模擬數(shù)據(jù)鏈路層的CRC校驗(yàn),產(chǎn)生相應(yīng)校驗(yàn)碼并進(jìn)行封裝,封裝后的報(bào)文mt(x)通過誤比特率統(tǒng)計(jì)模塊統(tǒng)計(jì)總通信位數(shù)Ball,同時(shí)經(jīng)二進(jìn)制對稱信道模塊模擬位錯(cuò)誤率為P的信道傳輸:第二路t(x)進(jìn)入使能子系統(tǒng)1進(jìn)行未被檢測到的錯(cuò)誤位數(shù)Bude的相關(guān)統(tǒng)計(jì)。
其中,mt(x)所封裝的t(x)經(jīng)第一路模擬信道傳輸后變?yōu)閠'(x),由Sd'(x)和Sc'(x)構(gòu)成。DLL層通用CRC檢測器模塊對mt'(x)進(jìn)行CRC校驗(yàn),在校驗(yàn)結(jié)果顯示為通過的情況下,啟動(dòng)使能子系統(tǒng)1,進(jìn)行t'(x)與第二路t(x)的相關(guān)比較。圖7為使能子系統(tǒng)的內(nèi)部結(jié)構(gòu)圖,該子系統(tǒng)在t'(x)通過CRC校驗(yàn)且Sc(x)和Sc'(x)相同的前提下,累加統(tǒng)計(jì)Sd(x)和Sd'(x)中的不同位數(shù),從而得到本方法中未被檢測到的錯(cuò)誤位數(shù)Bude。
為保證試驗(yàn)具有可比性,傳統(tǒng)方法和本方法均使用相同生成多項(xiàng)式g(x)=xt16+xt12+x5+x0。傳統(tǒng)方法得出的總通信位數(shù)Ball、位錯(cuò)誤率P、沒有被檢測到的錯(cuò)誤位數(shù)Bude以及剩余錯(cuò)誤率P1結(jié)果。
同時(shí),試驗(yàn)對本方法的消息完整性等級IC進(jìn)行了測試,本方法的完整性等級比IC3更高,這意味著本方法的消息完整性等級完全能滿足數(shù)控總線的遠(yuǎn)程控制需要。
為進(jìn)一步獲取實(shí)際對比試驗(yàn)結(jié)果,本文對兩種方法的通信性能進(jìn)行了實(shí)際應(yīng)用測試。使用兩種總線進(jìn)行測試,一種為傳統(tǒng)同步串行總線,其上沒有安全通信層,另一種在傳統(tǒng)總線基礎(chǔ)上結(jié)合本方法,實(shí)現(xiàn)了安全通信層。
測試過程中,由于位錯(cuò)誤率P很小會(huì)導(dǎo)致試驗(yàn)時(shí)間過長,故為盡快得到有效數(shù)據(jù),實(shí)際測試中,在站點(diǎn)供電電源端口接入電快速瞬變脈沖群發(fā)生器,其開路輸出電壓設(shè)置為4 kV,脈沖重復(fù)頻率設(shè)置為2.5 kHz,同時(shí)特意不對傳輸線路進(jìn)行任何抗干擾保護(hù),以提高P值。主站對一個(gè)由同步和異步命令構(gòu)成的工件程序進(jìn)行反復(fù)循環(huán)空跑約200 h,統(tǒng)計(jì)總通信位數(shù)Ball。從站將已通過自身校驗(yàn)的接收報(bào)文同預(yù)先存儲(chǔ)的應(yīng)接收報(bào)文進(jìn)行比較,統(tǒng)計(jì)錯(cuò)誤位數(shù),累加得到?jīng)]有被檢測到的錯(cuò)誤位數(shù)Bude。
5 結(jié)論
(1)提出了一種適合數(shù)控總線同步及異步通信的消息安全通信方法。
(2)通過建立基于動(dòng)態(tài)CRC校驗(yàn)的安全通信機(jī)制,解決了現(xiàn)有總線安全機(jī)制中連續(xù)傳輸多個(gè)相同數(shù)據(jù)包所帶來的問題,同時(shí)也克服了發(fā)送端與接收端之間消息安全校驗(yàn)的依賴性。
(3)在滿足數(shù)控總線實(shí)時(shí)性要求的情況下,安全通信方法明顯降低了通信過程中所產(chǎn)生的剩余錯(cuò)誤率,同時(shí)也滿足了消息安全完整性等級要求。
</p<0.5,一般認(rèn)為p=10-4較合理。因此,本方法中也采用0
(審核編輯: 智匯胡妮)
分享