Ratusan protokol komunikasi telah ditetapkan untuk mencapai pertukaran data ini. Setiap protokol dapat dikategorikan ke dalam salah satu dari dua kategori: paralel atau serial.
Komunikasi Paralel
Koneksi paralel antara Arduino dan periferal melalui port input/output adalah solusi ideal untuk jarak yang lebih pendek hingga beberapa meter. Namun, dalam kasus lain bila diperlukan untuk menjalin komunikasi antara dua perangkat untuk jarak yang lebih jauh, koneksi paralel tidak dapat digunakan. Antarmuka paralel mentransfer banyak bit secara bersamaan. Mereka biasanya membutuhkan bus data - mentransmisikan melalui delapan, enam belas, atau lebih kabel. Data ditransfer dalam gelombang 1 dan 0 yang sangat besar dan menerjang.
Kelebihan dan Kekurangan Komunikasi Paralel
Komunikasi paralel tentu memiliki kelebihan. Ini lebih cepat daripada serial, lugas, dan relatif mudah diimplementasikan. Namun, ini membutuhkan banyak port dan jalur input/output (I/O). Jika Anda pernah harus memindahkan proyek dari dasar Arduino Uno ke Mega, Anda tahu bahwa jalur I/O pada mikroprosesor bisa sangat berharga dan sedikit. Oleh karena itu, kami lebih memilih komunikasi serial, mengorbankan potensi kecepatan untuk pin real estate.
Modul Komunikasi Serial
Hari ini, kebanyakan Arduino papan dibangun dengan beberapa sistem yang berbeda untuk komunikasi serial sebagai perlengkapan standar.
Manakah dari sistem ini yang digunakan tergantung pada faktor-faktor berikut −
- Berapa banyak perangkat mikrokontroler yang harus bertukar data?
- Seberapa cepat pertukaran data harus?
- Berapa jarak antara perangkat ini?
- Apakah perlu mengirim dan menerima data secara bersamaan?
Salah satu hal yang paling penting tentang komunikasi serial adalah Protokol , yang harus diperhatikan dengan ketat. Ini adalah seperangkat aturan, yang harus diterapkan sedemikian rupa sehingga perangkat dapat menginterpretasikan data yang mereka tukarkan dengan benar. Untung, Arduino secara otomatis menangani ini, sehingga pekerjaan pemrogram/pengguna direduksi menjadi menulis sederhana (data yang akan dikirim) dan membaca (menerima data).
Jenis Komunikasi Serial
Komunikasi serial dapat diklasifikasikan lebih lanjut sebagai -
Sinkronis − Perangkat yang disinkronkan menggunakan jam yang sama dan waktunya disinkronkan satu sama lain.
Asinkron − Perangkat yang asinkron memiliki jamnya sendiri dan dipicu oleh keluaran dari keadaan sebelumnya.
Sangat mudah untuk mengetahui apakah suatu perangkat sinkron atau tidak. Jika jam yang sama diberikan ke semua perangkat yang terhubung, maka perangkat tersebut sinkron. Jika tidak ada garis jam, itu asinkron.
Misalnya, modul UART (Universal Asynchronous Receiver Transmitter) bersifat asinkron.
Protokol serial asinkron memiliki sejumlah aturan bawaan. Aturan ini tidak lain adalah mekanisme yang membantu memastikan transfer data yang kuat dan bebas kesalahan. Mekanisme ini, yang kami dapatkan untuk menghindari sinyal clock eksternal, adalah −
- Bit sinkronisasi
- Bit data
- Bit paritas
- Tingkat Baud
Bit Sinkronisasi
Bit sinkronisasi adalah dua atau tiga bit khusus yang ditransfer dengan setiap paket data. Mereka adalah bit awal dan bit stop. Sesuai dengan namanya, masing-masing bit ini menandai awal dan akhir dari sebuah paket.
Selalu hanya ada satu bit awal, tetapi jumlah bit stop dapat dikonfigurasi menjadi satu atau dua (walaupun biasanya tersisa satu).
Bit awal selalu ditunjukkan oleh jalur data diam dari 1 ke 0, sedangkan bit berhenti akan bertransisi kembali ke keadaan diam dengan menahan garis pada 1.
Bit Data
Jumlah data dalam setiap paket dapat diatur ke berbagai ukuran dari 5 hingga 9 bit. Tentu saja, ukuran data standar adalah byte 8-bit dasar Anda, tetapi ukuran lain memiliki kegunaannya. Paket data 7-bit bisa lebih efisien daripada 8, terutama jika Anda hanya mentransfer karakter ASCII 7-bit.
Bit Paritas
Pengguna dapat memilih apakah harus ada bit paritas atau tidak, dan jika ya, paritas harus ganjil atau genap. Bit paritas adalah 0 jika angka 1 di antara bit data adalah genap. Paritas ganjil justru sebaliknya.
Kecepatan Baud
Istilah baud rate digunakan untuk menunjukkan jumlah bit yang ditransfer per detik bps. Perhatikan bahwa ini mengacu pada bit, bukan byte. Biasanya diperlukan oleh protokol bahwa setiap byte ditransfer bersama dengan beberapa bit kontrol. Artinya, satu byte dalam aliran data serial dapat terdiri dari 11 bit. Misalnya, jika baud rate adalah 300 bps maka maksimal 37 dan minimal 27 byte dapat ditransfer per detik.
Arduino UART
Kode berikut akan dibuat Arduino kirim halo dunia saat dinyalakan.
pengaturan kosong() { Serial.begin(9600); //atur baud rate perpustakaan serial ke 9600 Serial.println("hello world"); //cetak halo dunia}void loop() {}
Setelah Arduino sketsa telah diunggah ke Arduino , buka monitor Serial di bagian kanan atas dari Arduino IDE.
Ketik apa pun di kotak atas Serial Monitor dan tekan kirim atau enter di keyboard Anda. Ini akan mengirimkan serangkaian byte ke Arduino .
Kode berikut mengembalikan apa pun yang diterimanya sebagai masukan.
Kode berikut akan dibuat Arduino memberikan output tergantung pada input yang diberikan.
void setup() {
Serial.begin(9600);
//mengatur baud rate perpustakaan serial ke 9600
}
void loop() {
if(Serial.available())
//jika jumlah byte (karakter) yang tersedia untuk dibaca dari port serial
{
Serial.print("Saya menerima:") ;
//print saya menerima
Serial.write(Serial.read());
//kirim yang kamu baca
}
}
Perhatikan itu Serial.print Dan Serial.println akan mengirimkan kembali kode ASCII yang sebenarnya, sedangkan Serial.write akan mengirim kembali teks yang sebenarnya. Lihat kode ASCII untuk informasi lebih lanjut.
0 Komentar
Berkomentarlah dengan sopan dan menggunakan bahasa yang semestinya.