Gömülü ve Gerçek Zamanlı Tasarım Kalıpları-4. Alt Sistem Adaptasyonu

Huseyin Kutluca
Yazılım Mimarileri
4 min readFeb 23, 2021

Endüstriyel nesnelerin interneti, robotik, otonom araçlar, komuta kontrol, silah kontrol gibi sistemler birden fazla karmaşık alt sistemi entegre eden sistemlerdir. Bu sistemler aslında farklı alt sistemlerin bir bir sistem gibi çalışmasını temel alan dağıtık sistemlerdir. Entegre edilen GPS, Radar, motor kontrol, kamera gibi sistemler kendi özel protokolü ve girdi/çıktı ara yüzü ile gelmektedir.

Bir önceki yazıda girdi/çıktı donanımı ve ilgili sürücü yazılımının Girdi/Çıktı Donanım Adaptasyonu ile soyutlandığından bahsetmiştik.

İkinci seviye soyutlama ise cihazın veri, kontrol ve durum mesajlarının ortak bir iletişim yöntemi ile soyutlamasıdır (Alt sistem Adaptasyonu). Böylelikle;

  1. Donanım hazır olmadan diğer birimlerin geliştirilebilmesi ve test edilebilmesi,
  2. Farklı cihazların sisteme aynı ara yüz ile entegrasyonu,
  3. Birden fazla cihazın ara yüzü incelenerek hazırlanmış olgun derecede bir ara yüz ile sistemin tasarımı basitleşecek ve bileşenler arası bağımlılıkların en aza indirilmesi,
  4. Simülatör ve test verilerinin yeniden kullanılması hedeflenmektedir.

Örneğin GPS cihazını ele alalım bu cihaz muhtemelen NMEA dediğimiz bir biçimde pozisyon, zaman gibi bilgileri iletecektir. Bu cihaz dışında özel bir başka cihaz ise benzer bilgileri tamamen farklı bir protokol ile iletecektir. Bu veriyi kullanan uygulamaların cihazın marka, model ve protokolünden bağımsız şekilde pozisyon verisine erişmesini hedeflemekteyiz.

Bu amaçla “Alt Sistem Ara Yüz Birimi”, “Platform Özel Cihaz Servisi”, “Cihaz Adaptörü” gibi isimlerle tanımladığımız yazılımlar bu cihazlardan aldığı verileri proje tarafından belirlenen standart bir veri formasına çevirir. Bu verinin diğer sistemlere iletilme yöntemi olarak metot çağırma ara yüzü sağlanacağı gibi DDS, MQTT, Uzaktan metot çağırma gibi dağıtık mimari çözümü tasarım aşamasında belirlenir. Bu şekilde yapılan tasarımlar ile belirli firma ürününe sistemin bağımlılığı koparılmış olur. Herhangi bir zamanda yeni bir alt sistem/cihaz ilgili soyutlama yazılımı ile sisteme entegre edilebilir.

Alt sistem adaptasyonu genelde bir önceki yazımızda anlattığımız Girdi/çıktı donanım soyutlama katmanı üzerine bir katman olarak tasarlanmaktadır.

Kimi zaman da araya ek bir protokol soyutlama katmanı konabilmektedir. Özellikle cihaz karmaşık bir protokol üzerinden iletişim kuruyor ise bu protokolü de yönetecek bir katmana ihtiyacınız olacaktır. Örneğin UDP veya seri iletişim üzerinden güvenli iletişim yapıldığını düşünelim. Bu durumda gelen mesajlara cevap gönderme, mesajın şifresini açma, periyodik hayatta olduğu bilgisini karşıya gönderme gibi protokol işlemlerini halletmeniz gerekebilir. Bu katman Protokol Soyutlama Katmanı (Protocol Abstraction Layer-PAL) olarak isimlendirilebilmektedir.

Altsistem Soyutlama Tasarım Yaklaşımı

Soyutlamak istediğiniz cihaz/alt sistem ara yüzünü oluşturur iken

  • Bu türde mevcut veya geliştirilen cihazları dikkatli şekilde analiz edin
  • Bu cihazların bir cihazdan başka cihaza geçiş yaptığınızda değişmeyecek özelliklerini çıkarın
  • Cihaz özelliklerini kullandığınız ara yüz yaklaşımına göre mesaj tabanlı ya da servis ara yüzlerini tanımlayın. En temelde cihazın yayımlayacağı veriler, cihazın sistemden alacağı bilgiler (zaman, mevcut pozisyon yada oryantasyon gibi), cihazı istenilen duruma getirmek için ihtiyaç duyulan kontrol ara yüzleri ile cihazın mevcut çalışma parametrelerini gösteren durum verilerini tanımlayın.
  • Cihazın bağlantı durumu, hata raporlama gibi ara yüzlerini bu cihaza özel tutabileceğiniz gibi bir üst seviyede bütün cihazlar için aynı seviye ara yüz belirleyebilirsiniz.
  • Cihazların bütün özelliklerini ortak ara yüz ile çözmeye çalışmayın. Ortak ara yüzler dışında cihaz özel ara yüzler ile özel durumları halledebilirsiniz.

