Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Podobne dokumenty
W11 Kody nadmiarowe, zastosowania w transmisji danych

Detekcja i korekcja błędów w transmisji cyfrowej

Detekcja i korekcja błędów w transmisji cyfrowej

Sieci Komputerowe Mechanizmy kontroli błędów w sieciach

Teoria informacji i kodowania Ćwiczenia Sem. zimowy 2016/2017

Systemy bezpieczne i FTC (Niezawodne Systemy Cyfrowe)

Sieci komputerowe - podstawowe technologie. Plan wykładu. Piotr Kowalski KAiTI

0 + 0 = 0, = 1, = 1, = 0.

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6

Matematyka dyskretna

Kodowanie informacji. Kody liczbowe

Modulacja i Kodowanie. Labolatorium. Kodowanie Kanałowe Kody Hamminga

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład Kody liniowe - kodowanie w oparciu o macierz parzystości

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Naturalny kod binarny (NKB)

Protokół MODBUS. Przemysłowe Sieci Informatyczne (PSI)

dr inż. Jarosław Forenc

Podstawy Informatyki: Kody. Korekcja błędów.

Kodowanie liczb całkowitych w systemach komputerowych

ĆWICZENIE 5. TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM

Protokół MODBUS. Przemysłowe Sieci Informatyczne (PSI)

Sieci komputerowe. Wykład 11: Kodowanie i szyfrowanie. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Laboratorium ochrony danych

Kody blokowe Wykład 1, 3 III 2011

Technologie Informacyjne

REJESTRATOR Z EKRANEM DOTYKOWYM TYPU KD7

INSTYTUT CYBERNETYKI TECHNICZNEJ POLITECHNIKI WROCŁAWSKIEJ ZAKŁAD SZTUCZNEJ INTELIGENCJI I AUTOMATÓW

REJESTRATOR EKRANOWY Typu KD8

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>

Architektura systemów komputerowych Laboratorium 5 Kodowanie liczb i tekstów

Protokół komunikacyjny sondy cyfrowej CS-26/RS-485 (lub RS-232)

ćwiczenie 202 Temat: Układy kombinacyjne 1. Cel ćwiczenia

teoria informacji Kanały komunikacyjne, kody korygujące Mariusz Różycki 25 sierpnia 2015

Wprowadzanie nadmiaru informacyjnego dla transmitowanych szeregowo danych w kompaktowych sterownikach PLC firmy Mitsubishi Electric

Pracownia Komputerowa wykład IV

SPECYFIKACJA. Przetwornik temperatury PT100 MODBUS RTU. Opracował: HCC-03-Modbus. HOTCOLD s.c

SPECYFIKACJA. Przetwornik temperatury PT100 MODBUS RTU. Opracował: HCC-05c-Modbus. HOTCOLD s.c

SUMA KONTROLNA (icmp_cksum) NUMER KOLEJNY (icmp_seq)

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Materiały dodatkowe Krótka charakterystyka protokołu MODBUS

SPECYFIKACJA. Przetwornik różnicy ciśnień DPC250-M, DPC2500-M, DPC4000-M, DPC7000-M (MODBUS RTU)

SPECYFIKACJA Przetwornik wilgotności HCRH-MODBUS-Kb

Wielkość analogowa w danym przedziale swojej zmienności przyjmuje nieskończoną liczbę wartości.

Architektura Systemów Komputerowych, Wydział Informatyki, ZUT

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

SPECYFIKACJA Przetwornik wilgotności HCRH-Modbus

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

Magistrala LIN

Teoria informacji i kodowania

Termometr cyfrowy DS18B20 obudowy i wyprowadzenia

Pracownia Komputerowa wyk ad IV

Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach

Sieci komputerowe. Wykład 2: Sieci LAN w technologii Ethernet. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś Wykład 8

Protokoły sieciowe model ISO-OSI Opracował: Andrzej Nowak

Tranzystor JFET i MOSFET zas. działania

Operatory. Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1

while(wyrażenie) instrukcja

SPECYFIKACJA. Przetwornik wilgotności i temperatury RH&T MODBUS RTU. HCRH-Ka-Modbus. Opracował: HOTCOLD s.c

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

