.. _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Ĺ).