Bilgisayar çevre birimleri, akıllı cihazlar, Nesnelerin İnterneti (IoT) cihazları veya elektronik ölçüm araçları olsun, hepsi farklı elektronik bileşenleri birbirine bağlamak için seri iletişim protokollerini kullanır.
Bu bileşenler genellikle bir mikro denetleyici ve parmak izi sensörü, bir ESP8266 (Wi-Fi modülü), servolar ve seri ekranlar gibi bağımlı modüllerden oluşur.
Bu cihazlar farklı türde iletişim protokolleri kullanır. Aşağıda en popüler seri iletişim protokollerinden bazılarını, nasıl çalıştıklarını, avantajlarını ve neden kullanımda kaldıklarını öğreneceksiniz.
Seri İletişim Nedir?
Seri iletişim protokolleri, 1838'de Mors Kodunun icadından beri buradadır. Günümüzde modern seri iletişim protokolleri aynı ilkeleri kullanır. Sinyaller, iki iletkeni tekrar tekrar kısa devre yaparak tek bir kablo üzerinde üretilir ve iletilir. Bu kısa bir anahtar gibi davranır; açılır (yüksek) ve kapanır (düşük), ikili sinyaller sağlar. Bu sinyalin nasıl iletildiği ve alındığı, kullanılan seri iletişim protokolünün tipine bağlı olacaktır.
Resim Kredisi: shankar.s/ Wikimedia Commons
Transistörün icadı ve onu takip eden yeniliklerle birlikte, mühendisler ve tamirciler benzer şekilde işleme birimlerini ve belleği daha küçük, daha hızlı ve daha verimli hale getirdiler. Bu değişiklikler, veri yolu iletişim protokollerinin, bağlanan bileşenler kadar teknolojik olarak gelişmiş olmasını gerektirdi. Böylece UART, I2C ve SPI gibi seri protokollerin icadı. Bu seri protokoller birkaç on yıllık olmasına rağmen, mikrodenetleyiciler ve çıplak metal programlama için hala tercih edilmektedir.
UART (Evrensel Asenkron Alıcı-Verici)
UART protokolü, bugün hala kullandığımız en eski ama en güvenilir seri iletişim protokollerinden biridir. Bu protokol, her iki bileşenin de iletişim kurması için Tx (iletim) ve Rx (Alma) olarak bilinen iki kablo kullanır.
Verileri iletmek için hem verici hem de alıcı beş ortak konfigürasyonla anlaşmalıdır, bunlar:
- Baud Hızı: Verinin ne kadar hızlı iletileceğinin aktarım hızı.
- Veri Uzunluğu: Alıcının kayıtlarına kaydedeceği üzerinde anlaşılan bit sayısı.
- Başlangıç Biti: Verinin aktarılmak üzere olduğunu alıcıya bildiren düşük bir sinyal.
- Stop Bit: Alıcının son bitin (en önemli bit) ne zaman gönderildiğini bilmesini sağlayan yüksek bir sinyal.
- Eşlik Biti: Gönderilen verilerin doğru veya bozuk olup olmadığını kontrol etmek için kullanılan yüksek veya düşük sinyal.
UART asenkron bir protokol olduğu için veri iletim hızını düzenleyen kendi saatine sahip değildir. Alternatif olarak, bir bit iletilirken zamanlama için baud hızını kullanır. UART için kullanılan genel baud hızı 9600 baud'dur, yani saniyede 9600 bit iletim hızı.
Hesabı yaparsak ve bir biti 9600 baud'a bölersek, bir bitin alıcıya ne kadar hızlı iletildiğini hesaplayabiliriz.
1/9600 = 104 mikrosaniye
Bu, UART cihazlarımızın bir sonraki bitin ne zaman iletileceğini bilmek için 104 mikrosaniye saymaya başlayacağı anlamına gelir.
UART cihazları bağlandığında, varsayılan sinyal her zaman yükseğe yükseltilir. Düşük frekanslı bir sinyal algıladığında, alıcı bitleri kayıtlarına (belleğe) kaydetmeye başlamadan önce 104 mikrosaniye artı 52 mikrosaniye daha saymaya başlar.
Sekiz bitin veri uzunluğu olacağı konusunda zaten anlaşmaya varıldığından, sekiz bit veri kaydettikten sonra, verilerin tek mi çift mi olduğunu kontrol etmek için eşlik kontrolüne başlayacaktır. Eşlik kontrolünden sonra, durdurma biti, sekiz bitlik verinin tamamının alıcıya başarıyla iletildiğini cihazlara bildirmek için yüksek bir sinyal yükseltecektir.
Yalnızca iki kablo kullanan en minimalist seri protokol olan UART, günümüzde akıllı kartlarda, SIM kartlarda ve otomobillerde yaygın olarak kullanılmaktadır.
İlgili: SIM Kart Nedir? Bilmeniz Gerekenler
SPI (Seri Çevre Birimi Arayüzü)
SPI, yaklaşık 20 Mbps'lik daha hızlı veri hızları için kullanılan bir başka popüler seri protokoldür. SCK (Serial Clock Line), MISO (Master Out Slave In), MOSI (Master In Slave Out) ve SS/CS (Chip Select) olmak üzere toplam dört kablo kullanır. UART'tan farklı olarak SPI, birden fazla bağımlı cihazı yalnızca bir ana ile kontrol etmek için bir ana-bağımlı biçimi kullanır.
MISO ve MOSI, veri iletmek ve almak için kullanılan UART'ın Tx ve Rx'i gibi davranır. Chip Select, master'ın hangi slave ile iletişim kurmak istediğini seçmek için kullanılır.
SPI senkron bir protokol olduğundan, hem master hem de slave cihazların aynı frekansta çalışmasını sağlamak için master'dan yerleşik bir saat kullanır. Bu, iki cihazın artık bir baud hızı üzerinde anlaşmaya ihtiyacı olmadığı anlamına gelir.
Protokol, master'ın sinyalini bağımlı cihaza bağlı belirli SS/CK'ye indirerek bağımlı cihazı seçmesiyle başlar. Slave düşük bir sinyal aldığında hem SCK'yı hem de MOSI'yi dinlemeye başlar. Master daha sonra veri içeren bitleri göndermeden önce bir başlangıç biti gönderir.
Hem MOSI hem de MISO tam çift yönlüdür, yani aynı anda veri gönderip alabilirler.
I2C gibi diğer senkron protokollere göre birden fazla slave'e bağlanabilme, tam çift yönlü iletişim ve daha düşük güç tüketimi ile SPI, bellek cihazlarında, dijital bellek kartlarında, ADC'den DAC'ye dönüştürücülerde ve kristal bellek ekranlarında kullanılır.
I2C (Entegre Devre)
I2C, SPI gibi başka bir senkron seri protokoldür, ancak buna göre birçok avantajı vardır. Bunlar, birden fazla master ve slave'e sahip olma, basit adresleme (Chip Select'e gerek yok), çeşitli voltajlarla çalışma ve iki çekme direncine bağlı yalnızca iki kablo kullanma yeteneğini içerir.
I2C genellikle birçok IoT cihazında, endüstriyel ekipmanda ve tüketici elektroniğinde kullanılır.
Bir I2C protokolündeki iki pin, veri ileten ve alan SDA (Seri Veri Hattı) ve saat işlevi gören SCL (Seri Saat Hattı) pinidir.
- Protokol, master'ın SDA pininden bir başlangıç biti (düşük) göndermesiyle başlar, ardından bağımlıyı seçen yedi bitlik bir adres ve okuma veya yazma seçimi için bir bit to ile devam eder.
- Başlangıç biti ve adresi aldıktan sonra, köle master'a bir onay biti gönderir ve gelen iletimler için SCL ve SDA'yı dinlemeye başlar.
- Master bunu aldığında, doğru slave ile bağlantı kurulduğunu anlar. Master şimdi, köleden erişmek istediği belirli kaydı (bellek) seçecektir. Bunu, hangi kaydın kullanılacağını belirten sekiz bit daha göndererek yapar.
- Adresi aldıktan sonra, köle, master'a başka bir onay göndermeden önce seçme kaydını okur.
- Hangi özel bağımlı ve onun kayıtlarından hangisinin kullanılacağını seçtikten sonra, master sonunda veri bitini bağımlıya gönderir.
- Veri gönderildikten sonra, master bir durdurma biti (yüksek) ile bitmeden önce master'a son bir Onay biti gönderilir.
İlgili: En İyi Arduino IoT Projeleri
Seri İletişim Neden Kalıcıdır?
Paralel ve birçok kablosuz protokolün yükselişi ile seri iletişim asla popülerliğini kaybetmedi. Genellikle veri iletmek ve almak için yalnızca iki ila dört kablo kullanan seri protokoller, yalnızca birkaç bağlantı noktası olan elektronik cihazlar için önemli bir iletişim modudur.
Başka bir neden, güvenilirliğe dönüşen basitliğidir. Bir seferde sadece birkaç kablonun veri göndermesiyle serial, iletilirken herhangi bir kayıp veya bozulma olmadan tüm veri paketlerini gönderme güvenilirliğini kanıtlamıştır. Yüksek frekanslarda ve daha uzun menzilli iletişimde bile, seri protokoller bugün hala mevcut olan birçok modern paralel iletişim protokolünü yenmektedir.
Birçoğu UART, SPI ve I2C gibi seri iletişimin eski ve modası geçmiş olmanın dezavantajına sahip olduğunu düşünse de, gerçek şu ki, güvenilirliklerini birkaç on yıl boyunca kanıtlamışlardır. Protokollerin gerçek bir ikame olmaksızın bu kadar eski olması, bunların aslında vazgeçilmez olduklarını ve öngörülebilir gelecekte elektronikte kullanılmaya devam edeceklerini göstermektedir.