You are on page 1of 14

ПРЕДМЕТ: Теорија на кодирање

“Користење на кодови за детекција на грешки во сигурносно


критични системи“

Ментор: Изработил:

Скопје, февруари 2023


Содржина

Вовед..........................................................................................................................................................3
1. Кодови за детекција на грешки........................................................................................................4
Вовед

Семинарската треба да содржи воведен дел во кој ќе опишете зошто се потребни кодовите
за детекција на грешки, краток осврт на развојот на овие кодови (каде ќе бидат вклучени и
кодовите за детекција на грешки кои најчесто се користат). Во овој дел треба да се објасни
и што се сигурносно критични системи и малку поопширно и за нив.
Потоа, во главниот дел од семинарската поопширно за користењето на кодовите за
детекција на грешки во сигурносно критичните системи. Зошто е потребно да се користат,
кои се кодовите за детекција на грешки кои најчесто се користат во ваквите системи, со
наведени својства - колку грешки со сигурност откриваат, веројатноста на неоткриени
грешки, дали во некои од системите едни кодови имаат предност пред други и зошто...
Ова е од прилика некоја груба рамка за тоа што треба да содржи семинарската.

Како извори на информации може да ви користат книги и трудови кои ќе ги најдете. Има
многу бесплатни трудови online, така што не би требало да е проблем да најдете. Секако,
треба да користите повеќе различни извори, од каде ќе ги земете деловите кои ви требаат,
да не биде превод на еден или два труда. На крај од семинарската треба да имате листа на
користена литература, а во самиот текст секаде треба во аглести загради да е наведен
редниот број на изворот од каде е земена соодветната информација.
Кога ќе пребарувате за сигурносно критични системи, на англиски називот е Safety Critical
Systems.

Error detection codes are used in safety critical systems to detect errors that may occur in the
data transmission and storage process. These errors can be caused by a variety of factors, such as
noise on a communication channel, physical damage to storage media, or software bugs. If not
detected and corrected, these errors can lead to significant harm to people, property, or the
environment.
In safety critical systems, error detection codes are used to ensure the integrity of the data being
transmitted and stored. The use of error detection codes provides an additional layer of safety
and protection, helping to ensure that errors are detected and corrected before they can cause
harm.
1. Кодови за детекција на грешки

Importance of error detection codes


Error detection codes are important because they help ensure the reliability and accuracy of data
transmission and storage. They are used to detect errors that may occur during data transmission
or storage, such as due to noise, interference, or other types of corruption.
By detecting errors, error detection codes help to prevent incorrect or corrupted data from being
used or processed, which can lead to errors in decision-making or incorrect results. This is
especially important in safety critical systems, where the consequences of errors can be severe
and potentially life-threatening.
Error detection codes also help to ensure the integrity of data stored in memory, such as in hard
drives or flash memory. By detecting and correcting errors in stored data, error detection codes
can help to prevent data loss and protect against data corruption.
In addition, error detection codes can also be used to improve the efficiency of data transmission
by detecting and correcting errors in real-time, so that data can be retransmitted only if
necessary. This can improve the overall speed and reliability of data transmission, and can
reduce the amount of data that needs to be retransmitted.
In summary, error detection codes play an important role in ensuring the reliability and accuracy
of data transmission and storage, and are essential for maintaining the integrity of data in many
applications and systems.
Opsto
Error detection codes are techniques used to detect errors that occur in data transmission or
storage. These codes are added to the data before transmission or storage to ensure the data can
be accurately recovered at the receiving end. If an error is detected, the receiver can request a
retransmission of the data.
There are several types of error detection codes, including:
 Parity bit: A single bit is added to the data as a parity bit. The bit is set to either 0 or 1 so
that the total number of 1s in the data and parity bit is even (even parity) or odd (odd
parity). If an error occurs during transmission, the receiver can compare the parity bit to
the data to detect the error.
 Checksum: A checksum is a value computed from the data and added to the data before
transmission. The receiver can recompute the checksum from the received data and
compare it to the transmitted checksum to detect errors.
 Cyclic Redundancy Check (CRC): A CRC is a more sophisticated error detection
technique that uses polynomial division to calculate a checksum from the data. If an error
occurs, the receiver can detect it by comparing the received CRC to the computed CRC.
 Hamming code: Hamming codes are a family of error detection and correction codes that
