THE HARDWARE IMPLMENTATION OF THE PS/2 PROTOCOL ON SPARTAN 3 FPGA DEVICE IMPLEMENTACJA SPRZĘTOWA PROTOKOŁU PS/2 W UKLADZIE FPGA SPARTAN 3

Podobne dokumenty
interfejs szeregowy wyświetlaczy do systemów PLC

LABORATORIUM TECHNIKA CYFROWA LICZNIKI I REJESTRY. Rev.1.1

Programowalne Układy Cyfrowe Laboratorium

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.

dokument DOK wersja 1.0

DOKUMENTACJA PROJEKTU

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

UKŁADY MIKROPROGRAMOWALNE

Cyfrowe układy sekwencyjne. 5 grudnia 2013 Wojciech Kucewicz 2

PROTOTYPOWANIE UKŁADÓW ELEKTRONICZNYCH Programowalne układy logiczne FPGA Maciej Rosół, Katedra Automatyki AGH,

Ochrona własności intelektualnej projektów w układach FPGA poprzez szyfrowanie danych konfiguracyjnych

Na początek: do firmowych ustawień dodajemy sterowanie wyłącznikiem ściennym.

Materiały pomocnicze do ćwiczeń z podstaw techniki cyfrowej (przygotował R.Walkowiak) Dla studiów niestacjonarnych rok AK 2017/18

dwójkę liczącą Licznikiem Podział liczników:

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.

Ćw. 9 Przerzutniki. 1. Cel ćwiczenia. 2. Wymagane informacje. 3. Wprowadzenie teoretyczne PODSTAWY ELEKTRONIKI MSIB

Laboratorium przedmiotu Technika Cyfrowa

UKŁAD SCALONY. Cyfrowe układy można podzielić ze względu na różne kryteria, na przykład sposób przetwarzania informacji, technologię wykonania.

Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne

Lista zadań nr 1. Zagadnienia stosowanie sieci Petriego (ang. Petri net) jako narzędzia do modelowania algorytmów sterowania procesami

Język opisu sprzętu VHDL

Forum Młodych. OPOLCHESS robot do gry w szachy (1) Oprogramowanie FXChess XF. Potyczki z robotem. Algorytmy i reprezentacja danych.

ZL10PLD. Moduł dippld z układem XC3S200

f we DZIELNIKI I PODZIELNIKI CZĘSTOTLIWOŚCI Dzielnik częstotliwości: układ dający impuls na wyjściu co P impulsów na wejściu

TECHNIKA MIKROPROCESOROWA

Programowalne Układy Logiczne. Wykład I dr inż. Paweł Russek

Podstawy Elektroniki dla Elektrotechniki. Liczniki synchroniczne na przerzutnikach typu D

Podział układów cyfrowych. rkijanka

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.

Programowalne układy logiczne

PROGRAMOWALNE STEROWNIKI LOGICZNE

Politechnika Wrocławska

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL

Ćw. 7: Układy sekwencyjne

Implementacja algorytmu szyfrującego

Bezpieczeństwo informacji oparte o kryptografię kwantową

Kombinacyjne bloki funkcjonalne

Programowalne układy logiczne

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

Bezpieczeństwo informacji oparte o kryptografię kwantową

Temat: Pamięci. Programowalne struktury logiczne.

RS485 MODBUS Module 8I8O

Linia SDA służy do dwukierunkowego. przesyłania danych zawsze inicjuje master. Slave nie może zainicjować

Architektura Systemów Komputerowych. Transmisja szeregowa danych Standardy magistral szeregowych

AVR DRAGON. INSTRUKCJA OBSŁUGI (wersja 1.0)

MIKROPROCESORY architektura i programowanie

Systemy uruchomieniowe

LEKCJA. TEMAT: Funktory logiczne.

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

ZASTOSOWANIA UKŁADÓW FPGA W ALGORYTMACH WYLICZENIOWYCH APPLICATIONS OF FPGAS IN ENUMERATION ALGORITHMS

