[0001] This invention generally relates to communication systems. More particularly, an
exemplary embodiment of this invention relates to anomaly detection in communications
systems.
[0002] Cyclic Redundancy Checksum (CRC) error detection is a common method of detecting
errors in a data stream transmitted over a communications channel. ITU standard G.992.3,
describes CRC operations for ADSL systems in section 7.7.1.2. As discussed in G.992.3,
the transmitter computes the transmitter CRC bits based on the transmitted bit stream
and sends the CRC bits to the receiver. The receiver also computes the CRC bits based
on the received bit stream and compares the locally computed CRC bits to the received
CRC bits that were sent from the transmitter. If the receiver and transmitter CRC
bits are identical, then the CRC computation indicates that there are no errors in
the received bit stream. If however the received and transmitted CRC bits are not
identical, then the CRC computation indicates that there are errors in the received
bit stream.
[0003] GB 2 390 513 A discloses to a forward error correction scheme providing a double check functionality.
Received data is error corrected and a cyclic redundancy check sum of the corrected
data is evaluated. In addition, the corrected data is re-encoded and compared to the
originally received data. The result of this comparison is used to verify the CRC
check sum. While comparing the received data to the re-encoded and error-corrected
data a comparator performs a bit-by-a-bit-comparison and the number of differences
is determined by a bit error counter.
[0004] DSL systems, and communications systems in general, use CRC errors, which are also
known as anomalies, to diagnose and detect problematic service conditions. These CRC
anomalies are typically computed, counted and reported based on some fundamental assumptions
on how often the CRCs are computed. For example, in an ADSL systems, such as those
specified in G.992.3, Severely Errored Seconds (SESs) are defined as 18 or more CRC
anomalies in a 1 -second interval. This corresponds to approximately 30 percent of
computed CRCs being in error if the CRC is computed every 17 ms. The G.992.3 ADSL
standard requires that the CRC is computed every 15 to 20 msecs. In ADSL 2 and ADSL
2 systems, the period of the CRC computation is called the period of the overhead
channel (PERp). The G.992.3 standard requires that:

[0005] Digital subscriber line service providers use CRC anomaly reporting as a way to diagnose
and detect problematic service conditions. For example, an ADSL service provider may
use SESs as a way to detect an ADSL connection that is experiencing problems. For
example, an ADSL service provider may specify that if an ADSL subscriber is experiencing
more than 30 SESs in a 1 -minute period, the ADSL connection needs to be repaired.
For this reason, it is important that an SES is reported in a consistent manner across
all connections in the service provider network.
[0006] As discussed above, if an ADSL system is determining CRCs every 17 ms (the PERp as
required by the standard), Severely Errored Seconds (SESs) are defined as 18 or more
CRC anomalies in a 1-second interval, then an SES will occur whenever approximately
30 percent of the computed CRCs are in error in a 1-second interval. But if, for example,
CRCs are computed every 2 ms, and a SES is still defined as 18 or more CRC anomalies
in a 1-second interval, then 18 CRC anomalies will correspond to only 3.6 percent
of a computed CRC being in error. In this case, the service provider may receive a
repair alarm and dispatch a network technician to fix a connection that is only experiencing
a small number of errors.
[0007] Most communications systems specify CRC operations in a manner that restricts the
CRC computation to be within a specified and bounded repetition period or rate in
order to provide consistent detection and diagnostic capabilities across all connections,
such as DSL subscriber connections, in a network.
[0008] New designs and innovations in communications systems are making it more difficult
to ensure that CRC computations are bounded in such a manner. For example, G.992.3
specifies Seamless Rate Adaptation (SRA) and Dynamic Rate Repartition (DRR) that allow
an ADSL system to make seamless changes in data rates on-line. However, SRA and DRR
modify the data rate without changing the framing parameters. As a result, the PERp
will change in proportion to the data rate change.
[0009] For example, a data rate increase of 10 percent will cause the PERp to decrease by
10 percent. A problem is that since PERp is only allowed to vary between 15 and 20
ms, SRAs and DRRs are limited to small data rate changes, usually within 10 to 15
percent.
[0010] It is often desirable to have large data rate changes. Large data rate changes typically
result in PERp values that are outside of the range of 10-20 ms. In this case, as
discussed above, ADSL service providers will encounter problems with the diagnostic
procedures which are based on CRC anomalies to detect problematic connections.
[0011] New communications systems, such as VDSL, VDSL2, and other higher-speed wired and
wireless communications systems are specifying data rates that occupy a very large
range, starting, for example, as low as 500 kbps and going as high as 100 mbps or
more. With ranges this large, it is difficult to design a framing method for all possible
data rates that includes a CRC procedure that restricts the CRC computation to be
within a specified and bounded repetition period.
[0012] Part of this difficulty is attributable to the fact that the accuracy of the error
detection of the CRC is correlated to the number of bits in the CRC computation period
(the accuracy of the CRC error detection decreases as the number of bits in the CRC
computation period increases). For example, if the CRC computation is done every 20
ms, and the data rate is 1 mbps, there will be 20,000 bits in every CRC computation
period.
[0013] However, if the data rate is 100 mbps, and the CRC computation period is 20 ms, then
there will be 20 million bits in every CRC computation period. Clearly, the CRC error
detection capability will be decreased in the latter case. In general, under normal
operating conditions, the one octet CRC used in DSL systems provides adequate error
detection if the CRC computation period contains less than 100,000 bits.
[0014] Object of this invention relates to calculating and reporting communication errors
and, more particularly, to a method or a module for calculating and reporting CRC
anomalies in a consistent manner for all communications connections in a network independent
of data rate or the CRC computation period (e.g., the PERp value) of each individual
connection.
[0015] This object is achieved by a method according to claim 1 or by a module according
to claim 10. Preferred embodiments are subject of the subclaims.
[0016] Additional aspects of the invention relate to handling CRC anomalies (errors) in
such a manner that they are reported in a consistent way regardless of the data rate
or the CRC computation. An exemplary aspect defines a procedure for normalizing CRC
anomaly counters based on an actual CRC computation period.
[0017] According to an additional exemplary aspect of this invention, the CRC anomaly counter
normalization procedure normalizes the CRC anomaly counter based on the current, or
actual, PERp value.
[0018] According to an additional exemplary aspect of this invention, CRC anomaly counter
normalization procedures are applied to a plurality of communications devices in a
network based at least on a data rate.
[0019] According to an additional exemplary aspect of this invention, different CRC anomaly
counter normalization procedures are applied to each of a plurality of communications
devices in a network based at least on a data rate.
[0020] These and other features and advantages of this invention are described in, or are
apparent from, the following description of the embodiments.
Brief Description of the Drawings
[0021] The embodiments of the invention will be described in detail, with reference to the
following figures, wherein:
[0022] Fig. 1 is a functional block diagram illustrating an exemplary communication system
according to this invention;
[0023] Fig. 2 is a flowchart outlining an exemplary method for normalizing a CRC counter
according to this invention.
[0024] Fig. 3 is a flowchart outlining in greater detail an exemplary method of CRC normalization
according to this invention;
[0025] Fig. 4 is another exemplary embodiment for normalizing CRC normalization according
to this invention; and
[0026] Fig. 5 is a functional block diagram illustrating a second exemplary communication
system according to this invention.
Detailed Description
[0027] The exemplary embodiments of this invention will be described in relation to detecting
errors in a wired and/or wireless communications environment. However, it should be
appreciated, that in general, the systems and methods of this invention will work
equally well for any type of communication system in any environment.
[0028] The exemplary systems and methods of this invention will be described in relation
to DSL modems and associated communication hardware, software and communication channels.
However, to avoid unnecessarily obscuring the present invention, the following description
omits well-known structures and devices that may be shown in block diagram form or
otherwise summarized.
[0029] For purposes of explanation, numerous details are set forth in order to provide a
thorough understanding of the present invention. It should be appreciated however
that the present invention may be practiced in a variety of ways beyond the specific
details set forth herein.
[0030] Furthermore, while the exemplary embodiments illustrated herein show the various
components of the system colocated, it is to be appreciated that the various components
of the system can be located at distant portions of a distributed network, such as
a telecommunications network and/or the Internet, or within a dedicated secure, unsecured
and/or encrypted system. Thus, it should be appreciated that the components of the
system can be combined into one or more devices, such as a modem, or colocated on
a particular node of a distributed network, such as a telecommunications network.
As will be appreciated from the following description, and for reasons of computational
efficiency, the components of the system can be arranged at any location within a
distributed network without affecting the operation of the system. For example, the
various components can be located in a Central Office (CO or ATU-C) modem, a Customer
Premises Modem (CPE or ATU-R), a DSL management device, or some combination thereof.
Similarly, on or more functional portions of the system could be distributed between
a modem and an associated computing device.
[0031] Furthermore, it should be appreciated that the various links, including communications
channel 5, connecting the elements can be wired or wireless links, or any combination
thereof, or any other known or later developed element(s) that is capable of supplying
and/or communicating data to and from the connected elements. The term module as used
herein can refer to any known or later developed hardware, software, firmware, or
combination thereof that is capable of performing the functionality associated with
that element. Furthermore, in order to simplify notation, throughout this specification
the term PERp will be used to denote the CRC computation period. The terms determine,
calculate and compute, and variations thereof, as used herein are used interchangeably
and include any type of methodology, process, mathematical operation or technique.
[0032] An exemplary embodiment of the present invention relates to CRC normalization in
asymmetric DSL (ADSL) service. However, and in general, it is to be appreciated that
this methodology can be applied to any one or more of a communications line or digital
communications line.
[0033] Fig. 1 illustrates an exemplary embodiment of the communication system 10 according
to this invention. It should be appreciated that numerous functional components of
the transceivers have been omitted for clarity. However, it should be understood that
either transceiver can also include the standard components found in typical communications
device(s) in which the technology of the subject convention is implemented into.
[0034] The communications system 10 includes a transceiver 100 and a transceiver 200. The
transceiver 100, acting as a transmitting transceiver, includes a CRC bits computation
module and a CRC bits transmission module. The two transceivers are interconnected
by communications channel 5, which, as discussed above, can be one or more of a wire
line and wireless communication channel. The transceiver 200 comprises a CRC bits
computation module 210, a CRC bits reception module 220, a CRC bits comparison module
230, a CRC error counter and reporting module 240, a PERp determination module 250,
a normalization module 260, a CRC grouping module 270 and a communication parameter
module 280.
[0035] In accordance with an exemplary embodiment, a CRC anomaly is counted as:
PERp/K normalized anomalies,
where K is any positive integer. For example, if K=20 and the PERp=25, then each CRC
anomaly is counted as 1.25 normalized CRC anomalies. In general, K will correspond
to a value equal to an expected period of CRC computations based on which the system
diagnostic information is reported. For example, in ADSL and VDSL systems, K can be
equal to 15 ms since this corresponds to approximately 66 CRC computations per second.
As discussed above, a Severely Errored Second is reported when there are more than
18 CRC anomalies in a second, which corresponds to approximately 30 percent of the
CRC computations being in error.
[0036] Since CRC anomalies are typically reported as integer numbers, the accumulated CRC
anomaly count can be rounded up to the next higher integer. For example, if the PERp=28,
then each CRC anomaly is counted as 28/20=1.4 normalized CRC anomalies. If there 23
CRC anomalies detected over a period of time, the accumulated CRC anomaly counter
could contain ceiling (23*1.4) = ceiling (32.2) = 33 normalized CRC anomalies, where
ceiling indicates a rounding in the upward direction.
[0037] In operation, the transceiver 100, which in this exemplary embodiment is operating
as a transmitting transceiver or transmitting modem, computes CRC bits based on a
transmitted bit stream. More specifically, a bit stream is transmitted from the transceiver
100 with the CRC bits computation module 110 determining CRC bits based on the transmitted
bit stream. The number of CRC bits is usually 8(1 octed), however the number of bits
can be varied based on, for example, the specific implementation of the invention.
In conjunction with the CRC bits transmission module 120, the transceiver 100 sends
the transmitted bit stream along with the corresponding computed CRC bits to transceiver
200 via communications channel 5.
[0038] The transceiver 200, which can also be referred to as the receiving transceiver or
receiving modem, receives the bit stream transmitted by the transceiver 100 and, with
the cooperation of the CRC bits reception module 220, the CRC bits that were determined
by the CRC bits computation module 110. Upon receipt of the bit stream, the CRC bits
computation module 210 also computes CRC bits (i.e., the local CRC bits) based on
the received bit stream. Knowing the CRC bits determined by the CRC bit computation
module 110, and the CRC bits computed by the CRC bit computation module 210, the CRC
bits comparison module 230 performs a comparison between the two and, in conjunction
with the CRC error counter and reporting module 240, computes and identifies a CRC
anomaly when the local CRC bits are not identical to the received CRC bits determined
in transceiver 100.
[0039] The PERp determination module 250 then determines a value for the period of a CRC
computation (PERp). This period can be, for example, in seconds or in general any
time period as appropriate for the particular communication environment. In conjunction
with the normalization module 260, the CRC error counter and reporting module 240
is normalized based on the PERp value, where the normalizing of the CRC error counter
240 comprises incrementing the CRC error counter by a value of M wherein the value
of M is:

where K is a positive integer.
[0040] The communication parameter module 280 monitors communication parameters, such as
one or more of data rate, Forward Error Correction, interleaving, framing, or in general
any communication parameter, and triggers the determination of an updated value for
the period of a CRC computation should one or more of these parameters change. This
updated or second value for the period is then used by the CRC anomaly counter for
subsequent CRC anomaly counts.
[0041] In a second exemplary embodiment, CRC computations are combined into groups of ceiling(K/PERp)
CRC computations and any number of CRC anomalies in a group is counted as only 1 normalized
CRC anomaly, where K is a positive integer. In general, K will correspond to a value
equal to an expected period of CRC computations based on which the system diagnostic
information is reported in conjunction with the CRC error counter and reporting module
240. The CRC computations are grouped in this manner in order to avoid over counting
the CRC anomalies in that multiple CRC anomalies that occur within a specific time
period (e.g., K ms) may the need to be counted as a single normalized CRC anomaly.
Examples:
[0042] K=15 ms and PERp=10 ms: CRC computations are combined in groups of ceiling(15/10)=2 CRC computations. The
first 2 CRC computations are the first group, the second 2 CRC computations are the
second group, and so on. One or more CRC anomalies in a group are counted as 1 normalized
CRC anomaly.
[0043] K=25 and PERp=4 ms: CRC computations are combined in groups of ceiling(15/4)=4 CRC computations. The
first 4 CRC computations are the first group, the second 4 CRC computations are the
second group, and so on. One or more CRC anomalies in a group are counted as 1 normalized
CRC anomaly
[0044] If correct CRC computations are denoted as "o" and errored CRC computations (anomalies)
as "x," then for the following stream of CRC computations:
oooxxxooxoxoxxxxoooooxxooxoooooo
if PERp=10, then 9 normalized CRC anomalies are counted:
oo ox xx oo xo xo xx xx oo oo ox xo ox oo oo oo
If PERp=4, then 6 normalized CRC anomalies are counted:
ooox xxoo xoxo xxxx oooo oxxo oxoo oooo
[0045] The CRC computations could also be combined in groups based on some metric other
than ceiling(K/PERp). For example, floor(K/PERp) could be used or 2*ceiling(K/PERp).
In general, groups of CRC computations can be based on the metric:

where, N and K are positive integer values and where floor indicates a rounding in
the downward direction.
[0046] Alternatively, and in addition, the CRC anomalies in a group could be counted as
more than 1 normalized CRC anomaly. For example, 1 CRC anomaly in a group could be
counted as 1 normalized CRC anomaly. 2-3 CRC anomalies in a group could be counted
as 2 normalized CRC anomalies. 4-6 CRC anomalies in a group could be counted as 4
normalized CRC anomalies, and so on.
[0047] Alternatively, and in addition, a sliding window could be used when grouping the
CRC computations.
[0048] Alternatively, and in addition, the normalized CRC anomalies may be scaled again
based on the time duration of the group of CRC computations. For example, if the PERp
is equal to 14 ms, then the CRC computations are combined in groups of ceiling(14/15)=2
CRC computations. According to the method described above, 1 normalized CRC anomaly
is counted for each group of 2 CRC computations containing at least 1 CRC anomaly.
But combining the CRC computations into groups of 2 results in an effective CRC computation
period of 2*14=28 ms which exceeds the 20 ms requirement of the G.992.3 standard.
In this case, as was done above when PERp>20 ms, the CRC anomalies can be scaled again
to make the CRC anomaly counts more accurate. For example, the 1 normalized CRC anomaly
can be further scaled and counted as (28)/20=1.4 normalized CRC anomalies.
[0049] More generally, if the time duration of the group of CRC computations exceeds the
required range (e.g. 20 ms for G.992.3 ADSL systems) then:

where K is a positive integer. For example K could also take on the values of 15,
17.5, or 20, which correspond to lower, middle and upper values in the range of the
PERp values in the G.992.3 standard.
[0050] Using the G.992.3 ADSL standard as an example the values of PERp for which the normalized
CRC anomalies could be determined and further scaled (or normalized) to account for
the fact that the time duration of the CRC group is longer than 20 ms:

[0051] When the PERp value is greater than 10 and less than 15, each group of CRC computations
will contain 2 CRC computations (as based on ceiling(15/PERp)). For this range of
PERp values, the time duration of each CRC group will be longer than 20 ms. For example,
if PERp=12 ms, then the time duration of the CRC group will be 2*(12
[0052] ms)=24 ms. In this case, the normalized CRC computations can be further normalized
or scaled by 2*PERp/K, where K is equal to an integer such as 15, 17 or 20.