can detect and correct single-bit errors. Hamming codes use additional parity bits to
detect errors, and can correct errors if the location of the error can be determined.

Error detection codes are an important aspect of ensuring data integrity and accuracy, and are
widely used in communication systems, data storage systems, and other applications where
accurate data transmission is critical.

Развој на кодови за детекција на грешки


The development of error detection codes is a continuously evolving process, driven by the need
for more accurate and efficient methods for detecting errors in data transmission and storage.
In the early days of computing, simple techniques such as parity bits were used for error
detection. However, as communication systems and data storage systems became more complex,
more sophisticated error detection codes were developed. For example, the advent of large-scale
communication networks and the internet led to the development of cyclic redundancy check
(CRC) codes, which are now widely used for error detection in Ethernet networks.
With the increasing importance of data security and the rise of cloud computing and IoT, there is
a growing demand for more advanced error detection codes that can not only detect errors but
also correct errors or protect data from tampering. This has led to the development of error-
correcting codes, such as Hamming codes, which can detect and correct errors, as well as
cryptographic techniques such as digital signatures, which can be used to detect tampering with
data.
As technology continues to evolve, it is likely that new and more sophisticated error detection
codes will be developed to meet the growing needs of modern communication and data storage
systems. The development of error detection codes will likely be driven by the need for increased
accuracy, efficiency, and security, as well as the increasing complexity of communication and
data storage systems.

Safety critical systems


Safety critical systems are systems whose failure could result in significant harm to human
beings, the environment, or critical infrastructure. These systems are designed to operate with a
high degree of reliability, accuracy, and safety, and are subject to rigorous safety standards and
regulations to ensure their safety.
Examples of safety critical systems include:
 Aerospace systems: aircraft control systems, navigation systems, and flight control
systems.
 Medical devices: pacemakers, insulin pumps, and medical imaging equipment.
 Nuclear power plants: control and safety systems, reactor protection systems, and
emergency response systems.
 Automotive systems: anti-lock braking systems (ABS), electronic stability control (ESC),
and airbag systems.
 Military systems: missile guidance systems, targeting systems, and military
communications systems.
Safety critical systems are subject to strict safety standards and regulations, such as DO-178B for
aerospace systems, IEC 60601 for medical devices, and IEC 61508 for industrial control
systems. These standards prescribe best practices for design, development, testing, and
maintenance of safety critical systems, including requirements for hardware and software
reliability, redundancy, and fault tolerance.
The design and development of safety critical systems requires a systematic and rigorous
approach to ensure their safety and reliability. This includes the use of formal methods and
model-based design, extensive testing and verification, and continuous monitoring and
maintenance. Ensuring the safety of safety critical systems is essential to protect human life, the
environment, and critical infrastructure, and is a responsibility that must be taken seriously by
engineers, developers, and manufacturers.

what are safety critical systems and why are important


Safety critical systems are systems that are designed to maintain a specific level of safety and
reliability in order to prevent harm to people, the environment, or equipment. Examples of safety
critical systems include aviation control systems, nuclear power plants, medical equipment, and
autonomous vehicles.
The importance of safety critical systems lies in their critical role in maintaining safety and
protecting against harm. For example, in aviation, a failure of the control system could result in a
crash and loss of life. In a nuclear power plant, a failure of the control system could result in a
meltdown and release of radioactive material. In medical equipment, a failure of the control
system could result in incorrect treatment and harm to the patient.
As a result, safety critical systems must be designed, tested, and maintained to a high standard of
reliability and safety, and must be able to detect and respond to failures or errors in real-time.
This requires the use of advanced technology, such as redundant systems, error detection codes,
and robust communication and control systems.
In addition, the development and operation of safety critical systems is typically subject to strict
regulations and standards, to ensure that they meet the required level of safety and reliability.
The processes and procedures used in the development and operation of safety critical systems
must be rigorously followed to minimize the risk of errors and ensure the safety of the system.
In summary, safety critical systems are systems that play a critical role in maintaining safety and
protecting against harm, and are essential for ensuring the safety and well-being of people, the
environment, and equipment. The importance of safety critical systems lies in their role in
preventing harm, and in their critical importance to many aspects of modern life.

1. Error detection codes and safety critical systems

