Haberleşme Protokolleri

 

HABERLEŞME PROTOKOLLERİ 


    Seri haberleşme için geçerli, standartlaştırılmış bazı senkron ve asenkron haberleşme protokolleri vardır.

    Bu yazımızda bunlardan bazılarını inceleyeceğiz.

Senkron Haberleşme : Senkron haberleşme gerçekleştirilirken, gönderilen veri biti ve alınan veri biti birbiri ile uyum içinde olmalıdır. İletişimi gerçekleştirecek olan aygıtlar eş zamanlı olarak çalışmak zorundadır. Yani alıcı ve verici aynı clock üzerinde olmalıdır.

Asenkron Haberleşme : Asenkron haberleşme yapılmak için belirli bir clock'a ihtiyaç duyulmaz. Veri herhangi bir anda iletilebilir. Belirli standartlar çerçevesinde gerçekleştirilir ve senkron haberleşmeye göre daha yavaş bir iletim gerçekleştirilir. 

Bu yazımızda ele alacağımız haberleşme protokolleri şunlardır : 

  • UART - USART
  • SPI
  • I2C
  • TTL
  • SSH
  • FTP
  • TCP
  • UDP

UART - USART  Haberleşme Protokolü : UART ( Universal Asynchronous Receiver Transmitter ), bilgisayar ve mikrokontrolcüler veya mikrokontroller ve çevre birimler arasında haberleşmeyi sağlayan haberleşme protokolüdür. Asenkron olarak çalıştığı için herhangi bir clock ihtiyacı duymaz. USART ( Universal Synchronous Asynchronous Receiver Transmitter ) ise hem senkron hem asenkron olarak çalışabilir. UART'a göre daha gelişmiş bir protokoldür. Haberleşme mantıkları aynı şekilde çalışır ancak USART aynı zamanda senkron haberleşmeyi de gerçekleştirir. USART aynı zamanda UART'ı kapsayan bir birim olarak tasarlanmıştır.

    UART haberleşmesini gerçekleştirirken ilk olarak baudrate (veri taşıma hızı) ayarlanması gerekir. Veri taşıma hızı çok çeşitli aralıklarda olabilir ancak piyasada yaygın olarak kullanılan baudrate’ler 4800, 9600, 57600, 115200 ve mikroişlemciler için çok fazla tercih edilmese de 921600. 921600 genelde hızlı işlem gerektiren yerlerde kullanılır. Baudrate bizim verimizin saniyede ne kadarlık byte’ını taşıyacağını belirlememize yarar.

    Veri iletimi için aşağıdaki görseldeki gibi bir yapı kullanılır. Yani haberleşme işlemimiz bir başlangıç bitinden sonra data bitleri, ardından parity biti ve son olarak da bitiş biti gönderilerek sonlandırılır. Bu işlem sırasında data uzunluğu ve parity biti opsiyonel olarak değişkenlik gösterebilir.



    Bu haberleşme tipini kullanabilmemiz için alıcı ve vericinin veri taşıma hızlarının (baudrate) aynı olması veya birbirine çok yakın değerler olması gerekmektedir. Bunun sebebi ise aktarım sırasında oluşabilecek hataları minimuma indirmektir.


    Yandaki görselde gördüğünüz gibi haberleşme gerçekleşmesi için ilk önce verici tarafında logic 1 (HIGH) seviyesinde bulunan iletişim hattı iletişimin başlaması için logic 0 (LOW) seviyesine çekilir ve bu bizim Başlangıç Bit’imizi (Start Bit) temsil eder. Ardından göndermek istediğimiz verileri başlangıç bitinin arkasına ekleriz. Eğer parity bitine sahipsek onu da ekledikten sonra son olarak iletişime sonlandırmak için gerekli olan bitiş bitini (stop bit) HIGH seviyesine çekerek iletişimin sonlandığını alıcıya bildiririz. Biz verici kısmında bu işlemleri yaparken alıcı da aynı şekilde işlem yapar ve sadece bizim gönderdiğimiz dataları kendi UART Data Register’ına yazar.


