Laboratorium 5: implementacja UART¶
Data: 17.11.2020
UART¶
Plik: uart.py
Uwagi konstrukcyjne:
W układzie nadawczym używamy maszyny stanów z dwoma stanami:
IDLE
iDATA
, traktując bity startu i stopu jako dodatkowe bity danych. Można zrobić wersję z osobnymi stanamiSTART
iSTOP
, lecz powoduje to niepotrzebne zwiększenie powierzchni.W układzie odbiorczym mamy natomiast cztery stany — można by próbować zredukować ich liczbę, lecz są nieco mniej podobne niż w układzie nadawczym (
START
iSTOP
wymagają sprawdzania błędów) i zysk z tego nie będzie aż taki duży.Układ odbiorczy uważa bajt za zakończony i odebrany w połowie jego bitu stopu — nie jest to błąd; co więcej, jest to konieczne by układ działał przy drobnych różnicach szybkości przesyłu między nadawcą a odbiorcą.
Układ odbiorczy zgłasza błąd, jeśli odbierze nowy bajt przed przeczytaniem poprzedniego przez użytkownika. W przypadku, gdy użytkownik może przez dłuższy czas nie być w stanie przeczytać odebranych bajtów, można na wyjściu tego układu wstawić kolejkę FIFO (jako osobny moduł).