Мультиплексор: сиз билишиңиз керек болгон нерсенин бардыгы

мультиплексордук чип

Un мультиплексор бир нече киргизүү жана маалыматтардын бир чыгышы бар айкалыштыруу схемасы. Муну менен, анын чыгуусуна багытташ үчүн, анын бир гана кире беришинен өтмөктү тандап алууга болот. Башкача айтканда, сиз кайсы киргизүүдөн маалыматты же битти кабыл алууну тандап алсаңыз болот, ал эми калган киргизүүлөрдү көрмөксөнгө саласыз. Бул бир нече байланыш бир линияны же автобусту бөлүштүрүү керек болгондо, электроникада көп кездешет.

Башкача айтканда, мультиплексорду башкаруу менен ар дайым ылайыктуу киргизүү тандап. Бир гана байланышка ээ болгонуңузга карабастан, бир эле учурда бир нече киргизүү түзмөктөрү бири-бирине тоскоол болбой иштей аласыз. Ошондой эле, демультиплексор көбүнчө мультиплексор менен бирге көптөгөн долбоорлордо колдонуларын билишиңиз керек ...

Мультиплексор деген эмне?

мультиплексор

Деп аталган комбинациялык кызматтар мультиплексорлор алар адатта татаал эмес. Берилген маалыматтардын санына жараша, алар бир нече логикалык дарбазалардан турат жана башкаруу татаалдыгын жогорулатышы мүмкүн. Алар көбүнчө кирет 2n кириштер жана бир чыгым, ошондой эле башкаруу линиялары. Жана жеткиликтүү билеттердин санын көбөйтүү үчүн алардын бир канчасын айкалыштырып колдонсоңуз болот.

Деп түшүнсө болот селектор. Мисалы, сизде эң жөнөкөй, эки кириши бар, эң жөнөкөй курула турган адам бар деп элестетип көрүңүз. Бул схемада бир башкаруу киргизүү жана чыгуу болот. Эгерде кириштер А жана В болсо, башкаруунун кириши менен, анын маанисин S чыгарууга өткөрүп берген А болсо же аны аткарган В болсо, башкарууга болот. Бул үчүн, сиз С контролдоо сызыгынын маанисин гана өзгөртүңүз. Мисалы, C = 0 болсо А, ал C = 1 болсо В болот.

Сиз түшүнгөндөй, эгер дагы көп кириш болсо, дагы көп нерсе талап кылынат киргизүү киргизүү тандоо үчүн. Чындыгында, мультиплексор ар бир ЖАНА дарбаза үчүн күйгүзүү сигналын камтыган жана чыгыш менен ЖЕ дарбазалардын ортосундагы ЖЕ дарбазаны камтыган декодердин өзгөчө түрү. Ошентип аны оңой эле тандап алса болот.

Анын тиркемелерине келсек, аны колдонсоңуз болот көп нерселер үчүн:

  • Сизде бир нече киргизүү болгондо, бир автобусту же линияны бөлүшүү үчүн киргизгичти тандоо.
  • Ал ар бир киргизилген материалдын маанисин ирети менен алгыдай кылып, сериализатор.
  • Ар кандай шаймандардын ар кандай маалыматтары үчүн бирдей байланыш линияларын колдонуп мультиплекстүү берүү үчүн. Мисалы, бир нече түзмөктүн чыгышын туташтыруу үчүн микроконтроллердин бир эле маалымат төөнөгүчүн колдонгуңуз келгенин элестетип көрүңүз, бирок ал маалыматты бир эле жолу жөнөтө алат ...
  • Логикалык функцияларды аткаруу ж.б.

Мультиплексордун түрлөрү

Берүүнү бөлүштүрүү жолуна жараша, бар ар кандай түрлөрү мультиплексорлор же мультиплексорлор:

  • Жыштык бөлүнүшү боюнча
  • Убакытты бөлүштүрүү менен
  • Код бөлүштүрүү менен
  • Бөлүү боюнча толкун узундугу

