Skip to main content

İletişim Altyapısı

Bu sayfa, B107AA R6 ana işlemcisinin haberleşme kanallarını aynı şablonla dokümante eder. Amaç; sahada karşılaşılan gürültü, kablo kopukluğu, modem kilitlenmesi gibi senaryolarda sistemin deterministik davranmasını sağlamaktır.

Not: I2C hattının bileşenleri (DS28C/RTC/sensörler) daha önce I2C katmanı dokümanında detaylandırıldı. Bu sayfada I2C’yi “özet + sistem davranışı” seviyesinde ele alıyoruz.


Kanal Haritası (Özet)

  • UART / GSM: ana uplink (telemetri + komut)
  • UART / Enerji Analizörü (MAX78630 SoC tarafı): ölçüm ve olay/limit okuma
  • UART / RS‑485 (terminal / saha protokolü): yerel servis veya modbus benzeri istekler
  • UART / LoRa: (varsa) yerel sensör/gateway haberleşmesi
  • I2C: kimlik (DS28C) + zaman (RTC) + sensörler
  • SPI: SD kart (FOTA staging + opsiyonel log/queue)

1. I2C (DS28C / RTC / sensörler)

Donanım katmanı

  • Seviye: 3V3 (MCU ile aynı seviyede).
  • Pull‑up: I2C hattında uygun pull‑up dirençleri bulunur (hız ve hat kapasitansına göre belirlenir).
  • Koruma: Hatlar pano dışına çıkmıyorsa ESD ihtiyacı düşük; konektöre uzanıyorsa ESD diyotları değerlendirilebilir.

Protokol

  • Protokol: I2C standart transaction (addr + R/W + register + data).
  • Timeout: I2C işlemleri “sonsuz bekleme” yapmamalı; belirli sayıda tekrar denemeyle (retry) sınırlanmalı.
  • Retry: NACK / bus busy durumunda kısa gecikme + yeniden deneme.

Hata senaryoları

  • Bus stuck low (SDA/SCL): cihaz kilitlenmesi veya hat kısa devre.
    • Firmware: bus recovery (SCL clocking) + I2C reset + hata sayacı.
  • NACK / cihaz yok: DS28C/RTC okunamıyor.
    • Firmware: kritikse fail‑safe; değilse degrade mode + log.
  • Gürültü: özellikle uzun hatlarda.
    • Donanım: pull‑up değeri optimize, routing kısa.

2. SPI (SD Kart)

Donanım katmanı

  • Seviye: 3V3
  • Hatlar: SCK/MOSI/MISO/CS (SD_CS) + (varsa) Card Detect
  • Not: SPI hatları kart üzerinde ICSP hatları ile de ilişkili olabilir; SD erişimi SD_ENABLE benzeri kontrol ile güvenli yönetilmelidir.

Protokol

  • SD: SPI mode ile blok transfer.
  • Frame: SD’nin kendi komut/cevap formatı; firmware tarafında “blok okuma/yazma” fonksiyonları.
  • Timeout: SD init ve blok transferlerinde zaman aşımı şart.
  • Retry: init başarısızsa sınırlı sayıda tekrar + hata bayrağı.

Hata senaryoları

  • Kart yok / temas sorunu: init başarısız.
  • Power‑loss sırasında yazma: dosya sistemi bozulabilir.
    • Firmware: yazma disiplinleri, ring buffer yaklaşımı, dosya boyutu sınırı.
  • EMI/gürültü: SPI hatlarında bit hatası.
    • Donanım: kısa hat, düzgün GND referansı.

3. UART Kanalı — GSM

Donanım katmanı

  • Arayüz: MCU donanımsal UART (USART) → GSM modülü UART
  • Seviye: 3V3 (modüle göre seviye dönüştürücü/translator katmanı olabilir)
  • Kontrol hatları: GSM_ONOFF, GSM_SDOWN, GSM_COMM_EN, GSM_SWREADY vb.
  • Koruma: Modem hattı ESD/EMI açısından kritik; yakın çevrede uygun ESD/seri direnç/topraklama yaklaşımı.

Protokol

  • Protokol: AT komut seti + uygulama katmanı paketleri.
  • Frame: UART byte stream + satır sonları (CRLF) + modem cevap formatı.
  • Timeout:
    • AT komut cevabı için komut türüne göre timeout (örn. 1–5 s)
    • TCP/HTTP gibi uzun işlemler için ayrı “operation timeout”.
  • Retry:
    • Kısa komutlarda sınırlı tekrar.
    • Bağlantı kurulamazsa state machine ile yeniden bağlanma.