Error detection codes play a critical role in ensuring the safety of safety critical systems. In these
systems, the consequences of errors can be severe, and therefore, it is important to detect errors
as early as possible and take corrective actions to prevent harm.
Error detection codes can detect errors in data transmission, storage, or processing, and can be
used to trigger corrective actions, such as retransmission of data, isolation of faulty components,
or triggering of safety systems. Some common error detection codes used in safety critical
systems include:
 Parity bit: A single bit is added to the data as a parity bit. The bit is set to either 0 or 1 so
that the total number of 1s in the data and parity bit is even (even parity) or odd (odd
parity). If an error occurs during transmission, the receiver can compare the parity bit to
the data to detect the error.
 Checksum: A checksum is a value computed from the data and added to the data before
transmission. The receiver can recompute the checksum from the received data and
compare it to the transmitted checksum to detect errors.
 Cyclic Redundancy Check (CRC): A CRC is a more sophisticated error detection
technique that uses polynomial division to calculate a checksum from the data. If an error
occurs, the receiver can detect it by comparing the received CRC to the computed CRC.
 Hamming code: Hamming codes are a family of error detection and correction codes that
can detect and correct single-bit errors. Hamming codes use additional parity bits to
detect errors, and can correct errors if the location of the error can be determined.
In addition to these error detection codes, safety critical systems may also use other techniques,
such as redundancy and diversity, to improve the reliability and safety of the system. For
example, multiple redundant systems may be used to monitor and control the same process, and
the results may be compared to detect and correct errors.
The use of error detection codes in safety critical systems is regulated by industry standards and
regulations, such as DO-178B for aerospace systems, IEC 60601 for medical devices, and IEC
61508 for industrial control systems. These standards prescribe the requirements for error
detection and correction in safety critical systems, including the types of error detection codes to
be used, the minimum level of redundancy and diversity required, and the testing and verification
procedures to be followed.

what are the best error detection codes detect errors in safety critical systems
In safety critical systems, the best error detection code to use depends on the specific
requirements of the system, including the reliability and safety objectives, the types of errors that
need to be detected, and the regulatory requirements.
Here are a few popular error detection codes that are often used in safety critical systems:
 Cyclic Redundancy Check (CRC): A CRC is a sophisticated error detection technique
that uses polynomial division to calculate a checksum from the data. If an error occurs,
the receiver can detect it by comparing the received CRC to the computed CRC.
 Hamming code: Hamming codes are a family of error detection and correction codes that
can detect and correct single-bit errors. Hamming codes use additional parity bits to
detect errors, and can correct errors if the location of the error can be determined.
 Reed-Solomon code: Reed-Solomon codes are error correction codes that can detect and
correct multiple-bit errors. Reed-Solomon codes are commonly used in data storage
systems, such as CD-ROMs and DVDs.

It is important to note that these codes are just a few examples, and the best code to use depends
on the specific requirements of the system. It is also common to use multiple codes in a safety
critical system to improve reliability and safety.

Here is an example of error detection codes being used in a safety critical system:
 Aerospace control systems: In aerospace control systems, such as those used in aircraft,
error detection codes are used to ensure the reliability and safety of the control systems.
For example, a control system may use a combination of parity bits and CRC codes to
detect errors in the control signals, and use Hamming codes or Reed-Solomon codes for
correction. Additionally, industry standards such as DO-178B prescribe the requirements
for error detection and correction in aerospace systems, including the types of error
detection codes to be used, the minimum level of redundancy and diversity required, and
the testing and verification procedures to be followed.
 Medical devices: In medical devices, such as pacemakers and defibrillators, error
detection codes are used to ensure the reliability and safety of the devices. For example, a
pacemaker may use a combination of parity bits and CRC codes to detect errors in the
control signals, and use Hamming codes or Reed-Solomon codes for correction.
Additionally, industry standards such as IEC 60601 prescribe the requirements for error
detection and correction in medical devices, including the types of error detection codes
to be used, the minimum level of redundancy and diversity required, and the testing and
verification procedures to be followed.
 Industrial control systems: In industrial control systems, such as those used in oil
