Geri Dön

Rapid prototyping concept design and implementation for unified diagnostic services software development

Ortaklaştırılmış tanılama servisleri yazılım geliştirilmesi için hızlı prototipleme konsepti tasarımı ve gerçeklemesi

  1. Tez No: 559438
  2. Yazar: YILMAZ MURAT GİRGİN
  3. Danışmanlar: YRD. DOÇ. SIDDIK MURAT YEŞİLOĞLU
  4. Tez Türü: Yüksek Lisans
  5. Konular: Mekatronik Mühendisliği, Mechatronics Engineering
  6. Anahtar Kelimeler: Belirtilmemiş.
  7. Yıl: 2019
  8. Dil: İngilizce
  9. Üniversite: İstanbul Teknik Üniversitesi
  10. Enstitü: Fen Bilimleri Enstitüsü
  11. Ana Bilim Dalı: Mekatronik Ana Bilim Dalı
  12. Bilim Dalı: Mekatronik Bilim Dalı
  13. Sayfa Sayısı: 89

Özet

Modern araçlarda çok sayıda elektronik modül bulunmaktadır. İçten yanmalı motorlu araçlar gittikçe daha sıkı karbon salınım standartlarıyla karşı karşıya gelirken, elektrikli araçların aşması gereken zorluklar kısıtlı menzil ve uzun ¸sarj edilme süreleridir. Araçlardaki elektronik parçaların sayısı, bu görevleri yerine getirebilmek için günden güne artmaktadır. Mühendislerin karşılaştıkları en büyük güçlük, araçlarda bulunan çok sayıdaki sistemin beraber sorunsuz çalışabilmesini ve araçların kullanım ömrü boyunca beklenen işlevselliklerini sürdürebilmelerini nasıl sağlayacaklarını çözmektir. Bu sebeple sistemlerden veri toplanması, işlenmesi ve doğru kararın verilmesi kritik önem taşımaktadır. Sensörler veri toplarlar ve bu verileri elektronik kontrol ünitelerine (ECU) gönderirler. ECUlar ise gelen verileri işleyerek sistemlerin kontrollerini sağlarlar. Tüm ECUlar birbirleriyle Kontrol Alan Ağı Veri Yolu (CAN) ile mesaj gönderip alarak haberleşirler. Aracın beklenen ve uygun işlevsellikte çalıştığından emin olmak için, tüm sistemler izlenmekte ve raporlanmaktadır. Bu görev, araç tanılama sistemi tarafından yerine getirilmektedir. Tüm elektronik parçaların parametrelerinin izlenmesi ve ECU'nun kaydettiği hataların raporlanması araç tanılamasının öncelikli sorumluluklarındandır. Araçlarda oluşan hataların belirtileri saptar, doğrular ve sınıflandırır. Tanılama, ayrıca mühendislik çalışmalarında da önemli bir rol oynar. Araçların tanılaması, yerleşik tanılama (OBD) ve harici tanılama (Off-Board) olmak üzere iki kısımdan oluşmaktadır. OBD, ECU'nun kendi tanılamasını yapması ve raporlama kapasitesi olması kavramlarını anlatan bir terimdir. İzleme, koruma, hata kodu kaydı, bilgi ve erişim OBD'nin temel görevleridir. OBD, salınım sistem hatalarının denetlenmesi ve belirlenmesi için tasarlanır ve aracın sürüşü sırasında görev yapar. Araçtaki belirtilere göre araç göstergesinde hata ikaz lambasını yakarak sürücüleri gerekli aksiyonları almak üzere uyarır ve yönlendirir. Harici tanılama, bir testçi tarafından istek ve cevap yoluyla yapılan tanılama işlemi için kullanılan bir terimdir. ECU sunucu, testçi ise alıcı olarak davranmaktadır. OBD'den farklı olarak tanılama yapabilmek için ek bir test ekipmanı gerekir. Harici tanılamada en çok kullanılan protokol ortaklaştırılmış tanılama servisleridir (UDS). UDS'in ortaklaştırılmış olarak adlandırılmasının sebebi, ISO 14230-3 (KWP2000) ve ISO 15765-3 standartlarının birleştirilmesi ile oluşturulması ve üreticiden bağımsız olmasıdır. UDS, mühendislik çalışmalarında, hat sonu operasyonlarında ve servislerde kullanılır. Mühendislik çalışmaları kapsamında, yazılımın ECU'ya yüklenmesinde, parametrelerin okunması ve konfigüre edilmesinde ve hata kodlarının okunması ve silinmesinde kullanılır. UDS'in hat sonu uygulamaları ise, ECU'ya yazılımın yüklenmesi, enjektör kodlarının ve varyant kodun yazılması, sistemlerinin işlevselliklerinin test edildiği rutin testlerinin yapılması ve hata kodu okunması ve silinmesidir. Aracın tasarım ve üretim süreçleri dışında UDS servis süreçlerinde de önemli bir rol almaktadır. Güncellemeler için oluşturulan yeni versiyon yazılımın ECU'ya yüklenmesi, hata kodlarının okunması ile araçtaki sorunun tespit edilerek çözülmesi ve hata kodlarının silinmesi ve araçtan ölçüm alınması ise UDS'in servis uygulamalarıdır. UDS sistemleri model tabanlı tasarlanmadıkları için, manuel olarak kodlanırlar. Yazılım mühendisleri UDS standartlarına uyarken müşteri isteklerine göre kodlama yaparlar. Bu sebeple tasarım süreçlerinde sayısız gözden geçirme, optimizasyon ve test yapılmasına gerek duyulmaktadır. Ancak test edilmiş ve istenen özelliklerde çalışan kodlar yazılıma entegre edilebilir. Kodun son versiyonunun yayınlanmasından önce, test yapılabilmesi için ECU yazılımını oluşturan tüm C dosyalarının derlenerek makine koduna dönüştürülmesi gerekmektedir. Ancak üretilen makine kodu ECU'ya yüklenebilir. Makine kodunun başarılı bir şekilde üretilebilmesi için önemli bir zaman ayrılması gerekmektedir. Makine kodunun üretimi sürecinde karşılaşılabilecek hataların giderilmesi için birkaç iterasyon gerekebilir. Bu adımlardan sonra ancak geliştirilen kod test edilebilir, testin başarısız olması durumunda kodda gerekli güncellemeler yapıldıktan sonra sayılan tüm bu adımların tekrar edilmesi gerekir. Projelerde, yüksek maliyetleri sebebiyle kısıtlı sayıda ECU ve test düzeneği kullanılır. Bu durum projede çalışan mühendis ve ekipman sayısı arasında bir uyumsuzluğa sebep olur. Limitli ekipman kullanımı, tasarım süreçlerinde mühendislerin kodları için test ortamı bulmalarını zorla¸stırır. Geleneksel hızlı prototipleme cihazları, model tabanlı tasarımlarda kullanılırlar. Tasarım yapıldıktan sonra kod otomatik olarak üretilir. Üretilen kodun test edilmesi için“hook”adı verilen bir i¸slemin yapılması gerekir. Tasarımı ya da geliştirmesi yapılan modülün girdileri ECU'nun başka bir modülü tarafından üretilmektedir ve aynı şekilde modülün ürettiği çıktılar da başka modüller tarafından kullanılmaktadır. Yeni tasarlanan sistemin testi için girdiler ECU'dan alınır, ECU'nun içindeki eski versiyon model baypas edilerek yeni modelde hesaplama yapılır. Hesaplanan değerler, diğer modüller tarafından kullanılmak üzere ECU'ya geri gönderilir. Bu sebeple ECU'nun RAM kısmına müdahale edilmesi gerekmektedir. Bu tez kapsamında, tasarlanan UDS modüllerinin kodlarının yayınlamadan önce test edilebilmesi için makine kodu üretimine, ECU ve test ekipmanlarına ve“hook”işlemine ihtiyaç duymadan bir test ortamı sağlamak amacıyla bir UDS hızlı prototipleme konsepti tasarlanmış ve gerçeklenmiştir. UDS, açık sistemler arabağlantı (OSI) modelinden yararlanır. OSI modeli 7 katmandan oluşmaktadır. Yazılım mühendisi tarafından geliştirilen kod, OSI modelindeki yedinci katmanı olan uygulama katmanıdır. Hızlı prototipleme cihazı OSI yapısı ile tasarlandığı için farklı UDS modüllerinin testi için uygun bir ortam sağlamaktadır. CAN hattından gelen testçi istek mesajları, protokole uygun olarak alınıp son katman olan uygulama katmanına iletilir. Uygulama katmanı tarafından gelen istek mesajına verilen cevap mesajı da alt katmanlara iletilir. Uygulama katmanı farklı uzunluklardaki gelen ve gönderilen mesajların nasıl iletildiği ile ilgilenmez. UDS modülleri, uygulama katmanında tasarlanırlar. Bu katman hızlı prototipleme cihazının test etmeyi hedeflediği katmandır. CAN hattı üzerindeki iletişim diğer katmanlarla sağlanmaktadır. Geliştirilen hızlı prototipleme cihazında bu iletişimi sağlamak üzere fiziksel, veri bağlantısı, ağ ve taşıma/iletim katmanları kullanılmaktadır. CAN hattı üzerinde UDS tanılama protokolü ağ ve taşıma katmanları standartlara göre tasarlanmış ve gerçeklenmiştir. Bu katmanlar için bir C programlama dilinde bir kütüphane oluşturulmuştur. Bu kütüphane ile, gelen ve gönderilen mesaj uzunluklarına göre farklı prosedürler izlenerek mesaj iletimi sağlanmaktadır. CAN mesajları maksimum 8 bayt veri taşırlar. Bu sebeple mesaj uzunluğu 8 ve 8'den az mesajlar ile mesaj uzunluğu 8'den fazla olan mesajlar için farklı taşıma prosedürleri görevlendirilir. Bu işlem için segmentasyon fonksiyonu tanımlanmıştır, 8 bayttan fazla veri taşıyan mesajlar için segmentasyon fonksiyonu uygulanır. Segmente edilen mesajlar, uygulama katmanına verilmeden önce birleştirilir ve bir bütün halinde iletilir. Tek bir CAN mesajı ile gönderilemeyecek mesajlar aynı şekilde uygulama katmanından bütün olarak alınır, ağ ve taşıma katmanları tarafından segmentasyon fonksiyonu ile parçalara ayrılarak gönderilir. Bu durumda mesajı alan nodun ağ ve taşıma katmanları mesajın tamamının iletilmesiyle mesaj birleştirme işlemini bitirir. Birleştirilmiş mesaj, uygulama katmanına verilir. Fiziksel ve veri bağlantısı katmaları CAN hattını oluşturan katmanlardır. Her iki katman da donanımlarla gerçeklenmiştir. TX (CAN hattı giden mesaj sinyali) ve RX (CAN hattı gelen mesaj sinyali) çıkışları olan bir mikro işlemci ile TX ve RX sinyallerini CAN-H (High) ve CAN-L (Low) sinyallerine dönüştüren bir CAN alıcı-verici kullanılmıştır. Böylelikle hızlı prototipleme cihazı CAN hattı üzerinden CAN mesajları alıp-gönderebilir hale gelmiştir. Bir USB bağlantılı CAN arayüz adaptörü yardımıyla, CAN mesajları bilgisayara aktarılabilir hale getirilmiştir. ECU gibi davranan hızlı prototipleme cihazı, CAN hattı üzerinde bir nodu temsil etmektedir. Hızlı prototipleme cihazına uygulama katmanının eklenebilmesi için bir grafik kullanıcı arayüzü (GUI) tasarlanmıştır. Bu arayüz ile sistemin girdilerinin alınması amaçlanmıştır. Bu girdiler; uygulama katmanı olan C kodu, kodlanan servis ve veri belirteç çiftleri ve bu çiftlerin mesaj uzunluklarıdır. Bu bilgiler ile, uygulama katmanından alınan ve uygulama katmanına verilen mesaj uzunlukları tanımlanır. Hızlı prototipleme, ECU'dan farklı olarak kodlanan servislerin içerdiği değişken değerlerini içermez. Asıl amaç tasarlanan kodun doğru algoritmaya sahip olup olmadığının test edilmesi olduğu için ECU'nun diğer modülleri tarafından hesaplanan bu değişkenlere rastgele değerler atanır. Böylelikle olumlu cevap şartlarının sağlanması durumunda hızlı prototipleme tarafından bu değerler gönderilir. Bu değişkenlerin doğru bir şekilde simüle edilebilmesi için kodda yer alan her bir servis-veri belirteci çifti için tanımlanan değişken sayısı kadar değişken üretilir ve bu veri belirteci için gelen UDS istek mesajına cevap olarak üretilen bu değerler UDS mesaj formatına göre hazırlanarak gönderilir. Tasarlanan hızlı prototipleme konseptinin implementasyonunun testi için, örnek bir uygulama katmanı hazırlanmıştır. UDS'in en çok kullanılan servislerinden olan belirteç ile veri okuma servisi olan $22 ve belirteç ile veri yazma servisi olan $2E servisleri seçilmiştir. Ayrıca $2E servisi ile yazılan değerler, $22 servisi ile okunabilir olduğu için karşılıklı olarak çalışan bu servisler uygulama katmanı örneği olarak avantaj taşımaktadırlar. Testçinin değer yazmadan önce okumak istemesi halinde, rastgele değer atama fonksiyonu yardımıyla hazırlanan değişkenlere onaltılık sistemde değerler atanır ve uygulama katmanında belirlenen pozitif cevap şartlarının sağlanması halinde bu değerler testçiye gönderilmektedir. Pozitif cevap şartlarının sağlanmaması durumunda servis-data belirteç çiftleri için uygulama katmanında tanımlanan negatif cevap kodları (NRC) gönderilir. Uygulama katmanında, geçerli olmayan mesaj uzunluğu için NRC $13, reddedilmiş güvenlik erişimi için NRC $33, şartların sağlanmaması durumu için NRC $22 ve veri belirtecinin tanımsız olması durumu için NRC $31 tanımlanmıştır. Tasarlanan algoritmaya göre yapılan kontroller sonrasında pozitif cevap ya da negatif cevap testçiye gönderilir. Geliştirilen hızlı prototipleme cihazı ile UDS servisleri yazılımı yapan mühendislere, tasarım ve optimizasyon süreçlerinde kullanılmak üzere bir test ortamı hazırlanmıştır.