Сиз элестеткендей, алар жыштык, убакыт боюнча саат, экилик код жана толкун узундугу менен башкарылат. Бирок бул жерде мени кадимки гана кызыктырат ...

Демультиплексордогу типтерден тышкары, аны менен таба аласыз аздыр-көптүр каналдар Сиздин DIY долбоорлоруңузга керектүү нерсеге жараша 2, 4, 8, 16 ж.б.

Демультиплексор менен айырмачылыктар

demultiplexer

Санарип электроникасында бар demultiplexer, мультиплексордун антагонисти болгон комбинациялык схема. Бул учурда бир гана маалымат киргизүү болот, бирок ал ар кандай натыйжалары аркылуу берилиши мүмкүн. Башка сөз менен айтканда, бул учурда башкаруу сигналдары киргизилген маалыматтардын кайсы чыгарылышка өткөрүлүп берилишин чечет.

Si сиз демультиплексорду мультиплексордун чыгуусуна туташтырасыз, эки түзмөктүн тең иштешин билүү үчүн сизде абдан пайдалуу система болушу мүмкүн.

Кайда сатып алса болот?

мультиплексордук демультиплексор

Бул шаймандар адатта ишке ашырылат чиптер абдан жөнөкөй. Аларды ар кандай бренддерде жана демультиплексор болгон учурда бир нече кириш же натыйжа менен таба аласыз. Мындан тышкары, алар ар кандай адистештирилген маалымат каражаттарында же интернет-дүкөндөрдө оңой эле табылат. Эгер сиз жакшы баага сатып алгыңыз келсе, анда долбоорлоруңуздан баштоо үчүн жакшы мисалдар болушу мүмкүн:

Окууга кеңеш берем маалымат барактары алардын өндүрүүчүлөрүнөн алардын так түшүнүгүн алуу кадап чыгып, анткени алар сиз сатып алган өндүрүүчүгө же типке жараша өзгөрүшү мүмкүн.

cd74hc4067

Мындан тышкары, өзүңүз көрүп тургандай, эки шайманды бирден орнотууга мүмкүнчүлүк берген абдан жакшы модулдар бар. Бул иш белгилүү CD74HC4067, TTL технологиясы бар чакан модул, анын 16 баналы менен MUX / DEMUX ээ болуп, эки тараптуу иштөөгө жардам берет. Башкача айтканда, аны акылдуу которгучтун бир түрү катары колдонсоңуз болот.

Ошентип, сиздин Arduino 1ге чейин окуп жана жаза алат6 ар кандай шаймандар бар болгону 5 төөнөгүч менен, анын 4 көзөмөлдөө үчүн колдонулган жана кошумча тандалган канал боюнча окууга же жазууга арналган сигналды чогултуу үчүн.

Бул чиптин жакшы жагы ушул санариптик жана аналогдук сигналдар менен иштейт, ошондуктан ал аналогдук жана башка санарип чиптеринде иштеген көптөгөн сенсорлорго, ошондой эле ар кандай электрондук элементтерге шайкеш келет. Бул чоң ар тараптуулукту берет. Ошондуктан алар I / O кеңейтүүчү же киргизүү жана чыгаруу күчөткүчтөрү деп да белгилүү ...

Ал тургай, аны колдонсоңуз болот сериялык порт аркылуу байланыш, I2C автобус же башка учурларда буга чейин айткан SPI.

Албетте, аны менен иштешүүдөн мурун, буга ынануу керек чыңалууларды жана токторду канааттандырат бул схемага зыян келтирбөө үчүн аны моюнга алат. Мисалы, бул учурда ал 20 мА чейин, ошондой эле 2ден 6 в чейин чыңалууну камсыздай алат. Бирок, сиз жогорку агымдар менен иштегиси келсе сиз эстафетаны колдонсоңуз болот же транзистор аркылуу.

Arduino менен интеграциялоо

Bluetooth менен Arduino

Бир түрү Arduino тактаңызда көбүрөөк кирүү же андан көп натыйжалар бар, бул мультиплексорлорду жана демультиплексорлорду колдонуу. Алардын жардамы менен сиз кымбат баалуу тактай сатып алганыңыздан алыс болосуз, же керектүү нерселердин бардыгын байланыштыруу үчүн башка айла-амалдарды колдонуудан алыс болосуз.

