Przegląd równoległego systemu we/wy (I/O) mikrokontrolerów HC11, AVR i 8051

 

Cyfrowe linie we/wy (I/O) to najprostszy i najbardziej popularny sposób, w jaki mikrokontrolery kontaktują się ze światem zewnętrznym.
Na rysunku 1 pokazano, w jaki sposób cyfrowe linie wejściowe i wyjściowe są podłączone do wewnętrznej magistrali mikrokontrolera MCU.
W przypadku linii wejściowej, status pinu mikrokontrolera MCU jest przesyłany wewnętrzną magistralą do CPU przez aktywację wewnętrznego sygnału RP (Read Port), generowanego podczas wykonywania instrukcji używanej do odczytu portu.
19_21_got_1

Linia wyjściowa jest związana z wewnętrznym przerzutnikiem zatrzaskowym (wewnętrzną blokadą), którą można utworzyć za pomocą magistrali wewnętrznej i sterownika podłączonego do fizycznego pinu.
W praktyce rzeczy są nieco bardziej skomplikowane. Ze względów ekonomicznych i technologicznych wygodniej jest przypisać dwie lub więcej funkcji do każdego pinu niż podwoić liczbę pinów na wyprowadzeniach chipu mikrokontrolera.
19_21_got_2

Z tego powodu wszystkie mikrokontrolery intensywnie korzystają z dwukierunkowych linii wejścia/wyjścia.
Najprostszym sposobem uzyskania dwukierunkowej linii jest użycie sterownika z otwartym drenem dla linii wyjściowej.
Gdy tranzystor wyjściowy jest zablokowany, urządzenie zewnętrzne może sterować linią.
Na rysunku 2 przedstawiono schemat logiczny dwukierunkowej linii we/wy (I/O) zrealizowanej zgodnie z tą zasadą.
Gdy oprogramowanie zapisuje 1 (logiczną jedynkę) do zatrzasku związanego z linią wyjściową, tranzystor wyjściowy jest blokowany, a linia jest przekształcana w linię wejściową. To rozwiązanie jest używane przez mikrokontrolery rodziny 8051.
19_21_got_3

Innym sposobem jest skojarzenie z każdą dwukierunkową linią we/wy (I/O) dodatkowego przerzutnika zatrzaskowego, zwanego przerzutnikiem zatrzaskowym kierunkowym, który steruje trójstanowym sterownikiem wyjściowym.
Po ustawieniu kierunku przerzutnika zatrzaskowego na logiczne 1 przez oprogramowanie, linia we/wy (I/O) jest skonfigurowana, jako linia wyjściowa.
Uproszczony schemat logiczny linii we/wy (I/O) realizowanej zgodnie z tą zasadą przedstawiono na Rys. 3.
Ta metoda sterowania kierunkiem linii we/wy (I/O) jest charakterystyczna dla mikrokontrolerów należących do rodzin HC11 i AVR.
Zazwyczaj linie we/wy (I/O) są pogrupowane w 8-bitowe porty, które mają indywidualne adresy na mapie pamięci.
Podobnie bity sterowania kierunkiem są zgrupowane w 8-bitowych rejestrach, zwanych rejestrami kierunku danych (DDR – Data Direction Registers), związanych z każdym portem we/wy (I/O).
19_21_got_4

Zauważyć należy, że port we/wy (I/O), wraz z powiązanym rejestrem kierunku danych, tworzą strukturę podobną do ogólnej struktury interfejsu peryferyjnego we/wy (I/O), pokazanego na Rys. 4, gdzie rejestr danych jest samym portem danych, a rejestr sterowania jest rejestrem kierunku danych.
Często linie we/wy (I/O) mają alternatywne funkcje w połączeniu z niektórymi podsystemami mikrokontrolera.
Na przykład asynchroniczny interfejs szeregowy HC11 używa linii portu D, a podsystem zegara może korzystać z linii portu A.
Zwykle piny zewnętrzne są automatycznie konfigurowane dla funkcji alternatywnej, gdy odpowiedni podsystem jest włączony przez oprogramowanie, zastępując ustawienia w rejestrze kierunku danych, ale nie jest to reguła bezwzględna.
Szczegółowe informacje na temat tego, w jaki sposób interfejs peryferyjny współużytkuje piny MCU, będziemy sukcesywnie na łamach portalu przedstawiać.

Autor: M. Mitescu, I. Susnea

Komentarze z Facebooka

Komentarze obecnie - OFF.