CN110663207B - 嵌入的循环冗余校验值 - Google Patents
嵌入的循环冗余校验值 Download PDFInfo
- Publication number
- CN110663207B CN110663207B CN201880034549.9A CN201880034549A CN110663207B CN 110663207 B CN110663207 B CN 110663207B CN 201880034549 A CN201880034549 A CN 201880034549A CN 110663207 B CN110663207 B CN 110663207B
- Authority
- CN
- China
- Prior art keywords
- data
- value
- crc
- counter value
- data packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 125000004122 cyclic group Chemical group 0.000 title claims abstract description 33
- 238000000034 method Methods 0.000 claims abstract description 91
- 230000008859 change Effects 0.000 claims description 5
- 230000001419 dependent effect Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 34
- 238000011144 upstream manufacturing Methods 0.000 description 16
- 230000005540 biological transmission Effects 0.000 description 15
- 230000000875 corresponding effect Effects 0.000 description 15
- 238000012545 processing Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000002596 correlated effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004308 accommodation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/611—Specific encoding aspects, e.g. encoding by means of decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6516—Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种用于形成待传输的数据包(1)的方法和装置,所述数据包包括数据(4)和至少一个用于循环冗余校验的值,CRC值(5、6),其中,基于所述数据(4)的至少一部分借助至少一个预定的多项式来形成所述CRC值(5、6),其中该方法包括:初始化(7)计数器值;计数(8)数据(4)的单元,其中计数器值对于数据(4)的每个单元改变;以及当计数器值达到参考值或者数据包(1)中的数据(4)的所有单元已经被计数时,将CRC值添加(12、14)到数据包(1)中,其中,CRC值(5、6)是在自从计数器值最后一次达到参考值或自从计数器值被初始化以来已经被计数的数据(4)的单元上形成的。本发明还涉及一种用于检查相应的接收的数据包的方法和装置。
Description
技术领域
本发明涉及循环冗余校验值,CRC值,并且尤其涉及嵌入在数据包中的循环冗余校验值。
背景技术
循环冗余校验用于数据包的传输。循环冗余校验用于识别数据包传输中的错误,并整理或在必要时纠正错误的数据包。
在此,在数据包的传输之前,以所谓的冗余校验值也或者短CRC值的形式向数据包添加额外的冗余。该CRC值是根据特定方法从数据包的数据中计算出的校验值,借助该校验值可以识别在传输期间可能发生的错误。CRC值本身除了底层数据包中已包含的信息内容外,没有其他信息内容。因此,CRC值是冗余的。
用于计算CRC值的计算方法基于循环码。这些是具有以下性质的块代码:有效代码字的位的每个循环移位也是有效代码字。在数学上,CRC值的计算基于二元多项式,其中映射了数据包的数据。此二元多项式除以CRC生成器多项式(也称为CRC多项式),并且该多项式除法的余数给出了附加到数据包的CRC值。如果具有CRC值的数据包无错误地传输并且还在接收器侧上进行分割以通过CRC多项式进行检查,则得到余数为零。如果在传输过程中发生错误,则得到与零不同的余数。生成和检查CRC值所需的多项式除法非常容易通过使用异或门在硬件中实现。
每个CRC多项式具有所谓的“汉明距离”。“汉明距离”指示为了从数据生成的CRC值唯一而可能存在的最大数据量。如果使用相比“汉明距离”所允许的具有CRC多项式的更多数据以用于生成CRC值,则即使该数据有错误,也可能会识别出该数据是有效的。这是基于:在这种情况下,CRC值不再唯一。
因此,对于许多传输而言,使用固定大小的数据包,即具有一定固定数量的数据的数据包,并且使用具有与数据包中的数据数量匹配的“汉明距离”的CRC多项式,这样就可以计算出唯一的CRC值。
如果使用具有非固定大小的数据包,即数据数量不固定的数据包,则通常使用CRC多项式,该CRC多项式具有被设计用于数据包中最大数据数量的“汉明距离”。因此,即使数据包并不总是达到此最大数据数量,也将使用CRC多项式。
因此,在这种方法中,对数据包中不同数量的数据没有响应。对于数据包中的数据数量而言,所选的CRC多项式所具有的“汉明距离”太小,或者通过具有不必要大的“汉明距离”的CRC多项式通常产生不必要的更多成本。在此应该注意的是,“汉明距离”越大,计算CRC值并执行检查所需的计算成本就越大,或者异或门的硬件成本也就越大。
基于此,本发明的目的是允许对数据包进行冗余校验,其中数据包可以具有可变的长度。
发明内容
该目的通过一种用于形成具有循环冗余校验值,CRC值的数据包的方法和装置以及通过一种用于接收和检查具有循环冗余校验值的这种数据包的相应方法和装置来实现。
按照根据本发明的方法,至少一个CRC值被嵌入数据包中,利用该嵌入的CRC值,然后可以检查数据包及其无差错传输。在此,根据数据包中的数据的数量,将至少一个或多个CRC值嵌入或插入数据包中。
在此,用于形成具有数据和用于循环冗余校验的至少一个值的待传输的数据包的根据本发明的方法包括:初始化计数器值;对数据的单元进行计数,其中,对于单元的每个数据,改变计数器值;以及在计数器值达到参考值或已经对数据包中的数据的所有单元进行计数时在数据中插入CRC值,其中,CRC值经过数据单元形成,自从计数器值最后一次达到参考值或自从计数器值被初始化以来已经计数了该数据单元。换句话说,根据本发明的方法对数据包中的数据的单元进行计数,例如一个单元是固定数量的位。例如,该固定数量的位可以是一个字节。如果已经计数了预定数量的单元,则计数器值已达到某个参考值,则CRC值经过所计数的单元形成并被插入数据包中。计数在此可以基于,计数器值被递增或递减。随后,重新对预定数量的单元进行计数,并将CRC值重新插入数据包中,其中,该CRC值经过自从上次插入CRC值以来的计数的单元被形成。计数又可以包括递增或递减计数器值。如果计数器值未达到先前确定数量的单元(即参考值,但达到数据包的开头或结尾),则插入CRC值,该CRC值由其余数据单元(即剩余的使用数据和数据包的头部的控制数据)形成。数据包的开头或结尾可以例如通过识别特定数据来确定。例如,可以识别的是,存在控制数据,即到达数据包的头部。在此,对于CRC值可以考虑头部的所有控制数据或控制数据的仅一部分。数据包的结尾也可以例如通过以下来识别:数据包的长度是已知的,因为该长度例如是数据包的头部的一部分。
因此,根据本发明的方法在数据包中嵌入至少一个CRC值,其中该嵌入的CRC值始终是经过预定数量的数据单元或其余数据单元上形成,其中预定量的数据可以与用于CRC值的至少一个CRC多项式的“汉明距离”相关。也就是说,无论数据包有多长,优选地,没有比“汉明距离”所允许的更多的数据单元用于形成CRC值。对于少量数据,可以与此偏离,例如计数器值可以仅计数使用数据,但是如果在使用数据的结尾达到此值,而其余仅由数据包的头部组成,则CRC值也还可以在数据包的头部或头部的至少一部分上形成。
根据本发明的方法具有的优点是,仅必须存在计数器值,该计数器值根据数据单元的数量而变化,并且当达到参考值或数据的剩余的其余时,将CRC值插入数据包中。在此,即使数据的数量可变,也始终可以使用相同的CRC多项式。这意味着与使用具有更高“汉明距离”的CRC多项式相比,仅需少量的更多成本。此外,可以更好地定位发生的错误,因此不必丢弃完整的数据包,而是仅丢弃数据包的一部分,即其CRC值校验指示错误的部分。
在根据本发明的方法的优选实施方式中,CRC值分别邻接数据单元被插入在数据包中,在数据单元的基础上形成CRC值。也就是说,将CRC值插入在数据包中的数据单元之前或之后,在数据单元的基础上形成CRC值。在这种情况下,也可以说嵌入的CRC值。
在根据本发明的方法的优选实施方式中,数据单元是固定数量的位,例如一个字节。但是,本领域技术人员知道,也可以使用数据单元的任何限定。该单元只是可定量的和可计数的。
在根据本发明的方法的优选实施方式中,计数器值在初始化时被设置为先前确定的二进制值。例如,该预定的二进制值可以是数据单元的数量的倍数,即,参考值的倍数,经过该数据单元形成CRC值。但也能够考虑的是,如果该长度被存储在例如数据包的头部或数据包的其他地方,则将计数器值设置为数据包的长度。用于识别所计数的数据单元的量的所使用的参考值在最低有效位置上可能在其二进制值表示中具有零,或者仅具有零。随后,在对数据单元进行计数时,计数器值将递减。如果计数器值在对应于具有零的参考值的最低有效位置的数量的最低有效位置的数量处具有零值,则这表明已经对一定数量的数据单元进行了计数。在此,计数的数据量等于参考值。例如,根据本发明的方法可以被设定成所有的2048个数据单元在数据包中插入CRC值,该数字的二进制表示对应于100000000000(11个零)。也就是说,每当二进制计数器值的11个最低有效位置指示零时,就插入CRC值,该CPC值经过最后计数的2048个数据单元形成。在此,一个数据单元可以是一个字节。例如,这意味着可以计数2048个字节。但是,本领域技术人员知道,可以计数任何其他数量的数据单元,并且该数量由计数器值的最低有效位置处的相应数量的零指示。这样的比较也可以称为交零比较。
在根据本发明的方法的优选实施方式中,所有CRC值都可以借助于相同的CRC多项式形成。这具有的优点是,只必须保留可迭代使用的硬件电路。然而备选地,CRC值也可以由不同的CRC多项式形成。在此,可以形成具有不同CRC多项式的所有CRC值,或者可以使用预定数量的CRC多项式。例如,可以使用两个不同的CRC多项式,并且CRC值分别与两个CRC多项式中的一个CRC多项式交替形成。如果这些CRC多项式具有不同的“汉明距离”,则也可以使用其他参考值。在此,“汉明距离”的参考值可以分别对应于当前使用的CRC多项式。例如,可以使用“汉明距离”为2048字节或4092字节的CRC多项式,例如卡斯塔格诺利多项式。然而,本领域技术人员已知的是,可以使用任何CRC多项式,但从属于此的参考值必须与使用的CRC多项式的“汉明距离”匹配。
在根据本发明的方法的优选实施方式中,数据的单元是使用数据和/或头部数据。嵌入的CRC值因此可以基于使用数据以及数据包的头部数据、即控制数据来形成。这实现对包括控制数据的数据包进行完整检查。
在根据本发明的方法的优选实施方式中,具有嵌入式CRC值的所生成的数据包被包含在循环帧中。数据包也可以称为电报。例如,当要在环形总线上发送一个数据包或多个数据包时,使用循环帧。在这种情况下,循环帧可以被定义为重复的(循环的)优选等距的时间间隔,其中数据可以在环形总线上传输。循环帧具有例如至少一个起始标识符(SOC)和用于数据传输的时间范围。在此,彼此连续循环帧的多个起始标识符(SOC)有利地在彼此时间等距的距离中。所提到的时间范围被设置用于数据包的传输。起始标识符(SOC)和数据包通过环形总线传输,并通过环形总线的所有数据总线用户设备。起始标识符(SOC)是独立的,即可以作为独立符号被传输或有利地被包含在起始数据包(SOC包)中。在循环帧的时间范围内,没有、一个或多个数据包被传输。有利地,空载数据(休眠数据)被插入到循环帧中,尤其是邻接至少一个数据包。有利地,数据包和/或空载数据的传输在环形总线上引起不间断的信号。该信号实现数据总线用户设备对该信号进行时间同步。有利地,循环帧还具有尾部。尾部具有可变的长度,并且跟随用于数据传输的时间范围优选地直到下一个循环帧的下一个起始标识符(SOC)。有利地,尾部具有空载数据。
优选地,在循环帧中传输的数据包最初是由本地总线主机生成的,并通过环形总线发送给数据总线用户设备。在生成时,本地总线主机可以将从控制部(例如SPS)接收的过程数据插入数据包中。然而,数据包还可以包含来自本地总线主机本身和/或控制部的过程数据。然后,数据包以及因此其中包含的过程数据和CRC值将逐步通过环形总线的单个数据总线用户设备。在此,数据包可以具有多个符号,其中每个符号具有一定数量的位,例如8个位,即1个字节。数据包相应地逐单元、逐块或以部分方式例如以符号形式通过数据总线用户设备。因此,数据总线用户设备在任何给定时间始终仅具有数据包的一部分。因此,当在这里谈论数据时,这也能够意味着恰好通过环形总线的数据包的符号。
承载过程数据的数据包也可以称为过程数据包。过程数据包具有由本地总线的数据总线用户设备发送和/或接收的过程数据。有利地,过程数据包不具有用于向本地总线中的数据总线用户设备或从本地总线中的数据总线用户设备发送过程数据的地址。在过程数据包中,过程数据被布置成使得基于过程数据在过程数据包中的相应位置,例如在相关联的连续数据块(1字节)内的一个或多个位,数据总线用户设备可以识别属于相应的数据总线用户设备的那些过程数据。有利地,过程数据包具有标识符(IDE),该标识符分配给数据包的类型,也就是说分配给过程数据包,并且可以由数据总线用户设备识别。但是,数据包也可以是不具有过程数据的通信数据包,并且特别是用于编程和/或控制和/或监视和/或识别至少一个数据总线用户设备。有利地,通信数据包具有分配给至少一个数据总线用户设备的地址。优选地,数据总线用户设备被设定成评估地址并相应地处理通信数据包。
在循环帧中使用数据包的情况下,根据本发明嵌入的CRC值必不可少,并且具有以下优点:数据包的长度以及因此待发送的过程数据的长度不限于由相应的CRC多项式的“汉明距离”预定的特定数量。同样有利的是,数据总线用户设备能够仅检查数据包的一部分,即在每种情况下形成相应的CRC值的部分,而数据总线用户设备不必使得整个数据包存在。这又意味着,与当数据总线用户设备需要缓存整个数据包以进行检查时相比,数据总线用户设备具有更小的存储需求。
本发明所基于的目的还通过一种用于形成具有数据和至少一个用于循环冗余校验的值的待传输的数据包的装置来实现。在此,至少一个CRC值基于数据的至少一部分借助于至少一个预定的多项式形成。该装置包括用于初始化计数器值的装置,用于对数据单元进行计数的装置,其中所述装置适于对于每个数据单元改变计数值,用于形成CRC值的装置,以及用于在数据包中插入至少一个CRC值的装置。在此,用于对数据单元进行计数的装置适于基于所计数的数据单元来改变计数器值。在此,该装置还可以具有用于显示计数器值的装置。自从计数器值最后一次达到参考值或计数器值已被初始化,用于形成CRC值的装置可适于经过被计数的数据单元形成CRC值。此外,该设备可以包括用于输出计数器值的装置。在此,该装置可以被实现在算术逻辑单元、运算电路、微控制器或另一数字逻辑电路中,该另一数字逻辑电路构造为半导体芯片的一部分并且被实现在集成电路( ASIC)或现场可编程(逻辑)门阵列(FPGA)中,或在另一个可编程电路(PLD)或离散栅极或晶体管逻辑中。
本发明所基于的目的还通过一种用于检查具有用于循环冗余校验的至少一个值、CRC值的接收的数据包的方法来实现。在此,至少一个CRC值基于数据的至少一部分借助于至少一个预定多项式形成并且被插入到数据包中。该方法包括初始化计数器值,对来自接收到的数据包的数据单元进行计数,其中,对于每个数据单元,改变计数器值,并在计数器值达到参考值或已经对数据包中的所有数据单元进行计数时,识别数据中的CRC值,并检查所识别的CRC值。在此,可以根据具有已知CRC多项式的多项式除法来进行CRC值的检查。在此,如果多项式除法分别表示余数为零,则无错误地接收属于相应CRC值的数据。如果所有检查均未显示错误,则整个数据包将无错误接收,即,执行的所有多项式除法分别显示余数为零。
在根据本发明的方法的优选实施方式中,该方法包括:计数器值在初始化时设置为预定的二进制值,并且其中当数据单元计数时该计数器值递减,并且参考值是在最低有效位置处具有零值的二进制值。这导致的是,每当计数器值在交零比较中指示已对一定数量的数据单元进行计数时,都会识别到存在可以被检查的CRC值。
在根据本发明的方法的优选实施方式中,分别使用相同的CRC多项式来进行CRC值的检查。
在根据本发明的方法的优选实施方式中,待检查的数据包被包含在循环帧中,并且该方法还包括从数据总线用户设备接收数据包。
本发明所基于的目的还通过一种用于检查具有数据和用于循环冗余校验的至少一个值、CRC值的接收的数据包的方法来实现。在此,基于数据的至少一个第一部分借助至少一个预定多项式形成第一CRC值,并且基于数据的至少一个第二部分借助预定多项式形成第二CRC值。该方法包括:初始化计数器值;对来自接收到的数据包的第一部分数据的单元进行计数;其中对于每个数据单元,改变计数器值;当计数器值达到参考值时,识别数据中的第一CRC值;当已经对数据包中的所有数据单元进行计数时,识别数据中的第二CRC值;以及检查所识别的CRC值。在此,当对识别到的CRC值的所有检查均未显示出任何错误时,可以识别出数据包被没有错误地接收到。
在根据本发明的方法的优选实施方式中,在初始化期间将计数器值设置为二进制值,在此例如该二进制值可以取决于数据包的长度。数据包的长度例如可以从数据包的头部分得知。在对单元进行计数时,计数器值例如会递减,并且将计数器值与参考值(例如该参考值仅具有零值)进行比较。
本发明所基于的目的还通过一种用于检查具有用于循环冗余校验的至少一个值、CRC值的接收的数据包的装置来实现。在此,CRC值已经基于数据包的数据的至少一部分借助于至少一个预定的多项式形成并且已经被插入到数据包中。该装置具有:用于接收数据包的装置;用于初始化计数器值的装置;用于从接收的数据包中对数据的单元进行计数的装置,其中,对于每个数据单元,改变计数器值;用于在计数器值达到参考值或已经对数据包中的所有数据单元进行计数时识别数据包的数据中的CRC值的装置;以及用于检查所识别的CRC的装置。
附图说明
接下来借助实施例利用附图更详细地解释本发明。从所描述的实施例得到本发明的主题的进一步细节、特征和优点。图示:
图1示出了具有CRC值的示例性的数据包;
图2示出了具有两个CRC值的示例性的数据包;
图3示出了具有三个CRC值的示例性的数据包;
图4示出了用于形成具有一个或多个CRC值的数据包的示例性的根据本发明的方法。
图5示出了用于检查具有一个或多个CRC值的数据包的示例性的根据本发明的方法;并且
图6示出了示例性的自动化设备的示意性框图,具有存储可编程控制部、上级总线和几个示例性的数据总线用户设备,在数据总线用户设备中使用了根据本发明的数据包。
具体实施方式
图1示例性地示出了具有头部分的数据包1,该头部分包括一对一的位模式2和控制数据部分3。一对一的位模式2是仅发生一次的位模式,并且标记数据包1的开头。这样的位模式2也可以称为代码字或标识符。在此,唯一位模式2或代码字的设计取决于发送数据包1的编码。控制数据部分3可以包括控制数据,该控制数据包含关于数据包1的信息或可以由数据包1的一个或多个接收器使用的其他信息。本领域技术人员知道数据包1中可能包含的大量控制数据。
数据包1的信息部分包括数据4,该数据也可以被称为使用数据或过程数据,并且该数据适合于在接收器处引起控制、调节或其他评估。然而,使用数据或过程数据也可以设计为将由他们展示的信息传输给一个或多个接收器。
在此处所示的实施例中,数据包1恰好包括一个CRC值5。该CRC值5借助CRC多项式由数据4和头部分2、3形成。在这里示出的实施例中,由于在这里示出的实施例中的数据量小于2048字节,所以仅将CRC值5插入到数据包1中。也就是说,在这里示出的实施例中,使用具有“汉明距离”的CRC多项式,利用该“汉明距离”,可以针对至少2048个字节唯一地建立的CRC值5。在形成数据包1时,首先将计数器值初始化为例如参考值的倍数,即2048字节的倍数或数据包1的长度。随后,对数据4的单元进行计数。在此,在到达数据4的末尾或一对一的位模式2之前,计数器值尚未达到2048字节的参考值。CRC值5因此已经经过整个数据4和头部分2、3形成,并且已经被添加到数据4。
图2示例性地示出了具有两个插入的CRC值5、6a的数据包1。在此处所示的示例性实施例中,数据包1包含的参考值大于2048字节的数据4。通过用计数器值对数据4进行计数,当计数器值达到参考值时,由所计数的第一数据4a形成第一CRC值6a。该第一CRC值6a被添加到计数的数据4a。在此处所示的实施例中,数据4b的其余部分小于参考值。在计数器值因此重新达到参考值之前,到达数据包1的末端。因此,由剩余数据4b和数据包1的头部分2、3形成CRC值5。该CRC值5被附加到剩余数据4b。这样,产生具有两个CRC值5、6a的数据包1,其中第二CRC值5可以被称为嵌入式CRC值,即eCRC值,因为第二CRC值被插入在数据4a、4b之间。在此,两个CRC值5、6a可以由相同的CRC多项式形成,但是基于形成它们所基于的数据而不同。CRC值6a基于数据4a,并且eCRC值5基于数据4b,并且在此处所示的实施例中,也基于头部分2、3。对于本领域技术人员而言清楚的是,尽管这里描述了两个CRC值5、6a是借助于相同的CRC多项式形成的,但是这里也可以使用不同的CRC多项式。
图3示例性地示出了具有三个CRC值5、6a、6b的数据包1,其中三个CRC值5、6b中的至少两个CRC值是嵌入的CRC值5、6b。在数据包1的形成中,将计数器值设置为例如参考值的倍数,例如设置为6144字节(3×2048字节)。然而,本领域技术人员已知的是,可以任意设置计数器值,并且例如可以将计数器值设置为数据包的长度,如果该长度已知的话。
在此处所示的示例性实施例中,针对数据包1中的数据4的每个字节递减计数器值。为了简化数据4的计数,可以以二进制形式进行计数,并且可以将计数器值的二进制表示中的最低有效位置用于执行交零比较。这意味着,只要计数器值的二进制表示中的所有最低有效位置都等于零,就已经对与参考值相对应的数据量4进行了计数。在表1中通过示例显示了这种交零比较。
6144字节 | 1100000000000 |
… | |
4097字节 | 1000000000001 |
4096字节 | 1000000000000 |
4095字节 | 0111111111111 |
… | |
2049字节 | 0100000000001 |
2048字节 | 0100000000000 |
2047字节 | 0011111111111 |
表1
在此,表1从初始化的6144字节计数器值开始。对于该值的二进制表示,需要13个位置。但是,始终只考虑最低有效位置,其中最低有效位置的数量对应于表示参考值所必需的最低有效位置的数量。在此,参考值可以对应于所使用的CRC多项式的“汉明距离”。在此处所示的实施例中,利用12个位置(2048字节的“汉明距离”)可以显示参考值,即11个位置是最低有效位置,并且因此是相关的。如果递减6144字节的计数器值,则最后11个位置在恰好4096个字节以及2048个字节和0个字节处经历交零。因此,当经历这些交零时,总是精确地计数了与参考值相对应的数据4的数量。在这里示出的实施例中,计数器值被初始化为具有6144字节,并且在第一交零处插入CRC值6a。CRC值是通过数据4a形成的。在第二交零处,插入eCRC值6b。eCRC值是通过数据4b形成的。由于剩余数据4c小于2048字节,因此在此所示的实施例中没有进一步的交零。这意味着在计数器值重新经历交零之前,已经到达数据4的末端或数据包1的末端由一对一的位模式2指示。因此,另外的eCRC值5经过剩余数据4c和头部分2、3形成,并且被添加到数据4c。
在图1至3中所示的实施例中,使用2048字节的参考值。但是,本领域技术人员知道,也可以使用根据所选择的CRC多项式的“汉明距离”选择的另一个参考值。在这里示出的实施例中,为了简化说明仅预定了一个特定的参考值。然而,这不应被理解为限制,并且在上述条件下的任何参考值都是可以想到的。此外,本领域技术人员已知的是,即使在所示的实施例中始终考虑数据包1的整个头部分2、3以形成最后待插入的eCRC值5,该值也可以仅通过没有头部分2、3的使用数据4来形成。也可以设想的是,最后待插入的eCRC值5仅通过头部分2、3的一部分(例如控制数据3)形成,而不是通过一对一的位模式2形成。此外,本领域技术人员已知的是,即使在这里使用交零比较来识别已经计数了一定数量的数据4,但是例如如果计数器值不递减而是递增,则可以使用单遍比较。因此,当从零开始计数时,计数器值的二进制表示的最低有效位置处的全一指示达到参考值。这例如可以在表1中看到。当从零开始计数时,2047和4095字节等处的最低有效位置始终由全一组成。这些可用于指示已经计数了与参考值相对应的数据量。此外,本领域技术人员已知的是,即使在这里使用参考值的倍数作为计数器值的起始值,也可以根据数据包1的长度来设置计数器值,只要知道该长度即可。
图4示例性地示出了根据本发明的方法的步骤,该方法用于在流程图中形成如图1至图3所示的具有一个或多个CRC值5、6的数据包1。在此,在第一步骤7中,将计数器值初始化为例如参考值的倍数,即,初始化为所使用的CRC多项式的“汉明距离”的倍数或数据包1的长度。随后,在步骤8中,对数据包1中的数据4的单元进行计数,并改变每个数据4的单元的计数器值。在此,该改变可以包括计数器值的递减或递增。数据4的单元在此可以例如是字节。也可能是仅对使用数据进行了计数,并且形成数据包2、3的头部分的控制数据在计数中保持被忽略,因为它们仅具有少量字节。随后,在步骤9中,执行计数器值与参考值的比较。在此,参考值可以指示利用所选CRC多项式还导致唯一CRC值5、6的数据4的单元的数量。但是,参考值也可以被选择为略小于利用所选CRC多项式还导致唯一CRC值5、6的数据4的单元的最大数量,以提高通过CRC值5、6可以识别到错误的安全性。如果计数器值与参考值不对应,则在步骤10中检查数据包1的所有数据4是否已经被计数。例如,该检查可以在于,将数据的最后单元4与指示数据包1的开头的一对一已知的位模式进行比较。如果该检查是否定的,即如果尚未到达数据包1的结尾,则该方法重新重复步骤8,即,改变计数器值,即对数据4的另一单元进行计数。数据包的结尾也可以例如通过数据包1的已知长度来识别。随后,在步骤9中重新检查计数器值是否对应于参考值。如果不是这种情况,则在步骤10中重新检查是否已经到达数据包1的结尾。重复步骤8、9和10,直到步骤9中的检查或步骤10中的检查为肯定为止。
在步骤9中的检查为肯定的情况下,在步骤11中仅经由数据4a、4b的计数的单元形成CRC值6a、6b。然后在步骤12中将该形成的CRC值6a、6b插入数据包1中。在此,可以将CRC值6a、6b前置于或者附加于数据4a、4b的计数的单元。随后,系统重新返回到步骤8,并且对数据4的另外的单元进行计数,即,对于数据4的每个另外的单元更改计数器值。
在步骤10中的检查为肯定的情况下,即到达数据包1的结尾,则在步骤13中,通过数据4的最后计数的单元的数量形成CRC值5。该CRC值5也可以经由包括数据包1的头部分2、3的数据形成。然后在步骤14中将此形成的CRC值5插入数据包1中。也就是说,CRC值5被前置于或附加到最后计数的数据4。在到达数据包1的结尾时,方法终止。
图5示例性地示出了根据本发明的方法的步骤,该方法用于在流程图中检查如图1至图3所示的具有一个或多个CRC值5、6的数据包1。在此,在第一步骤15中,将计数器值初始化为例如参考值的倍数,即,初始化为所使用的CRC多项式的“汉明距离”的倍数或数据包1的长度。随后,在步骤16中,对数据包中的数据4的单元进行计数,并改变每个数据4的单元的计数器值。在此,该改变可以包括计数器值的递减或递增。数据4的单元在此可以例如是字节。随后,在步骤17中,执行计数器值与参考值的比较。在此,参考值可以指示利用所选CRC多项式还导致唯一CRC值5、6的数据4的单元的数量。但是,参考值也可以被选择为略小于利用所选CRC多项式还导致唯一CRC值5、6的数据4的单元的最大数量,以提高通过CRC值5、6可以识别到错误的安全性。如果计数器值与参考值不对应,则在步骤18中检查数据包1的所有数据是否已经被计数。例如,该检查可以在于,将数据的最后单元4与指示数据包1的开头的一对一已知的位模式进行比较。如果该检查是否定的,即如果尚未到达数据包1的结尾,则该方法重新重复步骤16,即,改变计数器值,即对数据4的另一单元进行计数。随后,在步骤17中重新检查计数器值是否对应于参考值。如果不是这种情况,则在步骤18中重新检查是否已经到达数据包1的结尾。数据包1的结尾也可以例如通过数据包1的已知长度来识别。重复步骤16、17和18,直到步骤17中的检查或步骤18中的检查为肯定为止。
在步骤17中的检查为肯定的情况下,在步骤19中在数据4中识别并且提取CRC值5、6。在接下来的步骤20中,然后使用计数的数据4和提取的CRC值5、6对数据进行检查。这可能表明数据有错误或没有错误。例如,在识别到错误的情况下,可以丢弃数据包。
在步骤18中的检查为肯定的情况下,也就是说到达数据包1的结尾,则在步骤21中在数据4c中识别并提取CRC值5。在接下来的步骤22中,然后使用计数的数据4c和提取的CRC值5对数据4c进行检查。这可能表明数据4c有错误或没有错误。在到达数据包1的结尾时,方法终止。
可选地,可以在方法结束(在此未示出)之前进行确定,即数据包1是否无错误或有错误。在此例如可以指示识别到的CRC值5、6和相关数据4中的哪个具有错误。利用该信息,可以检查数据包1的多少部分有错误并且可以丢弃这些部分,或者可以丢弃整个数据包1。例如,如果错误数据部分的数量超过限制值,则丢弃整个数据包1。
在以上实施例中描述的嵌入的CRC值5、6以及用于形成相应的数据包1或其检查的方法主要用于环形总线通信中,其中循环帧中的数据包1的长度可以改变,并且取决于待传输的数据4和连接到环形总线上的数据总线用户设备的数量。在图6中示出了在示例性自动化设备中使用的环形总线的示例。
图6示出了自动化设备的示意性框图。本领域技术人员将理解,所示的自动化设备只是示例,并且属于自动化设备的所有元件、模块、构件、用户设备和单元都可以进行不同配置,但仍然可以满足此处描述的基本功能。
图6所示的自动化设备具有上级控制部23,上级控制部例如可以通过存储可编程控制部SPS来实现。这样的SPS 23基本上用于控制和调节由自动化设备执行的过程。但是,当今自动化设备中的SPS 23还承担更广泛的功能,例如可视化、报警和记录与过程有关的所有数据,并且因此SPS 23充当人机接口。存在不同性能等级的SPS 23,其具有不同的资源(计算容量、存储器容量、输入和输出以及接口的数量和类型),这些资源使SPS 23实现控制和调节自动化设备的过程。SPS 23通常具有模块化构造,并且包括单个组件,每个组件执行不同的任务。通常,SPS 23包括中央计算结构组(具有一个或多个主处理器和存储模块)和多个具有输入和输出的结构组。通过添加结构组,可以轻松扩展此类模块化构造的SPS 23。在此,取决于过程的复杂性和自动化设备的结构的复杂性的是哪些结构组必须集成在SPS23中。在当今的自动化设备中,SPS 23通常也不再是独立的系统,而是通过相应的接口(此处未显示)将SPS 23连接到互联网或内联网。这意味着SPS 23是网络的一部分,通过该网络或从该网络中SPS 23可以获得信息,指令,程序等。例如,SPS 23可以通过与位于内联网或互联网上的计算机的连接来获取有关过程提供的材料的信息,因此例如通过了解材料的数量或性质可以最佳控制该过程。也可以设想的是,SPS 23由使用者从内联网或互联网进行的访问进行控制。因此例如使用者在计算机(也称为主计算机)的帮助下可以访问SPS 23并检查、更改或纠正其用户编程。因此,可以从一个或多个远程控制站或控制中心访问SPS23。如果需要,主计算机可以具有可视化设备,用于表示过程序列。
为了控制自动化设备的过程,将SPS 23连接到自动化仪器。为了保持较低的接线成本,针对这些连接而使用总线系统。在图6所示的实施例中,SPS 23借助于上级总线24连接到下级本地总线系统的本地总线主机26,该上级总线在这里所示的实施例中可以是现场总线。然而在上级总线24上不仅可以如这里所示的实施例中那样连接着本地总线的本地总线主机26,而且还连接着被设计用于与SPS 23通信的任何其他用户设备(这里未示出)。
在这里示出的实施例中,上级总线24与本地总线主机26连接。为此,本地总线主机26具有第一接口25,第一接口被设计为使得第一接口可以连接到上级总线24。为此,接口25可以具有例如插座形式的容纳部,而上级总线24可以具有可以由插座接收的插头。在此,插头和插座可以是例如模块化插头和模块化插座,即,上级总线24的每根缆芯电或光学地连接到模块化插座中的连接部。但是,本领域技术人员还知道如何设计接口25的其他可行方案,这样就可以将本地总线主机26电连接或光连接到上级总线24。在此,本领域技术人员已知旋拧连接、旋转连接、卡扣连接或插头连接,借助于它们可以建立电连接或光学连接。在此,在大多数情况下,雄插头由雌配合件容纳。该容纳通常不仅建立电连接或光学连接,而且还可以确保这两个部分是机械耦合的,并且只有施加一定的力才能重新解除。但也能够考虑的是,将上级总线24与接口25固定接线。
在此处所示的实施例中,本地总线主机26具有另一个第二接口,以便将本地总线主机26连接到本地总线,其中本地总线在这里示出的实施例中被配置为环形总线28。在此,第二接口被分为第一部分27a和第二部分27b。第二接口的第一部分27a在环形总线28中建立下行连接,并且第二接口的第二部分27b在环形总线28中建立上行连接。
环形总线28的数据发送方向用箭头在图6所示的实施例中示出的该环形总线在此处所示的实施例中具有多个数据总线用户设备29a、29b,...,29n。在这里所示的实施例中,这些数据总线用户设备29a、29b,...,29n分别具有用于从上游或前置的数据总线用户设备29a、29b,...,29n接收数据的接口30。在数据总线用户设备29 a的情况下,数据总线用户设备通过接口30从上游的本地总线主机26接收数据。此外,在这里示出的实施例中,数据总线用户设备29a、29b,...,29n分别具有接口31,以便将数据转发给下游或随后的数据总线用户设备29a、29b,...,29n。在数据总线用户设备29a的情况下,该数据总线用户设备通过接口31将数据发送到下游数据总线用户设备29b。在此,接口30和31在此用于沿环形总线28的下行方向(即远离本地总线主机26)传播数据。此外,在该实施例中,数据总线用户设备29a、29b,...,29n还具有用于在环形总线28的上行方向上,即向本地总线主机26传播数据的接口32和33。在此,在数据总线用户设备29 a的情况下,接口32被设计成从下游或后续的数据总线用户设备29b接收数据,并且接口33被设计成将数据转发给上游或先前的数据总线用户设备,这里是本地总线主机26。所以也可以说,接口31和33是发送接口,而接口30和31是接收接口。
在此处所示的实施例中,接口和SPS 23或数据总线用户设备29a、29b,...,29n的连接通过电缆或电路板和/或通过电触头直接或间接接触来实现。另一备选方案是,单个连接是通过无线方式建立的,并且接口提供了对所用无线标准的必要转换。
即使在这里示出的实施例中,本地总线主机26和单个数据总线用户设备29a、29b,...,29n彼此分开地示出,本地总线主机26也因此与数据总线用户设备29a、29b,...,29n分散地布置,本领域技术人员知道数据总线用户设备29a、29b,...,29n和还代表环形总线28的数据总线用户设备的本地总线主机26也可以直接彼此连接。在此,例如一个数据总线用户设备的触头可以嵌入到直接相邻的数据总线用户设备的相应的容纳部或容纳触头,以便在数据总线用户设备之间建立电连接,从而可以在上行方向和下行方向上发送数据。例如,数据总线用户设备29a、29b,...,29n可以在背离主机的一侧上具有容纳部,并且在面向主机的一侧上具有触头。如果然后相应地将数据总线用户设备29a、29b,...,29n排成行列,则一个数据总线用户设备29a、29b,...,29n的触头分别嵌入到另一数据总线用户设备29a、29b,...,29n的容纳部中,并且可以产生电连接。本地总线主机26于是在侧面具有相应的触头,该触头嵌入到第一数据总线用户设备29 a的容纳部中,以便在接口27a和30或接口27b和33之间产生电连接。然而,本领域技术人员还知道其他可能性,例如压力触头,刀叉触头,例如彼此直接相邻布置的两个数据总线用户设备29a、29b,...,29n可以通过相应的组件产生电连接也或光连接。
在数据总线用户设备29a、29b,...,29n和本地总线主机26直接彼此连接的情况下,它们也可以具有机械容纳部或机械紧固装置,单个数据总线用户设备29a、29b,...,29n和本地总线主机26通过该机械容纳部或机械紧固装置可以彼此连接。在此,例如数据总线用户设备29a、29b,...,29n可以在一侧上具有突出部而在另一侧上具有底切部。如果然后将数据总线用户设备29a、29b、2911排成行列,则突出部接合到另一个数据总线用户设备29a、29b、29n的底切部中,从而产生机械耦合。为了数据总线用户设备29a、29b,...,29n的简单的排成行列,它们也可以布置在公共容纳部上,例如安装轨上。为了固定在安装轨上,数据总线用户设备29a、29b,...,29n可以具有相应的紧固装置。备选地或附加地,数据总线用户设备29a、29b,...,29n也可具有例如可释放地连接的紧固装置,数据总线用户设备29a、29b,...,29n可通过该固定装置固定在安装轨或另一容纳部上。为此,可释放地连接的紧固装置可以互换,并且用于期望的容纳部的相应的紧固装置可以与数据总线用户设备29a、29b,...,29n连接,以便可以将它们紧固在期望的容纳部上。
此外,在图6所示的实施例中,数据总线用户设备29a、29b,...,29n还具有处理单元36。该处理单元36可以是算术逻辑单元或可以用其处理数据的另一类型的计算装置。
优选地,处理单元36是数据总线用户设备29a、29b,...,29n的集成组成部分,以便确保特别快速且时间同步的数据处理。
处理单元36也可以称为数据总线用户设备的整个电路。也就是说,处理单元36经由输入30和32接收数据,并且在输出31和33上输出数据。此外,处理单元36可以从输入和输出34和35接收或输出数据。此外,处理单元36可以访问数据总线用户设备29a、29b,...,29n的存储器39’,其中例如存储有数据、过程数据或指令列表。
处理单元36可以被配置为处理接收到的数据和输出数据。可以从上游数据总线用户设备或从数据总线用户设备29a、29b、29n的输入34接收待处理的数据。在此,数据总线用户设备29a、29b,...,29n的输入34可以连接到传感器37,传感器发送例如测量数据,状态数据等。可以将处理后的数据输出到下游数据总线用户设备或数据总线用户设备29a、29b,...,29n的输出35。在此,数据总线用户设备29a、29b,...,29n的输出35可以连接到执行器38,该执行器例如借助于指向它们的数据执行特定的动作。如果在上行方向上也进行数据处理,则数据也可以由下游数据总线用户设备29a、29b,...,29n接收,并且可以将处理后的数据发送到上游数据总线用户设备29a、29b,...,29n。
为了简单起见,在这里示出的实施例中,数据总线用户设备29a、29b,...,29n被示出为仅具有一个输入34和一个输出35,并且仅数据总线用户设备29b被连接到传感器37和执行器38。然而,本领域技术人员已知的是,数据总线用户设备29a、29b,...,29n可以具有多个输入和输出34和35,并且可以连接到多个不同的传感器37和执行器38。在此,传感器37的特征在于,传感器37接收数据并将数据发送给数据总线用户设备29a、29b,...,29n,而执行器38从数据总线用户设备29a、29b,...,29n接收数据并且基于这些数据执行动作。
备选地,接口30、31、32和22可以被集成在模块单元中,并且数据总线用户设备7a、7b、7n可以被插入到该模块单元上。模块单元也可以称为环形总线28的基础元件。在此,环形总线基础设施由模块单元构成,并且数据总线用户设备29a、29b,...,29n可互换,因此环形总线28可以由任何数据总线用户设备29a、29b,...,29n构成。借助模块单元也可确保的是,即使移除数据总线用户设备29a、29b,...,29n,由于在其余模块单元上进行通信,因此剩余数据总线29a、29b,...,29n之间的通信也不会中断。
由于该实施例中所示的数据总线用户设备29a、29b,...,29n由于其能够与传感器37或执行器38连接的输入和输出34、35而也经常被称为E/A模块。即使在这里示出的示例性实施例中,数据总线用户设备29a、29b,...,29n被示为与传感器37或执行器38在空间上分离,因此传感器37或执行器38也可以集成在E/A模块中。
在此示出的实施例中示出的环形总线28基于通常称为循环帧通信的数据包或电报的循环重复序列。在此,循环帧例如由本地总线主机26产生,在循环帧中包括具有头部分、过程数据部分或信息数据部分和校验部分的一个或多个数据包。数据包的过程数据部分或信息数据部分在此可以具有使用数据、控制数据和过程数据,如图1至3所示。一个循环帧或多个循环帧从本地总线主机26沿下行方向发送到环形总线28的第一数据总线用户设备29a。第一数据总线用户设备通过接口30在循环帧中接收数据包的第一部分。数据包的这一部分在下文中也称为块或单元或符号。数据总线用户设备29 a然后执行该部分的处理,然后将其通过接口31转发给下一个数据总线用户设备29b,优选第一数据总线用户设备29a接收同时接受数据包的第二部分,等等。在此,数据包的部分的大小,即数据包的细分在此取决于数据总线用户设备29a、29b,...,29n的容量,例如固定数量的位,例如数据包的8位能够同时存在于数据总线用户设备29a、29b,...,29n处,以进行处理。
相应地,数据包例如以8位的部分或符号逐单元地、逐块地或逐部分地通过数据总线用户设备29a、29b,...,29n。由最后的数据总线用户设备(在此处所示的示例性实施例中是数据总线用户设备29n)处理过的数据包的部分然后沿上行方向穿过环形总线28,这样所述部分从最后的数据总线用户设备29n开始重新向着本地总线主机26的方向通过所有的数据总线用户设备29a、29b、29n被向上发送。为此,最后的数据总线用户设备29n具有将接口31连接到接口32的可切换桥,或者将可切换的桥(这里未示出)连接到最后的数据总线用户设备29n,该桥接管将数据包的部分从接口31传送到接口32的功能。备选地,数据总线用户设备7n的接口32也可以借助于在此未示出的旁路线路直接连接到本地总线主机26的接口27b。
在上行方向上,如此处所示的实施例中那样,循环帧的数据包可以由单个数据总线用户设备29a、29b,...,29n循环回到本地总线主机26,而无需进行进一步的处理。但也能够考虑的是,在上行方向上,重新进行处理循环帧的数据包,这样就可以对循环帧的数据包进行两次处理,一次在通往最后的数据总线用户设备29n的下行方向上,并且一次在通往本地总线主机26的上行方向上。例如,在上行方向上,处理可以通过信号刷新和/或相移来进行。
循环帧中包含的数据包可以具有图1至3中所示的嵌入的CRC值。在此,可以在生成循环帧时将来自本地总线主机26的CRC值插入数据包中,并且一方面使本地总线主机26能够在上行方向上识别在循环帧中是否发生了数据包的数据传输中的错误,另一方面这些CRC值还允许数据总线用户设备29a、29b,...,29n始终仅检查数据包的一部分,即经过该部分而形成CRC值的该部分,而不必只呈现整个数据包。在循环帧中的数据包的所描述的逐符号的发送中,这恰好是有利的。
附图标记单
1 数据包
2 代码字
3 控制数据
4 使用数据
5 CRC值
6a,b CRC值
7至22 方法步骤
23 存储可编程控制部(SPS)
24 上级总线
25 第一接口
26 本地总线主机
27a,b 第二接口
28 环形总线
29a,b,n 数据总线用户设备
30 第一下行数据接口
31 第二下行数据接口
32 第一上行数据接口
33 第二上行数据接口
34、35 输入/输出
36 处理单元
37 传感器
38 执行器
39 存储器
Claims (17)
1.一种用于形成待传输的数据包(1)的方法,该数据包具有数据(4)和用于循环冗余校验的至少一个值,CRC值(5、6),其中,基于数据(4)的至少一部分借助至少一个预定的多项式形成CRC值(5、6),该方法包括:
初始化(7)计数器值;
对数据(4)的单元进行计数(8),其中,对于数据(4)的每个单元,改变计数器值;并且
当计数器值达到参考值或已经对数据包(1)中的数据(4)的所有单元进行计数时,将CRC值插入(12、14)到数据包(1)中,
其中,经由自从计数器值最后一次达到参考值或自从计数器值被初始化以来已经被计数的数据(4)的单元形成所述CRC值(5、6)。
2.根据权利要求1所述的方法,其中,CRC值(5、6)分别邻接数据(4)的单元被插入在数据包(1)中,在该单元的基础上形成CRC值(5、6)。
3.根据权利要求1所述的方法,其中,数据(4)的单元是固定数量的位。
4.根据权利要求2所述的方法,其中,数据(4)的单元是固定数量的位。
5.根据权利要求1至4之一所述的方法,其中,数据(4)的单元是一个字节。
6.根据权利要求1至4之一所述的方法,其中,在初始化时将计数器值设置为预定的二进制值,并且其中,在对数据(4)的单元进行计数(8)时,计数器值递减,并且参考值仅包含与计数器值的最低有效位置进行比较的零值。
7.根据权利要求1至4之一所述的方法,其中,借助相同的多项式形成至少两个CRC值(5、6)。
8.根据权利要求1至4之一所述的方法,其中,CRC值(5、6)借助通过卡斯塔格诺利多项式形成。
9.根据权利要求1至4之一所述的方法,其中,数据(4)包括使用数据和/或头部数据。
10.根据权利要求1至4之一所述的方法,其中,数据包(1)被包含在循环帧中。
11.一种形成待传输的数据包(1)的装置,该数据包具有数据(4)和用于循环冗余校验的至少一个值,CRC值(5、6),其中,基于数据的至少一部分借助至少一个预定的多项式形成CRC值(5、6),该装置包括:
用于初始化计数器值的装置;
用于对数据(4)的单元进行计数的装置,其中,所述装置适于基于数据(4)的所计数的单元改变计数器值;
自从计数器值最后一次达到参考值或计数器值已被初始化,用于经过数据(4)的被计数的单元形成CRC值(5、6)的装置;和
用于将CRC值插入数据包(1)中的装置,其中,当计数器值达到参考值或已经对数据包(1)中的数据(4)的所有单元进行计数时,将CRC值插入到数据包(1)中。
12.一种用于检查接收到的数据包(1)的方法,该数据包具有数据(4)和用于与循环冗余校验的至少一个值,CRC值(5、6),
其中,基于数据(4)的至少一个第一部分借助至少一个预定多项式来形成第一CRC值(5、6),
其中,基于数据(4)的至少一个第二部分借助预定多项式形成第二CRC值(5、6),该方法包括:
初始化(15)计数器值;
从接收到的数据包(1)中计数(16)数据的第一部分的单元,其中,对于数据(4)的每个单元,改变计数器值;
当计数器值达到参考值时,识别(19、21)数据(4)中的第一CRC值(5、6),
当已经计数数据包(1)中的数据(4)的所有单元时,识别(19、21)数据(4)中的第二CRC值(5、6);并且
检查(20、22)识别到的CRC值(5、6)。
13.根据权利要求12所述的方法,其中,当CRC值(5、6)的所有检查(20、22)均未示出错误时,已经无错误地接收到数据包(1)。
14.根据权利要求12所述的方法,其中,在初始化期间将计数器值设置为依赖于数据包的长度的二进制值,并且其中,当对数据(4)的所述单元进行计数时,所述计数器值递减,并且所述参考值仅具有与所述计数器值的最低有效位置进行比较的零值。
15.根据权利要求13所述的方法,其中,在初始化期间将计数器值设置为依赖于数据包的长度的二进制值,并且其中,当对数据(4)的所述单元进行计数时,所述计数器值递减,并且所述参考值仅具有与所述计数器值的最低有效位置进行比较的零值。
16.根据权利要求12至15之一所述的方法,其中,借助相同的多项式执行CRC值(5、6)的检查(20、22)。
17.根据权利要求12至15之一所述的方法,其中,在循环帧中接收数据包(1)。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102017208826.5A DE102017208826A1 (de) | 2017-05-24 | 2017-05-24 | Eingebettete zyklische Redundanzprüfungswerte |
DE102017208826.5 | 2017-05-24 | ||
PCT/EP2018/062904 WO2018215285A1 (de) | 2017-05-24 | 2018-05-17 | Eingebettete zyklische redundanzprüfungswerte |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110663207A CN110663207A (zh) | 2020-01-07 |
CN110663207B true CN110663207B (zh) | 2022-07-12 |
Family
ID=62200449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880034549.9A Active CN110663207B (zh) | 2017-05-24 | 2018-05-17 | 嵌入的循环冗余校验值 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11012090B2 (zh) |
EP (1) | EP3632016B1 (zh) |
CN (1) | CN110663207B (zh) |
DE (1) | DE102017208826A1 (zh) |
WO (1) | WO2018215285A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113665632B (zh) * | 2021-08-23 | 2024-04-02 | 中车南京浦镇车辆有限公司 | 一种适用于无人驾驶列车的紧急牵引方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0048933A1 (en) * | 1980-09-26 | 1982-04-07 | Hitachi, Ltd. | Circuit for correcting error in digital information signal |
CN1571284A (zh) * | 2003-07-14 | 2005-01-26 | 北京大学 | 一种用于纠正数据帧中错误比特的快速循环crc校验方法 |
CN1671125A (zh) * | 2003-11-13 | 2005-09-21 | 诺基亚公司 | 使用循环冗余校验散列函数管理网络业务的方法和装置 |
CN101107864A (zh) * | 2005-01-24 | 2008-01-16 | 汤姆森许可贸易公司 | 使用crc奇偶校验码的视频差错检测技术 |
CN101223700A (zh) * | 2005-07-13 | 2008-07-16 | 密克罗奇普技术公司 | 用于配置循环冗余校验(crc)产生电路以对数据流执行crc的方法和设备 |
CN101444027A (zh) * | 2004-11-24 | 2009-05-27 | 高通股份有限公司 | 用于实施循环冗余校验的系统和方法 |
CN101702639A (zh) * | 2009-11-23 | 2010-05-05 | 成都市华为赛门铁克科技有限公司 | 循环冗余校验的校验值计算方法及装置 |
CN101796482A (zh) * | 2007-07-13 | 2010-08-04 | 英特尔公司 | 确定消息余式 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5321704A (en) * | 1991-01-16 | 1994-06-14 | Xilinx, Inc. | Error detection structure and method using partial polynomial check |
US5754564A (en) * | 1994-08-24 | 1998-05-19 | Harris Corporation | Method of continuous calculation of cyclic redundancy check |
AU2002312937A1 (en) * | 2002-05-24 | 2003-12-12 | Nokia Corporatoin | Crc-based error correction |
US7360142B1 (en) * | 2004-03-03 | 2008-04-15 | Marvell Semiconductor Israel Ltd. | Methods, architectures, circuits, software and systems for CRC determination |
US7881303B2 (en) * | 2006-12-13 | 2011-02-01 | GlobalFoundries, Inc. | Command packet packing to mitigate CRC overhead |
KR101110975B1 (ko) | 2007-07-10 | 2012-03-14 | 미쓰비시덴키 가부시키가이샤 | 송신 장치 및 통신 시스템 |
US9350385B2 (en) * | 2013-03-15 | 2016-05-24 | Xilinx, Inc. | Modular and scalable cyclic redundancy check computation circuit |
-
2017
- 2017-05-24 DE DE102017208826.5A patent/DE102017208826A1/de active Pending
-
2018
- 2018-05-17 WO PCT/EP2018/062904 patent/WO2018215285A1/de active Application Filing
- 2018-05-17 EP EP18725823.1A patent/EP3632016B1/de active Active
- 2018-05-17 CN CN201880034549.9A patent/CN110663207B/zh active Active
-
2019
- 2019-11-25 US US16/694,214 patent/US11012090B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0048933A1 (en) * | 1980-09-26 | 1982-04-07 | Hitachi, Ltd. | Circuit for correcting error in digital information signal |
CN1571284A (zh) * | 2003-07-14 | 2005-01-26 | 北京大学 | 一种用于纠正数据帧中错误比特的快速循环crc校验方法 |
CN1671125A (zh) * | 2003-11-13 | 2005-09-21 | 诺基亚公司 | 使用循环冗余校验散列函数管理网络业务的方法和装置 |
CN101444027A (zh) * | 2004-11-24 | 2009-05-27 | 高通股份有限公司 | 用于实施循环冗余校验的系统和方法 |
CN101107864A (zh) * | 2005-01-24 | 2008-01-16 | 汤姆森许可贸易公司 | 使用crc奇偶校验码的视频差错检测技术 |
CN101223700A (zh) * | 2005-07-13 | 2008-07-16 | 密克罗奇普技术公司 | 用于配置循环冗余校验(crc)产生电路以对数据流执行crc的方法和设备 |
CN101796482A (zh) * | 2007-07-13 | 2010-08-04 | 英特尔公司 | 确定消息余式 |
CN101702639A (zh) * | 2009-11-23 | 2010-05-05 | 成都市华为赛门铁克科技有限公司 | 循环冗余校验的校验值计算方法及装置 |
Non-Patent Citations (1)
Title |
---|
新型超高频RFID编解码和CRC电路的设计与实现;黄凤英;《微电子学》;20141020;全文 * |
Also Published As
Publication number | Publication date |
---|---|
DE102017208826A1 (de) | 2018-11-29 |
EP3632016A1 (de) | 2020-04-08 |
WO2018215285A1 (de) | 2018-11-29 |
EP3632016B1 (de) | 2024-02-28 |
US11012090B2 (en) | 2021-05-18 |
US20200091931A1 (en) | 2020-03-19 |
CN110663207A (zh) | 2020-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103503382B (zh) | 具有灵活数据速率的控制器局域网 | |
US10541917B2 (en) | Method and system for data aggregation in an industrial communication protocol | |
JP2015136104A (ja) | シリアルリンク障害検出システムおよび方法 | |
US11868302B2 (en) | Status signal output | |
Carstensen et al. | A converter control field bus protocol for power electronic systems with a synchronization accuracy of±5ns | |
CN108337069B (zh) | 一种改进的降低误码率的末端并行分组crc校验系统 | |
CN110663207B (zh) | 嵌入的循环冗余校验值 | |
CN107102637B (zh) | 基于can的总线信号故障模拟装置产生故障信号的方法 | |
JP4353943B2 (ja) | シーケンス制御装置 | |
CN110679119B (zh) | 本地总线的初始化 | |
CN106209307A (zh) | 多颗fpga片间互联方法与系统 | |
US9443568B2 (en) | Electronic device and data transmission method thereof | |
CN110710165B (zh) | 确定本地总线的数据总线用户设备的方法和本地总线主控装置 | |
CN110663232B (zh) | 指令的预加载 | |
CN110663225B (zh) | 数据总线用户设备的初始化 | |
US11184194B2 (en) | Distributed processing of process data | |
CN110663230B (zh) | 本地总线主机以及运行本地总线的方法 | |
EP1355466B1 (en) | Information transfer using frequency shift keying | |
CN112860607A (zh) | 多通路数据处理电路及系统 | |
JP2001331384A (ja) | パッケージ間通信障害検出システム及びその方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |