BÖLÜM 6 SERI GIRIŞ / ÇIKIŞ (SIO) Paralel G/Ç yönteminde verilerin paralel olarak işlenmesi veri transfer hizini oldukça yüksek değerlere çikarir. Buna rağmen paralel G/Ç yönteminin de sakincalari vardir. Çoğu durumda, veri transfer hizinin büyük olmasi veri transferini senkronlamak için bir cins el sikişma bilgisini gerektirir. Yazici (printer) ile haberleşme aşağidakileri gerektirir. 1.Bir adet 8-bitlik çikiş kapisi 2.BUSY/READY işaretini izlemek için bir adet 1-bitlik giriş kapisi 3.STROBE işareti için cihaz seçme darbesi Bu üç maddede en az 11- iletkenli kablonun kullanilmasini gerektirir. Uzak mesafelere böyle çok sayida iletkenin çekilmesi ekonomik değildir. Halbuki seri giriş /çikiş yönteminde veri bayti bit bit gönderilir. Bu yüzden veri baytinin tüm bitleri için biri işaret teli diğeri diğeri toprak (ground) olmak üzere iki iletken yeterli olmaktadir. Tam - dupleks çalişmada eş zamanli gönderme ve alma sağlansin diye üç tel kullanilir. Iki iletkenli çalişma telefon hattindan bilgi iletimi için de uygundur. Bazi yavaş çalişan diş cihazlar verileri seri olarak alir ve gönderir. CPU lar genellikle paralel veri transferi yaptiklarindan, CPU ile böyle bir diş cihazi yüzleştirebilmek için paralel bilgiyi seriye ve seri bilgiyi paralele dönüştürebilecek bir arayüz cihazinin olmasi gerekir, şekil1. 2 1 Diş cihaz Seri G/Ç arayüz cihazi Mikroişlemci Şekill 1. Mikroişlemci ile diş cihazin yüzleştirilişi. 6.1 SERI VERI BITLERIN BELIRLENMESI Seri veri akişinin en belirgin özelliği verinin tek bir işaret halinde tek bir bacak üzerinden gönderilmesi ve alinmasidir. Gönderilen işaret alicida nasil değerlendirilecektir?
Diğer sayisal işaretlerde olduğu gibi, bilgi işareti lojk-1 için yüksek seviyeye (0V) sahip olmalidir, şekil 2. seri veri yorumu 0 1 1 1 0 0 1 0 0 Şekil2. Seri veri örneği Alici cihaz veri biti sinirlari için oldukça kesin deliller gerektirir. Alici cihazda, veri işaretinin değerlendirilmesi gereken ani belirleyen bir saat işareti kullanilir, şekil3. Saat Seri veri Yorumu 0 1 1 1 0 0 1 0 0 Şekil 3. Seri veri bitlerinin değerlendirilişi Şekil 3 de gösterildiği gibi, saat işaretinin düşen kenari seri veri işaretin örnekleneceği ani gösterir. Bu iş saatin yükselen kenarinda da yapilabilirdi. Ayrica seri veri akişini değerlendirmek için alici cihaz saat kullanirsa, seri veri işaretini doğurmak için de gönderici cihaz ayni frekansli bir saat kullanmalidir. Gönderen ve alan saat işaretleri ayni olamaz, çünkü bir işaretin durum değiştirmesi için belirli bir sürenin geçmesi gerekir. Buna durulma süresi (setting time) denir. Durum değiştiren her işaret bir durulma süresi gerektirir. Şimdi seri veriyi almak ve göndermek için ayni işaret geçişi kullanildiği zaman durulma süresinin nasil sorun yaratacağini görelim, şekil 4. düşme Saat Seri veri Alma ve gönderme için Durulma Alma ve gönderme için saatin saatin düşme kenari süresi kenari kullanilrsa, lojik-0 gönderildiği kullanilirsa lojik-1 gönderildiği halde lojik-0 alinacaktir. Şekil 4. Durulma süresinden dolayi hatali algilama lojik-1 alinacaktir.
Gönderen ve alan saat işaretlerin birçok yönü olmasina rağmen bu işaretler ayni özellikli tek bir işaret olamaz. Gönderen saat işaretin periyodu ikili hanenin, yani bir bitin, süresini belirler. Eğer saat darbesinin düşme kenarinda gönderme ve bir sonraki saat darbesinin yükselme kenarinda alma işlemi yapilirsa, tek saat işareti hem gönderme hem de alma için kullanilabilir, şekil 5. Şekil 5. Tek saat işareti ile veri gönderme ve alma Bit süresi, veri gönderme hizi ile doğrudan ilişkilidir. Yüksek frekansli saatin kullanilmasi bit süresini kisaltir. Bununla beraber seri veri akişindaki bir bitin süresi, seri veri transferinin ölçüsü değildir; onun yerine saniyede transfer edilen bit sayisi ölçülür. Bu sayiya baud hizi (rate) denir. Örneğin saniyede 110 bit gönderiliyorsa baud hizi 110 dur. Seri G/Ç saatin tam tamina baud hizinda olmasi her zaman gerekmez. Ama baud hizinda olma gereksinimi daha fazladir,seri X 1SAAT IŞARETI, şekil 6.a. Saat frekansinin baud hizinin 16 kati olmasi çok yaygindir (SERI X 16 SAAT IŞARETI), şekil 6. b. Baud hizinin 64 kati olan saat frekansi da çok kullanilan bir seçenektir. (SERI X 64 SAAT IŞARETI), şekil 6.c. Saat Seri veri yorumu 0 ( a) 0 1 0 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Saat Seri veri yorumu ( b) 1 2 62 63 0 1 2 3 32 62 63 0 1 2 3 32 62 63 0 1 Saat Seri veri
yorumu 1 (c) 0 Şekil 6 (a, b, c ). Bit algilamada kullanilan saat frekanslari X 16 ve X 64 saatlerinin kullanilma nedeni, seri veri işaret örneklendiği zaman bir bitlik zaman araliğinin merkezine mümkün olduğunca yaklaşabilmektir. Seri veriye eşlik eden saat işaretine olan gereksinme, bütün seri G/Ç işlemlerin iki saat hattina ihtiyaç duyduğu anlamina gelmez. Eşlik eden saat işareti, eşlik eden iletken üzerinden gerçekten gönderileceğini göstermez. Eğer önceden belirlenen baud hizinda seri veri haberleşme arayüzü kurulursa, o zaman alici cihaz eşlik eden saat işaretini almaya gerek duymaz. Alici cihaz kendi yerel saat işaretini doğurur ve onu seri veri hattindaki bir geçiş ile senkronlar, şekil 7. Senkronlama burada yapilir Saat Seri veri Yorumu 1 0 0 1 1 Özel senkronlama sifir biti Şekil 7. Veri hattindaki bir geçişle alici saatinin senkronlanişi Yukaridaki gösterimde veri gönderilmediği zaman seri veri işareti sürekli olarak yüksek seviyede durur; bu durum markalama (marking ) olarak bilinir. X 16 veya X 64 saat işaretleri kullanildiği zaman, alan saat gönderen saatten bir veya iki darbe faz kaymiş olabilir. Bu durum hiçbir problem yaratmaz; sadece alma örnekleme noktasi merkezden biraz öteye kayar. Eğer tek bir senkronizasyon biti yeterli olmuyorsa, senkronizasyon bit paterni kullanilabilir mi? Bu sorunun cevabi evettir. Örneğin özel senkronizasyon seri veri bit dizisi tanimlanabilir ve seri veri akişindan önce bu senkronizasyon paternlerin yer almasi kurali koyulabilir. Senkronizasyon bit dizisine SYNC karakteri denir. Bir seri veri akişinda, senkronlama bitlerini veya karakterlerini kullanma zorunluluğu, gönderilen verinin alici cihaz tarafindan doğru değerlendirilmesi için seri veri akişi üzerine koyulan birçok kurallardan biri olarak düşünülebilir. Bir başka kural bir bit süreleri ve sirasi olabilir. Bu tür kurallardan oluşan takima haberleşme protokolü denir.
Her seri G/Ç veri bağlantisinin bir haberleşme protokolü olmalidir, çünkü seri veri tamamen kendisini belirleyecek şekilde olmalidir. Pralel G/Ç yönteminden farkli olarak, herhangi bir andaki verinin nasil değerlendirileceğini alici cihaza söyleyen ve seri veriye eşlik eden denetim hatlari her zaman seri G/Ç haberleşmede olmayabilir. 6.2 HATA BULMA VE DÜZELTME Vericiden aliciya veri gönderildiği zaman, o verinin yolda bozulmadan aliciya varmiş olduğundan emin olunmalidir. Eğer sahte veri işaretleri seri veri hattina karişiyorsa, verinin bozulduğunu anlayabilecek bazi araçlara alici cihazin sahip olmsi gerekir. Hatalar aşağidaki iki yöntemle halledilebilir. 1. Eşitlik (parity), toplam-denetimi (checksums), veya dönel fazlalik karakteri (cylic redundancy characters, CRC) kullanilarak hata bulma. Hata bulunursa, alici cihaz o verinin yeniden gönderilmesini ister. 2.Hamminy kod kullanilarak hata düzeltme. Bu koda dayanan çoğu yöntemler çok bitli hatalari algilar ve tek -bitli hatalari düzeltir. 6.2.1 Eşitlik (Parity) Denetimi Bir bitlik hatalari algilamanin en basit yolu, gönderilecek her veri baytina bir eşitlik biti ilave etmektir. Bu fazlalik test etme biti, eşitlik biti de dahil olmak üzere, kelimedeki lojik-1 değerli bitlerin sayisini tek veya çift yapacak şekilde seçilir. Aşağida tek eşitlik olduğu varsayilan bazi örnekler verilmiştir. Bu gösterimlerde eşitlik biti kare içine alinmiştir ve hatali bitlerin altina yildiz işareti koyulmuştur. Tablo 1. Eşitlik denetimi ile hatanin algilanmasi Gönderilen Alinan Açiklama 1 0 1 1 0 1 1 0 0 1 0 0 1 0 1 1 0 0 Çift eşitlik, hata algilandi 1 0 1 1 0 1 1 0 0 1 1 0 1 0 1 1 0 0 Tek eşitlik, hata algilandi 1 0 0 1 0 1 1 0 1 1 0 0 1 0 1 1 0 0 Çift eşitlik, hata algilandi 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 1 Tek eşitlik, hata algilanamadi * * * * * * * * * Eşitlik biti
Eşitlik yöntemi tek sayida çok bitteki bozulmayi algilamada başarisiz olur. Eşitlik bitin ilavesi, veri bütünlüğünü 357 faktör kadar iyileştirir. Eşitlik bitin kullanilmasi sadece seri haberleşme kanallariyla sinirli değildir. Çoğu bilgisayarlarda CPU ile bellek arasindaki veri tranferlerinde de kullanilir. 6.2.2. Toplam Denetimi (checksums) Eşitlik biti kullanmanin en büyük sakincasi, her veri bayti için ilave bit gerektirmesidir. Bu durum transfer hizini düşürür ve veri saklanacaksa ilave bellek hücresi gerektirir. 64K-baytlik bellek 64k eşitlik biti gerektirir. Disk ve magnetik teyp ikincil bellek cihazlari kullanildiği zaman, eşitlik biti için oldukça fazla saklama alani gerekecektir. Bu yüzden veri bloklari transfer edileceği zaman, toplam-denetimi daha elverişli olmaktadir. Toplam-denetimi, blok veride en son gönderilen bayttir. Alici cihaz, toplam denetimi dahil olmak üzere, alinan blok veri üzerinde toplam denetimini hesaplar ve toplam-denetimi bayti ile karşilaştirir. Eğer baytlar farkli çikarsa, veri bloğunun yeniden gönderilmesi istenir. Toplam denetimi üstünlüğü, eşitlik bitine göre daha az saklayici gerktirmesidir. Bu yöntemin başka bir üstünlüğü daha vardir. Telefon hattindan veri bloklari gönderilirken oluşacak hatalarin hamlelerde (burst) meydana gelme eğilimidir. Örneğin gürültülü bir anahtar alinan veriyi birkaç milisaniye bozabilir ve böylece çok-bitli hatlarin meydana gelmesine yol açabilir. Toplam-denetimi karakteri, tüm blok verinin özelliği olduğundan, bu hatalari algilamasi eşitlik yöntemine göre daha olasidir. Toplam-denetimi nasil hesaplanir? Bu bayt tüm veri bloğunu temsil etmelidir. Bunu yapmanin bir yolu veri bloğundaki tüm baytlari toplamaktir. Doğacak tüm eldeler göz ardi edilir. Daha sonra elde edilen baytlar tümlenir ve 1 artirilir (yani 2 li tümleyeni alinir). Son iki adim, alici tarafindan toplam-denetimi baytinin test edilmesini kolaylaştirir. Örnek olarak 10, 23, 45, 04 onalti tabanli sayilari için toplam-denetimi baytini hesaplayalim. Bu sayilar toplanirsa 10 + 23 + 45 + 04 = 7C bulunur. 7C nin tümleyeni alinip 1 eklenirse 01111100 + 1 = 10000011+ 1 = 10000100
= 84 H bulunur. Şimdi alicinin, toplam-denetimi bayti ile birlikte yukaridaki sayilari aldiği varsayilsin. Bu sayilar toplanirsa 10 + 23 + 45 + 04 + 84 = 100 elde edilir. Elde gözardi edildiğinden sonuç 00 dir. Bu yüzden veri bloğu doğru alinmiştir. Bu örnekten görüleceği üzere sayilardan birinde meydana gelecek artiş diğerindeki azalmaya eşit olursa, sayilar değişmiş olmasina rağmen toplam yine sifir çikar, yani hata algilanamaz. Ama toplami etkilemeyecek bu tür hatalarin orani çok düşüktür. 6.2.3 Dönel Fazlalik Denetimi Dönel fazlalik denetimi (CRC) tekniği, toplam denetimi yönteminde olduğu gibi veri bloklarindaki hatalari algilamak için kullanilir. Genellikle flopi disklere veri yazimi veya okunmasi işlemlerinde kullanilir. Senkron veri haberleşmede hata algilamak için evrensel olarak kullanilir. Toplam-denetiminin tersine, CRC yöntemi byte a dayali değildir. Bunun yerine, veri bloğu bir seri veri bitleri dizisi olarak düşünülür. Bu n-bitlik bloktaki bitler, bir M(X) karakteristik polinomunun katsayilari olarak düşünülür. M(X) polinomu M(X) = b n +b n -1 X +b n-2 X 2 +...+ b 1 X n-1 + b 0 x n biçimindedir. Burada b 0 en anlamsiz biti, b n ise en anlamli biti gösterir. Örnek olarak 26F0H 16-bitlik veri dizisi için M(X) polinomunu hesaplamak isteyelim Bu veri ikili bit dizisi biçiminde 0 0 1 0 0 1 1 0 1 1 1 1 0 0 0 0 olarak yazilabilir. Buradan M(X) yazilirsa M(X)= 0+0X 1 +1X 2 +0X 3 +0X 4 +1X 5 +1X 6 +0X 7 +1X 8 +1X 9 +1X 10 1X 11 +0X 12 +0X 13 +0X 14 +0X 15 M(X)= X 2 +X 5 +X 6 +X 8 +X 9 +X 10 +X 11 (6.1) bulunur. (6.1) bağintisi, bu 16-bitlik blokta bu veriyi temsil eden tek polinomdur. Eğer bir bit değişecek olsa, bu polinomda değişecektir. CRC baytlar (6.2) bağintisi uygulanarak bulunur.
M(X). X n = Q(X) +R(X) G(X) Bu bağintidaki G(X) terimi üreteç polinom olarak bilinir. Bisync protokol için üreteç polinom G(X) = X 16 +X 15 + X 2 +1 veya SDLC protokol için G(X)= X 16 +X 15 +X 5 +1 biçimindedir. Bu bölme gerçekleştirilirse, sonuç Q(X) bölümü ve R(X) kalanindan oluşacaktir. CRC tekniği, veri dizisi için R(X) kalaninin hesaplanip veri bloğuna eklenmesine dayanir. Alicida R(X) yeniden hesaplandiği zaman, sonuç R(X)= 0 olmalidir. G(X) polinomunun kuvveti 16 olduğundan, R(X) kalaninin dercesi 15 ten büyük olamaz ve bu yüzden blok uzunluğu ne olursa olsun kalan iki bayt ile temsil edilir. Örnek. ASCII kodunda 1000111 biçiminde verilen G karakteri aliciya gönderilmek isteniyor. Basit olsun diye üreteç polinomunu G(X)=X 4 + X 2 + 1 biçiminde seçerek, CRC baytini hesapladiktan sonra G karakterinin alici tarafindan doğru alindiğini gösteriniz. Çözüm.G karakterine ilişkin karakteristik polinom yani mesaj polinomu M(X)= X 6 +X 2 +1 olur. M(X) polinomu G(X) polinomununderecesi ile çarpilirsa M(X).X 4 = X 10 +X 6 +X 5 +X 4 bulunur. M(X). X 4 /G(X) orani hasaplanarak Q(X) ve R(X) bulunur. X 6 +X 4 +X 2 +X 1 +1 X 4 +X 2 +1 X 10 + X 6 +X 5 +X 4 = M(X). X 4 X 10 + X 8 +X 6 + X 8 + X 5 +X 4
X 8 +X 6 +X 4 X 6 + X 5 X 6 + +X 4 + X 2 X 5 + X 4 + X 2 X 5 + X 3 + X 1 X 4 +X 3 +X 2 +X 1 X 4 + X 2 + 1 X 3 + X + 1 = R(X) Q(X) atilir ve R(X) kalani, yani CRC, kaydirilmiş polinoma ilave edilirse, T(X) gönderilen polinomu için T(X) = M(X) X 4 +R(X) T(X) = (X 10 +X 6 +X 5 +X 4 ) + (X 3 +X +1 ) = X 10 +X 6 +X 5 +X 4 +X 3 +X +1 bulunur. Ikili biçimde yazilirsa gerçekte gönderilen bilgi T(X) = 1 0 0 0 1 1 1 1 0 1 1 dir. Alicida T(X) yine G(X) ile bölünür. Eğer hiçbir bit kaybolmamiş ise bu bölme R(X) kalanini verir. Ama bir veya daha fazla bit kaybolmuş ise R(X) 0 kalani üretilir. T(X) polinomunda bit kaybolmamiş ise T(X) polinomunun G(X) e bölümünden aşağidaki sonuç bulunur. X 6 +X 4 +X 2 +X 1 +1 =Q(X) M(X) G(X)= X 4 +X 2 +1 X 10 + X 6 +X 5 +X 4 +X 3 + X 1 +1 = T(X) X 10 + X 8 + X 6 X 8 + X 5 +X 4 +X 3 + X 1 +1 X 8 +X 6 + X 4 X 6 +X 5 + X 3 + X 1 +1
X 6 + X 4 + +X 2. X 5 +X 4 +X 3 +X 2 +X 1 +1 X 5 + X 3 + X1 X 4 + X 2 + 1 X 4 + X 2 + 1 0= R(X) Alici tarafta hesaplanan CRC bayti R(X)=0 olarak bulunduğundan hata bulunmamiştir. Pratikte CRC baytlari donanim veya yazilimla hesaplanir. Bölme işlemleri, kaydirmali kaydedici ve XOR kapilari kullanilarak gerçeklenebilir. CRC kodlamanin ana üstünlüğü yüksek güvenilirlikle çoklu hatalarin algilanabilmesidir. Iyi seçilmiş bir üreteç polinomu kullanilarak genellikle çok-bit hatalari için >99 emniyetle hata algilamasini verir. Halbuki eşitlik biti tekniğinde çoklu hatalarin algilanamamasinin olasiliği %50 dir. Bunun sebebi şudur; eğer bir bit algilanamamiş ise başka birçok bitin kaybolmasi da büyük olasidir. Buna hata kümesi (burst) denir. Bu yöntemin sakiincasi kod verimliliğinin düşmesidir. Aslinda denetim bitleri, verilen bir zaman diliminde daha az bilgi iletilmesiyle sonuçlanan gereksiz bilgileri içerir. 6.2.4 Hamming Kod Hamming kod yalniz transmisyon hatalarinin algilanmasini sağlamaz ayni zamanda hatalarin düzeltilmesine de izin verir. Bu görev her veri kelimesi üzerinde çok sayida eşitlik denetimi gerçekleştirilerek yapilir. Ilave bitler veri kelimesi ile birlikte gönderilir. Her eşitlik biti farkli bit takimini denetler ve her bit en azindan iki eşitlik denetiminde içerilir. Bu kodun kullanimini 4-bitlik kelimeler üzerinde göstermek için şekil 2 deki Venn diyagrami kullanilabilir. Kesişen üç dairenin olmasi durumunda yedi bölüm oluşur. Içteki bölümlere 4 veri biti atanir, şekil 2a. Geri kalan bölümler eşitlik bitleri ile doldurulur. Her eşitlik biti, kendi dairesindeki 1 değerli bitlerin toplam sayisi çift olacak şekilde seçilir, şekil 8b. Bu yüzden A dairesindeki üç bit 1 değerine sahip olduğundan, bu dairedeki eşitlik bitine bir atanir. Şimdi veri bitlerinden biri bir hata sonucunda değişirse hata kolayca bulunabilir, Şekil 8. Eşitlik bitleri incelenirse, zitliklar A ve C dairelerinde
görülür, B dairesinde görülmez. Yedi bölümden yalniz biri, B hariç, hem A hem de C de bulunur. Bundan dolayi hata o bit değiştirilerek düzeltilebilir. Şekil 8. Hamming hata düzeltme kodu Bu kavrami daha iyi açiklayabilmek için, 8-bitlik kelimelerdeki tek-bitlik hatalari algilayip düzeltebilen bir kod geliştirilecektir. Veri transfer edileceği zaman, kod üretmek üzere bu veri üzerinde f fonksiyonu ile gösterilen bir hasaplama işlemi yapilir, şekil 9. Daha sonra kod ve veri birlikte gönderilir.bu yüzden eğer M-bitlik veri kelimesi kullaniliyorsa ve kod k-bit uzunluğunda ise gönderilen kelimenin gerçek uzunluğu M+k bit olur. Şekil 9. Hata düzeltme kod fonksiyonu Şekil 9 daki devrede karşilaştirma lojiği 2 adet k-bitlik sayiyi kabul eder. Bu iki giriş XOR lanarak bit-bit karşilaştirma yapilir. Sonuç sindrom kelime adini alir. Bu yüzden sindromun her biti, iki girişin o bit konumunda bir eşleşme olup olmadiğina göre 0 veya 1 olur. 8-bitlik veriler için sindrom kelime 4-bit uzunluğundadir ve 0-(2 k -1) arasinda 2 k lik alana sahiptir. Sifir değerli sindrom hata algilanmadiğini gösterir. Hangi bitin hatali olduğu sindromun alacaği 0-(2 k -1) arasindaki değerle gösterilir. M veri bitin veya k test bitin herhangi biri üzerinde hata meydana gelebileceğinden 2 k -1 M+k eşitliği yazilabilir. Bu eşitlik, M veri biti içeren bir kelimedeki tek bir bit hatasini düzeltmek için gerekli bit sayisini verir. Aşağidaki özelliklere sahip 4-bitlik bir sindrom oluşturulmak isteniyor. 1.Sindromun tüm bitleri sifir ise hata yoktur. 2.Sindromun bir değerli yalniz bir biti varsa, o zaman 4 test bitin birinde bir hata meydana gelmiştir. Düzeltme gerekmez. 3.Sindromun bir değerli birden çok biti varsa, o zaman sindromun sayisal değeri hatali veri bitinin konumunu gösterir. Bu veri biti düzeltme yapmak amaciyla terslenir.
Bu özellikleri sağlamak için veri ve test bitleri tablo 2 de gösterildiği gibi 12- bitlik kelime halinde organize edilir. Bit konumlari 1 den 12 ye kadar numaralandirilir. Konumu 2 nin kuvveti olan bit konumlari test bitleri olarak işaretlenir. Test bitleri aşağidaki biçimde hesaplanir, burada sembolü EXOR işlemini gösterir. C1= M1 M2 M4 M5 M7 C2= M1 M3 M4 M6 M7 C4= M2 M3 M4 M8 C8= M5 M6 M7 M8 Tablo 2. Veri ve test bitlerinin konumlari Bit konumu Konum numarasi Test biti Veri biti 12 1100 M8 11 1011 M7 10 1010 M6 9 1001 M5 8 1000 7 0111 M4 6 0110 M3 5 0101 M2 4 0100 3 0011 M1 2 0010 1 0001 Her test biti, konum numarasi sütununda o test bitinin numarasina karşilik düşen hanede 1 içeren veri bitleri, üzerinde çalişir. Bu yüzden veri 3, 5, 7, 9, 11 veri bit konumlarinin hepsi 2 0 terimini; 3, 6, 7, 11 bit konumlari 2 1 terimini; 5, 6, 7, 12 bit konumlari 2 2 terimini; ve 9, 10, 11, 12 bit konumlari ise 2 3 terimini içerir. Başka bir deyişle n bit konumu Σi = n olacak şekilde Ci bitleri tarafindan test edilir. Örneğin 7 konumu 4, 2, 1 konumundaki bitler tarfindan test edilir, çünkü 7=4+2+1 dir. Örnek. 00111001 bit dizisine sahip 8- bitlik bir giriş verisi veriliyor. 3 konum numarali bitin 0 dan 1 e dönüştüğü varsayiliyor. Hamming kod tekniğini kullanarak bu hatali bit konumunu bularak gerekli düzeltmeyi yapiniz. Çözüm. M8 M7 M6 M5 M4 M3 M2 M1 = 00111001 olduğundan test bitleri aşağidaki gibi hesaplanabilir. C1= 1 0 1 1 0 = 1
C2= 1 0 1 1 0 = 1 C4= 0 0 1 0 = 1 C8= 1 1 0 0 = 0 Şimdi transmisyon ortaminda 3 konum numarali bitin değiştiği varsayilarak alici tarafta test bitlerini yeniden hesaplayalim. C1= 1 0 1 1 0 = 1 C2= 1 1 1 1 0 = 0 C4= 0 1 1 0 = 0 C8= 1 1 0 0 = 0 Yeni test bitleri eski test bitleri ile karşilaştirildiği zaman, sindrom kelimesi aşağidaki şekilde oluşturulur. 0 1 1 1 Eski test kelimesi 0 0 0 1 Yeni test kelimesi 0 1 1 0 Sonuç 0110 dir, ve 3 veri bitini, içeren 6 bit konumunun hatali olduğunu gösterir. Yukaridaki hesaplama tablo 3 de gösterilmiştir. Veri ve test bitleri 12 bitlik kelimede uygun olarak konumlandirilmiştir. Herhangi bir satirda bulunan 1 ler, sütunlardaki her bir veri bitinin konum numarasi sergilenerek, o satir için test biti tarafindan test edilen veri bitlerini gösterir. Çerçeve içine alinmiş haneler, örnekte incelenen 8-bitlik giriş verisinin lojik- 1 değerli bit konumlarini göstermektedir. Orijinal veri bitleri ve hatali veri bitleri için bulunan sonuçlar gösterilmiştir. Bu açiklanan kod, tek-hata-düzeltme (SEC) kodu olarak bilinir. Bu yöntem yari iletken belleklerden veri okumada oluşacak hatalarin bulunmasinda da kullanilir. Genelde yari iletken bellek, tek-hata-düzeltme çift-hata-algilama (SEC - DED) kodu ile donatilmiştir. Böyle kodlar SEC kodlara göre bir ilave bit daha gerektirir. Tablo 3. Test biti üretimi Bit konumu 12 11 10 9 8 7 6 5 4 3 2 1 Veri bitleri M8 M7 M6 M5 M4 M3 M2 M1 Test bitleri C8 C4 C2 C1 1 1 1 1 0 0 0 0 C8=0 1 0 0 0 1 1 1 0 C4=1 0 1 1 0 1 1 0 1 C2=1
0 1 0 1 1 0 1 1 C1=1 Gönderilen 0 0 1 1 0 1 0 0 1 1 1 1 veri Alinan veri 0 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 C8=0 1 0 0 0 1 1 1 0 C4=0 0 1 1 0 1 1 0 1 C2=0 0 1 0 1 1 0 1 1 C1=1 6.3. SERI GIRIŞ / ÇIKIŞ PROTOKOLÜ Buraya kadar incelenen seri veri transferinin değişik gerekleri burada birleştirilecektir. Genel olarak ifade edilirse, seri veri haberleşme protokolü asenkron ve senkron olmak üzere iki sinifa ayrilir. 6.3.1. Asenkron Seri Haberleşme Seri G/Ç kapisinin en önemli uygulamalarindan biri klavye arayüzüdür. Bu devrede her tuş 7-bitlik ASCII kod üretir ve daha sonra bu kod seriye dönüştürülerek iki veya üç iletkenli bir kablo üzerinden bilgisayara gönderilir. En hizli kişi bile dakikada 60-100 kelimeden fazla tuşlayamayacağindan bilgisayarin klavye ile haberleşmesi seri haberleşme için en iyi uygulama alanidir. Bazen seri kapinin 10-200 karaktere kadar veri transfer etmesi gerekebilir, ama bazen de veri hizi saniyede 1 veya 2 karaktere kadar düşebilir. Aslinda çoğu zaman klavye kullanilmayip boş kalmaktadir, ve bu yüzden veri hizi sifirdir. Bu düzensiz veri transferinden dolayi, asenkron seri haberleşme protokolünün kurulmasi daha uygundur. Seri veri asenkron olarak transfer edildiği zaman, gönderen cihaz yalniz gönderilecek verisi olduğu zaman gönderme yapar. Karakterler arasinda genellikle yüksek seviyeli bir işaret olan kesme (break) işareti sürekli olarak gönderilir, şekil 10. Seri veri kesme seviyesi veri Şekil 10. Veriler arasindaki kesme seviyesi Asenkron veri dizisinde her veri birimi kendi senkronizasyon bilgisini taşimalidir. Bundan dolayi asenkron veri birimi bir başlama (start) biti ve bir, birbuçuk, veya iki bitiş
biti ile çerçevelenmiştir, şekil 11. Bilgisayar dünyasinda tek bir sifir değerli başlama bitin kullanilmasi herkes tarafindan kabul edilmiştir. 0 X X X X X X X X P 1 1 Bitiş bitleri Eşitlik biti Veri bitleri Başlama biti Şekil 11. Asenkron seri veri biriminin biçimi Çerçeveleme Bitleri Senkron veri dizisinin SYNC karakteri ile asenkron veri dizisinin çerçeveleme bitleri arasinda bir benzerlik vardir. SYNC karakteri bir blok senkron veri karakterini çerçeveler. Başlama ve bitiş bitleri ise bir asenkron veri dizisinde her veri karakterini çerçeveler. Sekiz veri bitinden 5, 6, 7, veya 8 tanesi anlamli olabilir. Eğer sekizden az veri biti anlamli ise, en soldaki yüksek değerli bitler önemsenmez. Örneğin eğer haberleşme protokolü her gönderilen asenkron kelimede yalniz beş veri bitinin olduğunu şart koşarsa, o zaman alici cihaz beş veri biti alir, ve alinan kelimeyi şekil 12 deki gibi yorumlar. Böylece aliciya eşitlik ve çerçeveleme bitleriyle birlikte toplam dokuz bitlik veri birimi gönderilir. 0 X X X X X P 1 1 Bitiş bitleri Eşitlik biti Veri bitleri Bu bitleri önemseme, bu bitler gönderilmez. Başlama biti Şekil 12. 5-veri bitlik veri biriminin biçimi Eşitlik biti daima mevcuttur. Tek veya çift eşitlik kullanilabilir. Bitiş bitleri için lojik-1 kullanilir. Bazen bir bitiş biti kullanilmakla beraber, çoğunlukla iki bitiş biti vardir. Iki bitiş biti ve sekiz veri biti kullanilirsa, bir karakter için bit sayisi 12 olur. Veri bitlerine diğer bitlerin eklenmesi veri transfer hizini düşürür. Bazi transmisyon protokollerinde birbuçuk bitiş biti vardir. Bitiş biti genişliği, normal bit genişliğinin birbuçuk katina eşittir.
Asenkron veri haberleşme protokolünde veri birimini belirleyen protokol kurallarinin olmasinin yaninda, bit süresini tanimlayan standart baud hizlari da kullanilir. Baud hizi 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, ve 19.200 standart değerleri alabilir. Asenkron veri transferinde alici cihaz transmisyon hatalarini denetleme olanağina sahiptir. Her veri biriminin birinci biti başlama bitini gösteren 0 ve son iki biti ise iki bitiş bitini gösteren 1 değerini alir. Alici cihaz herhangi bir veri birimi için başlama ve bitiş bitlerini algilayamazsa, çerçeveleme hatasi olduğunu haber verir. 6.3.1.1. Asenkron Seri Verinin Üretimi ve Eldesi Tüm mikroişlemciler özel bir donanim gerektirmeden seri veri üretecek yetenektedir. Z80 CPU için seri veri çikişi sağlayan bir program şekil 13 de verilmiştir. KAPI nin 0 no lu biti seri çikiş ucu olarak kabul edilmiştir. Gönderilecek her bit akümülatörün 0 no lu bit konumuna döndürülüp getirildikten sonra dişari çikarilir. GECIKME altprogrami baud hizini belirler. LD C,KAPI ; C veri kapisinin adresini tutar LD B,0BH ; 11-bitlik karakterler AND A ; Başlama biti için eldeyi sifirla RLA ; Eldeyi 0 no lu bite taşi GON OUT (C),A ; Biti gönder CALL GECIKME ; Bir bitlik süre bekle RRA ; Bir sonraki veri bitini al SCF ; Bitiş biti için eldeyi birle DJNZ GON ; 11 bit için tekrarla RET ; Geri dön Şekil 13. Z80 CPU için seri gönderme programi Alici cihaz seri veriyi elde edebilmek için daha karmaşik bir program gerektirir, ama yine özel bir donanima gerek yoktur. Bitlerin algilanmasi yani elde işlemi şekil 14 deki akiş diyagrami ile verilebilir. program, başlama bitinin birden-sifira geçişini bekleyerek başlar. Geçişe raslandiğinda, GECIKME/ 2 saniye beklenerek bitin ortasi bulunur. Eğer giriş hala sifir ise, geçerli başlama bitin aldiği varsayilir ve daha sonra bu
program bit süresi kadar bekler. Böylece daha sonra gelen tüm bitler orta noktalarindan örneklenir. Her bit okunur ve elde üzerinden sağa döndürülür. Sekiz okumadan sonra tüm bayt elde edlmiş olur. Dokuzuncu okuma ilk bitiş bitini verir. Eğer bu bit alçak ise, çerçeveleme hatasi vardir. Eğer yüksek ise, veri bayti saklanir ve program bir sonraki başlama bitini araştirmaya başlar. Şekil 14. Asenkron seri veriyi elde etmek için gerekli sürecin akiş diyagrami Bu çalişmada alici ve vericinin veri hizlari tamamen eşit kabul edildi. Bu gerkli midir ve küçük hiz farklarina tolerans gösterilebilir mi? Yazilimla zamanlama döngüleri yaparak, farkli iki bilgisayarda GECIKME altprogramlarinin ayni olmasini sağlamak mümkün değildir. Alici için çok yavaş veya çok hizli veri transferi yapildiği varsayilsin. Her iki durumda hatanin nasil biriktiğine dikkat edilmelidir. Eğer örnekleme bit süresinin ortasinda yapilirsa; izin verilecek maksimum hata, bit süresinin yarisi kadar sağa veya sola 9. bitin kaymasina izin verir. Eğer tüm bitler eşit olarak olarak kaydirilirsa, bir bitteki hata miktari bit süresi/2x9 olur. Bu gösteriyor ki, alma ve gönderme hizlari %5.6 oraninda eşleşmeyebilir. Bu ilginç bir sonuçtur. Veri hizlarinin tamamen eşleşmesi gerektiğini düşünebilirsiniz. Eğer başlama ve bitiş bitleri kullanilmasaydi bu doğru olacakti. Bu bitler sayesinde senkronizasyon sadece başlama bitinin başlangicindan ilk bitiş bitinin başlangicina kadar korunmalidir. Bu teknik her karakterden sonra kendi kendini senkronlar. Bu özelliğin sağlanmasi için her veri bayt uzunluğunda 3-bitlik veya % 37.5 lik artiş getirilmiştir. Eğer bu bitler kullanilmasaydi karakter hizi %37.5 artmiş olacakti. 6.3.2. Senkron Seri Haberleşme Asenkron seri haberleşmede kullanilan başlama ve bitiş bitleri, baud hizi ne olursa olsun genel karakter hizini düşüren boşa harcanmiş bitlerdir. Eşitlik bitinin ilavesi bile transfer hizini %10 oraninda azaltir. Başlama ve bitiş bitlerinden vazgeçme bir cins veri senkronizasyon araci gerektirir. Verinin ne zaman başladiğini ve ne zaman örnekleneceğini
nasil bilebiliriz. Bu kisimda bu sorulara cevap veren iki yaygin senkron haberleşme protokolünü vereceğiz. 6.3.2.1. Bisync Protokolü (Karakter Yönetimli Protokol) Başlama biti kullanilmadiğindan, tüm senkron seri veri biçimlerinde özel bir sync karakteri gerekir. Bu karakter aliciya verinin akmak üzere olduğu söyler. Sync karakterini bulabilmek için seri G/Ç arayüz cihazin özel avlanma veya araştirma moduna sahip olmasi gerekir. Bitiş biti kullanilmadiğindan, senkronizasyonu korumak için genellikle bir saat işareti senkron veriye eşlik eder. Senkron seri veri, telefon hattindan gönderileceği zaman; saat işareti için ayri bir kanal sağlamak mümkün değildir. Bu durumda veri ve saati tek kanala kodlayacak özel bir senkron modem kullanilir. Alici modem, veri ve saat işaretlerini birbirinden ayirir. Asenkron seri haberleşme ile arasindaki diğer fark, saat frekansin baud hiziyla ayni olmasidir, yani seri X 1 frekansli saat işareti kullanilir. Bisync protokolde veri transferini denetlemek için tablo 4 de verilen birkaç özel ASCII karakteri kullanilir. Senkron mesajin bir çerçevesi şekil 15 de gösterilmiştir. Başlama ve bitiş bitleri ile çerçevelenemiş asenkron veride olduğu gibi, senkron veri de özel denetim kodlari ile çerçevelenmiştir. Şekil 15 deki çerçevede iki sync karakterinden sonra ilk olarak başliğin bazi ve başlik ve daha sonra metnin (text) başladiğini gösteren bir STX karakteri gelir. Daha sonra ise veri baytlari yer alir. Bu veri bloğu 100 veya daha fazla veri baytindan ibaret olabilir. ETX karakteri metnin sonunu gösterir. BBC ise hata bulma için kullanilan blok denetim karakteridir. PAD karakteri, gönderilecek veri olmadiği zaman çikarilan karakterdir ve asenkron veri haberleşmedeki marka seviyesine karşi düşer. Tablo 4. Bisync senkron seri protokolde kullanilan özel karakterler Karakt ASCII kod Açiklama er SYNC 16 Sync karakter PAD FF Çerçeve sonu DLE 00 Veri bağindan kaçiş, onaylama
ENQ 05 Sorgulama, terminal çalişiyormu? SOH 01 Başliğin başi STX 02 Metnin başi ITB 0F Ara transmisyon bloğun sonu EOT 84 Transmisyonun sonu ETB 17 Transmisyon bloğun sonu ETX 03 Metnin sonu Bir çerçeve SYN SYN SOH BAŞLIK STX Veri alani ETX BCC PAD Şekil 15. Bisync protokolünü kullanan bir senkron mesaj çerçevesi Bisync protokol herkesin uymasi gereken bir kurallar takimidir. Eğer bir seri veri haberleşme bağlantisi işletilecekse, gönderen cihazin komutlar gönderebilecek ve alici cihazin komutlar alabilecek yetenekte olmasi gerekir. Gönderen cihazin veri göndermeye hazir olduğunu anlamanin tek yolu budur; veya gönderen cihaza göndermeyi durdurmasini ve almaya başlamasini söylemenin tek yolu budur. Bu diyalog el sikişma protokolü olarak bilinir. 6.3.2.2 Seri Veri Bağlanti Denetimi (SDLC) ( Bit Yönetimli Protokol) Bu biçim IBM tarafindan kendi Systems Network Architecture (SNA) haberleşme paketi ile kullanilmak üzere geliştirilmiştir. Bu protokolü kullanan bir veri çerçevesi şekil 16 da gösterilmiştir. SDLC alici, kendi SYNC karakteri olarak (01111110) başlama bayrağini araştirir. Bunun ardindan 8-bitlik adres alani gelir. Bunun amaci ağ istasyonlari arasinda belirli bir istasyonu adreslemek için çerçevelere izin vermektir. Daha sonra 8-bitlik denetim alani gelir. Burasi 6 veya daha fazla lojik-1 den oluşan özel denetim karakterlerinin yeridir. Bir çerçeve
01111110 Bilgi alani 16-bir CRC 01111110 Denetimi alani Bilgi alani Bitiş bayraği 8-bitlik Hata denetim 8-bitlik adres alani Başlama bayraği Şekil 16. SDLC protokolünü kullanan bir senkron mesaj çerçevesi Bilgi alani herhangi bir biçimde olabilir, yani bu alan tam sayida bayttan oluşmak zorunda değildir. Eğer beş veya daha fazla sayida lojik-1 in dizide gözükmesi gerekirse, gönderici bu alana otomatik olarak lojik-1 leri saklar. Bu durum bilgi alaninda denetim karakterlerinin gözükmesini önler. Alici ise otomatik olarak bu sifirlari siler. 16-bitlik çerçeve denetimi, bsync deki BBC karakterine benzer olarak hata bulmak için kullanilir. Çerçeve bitiş bayraği ile sonlanir. SDLC protokolü HDCL (high-level data link control) protokolün bir alt kümesidir. 6.4 SERI G/Ç HABERLEŞME CIHAZI Ilk olarak SIO yongasinin boyutlarini belirlemeliyiz. Daima bacak sayisi az olan yongalarin kullanilmasi istenir. Büyük yongalarin yapimi pahaliya mal olur ve baskili devre kartinda daha geniş yer işgal eder. Gereksiz yere bacak sayisini artirmak fiati artirir. Diğer taraftan yongadaki tüm bacaklar kullanilsin diye çok farkli boyutlu yongalarin kullanilmasinin da anlami yoktur. Örneğin iki bacaği kullanilmayan 40-bacakli yonga kullanmak, 38 bacakli yonga kullanmaktan daha iyidir. Burada SIO cihazi için 28-bacakli yonga kullanilacaktir. Kapi başina bir bacak gerektirdiğinden, SIO cihaz yongasi az bacakli yapilabilir. Senkron ve asenkron seri G/Ç lojik ayni yongayi paylaşacaktir. Çünkü bu iki lojik takimin çok ortak yönleri vardir. Seri G/Ç haberleşme cihazi üç arayüze sahip olabilir. Bu arayüzlerden biri mikroişlemci için ve diğerleri de senkron ve asenkron seri G/Ç lar içindir. Her arayüz veri hatlarina ve denetim işaretlerine sahiptir.
6.4.1. CPU-SIO Arayüzü CPU arayüzü senkron ve asenkron G/Ç için ortak olduğundan, SIO cihazin inşasina buradan başlayacağiz. Bu cihaz sistemin veri yolu üzerinden paralel olarak CPU ile haberleşir. Bu yüzden veri yolu tamponuna bağlanmiş 8-veri yolu bacaği bulunmalidir, şekil17 a. CPU arayüzünün gerektirdiği diğer işaretler, paralel G/Ç arayüz cihazinin gerektirdiklerinden farkli değildir. Bunlar yonga seçme (CS), OKU, ve YAZ işaretleridir. CS ucu, GÇIŞ işareti ile bazi adres işaretlerinin kombinasyonundan üretilir. 6.4.2. Seri G/Ç Arayüzü Seri veriyi almak ve göndermek için ayri bacaklar kullanilir. Gönderme ve alma bacaklarinin ayri seçilmesi, gönderme ve alma saat işaretlerinin de ayri ayri uygulanmasini gerektirir, şekil 17b. Her iki saat işareti, veri hizini denetlemek için diş lojik tarafindan üretilip SIO cihazina uygulanir. Eğer diş lojik ayni gönderme ve alma saat işaretini kullanirsa, bu iki saat işareti sistemin 0 saatinden veya herhangi başka saat lojiğinden türetilebilir. Her durumda bu iki saat işareti seri veri baud hizini denetim altinda tutar, şekil 17b. Şekil 17. SIO cihazdaki bazi bacaklar ve kaydediciler Diş cihazin gönderdiği seri bit dizisi seri veri alma girişi üzerinden SIO cihaza uygulanir. Alma saat işaretin örneğin her yükselme kenarinda RD veri girişi örneklenerek, elde edilen değerlerin lojik-0 veya 1 olarak alici veri tamponuna koyulduğu senkron çalişmayi inceleyelim. Bu tamponda 8-bitlik bilgi oluştuğu zaman, tamponun içeriği veri yolu tamponuna otomatik olarak transfer edilir. Şimdi alici veri tampon boştur, bu yüzden bir sonra alinacak veri bitin yükleme işlemine yeniden başlanabilir. Gönderme saat kenarinin her düşme kenarini gönderen veri tampondan bir biti dişari atar. Gönderen veri tamponun sekiz biti, sifirinci bitten başlayarak artan sirada dişari gönderilir. 7 no lu bit atilir atilmaz gönderen veri tampon boş kabul edilir, ve böylece veri yolu tamponun içeriği, seri gönderme işlemine devam etmek için gönderen veri tampona yüklenir. Eğer asenkron seri veri gönderilmiş olsaydi, veri saati ile seri veri işaretleri arasindaki ilişki değişecekti, ama tüm değişiklikte bundan ibaret olacakti. Asenkron veri
dizisinde X16 veya X64 saati kullanilir ve veri 8. veya 32. darbede örneklenir, yani veri bitin ortasinda örneklenir. 6.4.3. Seri G/Ç Denetim işaretleri Veri yolu tamponu ayni anda hem veri baytlari almak hem de göndermek için kullanilmaz. Burada tanimlanacak denetim lojiği ve işaretleri, var olan işaretlerden hangisinin herhangi bir anda meydana geleceğini belirtir. Eğer denetleme lojiği, saat işaretini tanimasi için programlanmamiş ise SIO cihaz saat işaretini önemsemez. Ayrica eğer veri yolu tamponu veri bayti almak için hazir değilse, alici veri tamponunun içeriği kaybolacaktir. Ilk olarak gönderme lojiğini inceleyelim. Bu lojik biri gönderen veri tamponun boş olduğunu gösteren, diğeri ise veri tamponun başka bir veri bayti almaya hazir olduğunu gösteren iki denetim işareti gerektirir. Bu iki işaret TE ve TRDY ile gösterilir. Bu iki işaret ayni değildir. Örneğin seri verinin senkron olarak çalişmasi durumunda, bir SYNC karakter dişari verilirken TE işareti yüksek olacaktir, ama o anda veri dişari çikariliyor olsa bile gönderen veri tamponun yeni veri almak üzere hazir olduğunu göstermek için TRDY işareti alçak olacaktir. TE ve TRDY işretlerinin kullanimi şekil 18 de gösterilmiştir. Gönderilen seri veri veri sync veri sync TE TRDY Şekil 18. TE ve TRDY işaretleri arasindaki fark Alma lojiği, RRDY diye adlandirilan tek bir alma hazir işareti kullanilir. Bu işaret bir baytlik verinin veri yolu tamponuna yüklendiğini ve okunmaya hazir olduğunu gösterir. RRDY işareti çoğunlukla bir kesme isteği doğurmak için kullanilir. Kesme onaylaninca, alinan veri bayti kesme servis progami sayesinde belleğin uygun bir alanina taşinir. Senkron veri transferinde, geçerli verinin alimina başlanmadan önce SIO cihaz lojiği bir veya iki STNC karakterini algilamalidir. Bu SYNC karakterlerini SIO cihazin ne zaman algiladiğini diş lojik bilmek zorundadir. Bundan dolati SYNC karakterler algilanir algilanmaz yüksek duruma geçen bir SYNC denetim işareti kullanilmalidir. Bazi SIO cihazlar SYNC denetim hattinin iki yönlü olmasina izin verir. Bu durumda senkron veriden
önce SYNC karakterlerine yer vermekten ziyade, diş lojik tüksek değerli bir işareti SYNC denetim işareti olarak gönderir ve daha sonra SIO cihaz senkron seri veriyi almaya başlamak için bu denetim darbesini kullanir, şekil19. Alma saati SYNC Seri veri girişi Birinci baytin ilk biti Şekil 19. SYNC denetim işareti 6.4.4. Modem Denetim Işaretleri SIO cihaz için tanimlanmasi gereken yalniz modem denetim işaretleri kaldi. Dört adet standart modem denetim işareti vardir. 1. DSR (Data Set Ready): Modem veri almak için hazir olduğu zaman bu işareti alçak yapar. Diğer anlarda bu işaret yüksek seviyeli bir SIO giriş işaretidir. Herhangi başka bir diş lojik bu işareti ana yetkilendirme işareti olarak kullanabilir. Örneğin bir video terminali gibi bir birimde bulunan açma / kapama (onn/off ) anahtari bu işareti üretilebilir. Bu durum, mikrobilgisayarin diş lojik ile haberleşmeye geçmeden önce diş lojiği denetlemesine izin verir. 2. DTR (Data Terminal Ready): Bu denetim işareti SIO cihazin DSR işaretine eşdeğerdir. SIO cihaz tarafinda gönderilen bu işaret, haberleşme yapmak için kendisinin hazir olduğunu diş lojiğe bildirir. Bu işaret programla denetlenerek tüm seri G/Ç işlemlerini yasaklamak için yüksek veya başlatmak için alçak yapilabilir. 3. RTS (Request To Send):SIO cihaz modem veya bir başka diş cihazla haberleşmek için hazir olduğu zaman, DSR ve DTR işaretlerinin her ikisi alçak olacaktir. Bu durumda veri göndermek üzere hazir olduğunu göstermek için SIO cihaz RTS işaretini kullanir. Alici cihaz çalişir durumda olsa bile, geçici olarak meşgul olabileceği unutulmamalidir. 4. CTS ( Clear To Send): Tam dupleks veri bağlantisinda, göndericiden çikan RTS alicida CTS haline gelir. Eğer RTS işareti gönderilmiş ise, o zaman alma yeteneği olan bir modemin hat sonunda bulunmasi gerekir. Bu giriş işaretin alçak olmasi SIO cihazi veri göndermek için yetkilendirir.
DSR, DTR, RTS, ve CTS işaretlerinin karşilikli etkileşimi şekil 20 deki akiş diyagraminda gösterilmiştir. Şekil 20. SIO cihaz ile modemin haberleşmesi için denetim işaretlerinin etkileşimini gösteren akiş diyagrami. Senkron ve asenkron haberleşme yapabilen standart bir SIO cihazda bulunabilecek çoğu bacaklar oluşturulmuş oldu. SIO cihazimiz şimdi şekil 21 deki biçimi alir. Şekil 21. Buraya kadar geliştirilmiş olan SIO cihazin yapisi 6.4.5. SIO Cihazin Denetimi SIO cihazin kullanilmasi için birçok seçenek oluşturulmuş ise, bu seçeneklerin kullanilabilmesi için bir denetim kaydedicisine gerek vardir. Ayrica bu kaydedici diş cihazlara gönderilecek bazi denetim işaretlerinin durumlarini da belirleyebilir. Ilk olarak senkron veya asenkron G/Ç seçilmelidir. Daha sonra program denetimi altinda tablo 5 te gösterilen değişkenler belirlenir. Bu değişkenler mod parametreleri olarak bilinir ve seri G/Ç işlemi esnasinda değiştirilmeleri mümkün değildir. Tablo 5. Seri G/Ç mod parametreleri Görevi Asenkron Senkron Saat frakansi Baud hizi X1, X16, X64 Çoğunlukla baud hizi X1 Bayttaki veri bitleri 5, 6, 7, veya 8 5, 6, 7, veya 8 Eşitlik Tek, çift veya hiçbiri Tek çift veya hiçbiri Bitiş bitleri 1, 1 1/2 veya 2 yoktur Sync karakter yoktur 1, 2, veya diş sync Herhangi bir mod parametreleri takimi kullanilirken SIO cihazin komut alabilmesi gerekir. Komutlar seri veri akişinin yönünü (gönderme veya alma ) belirlemeli, veya mod değişimine izin vererek o andaki işlemi sonlandirabilmelidir. Komutlar ayrica DTR ve RTS denetim işaretlerini setleyebilmeli ve herhangi bir hatali durumuna cevap verebilmelidir. Komutlarin bakmasi gereken hata durumlarini ve mikrobilgisayarin bunlari nasil ailgilayacağini inceleyelim. Bu amaçla SIO cihaza 8-bitlik bir durum kaydedici ilave edilmiştir. Bu kaydedici sayesinde 8-giriş işaretin durumu izlenebilir. Seviyeleri okunmasi gereken işaretler şunlardir:
1.DSR - Diş cihazin aktifliği 2.CTS - SIO cihaz veri transferine başlatmadan önce CTS nin doğru (true) olmasini beklemelidir. 3.SYNC - Diş senkronizasyon 4.TE - Gönderen tampon boş 5.TRDY -CPU dan veri almak için gönderen tampon hazir 6. RDY - CPU ya veri göndermek için alici tampon hazir. Bu işaret kesme lojiğine bağlanabilir ve böylece durum kaydedici dişina atilabilir. Rapor edilecek hata durumlari şunlardir: 1.Eşitlik hatasi. Bir seri veri birimindeki hatali eşitliğin algilanmasi 2.Çerçeveleme hatasi (Framing error). Asenkron çalişma modunda, başlama ve / veya bitiş bitlerinin doğru olarak algilanmadiği. 3. Işgal hatasi (Overrun error). Veri yolu tamponu veri almaya hazir olmadiği halde, alici veri tamponun bu tampona bir bayt göndermesi. Bu bayt kaybolur. Normalde hata durumlari SIO cihazin işlemleri durdurmasina yol açmaz. Hata, durum kaydediciye gönderilir ve işlemlere devam edilir. Komutlar kullanilarak hatali duruma aşağidaki gibi cevap verilebilir. 1.Senkron modda, gönderen kaynağa bir NACK (onaylama) karakteri gönder. 2.Asenkron modda, işlemlerden vazgeç ve TD yi kesme (break) işaret seviyesine (genellikle yüksek seviye) yükselt. 3.Herhangi bir hata düzeltme programi icra et. 4. SIO cihazin durum kaydedicisindeki hata bitlerini sifirla. SIO cihaza mod / denetim kaydedicisi ve durum kaydedici ilave edilmelidir. Bu cihazin kaydedicileri üzerinde işlem yapabilmek için SIO cihaza bir de RS kaydedici seçme bacaği eklenmelidir. Aslinda denetim ve durum kaydedicilere adreslenebilen tek bir birim olarak bakilabilir, çünkü denetim kaydediciye yalniz yazilmakta ve durum kaydediciden yalniz okunmaktadir. SIO cihazin seçilebilmesi için adres hatlarin kodu çözülerek CS yonga seçme girişine uygulanmalidir. RS girişi ise genellikle en anlamsiz adres hattina bağlanir. Böylece hem yonga hem de istenen kaydedici seçilmiş olur.
Alici ve gönderici veri tamponlar alinan ve gönderilen veri yolunda pozitif olarak yer almaktadir. Bu tamponlar veri yolu tamponu ile haberleşir, bundan dolayi doğrudan erişmeleri gerekmez. Sonuç olarak geliştirilen cihazin tam yapisi şekil 22 de gösterilmiştir. Şekil 22. SIO cihazin en gelişmiş biçimi.