- Jenis Protokol Komunikasi
- Mode Transmisi dalam Komunikasi Serial
- Sinkronisasi Jam
- Istilah Lain Terkait Komunikasi Serial
- Protokol Serial Sinkron
- Protokol Serial Asinkron
- Kesimpulan
Sebelum memulai dengan Serial Communication Protocols, mari kita pecahkan terminologi dalam tiga bagian. Istilah komunikasi sangat terkenal yang melibatkan pertukaran informasi antara dua atau lebih media. Dalam sistem tertanam, komunikasi berarti pertukaran data antara dua mikrokontroler dalam bentuk bit. Pertukaran bit data dalam mikrokontroler ini dilakukan oleh beberapa set aturan yang ditentukan yang dikenal sebagai protokol komunikasi. Nah jika data dikirim secara seri yaitu satu demi satu maka protokol komunikasi tersebut disebut dengan Serial Communication Protocol. Lebih khusus lagi, bit data ditransmisikan satu per satu secara berurutan melalui bus data atau saluran komunikasi dalam Komunikasi Serial.
Jenis Protokol Komunikasi
Ada berbagai jenis transfer data yang tersedia dalam elektronik digital seperti komunikasi serial dan komunikasi paralel. Demikian pula protokol dibagi menjadi dua jenis seperti Protokol Komunikasi Serial dan Protokol Komunikasi Paralel. Contoh Protokol Komunikasi Paralel adalah ISA, ATA, SCSI, PCI dan IEEE-488. Demikian pula ada beberapa contoh Protokol Komunikasi Serial seperti CAN, ETHERNET, I2C, SPI, RS232, USB, 1-Wire, dan SATA dll.
Pada artikel ini, berbagai jenis Protokol Komunikasi Serial akan dibahas. Komunikasi serial adalah pendekatan yang paling banyak digunakan untuk mentransfer informasi antara perangkat pemrosesan data. Setiap perangkat elektronik baik itu Personal Computer (PC) atau Mobile berjalan dengan komunikasi serial. Protokol adalah bentuk komunikasi yang aman dan andal yang memiliki seperangkat aturan yang ditangani oleh host sumber (pengirim) dan host tujuan (penerima) yang mirip dengan komunikasi paralel.
Mode Transmisi dalam Komunikasi Serial
Seperti yang telah dikatakan di atas bahwa dalam komunikasi serial data dikirim dalam bentuk bit yaitu pulsa biner dan telah diketahui bahwa biner satu merepresentasikan logika HIGH dan nol merepresentasikan logika LOW. Ada beberapa jenis komunikasi serial tergantung dari jenis mode transmisi dan transfer data. Mode transmisi diklasifikasikan sebagai Simpleks, Setengah Dupleks, dan Dupleks Penuh.
Metode Simpleks:
Dalam metode simpleks salah satu media yaitu pengirim atau penerima dapat aktif dalam satu waktu. Jadi jika pengirim mengirimkan data maka penerima hanya dapat menerima dan sebaliknya. Jadi metode simpleks adalah teknik komunikasi satu arah. Contoh metode simpleks yang terkenal adalah Televisi dan Radio.
Metode Half Duplex:
Dengan metode half duplex, pengirim dan penerima dapat aktif tetapi tidak pada saat yang bersamaan. Jadi jika pengirim melakukan transmisi maka penerima dapat menerima tetapi tidak dapat mengirim dan begitu pula sebaliknya. Contoh terkenal dari half duplex adalah internet dimana pengguna mengirimkan permintaan data dan mendapatkannya dari server.
Metode Dupleks Penuh:
Dalam metode dupleks penuh, penerima dan pemancar dapat saling mengirim data pada waktu yang bersamaan. Contoh yang paling terkenal adalah ponsel.
Selain itu, untuk transmisi data yang sesuai, jam memainkan peran penting dan merupakan salah satu sumber utama. Kerusakan jam mengakibatkan transmisi data yang tidak terduga bahkan terkadang kehilangan data. Jadi, sinkronisasi jam menjadi sangat penting saat menggunakan komunikasi serial.
Sinkronisasi Jam
Jam berbeda untuk perangkat serial dan diklasifikasikan dalam dua tipe yaitu. Antarmuka Serial Sinkron dan Antarmuka Serial Asinkron.
Antarmuka Serial Sinkron:
Ini adalah koneksi point-to-point dari master ke slave. Dalam jenis antarmuka ini, semua perangkat menggunakan bus CPU tunggal untuk berbagi data dan jam. Transmisi data menjadi lebih cepat dengan bus yang sama untuk berbagi jam dan data. Juga tidak ada ketidakcocokan dalam baud rate di antarmuka ini. Di sisi pemancar, ada pergeseran data ke jalur serial yang menyediakan jam sebagai sinyal terpisah karena tidak ada bit start, stop, dan paritas yang ditambahkan ke data. Di sisi penerima, data diekstrak menggunakan jam yang disediakan oleh pemancar dan mengubah data serial kembali ke bentuk paralel. Contoh yang terkenal adalah I2C dan SPI.
Antarmuka Serial Asinkron:
Dalam Antarmuka Serial asinkron, sinyal jam eksternal tidak ada. Antarmuka Serial Asinkron dapat dilihat sebagian besar dalam aplikasi jarak jauh dan sangat cocok untuk komunikasi yang stabil. Dalam Asynchronous Serial Interface tidak adanya Clock Source eksternal membuatnya bergantung pada beberapa parameter seperti Data Flow Control, Error Control, Baud Rate Control, Transmission Control dan Reception Control. Di sisi pemancar, terjadi pergeseran data paralel ke jalur serial menggunakan jamnya sendiri. Juga menambahkan bit cek start, stop dan parity. Di sisi penerima, penerima mengekstrak data menggunakan jamnya sendiri dan mengubah data serial kembali ke bentuk paralel setelah menghapus bit start, stop, dan paritas. Contoh yang terkenal adalah RS-232, RS-422 dan RS-485.
Istilah Lain Terkait Komunikasi Serial
Selain Sinkronisasi Jam, ada beberapa hal yang perlu diingat saat mentransfer data secara serial seperti Baud Rate, Pemilihan bit data (Framing), Sinkronisasi dan pengecekan kesalahan. Mari kita bahas istilah-istilah ini secara singkat.
Baud Rate: Baud rate adalah laju perpindahan data antara pemancar dan penerima dalam bentuk bit per detik (bps). Baud rate yang paling umum digunakan adalah 9600. Namun ada pilihan baud rate lain seperti 1200, 2400, 4800, 57600, 115200. Semakin banyak baud rate menjadi lemak, data akan ditransfer pada suatu waktu. Juga untuk komunikasi data, baud rate harus sama untuk pemancar dan penerima.
Framing: Framing mengacu pada jumlah bit data yang akan dikirim dari pemancar ke penerima. Jumlah bit data berbeda dalam penerapannya. Sebagian besar aplikasi menggunakan 8 bit sebagai bit data standar tetapi juga dapat dipilih sebagai 5, 6 atau 7 bit.
Sinkronisasi: Sinkronisasi Bit penting untuk memilih bagian data. Ini memberitahu awal dan akhir dari bit data. Pemancar akan mengatur bit start dan stop ke bingkai data dan penerima akan mengidentifikasinya sesuai dan melakukan pemrosesan lebih lanjut.
Kontrol Kesalahan: Kontrol kesalahan memainkan peran penting dalam komunikasi serial karena ada banyak faktor yang mempengaruhi dan menambah kebisingan dalam komunikasi serial. Untuk menghilangkan kesalahan ini bit paritas digunakan di mana paritas akan memeriksa paritas genap dan ganjil. Jadi jika bingkai data berisi bilangan genap 1 maka itu dikenal sebagai paritas genap dan bit paritas dalam register diatur ke 1. Demikian pula jika bingkai data berisi bilangan ganjil 1 maka itu dikenal sebagai paritas ganjil dan membersihkan bit paritas ganjil di register.
Protokol seperti bahasa umum yang digunakan sistem untuk memahami data. Sebagaimana dijelaskan di atas, protokol komunikasi serial dibagi menjadi beberapa tipe yaitu Synchronous dan Asynchronous. Sekarang keduanya akan dibahas secara detail.
Protokol Serial Sinkron
The jenis sinkron protokol serial seperti SPI, I2C, CAN dan LIN digunakan dalam proyek yang berbeda karena merupakan salah satu sumber daya terbaik untuk periferal onboard. Juga ini adalah protokol yang banyak digunakan dalam aplikasi utama.
Protokol SPI
Serial Peripheral Interface (SPI) adalah antarmuka sinkron yang memungkinkan beberapa mikrokontroler SPI saling berhubungan. Di SPI, kabel terpisah diperlukan untuk data dan garis jam. Juga jam tidak termasuk dalam aliran data dan harus dilengkapi sebagai sinyal terpisah. SPI dapat dikonfigurasi sebagai master atau sebagai budak. Empat sinyal SPI dasar (MISO, MOSI, SCK dan SS), Vcc dan Ground adalah bagian dari komunikasi data. Sehingga dibutuhkan 6 kabel untuk mengirim dan menerima data dari slave atau master. Secara teoritis, SPI dapat memiliki jumlah budak yang tidak terbatas. Komunikasi data dikonfigurasi dalam register SPI. SPI dapat memberikan kecepatan hingga 10Mbps dan sangat ideal untuk komunikasi data kecepatan tinggi.
Sebagian besar mikrokontroler memiliki dukungan bawaan untuk SPI dan dapat langsung dihubungkan ke perangkat yang mendukung SPI:
- Komunikasi SPI dengan Mikrokontroler PIC PIC16F877A
- Cara Menggunakan Komunikasi SPI pada Mikrokontroler STM32
- Cara menggunakan SPI di Arduino: Komunikasi antara dua Papan Arduino
Komunikasi Serial I2C
Inter integrated circuit (I2C) komunikasi dua jalur antara IC atau modul yang berbeda di mana dua jalur adalah SDA (Serial Data Line) dan SCL (Serial Clock Line). Kedua garis harus dihubungkan ke suplai positif menggunakan resistor pull-up. I2C dapat memberikan kecepatan hingga 400Kbps dan menggunakan sistem pengalamatan 10 bit atau 7 bit untuk menargetkan perangkat tertentu pada bus i2c sehingga dapat menghubungkan hingga 1024 perangkat. Ini memiliki komunikasi panjang yang terbatas dan sangat ideal untuk komunikasi onboard. Jaringan I2C mudah diatur karena hanya menggunakan dua kabel dan perangkat baru dapat dengan mudah dihubungkan ke dua jalur bus I2C yang umum. Sama seperti SPI, mikrokontroler umumnya memiliki pin I2C untuk menghubungkan perangkat I2C:
- Cara menggunakan Komunikasi I2C pada Mikrokontroler STM32
- Komunikasi I2C dengan Mikrokontroler PIC PIC16F877
- Cara menggunakan I2C di Arduino: Komunikasi antara dua Papan Arduino
USB
USB (Universal Serial Bus) merupakan protokol yang luas dengan versi dan kecepatan yang berbeda. Maksimal 127 periferal dapat dihubungkan ke satu pengontrol host USB. USB bertindak sebagai perangkat "pasang dan mainkan". USB digunakan di hampir semua perangkat seperti keyboard, printer, perangkat media, kamera, pemindai, dan mouse. Ini dirancang untuk kemudahan pemasangan, pengenal data lebih cepat, pemasangan kabel lebih sedikit, dan hot swapping. Ini telah menggantikan port serial dan paralel yang lebih besar dan lebih lambat. USB menggunakan sinyal diferensial untuk mengurangi interferensi dan memungkinkan transmisi berkecepatan tinggi dalam jarak jauh.
Sebuah bus diferensial dibangun dengan dua kabel, yang satu mewakili data yang ditransmisikan dan yang lainnya merupakan pelengkap. Idenya adalah bahwa tegangan 'rata-rata' pada kabel tidak membawa informasi apa pun, sehingga menimbulkan sedikit gangguan. Di USB, perangkat diizinkan untuk menarik sejumlah daya tanpa meminta host. USB hanya menggunakan dua kabel untuk transfer data dan lebih cepat daripada antarmuka serial dan paralel. Versi USB mendukung kecepatan yang berbeda seperti 1.5Mbps (USB v1.0), 480 Mbps (USB2.0), 5Gbps (USB v3.0). Panjang kabel USB individu dapat mencapai hingga 5 meter tanpa hub dan 40 meter dengan hub.
BISA
Jaringan Area Pengontrol (CAN) digunakan di misalnya otomotif untuk memungkinkan komunikasi antara ECU (Unit Kontrol Mesin) dan sensor. Protokol CAN kuat, berbiaya rendah dan berbasis pesan dan mencakup banyak aplikasi - misalnya mobil, truk, traktor, robot industri. Sistem bus CAN memungkinkan diagnosis kesalahan sentral dan konfigurasi di semua ECU. Pesan CAN diprioritaskan melalui ID sehingga ID prioritas tertinggi tidak terputus. Setiap ECU berisi chip untuk menerima semua pesan yang dikirim, memutuskan relevansi dan bertindak sesuai - ini memungkinkan modifikasi yang mudah dan penyertaan node tambahan (misalnya CAN bus data logger). Aplikasinya meliputi start / stop kendaraan, sistem penghindaran tabrakan. Sistem bus CAN dapat memberikan kecepatan hingga 1Mbps.
Microwire
MICROWIRE adalah antarmuka 3-kabel serial 3Mbps yang pada dasarnya merupakan bagian dari antarmuka SPI. Microwire adalah port serial I / O pada mikrokontroler, sehingga bus Microwire juga akan ditemukan pada EEPROMs dan chip Peripheral lainnya. 3 baris tersebut adalah SI (Serial Input), SO (SerialOutput) dan SK (Serial Clock). Jalur Serial Input (SI) ke mikrokontroler, SO adalah jalur output serial, dan SK adalah jalur serial clock. Data digeser keluar di tepi jatuh dari SK, dan dinilai di tepi naik. SI digeser di tepi SK yang meninggi. Peningkatan bus tambahan ke MICROWIRE disebut MICROWIRE / Plus. Perbedaan utama antara kedua bus tampaknya adalah bahwa arsitektur MICROWIRE / Plus dalam mikrokontroler lebih kompleks. Ini mendukung kecepatan hingga 3Mbps.
Protokol Serial Asinkron
Jenis protokol serial asinkron sangat penting dalam hal transfer data jarak jauh yang andal. Komunikasi asinkron tidak memerlukan jam waktu yang sama untuk kedua perangkat. Setiap perangkat secara independen mendengarkan dan mengirimkan pulsa digital yang mewakili bit data pada tingkat yang disepakati. Komunikasi serial asinkron terkadang disebut juga serial Transistor-Transistor Logic (TTL), dimana level tegangan tinggi adalah logika 1, dan tegangan rendah sama dengan logika 0. Hampir setiap mikrokontroler yang ada di pasaran saat ini memiliki setidaknya satu Universal Asynchronous Receiver- Transmitter (UART) untuk komunikasi serial. Contohnya adalah RS232, RS422, RS485 dll.
RS232
RS232 (Standar yang Disarankan 232) adalah protokol yang sangat umum digunakan untuk menghubungkan periferal yang berbeda seperti Monitor, CNC, dll. RS232 hadir dengan konektor pria dan wanita. RS232 adalah topologi point-to-point dengan maksimum satu perangkat terhubung dan mencakup jarak hingga 15 meter pada 9600 bps. Informasi pada antarmuka RS-232 ditransmisikan secara digital oleh logika 0 dan 1. Logis "1" (MARK) sesuai dengan tegangan dalam kisaran dari -3 hingga -15 V. Logika "0" (SPACE) sesuai dengan a tegangan berkisar dari +3 hingga +15 V. Muncul dalam konektor DB9 yang memiliki 9 pinout seperti TxD, RxD, RTS, CTS, DTR, DSR, DCD, GND.
RS422
RS422 mirip dengan RS232 yang memungkinkan untuk mengirim dan menerima pesan secara bersamaan pada jalur terpisah tetapi menggunakan sinyal diferensial untuk ini. Dalam jaringan RS-422, hanya boleh ada satu perangkat pemancar dan hingga 10 perangkat penerima. Kecepatan transfer data di RS-422 tergantung pada jarak dan dapat bervariasi dari 10 kbps (1200 meter) hingga 10 Mbps (10 meter). Saluran RS-422 adalah 4 kabel untuk transmisi data (2 kabel twisted untuk transmisi dan 2 kabel twisted untuk menerima) dan satu kabel ground GND umum. Tegangan pada jalur data dapat berada dalam kisaran dari -6 V hingga +6 V. Perbedaan logis antara A dan B lebih besar dari +0,2 V. Logika 1 sesuai dengan perbedaan antara A dan B kurang dari -0,2 V. Standar RS-422 tidak menentukan jenis konektor tertentu, biasanya dapat berupa blok terminal atau konektor DB9.
RS485
Karena RS485 menggunakan topologi multi-titik, ini paling banyak digunakan di industri dan merupakan protokol pilihan industri. RS422 dapat menghubungkan driver 32 baris dan 32 penerima dalam konfigurasi diferensial tetapi dengan bantuan repeater tambahan dan penguat sinyal hingga 256 perangkat. RS-485 tidak menentukan tipe konektor tertentu, tetapi seringkali merupakan blok terminal atau konektor DB9. Kecepatan operasi juga tergantung pada panjang jalur dan dapat mencapai 10 Mbit / s pada 10 meter. Tegangan pada saluran berada pada kisaran dari -7 V hingga +12 V. Ada dua jenis RS-485 seperti mode half duplex RS-485 dengan 2 kontak dan mode dupleks penuh RS-485 dengan 4 kontak. Untuk mempelajari lebih lanjut tentang menggunakan RS485 dengan mikrokontroler lain, periksa tautannya:
- RS-485 MODBUS Serial Communication menggunakan Arduino UNO sebagai Slave
- RS-485 Komunikasi Serial antara Raspberry Pi dan Arduino Uno
- Komunikasi Serial RS485 antara Arduino Uno dan Arduino Nano
- Komunikasi Serial antara STM32F103C8 dan Arduino UNO menggunakan RS-485
Kesimpulan
Komunikasi Serial adalah salah satu sistem antarmuka komunikasi yang banyak digunakan dalam elektronik dan sistem tertanam. Kecepatan data dapat berbeda untuk aplikasi yang berbeda. Protokol Komunikasi Serial dapat memainkan peran yang menentukan ketika menangani aplikasi semacam ini. Jadi memilih protokol Serial yang tepat menjadi sangat penting.