Baik itu periferal komputer, peralatan pintar, perangkat Internet of Things (IoT), atau elektronik alat ukur, semuanya menggunakan protokol komunikasi serial untuk menghubungkan komponen elektronik yang berbeda bersama.
Komponen-komponen ini biasanya terdiri dari mikrokontroler dan modul slave seperti sensor sidik jari, ESP8266 (modul Wi-Fi), servos, dan tampilan serial.
Perangkat ini menggunakan berbagai jenis protokol komunikasi. Di bawah ini Anda akan belajar tentang beberapa protokol komunikasi serial yang paling populer, cara kerjanya, kelebihannya, dan mengapa tetap digunakan.
Apa itu Komunikasi Serial?
Protokol komunikasi serial telah ada sejak penemuan Kode Morse pada tahun 1838. Saat ini, protokol komunikasi serial modern menggunakan prinsip yang sama. Sinyal dihasilkan dan ditransmisikan pada satu kabel dengan berulang kali menyingkat dua konduktor. Tindakan singkat ini seperti sakelar; itu menyala (tinggi) dan mati (rendah), memberikan sinyal biner. Bagaimana sinyal ini ditransmisikan dan diterima akan tergantung pada jenis protokol komunikasi serial yang digunakan.
Dengan penemuan transistor dan inovasi yang mengikutinya, para insinyur dan ahli membuat unit pemrosesan dan memori menjadi lebih kecil, lebih cepat, dan lebih hemat daya. Perubahan ini menuntut protokol komunikasi bus untuk menjadi secanggih teknologi seperti komponen yang terhubung. Demikianlah penemuan protokol serial seperti UART, I2C, dan SPI. Meskipun protokol serial ini berumur beberapa dekade, mereka masih lebih disukai untuk mikrokontroler dan pemrograman bare-metal.
UART (Universal Asynchronous Receiver-Transmitter)
Protokol UART adalah salah satu protokol komunikasi serial tertua namun paling andal yang masih kami gunakan hingga saat ini. Protokol ini menggunakan dua kabel yang dikenal sebagai Tx (transmit) dan Rx (Receive) untuk kedua komponen untuk berkomunikasi.
Untuk mengirimkan data, baik pemancar maupun penerima harus setuju dengan lima konfigurasi umum, yaitu:
- Kecepatan Baud: Kecepatan transmisi seberapa cepat data yang akan dikirimkan.
- Panjang Data: Jumlah bit yang disepakati yang akan disimpan penerima ke dalam registernya.
- Mulai Sedikit: Sinyal rendah yang memungkinkan penerima mengetahui kapan data akan ditransfer.
- Berhenti Sedikit: Sinyal tinggi yang memungkinkan penerima mengetahui kapan bit terakhir (bit paling signifikan) telah dikirim.
- Bit Paritas: Baik sinyal tinggi atau rendah yang digunakan untuk memeriksa apakah data yang dikirim benar atau rusak.
Karena UART adalah protokol asinkron, ia tidak memiliki jam sendiri yang mengatur kecepatan transmisi data. Sebagai alternatif, ia menggunakan baud rate untuk pengaturan waktu ketika bit sedang ditransmisikan. Baud rate yang biasa digunakan untuk UART adalah 9600 baud, yang berarti kecepatan transmisi 9600 bit per detik.
Jika kita menghitung dan membagi satu bit dengan 9600 baud, kita dapat menghitung seberapa cepat satu bit data dikirimkan ke penerima.
1/9600 =104 mikrodetik
Ini berarti bahwa perangkat UART kami akan mulai menghitung 104 mikrodetik untuk mengetahui kapan bit berikutnya akan dikirimkan.
Ketika perangkat UART telah terhubung, sinyal default selalu dinaikkan ke tinggi. Ketika mendeteksi sinyal frekuensi rendah, penerima akan mulai menghitung 104 mikrodetik ditambah 52 mikrodetik sebelum mulai menyimpan bit ke dalam register (memori).
Karena sudah disepakati bahwa delapan bit adalah panjang data, setelah menyimpan delapan bit data, ia akan mulai memeriksa paritas untuk memeriksa apakah data ganjil atau genap. Setelah pemeriksaan paritas, bit stop akan menaikkan sinyal tinggi untuk memberi tahu perangkat bahwa seluruh delapan bit data berhasil dikirim ke penerima.
Menjadi protokol serial paling minimalis yang hanya menggunakan dua kabel, UART umumnya digunakan saat ini di kartu pintar, kartu SIM, dan mobil.
Terkait: Apa itu Kartu SIM? Hal yang Perlu Anda Ketahui
SPI (Antarmuka Periferal Serial)
SPI adalah protokol serial populer lainnya yang digunakan untuk kecepatan data yang lebih cepat sekitar 20Mbps. Ini menggunakan total empat kabel, yaitu SCK (Serial Clock Line), MISO (Master Out Slave In), MOSI (Master In Slave Out), dan SS/CS (Chip Select). Tidak seperti UART, SPI menggunakan format master-to-slave untuk mengontrol beberapa perangkat slave dengan hanya satu master.
MISO dan MOSI bertindak seperti Tx dan Rx dari UART yang digunakan untuk mengirim dan menerima data. Chip Select digunakan untuk memilih slave mana yang ingin berkomunikasi dengan master.
Karena SPI adalah protokol sinkron, SPI menggunakan jam bawaan dari master untuk memastikan perangkat master dan slave berjalan pada frekuensi yang sama. Ini berarti kedua perangkat tidak perlu lagi menegosiasikan baud rate.
Protokol dimulai dengan master memilih perangkat slave dengan menurunkan sinyalnya ke SS/CK tertentu yang terhubung ke perangkat slave. Ketika slave menerima sinyal rendah, ia mulai mendengarkan SCK dan MOSI. Master kemudian mengirimkan bit awal sebelum mengirimkan bit yang berisi data.
Baik MOSI dan MISO adalah full-duplex, artinya mereka dapat mengirim dan menerima data pada saat yang bersamaan.
Dengan kemampuannya untuk terhubung ke banyak budak, komunikasi dupleks penuh, dan konsumsi daya yang lebih rendah daripada yang lain protokol sinkron seperti I2C, SPI digunakan dalam perangkat memori, kartu memori digital, konverter ADC ke DAC, dan kristal tampilan memori.
I2C (Sirkuit Terintegrasi)
I2C adalah protokol serial sinkron lain seperti SPI, tetapi dengan beberapa keunggulan di atasnya. Ini termasuk kemampuan untuk memiliki banyak master dan slave, pengalamatan sederhana (tidak perlu Chip Select), beroperasi dengan berbagai voltase, dan hanya menggunakan dua kabel yang terhubung ke dua pull-up resistor.
I2C sering digunakan di banyak perangkat IoT, peralatan industri, dan elektronik konsumen.
Dua pin dalam protokol I2C adalah SDA (Serial Data Line) yang mengirim dan menerima data, dan pin SCL (Serial Clock Line), yang berfungsi sebagai jam.
- Protokol dimulai dengan master mengirimkan bit awal (rendah) dari pin SDA-nya, diikuti dengan alamat tujuh bit yang memilih slave, dan satu bit ke untuk memilih baca atau tulis.
- Setelah menerima bit dan alamat awal, slave kemudian mengirimkan bit yang diakui ke master dan mulai mendengarkan SCL dan SDA untuk transmisi yang masuk.
- Setelah master menerima ini, ia tahu koneksi telah dibuat ke budak yang benar. Master sekarang akan memilih register (memori) spesifik mana dari slave yang ingin diaksesnya. Ia melakukannya dengan mengirimkan delapan bit lagi yang menentukan register mana yang akan digunakan.
- Setelah menerima alamat, budak sekarang menyiapkan register pilih sebelum mengirim pengakuan lain ke master.
- Setelah memilih slave tertentu dan register mana yang akan digunakan, master akhirnya mengirimkan bit data ke slave.
- Setelah data dikirim, bit Acknowledge terakhir dikirim ke master sebelum master diakhiri dengan stop bit (tinggi).
Terkait: Proyek IoT Arduino Terbaik
Mengapa Komunikasi Serial Tetap Ada
Dengan munculnya protokol paralel dan banyak protokol nirkabel, komunikasi serial tidak pernah jatuh dari popularitas. Umumnya hanya menggunakan dua hingga empat kabel untuk mengirim dan menerima data, protokol serial adalah mode komunikasi penting untuk elektronik yang hanya memiliki beberapa port cadangan.
Alasan lain adalah kesederhanaannya yang berarti keandalan. Dengan hanya beberapa kabel yang mengirimkan data sekali dalam satu waktu, serial telah membuktikan keandalannya untuk mengirim paket data yang lengkap tanpa kehilangan atau kerusakan saat dikirimkan. Bahkan pada frekuensi tinggi dan komunikasi jarak jauh, protokol serial masih mengalahkan banyak protokol komunikasi paralel modern yang tersedia saat ini.
Meskipun banyak yang mungkin berpikir bahwa komunikasi serial seperti UART, SPI, dan I2C memiliki kelemahan menjadi tua dan ketinggalan zaman, faktanya tetap bahwa mereka telah membuktikan keandalannya selama beberapa dekade. Protokol yang setua ini tanpa penggantian nyata hanya menunjukkan bahwa mereka, pada kenyataannya, sangat diperlukan dan akan terus digunakan dalam elektronik di masa mendatang.
Bingung antara SBC seperti Raspberry Pi dan mikrokontroler seperti Arduino dan Raspberry Pi Pico? Inilah yang perlu Anda ketahui.
Baca Selanjutnya
- Teknologi Dijelaskan
- Penggunaan data
Berlangganan newsletter kami
Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!
Klik di sini untuk berlangganan