Özet (Çeviri)

Modern vehicles have numerous electronic modules. While internal combustion engine vehicles face more and more strict exhaust emission standards, electric vehicles face restricted electric range and the need of long battery-charging time. The number of electronic components in the vehicles increases continuously to achieve those tasks. Hence, vehicles become more complicated day by day. The crucial challenge, which the engineers need to solve, is how to make those systems work together and to sustain the functionality of the systems during the life cycle of the vehicles. The electronic components such as sensors measure data and transmit that data to an electronic control unit (ECU). All ECUs communicate each other via controller area network (CAN) by transmitting and receiving messages. To be able to assure the vehicle to operate properly, all systems have to be monitored and reported. At this point, diagnostics become prominent and vital for the vehicles. The diagnostic of the vehicles can be categorized as on-board diagnostics (OBD) and off-board diagnostics. OBD is a generic term called as self diagnostic done by ECU itself and capability of recording. The objectives of OBD are monitoring, protection, fault code storage, information and access. The OBD system is designed to monitor and identify the emission control system malfunctions. The Off-Board diagnostic term refers to diagnostic done offline by a tester via request – response relation. The most commonly used diagnostic protocol in off-board diagnostic is Unified Diagnostic Services (UDS). UDS is used for engineering studies, flash programming of an ECU at the end of line (EOL), reprogramming for a new version of an application released for fixings and upgrades and read/clear diagnostic trouble codes (DTC) at the vehicle repair workshops. The UDS features are coded manually, since they are not designed as model based. Hence, the software engineers need to code the features in the light of the standard specifying UDS in accordance with the requirement of the customers. In development process, before integrating the code generated manually should be tested. For testing, the software engineer has to build all the C code files of all features to obtain machine code to flash the ECU. To have successful build, considerable time must be spent and some iterations could be required in case of occurring errors. Only after these steps, the engineer finally can execute the test and in case of the failure found in the code, all these steps have to be repeated. Also, the limited number of ECUs and test benches used in the project is another constraint the software engineers encounter. In the scope of this thesis, a rapid prototyping concept is developed and implemented to present a test environment to the engineers during the design of UDS features to prevent time loss because of generating of machine code and to overcome the delays which could be caused by intense usage of ECUs and test benches allocated to projects. The code undergoes countless review and optimization processes before the last design of the code checked into the repository. With the help of the developed rapid prototyping, design and optimization iterations can be performed before releasing the code. The rapid prototyping tool presents to the engineer the UDS diagnostic protocol on CAN bus and allows the engineer to flash the application layer which is coded in the C language as an input. A graphical user interface (GUI) is designed in Matlab to ease the test preparation process. The application layer, the service-data identifier pairs and their message lengths are the inputs. Thus, the tool emulates an ECU having UDS on CAN bus and is ready for testing after flashing the C code without requiring building of the machine code. In contrast to traditional rapid prototyping, the designed rapid prototyping does not require hook. For testing the rapid prototyping, an example application layer is coded. In this application layer, read data by identifier ($22) and write data by identifier ($2E) services are implemented. Also, some negative response codes (NRC) are defined for service-data identifier pairs.

