Multiplekser: wszystko, co musisz wiedzieć

układ multipleksera

Un multipleksor to układ kombinacyjny, który ma kilka wejść i jedno wyjście danych. Dzięki temu można wybrać przejście tylko jednego z jego wejść, aby skierować je do wyjścia. Oznacza to, że można wybrać, z którego wejścia pobierać dane lub bit znajdujący się na wejściu i zignorować pozostałe dane wejściowe. Jest to bardzo powszechne w elektronice, gdy kilka połączeń musi współdzielić jedną linię lub magistralę.

Oznacza to, że kontrolując multiplekser, możesz zawsze wybieraj odpowiednie wejście. Co sprawia, że ​​pomimo posiadania tylko jednego połączenia, możesz pracować jednocześnie z wieloma urządzeniami wejściowymi bez ich wzajemnego zakłócania. Powinieneś również wiedzieć, że demultiplekser jest zwykle używany w połączeniu z multiplekserem w wielu projektach ...

Co to jest multiplekser?

multipleksor

Te usługi kombinowane o nazwie multipleksery zwykle nie są skomplikowane. Składają się z kilku bramek logicznych w zależności od liczby danych wejściowych, a sterowanie może zwiększyć złożoność. Zwykle obejmują 2n wejścia i pojedyncze wyjście, a także linie sterujące. I możesz użyć kilku z nich w połączeniu, aby zwiększyć liczbę dostępnych biletów.

Można to rozumieć jako selektor. Na przykład wyobraź sobie, że masz bardzo prosty z dwoma wejściami, najprostszym, jakie można zbudować. Ten obwód będzie miał pojedyncze wejście i wyjście sterujące. Jeśli wejściami są A i B, za pomocą wejścia sterującego można kontrolować, czy to A przekazuje swoją wartość do wyjścia S, czy też robi to B. Aby to zrobić, wystarczy zmienić wartość linii kontrolnej C. Na przykład, jeśli C = 0, będzie to A, a jeśli C = 1, to będzie B.

Jak zrozumiesz, jeśli będzie więcej danych wejściowych, będzie potrzebnych więcej wejścia sterujące do wyboru. W rzeczywistości multiplekser jest specjalnym typem dekodera, z sygnałem włączającym dla każdej uwzględnionej bramki AND i bramką OR między wyjściem a bramkami AND. W ten sposób można go łatwo wybrać.

Jeśli chodzi o aplikacje, możesz z niego korzystać dla wielu rzeczy:

  • Selektor wejść do współdzielenia pojedynczej magistrali lub linii, gdy masz wiele wejść.
  • Serializator, tak aby pobierał wartości każdego ze swoich danych wejściowych w kolejności.
  • Do transmisji multipleksowanej przy użyciu tych samych linii połączeniowych dla różnych danych z różnych urządzeń. Na przykład wyobraź sobie, że chcesz użyć tego samego pinu danych mikrokontrolera do połączenia kilku wyjść urządzenia, ale może on wysyłać informacje tylko po jednym naraz ...
  • Wykonywanie funkcji logicznych itp.

Typy multiplekserów

W zależności od sposobu podziału transmisji są różne rodzaje multipleksery lub multipleksowanie:

  • Podział częstotliwości
  • Według podziału czasu
  • Według podziału kodu
  • Przez podział długość fali

Jak możesz sobie wyobrazić, są one kontrolowane przez częstotliwość, czas przez zegar, kod binarny i długość fali. Ale tutaj interesuje mnie tylko konwencjonalność ...

Oprócz typów, podobnie jak w przypadku demultipleksera, możesz go znaleźć za pomocą więcej lub mniej kanałów 2, 4, 8, 16 itd., W zależności od tego, czego potrzebujesz do projektów DIY.

Różnice z demultiplekserem

demultiplekser

W elektronice cyfrowej jest demultiplekser, układ kombinacyjny będący antagonistą multipleksera. W tym przypadku będzie tylko jedno wejście informacyjne, ale można je przesyłać przez różne jego wyjścia. Innymi słowy, w tym przypadku sygnały sterujące zdecydują, do którego wyjścia zostaną przesłane dane wejściowe.

Si podłączasz demultiplekser do wyjścia multipleksera, możesz mieć bardzo przydatny system do nauki działania obu urządzeń.

Gdzie kupić?

demultiplekser multipleksera

Te urządzenia są zwykle implementowane w dip chips bardzo prosta. Można je znaleźć w wielu różnych markach iz wieloma wejściami lub wyjściami w przypadku bycia demultiplekserem. Ponadto można je łatwo znaleźć w różnych specjalistycznych mediach lub sklepach internetowych. Jeśli jesteś zainteresowany zakupem w dobrej cenie, mogą to być dobre przykłady na rozpoczęcie projektów:

Radzę przeczytać arkusze danych od ich producentów, aby uzyskać jasny obraz ich pinout, ponieważ mogą się one różnić w zależności od zakupionego producenta lub typu.

cd74hc4067

Oprócz tego, jak widać, są też bardzo dobre moduły, które pozwalają na posiadanie obu urządzeń w jednym. Tak jest w przypadku znany CD74HC4067, mały moduł z technologią TTL, który może pomóc Ci pracować z jego 16 banałami w sposób dwukierunkowy, dzięki MUX / DEMUX. Oznacza to, że można go używać jako pewnego rodzaju inteligentnego przełącznika.

W ten sposób Twoje Arduino może odczytywać i zapisywać do 16 różnych urządzeń tylko z 5 pinami, 4 z nich służą do sterowania i dodatkowy do zbierania sygnału, który ma być odczytany lub zapisany zgodnie z wybranym kanałem.