SPECYFIKACJA. Przetwornik stężenia CO2 MODBUS RTU. Opracował: HTC-K-MODBUS-V-L. HOTCOLD s.c.

4 Standardy reprezentacji znaków. 5 Przechowywanie danych w pamięci. 6 Literatura

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ;

Niezawodność i diagnostyka systemów cyfrowych projekt 2015

Cyfrowy zapis informacji. 5 grudnia 2013 Wojciech Kucewicz 2

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Aby lepiej zrozumieć działanie adresów przedstawmy uproszczony schemat pakietów IP podróżujących w sieci.

SPECYFIKACJA. Przetwornik stężenia CO2 MODBUS RTU. Opracował: HTC-MODBUS-V

Wykład VI. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

Języki i paradygmaty programowania

Wstęp do Informatyki

Podstawy Automatyki. Wykład 9 - Podstawy matematyczne automatyki procesów dyskretnych. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Inż. Kamil Kujawski Inż. Krzysztof Krefta. Wykład w ramach zajęć Akademia ETI

- Quadrature Amplitude Modulation

ETHERNET. mgr inż. Krzysztof Szałajko

Biblioteka standardowa - operacje wejścia/wyjścia

1W-H3-05(K)* Czytnik RFID 125 khz Unique. Instrukcja

Wstęp do informatyki. Pojęcie liczebności. Zapis liczb. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

Poziomy zabezpieczeń danych w sieciach szerokopasmowych opartych na technice ATM

(12) OPIS PATENTOWY (19) PL (11)

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:

PROGRAMOWE MOŻLIWOŚCI NADMIAROWEGO KODOWANIA DANYCH W KOMPAKTOWYCH STEROWNIKACH PLC FIRMY MITSUBISHI ELECTRIC

THP-100-x parametry. Pobór prądu (przy zasilaniu 12V) Pobierana moc (przy zasilaniu 12V) 0,036W. Pomiar ciśnienia

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory

Microsoft IT Academy kurs programowania

Luty 2001 Algorytmy (7) 2000/2001

Spis treści KODOWANIE DANYCH I METODY WERYFIKACJI POPRAWNOŚCI KODOWANIA PI04. Instrukcja do zajęć Podstawy informatyki pracownia specjalistyczna

Wstęp do informatyki. Pojęcie liczebności. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

2 Kryptografia: algorytmy symetryczne

Transkrypt:

Instytut Informatyki Politechnika Poznańska

Proces transmisji może w prowadzać błędy do przesyłanych wiadomości błędy pojedyncze lub grupowe Detekcja: Wymaga uznania, że niektóre wiadomości są nieważne Wymaga dodatkowych bitów (nadmiarowość) Kod (n,k) zawiera słowa kodowe n-bitowe z k-bitami danych i r=(n-k) bitami nadmiarowymi Korekcja Korekcja błędów: wiele słów kodowych jest zmapowanych do tego samego słowa danych Detekcja i retransmisja 01-2014 2

Odległość Hamminga Odległość Hamminga dwóch słów bitowych = liczba pozycji na których różnią się te słowa Jeśli słowa kodowe mają minimalną odległość Hamminga D, wtedy można wykryć D-1 błędów bitowych Jeśli dostępne słowa kodowe mają minimalną odległość Hamminga D, wtedy można skorygować [(D-1)/2] błędów bitowych 1 0 1 1 0 1 1 0 1 0 HD=2 01-2014 3

Kod 01-2014 4

Błąd detekcji 01-2014 5

Błąd niewykryty 01-2014 6

Detekcja błędów 01-2014 7

Korekcja błędów 01-2014 8

Parzystość 1-bit zabezpieczenia - detekcja Każde słowo kodowe zawiera parzystą liczbę jedynek Dostępne słowa danych 01 11 00 10 011 111 Kodowanie parzystości: Biały błąd 010 110 000 100 001 101 01-2014 9

Głosowanie 1-bitowa korekcja z głosowaniem Każde słowo jest n-razy powtarzane Dostępne słowa danych 0 1 Głosowanie: Biały korekcja na 1 Niebieski korekcja na 0 011 111 010 110 000 100 001 101 01-2014 10

