Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial Internet of Things >> Tertanam

Memahami UART

UART, atau pemancar penerima asinkron universal, adalah salah satu protokol komunikasi perangkat-ke-perangkat yang paling banyak digunakan. Artikel ini menunjukkan cara menggunakan UART sebagai protokol komunikasi perangkat keras dengan mengikuti prosedur standar.

Ketika dikonfigurasi dengan benar, UART dapat bekerja dengan berbagai jenis protokol serial yang melibatkan transmisi dan penerimaan data serial. Dalam komunikasi serial, data ditransfer sedikit demi sedikit menggunakan satu jalur atau kabel. Dalam komunikasi dua arah, kami menggunakan dua kabel untuk transfer data serial yang sukses. Bergantung pada aplikasi dan persyaratan sistem, komunikasi serial membutuhkan lebih sedikit sirkuit dan kabel, yang mengurangi biaya implementasi.

Dalam artikel ini, kita akan membahas prinsip dasar saat menggunakan UART, dengan fokus pada transmisi paket, protokol bingkai standar, dan protokol bingkai khusus yang merupakan fitur nilai tambah untuk kepatuhan keamanan saat diterapkan, terutama selama pengembangan kode. Selama pengembangan produk, dokumen ini juga bertujuan untuk membagikan beberapa langkah dasar saat memeriksa lembar data untuk penggunaan sebenarnya.

Di akhir artikel, tujuannya adalah untuk pemahaman dan kepatuhan yang lebih baik terhadap standar UART untuk memaksimalkan kemampuan dan aplikasi, terutama saat mengembangkan produk baru.

“Satu-satunya masalah terbesar dalam komunikasi adalah ilusi bahwa hal itu telah terjadi.”

—George Bernard Shaw

Protokol komunikasi memainkan peran besar dalam mengatur komunikasi antar perangkat. Ini dirancang dengan cara yang berbeda berdasarkan persyaratan sistem, dan protokol ini memiliki aturan khusus yang disepakati antar perangkat untuk mencapai komunikasi yang sukses.

Sistem tertanam, mikrokontroler, dan komputer sebagian besar menggunakan UART sebagai bentuk protokol komunikasi perangkat keras perangkat-ke-perangkat. Di antara protokol komunikasi yang tersedia, UART hanya menggunakan dua kabel untuk tujuan pengiriman dan penerimaannya.

Meskipun menjadi metode protokol komunikasi perangkat keras yang banyak digunakan, itu tidak sepenuhnya dioptimalkan sepanjang waktu. Implementasi yang tepat dari protokol frame biasanya diabaikan saat menggunakan modul UART di dalam mikrokontroler.

Menurut definisi, UART adalah protokol komunikasi perangkat keras yang menggunakan komunikasi serial asinkron dengan kecepatan yang dapat dikonfigurasi. Asynchronous berarti tidak ada sinyal clock untuk menyinkronkan bit-bit keluaran dari perangkat pengirim ke ujung penerima.

Antarmuka


Gambar 1. Dua UART berkomunikasi secara langsung satu sama lain.

Dua sinyal dari setiap perangkat UART diberi nama:

Tujuan utama saluran pemancar dan penerima untuk setiap perangkat adalah untuk mengirim dan menerima data serial yang ditujukan untuk komunikasi serial.


Gambar 2. UART dengan bus data.

UART pengirim terhubung ke bus data pengontrol yang mengirimkan data dalam bentuk paralel. Dari sini, data sekarang akan ditransmisikan pada saluran transmisi (kawat) secara serial, sedikit demi sedikit, ke UART penerima. Ini, pada gilirannya, akan mengubah data serial menjadi paralel untuk perangkat penerima.

Jalur UART berfungsi sebagai media komunikasi untuk mengirim dan menerima satu data ke data lainnya. Perhatikan bahwa perangkat UART memiliki pin pengirim dan penerima yang didedikasikan untuk mengirim atau menerima.

