Komunikasi Mikrokontroller [Part 1]

Komunikasi Antar Mikrokontroller merupakan salah satu hal wajib yang harus diketahui perancang hardware dan software. Tanpa mengetahui hal ini perancang akan kesulitan untuk membuat perangkat kompleks yang modular / terpisah-pisah dan nol error (efisiensi kerja 90 %).
Sebenarnya komunikasi antar mikrokontontoller tidak hanya berlaku untuk sesama MCU (Microcontroller Unit) tetapi bisa juga antar Mikrokontroller-PC, Mikrokontroller -Mikrokontroller yang berbeda tipe  (misal (Atmel)AVR dan PIC), Mikrokontroller Mikrokontroller -IC Digital, Mikrokontroller -Barcode, dll.

Sebelum jauh pada perancangan komunikasi data maka sebaiknya diketahui dulu konsep dan cara kerja Komunikasi Antar Mikrokontroller atau komunikasi antar perangkat sehingga bisa dirancang komunikasi seperti apapun yang diinginkan. Oleh sebab itu saya mencoba untuk membagi-bagi Komunikasi Antar Mikrokontroller menjadi beberapa bagian.


Pembagian Komunikasi
Komunikasi data ada 2 cara yaitu komunikasi data secara parallel dan komunikasi data secara serial. Komunikasi data secara parallel yaitu Komunikasi banyak data (64 bit, 32 bit, 16 bit, 8 bit, 4 bit) yang dilakukan secara langsung dalam waktu bersamaan melalui banyak jalur (kabel, PCB, fiber optical, dll). Komunikasi data secara serial yaitu komunikasi 1 buah data (1 bit) pada satu waktu.
Tidak banyak yang bisa dibahas untuk komunikasi data secara parallel sedangkan komunikasi secara serial telah mengalami berbagai perkembangan dan telah banyak jenisnya.
Komunikasi Antar Mikrokontroller atau komunikasi antar perangkat dapat sudah banyak jenis-nya seperti : Komunikasi parallel, UART (Universal Asynchronous Receiver Transmitter), USRT (Universal Synchronous Reciever Transmitter), I2C (Inter-Integrated Circuit), USB, TWI (Two Wire Interface), 1 Wire Interface, SPI (Serial Peripheral Interface), dll..
(apa lagi yak..?).
Untuk RS232 dan RS485 hanyalah level tegangan saja yaitu konversi level tegangan TTL (0 Vdc - 5Vdc) menjadi level RS232 (±25 Vdc) maupun RS485 (Differensial ±25 Vdc) dan bukannya jenis komunikasi.

Komunikasi  Parallel
Paralel 32 bit, 16 bit, 8 bit, ataupun 4 bit, baik digunakan jika membutuhkan kecepatan transfer data yang tinggi seperti pada motherboard komputer karena membutuhkan kecepatan tinggi. Contoh lain seperti pada LCD karakter yang dapat diprogram untuk komunikasi paralel 8 bit maupun 4 bit.

