UART ve RS-232 arasındaki fark?


80

RS-232 ve UART çoğu zaman seri iletişim teorilerinde bir araya geliyor. İkisi de aynı mı? Okumalarımdan, UART'ın RS-232 protokolünün bir donanım şekli olduğu sonucuna vardım. Doğrumuyum?


1
Yukarıdaki cevaplar, farklılıklar hakkında fikir vermiştir. Ancak bu konuyu daha ayrıntılı olarak tartışan Ulusal Enstrümanlardan bir link ekleyerek bu cevapları eklemek istiyorum. Bağlantı
aşağıdadır

Yanıtlar:


80

Hayır, UART ve RS-232 aynı değildir.

UART, bir dizi bit gönderip almaktan sorumludur. Bir UART'ın çıkışında bu bitler genellikle mantık seviyesi voltajlarla temsil edilir. Bu bitler RS-232, RS-422, RS-485 veya belki de bazı özel şartlar olabilir.

RS-232 voltaj seviyelerini belirtir . Bu voltaj seviyelerinin bazılarının negatif olduğuna ve ayrıca ± 15V'ye ulaşabileceklerine dikkat edin. Daha büyük voltaj salınımı RS-232'yi parazitlere karşı daha dirençli kılar (yalnızca bir ölçüde de olsa).

Bir mikrodenetleyici UART kendi başına bu gibi voltaj seviyelerini üretemez. Bu ek bir bileşen yardımı ile yapılır: RS-232 hat sürücüsü. RS-232 hat sürücüsünün klasik bir örneği MAX232'dir . Veri sayfasını gözden geçirirseniz, bu IC'nin + 5V'dan ± 10V üreten bir şarj pompasına sahip olduğunu fark edeceksiniz.

görüntü tanımını buraya girin ( kaynak )


4
Okuduğum RS-232 tanımı, bir dizi bit ya da zamanlama hakkında hiç konuşmuyor. Asenkron NRZ start-stop protokolünü tanımlayan resmi bir standart bulamadım aslında.
Wouter van Ooijen

1
RS-232, bit dizisi belirtmiyor.
Slebetman

Görünüşe göre, UART karakter biçiminin gelişimi, Bell telefon şirketi tarafından hiçbir çeşitlilik ortaya çıkmayan baskın çıktı. Sonuç olarak, start / data / parity / stop bit formatı hiçbir zaman bağımsız bir standardın konusu olmadı. Endüstri çapında kullanım o kadar üniformdu ki "resmi" bir tanım gerekli değildi. Bu fiziksel bağlantılar için doğru değildi ve bu yüzden RS-232 geliştirildi.
WhatRoughBeast

3
UART karakter formatları Bell'in modemlerini yüceltiyor, ASCII'de Teletype donanımında (eşlikli sekiz bit) ve ondan önce Baudot'du.
Whit3rd

33

UART (veya USART) - Evrensel (Senkron) Asenkron Alıcı / Verici

Bu, esasen bir seri iletişim arayüzüdür. "Evrensel" kısım, birçok farklı özel seri protokolü destekleyecek şekilde yapılandırılabileceği anlamına gelir. Terim geneldir ve belirli bir standardı temsil etmemektedir. En azından , bir seri veri akışı gönderen ve bir seri veri akışı alan bir TXve bir RXçizgisi olduğu anlamına gelir .

RS-232 - İki cihaz arasındaki sinyalleri tanımlayan, sinyal isimlerini, amaçlarını, voltaj seviyelerini, konektörleri ve pinleri tanımlayan bir standart.

Bu, ekipmanın birlikte çalışabilirliğini sağlayan özel bir arayüz standardıdır. İki donanım parçası UART'lara sahip olsa da, aynı pinout ve voltaj standartlarına sahip olmadıklarını bilmediğiniz sürece hasarsız bağlanacaklarını veya düzgün bir şekilde iletişim kuracaklarını ya da ara bağlantılarına özgü özel bir kablolu kablo içermediklerini bilmiyorsunuz. bu iki spesifik cihaz. Özel dönüştürücü veya kablo ihtiyacını önlemek için, üreticiler RS-232 standardını izlemeyi seçebilirler. Öyleyse, standart bir RS-232 kablosunun ikisini bağlayacağını biliyorsunuz.

Bununla birlikte, ne UART ne de RS-232 standardı TXve RXsatırlarında ne gönderileceğini tanımlamaz . Genellikle, insanlar RS-232 kullandıklarında, bir başlangıç ​​biti ve bir durdurma biti ile kodlayan basit bir 8 bit NRZ kullanırlar. Günümüzde üretilen çoğu ekipman bu kodlamayı kullanır, ancak bunu yapmak için bir gereklilik yoktur. Eşlik bitlerini içeren veya 7 veya 9 bit kullanan eski donanımları bulabilirsiniz. UART, bu çeşitli protokoller destekleyecek şekilde konfigüre edilebilir TXve RXhatlar.

UART'ler tipik olarak doğrudan RS-232 ile arayüz oluşturmaz. UART çıkışını, RS-232'nin gerektirdiği +/- 12V standardına dönüştürmeniz gerekir. Tam bir RS-232 arayüzü tipik olarak hem UART hem de RS-232 seviye dönüştürücüsünü içerecektir. Ayrıca, RS-232 standardı, ayrıca bağlanmanız gereken donanıma bağlı olarak kullanmanız gerekebilecek TXve diğer birkaç sinyal piminin tanımını içerir RX. Bunların ayrıca seviye dönüştürülmüş olması gerekir ve UART'ınız bu sinyalleri destekleyebilir veya desteklemeyebilir. Aksi takdirde, onları doğrudan yazılım / ürün yazılımı ile kontrol etmeniz gerekecektir.

Dolayısıyla, bir UART bir RS-232 arayüzü uygulamanıza yardımcı olabilirken, bir RS-232 arayüzü kendisi değildir.


Standart RS-232 kablosu? Böyle bir şey yok. Ekipman çantamda RS-232 için bir düzine adaptör takılıyorum. RS-232 bir DB-25 konektörünü belirtir, ancak DD-9, RJ45, din8 ve diğer konektörleri gördüm ve bir modemi bir PC'ye bağlamaktan başka hiçbir rs232 projesi için COTS kablosu kullanamadım. Neyse ki, birkaç adaptörün yapacağı zamanın% 90'ı veya özel bir kablo, bunların yapılması kolaydır.
hildred

Sadece kayıt için: USART'da 'S'nin "Seri" değil "Senkron" anlamına geldiğini düşünüyorum. Buraya bakınız . USART'lar, senkronize iletişim modlarına da izin veren eski UART yongaları üzerindeki "ifadeler" dir.
Lorenzo Donati,

14

UART, paralel veriyi PC veriyolu hatlarından seri sürücülere, hat sürücüleri üzerinden RS-232, RS-422 ve RS-485 cihazlarına aktarmak için seri veriye dönüştürür . UART çipinin saat pimi programlanabilir bir saat kaynağı tarafından beslenir. Saat hızı, cihazın kullanacağı baud hızı yapılandırmasıyla belirlenir. Saat hızı 16 X baud hızıdır. Bir osiloskop sondasının bir UART çipinin saat pimine yerleştirilmesi ve frekansın belirlenmesi, ardından 16'ya bölünmesi, bilinmeyen bir baud hızını belirlemenin bir yoludur.


5
"Paralel veriyi seri veriye dönüştürme" için +1, burada başka bir cevabı belirtmiyor.
TisteAndii
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.