Nasıl Kullanırız? 

    USART haberleşmesi yapabilmek için mikroişlemcimizdeki daha önceden tanımlanmış olan pinleri kullanarız. Bunun için ya USB-TTL dönüştürücü ya da RS232 modülü kullanırız. Her iki modülü de RX-TX pinleri mikroişlemcimizin RX-TX pinleri ile ters olarak bağlanacak şekilde bağlantısını yaptıktan sonra iletişimi başlatabiliriz.




SPI Haberleşme Protokolü :   Seri haberleşmelerin en çok kullanılanlarından birisi olan SPI ( Serial Peripheral Interface ), haberleşme protokolü full-dublex işleme izin verir ve iletişim master/slave cihazlar arasında gerçekleşir.

SPI haberleşmesi gerçekleştirebilmek için 4 pin gereklidir. Bunlar : 

  • SCLK : Serial Clock (output from master). :Senkron seri haberleşmesi için kullanılır. Haberleşme için kare dalga oluşturur. Yani SPI haberleşmesinde senkronu sağlayan saat bulundurur. Saat sinyali master cihaz tarafından üretilir.
  • MOSI : Master Output, Slave Input (output from master). Master’ın çıkış Slave’in giriş olduğu  veri yolunu oluşturur.
  • MISO : Master Input, Slave Output (output from slave). Master’ın giriş Slave’in çıkış olduğu veri yolunu oluşturur.
  • SS : Slave Select (active low, output from master).  Slave select anlamına gelir. Master cihazın Slave cihazları seçmesine yarar. Master’ın SS pinleri kontrol edilecek Slave cihaza göre seçilir ve kullanıcı tarafından belirlenir.

    Veri iletimi 8-bit olarak gerçekleşir. CS pinini kullanarak slave seçimini yaptıktan sonra master cihazından göndermek istediğiniz veriyi MOSI pinini Lojik 0 ve Lojik 1 şeklinde binary olarak değiştirerek hatta yazarsınız. Her bir bit için CLK pinini 0 – 1 yapmanız yeterlidir.




    İletişim SPI ile gerçekleşeceğini belirtmek için SPI kütüphanesi mikroişlemciye yüklenmesi gerekir. Kodları yazarken hem master hem de slave cihazlar için ayrı ayrı kod yazılır. SPI iletişim için Arduino da hazır bir kütüphane bulunmaktadır. 

I2C Haberleşme Protokolü : I2C iki adet pin üzerinden iletişim kurmayı sağlayan bir yazılım protokolüdür. Philips firması tarafından oluşturulmuştur. Bir entegre ya da parça içerisinde I2C sistemi var ise bu protokol ile kullanılabilir. I2C protokolünde yönetici MCU'lara master, yönetilen diğer parçalara ise slave denir.



    I2C protokolü normalde çok fazla pin ayrılması gereken parçaların sadece 2 adet pin kullanılarak sürülmesini amaçlamaktadır. I2C protokolünde sadece 2 pin  kullanılarak aynı hat üzerinde birçok RAM, EEPROM, RTC gibi parça bağlanıp kullanılabilir. Bu durumda fazladan pin ihtiyacını ortadan kaldırır. I2C protokolünde hat üzerine başka MCU'larda bağlanabilir. Bunlar gerekli zamanlarda hem master hemde slave olarak yerini alabilir.

I2C Protokolünün Olumlu Yanları : 

  • Esnektir. Sistem içerisinde bir çok slave ve slave/master parça ekleyerek geliştirilebilir.
  • Adrese dayalı seçim yapar, yani fazladan bir CS pinine ihtiyaç yoktur.
  • Bağlantı yapısı sadedir, birden fazla parça kullanılsa da sadece 2 hat üzerinden bağlantı kurulur.
  • Hata tespit sistemi olan ACK ve NACK bulunur. Böylece yapılan işlemin doğru olup olmadığı anlaşılır. 


I2C Protokolünün Olumsuz Yanları : 

  • Diğer paralel iletişim sistemlerine göre hızları sınırlıdır. 
  • Bazı durumlarda çok fazla pull-up direnci koymak PCB'lerde alan sıkıntısına yol açabilir.
  • Parça adresleri üretilirken tanımlandıkları için adres çakışması yaşanabilir.






    



























Yorumlar

Bu blogdaki popüler yayınlar

Elektronik devre elemanlarının seri ve paralel bağlanması

Kondansatör, Bobin, SMPS, Diyot