Bugün sizlerle paylaşacağım yazımda IOT ile ilgilenen uzmanların en temel bilmesi gereken haberleşme standartlarından birisi olan ve en çok kullanılan seri haberleşme standardı UART (Universal Asynchronous Receiver/Transmitter) ile ilgili bilgi vereceğim. Bir bilgisayar sisteminde, verinin iletilebileceği seri ve paralel olmak üzere iki yol vardır. Seri iletişimde, veriler bir seferde bir bit olarak iletilirken, paralel iletişimde, veri bloklar halinde iletilmektedir, aralarındaki fark bu şekilde oluşur.
Paralel iletişim, seri iletişimden daha hızlı olduğu için, bir bilgisayardaki iç bağlantılar, veri aktarımları paralel modda yapılmaktadır. Ancak, uzun mesafe ve yüksek frekanslı veri aktarımı için, paralel modun uygun değildir ve bu gibi durumlarda, bir seri iletişim yöntemi kullanılması gerekmektedir. Bu sebeple, seri iletişim bir bilgisayar ve çevre aygıtları arasında veri aktarımında yaygın olarak kullanılır. Seri iletişim için kullanılan mikro denetleyicilerdeki bazı çevresel modüller USART, SPI, I2C ve USB örnek gösterilebilir. Seri iletişimi, senkron ve asenkron iletişim olarak ikiye ayırabiliriz.

Senkron Seri İletim

Senkron veri aktarımında gönderici ve alıcı birbirleriyle ortak zamanlama saatini paylaşır. Aksi halde, gönderici, alıcının verinin bir sonraki biti okumasını isteyen bir zamanlama sinyali sağlar. Veri iletimi sırasında, belirli bir anda iletilecek veri yoksa, verilerin her zaman iletildiğinden emin olmak için bir dolgu karakteri gönderilir. PC’deki standart seri iletişim donanımı senkronize işlemleri desteklemez.

Asenkron Seri İletim

Eşzamansız bir veri iletimi tipinde, veri gönderici tarafından gönderilen ortak zamanlama sinyali olmaksızın iletilmelidir. Genel durumda, gönderen ve alıcı, iletim hızıyla uyumludur. Verilerin bu anlaşmayı takip ettiğinden emin olmak için, hem gönderen hem de alıcı kendi dahili devrelerini kurar. Gönderen ve alan birimlerini senkronize etmek için her kelimeye özel bitler eklenir. İletilmesi gereken her kelimenin başlangıcına ‘Başlangıç Bit’ adı verilen bir bit eklenir. Bu bitin amacı alıcıya, veri kelimesinin gönderilmek üzere olduğunu bildirmektir. Böylece alıcıdaki saat ile vericideki saat senkronize etmek için zorlanır. Gönderenin ve alıcı zamanlamasının, sözcüğün kalan bitlerinin aktarımı sırasında daha büyük frekans kaymasını önlemek için yeterince doğru olması gerekmektedir.
‘Başlangıç biti’ den sonra, en az anlamlı ilk bit gönderilir ve onu takip eden bitlerin geri kalanı birbiri ardına iletilir. Alıcı tarafından hata kontrolü için kullanılabilecek verici tarafından bir eşlik biti eklenir. Parite bittikten sonra, verici bir durdurma biti gönderir. Tüm verileri aldıktan sonra, alıcı bir eşlik biti ile kontrol eder. Parite biti isteğe bağlı olduğundan, alıcı ve gönderen, eşlik biti kullanılıp kullanılmayacağına karar vermelidir. Veri bitleri ve eşlik biti iletildikten sonra durdurma biti alınır. Durdurma biti veri bitlerinden sonra bulunamazsa, alıcı bir çerçeveleme hatası olarak bunu tanımlar ve işlemciye bir çerçeveleme hatası sinyali gönderir. Bu hata gönderen ve alıcı aynı hızda çalışmadığında gerçekleşir.

UART nedir