Untuk UART dan sebagian besar komunikasi serial, kecepatan baud perlu disetel sama pada perangkat pengirim dan penerima. Baud rate adalah kecepatan di mana informasi ditransfer ke saluran komunikasi. Dalam konteks port serial, kecepatan baud yang disetel akan berfungsi sebagai jumlah maksimum bit per detik yang akan ditransfer.

Tabel 1 merangkum apa yang harus kita ketahui tentang UART.

Tabel 1. Ringkasan UART

Wires2Speed9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600, 1000000, 1500000Metode TransmisiAsynchronousJumlah Master Maksimum1Jumlah Slave Maksimum1

Antarmuka UART tidak menggunakan sinyal jam untuk menyinkronkan perangkat pemancar dan penerima; itu mentransmisikan data secara tidak sinkron. Alih-alih sinyal jam, pemancar menghasilkan aliran bit berdasarkan sinyal jamnya sementara penerima menggunakan sinyal jam internalnya untuk mengambil sampel data yang masuk. Titik sinkronisasi dikelola dengan memiliki baud rate yang sama pada kedua perangkat. Kegagalan untuk melakukannya dapat mempengaruhi waktu pengiriman dan penerimaan data yang dapat menyebabkan perbedaan selama penanganan data. Perbedaan baud rate yang diperbolehkan hingga 10% sebelum waktu bit menjadi terlalu jauh.

Transmisi Data

Dalam sebuah UART, mode transmisi berupa paket. Bagian yang menghubungkan pemancar dan penerima mencakup pembuatan paket serial dan mengontrol jalur perangkat keras fisik tersebut. Sebuah paket terdiri dari start bit, data frame, parity bit, dan stop bit.


Gambar 3. Paket UART.

Mulai Sedikit

Jalur transmisi data UART biasanya berada pada level tegangan tinggi saat tidak mentransmisikan data. Untuk memulai transfer data, UART transmisi menarik saluran transmisi dari tinggi ke rendah selama satu (1) siklus clock. Ketika UART penerima mendeteksi transisi tegangan tinggi ke rendah, ia mulai membaca bit dalam bingkai data pada frekuensi baud rate.


Gambar 4. Mulai bit.

Bingkai Data

Bingkai data berisi data aktual yang sedang ditransfer. Panjangnya bisa lima (5) bit hingga delapan (8) bit jika bit paritas digunakan. Jika tidak ada bit paritas yang digunakan, bingkai data dapat memiliki panjang sembilan (9) bit. Dalam kebanyakan kasus, data dikirim dengan bit paling tidak signifikan terlebih dahulu.


Gambar 5. Bingkai data.

Paritas

Paritas menggambarkan kegenapan atau keanehan suatu bilangan. Bit paritas adalah cara bagi UART penerima untuk mengetahui apakah ada data yang berubah selama transmisi. Bit dapat diubah oleh radiasi elektromagnetik, kecepatan baud yang tidak sesuai, atau transfer data jarak jauh.

Setelah UART penerima membaca bingkai data, ia menghitung jumlah bit dengan nilai 1 dan memeriksa apakah totalnya genap atau ganjil. Jika bit paritas adalah 0 (paritas genap), bit 1 atau logika-tinggi dalam bingkai data harus berjumlah genap. Jika bit paritas adalah 1 (paritas ganjil), bit 1 atau logika tertinggi dalam bingkai data harus berjumlah ganjil.

Ketika bit paritas cocok dengan data, UART mengetahui bahwa transmisi bebas dari kesalahan. Tetapi jika bit paritas adalah 0, dan totalnya ganjil, atau bit paritasnya adalah 1, dan totalnya genap, UART mengetahui bahwa bit dalam bingkai data telah berubah.


Gambar 6. Bit paritas.

Hentikan Bit

Untuk memberi sinyal akhir paket data, UART pengirim menggerakkan jalur transmisi data dari tegangan rendah ke tegangan tinggi selama satu (1) hingga dua (2) bit durasi.


Gambar 7. Stop bit.

Langkah-Langkah Transmisi UART

Pertama:UART transmisi menerima data secara paralel dari bus data.


Gambar 8. Bus data ke UART pengirim.

Kedua:UART transmisi menambahkan bit awal, bit paritas, dan bit stop ke bingkai data.


