Bu yazıda bazı arkadaşlara faydalı olabileceğini düşündüğüm bir haberleşme protokolüne değineceğim. Yerine göre CAN ve ethernete alternatif olarakta kullanılabilir. Yazıyı her ne kadar özetin özeti olarak hazırlamaya çalışsamda biraz uzun oldu galiba. Her zaman olduğu gibi yine tarihçesi ile başlayalım.
MIL-STD-1553 USDOD tarafından yayınlanan seri haberleşme protokolünün mekanik, elektriksel ve fonksiyonel karakteristiklerini tanımlayan bir standarttır. 1973 yılında askeri aviyonikler için tasarlanmış, ilk defa bir F16 üzerinde kullanılmış ve hava araçlarının üzerindeki sistemler arasında veri iletişimini sağlar hale gelmiştir. Bunu takiben kısa sürede çeşitli uçaklarda, helikopterlerde ve sivil havacılıkta kullanılır hale gelmiş ve ayrıca bu standart NATO tarafından STANAG 3838 adıyla kabul edilmiştir. Şuanda çeşitli ülkeler tarafından askeri ve sivil havacılıkta, otomativ ve otomasyon sanayiinde kullanılmaktadır.Bu protokolü “Fiziksel Katman” ve “Protokol” olarak iki ana başlıkta inceleyebiliriz.
1. Fiziksel Katman
MIL-STD-1553 Manchester kodlaması kullanmaktadır. Veri yolu için genelde twisted shielded pair veya dairesel kesitli coaxial tip kablokullanılmaktadır.İletim hattındaiçteki pin pozitiftir. 1Mhz de 70-85 ohm empedans gösterir. Tepeden tepeye gerilimi 18V-27V arası değişmektedir. Sistemdeki alıcı ve vericiler hatta direnç ve coupling trafosu ile bağlanır.
Veri yolu birbirinden bağımsız genellikle iki olmak üzere iki veya üç iletim hattı ile yedeklenmiştir. Veri yolunun birde daha hafif ve elektromanyetik girişimlere karşı daha iyi direnç gösteren fiber optik versiyonu vardır ve buda MIL-STD-1773 olarak tanımlanmıştır.Aşağıdaki şekilde çift yedekli bir veri yolunun bir modeli görülmektedir.
Sistem bir veri yolu kontrolcüsü (Bus Controller), uzak terminaller (Remote Terminals), iletim hattı ve bus monitorden oluşmaktadır. İletim hattındahaberleşme için manchester kodlaması kullanılmaktadır. Bu kodlamadabitler sinyal geçişleri ile kodlanmaktadır. Bu sebeple hatta DC bileşen yoktur ve clock sinyali bit geçişlerinden elde edilebilmektedir. Böylece tek iletim hattında hem veri hem clock aynı anda iletilebilmektedir. Her bit periyodunun ortasında bir sinyal geçişi olmakta ve bu geçişin yönü bitin değerini vermektedir. Bit periyodunun sınırlarındaki sinyal geçişleri bir anlam ifade etmemekte ve bir sonraki periyotta kodlanacak olan değere hazırlık için yapılmaktadır. Veri temsiliaşağıdaki şekildeki gibi iki şekilde yapılmaktadır (IEEE, Thomas ). IEEE 802.3 standartına göre sinyal geçişi yükselen şekildeyse bitin değeri 1, düşen şekildeyse 0 dır. MIL1553 ise G.E Thomas’ın tanımladığı şekli kullanır. Yani düşen kenar 1, yükselen 0’dır.Hat frekansı 1Mhz, bit hızı 1u saniyedir.Aşağıdaki şekilde görülmektedir.
1.1 Remote Terminals
RT’ler (uzak terminal) veri yolu ve alt sistemler arasındaki haberleşmeyi sağlayan elektronikleri kapsar. Alt sistemler en basitinden bir sensör, kullanıcıya görsel ve işitsel çıktılar sağlayan bir donanım, çeşitli aviyonikler olabileceği gibi başlı başına bir bilgisayar (görev, uçuş, silah bilgisayarları …) veya başka bir veri yolu ile haberleşmeyi sağlayan bir köprüde olabilir. Hava aracının fonksiyonelliğini sağlayan ve çalışabilmesi için gereken cihazlardır.
RT’ler en basit haliyle alıcı/verici, encoder/decoder, protokol denetleyicisi, hafıza birimi ve alt sistem arayüzünden meydana gelir. Yedekli sistemlerde yedek sayısı kadar alıcı verici ve encoder decoder bulunmalıdır. RT’ler kendi başlarına haberleşme yapamazlar. RT’lerin çalışabilmesi için bir master haberleşmeyi yönetmelidir. RT ler masterın istekleri doğrultusunda çalışmaktadırlar. Geçerli bir komut aldıklarında belirli bir süre aralığında (4-12 microsaniye) onay cevabı vermelidirler.
1.2 Veri Yolu
Veri yolu iletim hattından (kablo) ve çeşitli sayıda stublardan oluşur. Stub ana kablo demetinden remote terminallere dallanan bağlantılardır. Hatta bağlanacak her terminal için bir stub vardır.
Veri yolu her ucundan kablonun karakteristik empedansına eşit veya %2 toleranslı direnç kullanılarak sonlandırılmalıdır. Bu sonlandırma işlemi elektriksel olarak veri yolunun sonsuz bir iletim hattıymış gibi davranmasını sağlar. Veri yoluna bağlanan her stub bağlandığı noktada bir yük oluşturur. Bu yükün iletim hattına göre empedans uygunlaştırılması yapılmassa veri yoluna elektriksel olarak geri yansımalar meydana gelir ve ana veri yolunun performansı düşer. Veri yolunun karakteristikleri aşağıdaki tabloda gösterilmiştir.
Veri yolu için standartlarda belirlenen maximum bir uzunluk yoktur. Dikkatli ve test edilerek tasarlanmış ve yerleştirilmiş stublar ile bir kaç yüz metreye kadar sağlıklı bir sistem elde edilebilir.
Standartlarda terminallerin ana veri yoluna bağlantı şekli için iki metod tanımlanmaktadır. Bunlar direct coupled veya transformer coupled şeklinde olabilir. Transformer coupled metodunda izolasyon trafosuna ek olarak kuplör trafosu ( coupling transformer ) kullanılmaktadır. Aşağıdaki şekilde görülmektedir.
İki metod arasındaki bir diğer fark ise stub uzunluğudur. Direct coupled metot için maximum stub uzunluğu 30 santimetreyi geçmemelidir. Transformer coupled metottda ise bu uzunluk 6 metredir. Bu yüzden direct coupled metodunu kullanan sistemlerde veri yolu kablo hattının güzergahının terminallerin yakınından geçecek şekilde tasarlanması gerekmektedir. Transformer coupled metotda stub uzunluğu 6 metreye kadar çıkabildiğinden böyle bir mecburiyet yoktur.
1.3 Bus Controller
Veri yolunun yönetiminden ve verinin akışından sorumludur. Hattaki tüm haberleşmeleri BC başlatır. Bazı remote terminaller de BC gibi çalışabilme yeteneğine sahip olabilir veya birden fazla BC hatta bulunabilir fakat aynı anda hatta sadece 1 BC aktif olabilir. BC’ler hafızalarında kayıtlı olan komut listesine göre çalışırlar. Uzak terminallerden gelen istekleri servis eder hataları tesipt edip kurtarmaya çalışırlar ve kayıtlarını tutarlar. Üç tip BC vardır.
Word controllereski en basit controller tipidir. Sistemin ilk tasarlanmaya başladıgı yıllarda kullanılmaya başlanmıştır. Bu sistemde cihazlar aynı anda sadece 1 word gönderebilmektedirler. Herhangi bir hata düzeltme kabiliyeti yoktur. Mesajların biriktirilmesi ve doğrulanması alt sistemler tarafından yapılmaktadır. Buda sisteme az miktardada olsa yük bindirmektedir.
Message Controller günümüzde en yaygın olarak kullanılandır. Aynı anda bir mesaj gönderebilir ve mesajlar birden fazla word’den meydana gelebilir. Veri kontrolü haberleşme sonunda bir kere veya hatta hata meydana geldiğinde yapılmaktadır. Oluşan hataları minimum seviyede düzeltmeye çalışır (alternatif veri yolundan veriyi tekrar gönderme gibi).
Frame Controller BC’lerin en son kabul edilen tipidir. Gelişen mikrodenetleyicili sistemler veya uygulamaya özel entegre devreler (Application Specific Integrated Circuits (ASIC's) ) ile frame controller lar aynı anda birden fazla mesajı yönetici bilgisayardaki sıra ile işleyebilirler.Daha önceden tanımlanmış kontrol wordlerine göre hata düzeltme yapabilirler
1.4 Bus Monitor
Bus monitor hattaki mesajların hepsini veya çeşitli sebeplerden dolayı ihtiyaca özel kısmını dinleyip kaydeden bir nevi remote terminaldir. Genellikle iki amaç için kullanılır. Offline uygulamalar için veri kaydetme, yeniden oynatma ve BC’ler için back-up olarak kullanılmaktadır. Eski tasarımlarda sadece kayıt amaçlı kullanılmaktayken günümüzde yaygın olarak RT’lerin diğer cihazlar içine gömülmesiyle birlikte BM’lerde içlerinde bir RT bulundururlar ve kendi adreslerine gelen komutlara cevap verip diğer trafiği dinlerler.
1.5 Terminal Hardware
BC,RT ve BM lerin elektronik donanımı hepsinin alıcı/vericisi, encoder/decoder’ı ve format çözücüsü aynı oldugundan dolayı pek fazla değişmez. MIL-STD-1553B standartı veri yolunun empedansını 70-85 ohm arasında tanımlasada endüstri de 78 ohm standart haline gelmiştir ve 78 ohm’luk twinax cable denilen kablo kullanılmaktadır.
2. Protokol
Veri yolundaki haberleşme word’ler ile yapılmaktadır. Veri yolunun kontrolü, veri akışı, durum raporlama ve yönetim üç farklı tip word ile yapılmaktadır. Bunlar aşağıdaki listedeki gibidirler.
- Command Words
- Data Words
- Status Words
Her word genel bir yapıya sahip olsada hepsinin kendine özel bir formatı vardır. Genel olarak tüm word tipleri 20 bitten oluşur ve üç bitlik senkronizasyon işareti ile başlar. Bunu takiben 16 bitlik veri ve mesaj alanı gelmektedir. Bu alan word tipine göre değişmektedir. En son ise tüm wordler parity biti ile sonlanmaktadır. Yukarıdaki şekilde görülmektedir. Bit kodlamaları kısım 1.1 de anlatıldığı gibi Manchester kodlaması ile yapılmaktadır. Fakat üç bitlik senkronizasyon kısmı biraz farklıdır. Senkronizasyon sinyalin 1.5 bit uzunluğunca yüksek ve ardından 1.5 bit uzunluğunca düşük seviyede kalmasıyla olur. Bu şekilde ard arda gönderilen mesajlarda 3 bit sync ve 1 bit parity olduğundan mesaj aralarında 4microsaniyelik boşluklar olur.
2.1 Command Words
Command words (CW) terminallerin gerçekleştireceği fonksiyonel işlemleri tanımlamaktadır. Üç tip CW vardır. Bunlar şu şekildedir.
- Transmit Command
- Receive Command
- Mode Code Command
Bu word’leri sadece etkin BC’ler gönderebilmektedir. Command word’lerin içeriği yukarıdaki şekilde gösterildiği gibidir. İlk üç bit senkronizasyon ile başlar. Ardından 5 bitlik terminal adresi alanı gelmektedir. Bu alan 0-30 adres aralığında 31 cihazı adresleyebilmektedir. 31 adresi ise wordun boardcast word oldugunu ve tüm terminaller tarafından alınacağını belirtir. Broadcast komutlar genelde sistemi birşeyden haberdar etmek veya küçük güncellemeler yapmak için kullanılmaktadır.
Adres alanından sonra bir bitlik alan komutun transmit veya receive command olduğunu bildirir. Bu bit her zaman terminallerin bakışına göre değerlendirilmelidir. Yani bu bit 1 ise terminal veri gönderecek, 0 ise terminal veri alacaktır.
CW’deki sıradaki 5 bit (10-14) alt sistem adresi olarak geçer. Bu alanın 0 veya 31 olması Mode Code Command (MCM’lere bu yazıda değinmeyeceğim) oldugunu belirtir. Diğer aralıktaki 30 değer ise alt sistemdeki cihazları temsil ediyor olabilir. Bu adresler tasarımcının tasarımına bağlı olarak değişir. Örneğin 1 adresi bir sensör olabilirken 4 pozisyon bilgisi, 15 self-test bilgisi olabilir. Tamamen tasarımcıya bağlıdır.
Sonraki 5 bit ise haberleşmede işlem görecek data word sayısıdır. 0-31 aralığında değer alabilir ve maksimum 32 word data gönderilebilir. En son bit ise partity bitidir. Parity biti sadece tek parity olarak kullanılmaktadır. Yani mesajın geri kalanındaki 1 olan bitlerin toplamı tek sayı ise bu parity biti 0, çift sayı ise parity biti 1 olacaktır.
2.2 Data Words
Data word’leri (DW) mesaj ile birlikte işlem yapılacak veriyi taşımaktadırlar. Yine yukarıdaki word yapılarını gösteren şekilde içeriği gösterilmiştir. İlk 3 bit senkronizasyon, son bit partiy ve ortada kalan 16 bit veri alanıdır. Bu alanda nasıl bir veri taşınacağı tasarımcıya bağlıdır. Standart sadece en değerli bitin (MSB) ilk gönderilmesi gerektiğini zorunlu kılar.
2.3 Status Words
Uzak terminallerin (RT) aldıkları geçerli komutlara veya mesajlara vermesi gereken cevaplar Status Word olarak (SW) tanımlanır. Bu mesajın doğru alınıp alınmadığını, RT’nin o anda meşgul oldugunu gösteren çeşitli bitleri vardır. Yukarıdaki şekilde gösterilmiştir.
2.4 Mesaj Transferleri
MIL-1553 te 10 tipte haberleşme gerçekleşmektedir (5 adet MCM haberleşmesine değinmeyeceğim). Bu haberleşmeler yukarıda belirtilen üç tip word tipiyle oluşturulan mesajlar ile gerçekleşmektedir. Mesaj formatları iki gruba bölünmüştür. Bilgi transfer mesajları ve broadcast bilgi transfer mesajları. Bilgi transfer mesajlarından üçü BC ve RT’ler arasında geçen veri gönderme, veri alma gibi haberleşmelerdir.Kalan iki haberleşme türü ise broadcasting olarak veri transferleridir. Broadcast oldukları için çok sayıda RT işin içine girmektedir ve dolayısıyla herhangi bir status wordu gönderilmemektedir. Bu durumda mesajların doğru alınıp alınmadığı istenirse BC istediği terminalleri yoklayarak status wordleri okuyabilir.
BC den RT’lere doğru olan mesaj transferleri receive command olarak isimlendirilmektedir. Bu mesajda BC T/R alanı 0 (receive) olan bir command wordu RT’ye gönderir. Bu wordun adres alanı ilgili RT’nin adresi, word sayısı alanı ise RT nin kaç word alacağını bildiren sayıyı içermelidir. Bu wordun hemen ardından BC belirtilen miktarda data wordunu sırayla gönderir. RT tüm veriyi aldığında en geç 12 microsaniye içinde durumunu bildiren bir status word göndermelidir. Böylece transfer işlemi sona erer.
RT den BC’ye doğru olan mesaj transferleri transmit command olarak isimlendirilmektedir. Bu mesajlarda BC T/R alanı 1 olan, kaç wordluk veri okuyacağını belirten bir transmit commandi ilgili RT ye gönderir. Bu mesajı alan RT 4-12usec içinde SW göndermeli ve ardından istenilen sayıda veriyi BC ye göndermelidir.
RT den RT ye mesajlarda ise sistem bir RT den diğerine direk veri gönderimini mümkün kılar. Fakat bunu RT’ler tek başlarına yapamazlar. Bu alış verişi BC yönetir. Bu işlem için BC veri alacak olan terminale receive command gönderir ve hemen ardından veri gönderecek olan terminale transmit command göndererek haberleşmeyi başlatır. Veri alacak ilk terminal tekrar bir command word gördüğünde (transmit) bunu görmezden gelir ve verinin gelmesini beklemeye devam eder. İkinci veri gönderecek RT ise ilk receive command kendi adresini ilgilendirmediği için görmezden gelir. İkinci defa transmit komutunu aldığında ise sanki BC’ye veri gönderiyormuşcasına status wordunu gönderir ve ardından veri gönderimine başlar. Böylece RT-RT veri gönderimi yapılmış olur.
Bir yazının daha sonuna geldik. Mode Code Commandlerin içeriğine bu yazıda değinmeyeceğim. Hepinize iyi çalışmalar dilerim.