Przykłady Dostępne słowa Parzystość 01 11 00 10 011 111 Kodowanie parzystości: Biały błąd 010 110 000 100 001 101 Dostępne słowa Głosowanie 0 1 Głosowanie: Biały korekcja na 1 Niebieski korekcja na 0 011 111 010 110 000 100 001 101 01-2014 11

Techniki cyfrowej detekcji błędów Dwuwymiarowa parzystość Wykrywa do 3 błędnych bitów Dobre rozwiązanie dla paczek błędów Słowo kontrolne IP Proste dodawanie Prosta realizacja programowa Słowo kontrolne CRC Skuteczne rozwiązanie matematyczne (Galois Fields) Uproszczenia w realizacji programowej Proste w realizacji sprzętowej Powszechnie stosowane w protokołach transmisji 01-2014 12

Parzystość dwuwymiarowa 0101001 Parzystość bitów 1 Wykorzystana parzystość 1- wymiarowa Dane 1101001 1011110 0001110 0 1 1 Dodany drugi wymiar Dodano dodatkowy bajt Bajt Parzystości 0110100 1 1011111 0 1111011 0 Komentarz Wykrywa wszystkie błędy 1-, 2- i 3- bitów oraz dużo błędów 4-bitowych 01-2014 13

Słowo kontrolne IP Idea Dodać wszystkie słowa Wysłać wszystkie słowa Słowo kontrolne IP Wykorzystanie uzupełnienia 1-kowego dla 16-bitowych słów kodowych Przykład Słowo kodowane: 5 3 = 8 Postać binarna 0101 0011 = 1000 Suma komplementarna 0111 Prosta implementacja 01-2014 14

Słowo kontrolne IP u_short cksum(u_short *buf, int count) { register u_long sum = 0; while (count--) { sum += *buf++; if (sum & 0xFFFF0000) { /* carry occurred, so wrap around */ sum &= 0xFFFF; sum++; } } return ~(sum & 0xFFFF); } 01-2014 15

Słowo kontrolne CRC (ang. Cyclic Redundancy Check) Cel Maksymalizacja zabezpieczenia, minimalizacja ekstra bitów Idea Dodanie k bitów nadmiarowych do n-bitowej wiadomości N-bitowy komunikat może być przedstawiony jako n-bitowy wielomian, w którym każdy bit odpowiada współczynnikowi wielomianu Przykład Wiadomość = 10011010 Wielomian = 1 x 7 0 x 6 0 x 5 1 x 4 1 x 3 0 x 2 1 x 0 = x 7 x 4 x 3 x 01-2014 16

Słowo kontrolne CRC (ang. Cyclic Redundancy Check) Przykład kodowania G(x) = x 3 x 2 1 = 1101 Generator M(x) = x 7 x 4 x 3 x = 10011010 Komunikat 1101 Nadmiar m mod c 10011010000 Komunikat plus k zer 1101 1001 1101 1000 1101 1011 1101 1100 1101 1000 1101 101 Wynik: Transmisja komunikatu z dodanym nadmiarem: 10011010101 01-2014 17

Słowo kontrolne CRC (ang. Cyclic Redundancy Check) Przykład dekodowania brak błędów G(x) = x 3 x 2 1 = 1101 Generator P(x) = x 10 x 7 x 6 x 4 x 2 1 = 10011010101 Odebrany komunikat 1101 Nadmiar m mod c 10011010101 Odebrany komunikat bez 1101 błędów 1001 1101 1000 1101 1011 1101 1100 1101 1101 1101 0 Wynik: Poprawny test CRC 01-2014 18

CRC (ang. Cyclic Redundancy Check) Realizacja sprzętowa Q4 Q D Q3 Q D Q2 Q D Q1 Q D serial_in CLK G(x) = x 3 x 1 01-2014 19

CRC (ang. Cyclic Redundancy Check) Realizacja sprzętowa - kodowanie G(x) = x 3 x 1 01-2014 20

CRC (ang. Cyclic Redundancy Check) Realizacja sprzętowa dekodowanie G(x) = x 3 x 1 01-2014 21

CRC (ang. Cyclic Redundancy Check) 01-2014 22

