Multiplexer: semua yang anda perlu ketahui

cip multiplexer

Un multipleksor adalah litar gabungan yang mempunyai beberapa input dan satu output data. Dengan ini, adalah mungkin untuk memilih laluan dari salah satu pintu masuknya untuk menyalurkannya ke pintu keluarnya. Maksudnya, anda dapat memilih input mana yang akan mengambil data atau bit yang ada pada input dan mengabaikan input lainnya. Ini sangat biasa dalam elektronik apabila beberapa sambungan perlu berkongsi satu talian atau bas.

Maksudnya, dengan mengawal multiplexer anda boleh pilih input yang sesuai setiap masa. Apa yang memungkinkan bahawa walaupun hanya mempunyai satu sambungan, anda dapat bekerja dengan pelbagai peranti input pada masa yang sama tanpa mengganggu satu sama lain. Anda juga harus tahu bahawa demultiplexer biasanya digunakan bersamaan dengan multiplexer dalam banyak projek ...

Apa itu multiplexer?

multipleksor

Perkhidmatan gabungan ini dipanggil pengganda mereka biasanya tidak kompleks. Mereka terdiri dari beberapa gerbang logik bergantung pada jumlah input data mereka dan kawalan dapat meningkatkan kerumitan. Mereka biasanya merangkumi 2n input dan output tunggal, serta garis kawalan. Dan beberapa daripadanya dapat digunakan bersama untuk menambah jumlah tiket yang ada.

Ia dapat difahami sebagai seorang pemilih. Sebagai contoh, bayangkan anda mempunyai yang sangat sederhana dengan dua input, yang paling mudah yang boleh dibina. Litar itu akan mempunyai satu input dan output kawalan. Sekiranya input adalah A dan B, dengan input kawalan adalah mungkin untuk mengawal apakah A yang meneruskan nilainya ke output S atau jika B yang melakukannya. Untuk melakukan ini, anda hanya perlu mengubah nilai garis kawalan C. Contohnya, jika C = 0 ia akan menjadi A dan jika C = 1 ia akan menjadi B.

Seperti yang akan anda fahami, sekiranya terdapat lebih banyak input, lebih banyak lagi yang diperlukan mengawal input untuk pemilihan. Sebenarnya, multiplexer adalah jenis penyahkod khas, dengan isyarat pengaktifan untuk setiap pintu AND yang disertakan dan gerbang OR antara output dan gerbang AND. Dengan cara itu ia dapat dipilih dengan mudah.

Mengenai aplikasinya, anda boleh menggunakannya untuk pelbagai perkara:

  • Pemilih input untuk berkongsi satu bus atau talian apabila anda mempunyai banyak input.
  • Serializer sehingga mengambil nilai setiap inputnya mengikut urutan.
  • Untuk transmisi multiplexed menggunakan talian sambungan yang sama untuk pelbagai data dari pelbagai peranti. Contohnya, bayangkan bahawa anda ingin menggunakan pin data mikrokontroler yang sama untuk menyambungkan beberapa output peranti, tetapi ia hanya dapat menghantar maklumat satu demi satu ...
  • Lakukan fungsi logik, dll.

Jenis multiplexer

Bergantung pada cara penghantaran dibahagikan, ada pelbagai jenis multiplexer atau multiplexing:

  • Dengan pembahagian frekuensi
  • Dengan pembahagian masa
  • Dengan pembahagian kod
  • Dengan pembahagian panjang gelombang

Seperti yang anda bayangkan, ia dikawal mengikut frekuensi, mengikut masa mengikut jam, oleh kod binari, dan mengikut panjang gelombang. Tetapi di sini saya hanya berminat dengan ...

Sebagai tambahan kepada jenisnya, seperti demultiplexer, anda juga boleh mendapatkannya lebih kurang saluran 2, 4, 8, 16, dan lain-lain, bergantung pada apa yang anda perlukan untuk projek DIY anda.

Perbezaan dengan demultiplexer

demultiplexer

Dalam elektronik digital terdapat demultiplexer, litar gabungan yang merupakan antagonis dari multiplexer. Dalam hal ini hanya akan ada satu input informasi, tetapi dapat dikirimkan melalui berbagai outputnya. Dengan kata lain, dalam hal ini, ia akan diputuskan melalui isyarat kawalan ke mana output data input dipindahkan.

Si anda menyambungkan demultiplexer ke output multiplexer, anda boleh mempunyai sistem yang sangat berguna untuk mengetahui bagaimana kedua-dua peranti berfungsi.

Di manakah boleh dibeli?

multiplexer demultiplexer

Peranti ini biasanya dilaksanakan di celup kerepek sangat ringkas. Anda boleh mendapatkannya dalam pelbagai jenama dan dengan sejumlah input atau output sekiranya menjadi demultiplexer. Selain itu, mereka mudah didapati di pelbagai media khusus atau kedai dalam talian. Sekiranya anda berminat untuk membelinya dengan harga yang baik, ini boleh menjadi contoh yang baik untuk memulakan projek anda:

Saya menasihati anda untuk membaca lembaran data dari pengeluar mereka untuk mendapatkan idea yang jelas mengenai mereka pinout, kerana ia mungkin berbeza-beza bergantung pada pengeluar atau jenis yang telah anda beli.

