UART veya Evrensel Asenkron Alıcı Verici, verici tarafında paralel – seri veri dönüşümünü ve alıcı tarafında seri – paralel veri dönüşümünü gerçekleştiren seri bir iletişim cihazıdır. Evrenseldir çünkü aktarım hızı, veri hızı vb. gibi parametreler yapılandırılabilir.Daha net olmak gerekirse UART, asenkron seri veri iletimi için kullanılan elektronik bir cihazdır.
UART veya Evrensel Asenkron Alıcı Verici, seri iletişim ile ilgili özel bir donanımdır. UART için donanım, mikrodenetleyiciye entegre bir devre veya özel bir IC olabilir. Bunun için sadece iletişim protokolleri olan SPI veya I2C’ye zıttır. UART kendisine ait ayrı bir saatli alıcı ve vericiden oluşur. Elektriksel sinyal seviyeleri ve yöntemleri UART’a harici bir sürücü devresi tarafından gerçekleştirilir.
UART, en basit ve en yaygın kullanılan seri iletişim tekniklerinden biridir. Neredeyse tüm mikrodenetleyiciler mimarileri için yerleşik UART donanımlarına sahiptir. UART donanımını mikrodenetleyicilere entegre etmenin temel nedeni seri bir iletişim olması ve iletişim için sadece iki kablo gerektirmesidir.
Günümüzde GPS Alıcıları, Bluetooth Modülleri, GSM ve GPRS Modemleri, Kablosuz Haberleşme Sistemleri, RFID tabanlı uygulamalar vb. birçok uygulamada kullanılmaktadır.
Eski bilgisayar sistemlerini hatırlıyorsanız, Fare, Yazıcı ve Modem gibi aygıtlar arkadaki ağır konektörler kullanılarak bağlanır. Tüm bu cihazlar UART kullanarak iletişim kurar.
USB, bilgisayarlardaki ve diğer aygıtlardaki tüm iletişim standartlarını değiştirse de, yukarıda belirtilen uygulamalarda UART halen kullanılmaktadır.
UART İletişimine Giriş
Giriş bölümünde belirtildiği gibi UART, işlemci ile seri iletişim protokolü veya portu arasında köprü görevi gören bir donanım parçasıdır. Aşağıdaki görüntü bu arayüzü kısaca göstermektedir. Seri iletişim, USB, RS – 232, vb. Gibi herhangi bir şey olabilir.
UART’taki ‘A’ harfi Asenkronize anlamına gelir, yani vericiden iletilen ve alıcı tarafından alınan verileri senkronize edecek veya doğrulayacak saat sinyali yoktur (Asenkron Seri İletişim).
Bu aralarındaki verileri “Senkronize etmek” için verici ile alıcı arasında paylaşılan bir saat sinyali kullanan Senkron Seri İletişim’in tam tersidir. Senkron seri iletişimde bir saat sinyali paylaşırlar.
Verici ve alıcı arasında saat (veya başka bir zamanlama sinyali) yoksa, alıcı verinin ne zaman okunacağını nasıl bilir?
Bu haberleşmede verici ve alıcı önceden zamanlama parametreleri üzerinde anlaşmalıdır. Ayrıca UART, verici ve alıcıyı senkronize etmek için her bir veri kelimesinin başında ve sonunda özel bitler kullanır. Daha sonraki bölümlerde bu özel bitler hakkında daha fazla bilgi vereceğim.
UART tabanlı Seri Haberleşmede, verici ve alıcı aşağıdaki şekilde iletişim kurar. Gönderici cihazdaki UART, yani verici UART, CPU’dan (mikroişlemci veya mikroişlemci) paralel verileri alır ve seri verilere dönüştürür. Bu seri veri alıcı cihazdaki UART’a iletilir, yani UART alır. Alınan UART, seri verileri aldıktan sonra, verileri tekrar paralel verilere dönüştürür ve CPU’ya verir.
Seri veriyi ileten verici UART’ın üzerindeki pime TX, seri veriyi alan alıcı UART üzerindeki pime RX denir.
UART, paralel – seri ve seri – paralel veri dönüşümünü içerdiğinden, kaydırma kayıtları UART donanımının önemli bir parçasıdır (spesifik olması gereken iki kaydırma kaydı: Verici Kaydırma Kaydı ve Alıcı Kaydırma Kaydı).
Paralel Haberleşme vs. Seri Haberleşme
Bilgisayar sistemlerinden, data iletiminin iki farklı yolu vardır; paralel ve seri iletim. Seri iletişimde veri bir seferde bir bit olarak iletilirken, paralel iletişimde veri blok olarak iletilir.
Paralel iletişim, seri iletişimden daha hızlı olduğu için bir bilgisayardaki dahili bağlantılar veri iletimi paralel şekildedir. Ancak uzun mesafeli ve yüksek frekanslı veri aktarımı için paralel mod uygun değildir ve bu gibi durumlarda seri haberleşme metodu kullanılır. Ayrıca, paralel modda kullanılan çoklu hatlar iletişim sürecinin masrafını artırabilir. Aynı nedenlerden ötürü, seri iletişim yaygın olarak bir bilgisayar ile çevre birimleri arasındaki veri aktarımında kullanılır. Seri haberleşme için kullanılan mikrodenetleyicilerdeki çevresel modüllerin bazıları USART, SPI, I2C ve USB’dir.
Seri iletişim, senkron ve asenkron iletişim olarak iki gruba ayrılır.
a. Senkron Seri İletişim
Senkron seri iletişimde, alıcı (receiver) ve verici (transmitter) birbirleriyle aynı saati paylaşır. Aksi takdirde, gönderen, alıcının verinin bir sonraki bitini okumasını isteyen bir zamanlama sinyali sağlar. Veri iletimi sırasında, belirli bir anda iletilebilecek veri yoksa, verilerin daima iletildiğinden emin olmak için bir doldurma karakteri gönderilecektir. Yazıcılarda ve diğer sabit masa cihazlarında, bir saat farklı bir kablo setine gönderilirken veriler bir kablo setine gönderilir.
b. Asenkron Seri İletişim
Asenkronize bir veri iletimi tipinde, veri gönderen tarafından bir saat sinyali gönderilmeden iletilmelidir. Bu durumda gönderici ve alıcı iletim hızıyla (Baudrate) uyumlu hale gelir. Erişen verinin bu anlaşmayı takip ettiğinden emin olmak için, hem gönderici hem de alıcı kendi dahili devrelerini kurarlar.
Gönderme ve alma birimlerini senkronize etmek için her kelimeye özel bitler eklenir. İletilmesi gereken her kelimenin başına Başlangıç Biti adı verilen bir bit eklenir. Başlangıç biti‘nden sonra, en az anlamlı olan bit ilk gönderilen bittir ve ardından bitlerin geri kalanı birbiri ardına iletilir. Ayrıca veriye alıcı tarafından hata kontrolü için kullanılabilmesi için verici tarafından da bir eşlik biti eklenebilir. Eşlik bitinden sonra verici bir durdurma biti gönderir. Tüm verileri aldıktan sonra, alıcı bir eşlik biti olup olmadığını kontrol eder.
Eşlik biti isteğe bağlı olduğundan, alıcı ve gönderenin eşlik bitinin kullanılıp kullanılmayacağı konusunda hemfikir olması gerekir. Veri bitlerinin ve eşlik bitinin iletilmesinden sonra, durdurma biti alınmaktadır. Durdurma biti veri bitlerinden sonra bulunmazsa, alıcı bunu bir çerçeveleme hatası olarak tanımlar ve ana bilgisayar işlemcisine bir çerçeveleme hatası sinyali gönderir. Bu hata, gönderici ve alıcı aynı hızda çalışmadığında meydana gelir.
Çalışma Prensibi
İlk UART’ın verici pimi, ikinci cihazın alıcı pimine ve alıcı pimi de iletim pimininkine bağlar. Böylece, veri gönderme piminden alıcı UART’ın alma pimine akar. UART bir asenkron seri iletim olduğundan, saatler kullanmaz. Veri, baud rate hızı adı verilen cihazlar arasında önceden belirlenmiş bir hızda iletilir.
Baud Rate Hızı
Veri aktarımında Baud hızı, saniyede aktarılan sembol sayısını ifade eder. Bir sembol, sabit sayıda bit grubudur. Haliyle bir saniyede aktarılan bit sayısı ve baud hızı olan bit hızı, bir sembol yalnızca bir bit olduğunda eşit olacaktır.
Veri Çerçeveleme
UART üzerindeki veriler paket halinde iletir. Her veri paketi 1 başlangıç biti, 5 ila 9 veri biti, isteğe bağlı bir eşlik biti ve 1 veya 2 durdurma biti içerebilir.
UART veriyi veri yolundan alır ve bu veri CPU, bellek ya da mikrodenetleyici tarafından gönderilir. Veri yolundan UART’a veri iletimi paralel modda. Bir veri paketi oluşturan UART, veri yolundan alınan verilere başlangıç biti, eşlik biti ve bir durdurma biti ekler. Bu veri paketi, verici tarafından seri olarak alıcı UART’a iletilir. UART alıcısının alıcı pimi veriyi bit bit okur. Bu veriler yine UART alıcısında paralel forma dönüştürülür ve alıcı UART, başlangıç biti, parite biti ve durdurma bitlerini çıkardıktan sonra alıcı ucundaki veri yoluna gönderilir.
Başlangıç (Start) Biti
Veri iletimi olmadığında, UART’ın iletim hattı yüksek voltajda (HIGH) tutulur. Veri transferini başlatmak için, bir saat döngüsü için voltaj yüksekten düşüğe çekilir. Bu geçiş başlangıç biti olarak işlev görür. Bu bitin amacı, alıcıyı veri kelimesinin gönderileceği konusunda uyarmaktır. Ayrıca, alıcıdaki saati vericideki saatle senkronize etmeye zorlar. Alıcı UART yüksek-düşük voltaj geçişini tespit ettiğinde veri çerçevesini baudrate frekansında okumaya başlar.
Parity
İletim sırasındaki verilerdeki değişimi belirtmek için bir eşlik biti kullanılır. Uyumsuz baud oranları, elektromanyetizma veya uzun mesafeli veri aktarımı dahil verilerdeki değişimin birkaç nedeni vardır. Veri çerçevesini aldıktan sonra, UART veri çerçevesindeki toplam bit sayısının çift mi yoksa tek mi olduğunu kontrol eder. Bu, 1 değeri olan bitlerin sayısı sayılarak yapılır. Eşlik biti 0 ise, veri çerçevesindeki bitlerin sayısı bir çift sayıdır. Eşlik biti 1 ise, veri çerçevesindeki bit sayısı tekdir. Eşlik biti verilerle uyuşmuyorsa, UART veri çerçevesindeki bir hatayı tanımlar.
Durdurma (Stop) Biti
Veri paketinin sonunu işaretlemek için, gönderen UART, veri iletim hattını asgari iki bitlik bir süre boyunca düşük bir voltajdan yüksek bir voltaja doğru yönlendirir.
UART’ta başlangıç, parity ve durdurma bitlerini işlemez ve veri doğru olarak alınmasın veya alınmasın otomatik olarak bu bitleri atar. Eşzamansız veri iletimi ‘kendi kendine senkronize’ olduğu için, belirli bir zamanda veri iletilmezse, iletim hattı boşta kalır.
UART UYGULAMALARI
Bu haberleşme genellikle mikrodenetleyicilerde görülür. Mikrodenetleyicilerde UART’lar belirli amaçlar için kullanılır. Ayrıca Bluetooth modülleri, kablosuz iletişim, GPS üniteleri, modemler ve diğer birçok günlük uygulamalar gibi cihazlarda bulunur.
RS-232 dışında, RS-422 ve TIA gibi iletişim standartları da bu haberleşmeden yararlanmaktadır. Genel olarak, bir UART seri iletişim için kullanılan bireysel bir entegre devredir, ancak iki UART’ın bir kombinasyonu olan çift UART veya DUART vardır. Genellikle mikrodenetleyicilere yerleştirilirler. Octal UART veya OCTART, iki UART’ı tek bir yongada birleştirir.
Avantajları
- En çok kullanılan seri standart
- Eşlik bitlerini kullanarak hata denetimi
- Değişken veri paketi
- Veri iletimi için sadece iki kablo kullanır ve saat yok
Dezavantajları
- UART çoklu ana çoklu bağımlı yapılandırmalarını desteklemiyor
- Veri aktarım hızı (baud hızı) daha önce sabitlenmeli, diğerlerinden farklı olamaz.
güzel