refineries and chemical plants, error detection codes are used to ensure the reliability and
safety of the control systems. For example, a control system may use a combination of
parity bits and CRC codes to detect errors in the control signals, and use Hamming codes
or Reed-Solomon codes for correction. Additionally, industry standards such as IEC
61508 prescribe the requirements for error detection and correction in industrial control
systems, including the types of error detection codes to be used, the minimum level of
redundancy and diversity required, and the testing and verification procedures to be
followed.
These are just a few examples of error detection codes being used in safety critical systems. The
use of error detection codes in safety critical systems is regulated by industry standards and
regulations, which prescribe the requirements for error detection and correction, including the
types of error detection codes to be used, the minimum level of redundancy and diversity
required, and the testing and verification procedures to be followed.

real-life example of error detection codes being used in safety critical systems
One real-life example of error detection codes being used in safety critical systems is in the
aviation industry. In modern aircraft, control systems play a critical role in ensuring the safety
and reliability of the aircraft. To ensure the accuracy and integrity of the control signals, error
detection codes are used in the communication between different systems, such as the flight
control system and the navigation system.
For example, the flight control system may use a combination of parity bits and Cyclic
Redundancy Check (CRC) codes to detect errors in the control signals, and use Hamming codes
or Reed-Solomon codes for correction. This helps to ensure that any errors in the control signals
are detected and corrected before they have the opportunity to affect the operation of the aircraft.
In addition to error detection codes, the use of safety critical systems in the aviation industry is
also regulated by industry standards such as DO-178B. These standards prescribe the
requirements for error detection and correction in aerospace systems, including the types of error
detection codes to be used, the minimum level of redundancy and diversity required, and the
testing and verification procedures to be followed.
By using error detection codes and following industry standards and regulations, the aviation
industry helps to ensure the reliability and safety of modern aircraft, and to minimize the risk of
accidents and malfunctions.

how many errors the error detection codes reliably detect


The number of errors that error detection codes can reliably detect depends on the specific type
of error detection code being used, as well as the length of the code and the level of redundancy
it provides.
For example, parity codes can only detect an odd number of errors, whereas Cyclic Redundancy
Check (CRC) codes can detect multiple errors. Hamming codes can detect and correct a single
error, whereas Reed-Solomon codes can detect and correct multiple errors.
In general, the length of the code and the level of redundancy it provides determines the number
of errors that it can reliably detect. A code with a higher level of redundancy will be able to
detect more errors than a code with a lower level of redundancy. However, as the level of
redundancy increases, the length of the code will also increase, which may have implications for
the overall performance and efficiency of the system.
Therefore, the number of errors that error detection codes can reliably detect is a trade-off
between the level of redundancy provided by the code and the length of the code. The specific
requirements of the safety critical system, such as the required level of reliability and the
constraints on code length, will determine the type of error detection code that is best suited for
the system.

how many errors the error detection codes reliably detect in safety critical systems
The number of errors that error detection codes can reliably detect in safety critical systems
depends on the specific requirements of the system and the type of error detection code being
used.
In safety critical systems, it is typically required to detect and correct as many errors as possible
to ensure the safety and reliability of the system. For this reason, error detection codes with high
levels of redundancy and error correction capabilities, such as Reed-Solomon codes or Turbo
codes, are often used in these types of systems.
These types of codes are capable of detecting and correcting multiple errors, making them well-
suited for use in safety critical systems where the consequences of errors can be severe.
However, the exact number of errors that can be reliably detected and corrected will depend on
the length of the code, the level of redundancy provided by the code, and the specific
requirements of the system.
In general, safety critical systems will typically use multiple levels of error detection and
correction to ensure the reliability and safety of the system, and to minimize the risk of
undetected errors. The specific error detection codes used in a safety critical system will be
designed to meet the required level of reliability, while also taking into account the constraints
on code length and computational complexity.

the probability of undetected errors in the error detection codes


The probability of undetected errors in error detection codes depends on several factors,
including the specific type of error detection code being used, the length of the code, and the
level of redundancy provided by the code.
In general, the probability of undetected errors can be reduced by using error detection codes
with higher levels of redundancy, and by increasing the length of the code. However, there is
always a trade-off between the length of the code and the computational complexity required to
implement the code.
For example, Reed-Solomon codes and Turbo codes are capable of detecting and correcting
multiple errors, and have a low probability of undetected errors. On the other hand, parity codes
and simple checksum codes have a lower level of redundancy and are less effective at detecting
errors, so the probability of undetected errors is higher.
It is important to note that the probability of undetected errors is not only determined by the error
detection code, but also by the underlying communication channel and the conditions under
which the code is used. For example, the probability of undetected errors may increase in the
presence of noise or other types of interference in the communication channel.
In safety critical systems, the probability of undetected errors must be kept to an acceptably low
level to ensure the reliability and safety of the system. The specific requirements of the system,
such as the required level of reliability and the constraints on code length and computational
complexity, will determine the type of error detection code that is best suited for the system, and
the measures that must be taken to reduce the probability of undetected errors.