CRC (ang. Cyclic Redundancy Check) G(x) = x 3 x 1 01-2014 23

CRC (ang. Cyclic Redundancy Check) G(x) = x 3 x 1 01-2014 24

CRC (ang. Cyclic Redundancy Check) Wada dane przy kodowaniu trzeba uzupełnić o r bitów (same zera) 01-2014 25

CRC (ang. Cyclic Redundancy Check) Realizacja sprzętowa kodowanie inna realizacja szybsza operacja kodowania SQ x 3 + x 2 2 + 1 0 x 0 Wejście danych G(x) = x 3 x 1 01-2014 26

CRC (ang. Cyclic Redundancy Check) Realizacja sprzętowa dekodowanie inna realizacja SQ x 3 + x 2 2 + 1 0 x 0 Wejście danych 01-2014 27

CRC (ang. Cyclic Redundancy Check) Generator pseudolosowy Q4 Q D Q3 Q D Q2 Q D Q1 Q D CLK G(x) = x 3 x 1 0 0 0 1 0 xor 0 0 0 0 0 0 0 0 1 0 0 xor 0 0 0 0 0 0 0 1 0 0 0 xor 0 0 0 0 0 0 1 0 0 0 0 xor 1 0 0 1 1 0 0 0 1 1 0 xor 0 0 0 0 0 0 0 1 1 0 0 xor 0 0 0 0 0 0 1 1 0 0 0 xor 1 0 0 1 1 Q4 Q3 Q2 Q1 0 1 0 1 1 0001 0010 0100 1000 0011 0110 1100 1011 0101 1010 0111 1110 1111 1101 1001 0001 01-2014 28

CRC (ang. Cyclic Redundancy Check) Wielomiany generujące CRC C(x) CRC-8 x 8 x 2 x 1 1 CRC-10 x 10 x 9 x 5 x 4 x 1 1 CRC-12 x 12 x 11 x 3 x 2 x 1 1 CRC-16 x 16 x 15 x 2 1 CRC-CCITT x 16 x 12 x 5 1 CRC-32 x 32 x 26 x 23 x 22 x 16 x 12 x 11 x 10 x 8 x 7 x 5 x 4 x 2 x 1 1 01-2014 29

CRC (ang. Cyclic Redundancy Check) Przykłady 01-2014 30

CRC (ang. Cyclic Redundancy Check) Przykłady 01-2014 31

CRC (ang. Cyclic Redundancy Check) Przykłady 01-2014 32

CRC (ang. Cyclic Redundancy Check) Modbus LRC (ang. Longitudinal Redundancy Check) LRC Przykładowy kod Funkcja przedstawia sposób wyznaczenia bajta LRC w języku C BYTE LRC (BYTE *ndata, WORD wlength) { BYTE nlrc = 0 ; // LRC char initialized for (int i = 0; i < wlength; i++) nlrc += *ndata++; return (BYTE)(-nLRC); } // End: LRC Krok 1 - dodać wszystkie wymagane bajty Krok 2 - zanegować wynik (uzupełnienie jedynkowe) Krok 3 - dodać 1 (uzupełnienie dwójkowe) 01-2014 33

Modbus wyznaczanie CRC G(x) = x 16 + x 15 + x 2 + 1 01-2014 34

Modbus wyznaczanie CRC void main() { unsigned char data[numdata+2]; // Message buffer unsigned char Crc_HByte,LByte; // unsigned int Crc;... Crc=0xFFFF; for (i=0; i<numdata; i++) { Crc = CRC16 (Crc, data[i] ); } Crc_LByte = (Crc & 0x00FF); // Low byte calculation Crc_HByte = (Crc & 0xFF00) / 256; // High byte calculation } // CRC16 calculation // ---------------- unsigned int CRC16(unsigned int crc, unsigned int data) { const unsigned int Poly16=0xA001; unsigned int LSB, i; crc = ((crc^data) 0xFF00) & (crc 0x00FF); for (i=0; i<8; i++) { LSB=(crc & 0x0001); crc=crc/2; if (LSB) crc=crc^poly16; } return(crc); } 01-2014 35

Dziękuję 36 09-2006