Serial adalah kata utama untuk semua itu "Time Division Multiplexed", untuk menggunakan istilah yang mahal. Ini berarti bahwa data dikirim tersebar dari waktu ke waktu, paling sering satu demi satu bit. Semua protokol yang Anda namai adalah protokol serial.
UART, untuk Universal Asynchronous Receiver Transmitter, adalah salah satu protokol serial yang paling banyak digunakan. Ini hampir setua saya, dan sangat sederhana. Sebagian besar pengontrol memiliki UART perangkat keras di papan. Ini menggunakan jalur data tunggal untuk mentransmisikan dan satu untuk menerima data. Paling sering data 8-bit ditransfer, sebagai berikut: 1 bit awal (level rendah), 8 bit data, dan 1 stop bit (level tinggi). Bit mulai level rendah dan bit stop level tinggi berarti selalu ada transisi tinggi ke rendah untuk memulai komunikasi. Itulah yang menggambarkan UART. Tidak ada level tegangan, jadi Anda bisa memilikinya di 3,3 V atau 5 V, mana pun yang digunakan mikrokontroler Anda. Perhatikan bahwa mikrokontroler yang ingin berkomunikasi melalui UART harus menyetujui kecepatan transmisi, bit-rate, karena mereka hanya memiliki bit mulai jatuh untuk disinkronkan. Itu disebut komunikasi asinkron.
Untuk komunikasi jarak jauh (Itu tidak harus ratusan meter) UART 5 V tidak terlalu dapat diandalkan, itu sebabnya ia dikonversi ke tegangan yang lebih tinggi, biasanya +12 V untuk "0" dan -12 V untuk " 1 ". Format data tetap sama. Maka Anda memiliki RS-232 (yang sebenarnya harus Anda hubungi EIA-232, tetapi tidak ada yang melakukannya.)
Ketergantungan waktu adalah salah satu kelemahan besar dari UART, dan solusinya adalah USART , untuk Universal Synchronous / Asynchronous Receiver Transmitter. Ini bisa dilakukan UART, tetapi juga protokol sinkron. Secara sinkron tidak hanya data, tetapi juga jam yang dikirimkan. Dengan setiap bit, pulsa jam memberi tahu penerima bahwa ia harus mengunci bit itu. Protokol sinkron membutuhkan bandwidth yang lebih tinggi, seperti dalam kasus pengkodean Manchester, atau kabel tambahan untuk jam tersebut, seperti SPI dan I2C.
SPI (Serial Peripheral Interface) adalah protokol serial yang sangat sederhana. Seorang master mengirimkan sinyal jam, dan pada setiap jam pulsa itu bergeser satu bit ke budak, dan satu bit masuk, datang dari budak. Karenanya, nama sinyal adalah SCK untuk jam, MOSI untuk Master Out Slave In, dan MISO untuk Master In Slave Out. Dengan menggunakan sinyal SS (Slave Select), master dapat mengontrol lebih dari satu budak di bus. Ada dua cara untuk menghubungkan beberapa perangkat slave ke satu master, satu disebutkan di atas yaitu menggunakan slave select, dan lainnya adalah daisy chaining, ia menggunakan lebih sedikit pin hardware (jalur pilih), tetapi software menjadi rumit.
I2C(Inter-Integrated Circuit, dilafalkan "I kuadrat C") juga merupakan protokol sinkron, dan ini adalah yang pertama kali kita lihat yang memiliki beberapa "kecerdasan" di dalamnya; yang lain menggeser bit masuk dan keluar, dan itu saja. I2C hanya menggunakan 2 kabel, satu untuk clock (SCL) dan satu untuk data (SDA). Itu berarti bahwa master dan slave mengirim data melalui kabel yang sama, sekali lagi dikendalikan oleh master yang menciptakan sinyal clock. I2C tidak menggunakan Pilihan Slave terpisah untuk memilih perangkat tertentu, tetapi memiliki pengalamatan. Byte pertama yang dikirim oleh master memegang alamat 7 bit (sehingga Anda dapat menggunakan 127 perangkat di bus) dan bit baca / tulis, menunjukkan apakah byte berikutnya juga akan berasal dari master atau harus berasal dari budak. Setelah setiap byte, penerima harus mengirim "0" untuk mengakui penerimaan byte, yang master latch dengan pulsa jam ke-9. Jika master ingin menulis byte, proses yang sama berulang: master meletakkan bit demi bit di bus dan setiap kali memberikan pulsa jam untuk memberi sinyal bahwa data siap dibaca. Jika master ingin menerima data, itu hanya menghasilkan pulsa clock. Budak harus berhati-hati bahwa bit berikutnya siap ketika pulsa clock diberikan. Protokol ini dipatenkan oleh NXP (sebelumnya Phillips), untuk menghemat biaya lisensi, Atmel menggunakan kata TWI (antarmuka 2-kawat) yang persis sama dengan I2C, jadi setiap perangkat AVR tidak akan memiliki I2C tetapi akan memiliki TWI. Jika master ingin menerima data, itu hanya menghasilkan pulsa clock. Budak harus berhati-hati bahwa bit berikutnya siap ketika pulsa clock diberikan. Protokol ini dipatenkan oleh NXP (sebelumnya Phillips), untuk menghemat biaya lisensi, Atmel menggunakan kata TWI (antarmuka 2-kawat) yang persis sama dengan I2C, jadi setiap perangkat AVR tidak akan memiliki I2C tetapi akan memiliki TWI. Jika master ingin menerima data, itu hanya menghasilkan pulsa clock. Budak harus berhati-hati bahwa bit berikutnya siap ketika pulsa clock diberikan. Protokol ini dipatenkan oleh NXP (sebelumnya Phillips), untuk menghemat biaya lisensi, Atmel menggunakan kata TWI (antarmuka 2-kawat) yang persis sama dengan I2C, jadi setiap perangkat AVR tidak akan memiliki I2C tetapi akan memiliki TWI.
Dua atau lebih sinyal pada kabel yang sama dapat menyebabkan konflik, dan Anda akan memiliki masalah jika satu perangkat mengirim "1" sementara yang lain mengirim "0". Oleh karena itu bus terhubung dengan kabel-ATAU: dua resistor menarik bus ke level tinggi, dan perangkat hanya mengirim level rendah. Jika mereka ingin mengirim level tinggi, mereka cukup melepaskan bus.
TTL (Transistor Transistor Logic) bukan protokol. Ini adalah teknologi yang lebih tua untuk logika digital, tetapi namanya sering digunakan untuk merujuk pada tegangan suplai 5 V, sering secara tidak tepat merujuk pada apa yang seharusnya disebut UART.
Tentang masing-masing ini Anda dapat menulis buku, dan sepertinya saya baik-baik saja dalam perjalanan. Ini hanya gambaran singkat, beri tahu kami jika ada beberapa hal yang perlu diklarifikasi.