Cyclic Redundancy Check (CRC)

Cyclic Redundancy Check (CRC) is a widely used error detection code that is used to detect
errors in data transmission. It works by calculating a checksum for a block of data, and then
transmitting the checksum along with the data. The recipient of the data then performs the same
calculation, and compares the result with the transmitted checksum. If the two values match, it is
assumed that the data was transmitted correctly and has not been corrupted. If the values do not
match, an error has been detected, and the data must be retransmitted.
The calculation of the checksum is performed using polynomial division. A polynomial is
chosen, and the data is treated as if it were the coefficients of a polynomial. The polynomial
division is then performed, and the remainder is the checksum. The checksum is typically a fixed
length, and is transmitted as an additional block of data along with the original data.
CRC is a powerful error detection technique, and is widely used in many applications, including
digital communication, storage devices, and computer networks. It is often used in conjunction
with other error detection and correction codes to provide a high level of protection against
errors in data transmission.
CRC is highly configurable, and there are many different variations of the basic algorithm, each
with its own strengths and weaknesses. The choice of polynomial, the length of the checksum,
and the processing used can all be adjusted to meet the specific requirements of the application.
This makes it a very flexible error detection technique, and one that is well-suited for use in
safety critical systems.

Cyclic Redundancy Check (CRC) in safety critical systems


Cyclic Redundancy Check (CRC) is often used in safety critical systems to detect errors in data
transmission. The use of error detection codes is particularly important in safety critical systems
because errors in the data can lead to catastrophic consequences, such as loss of life, property
damage, or environmental harm.
In safety critical systems, the goal of error detection codes is to identify errors as early as
possible, so that they can be corrected or the system can take appropriate action to prevent
further harm. The use of CRC allows these systems to detect errors that might otherwise go
unnoticed, providing an additional layer of safety and protection.
The use of CRC in safety critical systems requires careful consideration of the specific
requirements of the system. Factors such as the type of data being transmitted, the
communication channel used, the processing power of the system, and the type of errors that are
most likely to occur will all influence the choice of error detection code, and the parameters used
for the calculation of the checksum.
The use of CRC in safety critical systems can also be combined with other error detection and
correction codes to provide additional protection against errors. For example, some safety critical
systems use both CRC and parity bits, or a combination of checksum and hamming code, to
provide a highly reliable and robust error detection mechanism.
In conclusion, Cyclic Redundancy Check (CRC) is an important error detection technique that is
widely used in safety critical systems. Its ability to detect errors in data transmission provides an
additional layer of safety and protection, helping to prevent catastrophic consequences that might
otherwise occur.
Examples of real-life safety critical systems
Cyclic Redundancy Check (CRC) is widely used in many real-life safety critical systems. Some
examples of the use of CRC in safety critical systems include:
 Aerospace and Aviation: CRC is commonly used in aviation systems to detect errors in
data transmission, such as in flight control systems, navigation systems, and
communication systems.
 Medical Devices: Medical devices, such as pacemakers and insulin pumps, often use
CRC to detect errors in the data transmitted between the device and its control systems.
This helps to ensure the correct operation of these devices and prevents harm to patients.
 Automotive Systems: Automotive systems, such as airbag control systems and antilock
brake systems, use CRC to detect errors in data transmission. This helps to ensure the
correct operation of these safety critical systems and prevent accidents.
 Power Generation and Distribution: Power generation and distribution systems use CRC
to detect errors in the data transmitted between control systems, such as generator control
systems, and monitoring systems.
 Military Systems: Military systems, such as missile guidance systems, use CRC to detect
errors in the data transmitted between control systems and guidance systems. This helps
to ensure the correct operation of these systems and prevent harm to personnel and
equipment.
These are just a few examples of the real-life usage of Cyclic Redundancy Check (CRC) in
safety critical systems. The use of CRC helps to ensure the correct operation of these systems,
and prevents harm to people, property, and the environment.

You might also like