Mikrodenetleyicilerde Haberleşme Protokolleri

 

Haberleşme Protokolleri ve Detaylı Açıklamaları

Mikrodenetleyiciler, diğer mikrodenetleyiciler, bilgisayarlar, sensörler, motorlar, ekranlar ve diğer bileşenlerle veri alışverişinde bulunmak için çeşitli haberleşme protokollerini kullanır. Haberleşme protokolleri, veri iletimini düzenleyen kurallar bütünüdür.

Genel olarak haberleşme protokolleri ikiye ayrılır:

  1. Paralel Haberleşme Protokolleri
  2. Seri Haberleşme Protokolleri

1. Paralel Haberleşme Protokolleri

Paralel haberleşme, verilerin aynı anda birden fazla hat üzerinden iletilmesini sağlar. Genellikle daha hızlıdır, ancak daha fazla kabloya ve bağlantı pinine ihtiyaç duyar. Kısa mesafelerde kullanışlıdır.

a) GPIO (General Purpose Input Output)

  • Mikrodenetleyicinin giriş-çıkış pinlerini kullanarak haberleşme sağlar.
  • Örnek: Bir LED yakmak veya bir butona basılıp basılmadığını kontrol etmek.
  • Genellikle düşük hızlı haberleşme gerektiren işlemler için uygundur.
  • Paralel veri alışverişi için birden fazla GPIO pini kullanılır.

💡 Örnek: 8-bit veri gönderimi için 8 GPIO pini çıkış olarak ayarlanabilir ve aynı anda veri gönderilebilir.


2. Seri Haberleşme Protokolleri

Seri haberleşmede veri bitleri teker teker iletilir. Genellikle uzun mesafeli iletişimde kullanılır. Daha az kabloya ihtiyaç duyulur, bu da daha az giriş/çıkış pini tüketildiği anlamına gelir.

Seri haberleşme türleri:

  1. Senkron Seri Haberleşme (SPI, I²C, I²S)
  2. Asenkron Seri Haberleşme (UART, USART)

a) UART (Universal Asynchronous Receiver-Transmitter)

  • En yaygın kullanılan asenkron (senkron saat sinyali olmadan) haberleşme protokolüdür.
  • Veri transferi Tx (Transmit) ve Rx (Receive) hatları üzerinden gerçekleştirilir.
  • Baud Rate (İletim Hızı) ile çalışır. Örneğin 9600 baud → 9600 bit/saniye hızında veri iletir.
  • Start ve Stop bitleri ile veri çerçeveleri belirlenir.
  • Veri iletimi tek yönlü olabilir (Simplex) veya çift yönlü (Full-Duplex).

💡 Örnek: Bilgisayar ile mikrodenetleyici arasındaki haberleşme UART ile sağlanabilir. Arduino gibi mikrodenetleyiciler, bilgisayar ile seri port (UART) üzerinden haberleşir.

UART İletişim Avantajları:
✅ 2 kablo ile veri iletilebilir. (Tx ve Rx)
✅ Asenkron çalışabilir, ekstra saat sinyali gerektirmez.
🚫 Düşük hızlarda çalışır.
🚫 Çoklu cihaz bağlantısı zordur.

📌 Örnek UART haberleşmesi (Arduino - PC Seri Monitör):

void setup() {
  Serial.begin(9600); // 9600 Baud rate
}

void loop() {
  Serial.println("Merhaba, dünya!"); // Bilgisayara veri gönder
  delay(1000);
}

Bu kod her saniye bilgisayara "Merhaba, dünya!" mesajını gönderecektir.


b) SPI (Serial Peripheral Interface)

  • Senkron bir haberleşme protokolüdür.
  • Daha hızlı veri iletimi sağlar (MHz seviyelerinde).
  • Tam çift yönlü iletişimi destekler.

i) SPI Bağlantı Pinleri

  • MOSI (Master Out Slave In) → Ana cihazdan (master) bağlı cihazlara (slave) veri gönderir.
  • MISO (Master In Slave Out) → Bağlı cihazdan gelen veriyi alır.
  • SCK (Serial Clock) → Saat sinyali, verilerin zamanlanmasını sağlar.
  • SS (Slave Select) → Hangi cihazla haberleşileceğini belirler.

ii) SPI Çalışma Prensibi

SPI, Master-Slave prensibiyle çalışır. Ana cihaz (master), saat sinyali üretir ve bağlı olan alt cihazlara (slave) verileri gönderir veya onlardan veri alır.

  • Çok hızlıdır (tipik olarak MHz seviyesinde veri iletebilir).
  • Genellikle SD kartlar, sensörler, ekranlar, EEPROM'lar gibi harici cihazlarla haberleşmek için kullanılır.

📌 Örnek: SPI ile LCD Ekrana Veri Gönderme (Arduino)

#include <SPI.h>

void setup() {
  SPI.begin();
  pinMode(SS, OUTPUT);
  digitalWrite(SS, LOW);
}

void loop() {
  SPI.transfer(0x55); // Örnek veri gönderme
  delay(1000);
}

c) I2C (Inter-Integrated Circuit)

  • Daha az kablo ile haberleşmeyi sağlayan senkron bir seri haberleşme protokolüdür.
  • Birden fazla cihaz ile haberleşmeye uygundur (Multi-Master, Multi-Slave destekler).
  • Düşük hız gerektiren sensörler ve bellek birimleri için uygundur.
  • SPI'ye göre daha yavaş, ancak daha az pin kullanır.

i) I2C Bağlantı Pinleri

  • SDA (Serial Data Line) → Veri yolu.
  • SCL (Serial Clock Line) → Saat sinyalini taşır.

ii) I2C Çalışma Prensibi

I2C, adres bazlı haberleşme kullanır. Her bağlı cihazın kendine özgü bir adresi vardır. Ana cihaz, belirli bir cihaza veri göndermek veya almak için önce o cihazın adresini belirler.

  • Master, slave'in adresini gönderir.
  • Slave, adresi doğrular ve master ile haberleşmeye başlar.
  • Veri aktarımı SDA ve SCL hatları üzerinden gerçekleşir.

💡 Örnek: I2C, sıcaklık sensörleri (DHT11, DHT22), OLED ekranlar ve EEPROM'lar gibi cihazlarla haberleşmede kullanılır.

📌 Örnek: I2C ile OLED Ekrana Veri Yazdırma (Arduino)

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

void setup() {
  Wire.begin(); 
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0,0);
  display.println("Merhaba Dünya!");
  display.display();
}

void loop() {
}

Sonuç

Haberleşme protokolleri, mikrodenetleyicilerin diğer cihazlarla veri alışverişinde bulunmasını sağlar.

| Haberleşme Türü | Veri Tipi | Hız | Kullanım Alanları | Bağlantı Yapısı | |-----------------|--------------|-------------------|-------------------| | GPIO | Dijital Giriş-Çıkış | Sensörler, butonlar, röleler | Tek kablo | | UART | Seri, Asenkron | Bilgisayar, GPS, Bluetooth, GSM | Tx, Rx (2 kablo) | | SPI | Seri, Senkron, Hızlı | SD kart, LCD, sensörler | MOSI, MISO, SCK, SS | | I2C (I²C) | Seri, Senkron, Çoklu Cihaz | EEPROM, RTC, LCD, Sensörler | SDA, SCL (2 kablo) |

Haberleşme protokolleri, mikrodenetleyiciler için veri alışverişini sağlamak amacıyla kullanılır ve verimli haberleşme sağlamak için doğru protokolü seçmek önemlidir.

Yorumlar

Sitedeki popüler yayınlar:

Kullanım Alanlarına Göre Farklı Linux Dağıtımları 3

Kullanım Alanlarına Göre Farklı Linux Dağıtımları

Kullanım Alanlarına Göre Farklı Linux Dagıtımları 2