Bilgisayar Donanımı seriport A.G.- EE-Genel Bilgi-2 1 2. SERY PORT Bir portu kullanyrken içinde olup bitenleri bilmek gerekmese de, özellikle portun ola?an dyºy birºekilde kullanyldy?y linklerdeçalyºyrken temel bilgiye ihtiyaç vardyr. 2.1 Port Mimarisi Seri port en baºyndan beri PC’ nin bir parçasy olmuºtur. PC’ de bulunan her bir COM yada Comm (iletiºim) portu, UART tarafyndan denetlenen asenkron bir porttur. Bir COM portun RS-232 yada RS-485 gibi bir arabirim olabilir yada port dahili bir modem veya baºka bir cihaz için kullanylyyor olabilir. Bir PC’ de daha baºka seri portlar da bulunabilir: USB, Firewire, 12C bunlar arasyndadyr. Ancak bu portlar, farkly protokoller ve devre elemanlary gerektirmektedirler. USB ve Firewire gibi nispeten daha yeni arabirimler hyzlydyrlar ve bazy yönlerden avantajlydyrlar. Microsoft PC 98, RS-232 arabirimli portlary da kullanylabilir olarak belirtmekle birlikte, mümkün olmasy halinde USB’ nin tercih edilmesine imkan vermektedir. Nitekim yeni arabirimler, birçok çevrebirimi için daha uygundur. Bununla birlikte RS-232 ve benzeri arabirimler, kontrol ve takip sistemlerinde hala yaygyn bir ºekilde kullanylmaktadyr. Bunlar ucuz, programlanmasy kolay, uzun kablolara imkan veren, ucuz mikrokontrolörle ve eski PC’ lerle rahatlykla kullanylabilen arabirimlerdir. USB’ nin kullanymy yaygynlaºtykça RS-232 ve RS-485 dönüºüm için kullanylan konvertörler de yaygynlaºmyºtyr. Böyle bir konvertör PC’ nin USB portuna ba?lanarak USB ile di?er portlar arasynda geçiºe imkan vermektedir. Dolayysyyla sisteme bir RS-232 veya RS-485 eklemek de sorun olmaktan çykmaktadyr.A.G.- EE-Genel Bilgi-2 2 2.1.1 UART Orjinal PC’ de seri porta kumanda eden UART, 57600 bps maksimum hyzly bir 8250 idi. O zamandan bu zamana UART’ lar, orijinal yonganyn benzeri olmuºtur. Yenilerinde ilave tamponlar bulunmaktadyr. Hyzlary daha yüksektir. Baºka ilave özellikler bulunmaktadyr. Günümüzde bir PC’ deki UART, genellikleçok iºlevli bir yonganyn parçasydyr. Bu yonga, sistemdeki di?er komponentleri, diskleri, paralel portlary desteklemektedir. UART seri ve paralel veriyi birbirine çevirir. PC sistem bus’ yndaki paralel veri, UART tarafyndan belli bir yönde iletilmeküzere seri veriye dönüºtürülür.Öte yandan karºyt yönden gelen seri veri de, yine UART tarafyndan, CPU’ nun sistem bus’yndan okumasy için paralel veriye dönüºtürülür. UART hem tam–çift (full-duplex) hem de yary-çift (half-duplex) iletiºimi destekler. Tam-çift iletiºimde UART ayny anda hem gönderir hem de alyr. Yary-çift iletiºimde belli bir anda yalnyzca bir cihaz iletim yapabilir. Kimin gönderim yapaca?y kontrol sinyalleri yada kodlaryyla belirlenir. Her iki yön için tek bir yol kullanylmasy halinde veya iki yol bulunmasyna ra?men bir dü?ümün (yada iki dü?ümün de) belli bir anda tek yönlü iletiºim kuruyor olabilmeleri halinde yary-çift iletiºime baºvurulur. Öte yandan, UART salt-tek-yönlü (yada simplex) iletiºimi de haliyle desteklemektedir. Tam ve yary çift terimlerinin bir baºka kullanymy, linkin hangi ucunun görüntülenecek karakterlerin aksettirilmesinden (echoing) sorumlu oldu?unu göstermek amacyny taºyr. Bu ba?lamda; tam-çift terimi, alycynyn aldy?y her bir karakteri vericiye aksettirece?ini anlatyr. Yary-çift terimi ise, alycynyn aksettirmeyece?ini ve dolayysyyla, gerekmesi halinde, gönderilen karakterlerin verici uçta görüntülenmesinden gönderim yazylymynyn sorumlu tutuldu?unu anlatyr. Veri hatlary yanynda UART standart RS-232 el sykyºma sinyali ile RTS, CTS, DTR, DCR, RI ve CD gibi kontrol sinyallerini de destekler.A.G.- EE-Genel Bilgi-2 3 2.1.2 Geliºmeler 8250 UART’ taki ilk geliºme 115200 bps’ e kadar hyzlara imkan veren ve bir yaz- boz yazmacy bulunan 16450 idi. Bu yaz-boz, belli bir fonksiyonu olmayan bir byte’ lyk bir yazmaçtyr. 16550 ile verici ve alycy tamponlary eklenmiºtir. Yeni PC’ lerde 16550 eºde?eri yada daha geliºmiºleri bulunmaktadyr. 16550’ nin her bir tamponu 16 byte saklama kapasitesine sahiptir. Bunlar FIFO (ilk giren, ilk çykar) tamponlardyr. Byte’ ler geliº syralaryna göre kayytlydyrlar ve bu tamponlardan okuma yapylmasy halinde ilk okunan byte, ilk alynan byte’ dyr. CPU’ daki durum bunun tersidir. LIFO (son giren, ilkçykar) tamponlar kullanylyr. Tamponlar veri transferinin verimlili?ini arttyryrlar. Böylece alycy uçtaki CPU’ nun, sonrakine yetiºmek için her gelen byte’ y okuyaca?ym diye kaygylanmasyna gerek kalmaz. CPU meºgul ise bilgi tamponda bekler, CPU iºi bitince tampondan okur. CPU’ nun veri bus’y seri porttan daha hyzlydyr. CPU her bir operasyonda 16 byte’yn hepsini okuyabilir. Burada geçen byte’ laryn geliº sürelerinin ancak bir kesrine eºittir. Di?er uçta ise CPU, UART’ a 16 byte yazabilir. Bunlaryn uygun syrada gönderilmesine iliºkin detaylar UART’ ta kalyr. UART’ lara yapylan eklemeler hala devam etmektedir. Texas Instruments’ in TL16C750’ sinde 64 byte’ lyk FIFO’ lary vardyr. +5 V veya +3 V güçle çalyºabilmektedir. Düºük güçlü bir uyku modu bulunmaktadyr. Bu yonga, 16 MHz kristal ile saatlenmesi halinde 1 Mbps’ e kadar hyzlara imkan vermektedir. Ayny zaman otomatik RTS/CTS el sykyºma deste?i bulunmaktadyr. UART, Auto-CTS modunda, CTS aktif ise gönderim yapar. Böylece yazylymy status kontrolünden kurtaryr. Auto-RTS modunda ise UART, alycy FIFO’ da eºi?in altynda byte olmasy halinde RTS’ yi aktive eder. Böylece karºy tarafa daha fazla veri yollamasy gerekti?i bildirilir ve FIFO’ nun boº kalmamasy sa?lanyr.A.G.- EE-Genel Bilgi-2 4 Exar ST16C50A’ da yeni UART’ lara birörnektir. 32 byte FIFO’ lary bulunur. 1,5 Mbps’ e kadar bit hyzlaryny destekler. Auto-CTS/RTS el sykyºma yanynda yazylym el sykyºmasyny destekler. Kullanycy tanymly karakterleri algylayabilir. Ancak yeni UART’ laryn PC’ nin geleneksel 1,8432 Mhz’ lik saatini kullanmalary halinde, sözü edilen yüksek hyzlaryn bir anlamy kalmamaktadyr.Öte yandan di?er geliºmiºözellikler de yazylym tarafyndan bilinmeleri halinde kullanylabilir olmaktadyr. 2.2 Port Kaynaklary PC’ deki her seri port için bir küme port adresi tahsis edilmiºtir. Her birinin belirlenmiº bir kesme-istek (IRQ) hatty vardyr. Portlar COM1, COM2... ºeklinde belirtilir. 2.2.1 Portlaryn Tespiti Kaç tane seri portu oldu?unu ö?renmek için PC’ nin arkasyndaki RS-232 konnektörlerini saymaktan fazlasyny yapmak gerekir. Bazy seri cihazlar COM kullanyrsa da RS-232 arabirimleri olmayabilir.Örne?in; dahili bir modem için ihtiyaç duyulan tek harici konnektör telefon jak’ydyr. Windows 95’ te port kaynaklary Kontrol Panel’ inden görülebilir. System, Ports yoluyla bir port seçilir ve Properties tyklanyr. Port settings penceresinde varsayylan bit hyzy ve di?er ayarlar yer alyr. Herhangi bir sebeple FIFO’ lar devre dyºy byrakylacaksa Advanced Port Setting penceresine geçilir. Resources penceresinde ise portun baz adresi ve IRQ düzeyi bulunur. Use Automatic Settings kutusu iºaretliyse, port adresi ve IRQ hatty Windows tarafyndan araºtyrylyr. Görülen de?erler donanym ayarlaryna uymuyorsa, bu kutudaki iºareti tyklayarak kaldyryr ve istedi?iniz ayarlary liste kutusundan seçerek veya yazarak belirleyebilirsiniz. Ancak Windows bazy portlarda Control Panel kanalyyla ayarlaryn de?iºtirilmesine izin vermez.A.G.- EE-Genel Bilgi-2 5 Yapylandyrma, her port için bir IRQ hatty gerektirir. Yapty?ynyz ayarlar sonucunda Windows bir uyuºmazlyk tespit ederse, durumu pencerede görebilirsiniz. Tablo 3.1 geleneksel port adreslerini ve karºylyk gelen IRQ hatlaryny göstermektedir. Portlaryn bu geleneksel de?erlere uyma zorunluluklary yoktur. Donanymyn destekledi?i herhangi bir adres ve IRQ hattyny kullanabilirler. Her bir port, baz adresten baºlayan sekiz adet adresi rezerve eder. Örne?in 3F8h’ taki bir port 3F8h-3FFh adreslerini kendine ayyryr. Windows 3.x Kontrol Panel’ i de seri port bilgilerini ihtiva etmektedir. Ports’ dan bir port seçilir ve Settings tyklanyr. Adresi ve IRQ hattyny de?iºtirmek için Advanced tyklanmalydyr. Adreslerin ve IRQ hatlarynyn Windows tarafyndan saklanmasy, uygulamalary bunlaryn izini sürmekten kurtaryr. Bir uygulama, portlara, kullanylan dildeki mevcut fonksiyonlary yada Windows API’ yi kullanarak eriºir. Fonksiyon portu ismiyle (COM1, COM2) ça?yryr. Windows bunlaryn nerde olduklaryny ve nasyl kullanylacaklaryny bilir. DOS ortamynda ise port adresleri BIOS veri alanynda bulunur. Açylyºla birlikte bir PC BIOS rutini 3F8h, 2F8h, 3E8h ve 2E8h adreslerine syrayla bakarak seri portlaryn mevcudiyetini kontrol eder. Sonra da BIOS veri alanyndaki 40:00 adresinden baºlayarak ilk dört 16 bit adresi kaydeder. Bazy eski BIOS’ lar yalnyzca ilk iki portu algylayabiliyorlardy. Port Adres IRQ COM1 3F8h 4 COM2 2F8h 3 COM3 3E8h 4 veya 11 COM4 2E8h 3 veya 10 Tablo 2.1: Geleneksel COM port adresleri ve IRQ hatlary.A.G.- EE-Genel Bilgi-2 6 2.2.2 Sistem Sicilindeki Port Enformasyonu Windows sistem sicili (kütük - registry) her bir portun IRQ hattyny ve adresini tutar. HKEY_LOCAL_MACHINE \ Enum \ Root \ E?er yapylanma Bootconfig altyndaki varsayylan bilgilerden (entry) farklyysa, de?iºiklikler Forced Config alt anahtarynda (subkey) tutulur. Eski portlarºu sicil anahtarynda tutulurdu: HKEY_LOCAL_MACHINE \ Enum \ BIOS \ Windows 95’ in tek seansa (session) yönelik geçici yapylandyrmalar için ilave bir sicil daha vardyr. Windows’ taki Regedit programyyla sistem sicilindeki giriºleri gözden geçirmek mümkündür. 2.3 Yapylandyrma Birçok portun kullanycyya port adresi ve bir IRQ hatty belirlemesini sa?layan atlamalary (jumper), yada yapylandyrma olanaklary vardyr. Açylyº syrasynda eriºebilen kuruluº ekrany vasytasyyla, sistem ana kartynda bulunan portlary yapylandyrmak mümkündür. Yapylandyrmaya yönelik çok çeºitli seçenekler vardyr. Bazy portlar geleneksel olmayan adreslere ve IRQ hatlaryna da imkan tanyrlar. Windows 95 ortamynda geleneksel olmayan port adreslerinin kullanymy dert de?ildir. Portla birlikte bir geniºleme karty kuruluysa, Windows’ un portu tespit edememesi halinde, ele eklenmesi de imkan dahilindedir. Bunun için Control Panel, Add New Hardware’ i tyklayyn. Yeni donanym için tarama yapylsyn my, diye sordu?unda No’ yu tykladyktan sonra syrayla Ports, Communication Ports’ u seçin. Adresleri ve Windows’ un atady?y IRQ hatlaryny hataly bile olsalar onaylayyn. Ardyndan kuruluºun baºlamasy için Next’ i tyklayyn.A.G.- EE-Genel Bilgi-2 7 E?er adres ve IRQ hattyny donanyma uydurmak gerekiyorsa, daha önce anlatylan ºekilde Control Panel Device Manager’ a baºvurun. Port bir kere kurulduktan sonra Windows yapylandyrmayy unutmaz. Programlaryn Dos ortamynda, port adreslerini bulmak için BIOS’ a ba?ymly olan uygulamalar, geleneksel adresinde olmayan bir porta ulaºamayacaklardyr. Çünkü BIOS portlary baºka adreslerde aramaz. Örne?in; 2E8h’ ta COM3 ve 2E0h’ ta COM4’ün atanmyº oldu?u eski bir seri kartta böyle bir durum ortaya çykar (çünkü kullanycynyn iki adet seri portunun kurulu oldu?u varsayylyr). BIOS normal adresi olan 3E8h’ ta COM3 portunu bulamazsa aramaya devam eder ve buldu?u ilk portu COM3 olarak 2E8h’ a atar. 3E8h’ taki port ise asla algylanmaz. Bir portu ola?andyºy bir adreste kullanmanyn, DOS ortamynda iki yolu olabilir. Ylk yol, adresi BIOS veri alanyna kaydetmek üzere açylyº syrasynda bir araca (utility) baºvurmaktyr. Böylece, port adreslerini BIOS’ tan okuyan her uygulamanyn bulmasy sa?lanabilir. Yine kullanycyya bir port adresi girmesini sa?layan herhangi bir uygulama da, kullanycynyn girece?i adresi bildi?ini varsayarak portu kullanabilir. Portlara atanan IRQ hatlary BIOS veri alanynda yer almazlar. Bu durumda DOS uygulamalary ve seri port sürücüleri, bu kesmeleri kullanyyorlarsa, varsayylan IRQ hatlaryny benimseyecekler ve kullanycyda bir tanesini seçmesini isteyeceklerdir. Tabii, hangi hattyn atandy?yny bulmaya da çalyºabilirler. Gerek DOS gerekse BIOS port iletiºimini belliölçüde desteklerler. Ancakço?u DOS programlary performanslaryny arttyrmak için kendi iletiºim rutinlerine baºvururlar. Seri port kaynaklaryna ulaºmanyn di?er bir yolu da Windows 3.x ve DOS’ ta bulunan msd.exe programyny veya benzer bir teºhis programyny çalyºtyrmaktadyr. Açylyºta ulaºylabilen kurulum ekranlary da sistem portlaryna iliºkin bilgileri içerirler.A.G.- EE-Genel Bilgi-2 8 2.3.1 Yeni Sistemler Her ne kadar PC 98 cari COM portlary tavsiye etmese de, belli ºartlar altynda kullanymyna imkan vermektedir. · Port, bir UART 16550A’ ya eºit yada daha iyi olmaly ve 115.200 bps’ e kadar hyzlary desteklemelidir. · Port yeniden yapylandyrylabilmeli ve yazylymla devre dyºy kalabilmelidir. · Geleneksel port adreslerini ve IRQ hatlaryny desteklemelidir. · Her port en az iki IRQ hattyndan birinin seçimine olanak vermelidir.Yki port varsa, biri için IRQ4 yada IRQ11, di?eri için de IRQ3 veya IRQ10 seçilebilir. · Kyzylalty bir adaptör port, bir seri portun yerini alabilir. Bunlar, esnek bir yapylandyrma için iºlevsel, genel geçer tavsiyelerdir. Ancak, kullanycy elbette donanym tarafyndan desteklenen herhangi bir portu kurmakta serbesttir. Eski geniºleme kartlary, ISA slotu olan her bilgisayarda gayet iyiçalyºyr. Yukarydakiºartlary taºymalary gerekmez. 2.3.2 Bir Port Eklemek Yeni PC’ lerde bir yada iki RS-232 port vardyr. Ancak son zamanlarda yerlerini USB portlara byrakmaya baºlamyºlardyr.Ylave RS-232 portlary için geniºleme karty bulmak zor de?ildir. Öte yandan RS-485 veya farkly tipte bir arabirimi olan bir kart da eklenebilir. Uzun yyllar, geniºleme kartlarynyn pekço?u PC’ nin ISA bus’yna takyldy. Bu bus orijinal IBM PC’ nin sistem bus’ydyr. Ne var ki, ISA bus da, PCI gibi daha hyzly ve kapasiteli bus’ laryn ortaya çykyºyyla gözden düºmeye baºlady. Seri portlu PCI geniºleme kartlary elde etmek kolaydyr.A.G.- EE-Genel Bilgi-2 9 Ancak karty alyrken PC’ de boº bir slot oldu?undan emin olunmaly. Bir 8-bit ISA slotun her birinde 31 yuva bulunan iki syrasy olur. 16-bit ISA slotta ise bitiºik bir 18’ li syra daha bulunur. 32-bit PCI’ de ise her syrada 62 yuva olan iki syra yer alyr. Ayryca, yine karty alyrken, karttaki porta atamak isteyece?iniz IRQ hattyny destekleyip desteklemedi?ini iyiö?renmek gerekir. RS-485’ i kullanmak içinse ya bir geniºleme karty yada bir RS-232 port ile harici bir konvertör gerekir. 2.3.3 Eski Donanymy Kullanmak 40-bacakly DIP soketle çalyºan eski sistemlerde ve geniºleme kartlarynda 8250’ yi 16450 yada 16550 ile de?iºtirmek mümkündür. 8250 ile 16450’ nin bacakçykyºlary aynydyr. 16550’ de iki ilave daha vardyr. Bunlar TXRDY ve RXRDT’ dir. Tamponlu DMA transferlerde kullanylyrlar. Yonganyn seçildi?ini gösteren CSOUT çykyº ise mevcut de?ildir. 16550 reset edildi?i zaman 16450 gibi çalyºyr. Tamponlar yazylymla aktive olur. UART tipinin tespiti ve FIFO’ larynyn kullanymy için yapylandyrylmasy Windows tarafyndan kotarylyr. Bu iºlevlerin, DOS ortamynda, uygulama yada seri port sürücüsü tarafyndançözümlenmesi gerekmektedir. Ylk UART’ lara iliºkin parça numaralary aldatycy olabilmektedir.Örne?in; 8250A’ da 16450’ dekine benzer bir yaz-boz yazmacy vardyr. Yine, 16550’ nin ilk örnekleri üretim aryzasy nedeniyle kullanylamaz haldeydi. 16450 tip bir UART’y tespit etmenin yollaryndan biri yaz-boz’ una yazyp, yazylany okumaktyr. Yazylanla okunan aynyysa elinizde ya bir 16450 vardyr yada daha iyisi. 16550’ yi tespit etmek için tamponlaryny devreye sokup denemek gerekir.A.G.- EE-Genel Bilgi-2 10 2.3.4 Dahili Cihazlar my, Harici Cihazlar my? Modemlerde olsun di?er COM-port cihazlarda olsun bir seçim yapma gere?i ortaya çykmaktadyr. Her durumda avantajlar ve dezavantajlar söz konusudur. Dahili cihazlar nispeten daha ucuzdur. Yerden kazandyryrlar. Öte yandan aldy?ynyz bir PC’ de, istemeniz de bir dahili modem bulunabilir. Bir PC’ de boº slot yoksa ve kullanylmayan bir RS-232 portu varsa, bu durumda harici bir cihaz zorunlu demektir.Öte yandan cihazyn farkly PC’ lerde kullanylmasy harici bir cihazy üstün kylan yönlerden biridir. Sökülüp takylmalary, tümüyle sistemden fiziki olarakçykarylmalary dahili cihazlara göreçok daha kolaydyr. PC’ ler dyºyndaki cihazlaryn ço?unda bir RS-232 olmasy nedeniyle böyle bir cihaz genel olarak daha kullanyºlydyr. Harici cihazlarynçoklu ortamlarda kullanymlary mümkündür. Bir anahtaryçevirerek, yada sadece kabloyu yönlendirerek bir cihazdan di?erine ba?lanabilirler. Adres arama, IRQ hatty belirleme gibi iºlemlerle u?raºtyrmazlar. 2.3.5 IRQ Uyuºmazlyklary Çoklu seri portlardaki sorunlardan biri, dört adet port için iki IRQ hatty tahsis edilmiº olmasydyr. COM1 ve COM3 genelde IRQ4 hattyny; COM2 ve COM4 ise IRQ3’ ü kullanyrlar. Ancak bu hatlardan birinin karºylyk gelen iki porta birden ba?lanmasy bir takym sorunlara yol açabilmektedir. Dolayysyyla, dört port olmasyna ra?men, pratikte ancak ikisi kullanylabilir olacaktyr. 2.3.5.1 Kesmelerin Kullanymy Ço?u seri-port uygulamalarynda, porttaki olaylary otomatik olarak algylayarak daha hyzly veri transferine imkan vermesi dolayysyyla donanym kesmeleri tercih edilir. Kesme, CPU’ya acil olarak yapylmasy gereken iºleri bildiren bir sinyaldir. IBM PC, 8 kesme hattyny destekler. AT modelinde bu sayy 16’ yaçykmyºtyr.A.G.- EE-Genel Bilgi-2 11 Ancak, sonradan kesmelere baºvuran cihazlaryn sayysyçok artmasyna ra?men, bu sayy de?iºmeden kalmyºtyr. Her bir IRQ hatty, kesme kayna?yny PC’nin kesme kontrolüne ba?layan bir sinyale karºylyk gelir. Donanym kesmelerine baºvuran bir programda kesme-servis-rutinleri (ISR) olmak durumundadyr. Bu rutinler bir kesme meydana geldi?inde gereken fonksiyonu yerine getirirler. Bir seri port ISR’ sinin portun alycy tamponundan veri okumasy bunaörnektir. Cihaz kesme yapmak için IRQ hattyny bir darbeyle uyaryr. Sistemin kesme kontrolü bu iste?i algylar ve durumu CPU’ a bildirir. CPU o anda yapty?y iºi durdurarak ISR’ yi devreye sokar. ISR’ nin devreye giriºiyle birlikte CPU kaldy?y yerden devam etmeküzere iºine döner. Visual Basic’ de, ISR’ nin kuruluºu ve devreye giriºine iliºkin her ayrynty‘MsComm’ un kontrolündedir. Bu kesmeyi çalyºtyracak program kodlary uygulamanyn ‘OnComm’ rutininde yer alyr. 2.3.5.2 Kesme devreleri Kesme hatlaryna iliºkin devreler, iki portun ayny kesmeyi paylaºmasyna izin vermezler.ªekil 3-4’ te eski bir seri porttaki kesme devresi sergilenmektedir. Yakyn döneme iliºkin seri portlarda daha farkly devre elemanlary bulunmakla beraber çalyºma prensibi itibariyle ISA kartlar birbirlerine benzerler. IRQ hattyny süren yonga bir 74LS125 tamponudur. Kullanycy, geniºleme kartyndaki bir anahtary kapatarak IRQ hattyny seçer. Böylece tamponun çykyºy, geniºleme bus’ yndaki iki IRQ hattyndan birine yönlenmiº olur. Tamponun giriºi, UART portunun INTRçykyºydyr. Bir kesme iste?i oldu?unda yükse?e geçer. Tamponun bir de UART’yn OUT2çykyºyyla kontrol edilen bir giriºi bulunmaktadyr. Bu çykyº PC mimarisinde bu fonksiyona yönelik olarak tahsis edilen genel amaçly bir çykyºtyr. Programyn seri kesmeleri kullanabilmesindenönce, yazylym OUT2’ yi düºü?e getirerek tamponçykyºynyn giriºi izlemesine imkan vermelidir. UART’ taki OUT2 baca?y, UART’yn modem kontrol yazmacyndaki (MCR) OUT2 bitinin tamlayanydyr (complement). MCR’ deki OUT2 bitine 1 yazma, OUT2 baca?yny düºü?e getirmek demektir.A.G.- EE-Genel Bilgi-2 12 ‘Bacak’ yüksek oldu?unda, tamponunçykyºy kapanyr, yada yüksek empedans haline geçer. Böylece UART’ yn kesme istekleri IRQ hatlaryna etkide bulunmaz. Bu ise, baºka bir cihazyn seri portla uyuºmazly?a düºmeden IRQ hattyny kullanabilmesi anlamyna gelir. Sorun, iki 74LS125’ in ayny IRQ hattyna ba?lanyp devreye girmeleri halinde ortaya çykar.Çykyºlar totem-kutuplu TTL tipidir. Yüksek birçykyºyn +5 V’ la arasynda düºük bir direnç vardyr. Düºük birçykyºynsa toprakla arasynda düºük bir direnç vardyr.Yki seri portun ayny kesme hattyny paylaºmalary halinde,çykyºlardan biri yükse?e di?eri de düºü?e geçmeyeçalyºyrsa, sonucu kestirmek imkansyz hale gelir. IRQ hattynyn bir kesme iste?iüretecek düzeyde yükse?e geçme ihtimali belirsizdir. Sonuçta meydana gelen akym devre elemanlaryüzerinde tahribata bile yol açabilir. ªekil 2.1: UART’yn OUT2 baca?y, seri portun PC’de kesme yapmasyna imkan verir. 2.3.6 Çoklu PortlardaÇözüm IRQ sayysyndaki kysytlylyk halledilemez de?ildir. Köklüçözümler olmamakla birlikte, duruma ba?ly olarak belliçözümler bulunabilir. Com portlary kullanan cihaz sayysy synyrlanabilir: Ykiden fazla seri cihaz söz konusu de?ilse yalnyzca COM1 ve COM2 kullanylmalydyr. COM1’ e IRQ4, COM2’ ye de IRQ3 atanyr. Ancak bu hatlaryn baºka cihazlara gösterilmemeleri gerekir.A.G.- EE-Genel Bilgi-2 13 Kimi zaman alternatif bir arabirime baºvurmak yoluyla seri port boºaltylabilir. Bir USB portla, çeºitli çevre birimleriyle iletiºim sa?lanabilir. Her bir cihaza bir IRQ hatty atamak yerine, iº USB’ ye byrakylyr. USB’ nin sürücüsü ilgili cihazlary periyodik yoklayarak askyya alynan istek olup olmady?yny bulmayaçalyºyr. Farelerin kullandyklary arabirimler çok çeºitlidir. Bunlaryn içinde COM portlarda bulunmaktadyr. Son zamanlarda farelerin e?itimi PS/2 tip olmaktadyr. Bunlar COM port adresine ihtiyaç duymayan yapysal (built-in) fare portlarydyr. Tipik olarak IRQ12’ yi kullanyrlar. Özel fare-arabirimi geniºleme kartyna ba?ly bir bus faresi normalde COM port adresi kullanmasa da, IRQ3 yada IRQ4 kesmelerini kullanabilmektedir. USB ise fareler için tavsiye edilen bir arabirimdir. Anahtar kutusu kullanylabilir: Böyle bir kutu belli bir alanda çeºitli cihazlaryn kullanymyny mümkün kylar.Örne?in COM2’ dekiçeºitli cihazlara ba?ly bir anahtar kutusu varken, COM1’ de bir dahili cihaz olabilir. Alternatif IRQ hatlary de?erlendirilebilir: Ayny anda iki adet yadaçift numaraly portu kullanmak gerekirse, portlardan birine baºka bir IRQ hatty atanmasy ihtimali düºünülebilir. Olasy hatlardan ikisi IRQ7 ve IRQ5’ tir. Bunlar paralel portlara tahsis edilirler. Ancak kimi zaman atyl durumdadyrlar. Hem paralel portun hem de yazycynyn ECP modunu desteklemesi durumunda, belirlenmiº bir IRQ hatty yazycyyla daha hyzly iletiºime yardymcy olabilir. Di?er paralel port cihaz sürücüleri de kesmeleri kullanabilirler. Ne var ki, gerekti?i durumlarda paralel port cihazlary kesmeler olmadan daçalyºabilir. 10 ile 12 arasyndaki kesmelere de baºvurulabilir. Ancak bu seçenek tüm seri portlarda yoktur. Bu ihtimal, ses kartlary tarafyndan kullanylabilmeleridir. IRQ paylaºylyyorsa belli bir anda tek cihaz kullanmak do?ru olur: Kullanylmayan porttaki kesmelerin devre dyºy olduklary kabul edilir. Yyi-huylu bir uygulama, kapanyrken aktive etti?i IRQ hattyny kapatacaktyr.A.G.- EE-Genel Bilgi-2 14 Kesme yerine yoklama denenebilir: Kullanycy tarafyndan geliºtirilen bir yazylymla porttaki kesmeler devre dyºy byrakylabilir. Kesme yerine yoklamaya baºvurmak da mümkündür. Kesmelere güvenmektense, periyodik olarak hata kontrolü yapmak bir tercih sorunudur. Ticari yazylymlar genellikle kesmeleri tercih ederler. Uygulama hyzly tepki gerektirmedi?i sürece yoklama yapmak da sorunuçözecektir. Kimi durumlarda kesme kullanymy dyºynda seçenek bulunmayabilmektedir. VB’ de, MSComm denetimiyle bir COM port açyldy?y zaman OUT2’ deki IRQ hatty otomatik olarak aktive olur ve port kapanyncaya kadar da öyle kalyr. Program kesme kullanmyyor bile olsa MSComm, IRQ hattyny süren tamponu devreye sokar. Böylece baºka cihazlar tarafyndan kullanymyny engeller. Ancak bir IRQ, mesela; hatty aktive eden atlama (jumper) kaldyrylarak, devre dyºy byrakylmyºsa OUT2, kesme hatlarynda hiçbir etki yaratmayacak ve port kesmesiz kullanylabilecektir. Kesme paylaºymyna imkan veren bir bus kullanylabilir: Yeni PC’ lerdeki PCI bus’ ta dört düzey-tetiklemeli, aktif-düºük, paylaºylabilir kesme hatty vardyr. Tipik bir sistem yapylanmasynda programlanabilir bir kesme yönlendirici her PCI kesmesini, sistemin 16 IRQ hattyndan birine ba?lar. Micro Channel ve EISA eski bus’ lardandyr. IBM PS/2 modelindeki Micro Channel bus’ ta IRQ hatlary aktif-düºük ve paylaºylabilirdir. EISA bus’ ta ise IRQ hatlary farkly yapylanma gösterebilirler. ISA kartlarla uyumlu yükselen-kenarly kesmeler ve EISA kartlar için düzey duyarlykly kesmeler söz konusudur. Paylaºylabilir IRQ hatlary için yazylym gere?i vardyr. Hangi cihazyn kesme istedi?ini ve hangi rutini çalyºtyrdy?yny belirlemek yazylymyn iºidir. Paylaºylabilir hatlarda donanym genellikle açyk-kollektör ve açyk dirençykyºlary kullanyr.A.G.- EE-Genel Bilgi-2 15 IRQ paylaºymyny mümkün kylançok-portlu karta baºvurulabilir: Bu tip kartlar yazylym sürücüleriyle birlikte bulunurlar. Sürücü UART yazmaçlaryny okur. Böylece kesme iste?inin hangi portttan kaynaklandy?yny tespit eder ve uygun ISR’ ye yönelir. RS-485 tercih edilebilir:Çok sayyda seri cihazy PC’ ye ba?lama yollaryndan biri de budur. Tek bir porta birkaç cihazyn ba?lanmasyna imkan verir. Takip ve kontrol sistemlerinde baºvurulur. PC’ ler için RS-485 geniºleme kartlary bulunmaktadyr. Tabii bu durumda tüm cihazlaryn RS-485’ i tanymasyön koºuldur. Aksi halde RS-485 adaptörü gerekir. Çok dü?ümlü bir RS-485 linkte, cihazlar arasy iletiºimin idaresi programlama gerektirir. 2.4 UART’ynYçi 16550 ve benzeri UART’ larda on iki adet 8-bit yazmaç bulunur. Bu yazmaçlar syradaki byte’y, bit hyzyny, di?er port ayarlary yanynda el-sykyºmaya yönelik kontrol ve durum bilgilerini, FIFO kullanymyny ve kesmeleri içerirler. Ancak ço?u durumda yazmaçlara eriºim gerekmez.Çünkü portun yapylandyrylmasyna ve kullanymyna iliºkin fonksiyonlar programlama dillerinde ve/veya API’ de mevcuttur. UART’ yn içini bilmek portu ola?an kullanymynötesinde iºe koºmak için yada sorunlarçykty?ynda iz sürebilmek açysyndan faydaly olabilir. UART’ ta on iki adet yazmaç ile iki adet FIFO vardyr, ancak sadece sekiz adrese ihtiyaç duyulur. Kimi durumlarda yazmaçlar ayny adresi paylaºyrlar. Eriºilen bir yazmaç bir di?er yazmaç bitinin de?erine veya o syrada yapylmakta olan yazym/okuma iºlemine ba?ymlydyr. FIFO’ lar UART içinde yer alyrlar. Adrese ihtiyaçlary yoktur. UART adresleri baz adresüzerinden belirlenirler. Adres 0, portun baz adresindedir. Di?erleri syrayla bunu takip ederler.Örne?in; COM1 için, adres 0 genellikle 3F8h’ ta, adres 7 ise 3FFh’ tadyr. Bu adresinüç yazmacy vardyr. Salt-yazylyr bir yazmaç gönderilmeküzere bekleyen byte’y tutar. Salt-okunur bir yazmaç ise gelen son byte’y tutar. Reset edildi?inde,A.G.- EE-Genel Bilgi-2 16 DLAB biti (baz adres + 3,7 nolu bit) 0’ dyr. Baz adresin okunmasy (Alycy tamponu) alynan son verinin UART’yn SIN baca?ynda oldu?unu anlatyr. Baz adrese yazmak (Verici tamponu) ise byte’ yn seri formatta gönderilmek üzere SOUT baca?ynda oldu?unu söyler. DLAB’yn 1’ e set edilmesiyle baz adresteki bölücü mandallaryn kullanylabilmesini ve (baz adres + 1) portun bit hyzynyn set edilmesini sa?lar. Bölücü mandallar, UART’yn kristal frekansyny istenilen bit hyzyna bölen 16-bitlik bir de?eri tutarlar. Tablo 2.2’ de farkly bit hyzlaryna karºylyk gelen bölücü-mandal de?erleri görülmektedir. UART’yn standart 1.8432 MHz kristal oldu?u varsayylmyºtyr. Bazy eski 8250’ lerde maksimum bit hyzy 57.600’ dür. Bölücü mandal 2’ ye ayarlanmyºtyr. Baºka UART’ lar ise 115.200 baud’ da gönderim ve alym yapabilirler. Daha hyzly bir kristalle, hyz daha yukarylara daçykabilir. Bit Orany Yüksek Anlamly Byte (hex) Düºük Anlamly Byte (hex) 300 01 80 1200 00 60 2400 00 30 9600 00 0C 19.200 00 06 38.400 00 03 115.200 00 01 Tablo 2.2: PC UART’yndaki farkly bit hyzlary için bölücü-mandal de?erleri DLAB’ yn 1’ e ayarlanmasy yalnyzca bit hyzynyn okunmasy veya ayarlanmasynda gerekir. Bundan sonra DLAB yine 0’a ayarlanabilir. Reset edilirse, bit hyzy 2400 olur.A.G.- EE-Genel Bilgi-2 17 2.4.1 Kesme Kaynaklary DLAB 0 iken IER (Kesme Devrede) yazmacy (baz adres + 1) dört taneye kadar kesme kayna?yny devreye sokabilir. Kesme kaynaklary, hata tespiti ve di?er dikkat isteyen durumlar için uygun bir yöntem sunarlar. Bir kesme meydana geldi?inde, IIR (Kesme Belirle) yazmacynyn (baz adres + 2) 1,2 ve 3 nolu bitleri kayna?y bildirirler. Kesme kaynaklaryndan bir ço?u do?rudan MSComm tarafyndan tespit edilen olaylara karºylyk gelirler. Bir çok uygulama kesme kaynaklarynyn tamamyny kullanmaz. En çok kullanylan kaynak 0 nolu bittir: Alynan Veri Kullanylabilir (Received Data Available). Bu bit 1’ e set edilmiºse, yeni bir veri okunaca?y zaman UART bir kesme yaratyr. Alycy tamponunun okunmasy, syradaki byte gelene kadar kesmeyi temizler. IER’ in 1 nolu biti set edilmiºse, verici tamponu boºken bir kesme meydana gelir ve CPU’ dan tampona ilave veri yazmasyny ister. 2 nolu bit set iken, kesme, Yazmaç 5’ teki 1-4 nolu bitlerdeki de?iºmeyle bildirilen bir gönderim hatasy oldu?unda meydana gelecektir. Tespit edilebilecek hatalarºunlardyr: · Overrun: Alycy tamponundaki veri okunmadan tampona yeni veri gelmesi halinde · Parity: Parite devredeyken, alycy FIFO’ nun en üst byte’ ynyn parite biti do?ru de?ildir. · Framing: Alynan bitin Stop biti yoktur. Bu hata verici ve alycy hyzlarynyn uyumlu olmady?y durumlarda meydana gelir. · Break Interrupt : Alynan veri bir karakterin gönderimi için, gerekenden daha uzun süre boyunca lojik 0 olmuºtur. IER’ yn 3 nolu biti set edilmiºse, seri konnektördeki kontrol giriºlerinden birinde de?iºme olmasy halinde kesme meydana gelecektir.A.G.- EE-Genel Bilgi-2 18 MSR (Modem Durum Yazmacy, baz adres + 6)’ nyn 4-7 nolu bitleri kontrol giriºlerinin durumunu (status) tutar. 0-3 nolu bitler de yazmacyn son okunuºundan sonra de?iºen giriºleri bildirir. 4-7 nolu bitler yazmaçla RS-232 konnektörde iki kez tersinirler. RS-232 arabirimi, sinyalleri bir kez tersindirir. UART’ taki giriºler yazmaçtaki karºylyklarynyn tamlayany olurlar. Böylece, 4 nolu bit 0 oldu?u zaman UART’ taki CTS baca?y yüksek, RS-232 konnektördeki CTS baca?y ise negatif, kapaly yada yanlyºtyr. 2.4.2 Kontrol Yazmaçlary LCR (Hat Kontrol Yazmacy, baz adres + 3), her bir gönderimdeki stop, veri ve parite bitlerinin sayysy gibi yapylandyrma bilgilerini saklar.Örne?in N-8-1 ayarlary için, 0-5 bitleri 00111 olur. MCR (Modem Kontrol Yazmacy, baz adres + 4) bir takym önemli fonksiyonlara sahiptir. 3 nolu bit (OUT2) UART’yn genel amaçly birçykyºydyr. Ancak dahaönce anlatyldy?y gibi, portun IRQ hattyny devreye sokar. Bu biti 0’ a set ederek portun kesme iste?i türetençykyºy kapatylyr. Yani UART’yn bir kesme algylamasy durumunda bile kesme kontrolörü ve CPU bundan haberdar olmayacaktyr. MCR’ nin 0 ve 1 nolu bitleri, bu kontrol sinyallerini kullanan uygulamalar adyna, seri konnektördeki DTR ve RTS’ yi set eder ve temizler. 2 nolu bit de bir genel amaçly çykyºtyr. Bu bitin PC’ lerde tanymly bir fonksiyonu yoktur. MCR’ nin 4 nolu bitinin set edilmesi UART’y döngü (loopback) moduna sokarak alycy tamponundaki gönderilen verinin okunmasyny sa?lar. Döngü ayny zamanda portun test edilmesine yada var olup olmady?ynyn anlaºylmasyna yarar. Bunun için yazym yapylyr ve sonra okunur.A.G.- EE-Genel Bilgi-2 19 2.4.3 Yeni Fonksiyonlar Yazmaçlaryn ve bitlerinin bir kysmy UART’yn her versiyonunda bulunmazlar. 16450 ile 16550’ nin yaz-boz yazmacynyn (baz adres + 7) tanymly bir fonksiyonu yoktur. Dolayysyyla program yazarken bu yazmaçlar istenilenºekilde kullanylabilir. Di?er bitler 16550’ nin FIFO’ laryny kontrol eder. FIFO Kontrol Yazmacynyn (baz adres + 2) 0 nolu bitinin set edilmesi FIFO’ lary devreye sokar ve yazmacyn 6 ve 7 nolu bitlerini set eder. 0 nolu biti set edip 6 ve 7 nolu bitleri okuyarak FIFO’ laryn var olup olmadyklary hyzly bir ºekilde test edilebilir (Bazy eski FIFO’ lar bu testte baºarysyz oluyor). FIFO’ suz UART’ larda, 6 ve 7 nolu bitler daima 0’ dyr.