Digilent Nexys2: implementacja interfejsu klawiatury PS/2 w VHDL

 

W projekcie przedstawiamy obsługę portu szeregowego PS/2, który służy m.in. do komunikacji z klawiaturą. Projekt ten został stworzony w łatwy sposób na zestawie uruchomieniowym Nexys2 500K Kit firmy Digilent (patrz fotografia 1).

 

Fot. 1. Zestaw uruchomieniowy Nexys2 500K Kit

Fot. 1. Zestaw uruchomieniowy Nexys2 500K Kit

 

 

 

Klawiaturę należy podłączyć do gniazda PS/2. Do wyświetlania wciskanych klawiszy użyto kaskady wyświetlaczy 7-segmentowych. Wykorzystany sterownik tych wyświetlaczy umożliwia wyświetlenie jedynie liczb 0-9 oraz liter A-F. Wciśnięcie na klawiaturze innego klawisza niż 0-9 oraz A-F powoduje wygaszenie danego wyświetlacza. Na kaskadzie wyświetlane są ostatnie 4 wciśnięte klawisze. Ostatnio wciśnięty klawisz wyświetlany jest na skrajnie prawej pozycji kaskady (patrz rysunek 2).

 

Rys. 2. Peryferia funkcyjne projektu wraz z opisem

Rys. 2. Peryferia funkcyjne projektu wraz z opisem

 

 

Komponenty projektu

Do obsługi klawiatury PS/2 w projekcie użyto wcześniej zaprojektowanych komponentów. Pierwszy z nich to dzielnik częstotliwości sygnału zegarowego przez stałą wartość N. Komponent ten pokazano na rysunku 3.

 

Rys. 3. Komponent dzielnika częstotliwości

Rys. 3. Komponent dzielnika częstotliwości

 

 

Opis sygnałów:
rst – sygnał reset (niewykorzystywany w tym projekcie)
clk_in – wejściowy sygnał zegarowy
clk_out – wyjściowy, podzielony przez N sygnał zegarowy

Kolejny komponent to sterownik kaskady wyświetlaczy 7-segmentowych ze wspólną anodą. Sterownik ten przedstawiono na rysunku 4.

 

Rys. 4. Komponent sterownika kaskady wyświetlaczy

Rys. 4. Komponent sterownika kaskady wyświetlaczy

 

 

Opis sygnałów:
clk_i – wejściowy sygnał zegarowy
rst_i – sygnał reset, który resetuje kaskadę wyświetlaczy
digit_i – szyna danych złożona z 32 bitów, każdy bit określa stan konkretnego segmentu kaskady wyświetlaczy
led7_seg_o – szyna danych złożona z 8 bitów, określa stan jednej cyfry w kaskadzie
led7_an_o – szyna danych złożona z 4 bitów, aktualnie wyświetlana cyfra jest określana poziomem niskim

Do pobrania

O autorze