Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Teknologi Industri

SPI, I2C, UART: Protokol Komunikasi dan Aplikasinya

Pengembangan mikrokontroler adalah proses kardinal dalam perakitan elektronik. Namun, masukan protokol serial dan antarmuka komunikasi memfasilitasi upaya ini. Dalam artikel ini, kami bermaksud untuk secara menyeluruh menjelajahi protokol komunikasi serial seperti antarmuka SPI I2C UART dan UART. Kami akan menganalisis fitur, kelebihan, kekurangan, dan contoh protokol serial.

1. Antarmuka UART

Apa itu UART?

SPI, I2C, UART: Protokol Komunikasi dan Aplikasinya

Gambar 1: Protokol UART pada Arduino

Universal Asynchronous Reception and Transmission (UART) adalah protokol komunikasi serial yang memfasilitasi komunikasi host dengan perangkat tambahan. Utama, memungkinkan transmisi data serial. Selain itu, mampu komunikasi asinkron dan transmisi dua arah.

Protokol sederhana ini juga memiliki dua garis data: satu untuk transmisi (Tx) dan satu lagi untuk penerimaan sinyal (Rx). Biasanya, transmisi sinyal melalui pin digital 0, sementara penerimaan melalui pin digital 1.

Juga, membantu dalam sinkronisasi manajemen komputer dan perangkat serial eksternal.

Bagaimana cara kerjanya?

SPI, I2C, UART: Protokol Komunikasi dan Aplikasinya

Gambar 2: Papan USB UART DIY elektronik

Esensinya, UART mengelola komunikasi sinyal antara dua perangkat melalui cara berikut:

Simplex melibatkan transmisi data satu arah, sementara half-duplex berarti komunikasi tidak bersamaan antara dua perangkat ke arah mana pun. Terakhir, full duplex melibatkan transfer data bersamaan ke arah mana pun.

Secara umum, setelah koneksi, terjadi transfer data dari garis data UART pemancar ke UART penerima. Ini terjadi melalui prinsip berikut;

  1. Pertama, UART pemancar akan mengonversi data paralel dari perangkat master menjadi bentuk serial untuk transfer ke UART penerima. Sebaliknya, UART penerima mengubah data serial menjadi data paralel untuk digunakan oleh perangkat penerima yang terhubung.
  2. Karena UART melibatkan komunikasi asinkron, tidak memiliki jam. Oleh karena itu, UART akan menghasilkan bit start dan stop untuk menunjukkan awal dan akhir pesan.
  3. Kedua UART harus berfungsi pada BAUD rate atau kecepatan transmisi data UART yang sama. Idealnya, ini untuk memastikan waktu yang akurat dari bit data karena perbedaan lebih dari 10% membuat data tidak berguna.

Protokol Kerja UART

Transmisi dan Penerimaan Data

  1. Untuk transmisi, UART pemancar perlu menerima data dari bus data seperti CPU.
  2. Selanjutnya, menambahkan tiga bit, yaitu bit start, bit parity, dan bit stop. Tiga bit ini akan membentuk paket data yang ditransmisikan ke UART penerima melalui pin TX.
  3. Transmisi data berhenti setelah data di UART pemancar habis.

Kontrol Interupsi

Interupsi data berguna untuk pengiriman otomatis isi buffer. Anda dapat memicu kontrol interupsi dalam skenario berikut:

Operasi FIFO

SPI, I2C, UART: Protokol Komunikasi dan Aplikasinya

Gambar 3. Antarmuka UART pada Arduino

Modul UART keluarga Stellaris memiliki dua FIFO 16-byte, satu untuk penerimaan data dan satu lagi untuk transmisi. Juga, Anda dapat mengonfigurasinya pada kedalaman yang berbeda untuk mengirim interupsi yang berbeda. Misalnya, Anda mungkin memiliki kedalaman 1/8, 1/4, 1/2, dan seterusnya.

Proses kerja transmisi FIFO

  1. Utama, transmisi data dimulai setelah entri data. Juga, karena memakan waktu, entri data berlanjut sampai FIFO transmisi penuh.
  2. Setelah penuh, Anda harus menghentikan entri data agar tidak kehilangan semua data baru.
  3. Selanjutnya, FIFO transmisi mengirimkan data bit demi bit sampai kosong. Akhirnya, FIFO transmisi akan menciptakan slot tambahan.