Tentang Interface parallel :
  • Kecepatan transfer data dengan kecepatan maksimum.
  • Coding mudah dan sederhana.
  • Menggunakan jalur (wire) yang tidak sedikit (banyak).
  • Selain pin data dibutuhkan pin tambahan sebagai Handshake seperti : pin CS (Chip Select, RD (Read), WR (Write), ACK (acknowledgment ), dll.
  • Perancangan PCB menjadi rumit dan lebih besar.
  • Tidak efektif digunakan untuk komunikasi jarak jauh karena bisa mengalami penurunan level tegangan sehingga merusak data dan menggunakan kabel yang (sangat) banyak.
Serial Sinkron
Seperti pada USRT (pada AVR), TWI, SPI, I2C.
SPI dan TWI memiliki 3 buah pin untuk berkomunikasi yaitu SCK (Serial Clock), SDI (Serial Data Input), dan SDO (Serial Data Output) .
SDI dan SDO bisa juga disebut MOSI (Master Output Slave Input) dan MISO (Master Input Slave Output).
SPI atau TWI biasanya memiliki pin tambahan seperti CS (Chip Select) atau CE (Chip Enable) atau SS (Slave Select) yang akan berguna untuk mengaktifkan chip yang akan diajak "berkomunikasi".
I2C memiliki 2 buah pin untuk berkomunikasi yaitu SCK (serial Clock) dan SDA (Serial Data). Berbeda dengan TWI atau SPI, I2C tidak membutuhkan pin ke-3 untuk mengaktifkan chip yang akan diajak "berkomunikasi", Jika banyak perangkat I2C yang terhubung maka setiap chip I2C tersebut memiliki alamat yang berbeda-beda dan unik (unique Address) seperti halnya sidik jari manusia.
Chip yang di "panggil" oleh master-nya yang hanya akan menjawab dan berkomunikasi sedangkan yang lainnya akan berrada pada kondisi
tri-state (High Impedance).

Tentang Interface Serial Sinkron :
  • Menggunakan Wire yang sedikit dibandingkan parallel.
  • Perancangan PCB sederhana dan mudah.
  • Kecepatan transfer data tidak secepat interface parallel tetapi lebih cepat dibandingkan UART (Serial Asinkron).
  • Sangat mudah digunakan untuk komunikasi multi perangkat dibanding UART karena pin CS atau alamat unik.
  • Komunikasi Full Duplex (mengirim dan menerima data bersamaan).
  • Coding cukup sulit antar Master dan Slave harus sejalan.
  • Kecepatan Clock antar Master maupun Slave minimal sama, Clock master tidak boleh lebih cepat dari Clock Slave karena Sinyal SCK dikendalikan oleh Master sehingga Clock Slave bersifat fleksibel sedangkan Clock Master tidak fleksibel.

Serial Asinkron
Komunikasi data serial asinkron (UART) merupakan jenis komunikasi yang umum, banyak serta mudah digunakan dibandingkan dengan jenis komunikasi lainnya. Mulai banyak modul yang siap pakai menggunakan jenis komunikasi ini agar user (pengguna) bisa menggunakan modulnya dengan mudah.
UART membutuhkan hanya 2 buah jalur interface Rx (receiver / penerima) dan Tx (Transmitter / pemancar), tanpa memperdulikan Clock Master-Slave karena memilik Baudrate yang standar dan umum, serta Fullduplex (Menerima dan memberikan data secara bersamaan).
Jika digunakan untuk komunikasi banyak perangkat maka setiap perangkat (Slave) diberikan alamat unik sendiri (unique Address) dengan protokol tertentu yang ditentukan secara program oleh programmer.

Tentang Interface Serial Asinkron :
  • Menggunakan hanya 2 jalur interface Rx dan Tx.
  • Menggunakan kecepatan transfer data yang umum dan standard.
  • Tidak terpengaruh besar kecilnya Clock Master-Slave karena menggunakan baudrate.
  • Sangat mudah untuk Coding dan komunikasi data.
  • Sangat baik digunakan untuk komunikasi jarak jauh (dengan konverter).
  • Full Duplex (mengirim dan menerima data bersamaan).
  • Karena menggunakan Baudrate maka kecepatan komunikasi data tidak maksimal bahkan relatif lambat dibanding yang lainnya.
One Wire Interface
Komunikasi data dengan interface 1 jalur saja. Sangat sederhana tetapi protokol yang cukup rumit. Memang jenis ini masih belum umum karena cukup rumit pada protokol komunikasi datanya.

Tentang 1-Wire Interface :
  • Hanya menggunakan 1 buah jalur untuk komunikasi data sehingga sangat sederhana.
  • Merupakan bit-oriented atau berorientasi bit dengan bit LSB yang pertama kali dikirim.
  • Master dan Slave dapat saling mengirim maupun menerima tetapi dalam satu waktu yang berbeda (Half Duplex).
  • Kecepatan transfer data yang rendah dibandingkan dengan jenis interface lainnya.
  • Sekali berkomunikasi maka tidak boleh di-interupsi.
  • Coding yang rumit dan menggunakan delay time yang akurat dengan error yang minimal.
  • Protokol Komunikasi yang cukup rumit.

Semoga Artikel ini bermanfaat untuk blog walker.... 

Sumber (www.PayzTRonics.blogspot.com)

Post a Comment

0 Comments