Seri Haberleşme ( Serial Communications) Nedir?
This article was prepared in Turkish , good studies.
Seri haberleşme
Basitçe en az iki cihazı kullanarak bir birlerine veri aktarımı ayapmaya yarayan bir işlemdir. Kabaca demek gerekirse; iletilecek sinyallerin tek hat üzerinden ard arda gönderilmesi demektir. Seri haberleşmeye örnek olarak hemen hemen tüm bilgisaylarda bulunan USB, RS232 ve Ethernet portunu gösterebiliriz. Bizler seri haberleşmeyi iki farkı şekilde görüyoruz bunlar ; SYNCHRONOUS (senkron) ve ASYNCHRONOUS (asenkron) dur.
- Eğer bir veriyi normal şartlarda iletmemiz gerekseydi bu şekilde 8 adet kablo kullanılırdı.
Yani her bir 1/0 için bir adet kablo. Biz buna Paralel Haberleşme diyoruz.

Bu paralel haberleşmenin en büyük avantajı verileri aynı anda gider yani 1 saat darbesi ile hepsi gidebilir ama 8+1(toprak) kablo ihtiyacı vardır. Eğer 16 bit veri göndermek istersek 16+1 kablo ihtiyacımız olacaktır. - Eğerki veriyi daha az kablo ile göndermek istersek o zaman 1 kablo ile bunu yapabiliriz ve bu durumda her bir 1/0 sinyalini tek tek arka arkaya göndermemiz gerekir ve biz buna SERİ HABERLEŞME diyoruz.

Seri haberleşme zaman olarak paralel haberleşmeden daha yavaştır çünki sinyalleri tek tek gönderiyor yani 8 saat darbesi ile ama bu durum her halükarda bize yarıyor , daha az kablo buda daha az karışıklık ve daha az maliyet demek. - CLOCK (saat) ile işlem yapanlara SYNCHRONOUS (senkron) yapmayanlara ASYNCHRONOUS (asenkron) denir.

Bu işlemler bizlere farklı haberleşme sistemleri ortaya çıkartıyor ki bunlar UART/USART , SPI, I2C vs.
Bizde bu yazımızda yukarda belirtiğimiz gibi UART Seri Haberleşmesini inceliyoruz.
Senkron Haberleşme
Senkron haberleşme gerçekleştirilirken, gönderilen veri biti ve alınan veri biti birbiriyle uyum içerisinde olmalıdır. İletişimi gerçekleştirecek olan aygıtlar eş zamanlı olarak çalışmak zorundadır. Yani alıcı ve verici aynı saat (clock) üzerinde olmalıdır.
Asenkron Haberleşme
Asenkron haberleşme yapmak için belirli bir clock’a ihtiyaç duyulmaz. Veri herhangi bir anda iletilebilir. Belirli standartlar kullanılarak gerçekleştirilir ve Senkron haberleşmeye göre daha yavaş bir iletim olur.

UART Protokolü (Asenkron)
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 de asenkron olarak çalışabilir. UART’a göre daha gelişmiş bir protokoldür. Haberleşme mantıklı aynı şekilde çalışır ancak USART aynı zamanda senkron haberleşmeleri de gerçekleştirebilir.
Asenkron iletiminde verinin ne zaman bittiğini veya bir sonraki verinin ne zaman başlayacağını clock kullanmadan nasıl anlıyor?
İşte bunun için verici ile alıcı arasında belli bi konfigürasyonlar var. Aşağıda bunu bir örnek ile detaylıca inceleyelim.
Ön Bilgi 1
11000110 binary (ikilik ) taban –> 198 decimal(onluk) taban , anlamına geliyor yani (11000110) = 198 dir.
Ön Bilgi 2
Rx -> Receiver (Alıcı)
Tx -> Transmit(Verici)
- Başlangıç yeri, bitiş yeri ve bitimizin(1/0) olduğu bölge aşağıda verildi , aşağıdaki sinyal bizim 198 sayımıza ait .

1 : Verinin Boyu
2: Başlatma ve Durdurma bitleri.1 ) Verinin Boyu ( bitlerin hangi alanlara yerleştiğine dikkat edin)

2) Oklar ile gösterilen yer Başlama ve Bitiş bitlerinin yer aldığı kısımlar.

Girşi sinyali yüksel olarak başlamış sonra kısa bir düşüş gerçekleştirmiş ve ardından ise veri bitleri girmiş,
sinyal yüksekten gelmesi(kırmızı bölge) ve bir anda düşük seviyeden devam etmesi(yeşil bölge) “START” anlamına geliyor yani ‘High’ sinyalden sonraki ilk ‘LOW Bit’ bize verinin başladığını gösteriyor.
Peki bu veri aktarımı hangi hızlarda yapılır ?
Seri 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 dir. Baudrate bizim verimizin saniyede ne kadarlık byte’ını taşıyacağını belirlememize yarar. Örneğin veri taşıma hızımızı 115200 seçersek bu bizim için saniyede yaklaşık olarak 11520 byte veri iletimi sağlayacaktır.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ı gerekiyor (veya birbirine çok yakın değerler olması gerekiyor.) Bunun sebebi ise aktarım sırasında oluşabilecek hataları minimuma indirmek. Hata payları tolere edilebilir seviyede olması taktirde bir sorun yaratmayacaktır.
Son Olarak Parity ve Stop Bitlerine değinelim.
Parity: Parity, hata denetiminin çok basit bir şeklidir. İki çeşittir: tek veya çift. Eşlik bitini üretmek için tüm veri bitleri toplanır ve toplamın düzgünlüğü bitin ayarlanıp ayarlanmadığına karar verir. Parity isteğe bağlıdır ve çok yaygın olarak kullanılmaz. Gürültülü ortamlar arasında iletim için yararlı olabilir, ancak aynı zamanda veri aktarımını biraz yavaşlatır ve hata işlemeyi uygulamak için hem gönderen hem de alıcı gerektirir.
StopBits: Bu alan iletilen stop bitlerinin sayısını belirtir.
Kaynakçalar
Kayankça 1
Kaynakça 2
Kaynakça 3