Proses kerja penerimaan FIFO

  1. Setelah menerima data dari langkah di atas, perangkat keras menyimpannya di FIFO penerimaan. Idealnya, penerimaan dan penghapusan data oleh program FIFO penerimaan adalah proses otomatis. Jadi, akan cukup ruang di FIFO penerimaan.
  2. Juga memiliki transceiver FIFO yang penting dalam menyelesaikan masalah efisiensi CPU. Selanjutnya, membantu menyelesaikan masalah interupsi transceiver UART yang sering terjadi.
  3. Terakhir, FIFO tidak kehilangan data karena menyegel semua kemungkinan jalur kehilangan sebelumnya.

Loopback

UART memiliki loopback internal untuk debugging dan diagnostik tentang di mana input RX akan menerima data yang dikirim.

Protokol Serial Infrared

UART memiliki modul IrDA Serial Infrared (SIR) yang berfungsi sebagai modul encoder/decoder. Berguna dalam menterjemahkan antarmuka serial SIR half-duplex dan aliran data UART asinkron.

Selain itu, protokol komunikasi serial menyediakan input yang didekode dan output yang dikodekan secara digital ke UART.

Keuntungan Menggunakan UART

  1. Protokol komunikasi sederhana adalah modul yang terdokumentasi dengan baik dan juga mudah digunakan.
  2. Kedua, tidak memerlukan garis jam serial.
  3. Ketiga, memiliki bit parity yang memungkinkan pemeriksaan kesalahan.

Kekurangan Menggunakan UART

  1. Antarmuka UART memiliki batasan ukuran frame data 9 bit dan kecepatan transfer yang lambat.
  2. Selain itu, tidak mampu menggunakan banyak sistem master dan perangkat slave.
  3. Juga, memiliki baud rate wajib dalam 10% sebagai perlindungan dari kehilangan data.
  4. Keempat, umumnya memiliki kecepatan yang lebih lambat selama transfer data antara perangkat.

Contoh UART pada Mikrokontroler

2. Antarmuka I2C

Apa itu I2C?

SPI, I2C, UART: Protokol Komunikasi dan Aplikasinya

Gambar 4: Sensor Tekanan Diferensial menggunakan I2C

Protokol komunikasi Inter-integrated-circuit (I2C) mirip dengan UART. Namun, sementara UART ditetapkan untuk komunikasi PC-perangkat, I2C berguna dalam aplikasi sensor dan modul.

Selain itu, bus serial sinkron dua kabel dua arah dapat menghubungkan banyak perangkat tanpa mengkompromikan jalur komunikasi. Ini berkat properti bus dan sistem alamat bersama.

Tetapi fitur ini datang dengan biaya komunikasi yang relatif lambat antara perangkat dibandingkan SPI. Kecepatannya bergantung pada kebisingan eksternal, kualitas kabel, dan kecepatan data.

Terakhir, antarmuka dua kabel memungkinkan koneksi ke perangkat kecepatan rendah seperti EEPROM, konverter Analog/Digital, dan mikrokontroler.

Bagaimana cara kerjanya?

Protokol I2C memiliki dua garis: port penerimaan garis data serial (SDA) dan garis jam serial (SCL). SCL memfasilitasi sinkronisasi transmisi sementara SDA mewakili garis data untuk mengirim dan menerima bit data.

Selama transfer, perangkat master memicu transmisi data bus. Secara bersamaan, menghasilkan jam yang membuka perangkat transfer. Dalam skenario ini, perangkat yang dialami dalam transmisi adalah perangkat slave.

Perlu diperhatikan, perangkat master dan slave tidak memiliki laju transmisi data konstan. Sebaliknya, hubungan mereka bergantung pada arah transfer data pada waktu transmisi.

Juga, perangkat master tunggal harus memberitahu perangkat slave select sebelum memulai transmisi data. Sebaliknya, perlu memberitahu slave sebelum menerima data dari slave.

Juga penting untuk menghubungkan resistor pull-up ke suplai daya I2C untuk fungsi optimal.

Protokol Kerja I2C

