Krzysztof Leszczyński Adam Sosnowski Michał Winiarski. Projekt UCYF

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

1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Techniki multimedialne

Logiczny model komputera i działanie procesora. Część 1.

Temat: Algorytm kompresji plików metodą Huffmana

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Kody splotowe (konwolucyjne)

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

Kody splotowe. Zastosowanie

pobieramy pierwszą literę komunikatu i wypełniamy nią (wszystkie pozycje tą samą literą) bufor słownikowy.

Instrukcja obsługi Profesjonalny bezprzewodowy czytnik kodów HD2000

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów

Możliwości metody znakowania wyrobów sztukowych mikrokodami w systemach automatycznej identyfikacji

Def. Kod jednoznacznie definiowalny Def. Kod przedrostkowy Def. Kod optymalny. Przykłady kodów. Kody optymalne

Systemy liczenia. 333= 3*100+3*10+3*1

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

W11 Kody nadmiarowe, zastosowania w transmisji danych

Instrukcja obsługi Bezprzewodowy czytnik kodów kreskowych HD45

Programowanie Mikrokontrolerów

ZASTOSOWANIE KODÓW DWUWYMIAROWYCH 2D. Andrzej JANICKI

Matematyka dyskretna

Tranzystor JFET i MOSFET zas. działania

Architektura komputerów

Instrukcja obsługi czytnika MM-R32

Architektura komputerów

EGZAMIN MATURALNY Z INFORMATYKI

Instrukcja obsługi Bezprzewodowy profesjonalny czytnik kodów ze stacją dokującą HD8900

Technologie Informacyjne

Temat: Działania pisemne powtórzenie wiadomości z QR kodami.

System optycznego przekazywania informacji dla osób niewidomych z wykorzystaniem telefonu z systemem operacyjnym Android inż.

CPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki

Kod produktu: MP01611

1.1. Pozycyjne systemy liczbowe

skutecznie skraca czas potrzebny na przygotowanie korespondencji wchodzącej i wychodzącej

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

Kwestie kodowania, znakowania i weryfikacji części samochodowych i lotniczych

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

CDN XL: Wdrożenie ERP

Zespół Szkół Technicznych. Badanie wyświetlaczy LCD

INSTRUKCJA OBSŁUGI CZYTNIK LC2200

Systemy bezpieczne i FTC (Niezawodne Systemy Cyfrowe)

Kodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG

MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN

dr inż. Jarosław Forenc

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

RS-H0-05 (K)* Czytnik RFID MHz Mifare. Karta użytkownika

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

Przetwornik analogowo-cyfrowy

Graficzne kody dwuwymiarowe po inżyniersku (3)

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

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka

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

Komunikacja człowiek-komputer

RSD Uniwersalny rejestrator danych Zaprojektowany do pracy w przemyśle

RSD Uniwersalny rejestrator danych Zaprojektowany do pracy w przemyśle

Architektura komputerów Reprezentacja liczb. Kodowanie rozkazów.

Instrukcja obsługi Bezprzewodowy czytnik kodów 2D Bluetooth/ WiFi HD8000

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Według raportu ISO z 1988 roku algorytm JPEG składa się z następujących kroków: 0.5, = V i, j. /Q i, j

Arytmetyka komputera

WOJEWÓDZKI KONKURS INFORMATYCZNY DLA UCZNIÓW SZKÓŁ PODSTAWOWYCH ETAP WOJEWÓDZKI BIAŁYSTOK, 26 KWIETNIA 2018

ul. Herbaciana 9, Reguły tel. (22) fax (22)

instrukcja użytkownika terminala ARGOX PA-20 SYSTEMY AUTOMATYCZNEJ IDENTYFIKACJI

DOKUMENTACJA PROJEKTU

WOJEWÓDZKI KONKURS INFORMATYCZNY DLA UCZNIÓW DOTYCHCZASOWYCH GIMNAZJÓW ETAP SZKOLNY BIAŁYSTOK, 22 LISTOPADA 2017 R.

Rekomendacja Związku Banków Polskich dotycząca kodu dwuwymiarowego ( 2D ), umożliwiającego realizację polecenia przelewu oraz aktywację usług

Projektowanie złożonych układów cyfrowych

Instrukcja obsługi Stacjonarny czytnik kodów kreskowych HD-S80

Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

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

Kod produktu: MP01611-ZK

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Opis procedur asemblera AVR

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6

Kod produktu: MP01611-ZK

