專利名稱:一種用于數控總線的安全可控通信方法
技術領域:
本發明涉及通信技術領域,具體的說是ー種用于數控系統現場總線的安全可控通信方法。
背景技術:
在エ業控制領域中,總線作為承載數據的媒介、傳輸命令的通道和連接各接ロ的紐帶,對整個控制系統高效、精確、安全運行起著至關重要的作用。但總線應用環境復雜,使數據在傳輸過程中會由于系統故障、電磁干擾等問題出現一定的損壞現象,從而出現消息重復、刪除、插入、不正確序列、破壞、延時及偽裝等錯誤。數據損壞如果不能及時被發現,將會給控制系統帶來設備損失和人身傷害。因此,總線數據的傳輸安全已經成為總線通信安全性研究的重點。在已有總線安全通信機制中,數據鏈路層循環冗余校驗CRC已經作為ー種規范, 成為各種總線必不可少的安全功能。數控總線作為總線在數控系統中的應用,同樣采用了這種安全校驗功能。目前,數控系統正在向開放式、網絡化方向發展,同時數控系統自身正在經歷高速、高精的發展過程,而傳統循環冗余校驗方法采用單包校驗,靜態校驗的形式, 造成剩余錯誤率較高、安全強度不可變等缺陷。傳統循環冗余校驗方法已經不能滿足數控系統高速和高精度的要求。
發明內容
針對上述傳統循環冗余校驗方法存在的缺陷,本發明要解決的技術問題是提供一種能夠增強數控總線通信安全強度可控性高和降低剰余錯誤率的用于數控總線的安全可控通信方法。為解決上述技術問題,本發明采用的技術方案是一種用于數控總線的安全可控通信方法包括以下步驟將安全數據報文發送方作為主站,將安全數據報文接收方作為從站;將主站中的安全數據報文通過偏移功能模塊生成CRC校驗值,并將CRC校驗值封裝入安全數據報文中,并發送至從站;從站通過使用偏移功能模塊對接收到的安全數據報文進行CRC校驗;如果校驗正確,從站通偏移功能模塊生成新的CRC校驗值,并將CRC校驗值封裝入應答數據報文中,然后發送至主站;主站通過使用偏移模塊對接收到的應答數據報文進行CRC校驗;如果校驗正確, 則判斷通信是否結束,若主站需要結束,則停止此次通信。如果從站對接收到的安全數據報文進行CRC校驗的結果不正確,則請求主站重新發送該安全數據報文,返回到主站中重新生成CRC校驗值步驟。如果主站對接收到的應答數據報文進行CRC校驗的結果不正確,則請求從站重新發送該應答數據報文,返回到從站中重新生成CRC校驗值步驟。
如果通信不結束,則返回到主站中重新生成CRC校驗值步驟。所述安全數據報文包括有效數據位、狀態位、序列號、偏移數、安全比特數和CRC 校驗值;其中有效數據位用來存放從站執行操作的命令;狀態位用于識別通信狀態;序列號用于識別安全數據報文順序;偏移數用于生成選取關聯數據的起始位;安全比特數用于標識關聯數據選取的位數;CRC校驗值用于進行CRC校驗。所述在主站中使用偏移模塊生成CRC校驗值的處理步驟如下在初始化過程中,主站和從站使用數值0作為偏移數和安全比特數;在數據傳輸過程中,主站在偏移數表中按順序選擇數據,與上次接收到的偏移數進行求和模包長計算,生成本次數據傳輸所使用的偏移數,井根據用戶/控制系統需求選擇安全比特數。主站根據生成的偏移數和安全比特數分別在上一次接收到的應答數據報文和本次待發送的安全數據報文中提取出關聯數據,并由兩個關聯數據共同計算生成冗余數據。主站由本次待發送的安全數據報文和冗余數據共同進行CRC計算,生成CRC校驗值。所述從站對接收到的安全數據報文進行CRC校驗處理步驟如下從站在偏移數表中按順序選擇數據,計算生成偏移數,并讀取所接收到的安全數據報文中的安全比特數。從站根據偏移數和安全比特數分別在上一次已發送的應答數據報文和本次接收到的安全數據報文中提取關聯數據,并由兩個關聯數據共同計算生成冗余數據。從站由本次接收到的安全數據報文和冗余數據共同進行CRC計算,生成CRC校驗值,并與本次接收到的安全數據報文中的CRC校驗值進行比較。若結果一致,則校驗正確; 否則校驗不正確。所述從站重新生成CRC校驗值處理步驟如下從站在偏移數表中按順序選擇下一個數據,進行計算生成偏移數,井根據用戶/控制系統需求重新選擇安全比特數,將上一次接收到的安全數據報文和本次待發送的應答數據報文作為關聯數據的來源,計算生成CRC 校驗值。所述主站對接收到的應答數據報文進行CRC校驗包括以下過程主站在偏移數表中按順序選擇下ー個數據,進行計算生成偏移數,并讀取本次收到的應答數據報文中的安全比特數,將上一次已發送的安全數據報文和本次接收到的應答數據報文作為關聯數據的來源,計算生成CRC校驗值并進行校驗。本發明具有以下有益效果及優點1.安全強度可控。由于本發明方法中,采用安全比特數決定關聯數據的長度,而關聯數據的長度又決定了冗余數據重復的概率,進而影響CRC校驗值的重復率,因此可以通過選擇不同的安全比特數獲得所需的安全強度。2.剰余錯誤率低。由于本發明方法既采用偏移數生成起始位的方法對關聯數據進行選位操作,同時又采用安全比特數決定關聯數據的長度,因此即使在多個連續數據報文內容相同的情況下,由于所選關聯數據的起始位和長度不同,也會產生不斷變化的CRC校驗值,從而增強了 CRC校驗值的動態性,降低了剰余錯誤率。
圖1為本發明方法應用的數控總線系統結構圖;圖2為本發明方法通信流程圖;圖3為本發明方法中數控總線安全數據報文結構圖;圖4為本發明方法通信結構流程圖;圖5A為本發明方法中CRC校驗值生成過程示意圖;圖5B為本發明方法中CRC校驗過程示意圖。
具體實施例方式如圖1所示,為本發明方法所涉及的數控總線系統結構圖。該圖中數控系統作為發送端,是數控總線系統的主站;伺服驅動裝置、急停裝置、傳感器裝置和I/O裝置等作為η 個接收端是數控總線系統的η個從站;主站與η個從站之間通過數控總線進行安全數據報文的傳輸。如圖2所示,本發明方法包括以下步驟將安全數據報文發送方作為主站,將安全數據報文接收方作為從站;將主站中的安全數據報文通過偏移功能模塊生成CRC校驗值,并將CRC校驗值封裝入安全數據報文中,并發送至從站;從站通過使用偏移功能模塊對接收到的安全數據報文進行CRC校驗;如果校驗正確,從站通偏移功能模塊生成新的CRC校驗值,并將CRC校驗值封裝入應答數據報文中,然后發送至主站;主站通過使用偏移模塊對接收到的應答數據報文進行CRC校驗;如果校驗正確, 則判斷通信是否結束,若主站需要結束,則停止此次通信。如果從站對接收到的安全數據報文進行CRC校驗的結果不正確,則請求主站重新發送該安全數據報文,返回到主站中重新生成CRC校驗值步驟。如果主站對接收到的應答數據報文進行CRC校驗的結果不正確,則請求從站重新發送該應答數據報文,返回到從站中重新生成CRC校驗值步驟。如果通信不結束,則返回到主站中重新生成CRC校驗值步驟。所述安全數據報文包括有效數據位、狀態位、序列號、偏移數、安全比特數和CRC 校驗值;其中有效數據位用來存放從站執行操作的命令;狀態位用于識別通信狀態;序列號用于識別安全數據報文順序;偏移數用于生成選取關聯數據的起始位;安全比特數用于標識關聯數據選取的位數;CRC校驗值用于進行CRC校驗。所述在主站中使用偏移模塊生成CRC校驗值的處理步驟如下在初始化過程中,主站和從站使用數值0作為偏移數和安全比特數;在數據傳輸過程中,主站在偏移數表中按順序選擇數據,與上次接收到的偏移數進行求和模包長計算,生成本次數據傳輸所使用的偏移數,井根據用戶/控制系統需求選擇安全比特數。主站根據生成的偏移數和安全比特數分別在上一次接收到的應答數據報文和本次待發送的安全數據報文中提取出關聯數據,并由兩個關聯數據共同計算生成冗余數據。主站由本次待發送的安全數據報文和冗余數據共同進行CRC計算,生成CRC校驗值。所述從站對接收到的安全數據報文進行CRC校驗處理步驟如下從站在偏移數表中按順序選擇數據,計算生成偏移數,并讀取所接收到的安全數據報文中的安全比特數。從站根據偏移數和安全比特數分別在上一次已發送的應答數據報文和本次接收到的安全數據報文中提取關聯數據,并由兩個關聯數據共同計算生成冗余數據。從站由本次接收到的安全數據報文和冗余數據共同進行CRC計算,生成CRC校驗值,并與本次接收到的安全數據報文中的CRC校驗值進行比較。若結果一致,則校驗正確; 否則校驗不正確。所述從站重新生成CRC校驗值處理步驟如下從站在偏移數表中按順序選擇下一個數據,進行計算生成偏移數,井根據用戶/控制系統需求重新選擇安全比特數,將上一次接收到的安全數據報文和本次待發送的應答數據報文作為關聯數據的來源,計算生成CRC 校驗值。所述主站對接收到的應答數據報文進行CRC校驗包括以下過程主站在偏移數表中按順序選擇下ー個數據,進行計算生成偏移數,并讀取本次收到的應答數據報文中的安全比特數,將上一次已發送的安全數據報文和本次接收到的應答數據報文作為關聯數據的來源,計算生成CRC校驗值并進行校驗。如圖3所示,為本發明所設計的安全數據報文,其中有效數據位中存放的有效數據屬于數據域,狀態位、序列號、偏移數、安全比特數以及CRC校驗值中存放的控制數據屬于控制域。其中,有效數據位存放從站執行操作的命令;狀態位用于識別通信狀態;序列號用于識別安全數據報文順序;偏移數存放于偏移數表中,在CRC校驗過程中,用于生成關聯數據的起始位;安全比特數由用戶/控制系統選擇,用于標識關聯數據選取的長度,從而控制安全強度;CRC校驗值用于進行CRC校驗,可發現通信過程中的傳輸錯誤。如圖4所示,為本發明方法中起始安全數據報文傳輸示意圖和過程安全數據報文傳輸示意圖。主站和從站對偏移數和安全比特數進行初始化;主站計算生成起始位,同時根據用戶/控制系統需求選擇安全比特數。主站通過生成的起始位和安全比特數分別從上次接收的應答數據報文和本次待發送的安全數據報文中提取關聯數據;由兩個關聯數據共同計算生成冗余數據,并主站由本次待發送的安全數據報文和冗余數據共同進行CRC計算,生成CRC校驗值,并發送至從站;從站計算生成起始位,并讀取所接收到的安全數據報文中的安全比特數;從站根據所生成的起始位和安全比特數分別在上一次已發送的應答數據報文和本次接收到的安全數據報文中提取關聯數據;從站由兩個關聯數據共同計算生成冗余數據,并將由本次接收到的安全數據報文和冗余數據共同進行CRC計算,生成CRC校驗值;從站將生成的CRC校驗值與本次接收到的安全數據報文中的CRC校驗值進行比較,如果兩個校驗值相等,則從站發送應答數據報文;從站根據接收到的安全數據報文,判斷通信是否結束;如結束,終止通信;如不結束,返回到主站發送安全數據報文。圖5A、5B為本發明方法中CRC校驗值生成過程示意圖和CRC校驗過程示意圖。其中,SwiftO為偏移函數,用以按偏移數表選擇偏移數;Swifti為偏移函數SwiftO選擇的偏移數;SBN為安全比特數,由用戶/控制系統根據命令類型和需求選擇;Sil和Si2為偏移數 Swifti生成的ニ元二次不定方程的根;民為接收到的數據報文所使用關聯數據的起始位, Ss為待發送的數據報文所使用關聯數據的起始位Ato和Sbs為基礎起始位,分別為上次傳輸所保存的Sr和Ss。如圖5A所示,主站首先在偏移數表中由Swift ()函數在偏移數表中按順序選偏移數Swifti,進而得到Sil和Si2,并按照Sil < Si2的順序排列;然后主站從緩存中讀取基礎起始位Sto和Sbs,對Sto和Sn、Sbs和Si2分別進行求和模包長計算,生成本次CRC校驗值生成過程中使用的起始位民和も,并將民和も存入緩存中替換和Sbs ;由用戶/控制系統選擇安全比特數SBN,作為關聯數據的長度;然后根據起始位民和も以及SBN從接收到的應答數據和待發送的安全數據中提取關聯數據,并將兩個關聯數據進行冗余計算得到冗余數據;最后使用本次待發送的安全數據和冗余數據共同進行CRC計算,生成CRC校驗值。如圖5B所示,從站首先讀取接收到的安全數據報文中的偏移數Swifti',并與偏移數表中標記的偏移數Swifti進行比較,若相等,則使用Swifti生成Sil和Si2,并按照Sil < Si2的順序排列;然后從緩存中讀取基礎起始位Sto和Sbs,對Sto和Sn、Sbs和Si2分別進行求和模包長計算,生成本次CRC校驗過程中使用的起始位民和も,并將民和も存入緩存中替換Sto和^s ;讀取接收到的安全數據報文中的安全比特數SBN,作為本次校驗所使用的關聯數據的長度;然后根據起始位民和も以及SBN從接收到的安全數據和待發送的應答數據中提取關聯數據,并將兩個關聯數據進行冗余計算得到冗余數據;最后使用本次待發送的應答數據和冗余數據共同進行CRC計算,生成CRC校驗值,并與接收到的安全數據報文中的 CRC校驗值進行比較,若相同,則通過校驗;否則,校驗錯誤,請求重傳。
權利要求
1.一種用于數控總線的安全可控通信方法,其特征在于包括以下步驟將安全數據報文發送方作為主站,將安全數據報文接收方作為從站;將主站中的安全數據報文通過偏移功能模塊生成CRC校驗值,并將CRC校驗值封裝入安全數據報文中,并發送至從站;從站通過使用偏移功能模塊對接收到的安全數據報文進行CRC校驗;如果校驗正確, 從站通偏移功能模塊生成新的CRC校驗值,并將CRC校驗值封裝入應答數據報文中,然后發送至主站;主站通過使用偏移模塊對接收到的應答數據報文進行CRC校驗;如果校驗正確,則判斷通信是否結束,若主站需要結束,則停止此次通信。
2.按權利要求1所述的用于數控總線的安全可控通信方法,其特征在于如果從站對接收到的安全數據報文進行CRC校驗的結果不正確,則請求主站重新發送該安全數據報文,返回到主站中重新生成CRC校驗值步驟。
3.按權利要求1所述的用于數控總線的安全可控通信方法,其特征在于如果主站對接收到的應答數據報文進行CRC校驗的結果不正確,則請求從站重新發送該應答數據報文,返回到從站中重新生成CRC校驗值步驟。
4.按權利要求1所述的用于數控總線的安全可控通信方法,其特征在于如果通信不結束,則返回到主站中重新生成CRC校驗值步驟。
5.按權利要求1所述的用于數控總線的安全可控通信方法,其特征在于所述安全數據報文包括有效數據位、狀態位、序列號、偏移數、安全比特數和CRC校驗值;其中有效數據位用來存放從站執行操作的命令;狀態位用于識別通信狀態;序列號用于識別安全數據報文順序;偏移數用于生成選取關聯數據的起始位;安全比特數用于標識關聯數據選取的位數;CRC校驗值用于進行CRC校驗。
6.按權利要求1所述的用于數控總線的安全可控通信方法,其特征在于所述在主站中使用偏移模塊生成CRC校驗值的處理步驟如下在初始化過程中,主站和從站使用數值0作為偏移數和安全比特數;在數據傳輸過程中,主站在偏移數表中按順序選擇數據,與上次接收到的偏移數進行求和模包長計算,生成本次數據傳輸所使用的偏移數,井根據用戶/控制系統需求選擇安全比特數。主站根據生成的偏移數和安全比特數分別在上一次接收到的應答數據報文和本次待發送的安全數據報文中提取出關聯數據,并由兩個關聯數據共同計算生成冗余數據。主站由本次待發送的安全數據報文和冗余數據共同進行CRC計算,生成CRC校驗值。
7.按權利要求1所述的用于數控總線的安全可控通信方法,其特征在于所述從站對接收到的安全數據報文進行CRC校驗處理步驟如下從站在偏移數表中按順序選擇數據,計算生成偏移數,并讀取所接收到的安全數據報文中的安全比特數。從站根據偏移數和安全比特數分別在上一次已發送的應答數據報文和本次接收到的安全數據報文中提取關聯數據,并由兩個關聯數據共同計算生成冗余數據。從站由本次接收到的安全數據報文和冗余數據共同進行CRC計算,生成CRC校驗值,并與本次接收到的安全數據報文中的CRC校驗值進行比較。若結果一致,則校驗正確;否則校驗不正確。
8.按權利要求1所述的用于數控總線的安全可控通信方法,其特征在于所述從站重新生成CRC校驗值處理步驟如下從站在偏移數表中按順序選擇下一個數據,進行計算生成偏移數,井根據用戶/控制系統需求重新選擇安全比特數,將上一次接收到的安全數據報文和本次待發送的應答數據報文作為關聯數據的來源,計算生成CRC校驗值。
9.按權利要求1所述的用于數控總線的安全可控通信方法,其特征在于所述主站對接收到的應答數據報文進行CRC校驗包括以下過程主站在偏移數表中按順序選擇下ー個數據,進行計算生成偏移數,并讀取本次收到的應答數據報文中的安全比特數,將上一次已發送的安全數據報文和本次接收到的應答數據報文作為關聯數據的來源,計算生成CRC校驗值并進行校驗。
全文摘要
本發明涉及一種用于數控總線的安全可控通信方法,包括以下步驟將安全數據報文發送方作為主站,將安全數據報文接收方作為從站;在主站中使用偏移模塊計算產生CRC校驗值,封裝入安全數據報文中,并將該安全數據報文發送至從站;從站根據所用偏移模塊對接收到的安全數據報文進行CRC校驗;如果校驗正確,則從站繼續由所用偏移模塊計算產生CRC校驗值,并封裝入應答數據報文中,發送至主站;主站根據所用偏移模塊對接收到的應答數據報文進行CRC校驗;如果校驗正確,則判斷通信是否結束,如果沒有結束,則主站繼續向從站發送下一個安全數據報文;若結束,則停止此次通信。本發明具有安全強度可控、剩余錯誤率低等特點。
文檔編號H04L1/00GK102571259SQ20101058214
公開日2012年7月11日 申請日期2010年12月9日 優先權日2010年12月9日
發明者于東, 岳東峰, 郭翀, 陳龍, 高甜容 申請人:中國科學院沈陽計算技術研究所有限公司, 沈陽高精數控技術有限公司