Zaletą tego chipa jest to, że działa z sygnałami cyfrowymi i analogowymi, dzięki czemu jest kompatybilny z wieloma czujnikami pracującymi na układach analogowych i innych układach cyfrowych, a także z wieloma różnymi elementami elektronicznymi. Daje dużą wszechstronność. Dlatego znane są również jako ekspandery we / wy lub wzmacniacze wejściowe i wyjściowe ...

Możesz go nawet użyć komunikacja przez port szeregowy, magistrala I2C lub SPI, o którym mówiliśmy już przy innych okazjach.

Oczywiście, zanim zaczniesz z nim pracować, musisz się o tym upewnić spełniają napięcia i prądy który dopuszcza ten obwód, aby go nie uszkodzić. Na przykład w tym przypadku może zapewnić do 20 mA, a także napięcie od 2 do 6 V. Jeśli jednak chcesz pracować z większymi prądami możesz użyć przekaźnika lub przez tranzystor.

Integracja z Arduino

Arduino z Bluetooth

Forma mieć więcej wejść na płycie Arduino lub więcej wyjść, to użycie tych multiplekserów i demultiplekserów. Dzięki nim unikniesz konieczności kupowania droższej planszy, która ma więcej pinów, lub używania innych sztuczek, aby połączyć wszystko, czego potrzebujesz.

Na przykład możesz użyć pliku Moduł MUX i DEMUX aby móc mieć oba elementy w jednym elemencie, a następnie łatwo zintegrować je z projektem za pomocą Arduino. Dzięki CD74HC4067 możesz go bardzo łatwo podłączyć, więc musisz przestrzegać następujących zasad:

  • Vcc układu MUX / DEMUX należy podłączyć do Vcc Arduino lub 5V.
  • GND, masa, należy ją podłączyć do GND Arduino.
  • Piny oznaczone S0, S1, S2, S3 to te, które sterują aktywnym kanałem, z czterema cyfrowymi wejściami / wyjściami Arduino, takimi jak D8, D9, D10 i D11.
  • EN również włącza, więc działa jako multiplekser, można go podłączyć do GND Arduino.
  • A SIG to sygnał wyjściowy, który określi wybrany kanał. Można go podłączyć do Arduino lub dowolnego urządzenia, które musi odczytać wyjście. W tym przypadku podłączyłem go do A0, aby uzyskać wartości z samego Arduino.
  • Na drugim końcu modułu będziesz miał wejścia w tym przypadku, które są C0-C10, które możesz podłączyć do swoich urządzeń.

Po podłączeniu kod Arduino może być prosty. Plik Szkic Arduino IDE jako multiplekser Może to być następujące (ten kod tylko wyłączy i włączy odpowiednio ich kanały, ale możesz go zmodyfikować, aby utworzyć projekt, który chcesz):

const int muxSIG = A0;
const int muxS0 = 8;
const int muxS1 = 9;
const int muxS2 = 10;
const int muxS3 = 11;
 
int SetMuxChannel(byte channel)
{
   digitalWrite(muxS0, bitRead(channel, 0));
   digitalWrite(muxS1, bitRead(channel, 1));
   digitalWrite(muxS2, bitRead(channel, 2));
   digitalWrite(muxS3, bitRead(channel, 3));
}
 
void setup()
{
   pinMode(muxSIG, OUTPUT);
   pinMode(muxS0, OUTPUT);
   pinMode(muxS1, OUTPUT);
   pinMode(muxS2, OUTPUT);
   pinMode(muxS3, OUTPUT);
}
 
void loop()
{
   for (byte i = 0; i < 16; i++)
   {
      SetMuxChannel(i);
      digitalWrite(muxSIG, HIGH);
      delay(200);
      digitalWrite(muxSIG, LOW);
      delay(200);
   }
}

Jeśli chcesz używać go jako DEMUX, powinieneś tylko wziąć pod uwagę, że C0-C10 będzie wyjściami, a SIG będzie wejściem. Jeśli chcesz użyj go jako demultipleksera, kod zmieniłby się następująco:

onst int muxSIG = A0;
const int muxS0 = 8;
const int muxS1 = 9;
const int muxS2 = 10;
const int muxS3 = 11;
 
int SetMuxChannel(byte channel)
{
   digitalWrite(muxS0, bitRead(channel, 0));
   digitalWrite(muxS1, bitRead(channel, 1));
   digitalWrite(muxS2, bitRead(channel, 2));
   digitalWrite(muxS3, bitRead(channel, 3));
}
 
void setup()
{
   Serial.begin(9600);
   pinMode(muxS0, OUTPUT);
   pinMode(muxS1, OUTPUT);
   pinMode(muxS2, OUTPUT);
   pinMode(muxS3, OUTPUT);
}
 
void loop()
{
   for (byte i = 0; i < 16; i++)
   {
      SetMuxChannel(i);
      byte muxValue = analogRead(muxSIG);
 
      Serial.print(muxValue);
      Serial.print("\t");
   }
   Serial.println();
   delay(1000);
}

Pamiętaj, że możesz uzyskać więcej informacji za pomocą naszego darmowy kurs programowania Arduino.


Komentarz, zostaw swój

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.

  1.   Xaviera Ortiza powiedział

    Cześć, robię projekt, tak jak robię, aby użyć 74hc4067 do wejść 16 czujników przeszkód na podczerwień i że każdy czujnik włącza inne wyjście. Cóż, gdybym mógł to zrobić z arduino mega ale muszę użyć 50 czujników podczerwieni i że każdy włącza wyjście, czyli 50 wyjść, myślę o zastosowaniu kilku 744067 dla wejść czujników i tlc5940 dla wyjść, ale w jakim kodzie programistycznym jestem trochę zagubiony, z góry dziękuję za pomoc.