Saya ingin membuat komunikasi antara PIC18F4550 dan PC saya, tetapi saya buntu apakah saya harus menggunakan UART atau USART untuk jarak jauh. Kapan lebih menguntungkan menggunakan yang satu daripada yang lainnya?
Saya ingin membuat komunikasi antara PIC18F4550 dan PC saya, tetapi saya buntu apakah saya harus menggunakan UART atau USART untuk jarak jauh. Kapan lebih menguntungkan menggunakan yang satu daripada yang lainnya?
Jawaban:
Untuk tujuan Anda, UART dan USART adalah hal yang sama. UART singkatan dari penerima / pemancar asinkron universal . S tambahan di USART berarti sinkron . Hanya saja sedikit kemampuan yang ditambahkan Microchip memberi modul untuk membuatnya lebih berguna dalam beberapa kasus. Kemampuan ekstra itu tidak berlaku dalam kasus Anda.
Port PC COM hanya membutuhkan UART untuk diajak bicara. Fakta bahwa USART dapat digunakan dengan cara yang berbeda tidak relevan bagi Anda, kecuali bahwa Anda mungkin memiliki beberapa bit konfigurasi tambahan yang harus diatur dengan cara yang benar.
Jawaban Singkat: Gunakan chip yang Anda miliki
Untuk sepenuhnya memeriksa pertanyaan, perlu diterjemahkan sandi:
Sebuah U niversal A sinkron R eceiver T ransmitter tradisional "port serial" Anda. Hal ini asynchronous dalam arti bahwa hanya satu sinyal yang terlibat - tidak ada jam ditransmisikan, dan bukan penerima harus memulihkan jam, biasanya dengan oversampling.
Sebaliknya sebuah U niversal S ynchronous A sinkron R eceiver T ransmitter adalah lebih fleksibel perangkat dengan UART-gaya asynchronous mode, tetapi yang bisa juga opsional dapat dikonfigurasi untuk beroperasi di sinkron mode di mana jam dikirim bersama dengan data. Tergantung pada kemampuan, ini mungkin termasuk interoperasi dengan format serial sinkron yang terkenal, misalnya SPI atau I2S.
Beberapa MCU dapat menawarkan kedua jenis periferal. Untuk kebutuhan serial asinkron dasar, Anda dapat memilih salah satunya. Namun pilihan Anda mungkin dipengaruhi oleh pin di mana periferal tertentu dapat beroperasi, kebutuhan lain dalam sistem, dll. Bootloader ROM pabrik mungkin hanya beroperasi pada beberapa periferal dan bukan yang lain. Mungkin juga ada perbedaan dalam dukungan buffer, panjang kata, dukungan paritas, sinyal kontrol terkait, dll. Dan antarmuka perangkat lunak mungkin sangat berbeda antara keduanya.
Mereka pada dasarnya adalah hal yang sama untuk mikrokontroler Anda.
USART singkatan dari penerima / pemancar asinkron dan sinkron universal. UART singkatan dari penerima / pemancar asinkron universal.
Transmisi data asinkron sebagian besar waktu akan digunakan dalam protokol komunikasi ini. Transmisi data Synchronous jarang digunakan karena Anda memiliki protokol komunikasi sinkron yang jauh lebih baik seperti SPI & I2C.
Mikrokontroler (MCU) Anda memiliki Universal Synchronous / Asynchronous Receiver / Transmitter (USART) di dalamnya. Unit fungsional ini mendukung mode komunikasi sinkron dan mode komunikasi asinkron.
Dalam mode sinkron, pemancar Tx terhubung ke penerima Rx dengan kabel JAM dan kabel DATA. Sekali per periode JAM, Tx mengirimkan bit lain pada DATA dan Rx mengambil bit lain dari DATA. Waktu transfer diatur oleh CLOCK dan oleh karena itu diketahui oleh Tx dan Rx. Jadi Tx dan Rx dapat menggunakan bit rate yang lebih tinggi daripada dalam mode asinkron.
Namun, dua kabel / pin konektor diperlukan sebagai ganti dari satu dan kemiringan yang berlebihan atau jitter antara CLOCK dan DATA menyebabkan data rusak diterima. Waktu dalam driver saluran dan penerima saluran yang membawa CLOCK dan DATA harus dicocokkan secara erat untuk mengurangi kemiringan ini. Baik antarmuka dan faktor dua-kawat menjadi lebih menonjol pada jarak yang lebih jauh, dengan kabel panjang dan / atau banyak koneksi hop.
Dalam mode asinkron, transmitter Tx terhubung ke receiver Rx oleh kabel DATA. Sekali per periode waktu, Tx mengirimkan bit lain pada DATA dan Rx mengambil bit lain dari DATA. Waktu transfer diatur oleh osilator terpisah frekuensi di Tx dan Rx, yang masing-masing tidak diketahui yang lain dan akan sedikit berbeda. Oleh karena itu laju bit maksimum yang dapat diandalkan lebih rendah daripada untuk mode sinkron.
Pada awal setiap byte baru, Rx menggunakan transisi bit STOP-START mulai untuk menyinkronkan ulang ke waktu urutan bit yang masuk. Hal ini membuat penundaan dari driver garis / penerima, kabel dan konektor tidak relevan dengan waktu periode bit, meskipun tidak dengan kualitas bit. Hanya satu kawat yang dibutuhkan per sinyal komunikasi, bukan dua, mengurangi biaya kabel, konektor dan driver / penerima saluran.
Jadi itu tergantung pada biaya yang dapat Anda terima, jarak yang Anda tempuh dan kemampuan Tx dan Rx. PC Anda cenderung hanya mendukung mode asinkron pada port COM standar, yang membutuhkan port khusus (PCIe atau USB, kemungkinan USB) untuk mode sinkron.