Gambar 9. Bingkai data UART di sisi Tx.

Ketiga:Seluruh paket dikirim secara serial mulai dari bit start sampai bit stop dari UART pengirim ke UART penerima. UART penerima mengambil sampel jalur data pada kecepatan baud yang telah dikonfigurasi sebelumnya.


Gambar 10. Transmisi UART.

Keempat:UART penerima membuang bit awal, bit paritas, dan bit stop dari bingkai data.


Gambar 11. Bingkai data UART di sisi Rx.

Kelima:UART penerima mengubah data serial kembali menjadi paralel dan mentransfernya ke bus data di ujung penerima.


Gambar 12. Menerima UART ke bus data.

Protokol Bingkai

Salah satu fitur utama yang tersedia di UART namun belum sepenuhnya digunakan adalah implementasi protokol bingkai. Penggunaan utama dan pentingnya ini adalah nilai tambah untuk keamanan dan perlindungan di setiap perangkat.

Misalnya, ketika dua perangkat menggunakan protokol bingkai UART yang sama, ada kecenderungan bahwa, saat menghubungkan ke UART yang sama tanpa memeriksa konfigurasi, perangkat akan terhubung ke pin yang berbeda yang dapat menyebabkan malfungsi pada sistem.

Di sisi lain, penerapan ini memastikan keamanan karena kebutuhan untuk mengurai informasi yang diterima sesuai dengan protokol bingkai desain. Setiap protokol bingkai dirancang khusus agar unik dan aman.

Dalam merancang protokol bingkai, perancang dapat mengatur header dan trailer yang diinginkan, termasuk CRC, ke perangkat yang berbeda. Pada Gambar 13, dua (2) byte ditetapkan sebagai bagian dari header.

Kedua:Di bawah peta memori, periksa alamat UART.


Gambar 13. Contoh protokol bingkai UART.

Berdasarkan sampel, Anda dapat menyetel header, cuplikan, dan CRC yang unik untuk perangkat Anda.

Header 1 (H1 adalah 0xAB) dan Header 2 (H2 adalah 0xCD)

Header adalah pengidentifikasi unik yang menentukan apakah Anda berkomunikasi dengan

perangkat yang benar.

Pilihan Perintah (CMD)

Perintah akan bergantung pada daftar perintah yang dirancang untuk membuat komunikasi antara dua perangkat.

Panjang Data (DL) per Perintah

Panjang data akan didasarkan pada perintah yang dipilih. Anda dapat memaksimalkan panjang data tergantung pada perintah yang dipilih, sehingga dapat bervariasi berdasarkan pilihan. Dalam hal ini, panjang data dapat disesuaikan.

Data n (Variasi Data)

Data adalah muatan yang akan ditransfer dari perangkat.

Trailer 1 (T1 adalah 0xE1) dan Trailer 2 (T2 adalah 0xE2)

Trailer adalah data yang ditambahkan setelah transmisi berakhir. Sama seperti Header, mereka dapat diidentifikasi secara unik.

Pemeriksaan Redundansi Siklus (Formula CRC)

Rumus pemeriksaan redundansi bersepeda adalah mode pendeteksi kesalahan tambahan untuk mendeteksi perubahan yang tidak disengaja pada data mentah. Nilai CRC perangkat transmisi harus selalu sama dengan perhitungan CRC di ujung penerima.

Disarankan untuk menambahkan keamanan dengan menerapkan protokol bingkai untuk setiap perangkat UART. Protokol bingkai memerlukan konfigurasi yang sama pada perangkat pengirim dan penerima.

Operasi UART

Saat menggunakan protokol komunikasi perangkat keras apa pun, merupakan prasyarat untuk memeriksa lembar data dan manual referensi perangkat keras.

Berikut langkah-langkah yang harus diikuti:

Pertama:Periksa antarmuka lembar data perangkat.


Gambar 14. Lembar data mikrokontroler.


Gambar 15. Peta memori mikrokontroler.

Ketiga:Periksa detail spesifik untuk UART PORT seperti mode operasi, panjang bit data, bit paritas, dan bit stop. Contoh detail port UART di lembar data:

