Laboratorium 5: implementacja UART

Data: 17.11.2020

UART

Plik: uart.py

Uwagi konstrukcyjne:

  1. W układzie nadawczym używamy maszyny stanów z dwoma stanami: IDLE i DATA, traktując bity startu i stopu jako dodatkowe bity danych. Można zrobić wersję z osobnymi stanami START i STOP, lecz powoduje to niepotrzebne zwiększenie powierzchni.

  2. 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 i STOP wymagają sprawdzania błędów) i zysk z tego nie będzie aż taki duży.

  3. 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ą.

  4. 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ł).