SPI, I2C, UART: Protokol Komunikasi dan Aplikasinya

Gambar 5: Modul Layar OLED 128X64 IIC I2C 0,96 inci

Metode Transmisi Data

Prosedur koneksi adalah sebagai berikut:

  1. Output master akan mengirim sinyal transmisi ke slave yang terhubung, terutama dengan mengubah garis SDA dari tegangan tinggi ke rendah. Selanjutnya, akan mengubah garis SCL dari tegangan tinggi ke rendah.
  2. Kemudian, master mengirim alamat 7-bit atau 10-bit dan bit baca/tulis ke setiap slave.
  3. Ketiga, slave membandingkan alamat dengan alamat mereka sendiri. Jika cocok, akan mengembalikan bit ACK dengan mengubah garis SDA ke rendah. Namun, jika tidak cocok, slave akan biarkan garis SDA tetap tinggi.
  4. Selanjutnya, master mengirim frame data atau menerimanya (tergantung pada alamat yang cocok). Kemudian, setelah transmisi data selesai, komponen penerima mengembalikan bit ACK ke pengirim data. Ini untuk mengakui transmisi lengkap.
  5. Terakhir, master mengubah SCL ke tinggi dan kemudian SDA untuk mengakhiri komunikasi.

Sinkronisasi Jam

Setiap master harus menghasilkan sinyal jamnya sendiri di garis SCL untuk transmisi data. Selain itu, hanya selama periode tinggi jam data yang tetap valid dalam transmisi I2C.

Mode Transmisi

Utama transmisi melalui dua cara, yaitu:

Mode Cepat

Perangkat pada mode cepat menerima dan mentransmisikan data dengan laju 400kbit/s. Juga, bus I2C mode cepat dapat secara signifikan menekan glitches, dan output mereka memiliki fungsi kontrol kemiringan.

Mode Kecepatan Tinggi

Bus I2C pada mode kecepatan tinggi akan mentransmisikan/menerima data dengan laju bit 3,4 Mbit/s. Jadi, memiliki laju transmisi data yang lebih cepat daripada mode cepat sebelumnya.

Keuntungan I2C

  1. Memiliki jumlah pin/sinyal yang sangat terbatas bahkan ketika Anda telah menghubungkan banyak perangkat pada master.
  2. Kedua, perangkat I2C menawarkan fleksibilitas berkat kemampuan multi-master dan multi-slave.
  3. Juga, mudah digunakan karena Anda hanya perlu dua kabel dua arah untuk membuat koneksi ke banyak perangkat.
  4. Selain itu, menawarkan adaptabilitas yang luas dan juga dapat mendukung banyak master.

Kekurangan I2C

  1. Memiliki kecepatan yang relatif lambat dan harus menggunakan resistor pull-up, berbeda dengan SPI yang hanya memerlukan resistor push-pull. Selain itu, desain open-drain membatasi kecepatannya.
  2. Selain itu, resistor menempati ruang yang sangat penting dalam perakitan PCB.
  3. Tidak mudah digunakan ketika Anda telah menghubungkan banyak perangkat.

Contoh I2C pada Mikrokontroler

3. Antarmuka SPI

Apa itu SPI?

SPI, I2C, UART: Protokol Komunikasi dan Aplikasinya

Gambar 6: Antarmuka SPI berguna dalam Modul Layar

Serial Peripheral Interface (SPI) ditetapkan untuk digunakan pada mikrokontroler. Juga, karena berfungsi dalam full duplex, memungkinkan transmisi dan penerimaan data bersamaan.

SPI relatif lebih cepat dari I2C, dengan laju transmisi data minimal 8 bit. Utama, protokol sederhana modul ini memungkinkan laju data yang lebih cepat. Jadi, penting dalam aplikasi yang memerlukan kecepatan, seperti modul layar dan Kartu SD.

Juga penting dalam aplikasi yang melibatkan perubahan tiba-tiba informasi, misalnya termometer.

Bagaimana cara kerjanya?

SPI, I2C, UART: Protokol Komunikasi dan Aplikasinya

Gambar 7: Kartu SD menggunakan SPI

Perangkat bentuk SPI akan bekerja dalam salah satu dari dua cara berikut:

Anda dapat menghubungkan sebanyak yang Anda inginkan dalam antarmuka SPI. Namun, dalam banyak kasus, Anda akan terbatas oleh garis select perangkat keras yang tersedia. Terakhir, selama komunikasi titik-titik, modul tidak perlu melakukan operasi pengalamatan.

Protokol Kerja SPI

SPI berfungsi melalui empat port, yaitu:

  1. Master Data Output, Slave Data Input (MOSI)
  2. Master data input, slave data output (MISO)
  3. Sinyal jam (SCLK)
  4. Sinyal enable slave (NSS)

Saat menggunakan sistem multi-slave, setiap slave masing-masing memerlukan sinyal enable unik. Persyaratan ini menyulitkan persyaratan perangkat keras dibandingkan komunikasi I2C.

Juga, antarmuka SPI memiliki dua shift register. Ini memungkinkan transmisi data serial sinkron antara satu perangkat master, seperti CPU, ke perangkat periferal.

Keuntungan menggunakan SPI

  1. Mudah digunakan karena, berbeda dengan I2C, tidak memiliki sistem pengalamatan slave yang kompleks.
  2. Kedua, merupakan protokol tercepat dari semua antarmuka serial yang telah kita bahas (Lebih cepat dari UART dan I2C).
  3. Tidak memiliki bit start dan stop seperti dalam komunikasi UART. Jadi, memungkinkan transmisi data berkelanjutan tanpa gangguan.
  4. Terakhir, memiliki garis MISO dan MOSI terpisah yang memungkinkan pengiriman dan penerimaan data bersamaan.

Kekurangan menggunakan SPI

  1. Sebagian besar port pinnya terisi, yang membatasi jumlah perangkat yang dapat Anda hubungkan.
  2. Juga, tidak memiliki kontrol aliran yang ditentukan, dan berbeda dengan I2C, tidak ada mekanisme untuk mengakui data telah dikirim/diterima.
  3. Memerlukan penggunaan 4 garis, seperti yang telah kita soroti di atas, dan berbeda dengan UART, tidak memiliki mekanisme pemeriksaan kesalahan.
  4. Keempat, juga memiliki satu master tunggal.

Contoh SPI pada Mikrokontroler

Membandingkan UART, I2C, dan SPI

SPI, I2C, UART: Protokol Komunikasi dan Aplikasinya

Perangkat komunikasi mana yang “terbaik”? UART, SPI, atau I2C?

Tidak ada perangkat komunikasi yang unggul di antara ketiga ini, karena masing-masing memiliki kelebihan dan kekurangan utamanya. Jadi, pilih protokol yang paling cocok tergantung pada proyek Anda. Misalnya, SPI akan melayani Anda paling baik jika Anda mencari kecepatan.

Tetapi jika Anda ingin menghubungkan banyak perangkat tanpa memiliki susunan yang kompleks, pilih I2C.

Kesimpulan

Kami telah mengungkap semua wawasan kunci yang perlu Anda ketahui tentang antarmuka komunikasi UART, I2C, dan SPI serta berbagai laju transfernya. Juga, kami di sini untuk menjawab pertanyaan apa pun tentang protokol komunikasi. Hubungi kami, dan kami akan segera datang membantu Anda.


Teknologi Industri

  1. MQTT vs. DDS: Memilih Protokol M2M yang Tepat untuk IoT
  2. Memahami Protokol Jaringan: Dari Lapisan Fisik hingga Arbitrase Lanjutan
  3. Dasar-Dasar Memori Digital: Alamat, Akses, dan Volatilitas
  4. Papan Breakout Esensial untuk Raspberry Pi: I2C, UART, GPIO & Lainnya
  5. 14 Aplikasi Inovatif Nanoteknologi: Dari Obat hingga Bahan
  6. Silver Brazing Dijelaskan: Proses, Bahan, dan Aplikasi
  7. Membuka Efisiensi Produksi: Strategi Manufaktur Berbasis Data yang Terbukti
  8. Sederhanakan Penggunaan Data untuk Pengambilan Keputusan yang Lebih Cerdas
  9. Jenis Kayak & Penggunaan Praktisnya: Dari Konstruksi hingga Produksi Kertas
  10. Tungsten: Aplikasi Masa Lalu dan Inovasi Modern