Yazıcıların, farelerin ve modemlerin bu büyük ve karmaşık konnektörlerle kalın kablolara sahip olduklarını hepimiz hatırlıyordur. Bu cihazlar muhtemelen bilgisayarınızla iletişim kurmak için UART iletişimini kullanıyordu. Evrensel asenkron alıcı / verici (UART), verileri seri olarak ileten entegre bir devredir. Başka bir deyişle, UART, verilerin asenkron seri iletimi için kullanılan elektronik bir cihazdır. UART ayrı bir zamanlamalı alıcı ve vericiden oluşur. Veri formatı ve aktarım hızları UART’de yapılandırılabilir. UART ayrıca bir bilgisayarın arabirimini bağlı seri aygıtlarına kontrol eden programlama ile mikroçip olarak kabul edilebilir.
UART, bilgisayarı RS-232 veri terminali ekipmanı arabirimi ile sağlar. Bunun yardımıyla UART, modemler ve diğer seri cihazlarla veri alışverişi yapabilir. Ayrıca, RS-232 arabirimi, UART’ın, bilgisayarın paralel devreleri boyunca aldığı baytları, giden iletim için tek bir seri bit akışına dönüştürmesini sağlar. UART, seri bit akışını, gelen iletimde bilgisayarın işlediği baytlara dönüştürür. Diğer işlevler arasında, klavyeden ve fareden bir kesme işleminin yapılması, giden iletimlere eşlik biti eklenmesi, gelen baytların paritesinin kontrol edilmesi ve eşlik biti atılması yer alır.

UART’ın paralel tarafı genellikle bir bilgisayarın veri yoluna bağlanır. USART (evrensel senkron / asenkron alıcı / verici), senkron çalışmayı destekleyen yakından ilişkili bir cihazdır.

Çalışma prensibi

UART’ın iletim pini ikinci cihazın alıcı pinine bağlanır. Böylece veri, gönderme pininden alıcı UART’ın alma pinine akar. UART bir asenkron seri iletim olduğundan, zamanlama kullanmaz. Veri baud hızı denilen cihazlar arasında önceden belirlenen bir hızda iletilir. Veri iletecek olan UART, veri yolundan veri alır. Veri yolu, UART’a CPU, bellek veya mikrodenetleyici gibi başka bir cihaz tarafından veri göndermek için kullanılır. Veri, veri yolundan paralel UART’a iletilir. Gönderen UART, paralel veriyi veri yolundan aldığında, veri paketini yaratarak bir başlangıç biti, bir eşlik biti ve bir durdurma biti ekler. Ardından, veri paketi seri olarak, Tx piminde bir bit olarak çıkar. Alıcı UART, veri paket bitini Rx pimine göre okur. Alıcı UART daha sonra verileri tekrar paralel forma dönüştürür ve başlangıç biti, eşlik biti ve durdurma bitlerini kaldırır. Son olarak, alıcı UART veri paketini alıcı uçtaki veri yoluna paralel olarak aktarır.

UART İletişim Adımları

1. İletici UART, veri yolundan paralel olarak veri alır.
2. UART aktarımı, başlangıç biti, eşlik biti ve durdurma biti / bitlerini veri çerçevesine ekler.
3. Paketin tamamı, verici UART'tan alıcı UART'a seri olarak gönderilir. Alıcı UART önceden ayarlanmış olan baud hızındaki veri hattını örnekler.
4. Alıcı UART, başlangıç biti, eşlik biti ve durma bitini veri çerçevesinden atar.
5. Alıcı UART, seri verileri paralel olarak geri dönüştürür ve alıcı ucundaki veri yoluna aktarır.

Baud hızı

Veri aktarımındaki baud hızı, saniyede aktarılan sembollerin sayısını ifade eder. Bir sembol, sabit sayıda bit grubudur. Bir sembolde sadece bir bit olduğunda, saniyede aktarılan bit sayısı ve baud hızı eşit olur.

Veri çerçeveleme

UART, verileri paketler halinde iletir. Her veri paketi 1 başlangıç biti, 5 ila 9 veri biti, bir isteğe bağlı eşlik biti ve 1 veya 2 durdurma biti içerebilir.

