RS-485 Haberleşme Standardı

👤 Yazar: ozcan 📅 Tarih: 02.08.2026 12:54 👁️ Görüntüleme: 5

RS-485 Haberleşme Standardı Detaylı İncelemesi

RS-485 (yeni adıyla TIA/EIA-485), endüstriyel ortamlarda ve gürültülü sahalarda uzun mesafeli, yüksek hızlı ve çok noktaya (multi-drop) veri iletimi sağlamak için tasarlanmış fiziksel katman (Physical Layer) haberleşme standardıdır. I2C ve SPI gibi kart içi (on-board) protokollerin aksine, metrelere hatta kilometrelere varan mesafelerde sorunsuz veri aktarımı sunar.

RS-485 Veriyolu Mimari Diyagramı


1. Donanım Mimarısı ve Diferansiyel Sinyalleşme

RS-485’in endüstriyel gürültülere karşı bu kadar dayanıklı olmasının ana sebebi Diferansiyel (Dengeli) Sinyalleşme tekniğidir. Sistem tek bir sinyal hattındaki voltaja bakmak yerine iki hat arasındaki voltaj farkını ölçer:

  • A Hattı (Non-inverting / Data+): Pozitif veri hattı.
  • B Hattı (Inverting / Data-): Negatif veri hattı.
  • GND (Ortak Toprak): Gerilim seviyelerinin kaymasını önlemek ve ortak mod voltajını (Common-Mode Voltage) sınırlamak için tavsiye edilen üçüncü hat.

rs485 sinyal karakteristiği