Мисалы, сиз MUX жана DEMUX модулу экөө тең бир элементте болуп, андан кийин Arduino менен долбоорго жөнөкөй жол менен бириктирүү. CD74HC4067 аркылуу аны оңой туташтыра аласыз, андыктан төмөнкү эрежелерди сактаңыз:

  • Mcc / DEMUX микросхемасынын Vcc, аны Vcc of Arduino же 5V менен туташтырышыңыз керек.
  • GND, жер, аны Arduino GND менен туташтыруу керек.
  • S0, S1, S2, S3 деп белгиленген төөнөгүчтөр активдүү каналды башкарат, төрт Arduino санариптик I / O, мисалы D8, D9, D10 жана D11.
  • EN мультиплексор катары иштеши үчүн, аны Arduino GND менен туташтыра аласыз.
  • Жана SIG - бул тандалган каналды аныктай турган чыгыш сигналы. Ал Arduino менен же чыгарманы окушу керек болгон ар кандай шайман менен туташтырылышы мүмкүн. Бул учурда мен Arduino өзүнөн чоңдуктарды алуу үчүн аны A0 туташтырдым.
  • Модулдун экинчи четинде, сизде C0-C10 түзмөгүңүзгө туташтыра турган кириштер болот.

Туташкандан кийин, Arduino коду жөнөкөй болушу мүмкүн. The Arduino IDE эскизи мультиплексор катары Бул төмөнкүлөр болушу мүмкүн (бул код өз каналдарында гана өчүрүлөт, бирок сиз каалаган долбоорду ишке ашыруу үчүн, аны өзгөртө аласыз):

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

Эгер сиз аны DEMUX катары колдонууну кааласаңыз, анда C0-C10 чыгышы, ал эми SIG кириши болот деп эсептешиңиз керек. Эгер сиз кааласаңыз аны демультиплексор катары колдонуңуз, код мындай өзгөрөт:

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

Көбүрөөк маалыматты биздин жардамыбыз менен ала турганыңызды унутпаңыз акысыз Arduino программалоо курсу.


Макаланын мазмуну биздин принциптерге карманат редакциялык этика. Ката жөнүндө кабарлоо үчүн чыкылдатыңыз бул жерде.

Комментарий, өзүңүз калтырыңыз

Комментарий калтырыңыз

Сиздин электрондук почта дареги жарыяланбайт. Милдеттүү талаалар менен белгиленет *

*

*

  1. Маалыматтар үчүн жооптуу: Мигель Анхель Гатан
  2. Маалыматтын максаты: СПАМды көзөмөлдөө, комментарийлерди башкаруу.
  3. Мыйзамдуулук: Сиздин макулдугуңуз
  4. Маалыматтарды берүү: Маалыматтар үчүнчү жактарга юридикалык милдеттенмелерден тышкары билдирилбейт.
  5. Маалыматтарды сактоо: Occentus Networks (ЕС) тарабынан уюштурулган маалыматтар базасы
  6. Укуктар: Каалаган убакта маалыматыңызды чектеп, калыбына келтирип жана жок кыла аласыз.

  1.   Ксавье Ортиз ал мындай деди:

    Саламатсыздарбы, мен дагы бир долбоор иштеп жатам, 74hc4067 16 инфракызыл тоскоолдуктар сенсорунун киргизүү үчүн, жана ар бир сенсор мен үчүн башкача чыгышы керек. Эгер мен муну arduino mega менен жасай алсам, бирок мен 50 инфракызыл датчикти колдонушум керек жана алардын ар бири чыгууну, башкача айтканда, 50 чыгууну күйгүзүшү керек болсо, мен сенсорлор үчүн бир нече 744067, ал эми чыгуулар үчүн tlc5940 колдонгум келет, бирок программалоо коду эмнеден улам бир аз адашып калдым, жардамыңыз үчүн алдын ала рахмат.