Hata senaryoları

  • Modem cevap vermiyor / kilitlendi
    • Firmware: watchdog + modem power cycle (kontrol pinleriyle) + retry/backoff.
  • Hat gürültüsü / framing error
    • Firmware: UART hata bayraklarını say, ring buffer temizliği.
  • Şebeke gidip gelmesi
    • Sistem politikası: power‑lost sonrası 30 dk bekle, sonra batarya moduna geç (GSM kapanır).

4. UART Kanalı — Enerji Analizörü (MAX78630 / ölçüm katmanı)

Donanım katmanı

  • Arayüz: MCU UART ↔ enerji analizörü/SoC UART (kart içi kısa hat)
  • Seviye: 3V3
  • Not: Enerji katmanından ayrıca 2 kanal “alarm/limit” interrupt hattı gelebilir; UART yalnızca veri/komut taşır.

Protokol

  • Protokol: Cihaz içi “komut/cevap” yaklaşımı.
  • Frame: (öneri) SYNC + LEN + CMD + PAYLOAD + CRC gibi deterministik bir çerçeve.
  • Timeout: her komuta karşılık makul cevap timeout’u.
  • Retry: CRC hatasında veya timeout’ta sınırlı tekrar.

Hata senaryoları

  • CRC/çerçeve bozulması: EMI veya yazılım hatası.
  • Cevap gecikmesi: enerji katmanı yoğunken.
  • Alarm var ama veri okunamıyor: UART kilitlenmesi.
    • Firmware: alarm interrupt → “okuma görevi” flag → UART recovery.

5. UART Kanalı — RS‑485 (Terminal / Saha)

RS‑485, elektriksel olarak diferansiyel bir fiziksel katmandır. Bu bölüm UART + transceiver birlikteliğini anlatır; bir alt bölümde RS‑485’in fiziksel fail‑safe tasarımını ayrıca ele alıyoruz.

Donanım katmanı

  • MCU UART ↔ RS‑485 transceiver (DI/RO)
  • Yarı‑dupleks kontrol: RS485_Dir (DE/RE birlikte)
  • Koruma: ESD diyotları, uygun konektör topraklaması.

Protokol

  • Protokol: Servis/terminal veya Modbus RTU benzeri.
  • Frame (Modbus örneği): ADDR + FUNC + DATA + CRC16
  • Timeout:
    • Frame arası boşluk (inter‑frame)
    • cevap bekleme timeout’u
  • Retry: cevap yoksa sınırlı tekrar.

Hata senaryoları

  • Kablo kopuk / A‑B ters: sürekli timeouts.
  • Çakışma (multi‑drop): iki sürücü aynı anda konuşursa.
  • Gürültü: yanlış byte/CRC.
    • Firmware: CRC ile ele, gerekirse yeniden iste.

6. RS‑485 Fiziksel Katman (Fail‑safe bias, terminasyon, ESD)

Donanım katmanı

  • Terminasyon: hattın uçlarında 120Ω (topolojiye göre).
  • Fail‑safe bias: sürücü yokken hattın “belirli” idle seviyesinde kalması.
  • ESD/Surge: saha kablosu dış ortamdan geldiği için ESD diyotları ve uygun topraklama kritik.

Protokol/işletim notları

  • Yarı‑dupleks olduğu için RS485_Dir zamanlaması deterministik olmalı.
  • TX bitince DE kapatma için kısa bir guard time kullanılır.

Hata senaryoları

  • Bias yoksa: hat boşta “floating” olur → yalancı byte.
  • Yanlış terminasyon: yansıma → CRC hataları.
  • Toprak potansiyel farkı: ortak referans zayıfsa.

7. UART Kanalı — LoRa

Donanım katmanı

  • MCU UART ↔ LoRa modülü (kart içi)
  • Seviye: 3V3
  • Not: LoRa modül tipine göre ek kontrol pinleri (RESET/EN) bulunabilir.

Protokol

  • Protokol: modülün AT‑benzeri seti veya binary frame.
  • Timeout/retry: RF ortamına göre daha uzun timeout ve sınırlı retry.

Hata senaryoları

  • Paket kaybı: RF doğası gereği.
  • Çakışma: aynı kanalda yoğun trafik.
  • Modül kilitlenmesi: power cycle/reset hattı ile toparlama.

Firmware Uygulama Prensipleri (Ortak)

  • UART RX tarafı ISR ile ring‑buffer’a alınır; parsing loop tarafında yapılır.
  • GSM ve RS‑485 gibi kanallar için state machine yaklaşımı kullanılır.
  • Timeout ve retry sayıları “sonsuz döngü” oluşturmayacak şekilde sınırlandırılır.
  • Hata sayaçları telemetriye dahil edilerek sahada teşhis kolaylaştırılır.