.. _l05-uart: ================================== Laboratorium 5: implementacja UART ================================== Data: 17.11.2020 .. toctree:: .. contents:: UART ==== Plik: :download:`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ł).