Podstawy działania układów cyfrowych...2 Systemy liczbowe...2 Kodowanie informacji...3 Informacja cyfrowa...4 Bramki logiczne...

Układy Cyfrowe projekt. Korekcja jasności obrazów w 24-bitowym formacie BMP z użyciem funkcji gamma. Opis głównych modułów sprzętowych

PROGRAMMABLE DEVICES UKŁADY PROGRAMOWALNE

LABORATORIUM ELEKTRONIKI I TEORII OBWODÓW

Programowany układ czasowy

Przerzutnik ma pewną liczbę wejść i z reguły dwa wyjścia.

Uniwersalny asynchroniczny. UART Universal Asynchronous Receier- Transmiter

MAGISTRALA MODBUS W SIŁOWNIKU XSM Opis sterowania

Przemysłowy odtwarzacz plików MP3

4. Karta modułu Slave

Badanie układów średniej skali integracji - ćwiczenie Cel ćwiczenia. 2. Wykaz przyrządów i elementów: 3. Przedmiot badań

RS485 MODBUS Module 16O

RS485 MODBUS Module 16RO

RS485 MODBUS Module 16RO

SDM-8AO. Moduł rozszerzający 8 wyjść analogowych. wyprodukowano dla

Podstawowe moduły układów cyfrowych układy sekwencyjne cz.2 Projektowanie automatów. Rafał Walkowiak Wersja /2015

RS485 MODBUS Module 8AO

MiniModbus 4DO. Moduł rozszerzający 4 wyjścia cyfrowe. Wyprodukowano dla. Instrukcja użytkownika

Elektroniczny sejf hotelowy

Instrukcja do ćwiczenia : Matryca komutacyjna

Układy reprogramowalne i SoC Język VHDL (część 4)

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

U 2 B 1 C 1 =10nF. C 2 =10nF

Statyczne badanie przerzutników - ćwiczenie 3

Technika mikroprocesorowa. Konsola do gier

Programowanie mikrokontrolerów 2.0

E-TRONIX Sterownik Uniwersalny SU 1.2

RS485 MODBUS Module 8AI

1.Wprowadzenie do projektowania układów sekwencyjnych synchronicznych

Programowanie Układów Logicznych kod kursu: ETD6203. Szczegóły realizacji projektu indywidualnego W dr inż.

1. Podstawowe wiadomości Możliwości sprzętowe Połączenia elektryczne Elementy funkcjonalne programów...

Podstawy elektroniki cz. 2 Wykład 2

SYSTEM E G S MODUŁ ML/A-1m INSTRUKCJA UŻYTKOWANIA

Przemysłowy odtwarzacz plików MP3 SD

Opis układów wykorzystanych w aplikacji

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014

LICZNIKI PODZIAŁ I PARAMETRY

1 Moduł Neuronu Cyfrowego

Projektowanie hierarchiczne Mariusz Rawski

RS485 MODBUS Module 8AI

Programowalne układy logiczne Wydziałowy Zakład Nanometrologii SEMESTR LETNI

IIPW_SML3_680 (Z80) przewodnik do ćwiczeń laboratoryjnych

ARS3-MODEM dokumentacja modemu radiowego do lokalnej transmisji danych w wolnych pasmach 433MHz i 868MHz