QR code. Ramka składa się z następujących części: typ, liczba znaków, dane, terminator, dopełnienie do oktetu, dopełnienie do ramki.

Podstawy Informatyki Maszyna Turinga

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

Laboratorium ochrony danych

Interfejsy. w systemach pomiarowych. Ryszard J. Barczyński, 2016 Materiały dydaktyczne do użytku wewnętrznego

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

TECHNIKA MIKROPROCESOROWA

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

Wstęp do Informatyki

Komputer i urządzenia cyfrowe

Programowalne Układy Cyfrowe Laboratorium

Import zleceń / Integracja klienta K-Ex

L6.1 Systemy liczenia stosowane w informatyce

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

Dodatek D. Układ współpracy z klawiaturą i wyświetlaczem 8279

Złożoność obliczeniowa zadania, zestaw 2

Mikroprocesor Operacje wejścia / wyjścia

Etap I V Gminnego Konkursu Informatycznego.

Organizacja typowego mikroprocesora

Transkrypt:

Krzysztof Leszczyński Adam Sosnowski Michał Winiarski Projekt UCYF Temat: Dekodowanie kodów 2D. 1. Opis zagadnienia Kody dwuwymiarowe nazywane często kodami 2D stanowią uporządkowany zbiór jasnych i ciemnych komórek o regularnych kształtach (kwadrat, prostokąt, koło, sześciokąt) przedstawiający dane w postaci zgodnej z opisem dla określonej symboliki 2D. Kody dwuwymiarowe mogą być piętrowe lub matrycowe. Większą popularność zyskały symboliki matrycowe zapewniające możliwość większego zagęszczenia danych. Kody matrycowe mają z reguły kształt kwadratu, tworząc unikalny wzór składający się z kilkudziesięciu rzędów i kolumn. Ten typ kodowania jest używany często do oznaczania dokumentów. Stosowany jest także na przesyłkach w transporcie i spedycji. Często wykorzystywany jest także w przemyśle elektronicznym. Analizując stopień zastosowania różnych sposobów kodowania widoczna jest tendencja stosowania kodów dwuwymiarowych w przemyśle, szczególnie w produkcji dóbr wysokoprecyzyjnych (np. elektronika, medycyna, motoryzacja). Najważniejsze zalety kodów dwuwymiarowych w stosunku do kodów liniowych to możliwość umieszczenia na mniejszej powierzchni większej ilości informacji nadającej się do automatycznego odczytu oraz lepszy sposób zabezpieczenia i kodowania danych uwzględniający technikę wykrywania oraz korygowania błędów. Jednym z najpopularniejszych kodów 2D jest kod Data Matrix, którego dekodowaniem zajmiemy się w naszym projekcie.

2. Specyfikacja Data Matrix Został opracowany przez firmę Robotic Vision Systems, Inc. Składa się z kwadratowych modułów ułożonych wewnątrz wzorca wyszukiwania stanowiącego obwód symbolu. Stosowane są dwa rodzaje kodów Data Matrix: ECC 00-140 i ECC200. Sześć schematów kodowania sprawia, że można dobrać zapis kodu czyniąc go jak najmniejszym. Obecnie polecanym standardem jest ECC 200. Pozwala na zakodowanie 2335 znaków alfanumerycznych, 1556 znaków ośmiobitowych bądź 3116 znaków numerycznych. Używa on efektywniejszych algorytmów do kodowania danych, wykrywania błędów i ich korekcji. ECC 00-140 wykorzystuje kody splotowe, natomiast ECC 200 robi użytek z kodów Reeda- Solomona. Poniższa tabela przedstawia pojemność informacyjną kodu Data Matrix dla różnych kombinacji wierszy/kolumn. Przedstawione liczby odnoszą się do trybu ECC 200. Wymiary Szczegóły Pojemność informacyjna Wiersze Regiony Bajty Bajty Kolumny danych danych błędów ECC % Cyfry Alfanumeryczne 8- bitowe ASCII 10 x 10 1 3 5 62,5 6 3 1 12 x 12 1 5 7 58,3 10 6 3 14 x 14 1 8 10 55,6 16 10 6 16 x 16 1 12 12 50,0 24 16 10 18 x 18 1 18 14 43,8 36 25 16 20 x 20 1 22 18 45,0 44 31 20 22 x 22 1 30 20 40,0 60 43 28 24 x 24 1 36 24 40,0 72 52 34 26 x 26 1 44 28 38,9 88 64 42 32 x 32 4 62 36 36,7 124 91 60 36 x 36 4 86 42 32,8 172 127 84 40 x 40 4 114 48 29,6 228 169 112 44 x 44 4 144 56 28,0 288 214 142 48 x 48 4 174 68 28,1 348 259 172 52 x 52 4 204 84 29,2 408 304 202 64 x 64 16 280 112 28,6 560 418 278 72 x 72 16 368 144 28,1 736 550 366 80 x 80 16 456 192 29,6 912 682 454 88 x 88 16 576 224 28,01152 862 574 96 x 96 16 696 272 28,11392 1042 694 104x104 16 816 336 29,21632 1222 814 120x120 36 1050 408 28,02100 1573 1048 132x132 36 1304 496 27,62608 1954 1302 144x144 36 1558 620 28,53116 2335 1556