[0053] When the PERp value is greater than 6.67 and less than 7.5, each group of CRC computations
will contain 3 CRC computations (as based on ceiling(15/PERp)). For this range of
PERp values, the time duration of each CRC group will be longer than 20 ms. For example,
if PERp=7 ms then the time duration of the CRC group will be 3*(7 ms)=21 ms. In this
case the normalized CRC computations can be further normalized or scaled by 3*PERp/K,
where K is equal to an integer such as 15, 17 or 20.
[0054] As a result, in one exemplary embodiment of this invention, normalized CRC anomalies
in an ADSL or VDSL2 system are further normalized (or scaled) if the PERp value is
between 10 and 15 ms or between 6.67 and 7.5 ms.
[0055] In another exemplary embodiment the PERp changes are based on a change in an on-line
data rate, for example due to an SRA or a DRR change. In this case, the CRC normalization
procedure would be updated based on the new PERp value, where the new PERp value is
associated with the updated data rate.
[0056] Fig. 2 outlines a high-level overview of an exemplary embodiment of CRC normalization
according to this invention. In particular, control begins in S200 and continues to
step S210. In step S210, a CRC computation period (PERp), or updated CRC computation
period (PERp), is received or determined. Then, in step S220, the CRC error counter
is normalized based on the CRC computation period (PERp) or the updated CRC computation
period (PERp). Control then continues to step S230 where the control sequence ends.
[0057] Fig. 3 outlines an exemplary embodiment of CRC normalization in greater detail. In
particular, control begins in step S300 and continues to step S310. In step S310 the
transceiver, acting as a transmitter, determines the CRC bits for a transmitted bit
stream. The transceiver then sends the determined CRC bits and bit stream to the receiver
in step S320.
[0058] In step S330, another transceiver, acting in its receiving capacity, receives the
determined CRC bits and bit stream. Next, in step S340, CRC bits are determined for
the received bit stream (local CRC bits). Next, in step S350, the local CRC bits are
compared to the CRC bits determined and forwarded by the transmitter. Control then
continues to step S360.
[0059] In step S360, the CRC computation period is determined. Next, in step S370 the CRC
anomaly counter is normalized based on the CRC computation period (PERp). Control
then continues to step S380.
[0060] In step S380, a determination is made whether CRC errors or anomalies are present.
If CRC errors are present, control continues to step S390 otherwise control jumps
to step S395.
[0061] In step S390, the CRC error count is generated and an indicator of severely errored
seconds reported, if appropriate. In addition to the reporting of severely errored
seconds, it should be appreciated that alternative action could also be taken upon
the determination of CRC errors. For example, Errored Seconds (ES) could be reported,
where an errored second is typically defined as a second in which there is one or
more CRC error events. Alternatively, CRC errors can be compiled over periods of time
other than seconds, such as minutes, hours or sub-second intervals.
[0062] In step S395, a determination is made whether there has been a change in communication
parameters. If there has been a change in one or more communication parameters, control
jumps back to step S300 and the process repeated where a second or updated CRC computation
period is determined in step S360. If there has not been a change in one or more communications
parameters, control continues to step S399 where the control sequence ends.
[0063] Fig. 4 outlines another exemplary embodiment of CRC normalization according to this
invention. In particular, control begins in step S400 and continues to step S410.
In step S410 the transceiver, acting its capacity as a transmitter, determines the
CRC bits for a transmitted bit stream. The transceiver then sends the determined CRC
bits and bit stream to the receiver in step S420.
[0064] In step S430, another transceiver, acting in its receiving capacity, receives the
determined CRC bits and bit stream. Next, in step S440, CRC bits are determined for
the received bit stream (local CRC bits). Next, in step S450, the local CRC bits are
compared to the CRC bits determined and forwarded by the transmitter. Control then
continues to step S460.
[0065] In step S460, the CRC anomalies are grouped. Next, in group S470 a count is performed
with control continuing in step S480. In step S480, a determination is made whether
severely errored seconds are present. If severely errored seconds are present, control
continues to step S490.
[0066] In step S490, an indicator of severely errored seconds is generated and, for example,
forwarded to an appropriate destination or an action triggered.
[0067] In step S495, a determination is made whether there has been a change in communication
parameters. If there has been a change in one or more communication parameters, control
jumps back to step S400 and the process repeated where an updated grouping is performed
in step S460. If there has not been a change in one or more communications parameters,
control continues to step S500 where the control sequence ends.
[0068] It should be appreciated that while certain functionality described herein is illustratively
performed in one or more of the transceiver 100 and transceiver 200 that some or all
of the steps can be performed in any apparatus that may or may not be colocated with
one or more of the transceiver 100 and transceiver 200. For example, the functionality
performed by the PERp determination module and normalization module can be outsourced
to another module with the normalization value forwarded back to and applied to the
CRC error counter and reporting module 240. Moreover, the sequences of events described
herein are for illustrative purposes only and may also be rearranged as appropriate.
[0069] More particularly, Fig. 5 illustrates an exemplary embodiment of a CRC normalization
management system. As with the communication system 10, the CRC normalization management
system includes one or more transceivers 100 each connected, via a communications
channel, to the one or more transceivers 300. Each of the transceivers 300 are in
communication with the CRC management module 500. The CRC management module 500 includes
a PERp determination module 510, a normalization and/or grouping module 520 and a
CRC error counter and reporting module 530. The CRC management module 500 at least
allows normalization and/or grouping of one or more CRC error counts from a centralized
location. For example, the CRC bits comparison modules 550 forward and indicator of
a CRC error(s) to the CRC management module 500. The transceiver 300 can also determine
and forward a value for the period of a CRC computation (PERp) with the cooperation
of the PERp determination module 540. The management module, if needed, and with the
cooperation of the PERp determination module 510, can also determine a value for the
period of a CRC computation (PERp) for each of the one or more transceivers 300.
[0070] Having received a report of one or more errors from the one or more CRC bits comparison
modules 550, the normalization/grouping module updates the CRC error counter and reporting
module 530 based on this value. In that each transceiver could be operating under
different communication parameters, the values used to update the CRC error counter
550 could be transceiver specific, applied to a portion of the transceivers or to
all transceivers. The CRC error counter and reporting module 530 could then output,
as discussed above, a normalized CRC error count. For example, an indicator of severely
errored seconds could be generated and, for example, forwarded to an appropriate destination
or an action triggered.
[0071] The above-described system can be implemented on wired and/or wireless telecommunications
devices, such a modem, a multicarrier modem, a DSL modem, an ADSL modem, an XDSL modem,
a VDSL modem, a linecard, test equipment, a multicarrier transceiver, a wired and/or
wireless wide/local area network system, a satellite communication system, a modem
equipped with diagnostic capabilities, or the like, or on a separate programmed general
purpose computer having a communications device or in conjunction with any of the
following communications protocols: CDSL, ADSL2, ADSL2+, VDSL1, VDSL2, HDSL, DSL Lite,
IDSL, RADSL, SDSL, UDSL or the like.
[0072] Additionally, the systems, methods and protocols of this invention can be implemented
on a special purpose computer, a programmed microprocessor or microcontroller and
peripheral integrated circuit element(s), an ASIC or other integrated circuit, a digital
signal processor, a hard-wired electronic or logic circuit such as discrete element
circuit, a programmable logic device such as PLD, PLA, FPGA, PAL, a modem, a transmitter/receiver,
any comparable means, or the like. In general, any device capable of implementing
a state machine that is in turn capable of implementing the methodology illustrated
herein can be used to implement the various communication methods, protocols and techniques
according to this invention.
[0073] Furthermore, the disclosed methods may be readily implemented in software using object
or object-oriented software development environments that provide portable source
code that can be used on a variety of computer or workstation platforms. Alternatively,
the disclosed system may be implemented partially or fully in hardware using standard
logic circuits or VLSI design. Whether software or hardware is used to implement the
systems in accordance with this invention is dependent on the speed and/or efficiency
requirements of the system, the particular function, and the particular software or
hardware systems or microprocessor or microcomputer systems being utilized. The communication
systems, methods and protocols illustrated herein however can be readily implemented
in hardware and/or software using any known or later developed systems or structures,
devices and/or software by those of ordinary skill in the applicable art from the
functional description provided herein and with a general basic knowledge of the computer
and telecommunications arts.
[0074] Moreover, the disclosed methods may be readily implemented in software that can be
stored on a storage medium, executed on programmed general-purpose computer with the
cooperation of a controller and memory, a special purpose computer, a microprocessor,
or the like. In these instances, the systems and methods of this invention can be
implemented as program embedded on personal computer such as JAVA® or CGI script,
as a resource residing on a server or computer workstation, as a routine embedded
in a dedicated communication system or system component, or the like. The system can
also be implemented by physically incorporating the system and/or method into a software
and/or hardware system, such as the hardware and software systems of a communications
transceiver.
[0075] It is therefore apparent that there has been provided, in accordance with the present
invention, systems and methods for CRC normalization. While this invention has been
described in conjunction with a number of embodiments, it is evident that many alternatives,
modifications and variations would be or are apparent to those of ordinary skill in
the applicable arts. Accordingly, it is intended to embrace all such alternatives,
modifications, equivalents and variations that are within the spirit and scope of
this invention.
1. Method for Cyclic Redundancy Checksum, hereinafter referred to as CRC, anomaly counter
normalization comprising:
identifying a CRC anomaly when a local CRC octet, which is computed based on a received
bit stream, is not identical to a received CRC octet.
normalizing the CRC anomaly counter based on a value for a CRC computation period,
hereinafter referred to as PERp, wherein the normalizing of the CRC anomaly counter
comprises incrementing the CRC anomaly counter by a value of M wherein the value M
is equal to PERp/K, where K is a positive integer,
2. Method according to claim 1, further comprising, upon a change in one or more communications
parameters:
determining a second value for the CRC computation period value based on the changed
communication parameter; and
normalizing the CRC anomaly counter based on the second value.
3. Method according to claim 2, characterized in that the communication parameter is one or more of data rate, Forward Error Correction,
interleaving and framing.
4. Method according to any one of claims 1 to 3, characterized in that the value is in seconds, and/or K is equal to 20 or 15.
5. Method according to any one of the preceding claims,
characterized in that the method further comprises:
computing a local CRC octet based on a received bit stream;
comparing the local CRC octet to a received CRC octet;
identifying a CRC anomaly when the local CRC octet is not identical to the received
CRC octet.
6. Method according to any one of the preceding claims,
characterized in that the method further comprises, upon a change in one or more communications parameters:
receiving a second value for the CRC computation period value based on the changed
communication parameter; and
normalizing the CRC anomaly counter based on the second value.
7. Method according to any one of the preceding claims, characterized in that a Severely Errored Second is declared if there are more than N CRC anomalies in a
period of time, preferably wherein the period is one second and/or wherein N is equal
to 18.
8. Method according to any one of the preceding claims, characterized in that the method further comprises forwarding an indication of a CRC error, the CRC error
being counted and normalized by a CRC anomaly counter based on the value.
9. Method according to any one of the preceding claims,
characterized in that the method further comprises:
receiving an indication of one or more CRC errors;
receiving a value for a CRC computation period that is based on at least one communication
parameter; and
updating a CRC anomaly counter based on the value.
10. A Cyclic Redundancy Checksum, hereinafter referred to as CRC, anomaly counter normalization
module (260; 520) designed to normalize a CRC anomaly counter based on a value for
a CRC computation period, hereinafter referred to as PERp, wherein the normalizing
of the CRC anomaly counter comprises incrementing the CRC anomaly counter by a value
of M wherein the value M is equal to PERp/K, where K is a positive integer, whereby
a CRC anomaly, is identified when a local CRC octet, computed is the basis of a received
bit stream, is not identical to the received CRC octet.
11. Module according to claim 10, characterized in that the module further comprises a PERp determination module (260; 520; 540) designed
to determine a second value for the CRC computation period value based on a changed
communication parameter, wherein the second value is used to normalize the CRC anomaly
counter, preferably wherein the communication parameter is one or more of data rate,
Forward Error Correction, interleaving and framing.
12. Module according to claim 10 or 11,
characterized in that the value is in seconds, and/or that the module (260; 520) further comprises:
a CRC bit computation module (110; 210) designed to compute a local CRC octet based
on a received bit stream;
a CRC bits comparison module (230; 550) designed to compare the local CRC octet to
a received CRC octet; and
a CRC error reporting module (240; 530) designed to identify a CRC anomaly when the
local CRC octet is not identical to the received CRC octet.
13. Module according to any one of claims 10 to 12, characterized in that K is equal to 20 or 15.
14. Module according to any one of claims 10 to 13, characterized in that a Severely Errored Second is declared if there are more than N CRC anomalies in a
period of time, preferably wherein the period is one second and/or wherein N is equal
to 18.
1. Verfahren zur Normierung eines Anomaliezählers der im Folgenden als CRC bezeichneten
Cyclic Redundancy Checksum, mit den folgenden Schritten:
Identifizieren einer CRC-Anomalie, wenn ein lokales CRC-Oktett, das auf der Basis
eines empfangenen Bitstroms berechnet wird, nicht mit einem empfangenen CRC-Oktett
identisch ist,
Normieren des CRC-Anomaliezählers auf der Basis eines Werts einer im Folgenden als
PERp bezeichneten CRC-Berechnungsperiode, wobei das Normieren des CRC-Anomaliezählers
das Inkrementieren des CRC-Anomaliezählers um einen Wert von M umfasst, wobei der
Wert M gleich PERp/K ist, wobei K eine positive ganze Zahl ist.
2. Verfahren nach Anspruch 1, das ferner bei einer Änderung eines oder mehrerer Kommunikationsparameter
Folgendes umfasst:
Bestimmen eines zweiten Werts für den CRC-Berechnungsperiodenwert auf der Basis des
geänderten Kommunikationsparameters; und
Normieren des CRC-Anomaliezählers auf der Basis des zweiten Werts.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass der Kommunikationsparameter eine oder mehrere der folgenden Alternativen ist: Datenrate,
Vorwärtsfehlerkorrektur, Verschachtelung und Framing.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass der Wert in Sekunden ist und/oder K gleich 20 oder 15 ist.
5. Verfahren nach einem der vorhergehenden Ansprüche,
dadurch gekennzeichnet, dass das Verfahren ferner Folgendes umfasst:
Berechnen eines lokalen CRC-Oktetts auf der Basis eines empfangenen Bitstroms;
Vergleichen des lokalen CRC-Oktetts mit einem empfangenen CRC-Oktett;
Identifizieren einer CRC-Anomalie, wenn das lokale CRC-Oktett nicht mit dem empfangenen
CRC-Oktett identisch ist.
6. Verfahren nach einem der vorhergehenden Ansprüche,
dadurch gekennzeichnet, dass das Verfahren bei einer Änderung eines oder mehrerer Kommunikationsparameter ferner
Folgendes umfasst:
Empfangen eines zweiten Werts für den CRC-Berechnungsperiodenwert auf der Basis des
geänderten Kommunikationsparameters; und
Normieren des CRC-Anomaliezählers auf der Basis des zweiten Werts.
7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass ein Severely Errored Second deklariert wird, wenn mehr als N CRC-Anomalien in einer
Zeitperiode vorliegen, wobei die Periode vorzugsweise eine Sekunde beträgt und/oder
wobei N gleich 18 ist.
8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Verfahren ferner das Weiterleiten einer Indikation eines CRC-Fehlers umfasst,
wobei der CRC-Fehler durch einen CRC-Anomaliezähler auf der Basis des Werts gezählt
und normiert wird.
9. Verfahren nach einem der vorhergehenden Ansprüche,
dadurch gekennzeichnet, dass das Verfahren ferner Folgendes umfasst:
Empfangen einer Indikation eines oder mehrerer CRC-Fehler;
Empfangen eines Werts für eine CRC-Berechnungsperiode, der auf mindestens einem Kommunikationsparameter
basiert; und
Aktualisieren eines CRC-Anomaliezählers auf der Basis des Werts.
10. Modul (260; 520) zur Normierung eines Anomaliezählers der im Folgenden als CRC bezeichneten
Cyclic Redundancy Checksum, das dafür ausgelegt ist, einen CRC-Anomaliezähler auf
der Basis eines Werts für eine im Folgenden als PERp bezeichnete CRC-Berechnungsperiode
zu normieren, wobei das Normieren des CRC-Anomaliezählers das Inkrementieren des CRC-Anomaliezählers
um einen Wert von M umfasst, wobei der Wert M gleich PERp/K ist, wobei K eine positive
ganze Zahl ist, wobei eine CRC-Anomalie identifiziert wird, wenn ein auf der Basis
eines empfangenen Bitstroms berechnetes lokales Oktett nicht mit dem empfangenen CRC-Oktett
identisch ist.
11. Modul nach Anspruch 10, dadurch gekennzeichnet, dass das Modul ferner ein PERp-Bestimmungsmodul (260; 520; 540) umfasst, das dafür ausgelegt
ist, einen zweiten Wert für den CRC-Berechnungsperiodenwert auf der Basis eines geänderten
Kommunikationsparameters zu bestimmen, wobei der zweite Wert verwendet wird, um den
CRC-Anomaliezähler zu normieren, wobei der Kommunikationsparameter vorzugsweise eine
oder mehrere der folgenden Alternativen ist: Datenrate, Vorwärtsfehlerkorrektur, Verschachtelung
und Framing.
12. Modul nach Anspruch 10 oder 11,
dadurch gekennzeichnet, dass der Wert in Sekunden ist und/oder das Modul (260; 520) ferner Folgendes umfasst:
ein CRC-Bit-Berechnungsmodul (110; 210), das dafür ausgelegt ist, ein lokales CRC-Oktett
auf der Basis eines empfangenen Bitstroms zu berechnen;
ein CRC-Bit-Vergleichsmodul (230; 550), das dafür ausgelegt ist, das lokale CRC-Oktett
mit einem empfangenen CRC-Oktett zu vergleichen; und
ein CRC-Fehlermeldemodul (240; 530), das dafür ausgelegt ist, eine CRC-Anomalie zu
identifizieren, wenn das lokale CRC-Oktett nicht mit dem empfangenen CRC-Oktett identisch
ist.
13. Modul nach einem der Ansprüche 10-12, dadurch gekennzeichnet, dass K gleich 20 oder 15 ist.
14. Modul nach einem der Ansprüche 10 bis 13, dadurch gekennzeichnet, dass ein Severely Errored Second deklariert wird, wenn mehr als N CRC-Anomalien in einer
Zeitperiode vorliegen, wobei die Periode vorzugsweise eine Sekunde ist und/oder wobei
N gleich 18 ist.
1. Procédé de normalisation d'un compteur d'anomalies de Somme de Contrôle de Redondance
Cyclique, dénommée ci-après CRC, comprenant les étapes suivantes :
identification d'une anomalie de CRC si un octet de CRC local, calculé en fonction
d'un flux binaire reçu, n'est pas identique à un octet de CRC reçu ;
normalisation du compteur d'anomalies de CRC en fonction d'une valeur d'une période
de calcul de CRC, dénommée ci-après PERp, la normalisation du compteur d'anomalies
de CRC comprenant l'incrémentation du compteur d'anomalies de CRC d'une valeur M,
la valeur M étant égale à PERp/K où K est un entier positif.
2. Procédé selon la revendication 1, comprenant en outre, en cas de modification d'au
moins un paramètre de communication, les étapes suivantes :
établissement d'une deuxième valeur de la période de calcul de CRC en fonction du
paramètre de communication modifié ; et
normalisation du compteur d'anomalies de CRC en fonction de la deuxième valeur.
3. Procédé selon la revendication 2, caractérisé en ce que le paramètre de communication est un débit de données et/ou une correction d'erreurs
sans circuit de retour et/ou un entrelacement et/ou un verrouillage de trame.
4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que la valeur est exprimée en secondes et/ou K est égal à 20 ou 15.
5. Procédé selon l'une quelconque des revendications précédentes,
caractérisé en ce qu'il comprend en outre les étapes suivantes :
calcul d'un octet de CRC local en fonction d'un flux binaire reçu ;
comparaison de l'octet de CRC local à un octet de CRC reçu ;
identification d'une anomalie de CRC si l'octet de CRC local n'est pas identique à
l'octet de CRC reçu.
6. Procédé selon l'une quelconque des revendications précédentes,
caractérisé en ce qu'il comprend en outre, en cas de modification d'au moins un paramètre de communication,
les étapes suivantes :
réception d'une deuxième valeur de la période de calcul de CRC en fonction du paramètre
de communication modifié ; et
normalisation du compteur d'anomalies de CRC en fonction de la deuxième valeur.
7. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'une Seconde Gravement Erronée est déclarée si une période de temps contient plus de
N anomalies de CRC, la période étant de préférence d'une seconde et/ou N étant de
préférence égal à 18.
8. Procédé selon l'une quelconque des revendications précédentes,
caractérisé en ce qu'il comprend en outre l'étape suivante :
transmission d'une indication d'une erreur de CRC, l'erreur de CRC étant comptabilisée
et normalisée par un compteur d'anomalies de CRC en fonction de la valeur.
9. Procédé selon l'une quelconque des revendications précédentes,
caractérisé en ce qu'il comprend en outre les étapes suivantes :
réception d'une indication d'au moins une erreur de CRC ;
réception d'une valeur d'une période de calcul de CRC qui est fonction d'au moins
un paramètre de communication ; et
mise à jour d'un compteur d'anomalies de CRC en fonction de la valeur.
10. Module (260 ; 520) de normalisation d'un compteur d'anomalies de Somme de Contrôle
de Redondance Cyclique, dénommée ci-après CRC, conçu pour normaliser le compteur d'anomalies
de CRC en fonction d'une valeur d'une période de calcul de CRC, dénommée ci-après
PERp, la normalisation du compteur d'anomalies de CRC comprenant l'incrémentation
du compteur d'anomalies de CRC d'une valeur M, la valeur M étant égale à PERp/K où
K est un entier positif, une anomalie de CRC étant identifiée si un octet de CRC local,
calculé en fonction d'un flux binaire reçu, n'est pas identique à l'octet de CRC reçu.
11. Module selon la revendication 10, caractérisé en ce qu'il comprend en outre un module (260 ; 520 ; 540) d'établissement de PERp, conçu pour
établir une deuxième valeur de la période de calcul de CRC en fonction d'un paramètre
de communication modifié, la deuxième valeur étant utilisée pour normaliser le compteur
d'anomalies de CRC, le paramètre de communication étant de préférence un débit de
données et/ou une correction d'erreurs sans circuit de retour et/ou un entrelacement
et/ou un verrouillage de trame.
12. Module selon la revendication 10 ou 11,
caractérisé en ce que la valeur est exprimée en secondes et/ou
en ce que le module (260 ; 520) comprend en outre :
un module (110 ; 210) de calcul de bits de CRC, conçu pour calculer un octet de CRC
local en fonction d'un flux binaire reçu ;
un module (230 ; 550) de comparaison de bits de CRC, conçu pour comparer l'octet de
CRC local à un octet de CRC reçu ; et
un module (240 ; 530) de compte rendu d'erreur de CRC, conçu pour identifier une anomalie
de CRC si l'octet de CRC local n'est pas identique à l'octet de CRC reçu.
13. Module selon l'une quelconque des revendications 10 à 12, caractérisé en ce que K est égal à 20 ou 15.
14. Module selon l'une quelconque des revendications 10 à 13, caractérisé en ce qu'une Seconde Gravement Erronée est déclarée si une période de temps contient plus de
N anomalies de CRC, la période étant de préférence d'une seconde et/ou N étant de
préférence égal à 18.