Autor poprzednio opisywanego projektu zaproponował również sposób łączenia programowalnych układów logicznych z komputerem przez interfejs szeregowy RS232. Przykładowe urządzenie będzie odbierało kody ASCII wysyłane przez komputer i wyświetlało odpowiednie symbole na wyświetlaczu 7-seg. W układzie wykorzystano źródło sygnału zegarowego o częstości 25,175 MHz i układ MAX233A do translacji napięć interfejsu szeregowego na poziom logiki +5V.
Na schemacie układu wyróżniono 4 podstawowe bloki: zasilacz +5V (układ zasilany jest z baterii 9-woltowej), konwerter MAX233A (do translacji napięć z poziomu +12V RS232 do poziomu +5V TTL), programowalny układ logiczny (EPM7182SLC84 Altery) i oscylator 25,175 MHz (taka wartość została wybrana „losowo”, każdy oscylator powyżej 10 MHz będzie odpowiedni do pracy w tym urządzeniu).
Autor omówił również sposób działania portu szeregowego i przesyłania danych przez niego. Do zobrazowania, jak wyglądają przebiegi w czasie przesyłu danych - liczb „1” (dec 49, bin 0110001) i „5” (dec 53, bin 0110101) - użyto oscyloskopu. Standardowa transmisja RS232 składa się z bitu startowego, 8 bitów danych (kodu ASCII) i bitu stopu.
W trakcie wysyłania znaku „1” i „5” przez port szeregowy paczka danych składa się z bitu startowego (+5V->0V), 8 bitów danych (LSB jako pierwszy bit), bitu stopu (0V) i znacznika końca transmisji (0V->+5V). Szczegółowy przebieg pokazano na poniższych obrazkach.
Program dla układu CPLD składa się z dwu modułów: dekodera kodów ASCII i modułu odbierania danych. Obydwa moduły zostały napisane w języku VHDL.
Moduł dekodera ASCII:
Kod: VHDL
Moduł odbierania danych:
Kod: VHDL
Na poniższym nagraniu pokazano działające urządzenie.
Urządzenie jest prostym przykładem zaimplementowania interfejsu RS232 w układzie CPLD. Co prawda interfejs RS232 jest już przestarzałym sposobem komunikacji, ale wciąż można znaleźć komputery wyposażone w porty szeregowe i testować budowę urządzeń wyposażonych w odpowiednie dla nich interfejsy. Może to stanowić wstęp do implementowania trudniejszych protokołów komunikacji, jak IIC, SPI, USB czy CAN.
Źródło
Fajne? Ranking DIY