Przykład kodu Data Matrix: Ramka określająca orientację kodu Ramka określająca rozmiar macierzy Zakodowane dane 3. Opis implementacji i algorytmu działania układu Obrazek reprezentujący dwuwymiarowy kod zapisywany jest w postaci tablicy bitów Tab[][]. Na podstawie rozmiaru tablicy określana jest maksymalna liczba znaków jaka może być zapisana na obrazku. Przy pomocy komunikacji USB do układu dekodera przesyłana jest z komputera informacja o wielkości obrazka i tablica bitów reprezentująca kod DataMatrix. Pola czarne oznaczają bitową 1, pola białe 0. Układ składa się z trzech głównych procesów: code, search_pos oraz read bit. Proces code jest wykonywany tylko raz, zaraz po otrzymaniu danych z komputera. Na podstawie wielkość zakodowanego obrazka generowana jest tablica pozycji poszczególnych bitów kolejnych znaków zakodowanej wiadomości. Sposób tworzenia tablicy lokalizacji bitów został przedstawiony na schemacie nr 1. Procesy search_pos oraz read_bit wykonywane są naprzemiennie. Proces search_pos przeszukuje kolejne pola utworzonej przez proces code tablicy pozycji, odnajdując miejsca poszczególnych bitów zakodowanej wiadomości. Proces read_bit sczytuje wartość danego pola i wstawia do ciągu bitów, reprezentującego zakodowany znak, przesuwając bitowo w lewo poszczególne bity. W projekcie wykorzystywane jest kodowanie ASCII, więc każdy znak składa się z ośmiu bitów. Naprzemienne wywoływanie procesów search_pos i read_bit trwa do czasu skompletowania pełnej informacji o znaku. Gdy to nastąpi znak jest odkodowywany. Procedura zostaje powtórzona dla kolejnych znaków

zakodowanej wiadomości, aż do momentu napotkania przez proces read_bit szczególnej sytuacji, w której odkodowany znak jest informacją o końcu wiadomości. Odkodowana treść zostaje przesłana do komputera w postaci znaków ASCII. Zasada działania procesów search_pos i read_bit została przedstawiona na schematach. Schemat 2 obrazuje proces tworzenie ciągu bitów reprezentujących znak, natomiast schemat 3 pokazuje zasadę odkodowywania znaku. 4. Symulacja działania dekodera. Wynik kompilacji układu:

Poniżej zostały przedstawione wyniki symulacji dekodera. Pokazują one prawidłowe działanie układu- wiadomość została zdekodowana poprawnie. zakodowana wiadomość: al5

zakodowana wiadomość: z5khx 5. Interfejs układu Nazwa sygnału Typ sygnału Rozmiar Funkcja data_in1 IN 1 bit Bit sterujący klienta data_in2 OUT 1 bit Bit sterujący układu data_out1 IN 1 bit Bit sterujący układu data_out2 OUT 1 bit Bit sterujący klienta reset IN 1 bit Czyszczenie pamięci RAM data_in IN 64 bit Pobieranie danych data_out OUT 8 bit Zwracanie wyników

Pobieranie danych Wysyłanie danych data_in1 data_in2 Stan data_out1 data_out2 Stan 0 0 Bezczynność 0 0 Bezczynność 1 0 Gotowość do wysłania 1 0 Gotowość do wysłania 1 1 Transmisja 1 1 Transmisja 6. Struktura układu 7. Materiały: - program służący do kodowania wiadomości do kodu DataMatrix: http://sourceforge.net/projects/iec16022sharp/ -program sczytujący obrazek.bmp z zakodowaną wiadomością do tablicy bitów: https://developer.berlios.de/project/showfiles.php?group_id=7751&release_id=11873