Diferansiyel Voltaj Mantığı:
Alıcı entegre (Transceiver) kararlarını şu voltaj farkına göre verir: Vdiff = VA - VB
  • Lojik 1 (Mark / Idle): VA - VB > +200 mV (A hattı B'den daha pozitif)
  • Lojik 0 (Space): VA - VB < -200 mV (B hattı A'dan daha pozitif)
Hatta dışarıdan bir elektriksel gürültü bindiğinde hem A hem de B hattını aynı anda eşit miktarda etkiler (Common-Mode Noise). Voltaj farkı değişmediği için iletişim gürültüden etkilenmez.

Sonlandırma (Termination) Dirençleri ve Bias Yapısı

Uzun iletim hatlarında sinyal yansımalarını (reflection) engellemek için veriyolunun en başında ve en sonunda yer alan cihazlara 120 Ω Sonlandırma Direnci bağlanmalıdır:

  • RT (Termination Resistor): A ve B hatları arasına paralel bağlanan 120 Ω direnç. Kablo empedansı ile eşleşerek sinyalin sönümlenmesini sağlar.
  • Fail-Safe Bias Dirençleri: Hat boşta kaldığında veya hiç kimse veri göndermediğinde A hattını Pull-Up ile 5V'a, B hattını Pull-Down ile GND'ye çekerek kararsız durumları (floating) engeller.

2. Çalışma Modları: Half-Duplex vs Full-Duplex

Parametre Half-Duplex (Yarı Çift Yönlü) Full-Duplex (Tam Çift Yönlü)
Kablo Sayısı 2 Tel (A, B) + GND 4 Tel (TX+, TX-, RX+, RX-) + GND
Veri İletim Yapısı Aynı anda sadece veri gönderilir veya alınır. Aynı anda eş zamanlı veri gönderme ve alma yapılır.
Yön Kontrolü (DE/RE) Zorunlu. Mikrokontrolcüden bir GPIO pini ile kontrol edilir. Gerekmez, sürücü ve alıcı hatları ayrılmıştır.
Kullanım Alanı Modbus RTU, Profibus, genel endüstriyel saha ağı. Noktadan noktaya yüksek hızlı sistemler.
Mesafe vs Hız İlişkisi:
RS-485'te haberleşme mesafesi ile veri hızı ters orantılıdır:
  • Maksimum Mesafe: 1200 metre (4000 feet) → Maksimum Hız: ~100 kbit/s
  • Maksimum Hız: 10 Mbit/s - 35 Mbit/s → Maksimum Mesafe: ~10-12 metre

3. MAX485 Entegresi ve Kod Örneği

Mikrokontrolcülerin UART (TTL) sinyallerini RS-485 diferansiyel seviyelerine dönüştürmek için yaygın olarak MAX485 gibi transkripsiyon çipleri kullanılır. Çip üzerinde yön denetimi sağlayan iki kritik pin bulunur:

  • DE (Driver Enable): HIGH yapıldığında verici moduna geçer (TX aktif).
  • RE (Receiver Enable): LOW yapıldığında alıcı moduna geçer (RX aktif - Ters mantık).
  • Pratik Uygulama: DE ve RE pinleri birbirine köprülenerek mikrokontrolcünün tek bir GPIO pinine bağlanır. (HIGH = Gönderim, LOW = Dinleme).

ESP32 / Arduino C++ HardwareSerial ile Yön Kontrollü Gönderim ve Alma

#include <Arduino.h>

// MAX485 Yön Kontrol Pini ve UART Pin Tanımlamaları
#define RS485_FC_PIN  4   // DE & RE birleşik pini
#define RX2_PIN       16  // ESP32 UART2 RX Pini
#define TX2_PIN       17  // ESP32 UART2 TX Pini

void setup() {
  Serial.begin(115200); // PC Seri Monitör
  
  // Yön kontrol pinini çıkış olarak ayarla
  pinMode(RS485_FC_PIN, OUTPUT);
  digitalWrite(RS485_FC_PIN, LOW); // Varsayılan olarak Dinleme (Alıcı) Modu

  // HardwareSerial2 Başlat (9600 Baudrate, 8N1)
  Serial2.begin(9600, SERIAL_8N1, RX2_PIN, TX2_PIN);
  
  Serial.println("RS-485 Düğümü Başlatıldı.");
}

// RS-485 Üzerinden Veri Gönderme Fonksiyonu
void rs485VeriGonder(String mesaj) {
  digitalWrite(RS485_FC_PIN, HIGH); // Sürücüyü Aktif Et (Gönderim Modu)
  delayMicroseconds(10);             // Sinyal oturması için kısa bekleme

  Serial2.print(mesaj);
  Serial2.flush();                   // Tüm verinin seri tampondan çıkmasını bekle

  digitalWrite(RS485_FC_PIN, LOW);  // Alıcı Moduna Geri Dön
}

void loop() {
  // 1. Veri Dinleme Bloğu
  if (Serial2.available()) {
    String gelenMesaj = Serial2.readStringUntil('\n');
    Serial.print("RS-485'ten Gelen Veri: ");
    Serial.println(gelenMesaj);
  }

  // 2. Periyodik Veri Gönderme Örneği (Her 3 saniyede bir)
  static unsigned long sonGonderim = 0;
  if (millis() - sonGonderim > 3000) {
    sonGonderim = millis();
    rs485VeriGonder("PING_REQ_NODE_1\n");
    Serial.println("RS-485 Paket Gönderildi.");
  }
}

4. I2C, SPI ve RS-485 Karşılaştırması

Parametre I2C SPI RS-485
Maksimum Mesafe ~1 - 2 Metre < 1 Metre (PCB İçi) 1200 Metre
Veri Hızı 100 kHz - 3.4 MHz 10 MHz - 80 MHz+ 100 kbit/s - 35 Mbit/s
Sinyal Tipi Tek Uçlu (Open-Drain) Tek Uçlu (Push-Pull) Diferansiyel (A / B)
Maksimum Cihaz Sayısı 127 (7-bit adres) CS Pin Sayısı Kadar Standard göre 32 (Yüksek empedans transiverlar ile 256+)
Gürültü Bağışıklığı Düşük Düşük Çok Yüksek (Endüstriyel Seviye)

💬 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