Układy sekwencyjne przerzutniki 2/18. Przerzutnikiem nazywamy elementarny układ sekwencyjny, wyposaŝony w n wejść informacyjnych (x 1.

Szkolenia specjalistyczne

Projekt z przedmiotu Systemy akwizycji i przesyłania informacji. Temat pracy: Licznik binarny zliczający do 10.

Szczegółowy opis przedmiotu zamówienia. Część 1 - Laboratoryjny zestaw prototypowy

Kod produktu: MP01611-ZK

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

Transkrypt:

Szymon Kozień IV rok Koło Naukowe Techniki Cyfrowej Dr inż. Wojciech Mysiński opiekun naukowy THE HARDWARE IMPLMTATION OF THE PS/ PROTOCOL ON SPARTAN FPGA DEVICE IMPLEMTACJA SPRZĘTOWA PROTOKOŁU PS/ W UKLADZIE FPGA SPARTAN Keywords: PS/ protocol, keyboard, FPGA, Spartan, Xilinx Słowa kluczowe: protokół PS/, klawiatura, FPGA, Spartan, Xilinx This paper presents structural VHDL module used for communication between PC keyboard and FPGA device. It will be also described PS/ protocol, host-to-device and deviceto-host communication..wstęp Układy FPGA (Field Programmable Gate Array) posiadają coraz większą rzeszę zwolenników, również wśród pasjonatów i amatorów techniki cyfrowej. Duża funkcjonalność tego typu struktury, wciąż malejące ceny oraz łatwość programowania skutkują coraz większym zainteresowaniem układami FPGA. Wiele projektów realizowanych w strukturach programowalnych wymaga komunikacji z użytkownikiem przy pomocy przycisków. Często także zachodzi potrzeba właśnie takiej komunikacji jeszcze w fazie projektowania, gdy chcemy zweryfikować poprawność działania części układu (np. pojedynczego komponentu). W dostępnych na rynku płytach prototypowych z układami FPGA montowane są zazwyczaj przyciski typu microswitch. Ilość tych przycisków może okazać się niewystarczająca dla naszych potrzeb. Ponadto ze względu na występowanie drgań zestyków przycisku mechanicznego zachodzi konieczność zaprojektowania dodatkowych układów wewnątrz struktury FPGA. Z drugiej strony, niemal każda płyta prototypowa posiada złącze PS/. Warto więc w celu komunikacji z użytkownikiem zastosować tanią i łatwo dostępną klawiaturę PC.. Złącze PS/.. Nie połączone. GND. Vcc (+5V) 5. 6. Nie połączone Rys. Złącze PS/ (żeńskie)

Złącze PS/ (następca większego, 5-cio pinowego złącza DIN) jest złączem 6-cio pinowym, z czego tylko wykorzystane są w interfejsie klawiatury PC. Klawiatura zasilana jest napięciem 5V.. Protokół PS/ Transmisja danych w protokole PS/ odbywa się szeregowo, synchronicznie. Sygnał zegarowy nadawany jest wyłącznie przez urządzenie. Jeżeli następuje jakieś zdarzenie (np. wciśnięcie lub puszczenie klawisza) urządzenie wysyła dane do hosta przy pomocy -to bitowych ramek (rys.). Rys. Komunikacja urządzenia z hostem Każda ramka zawiera:. Bit startu (zawsze równy ). bitów danych. Bit parzystości (kontrola nieparzystości). Bit stopu (zawsze równy ) Transmisja danych w przypadku gdy host chce wysłać dane do urządzenia przebiega nieco inaczej (rys.). Rys. Komunikacja hosta z urządzeniem W celu rozpoczęcia transmisji danych host musi ustawić sygnał zegarowy na poziom niski. Po us przywraca sygnał zegarowy na poziom wysoki oraz ustawia sygnał danych na poziom niski. Jest to informacja dla urządzenia aby zaczęło nadawać sygnał zegarowy. Przy każdym zboczu opadającym sygnału zegarowego host powinien wystawić na wyjście kolejny bit ramki. Po jedenastym zboczu narastającym sygnału zegarowego urządzenie wysyła bit ACK.. Kodowanie klawiszy klawiatury PC Istnieją trzy sposoby kodowania klawiszy, z czego powszechnie używany jest kod nr (obok kodu nr oraz kodu nr ). W kodzie tym każdy klawisz posiada:

Make code - kod wysyłany w momencie naciśnięcia klawisza, Break code - kod wysyłany w momencie puszczenia klawisza. Klawisze w kodzie nr możemy podzielić na dwie grupy. Pierwszą z nich stanowią klawisze, których make code mieści się w jednej ramce. Druga grupa ( tzw. klawiszy rozszerzonych) zawiera klawisze, których kody make mieszczą się w dwóch ramkach. Pierwsza ramka klawisza rozszerzonego zawiera zawsze dane E. Podczas puszczania klawisza wysyłany jest break code. Jest on co najmniej dwuramkowy i zawiera zawsze ramkę F. Tab. Kody make oraz break wybranych klawiszy (kod nr ) KEY MAKE BREAK A C F, C 5 F, 5 UP ARROW E, 75 E,F,75 KP 75 F, 75 5. Schemat ideowy układu Układ posiada wejścia: zegarowe, sygnał (z klawiatury), sygnał (z klawiatury), oraz wejście resetujące. Na wyjściu mamy ośmiobitowy kod aktualnie wciśniętego klawisza oraz jednobitowy znacznik kodu rozszerzonego. Układ składa się z pięciu modułów: układu sterującego, modułu wejścia/wyjścia, modułu wyjścia, rejestru oraz komparatorów (rys.). KEYBOARD MODULE KEY_, STATUS_ KB_ PORT_, PORT_, SD_COUNTER_, SD_TIMER_, COUNTER_, PISO_SET, SD_COUNTER_RST, COUNTER_RST KEY_ KB_ RST I/O BLOCK DRIVER KEY_, STATUS_, STATUS_IN, STATUS_MUX_ADDR KEY_MUX_ADDR PUT BLOCK STATUS_ CHANGE, RST_, SD_COUNT, SD_TIME 5 5 REGISTER_IN, REGISTER_ S COPARATOR REGISTER REGISTER_ REGISTER_() Rys. Schemat ideowy modułu Układ sterujący (rys.5) jest to typowy automat Moore a, zrealizowany na rejestrze PIPO i układzie kombinacyjnym. Rejestr PIPO przechowuje aktualny stan układu. Wartość odpowiednich sygnałów sterujących oraz stan następny zależy wyłącznie od stanu aktualnego

oraz sygnału pochodzącego z modułu zawierającego komparatory. Układ jest synchronizowany zewnętrznym sygnałem zegarowym MHz. DRIVER KEY_, STATUS_, STATUS_IN, STATUS_MUX_ADDR KEY_MUX_ADDR 5 PORT_, PORT_, SD_COUNTER_, ROM SD_TIMER_, COUNTER_, PISO_SET, SD_COUNTER_RST, COUNTER_RST REGISTER_IN REGISTER_ PREST_STATE IN NEXT_STATE PIPO Rys.5 Schemat ideowy układu sterowania 5.. Schemat ideowy rejestru Rejestr (rys.6) przechowuje informacje o aktualnie przychodzącym rozkazie. Zawiera pola mówiące czy klawisz, którego kod aktualnie jest odbierany, ma być usunięty (F), jest rozszerzony (E), oraz czy nastąpiła zmiana w rejestrze PIPO w module I/O. REGISTER D REGISTER_IN D flip -flop D REGISTER_ REGISTER_ D flip -flop T T flip-flop Rys.6 Schemat ideowy rejestru REGISTER_(): jeżeli przyszła ramka F, w przeciwnym wypadku REGISTER_(): jeżeli przyszła ramka E, w przeciwnym wypadku REGISTER_(): zmienia swą wartość na przeciwną przy każdym przyjściu nowej ramki 5.. Schemat ideowy modułu wejścia/wyjścia Moduł I/O (rys.7) odpowiada za odbiór i nadawanie danych. Stąd wyróżniamy bufory trójstanowe odpowiedzialne za ustalenie kierunku transmisji.

Gdy dane są odbierane, na wyjściu buforów jest stan wysokiej impedancji. Dane odbierane trafiają do rejestru SIPO. Gdy zostaną zliczone wszystkie zbocza zegarowe ramki, zawartość tego rejestru przerzucana jest do rejestru PIPO i możliwy jest dalszy odbiór danych w rejestrze SIPO. Gdy dane maja być wysłane, na wyjściu bufora danych jest sygnał wyjściowy rejestru PISO. Wraz z każdym zboczem opadającym sygnału zegarowego, rejestr ten wystawia kolejny bit na wyjście. Dodatkowo umieszczone są w tym module układy licznikowe, używane przy wysyłaniu danych z hosta. Blok BUTTON_DRIVER pełni rolę przerzutnika monostabilnego. Jego obecność wymagana jest ze względu na drgania zestyków przycisku mechanicznego RST. S I/O MODULE PISO_SET KB PORT_ x7feh IN SET PISO SIPO IN PISO_ IN xe xf () () KB GND PORT_ COUNTER_ COUNTER_RST SIPO COUNT IN RST xah COUNTER PIPO COUNT_D T T flip-flop CHANGE KEY_ SD_TIME 7 () (5) SD_COUNTER_ SD_COUNTER_RST SD_TIMER_ IN RST COUNTER IN 7 SD_COUNT SD_TIME SD_COUNT x6 7 xa () () () (6) (7) () () RST COUNTER IN RST_ () xc BUTTON_DRIVER REGISTER_ STATUS_ CHANGE RST_ Rys.7 Schemat ideowy modułu we/wy Rys. Schemat ideowy komparatorów 5.. Schemat ideowy modułu komparatorów Moduł S (rys. ) odpowiedzialny jest za odpowiednie ukształtowanie sygnału będącego sygnałem wejściowym układu sterowania. W module tym wykonywane są porównania odpowiednich sygnałów z wartościami stałymi lub innymi sygnałami. W zależności od wyniku porównania układ sterowania podejmuje określone działania. W module tym sprawdzane są:. Wartość sygnału, czy nie zawiera rozkazu usunięcia (F) lub kodu rozszerzonego (E). Sprawdzane jest, przy usuwaniu klawisza, czy jego kod zgodny jest z kodem aktualnie będącym na wyjściu całego modułu

. Czy nastąpiła zmiana w rejestrze PIPO w module I/O oraz czy został naciśnięty przycisk RST. Stan liczników służących do wysyłania danych 5.5. Schemat ideowy modułu wyjścia Moduł wyjścia (rys.) zawiera dwa multipleksery (jeden grupowy) dwuwejściowe służące do ustawienia odpowiednich sygnałów na wejściu rejestru wyjściowego i przerzutnika typu D. Adresy multiplekserów jak również sygnały przerzutników ustalane są przez układ sterownia. PUT MODULE xh KEY_MUX_ADDR IN IN Group MUX KEY_IN IN KEY_ KEY_ PIPO REGISTER_() IN IN STATUS_IN D STATUS_ STATUS_MUX_ADDR STATUS_ MUX D flip -flop Rys. Schemat ideowy modułu wyjścia 6. Realizacja sprzętowa oraz symulacja układu Układ został zaprojektowany w języku VHDL w środowisku ISE WebPack.i oraz zrealizowany sprzętowo w układzie FPGA Spartan XCS na płycie prototypowej Altium Designer LiveDesign Evaluation Kit. Testy poszczególnych modułów wykonane zostały w darmowej wersji programu ModelSim Xilinx Edition firmy Mentor Graphics. Pomoce naukowe: [] Zwoliński M.: Projektowanie układów cyfrowych z wykorzystaniem języka VHDL, Wydawnictwa Komunikacji i Łączności, Warszawa 7 [] Skahill K.: Język VHDL. Projektowanie programowalnych układów logicznych, Wydawnictwa Naukowo-Techniczne, Warszawa [] Chapweske A.: http://www.computer-engineering.org/psprotocol/