Benzer Tezler

  1. Kafatası kayıplarının onarılması için kişiye özel implant tasarımı ve üretimi

    Patient specific implant design and production for closure of skull defects

    BURAK OĞUZHAN SAVAŞER

    Yüksek Lisans

    Türkçe

    Türkçe

    2017

    BiyomühendislikTOBB Ekonomi ve Teknoloji Üniversitesi

    Biyomedikal Mühendisliği Ana Bilim Dalı

    PROF. DR. OSMAN EROĞUL

  2. Mekanik endüstride CAD/CAM sistemlerinin seçimi ve etkin kullanımı

    Başlık çevirisi yok

    METE YAKIN

    Yüksek Lisans

    Türkçe

    Türkçe

    1998

    Mühendislik Bilimleriİstanbul Teknik Üniversitesi

    İşletme Mühendisliği Ana Bilim Dalı

    DR. HALİL HALEFŞAN SÜMEN

  3. Dikey iniş kalkış yapabilen sabit kanatlı insansız hava aracı tasarım, üretimi ve uçuş testleri

    Design, manufacturing and flight tests of a fixed-wing vertical take-off and landing unmanned air vehicle

    UĞUR ÖZDEMİR

    Doktora

    Türkçe

    Türkçe

    2015

    Uçak Mühendisliğiİstanbul Teknik Üniversitesi

    Uçak ve Uzay Mühendisliği Ana Bilim Dalı

    DOÇ. DR. GÖKHAN İNALHAN

  4. Uzman sisten ve otomotiv sektöründeki bir uygulama

    Expert system and an application in the automotive sector

    HÜSEYİN BURGUT

    Yüksek Lisans

    Türkçe

    Türkçe

    1999

    Makine Mühendisliğiİstanbul Teknik Üniversitesi

    Makine Mühendisliği Ana Bilim Dalı

    YRD. DOÇ. DR. SERDAR TÜMKOR