Multiplekseri: gjithçka që duhet të dini

çip multiplekseri

Un multipleksor është një qark kombinues që ka disa hyrje dhe një dalje të vetme të të dhënave. Me këtë, është e mundur të zgjidhni kalimin e vetëm njërës prej hyrjeve të saj për ta kanalizuar në daljen e saj. Kjo do të thotë, ju mund të zgjidhni nga cili input do të merrni të dhënat ose bitin që është në hyrje dhe të injoroni pjesën tjetër të inputeve. Kjo është shumë e zakonshme në elektronikë kur disa lidhje duhet të ndajnë një linjë ose autobus të vetëm.

Kjo është, duke kontrolluar multiplekserin që mundeni zgjidhni hyrjen e duhur në çdo kohë. Çfarë bën të mundur që pavarësisht se keni vetëm një lidhje, ju mund të punoni me pajisje të shumta hyrëse në të njëjtën kohë pa ndërhyrë ato me njëra-tjetrën. Gjithashtu, duhet të dini se një demultiplekser zakonisht përdoret së bashku me multiplekserin në shumë projekte ...

Çfarë është multiplekseri?

multipleksor

Këto shërbime kombinuese quhen multipleksuesit ato zakonisht nuk janë komplekse. Ato përbëhen nga disa porta logjike në varësi të sasisë së tyre të të dhënave dhe kontrolli mund të rrisë kompleksitetin. Ato zakonisht përfshijnë 2n hyrjet dhe një dalje të vetme, si dhe linjat e kontrollit. Dhe disa prej tyre mund të përdoren në kombinim për të rritur atë numër të biletave në dispozicion.

Mund të kuptohet si një përzgjedhës. Për shembull, imagjinoni se keni një shumë të thjeshtë me dy hyrje, më të thjeshtë që mund të ndërtohet. Ky qark do të ketë një hyrje dhe dalje të vetme të kontrollit. Nëse hyrjet janë A dhe B, me hyrjen e kontrollit mund të kontrolloni nëse është A që kalon vlerën e saj në daljen S ose nëse është B që e bën atë. Për ta bërë këtë, duhet të ndryshoni vetëm vlerën e vijës së kontrollit C. Për shembull, nëse C = 0 do të jetë A dhe nëse C = 1 do të jetë B.

Siç do ta kuptoni, nëse ka më shumë të dhëna, do të nevojiten më shumë inputet e kontrollit për përzgjedhje. Në fakt, multiplekseri është një lloj i veçantë dekoderi, me një sinjal të mundësuar për secilën portë AND të përfshirë dhe një portë OR midis daljes dhe portave AND. Në atë mënyrë mund të zgjidhet lehtësisht.

Sa i përket aplikacioneve të tij, mund ta përdorni për një mori gjërash:

  • Zgjedhësi i hyrjes për të ndarë një autobus ose linjë të vetme kur keni shumë hyrje.
  • Serializer në mënyrë që të marrë vlerën e secilit prej inputeve të tij në rregull.
  • Për transmetimin e multipleksuar duke përdorur linjat e njëjta të lidhjes për të dhëna të ndryshme nga pajisje të ndryshme. Për shembull, imagjinoni që dëshironi të përdorni të njëjtën pin të dhënash të një mikrokontrolluesi për të lidhur disa dalje të pajisjes, por që mund të dërgojë informacione vetëm një në një kohë ...
  • Kryen funksione logjike, etj.

Llojet e multiplekserit

Në varësi të mënyrës së ndarjes së transmetimit, ekzistojnë lloje te ndryshme multipleksuesit ose multipleksimi:

  • Sipas ndarjes së frekuencës
  • Nga ndarja e kohës
  • Sipas ndarjes së kodit
  • Me ndarjen e gjatësia e valës

Siç mund ta imagjinoni, ato kontrollohen nga frekuenca, nga koha nga një orë, nga kodi binar dhe nga gjatësia e valës. Por këtu unë jam i interesuar vetëm në konvencionale ...

Përveç llojeve, si me demultiplekserin, mund ta gjeni me pak a shumë kanale 2, 4, 8, 16, etj., Në varësi të asaj që ju nevojitet për projektet tuaja DIY.

Dallimet me një demultiplekser

demultiplekser

Në elektronikën dixhitale ekziston demultiplekser, një qark kombinues që është antagonisti i multiplekserit. Në këtë rast do të ketë vetëm një informacion të dhënë, por ai mund të transmetohet përmes rezultateve të tij të ndryshme. Me fjalë të tjera, në këtë rast, sinjalet e kontrollit do të vendosin se në cilin dalje transferohen të dhënat hyrëse.

Si ju lidhni një demultiplekser me daljen e një multiplekseri, ju mund të keni një sistem shumë të dobishëm për të mësuar se si funksionojnë të dy pajisjet.

Ku te blej?

multiplekser demultiplekser

Këto pajisje zbatohen normalisht në patate të skuqura dip shume e thjeshte. Mund t'i gjeni në një larmi markash dhe me një numër hyrjesh ose daljesh në rast se jeni demultiplekser. Përveç kësaj, ato gjenden lehtësisht në media të ndryshme të specializuara ose dyqane në internet. Nëse jeni të interesuar të blini një me një çmim të mirë, këto mund të jenë shembuj të mirë për të filluar me projektet tuaja:

Ju këshilloj të lexoni fletët e të dhënave nga prodhuesit e tyre për të marrë një ide të qartë të tyre fiksoj, pasi ato mund të ndryshojnë në varësi të prodhuesit ose llojit që keni blerë.

Cd74hc4067

Përveç kësaj, siç mund ta shihni, ka edhe module shumë të mira që ju lejojnë të keni të dy pajisjet në një. Isshtë rasti i i njohur CD74HC4067, një modul i vogël me teknologji TTL që mund t'ju ndihmojë të punoni me 16 banalet e tij në një mënyrë dydrejtimëshe, duke pasur MUX / DEMUX. Kjo është, ju mund ta përdorni atë si një lloj ndërprerësi inteligjent.

Kështu, Arduino juaj mund të lexojë dhe të shkruajë deri në 16 pajisje të ndryshme me vetëm 5 kunja, 4 prej tyre përdoren për kontroll dhe një shtesë për të mbledhur sinjalin që synon të lexohet ose shkruhet sipas kanalit të zgjedhur.

E mira e këtij chip është se punon me sinjale dixhitale dhe analoge, kështu që është i pajtueshëm me shumë sensorë që punojnë në çipa analoge dhe të tjera dixhitale, si dhe me një mori elementesh të ndryshëm elektronikë. Jep shkathtësi të madhe. Kjo është arsyeja pse ato njihen gjithashtu si zgjerues I / O ose përforcues të hyrjes dhe daljes ...

Ju mund ta përdorni edhe për të komunikimet përmes portit serik, autobusi I2C ose SPI, për të cilën ne kemi folur në raste të tjera.

Sigurisht, para se të punoni me të, duhet të siguroheni që plotësojnë tensionet dhe rrymat që pranon këtë qark në mënyrë që të mos dëmtojë atë. Për shembull, në këtë rast mund të sigurojë deri në 20 mA, si dhe një tension prej 2 deri në 6v. Sidoqoftë, nëse dëshironi të punoni me rryma më të larta mund të përdorni një stafetë ose përmes një tranzitori.

Integrimi me Arduino

Arduino me Bluetooth

Një formë e keni më shumë hyrje në bordin tuaj Arduino ose më shumë rezultate, është përdorimi i këtyre multiplekserëve dhe demultipleksuesve. Me to do të shmangni nevojën për të blerë një tabelë me çmime më të larta që ka më shumë kunja, ose do të duhet të përdorni truket e tjera për të lidhur gjithçka që ju nevojitet.

Për shembull, mund të përdorni një Moduli MUX dhe DEMUX të jeni në gjendje t'i keni të dyja në një element të vetëm, dhe pastaj t'i integroni në një mënyrë të thjeshtë në projektin tuaj me Arduino. Me CD74HC4067 mund ta lidhni atë shumë lehtë, kështu që duhet të ndiqni këto rregulla:

  • Vcc e çipit MUX / DEMUX duhet ta lidhni atë me Vcc të Arduino ose 5V.
  • GND, toka, duhet ta lidhni me GND të Arduino.
  • Kunjat e shënuara S0, S1, S2, S3 janë ato që kontrollojnë kanalin aktiv, me katër I / O dixhitale Arduino, të tilla si D8, D9, D10 dhe D11.
  • EN gjithashtu mundëson, në mënyrë që të funksionojë si multiplekser që mund ta lidhni me GND të Arduino.
  • Dhe SIG është sinjali i daljes që do të përcaktojë kanalin e zgjedhur. Mund të lidhet me Arduino ose me ndonjë pajisje që ka nevojë për të lexuar daljen. Në këtë rast unë e kam lidhur atë me A0 për të marrë vlerat nga vetë Arduino.
  • Në skajin tjetër të modulit do të keni hyrjet në këtë rast, të cilat janë C0-C10 që mund t'i lidhni me pajisjet tuaja.

Pasi të lidhet, kodi Arduino mund të jetë i thjeshtë. Skica Arduino IDE si multiplekser Mund të jetë më poshtë (ky kod do të fiket dhe do të kalojë në kanalet e tyre përkatësisht, por ju mund ta modifikoni atë për të bërë projektin që dëshironi):

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

Nëse dëshironi ta përdorni si DEMUX, duhet të konsideroni vetëm se C0-C10 do të ishin rezultatet dhe SIG do të ishte hyrja. Në rast se dëshironi e përdorin atë si një demultiplekser, kodi do të ndryshonte kështu:

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

Mos harroni se ju mund të merrni më shumë informacion me ndihmën e tonë kurs falas i programimit Arduino.


Një koment, lëre tuajën

Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   Xavier Ortiz dijo

    Përshëndetje, unë jam duke bërë një projekt, gjëja që bëj për të përdorur 74hc4067 për hyrjet e 16 sensorëve të pengesave infra të kuqe, dhe se secili sensor më kthen në një dalje të ndryshme. Epo, nëse mund ta bëja me arduino mega por kam nevojë të përdor 50 sensorë infra të kuqe dhe secili të ndezë një dalje, domethënë 50 dalje, po mendoj të përdor disa 744067 për hyrjet e sensorit dhe tlc5940 për rezultatet por në cilin është kodi i programimit jam pak i humbur, faleminderit paraprakisht për ndihmën tuaj.