UART verileri veri yolundan alır ve bu veriler CPU, bellek veya mikrodenetleyici tarafından gönderilir. Veri yolundan UART’a veri iletimi paralel moddadır. UART, bir veri paketi oluşturan veri yolundan alınan verilere başlangıç biti, eşlik biti ve bir durdurma biti ekler. Bu veri paketi verici tarafından alıcı UART’a seri olarak iletilir. Alıcı UART’ın alıcı pimi, veri bitini okur. Bu veriler tekrar alıcı UART’da paralel forma dönüştürülür ve alıcı UART, başlangıç biti, eşlik biti ve durdurma bitlerini kaldırdıktan sonra alıcı ucunda veri yoluna gönderilir.

Başlangıç Biti

Veri iletimi olmadığında, UART iletim hattı yüksek voltajda tutulur. Veri aktarımını başlatmak için voltaj, bir saat döngüsü için yüksekten alçağa çekilir. Bu geçiş başlangıç biti gibi davranır. Alıcı UART alçak gerilim geçişini algıladığında, veri çerçevesini baud hızının frekansında okumaya başlar.

Veri çerçevesi

Veri bitleri genellikle 5 ila 8’dir. Parite biti kullanılmazsa, 9 bit uzunluğunda olabilir. Genel durumda, önce verilerin en az anlamlı biti iletilir.

Parite

Parite bir sayının düzgünlüğünü veya farklılığını tanımlar. Aktarım sırasında verinin değiştiğini göstermek için bir eşlik biti kullanılır. Eşleşmeyen baud oranları, elektromanyetizma veya uzun mesafe veri aktarımı dahil olmak üzere verilerin değişiminin birkaç nedeni vardır. Veri çerçevesini aldıktan sonra UART, veri çerçevesindeki toplam bit sayısının çift veya tek sayı olup olmadığını kontrol eder. Bu, bit sayısı 1 değeriyle sayılarak yapılır. Eşlik biti 0 ise, veri çerçevesindeki bit sayısı çift sayıdır. Eşlik biti 1 ise, veri çerçevesindeki bit sayısı tuhaftır. Eşlik biti verilerle eşleşmezse, UART veri çerçevesindeki bir hatayı tanımlar.

Stop Biti

Veri paketinin sonunu işaretlemek için, gönderen UART, veri aktarım hattını, minimum iki bitlik bir süre boyunca düşük bir voltajdan yüksek voltaja götürür.
UART, başlangıç, parite ve durdurma bitlerini işlemez ve verilerin doğru şekilde alınmasına bakılmaksızın bu bitleri otomatik olarak atar. Eşzamansız veri iletimi ‘kendiliğinden senkronize’ olduğundan, belirli bir zamanda hiçbir veri iletilmezse, iletim hattı boşta kalır.

UART uygulamaları

UART’lar mikrodenetleyicilerde yaygın olarak görülür. Mikrodenetleyicilerde, UART’lar belirli amaçlar için kullanılır. UART’lar Bluetooth modülleri, kablosuz iletişim, GPS üniteleri, modemler ve diğer günlük uygulamalar gibi cihazlarda da bulunur.
RS-232’den ayrı olarak RS-422 ve TIA gibi iletişim standartları da UART’tan faydalanmaktadır. Genel olarak, bir UART, seri haberleşmeler için kullanılan tek bir entegre devredir, ancak iki UART’ın bir kombinasyonu olan çift UART veya DUART vardır. Genellikle mikro denetleyicilere yerleştirilirler. Octal UART veya OCTART, iki UART’ı tek bir çipte birleştirir. Hiçbir iletişim protokolü mükemmel değildir, ancak UART’lar yaptıkları işte oldukça iyidir. İşte projenizin ihtiyaçlarını karşılayıp karşılamadıklarına karar vermenize yardımcı olacak bazı artıları ve eksileri aşağıda bulabilirsiniz:

Avantajları

  • En çok kullanılan seri iletişim standardıdır.
  • Hata denetimi için bir parite biti var.
  • Veri iletimi için sadece iki kablo kullanır ve zaman uyumsuz olarak veri iletir.
  • Saat sinyali gerekli değildir.
  • Veri paketinin yapısı, her iki taraf da ayarlandığı sürece değiştirilebilir.

Dezavantajları

  • Veri çerçevesinin boyutu maksimum 9 bit ile sınırlıdır.
  • Birden çok bağımlı veya çoklu ana sistem yapılandırmalarını desteklemiyor.
  • Her bir UART’ın baud hızı birbirinin %10’u içinde olmalıdır.