İ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_ENABLEbenzeri 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_SWREADYvb. - 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 + CRCgibi 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_Dirzamanlaması 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.