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
Diş cihaz
1
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.
Saat
Seri veri
Alma ve gönderme için
Durulma
Alma ve gönderme için saatin
süresi
kenari kullanilrsa, lojik-0
düşme
saatin düşme kenari
gönderildiği
kullanilirsa lojik-1 gönderildiği
lojik-1 alinacaktir.
halde lojik-0 alinacaktir.
Şekil 4. Durulma süresinden dolayi hatali algilama
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
15
0
1
2
( a) 0
3
4
5
1
6
7
8
9
10
2
3
11 12 13 14
15
0
Saat
Seri veri
yorumu
62
2
Saat
Seri veri
( b)
63
0
1
2
3
32
1
62 63 0
1
32 62 63
0
1
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
10110110 0
10010110 0
Çift eşitlik, hata algilandi
10110110 0
11010110 0
Tek eşitlik, hata algilandi
10010110 1
10010110 0
Çift eşitlik, hata algilandi
10010110 1
01101001 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) = bn +bn -1 X +bn-2 X 2 +.........+ b1 Xn-1 + b0 xn
biçimindedir. Burada b0 en anlamsiz biti, bn 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+0X1 +1X2 +0X3 +0X4 +1X5 +1X6 +0X7 +1X8 +1X9 +1X10
1X11+0X12+0X13+0X14+0X15
M(X)= X2+X5+X6+X8+X9+X10+X11
(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) . Xn = Q(X) +R(X)
G(X)
Bu bağintidaki G(X) terimi üreteç polinom olarak bilinir. Bisync protokol için
üreteç polinom
G(X) = X16 +X15+ X2+1
veya SDLC protokol için
G(X)= X16 +X15 +X5 +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)=X4+ X2+ 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)= X6 +X2 +1
olur. M(X) polinomu G(X) polinomununderecesi ile çarpilirsa
M(X).X4 = X10 +X6 +X5 +X4
bulunur. M(X) . X4 /G(X) orani hasaplanarak Q(X) ve R(X) bulunur.
X6 +X4 +X2 +X1 +1
X4 +X2 +1
X10 +
X10 +
X6 +X5 +X4 = M(X) . X4
X8 +X6 +
X8 +
X5 +X4
X8 +X6
+X4
X6 + X5
X6 +
+X4 +
X2
X5+ X4 +
X5+
X2
X3+
X1
X4 +X3 +X2 +X1
X4 +
X2+
X3+
1
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) X4 +R(X)
T(X) = (X10 +X6 +X5 +X4 ) + (X3 +X +1 )
= X10 +X6 +X5 +X4 +X3 +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.
X6 +X4 +X2 +X1 +1 =Q(X) ⇒ M(X)
G(X)= X4 +X2 +1
X10 +
X10 +
X6 +X5 +X4 +X3 +
X1 +1 = T(X)
X8+ X6
X8 +
X5 +X4 +X3 + X1 +1
X8 +X6 +
X4
X6 +X5 +
X3+
X1 +1
X6+
X4 +
+X2
X5 +X4 +X3 +X2 +X1 +1
.
X5+
X3+
X1
X4 +
X2 + 1
X4+
X2 + 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-(2k-1) arasinda 2k’lik
alana sahiptir. Sifir değerli sindrom hata algilanmadiğini gösterir. Hangi bitin hatali olduğu
sindromun alacaği 0-(2k-1) arasindaki değerle gösterilir. M veri bitin veya k test bitin
herhangi biri üzerinde hata meydana gelebileceğinden
2k -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
12
11
10
9
8
7
6
5
4
3
2
1
Konum numarasi
1100
1011
1010
1001
1000
0111
0110
0101
0100
0011
0010
0001
Test biti












Veri biti
M8
M7
M6
M5

M4
M3
M2

M1


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 20 terimini; 3, 6, 7, 11 bit konumlari 21 terimini; 5, 6, 7, 12 bit
konumlari 22 terimini; ve 9, 10, 11, 12 bit konumlari ise 23 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
0110
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
Veri bitleri
Test bitleri
12 11 10 9
M8 M7 M6 M5
8
7
M4
6
M3
5
M2
C8
1
1
0
1
0
1
1
0
1
1
0
0
4
3
M1
C4
0
1
1
0
1
1
0
1
0
2
1
C2 C1
0
0
1
←C8=0
←C4=1
←C2=1
Gönderilen
veri
Alinan veri
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
←C1=1
1
1
1
1
←C8=0
←C4=0
←C2=0
←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.
kesme seviyesi
Seri veri
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.
0X X X X X X X X P 1 1
Bitiş bitleri
Eşitlik biti
Çerçeveleme
Veri bitleri
Bitleri
Başlama biti
Şekil 11. Asenkron seri veri biriminin biçimi
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
GON
; Eldeyi 0 no’lu bite taşi
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
RET
GON
; 11 bit için tekrarla
; 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
SYNC
16
Sync karakter
PAD
FF
Çerçeve sonu
DLE
00
Veri bağindan kaçiş, onaylama
er
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
Bitiş bayraği
Hata
Denetimi
Bilgi alani
8-bitlik
denetim
alani
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, 11/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.
Download

SERİ I/O