Port UART
Contoh MCU menyediakan port UART dupleks penuh, yang sepenuhnya kompatibel dengan UART standar PC. Port UART menyediakan antarmuka UART yang disederhanakan ke periferal atau host lain, mendukung full-duplex, DMA, dan transfer data serial secara asinkron. Port UART mencakup dukungan untuk lima hingga delapan bit data, dan tidak ada paritas, genap, atau ganjil. Sebuah frame diakhiri oleh satu setengah atau dua stop bit.

Keempat:Periksa detail operasi UART, termasuk perhitungan baud rate. Baud rate dikonfigurasi menggunakan rumus contoh berikut. Rumus ini bervariasi tergantung pada mikrokontroler.

Detail contoh operasi UART:

dimana,

OSR (kecepatan sampel berlebih)
UART_LCR2.OSR =0 hingga 3
DIV (pembagi laju baud)
UART_DIV =1 hingga 65535
M (DIVM fraksional baud rate M)
UART_FBR.DIVM =1 sampai 3
N (DIVM fraksional baud rate M)
UART_FBR.DIVN =0 sampai 2047

Kelima:Untuk baud rate, pastikan untuk memeriksa jam periferal (PCLK) apa yang akan digunakan. Dalam contoh ini, tersedia PCLK 26 MHz dan PCLK 16 MHz. Perhatikan bahwa OSR, DIV, DIVM, dan DIVN berbeda-beda untuk setiap perangkat.

Tabel 2. Contoh Baud Rate Berdasarkan PCLK 26 MHz

Rasio Baud OSR DIV DIVM DIVN 9600324310781152003411563

Tabel 3. Contoh Baud Rate Berdasarkan PCLK 16 MHz

Rasio Baud OSR DIV DIVM DIVN 960031731078115200322348

Keenam:Bagian selanjutnya adalah memeriksa register rinci untuk Konfigurasi UART. Perhatikan parameter dalam menghitung baud rate seperti UART_LCR2, UART_DIV, dan UART_FBR. Tabel 4 akan mengarah ke register khusus untuk dicakup.

Tabel 4. Deskripsi Register UART

Nama Deskripsi UART_DIVPembagi kecepatan baudUART_FIBRKecepatan baud fraksionalUART_LCR2Kontrol baris kedua

Ketujuh:Di bawah setiap register, periksa detailnya dan ganti nilai untuk menghitung baud rate, lalu mulailah mengimplementasikan UART.

Mengapa Penting?

Keakraban dengan protokol komunikasi UART bermanfaat ketika mengembangkan produk yang kuat dan didorong oleh kualitas. Mengetahui cara mengirim data hanya menggunakan dua kabel, serta cara mengangkut seluruh paket data atau muatan, akan membantu memastikan bahwa data ditransfer dan diterima tanpa kesalahan. Karena UART adalah protokol komunikasi perangkat keras yang paling umum digunakan, pengetahuan ini dapat memungkinkan fleksibilitas desain dalam desain masa depan.

Kasus Penggunaan

Anda dapat menggunakan UART untuk banyak aplikasi, seperti:

Referensi

“Dasar-dasar Komunikasi UART.” Pusat Elektronik, Juli 2017.

Campbell, Scott. “Dasar-dasar Komunikasi UART.” Dasar-dasar Sirkuit . Keim, Robert.

“Kembali ke Dasar:Penerima/Pemancar Asinkron Universal.” Semua Tentang Sirkuit , Desember 2016.

“Apa itu Protokol UART? Komunikasi UART Dijelaskan.” Panah.


Tertanam

  1. Memahami Proses Pembuatan Poros
  2. Memahami Pentingnya Budaya Cloud
  3. Memahami manfaat pemeliharaan prediktif
  4. Memahami Dasar-dasar Mesin Penggilingan
  5. Memahami Garis Potong ke Panjang
  6. Memahami berbagai jenis tegangan sisa
  7. Memahami kerja shock absorber
  8. Memahami berbagai jenis aliran fluida
  9. Memahami istilah kopling
  10. Memahami fleksibilitas suatu material