USB (Universal Serial Bus) Haberleşme Protokolü

👤 Yazar: ozcan 📅 Tarih: 19.08.2026 04:28 👁️ Görüntüleme: 16

USB (Universal Serial Bus) Haberleşme Protokolü Detaylı İncelemesi

USB (Universal Serial Bus), 1990'ların ortalarında Compaq, DEC, IBM, Intel, Microsoft, NEC ve Nortel konsorsiyumu tarafından çevre birimlerinin bilgisayarlara bağlanmasını standartlaştırmak amacıyla geliştirilmiş asenkron/senkron seri bir haberleşme ve güç iletim standardıdır. RS-232, Paralel Port ve PS/2 gibi karmaşık ve yavaş arayüzlerin yerini alarak günümüzün en yaygın veri ve güç iletim standardı haline gelmiştir.

USB Mimarisi ve Ağ Topolojisi


1. Donanım Mimarısı ve Sinyal Hatları

Klasik USB 2.0 mimarisi, yarı çift yönlü (Half-Duplex) diferansiyel sinyalleşme kullanır ve 4 ana hattan oluşur (USB 3.0+ versiyonlarında ek SuperSpeed diferansiyel çiftleri eklenmiştir):

  • VBUS (5V Power): Çevre birimlerini beslemek için 5V DC güç hattı. (USB PD ile 20V/48V seviyelerine çıkabilir).
  • D+ (Data Plus): Pozitif diferansiyel veri hattı.
  • D- (Data Minus): Negatif diferansiyel veri hattı.
  • GND: Ortak toprak referans hattı.
Hız Algılama Mantığı (Pull-Up Dirençleri):
USB Host (Ana Bilgisayar), veriyoluna bir cihaz bağlandığında cihazın hız sınıfını (Low-Speed / Full-Speed) D+ ve D- hatlarındaki Pull-Up dirençlerinin konumuna bakarak anında tespit eder:

  • Low-Speed (1.5 Mbps): Cihaz tarafında D- hattına 1.5 kΩ Pull-Up direnci bağlıdır.
  • Full-Speed (12 Mbps): Cihaz tarafında D+ hattına 1.5 kΩ Pull-Up direnci bağlıdır.
  • High-Speed (480 Mbps): İlk olarak Full-Speed olarak el sıkışılır (Chirp J/K sinyalleri), ardından donanım High-Speed moduna geçer.

2. USB Topolojisi, Katmanlar ve Transfer Tipleri

USB,Strict bir Host-Centric (Merkezi Ana Bilgisayar) Tiered-Star (Kademeli Yıldız) topolojisine sahiptir. Veriyolundaki tüm trafiği Host (Master) yönetir; hiçbir cihaz Host sorgulamadığı sürece kendiliğinden veri gönderemez (USB OTG hariç). Tek bir USB kontrolcüsüne Hub'lar aracılığıyla teorik olarak 127 adede kadar cihaz bağlanabilir.

4 Ana USB Transfer Tipi

Transfer Tipi Hata Kontrolü Kullanım Alanı / Cihaz Örnekleri
Control Transfer Var (Garantili) Cihaz konfigürasyonu, numaralandırma (Enumeration) ve komutlar.
Interrupt Transfer Var (Düşük Gecikmeli) Klavye, Fare, Joystick (HID Sınıfı) gibi periyodik küçük paketler.
Bulk Transfer Var (Yüksek Doğruluk) USB Bellekler, Harici Diskler, Yazıcılar (Bant genişliği kalırsa iletilir).
Isochronous Transfer Yok (Akan Veri) USB Kulaklıklar, Mikrofonlar, Web Kameraları (Gecikmesiz gerçek zamanlı akış).
USB Numaralandırma (Enumeration) Süreci:
Bir USB cihazı takıldığında gerçekleşen adım adım tanımlama süreci:
  1. Host, D+/D- hattındaki voltaj değişiminden yeni cihazı tespit eder ve Reset sinyali gönderir.
  2. Cihaz varsayılan Adres 0'ı (Address 0) alır.
  3. Host, Get Descriptor komutu ile cihazın Device Descriptor bilgilerini (VID, PID, Endpoint sayıları) okur.
  4. Host cihaza benzersiz bir yeni adres atar (Set Address).
  5. Host uygun sürücüyü (CDC, HID, MSC vb.) yükler ve cihaz kullanıma hazır hale gelir.

3. Gömülü Sistem Örneği (STM32 / ESP32 USB Native CDC - Sanal Seri Port)

Günümüz modern mikrodenetleyicilerinde (ESP32-S2/S3, STM32F4 vb.) harici FTDI/CH340 gibi dönüştürücülere ihtiyaç duymadan doğrudan çip içindeki dahili USB donanımı kullanılarak Native USB CDC (Sanal COM Port) oluşturulabilir:

ESP32-S3 Arduino Native USB CDC Örneği

#include <Arduino.h>

// ESP32-S3 Native USB (USB CDC) Etkinleştirilmelidir
// Arduino IDE -> Tools -> USB CDC On Boot: "Enabled"

void setup() {
  // Harici UART çipi olmadan doğrudan dahili USB PHY kullanılır
  Serial.begin(115200); 
  
  // USB Bağlantısının kurulmasını bekle
  while (!Serial) {
    delay(10);
  }

  Serial.println("ESP32-S3 Native USB CDC Haberleşmesi Başlatıldı!");
}

void loop() {
  // USB'den veri geldi mi kontrol et
  if (Serial.available()) {
    String komut = Serial.readStringUntil('\n');
    komut.trim();

    Serial.print("USB Üzerinden Alınan Komut: ");
    Serial.println(komut);

    if (komut == "STATUS") {
      Serial.println(">> Sistem Durumu: OK (Dahili USB Çalışıyor)");
    }
  }

  static unsigned long sonZaman = 0;
  if (millis() - sonZaman > 2000) {
    sonZaman = millis();
    // USB Paketlerini yüksek hızda PC'ye aktar
    Serial.printf("USB Canlılık Sinyali (Uptime: %lu ms)\n", millis());
  }
}

4. USB Standartlarının Jenerasyonel Gelişimi

USB Standardı Lansman Yılı Maksimum Veri Hızı Mod / Sinyalleşme
USB 1.1 1998 12 Mbps (Full Speed) / 1.5 Mbps (Low Speed) Half-Duplex (2-Tel)
USB 2.0 2000 480 Mbps (High Speed) Half-Duplex (2-Tel)
USB 3.2 Gen 1 (USB 3.0) 2008 5 Gbps (SuperSpeed) Full-Duplex (Ekstram Çiftler)
USB 3.2 Gen 2x2 2017 20 Gbps (SuperSpeed+) Full-Duplex (Dual-Lane Type-C)
USB4 2.0 2022 80 Gbps / 120 Gbps (PAM3 Sinyalleşme) Dynamic Tunneling (PCIe, DP, USB4)

💬 Yorumlar

Henüz yorum yapılmamış. İlk yorumu siz yapın!

Bir Yorum Bırakın

Güvenlik Kontrolü:

Yenidir.com
↑ Sayfa Başı
📞 İletişim ✉ E-Posta Gönder 🟥 YouTube
© 2026 Yenidir.com
Yenidir CMS V0.1