Multiplexer: vše, co potřebujete vědět

multiplexní čip

Un multiplexor je kombinační obvod, který má několik vstupů a jeden datový výstup. Tímto způsobem je možné zvolit průchod pouze jednoho z jeho vchodů, aby byl směrován k jeho východu. To znamená, že si můžete vybrat, ze kterého vstupu odeberete data nebo bit, který je na vstupu, a ostatní vstupy ignorovat. To je v elektronice velmi běžné, když několik připojení potřebuje sdílet jednu linku nebo sběrnici.

To znamená, že můžete ovládat multiplexer vždy vyberte příslušný vstup. Co umožňuje, že i když máte pouze jedno připojení, můžete pracovat s více vstupními zařízeními současně, aniž by docházelo k jejich vzájemnému rušení. Měli byste také vědět, že demultiplexor se obecně používá ve spojení s multiplexerem v mnoha projektech ...

Co je to multiplexer?

multiplexor

Tyto kombinované služby tzv multiplexery obvykle nejsou složité. Jsou tvořeny několika logickými hradly v závislosti na jejich počtu datových vstupů a řízení by mohlo zvýšit složitost. Obvykle zahrnují 2n vstupy a jeden výstup, stejně jako řídicí linky. Několik z nich můžete použít v kombinaci ke zvýšení počtu dostupných lístků.

Lze to chápat jako volič. Představte si například, že máte velmi jednoduchý jeden se dvěma vstupy, nejjednodušší, který lze vytvořit. Ten obvod bude mít jeden řídicí vstup a výstup. Pokud jsou vstupy A a B, s řídicím vstupem je možné ovládat, zda je to A, kdo předává svou hodnotu na výstup S, nebo je to B, kdo to dělá. Chcete-li to provést, musíte pouze změnit hodnotu řídicího řádku C. Pokud je například C = 0, bude to A a pokud C = 1, bude to B.

Jak pochopíte, pokud bude více vstupů, bude zapotřebí více řídicí vstupy pro výběr. Ve skutečnosti je multiplexer speciální typ dekodéru se signálem povolení pro každou zahrnutou bránu AND a bránu OR mezi výstupem a branami AND. Tímto způsobem lze snadno vybrat.

Pokud jde o jeho aplikace, můžete je použít pro spoustu věcí:

  • Selektor vstupu pro sdílení jedné sběrnice nebo linky, pokud máte více vstupů.
  • Serializátor tak, aby převzal hodnotu každého ze svých vstupů v pořádku.
  • Pro multiplexovaný přenos pomocí stejných spojovacích vedení pro různá data z různých zařízení. Představte si například, že chcete použít stejný datový kolík mikrokontroléru k připojení několika výstupů zařízení, ale že může odesílat informace pouze jeden po druhém ...
  • Provádět logické funkce atd.

Typy multiplexerů

V závislosti na způsobu rozdělení přenosu existují různé typy multiplexery nebo multiplexování:

  • Dělením frekvence
  • Dělením času
  • Dělením kódu
  • Dělením na vlnová délka

Jak si dokážete představit, jsou ovládány frekvencí, časem hodinami, binárním kódem a vlnovou délkou. Ale tady mě zajímá pouze konvenční ...

Kromě typů, stejně jako u demultiplexeru, jej najdete u více či méně kanálů 2, 4, 8, 16 atd., V závislosti na tom, co pro své kutilské projekty potřebujete.

Rozdíly s demultiplexorem

demultiplexor

V digitální elektronice existuje demultiplexor, kombinační obvod, který je antagonistou multiplexeru. V tomto případě bude existovat pouze jeden informační vstup, ale lze jej přenášet prostřednictvím jeho různých výstupů. Jinými slovy, v tomto případě řídicí signály rozhodnou, na jaký výstup se přenesou vstupní data.

Si připojíte demultiplexor k výstupu multiplexeru, můžete mít velmi užitečný systém pro učení, jak obě zařízení fungují.

Kde koupit?

multiplexer demultiplexer

Tato zařízení jsou obvykle implementována v dip čipy velmi jednoduché. Najdete je v široké škále značek a s řadou vstupů nebo výstupů pro případ, že budete demultiplexorem. Kromě toho se snadno nacházejí v různých specializovaných médiích nebo online obchodech. Pokud máte zájem o koupi jednoho za dobrou cenu, mohou to být dobré příklady pro zahájení vašich projektů:

Doporučuji vám číst datové listy od jejich výrobců, aby získali jasnou představu o svých výrobcích pinů, protože se mohou lišit v závislosti na výrobci nebo typu, který jste zakoupili.

cd74hc4067

Kromě toho, jak vidíte, existují také velmi dobré moduly, které vám umožní mít obě zařízení v jednom. To je případ známý CD74HC4067, malý modul s technologií TTL, který vám může pomoci pracovat se svými 16 banály obousměrně tím, že bude mít MUX / DEMUX. To znamená, že jej můžete použít jako druh inteligentního přepínače.

Vaše Arduino tedy může číst a zapisovat až 16 různých zařízení pouze s 5 piny, 4 z nich pro ovládání a další pro sběr signálu, který je určen ke čtení nebo zápisu podle vybraného kanálu.

Dobrá věc na tomto čipu je, že pracuje s digitálními i analogovými signály, takže je kompatibilní s mnoha senzory, které pracují na analogových a jiných digitálních čipech, stejně jako s mnoha různými elektronickými prvky. Poskytuje velkou univerzálnost. Proto jsou také známé jako I / O expandéry nebo vstupní a výstupní zesilovače ...

Můžete jej dokonce použít pro komunikace přes sériový port, sběrnici I2C nebo SPI, o kterém jsme již mluvili při jiných příležitostech.

Samozřejmě, než s ním budete spolupracovat, musíte se ujistit, že splňovat napětí a proudy který připouští tento obvod, aby jej nepoškodil. Například v tomto případě může poskytnout až 20 mA a napětí 2 až 6 V. Pokud však chcete pracovat s vyššími proudy můžete použít relé nebo přes tranzistor.

Integrace s Arduino

Arduino s Bluetooth

Jeden způsob mít více vstupů na desce Arduino nebo více výstupů, je použít tyto multiplexery a demultiplexory. S nimi se vyhnete tomu, že si budete muset koupit dražší desku, která bude mít více pinů, nebo budete muset použít jiné triky, abyste spojili vše, co potřebujete.

Můžete například použít a Modul MUX a DEMUX mít možnost mít obojí v jednom prvku a poté jej jednoduchým způsobem integrovat do svého projektu s Arduino. S CD74HC4067 jej můžete připojit velmi snadno, takže musíte dodržovat tato pravidla:

  • Vcc čipu MUX / DEMUX jej musíte připojit k Vcc Arduino nebo 5V.
  • GND, zem, musíte ji připojit k GND Arduina.
  • Piny označené S0, S1, S2, S3 ovládají aktivní kanál se čtyřmi digitálními I / O Arduino, jako jsou D8, D9, D10 a D11.
  • EN také umožňuje, aby fungoval jako multiplexer, můžete jej připojit k GND Arduina.
  • A SIG je výstupní signál, který určí vybraný kanál. Může být připojen k Arduinu nebo k jakémukoli zařízení, které potřebuje číst výstup. V tomto případě jsem jej připojil k A0, abych získal hodnoty ze samotného Arduina.
  • Na druhém konci modulu budete mít v tomto případě vstupy, kterými jsou C0-C10, které můžete připojit k vašim zařízením.

Po připojení může být kód Arduino jednoduchý. The Arduino IDE skica jako multiplexer Může to být následující (tento kód se pouze vypne a na jejich kanálech, ale můžete jej upravit tak, aby vytvořil požadovaný projekt):

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);
   }
}

Pokud jej chcete použít jako DEMUX, měli byste pouze vzít v úvahu, že C0-C10 budou výstupy a SIG bude vstup. Pokud chcete použijte jej jako demultiplexer, kód by se změnil takto:

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);
}

Pamatujte, že více informací získáte pomocí našeho bezplatný kurz programování Arduino.


Komentář, nechte svůj

Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   Xavier Ortiz řekl

    Dobrý den, dělám projekt, to, co dělám, je použít 74hc4067 pro vstupy 16 infračervených senzorů překážek a že každý senzor pro mě osvětluje jiný výstup. Pokud bych to mohl udělat s arduino mega, ale musím použít 50 infračervených senzorů a že každý zapne výstup, tedy 50 výstupů, uvažuji o použití několika 744067 pro vstupy senzorů a tlc5940 pro výstupy, ale v tom, co je programovací kód, jsem trochu ztracen, díky předem za vaši pomoc.