一种用于数控总线的安全可控通信方法

文档序号:7768342阅读:177来源:国知局
专利名称:一种用于数控总线的安全可控通信方法
技术领域
本发明涉及通信技术领域,具体的说是ー种用于数控系统现场总线的安全可控通信方法。
背景技术
在エ业控制领域中,总线作为承载数据的媒介、传输命令的通道和连接各接ロ的纽带,对整个控制系统高效、精确、安全运行起着至关重要的作用。但总线应用环境复杂,使数据在传输过程中会由于系统故障、电磁干扰等问题出现一定的损坏现象,从而出现消息重复、删除、插入、不正确序列、破坏、延时及伪装等错误。数据损坏如果不能及时被发现,将会给控制系统带来设备损失和人身伤害。因此,总线数据的传输安全已经成为总线通信安全性研究的重点。在已有总线安全通信机制中,数据链路层循环冗余校验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日
发明者于东, 岳东峰, 郭翀, 陈龙, 高甜容 申请人:中国科学院沈阳计算技术研究所有限公司, 沈阳高精数控技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1