Bu ara yüzleri tanımladıktan sonra UML, IDL, doxygen ya da formatında dokümante etmeyi ve projedeki bütün paydaşların erişimine açık tutmayı (GIT, Confluence vb. ) unutmayın. Bu ara yüzler sizin sistem mimarisi için kritik öneme sahip bilgilerdir.

Açık Mimarilerde Cihaz Soyutlama

Aşağıdaki resimde FACE mimarisindeki Özel Cihaz Servisleri görmektesiniz. Burada GPS servisi Girdi/Çıktı servisinden aldığı veriyi proje tarafından tanımlanmış standart veri tanımı (GPS_Position gibi bir veri yapısı) ile İletişim Katmanı üzerinden diğer taşınabilir bileşenlere iletir.

FACE 2 katmanlı donanım adaptasyon mimarisi

NATO Askeri Araç Mimarisi Standardı (NGVA) bu şekilde sisteme entegre edilecek cihazların alıp vereceği verileri IDL formatında tanımlamış ve iletişim için DDS ara katmanını belirlemiştir. Bu durumda GPS, Radar gibi alt sistemler için adaptör yazılabileceği gibi, bu cihazların kendi içinde ilgili standart protokolü de geliştirip ara yüzünde standart veri ile DDS üzerinden haberleşmesi tercih edilebilir. Lazer mesafe ölçücü, Seyir, Güç, Silahlar, Fren, Kullanıcı Girdi cihazları ve Taktik Sensör bu kapsamda ara yüzleri soyutlanmış alt sistemlerdir.

OMG grubunun C4I çalışma grubu Genel Radar Arayüzü (Generic Radar Interface) gibi standartları yayımlayarak farklı tür radarların veri, kontrol ve durum mesajlarını standart hale getirmiştir. Hatta standardın yeni versiyonunda Elektro optik, IRST, sonar gibi cihazların da aynı mesajlar ile iletişim kurabilmesi için ara yüz mesajlarını daha üst seviyede soyutlamıştır.

Robot İşletim Sistemi (ROS ve ROS 2) bu ara yüzleri mesaj (msg) formatları ile sunmuştur. Bu yapıda konu (Topic) ve servis (services) kavramları mevcuttur. Konu ile yayımla abone ol felsefesinde veri yayımlaması mümkünken servis ile uzaktan metot çağırma yaklaşımı benimsenmiştir. ROS2 ile DDS ara katmanına geçiş sağlanmış ve gerek Konular gerekse servisler DDS üzerinden iletilmektedir. ROS 2 de bulunan kamera lazer mesafe ölçücü gibi cihazlar için standart haline gelmiş sensor mesajları bulunmaktadır Bunlara kamera bilgisi (CameraInfo), Görüntü (CompressedImage, Image), joyistik ( JoyFeedback, JoyFeedbackArray), lazer (LaserEcho, LaserScan, MultiEchoLaserScan), hava durumu (RelativeHumidity, Temperature) ve zaman referansı ( TimeReference) örnek verilebilir.

Alt sistem adaptasyonu için ortak veri modeli ve standart protokoller Açık Mimari yaklaşımın temel özelliklerindendir.

Standart Ara yüz Sağlayan Cihazlar

Standart ara yüz tanımları iyi yapılmış cihazlar için cihazın kendisi bu ara yüzü kendisi destekleme yoluna gidebilir. Bu durumda ilgili cihaz bağla-ve-çalışsın felsefesine uygun şekilde entegre olabilecektir. Benzer bir yaklaşım cihazın içinde değil de cihaz ile sağlanacak sürücü yazılımı ile bu ara yüzü sağlamak mümkün olacaktır. Bu yaklaşımlarda dikkat edilmesi gereken husus standartların kendilerini devamlı yenilemeleri sonucu birden fazla versiyonu desteklemek olabilecektir.

--

--

Huseyin Kutluca
Yazılım Mimarileri

Highly motivated Software Architect with hands-on experience in design and development of mission critical distributed systems.