cd74hc4067

Sebagai tambahan, seperti yang anda lihat, terdapat juga modul yang sangat baik yang membolehkan anda mempunyai kedua-dua peranti dalam satu. Ini adalah kes CD74HC4067 yang dikenali, modul kecil dengan teknologi TTL yang dapat membantu anda bekerja dengan 16 larangannya dengan cara dua arah, dengan memiliki MUX / DEMUX. Maksudnya, anda boleh menggunakannya sebagai sejenis suis pintar.

Oleh itu, Arduino anda dapat membaca dan menulis hingga 16 peranti berbeza dengan hanya 5 pin, 4 daripadanya digunakan untuk kawalan dan satu lagi untuk mengumpulkan isyarat yang ingin dibaca atau ditulis mengikut saluran yang dipilih.

Perkara yang baik mengenai cip ini ialah berfungsi dengan isyarat digital dan analog, menjadikannya serasi dengan banyak sensor yang berfungsi pada cip digital analog dan lain-lain, serta pelbagai elemen elektronik yang berbeza. Ia memberikan fleksibiliti yang hebat. Itulah sebabnya mereka juga dikenali sebagai pengembang I / O atau penguat input dan output ...

Anda juga boleh menggunakannya untuk komunikasi melalui port bersiri, bas I2C atau SPI, yang mana kita sudah bercakap pada kesempatan lain.

Sudah tentu, sebelum bekerja dengannya, anda mesti memastikannya memenuhi voltan dan arus yang mengakui litar ini supaya tidak merosakkannya. Sebagai contoh, dalam kes ini, ia dapat menyediakan hingga 20 mA, serta voltan 2 hingga 6v. Walau bagaimanapun, jika anda mahu bekerja dengan arus yang lebih tinggi anda boleh menggunakan geganti atau melalui transistor.

Integrasi dengan Arduino

Arduino dengan Bluetooth

Satu bentuk mempunyai lebih banyak input pada papan Arduino anda atau lebih banyak output, adalah menggunakan multiplexer dan demultiplexer ini. Dengan mereka, anda tidak akan perlu membeli papan dengan harga lebih tinggi yang mempunyai lebih banyak pin, atau menggunakan trik lain untuk menghubungkan semua yang anda perlukan.

Sebagai contoh, anda boleh menggunakan a Modul MUX dan DEMUX untuk dapat memiliki keduanya dalam satu elemen, dan kemudian mengintegrasikannya dengan cara mudah ke projek anda dengan Arduino. Dengan CD74HC4067 anda boleh menyambungkannya dengan mudah, jadi anda mesti mengikuti peraturan berikut:

  • Vcc cip MUX / DEMUX anda mesti menyambungkannya ke Vcc of Arduino atau 5V.
  • GND, tanah, anda mesti menghubungkannya ke GND Arduino.
  • Pin yang ditandai S0, S1, S2, S3 adalah pin yang mengawal saluran aktif, dengan empat Arduino digital I / O, seperti D8, D9, D10 dan D11.
  • EN juga diaktifkan, sehingga berfungsi sebagai multiplexer anda dapat menghubungkannya ke GND Arduino.
  • Dan SIG adalah isyarat output yang akan menentukan saluran yang dipilih. Ia boleh disambungkan ke Arduino atau ke mana-mana peranti yang perlu membaca outputnya. Dalam kes ini, saya telah menghubungkannya ke A0 untuk mendapatkan nilai dari Arduino itu sendiri.
  • Di hujung modul yang lain, anda akan mempunyai input dalam kes ini, iaitu C0-C10 yang boleh anda sambungkan ke peranti anda.

Setelah disambungkan, kod Arduino boleh menjadi mudah. The Lakaran Arduino IDE sebagai multiplexer Ini boleh menjadi yang berikut (kod ini hanya akan dimatikan dan di saluran mereka masing-masing, tetapi anda boleh mengubahnya untuk membuat projek yang anda mahukan):

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

Sekiranya anda ingin menggunakannya sebagai DEMUX, anda hanya perlu mempertimbangkan bahawa C0-C10 akan menjadi output dan SIG akan menjadi input. Sekiranya anda mahu gunakannya sebagai demultiplexer, kodnya akan berubah seperti ini:

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

Ingat bahawa anda boleh mendapatkan lebih banyak maklumat dengan bantuan dari kami kursus pengaturcaraan Arduino percuma.


Kandungan artikel mematuhi prinsip kami etika editorial. Untuk melaporkan ralat, klik di sini.

Komen, tinggalkan komen anda

Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   Xavier Ortiz kata

    Halo, saya sedang membuat projek, seperti yang saya gunakan untuk menggunakan 74hc4067 untuk input 16 sensor halangan inframerah, dan setiap sensor menghidupkan saya pada output yang berbeza. Sekiranya saya dapat melakukannya dengan arduino mega tetapi saya perlu menggunakan 50 sensor inframerah dan masing-masing menghidupkan output, iaitu 50 output, saya berfikir untuk menggunakan beberapa 744067 untuk input sensor dan tlc5940 untuk output, tetapi dalam apa kod pengaturcaraan saya agak hilang, terima kasih terlebih dahulu atas bantuan anda.