close

Enter

Log in using OpenID

8-Giriş-Çıkış Teknikleri

embedDownload
 Giriş ‐Çıkış İletişimi Sistemin dış dünya ile bilgi alışverişinde mikroişlemci birçok Giriş/Çıkış (G/Ç‐I/O) cihazı ile iletişim kurar. Bütün bu işlemler sırasında mikroişlemci ve Giriş/Çıkış birimi esas işlevi görür. Bilgiler bir giriş elemanı olan klavyeden alınır ve işlenir. Bundan sonra sonuç aynı anda çıkış elemanları olan ekrana veya yazıcıya, mikroişlemci ve G/Ç cihazlarının birbiriyle anlaşması sonucunda aktarılır. Verinin işlemci ve G/Ç cihazları arasında gidiş gelişi birçok sinyalle sağlanır. Bu sinyaller; � G/Ç elemanının durumunu bilgisayara bildiren Durum Sinyalleri � Bilgisayardan G/Ç elemanlarına gönderilen Kontrol sinyalleri � Bilgisayarla G/Ç elamanı arasında gidip‐gelen Veri sinyalleri Kontrol sinyalleri, mikroişlemcinin işlediği bir komut sonucu oluşan bir sinyal, bir G/Ç ciharından servis talebi, işlemciden bir kontrol kodu veya G/Ç cihazından alınan durum kodları olabilir. Bütün bu sinyaller sistemin dış dünya ile doğru‐düzgün haberleşmesinde kullanılır. Verinin işlemci ile çevre birimleri arasında taşınması stratejisinden bağımsız olarak veri aktarımları açık uçlu ve kapalı uçlu olmak üzere iki sınıfa ayrılır. Açık uçlu bir G/Ç aktarım işleminde veri karşı taraftaki cihazın hazır olup olmadığına bakılmadan kontrol sinyali gönderilir ve emniyetli bir şekilde alınacağı kabul edilir. Bu sırada geçecek sürede önemli değildir. Önemli işlemlerin yapıldığı sistemlerde veri taşıması veya haberleşmesi yapılırken kapalı döngü sistemi kullanılır. Mesaj veya bilgi gönderilmeden önce karşı tarafın hazır olup olmadığına bakılır, eğer hazırsa gönderilir ve mesajı alan taraf mesaj alındı cevabını vermesiyle işlem kayıpsız tamamlanır. Açık uçlu sistemlerde ise, taşınan verinin pek önemi yoktur ve karşı tarafın mesajı alacağına kesin gözle bakılır. Bundandolayı taraflar arasında onay veya anlaşma sinyalleşmesine gerek yoktur. Örnek olarak CPU'dan gönderilecek verinin bir çıkış cihazından nasıl alındığı ele alınacak olursa, CPU önce üzerindeki veri göndermeye hazır olduğunda Çıkış cihazına verinin hazır olduğunu bildiren bir DAHA (DAta HAzır) sinyali gönderir. Çıkış cihazı bu sinyali aldıktan sonra CPU'ya veri kabul edildi DAKA (DAta KAbul) sinyali göndererek verinin alındığını bildirir. Bu sinyaller verinin alınıp‐gönderilmesinde kontrol sinyalleri olarak G/Ç arabirim elemanı vasıtasıyla çıkış cihazına iletilir. Şekil-CPU ve G/Ç arasındaki anlaşma sinyalleri
Bazı G/Ç aktarımlarında DAHA sinyali gönderilmeden veri doğrudan G/Ç cihazına yollanır. Ayrıca G/Ç cihazından işlemciye veri gönderileceği zamanda çeşitli kontrol sinyalleri ile haberleşme yapıldıktan sonra veri işlemci tarafından kabul edilir. Bu tip anlaşmalara onaylama (handshaking) denir. 2 . Giriş/Çıkış İşlemleri Mikroişlemci ile G/Ç cihanları arasında veri aklarımı yaparken kontrolün hangi cihazda olduğunu belirleyen bir kaç yol vardır. Kontrolün bağımlı olduğu cihaz ya CPU, ya da G/Ç cihazıdır. CPU'ya dayalı giriş‐çıkış aktarımları programa dayalı işlemlerdir ve ikiye ayrılır; � Birincisi, bellekte saklı olan veya kullanıcı tarafından yazılan programa göre sinyalin herhangi bir onay sinyali gerektirmeden G/Ç cihazından alınması veya yine onay sinyalsiz G/Ç cihazına gönderilmesidir. � İkincisi, işlemci dışarıdan bir veri alacağı zaman G/Ç cihazı olarak bağlanan elemandan ön bilgi alması, eğer işlemci boşsa veriyi kabul elmesi veya işlemcinin dış cihaza bir bilgi göndereceği zaman ön bilgi yollaması gibi işlemlerin olduğu, şartlı giriş‐cıkış işlemleridir ki iletişim öncesi mutlaka iki cihaz arasında bir onaylama gerektirir. G/Ç'ye dayalı veri İletişim işlemlerinde kendine has iki kontrol vardır: Mikroişlemcinin herhangi bir anında G/Ç cihazı tarafından kesme sinyalleri yollanarak işlemcinin bunlara kesme servis yordamları (Interrupt Service Routin) ile cevap vermesi ve diğeri işlemciyi ve programını devreye sokmadan verinin doğrudan belleğe alınması veya bellekten dışarıya gönderilmesidir. Bütün bu işlemleri G/Ç cihazı ile birlikte Doğrudan Belleğe Erişim (DMA) kontrolleri yapmaktadır. 3 . İletişim Zorlukları G/Ç işlemlerinde ortaya çıkan bu sıkıntılardan belli başlıları şunlardır: � Eşzamansız çalışma � Hız uyumsuzlukları � Format çevrimleri 3 . 1 . Eşzamansız Çalışma Program çalışması sırasında işlemci, bellekten veya G/Ç cihazında komut alıp‐getirme, onu işleme ve veri bloklarına erişme gibi bir dizi işlem gerçekleştirir. Bellekten bir veri okuma işlemi, adresinin tanımlanmasıyla sabit bellek erişim zamanı içerisinde birkaç CPU saat çevrimiyle gerçekleştirilir. Bu durumda bellek CPU ile eşzamanlı çalışmaya gayret edebilir. Diğer bir önemli adımda, işlemci bellekten komut veya veriyi getirene dek hiç bir şey yapmadan bekler. Bilgisayar sistemine bağlanan G/Ç cihazlarının veya çevre birimlerinin genellikle işlemci saat sinyaliyle ilişkisi yoktur. Buna göre CPU ile G/Ç arasında aktarım süresi genellikle önceden kestirilemez. CPU, kullanıcı terminaldeki bir tuşa basar basmaz karakteri alacak şekilde hazır olmalıdır. Bu işlem bir veya birkaç saniye içersinde gerçekleşir. Bununla birlikte bellek, talep gösterildikten sonra belli bir zamanda CPU'ya veri yollar. Bilgisayar sistemiyle G/Ç cihazlarının ortak, eşzamanlı olarak çalışmasını sağlamak için özel kontrol sinyallerine gerek vardır. Bu sinyallere onaylama sinyalleri denir. CPU ile G/Ç cihazları arasındaki bilgi alış‐verişinde bu onaylama (protokol) sinyalleri kullanılır. 3 . 2 . Hız Boşlukları Sürekli veri dizisi aktarımı sırasında G/Ç cihazı, 1 CPS (Character Per Second‐saniyede bir karakter) ile 1 milyon cps arasında bir orana onay verebilir. Giriş terminalinden alınan verinin CPU vasıtasıyla belleğe yerleştirildiği düşünülürse, CPU‐bellek bant genişliği ile G/Ç cihazı arasında maksimum veri oranı eşitlendiğinde en hızlı aktarım sağlanmış olur. Fakat genelde terminale bağlı cihaz ile CPU‐
bellek bant genişliği arasında hız oranı bayağı fazla olmakla ve bu da sistemin çalışmasını yavaşlatmakladır. 3 . 3 . Format Çevrimleri Diğer önemli bir G/Ç problemi de, bilgisayar sistemleri ile farklı çevre birimleri arasındaki uyumsuzluklar. Meselâ bazı çevre birimleri bite dayalı seri veri aktarımına gerek duyarken, bazıları da karaktere dayalı paralel veri aktarımına gerek duyarlar. Bu iki değişik aktarım, ASCII, EBDIC ve Hollerith gibi çok sayıda veri kodlama şekillerine sahiptir. İlave olarak binary veya herhangi bir kod arasındaki kodlama veya kod‐çözme de özel bir cihaza gerek duyulur. Ayrıca G/Ç yordamları verinin bütünlüğünü ve güvenirliliğini sağlamak için hata‐kontrol işlemlerine gerek duyarlar. Mikroişlemcinin G/Ç ile haberleşmesinde iki yöntem kullanılır. Bunlardan ilki bellek haritalı G/Ç, diğeri yalıtılmış G/Ç'dır. 6502 mikroişlemcisi bellek haritalı G/Ç yöntemini kullanır. G/Ç eleman kaydedicileri sistem belleğinde kendilerine has yer bulurlar. Bellekte G/Ç cihazının adresi seçildikten sonra işlemci R/W ucu düşük seviyeye (0) çekilirse, o cihaza veri çıkışı yapılır. Eğer R/W ucu yüksek düzeye (0) çekilirse, istemci o cihazdan veri alımı yapar. Bellekte işletim sistemi, kullanıcı programları ve verilerin dışında G/Ç port adreslerinin yer aldığı alan bulunur. Mikroişlemci normal bir RAM veya ROM'dan verinin okunması veya yazılmasında kullandığı komutları G/Ç cihazları içinde kullanır. Burada G/Ç için herhangi bir kısıtlama yoktur. Bu tip bellek adreslemesine bellek‐haritalı G/Ç denir. Yalıtılmış G/Ç işleminde işlemci, belleği ve G/Ç portlarını birbirinden ayrı tutar ve farklı kontrol sinyalleri kullanır. Bu işlemcilerle portlar IN veya OUT gibi doğrudan G/Ç komutları kullanırken IOW veya IOR gibi kontrol sinyalleri kullanır. Yalıtılmış G/Ç tekniği kullanan 8085 işlemcisinde G/Ç işlemi için üç adet kontrol sinyali mevcuttur ; RD sinyali düşük düzeyde tutulursa bellek veya G/Ç'den okuma yapılacağı anlamına gelir. Bu iki elemana yazma yapılacağı zaman W/R sinyali düşük düzeye çekilerek yapılır. Bununla birlikte üçüncü uç, yazma veya okumanın belleğe mi yoksa G/Ç ciharına mı yapılacağını belirler. Bu uç IO/M'dur ki düşük düzeyli ise (mantıksal 0), belleklen işlem yapılacağını, yüksek düzeyli ise (mantıksal 1) G/Ç'den işlem yapılacağını belirler. Bu sistemde adres hatlarında sekiz tanesi G/Ç için kullanılırsa, 256 adet G/Ç cihazı seçilebilir demektir. 256 çevre biriminden herhangi birisini seçmek için gerekli G/Ç cihazının 8‐bitlik adresi adres yoluna konulur ve gerekli kontrol sinyalleri seçilerek yapılır. Bellek seçiminde bu 8 G/Ç adres hattının hiç bir etkisi olmaz, çünkü IOM kontrol hattındaki mantıksal 1, 16 adres hattından sekizinin G/Ç adres yolu olarak seçilmesi derken, mantıksal 0, 16 adres hattının tümünün bellek adres yolu olarak kullanılması demektir. Yalıtılmış G/Ç tekniğinin mahzuru, giris‐çıkış işlemleri için özel komutlara gerek vardır. Yalıtılmış G/Ç işlemi IN ve OUT gibi özel komutlar kullanırken bellek‐haritalı G/Ç, başka işlemlerde kullandığı komutları bu işler içinde kullanabilir, ayrıca bir komuta gerek yoktur. 4 . Program Kontrollü G/Ç Aktarımı Program denetimli giriş‐çıkış aktarımına, onaysız G/Ç aklarımı ve yoklamalı G/Ç aktarımı işlemleri gitmektedir; 4 . 1 . Onaysız G/Ç Aktarımı Herhangi bir anlaşma veya onaya gerek kalmadan yapılan veri aktarımında, sistemin belleğine yerleşik programın işlemci tarafından çalıştırılarak G/Ç portuna bağlı olan cihaza hiç bir kontrol sinyali göndermeden veri aktarımı yapılır. Bu işleme bir örnek verilecek olursa, bir mikroişlemcili sistemin paralel giriş‐çıkış portlarından birisi çıkış olarak, diğeri giriş olarak önceden bir program dahilinde hazır hale getirilsin. Çıkış olarak ayarlanan sekiz adet uca (porta) sekiz tane LED bağlansın ve giriş uçlarına da yine sekiz tane mikro anahtar bağlansın. Sistem bu durumdayken program tarafından giriş‐çıkış hazır hale getirilmeden ve giriş portu okutulmadan ve okutulan değer alınıp çıkış portuna yansıtılmadan sistem çalışmaz. Bütün bu işlemler bir program dahilinde olmalıdır. 6502 işlemcisinde portlardan veri almak için assembly dilinde LDA (oku) komutu, veri göndermek için STA (depola‐çık) komutları kullanılır. Bu komutların yanına işlenen olarak port adresleri yazıldığında ve çalıştırıldığında veriler aynen portlardan içeri veya dışarı bir onaya gerek kalmaksızın alınacaktır. Meselâ, Şekildeki devrenin çıkış portuna bağlı LED'lerden ilk dördü (LSB) yanık diğerleri (MSB) sönük olması isteniyorsa, A kaydedicisinde binary olarak 11110000 verisi olmalı ve bu veri STA #PORT komutuyla LED'lerin bağlı olduğu çıkış portuna gönderilmelidir. Bu durumda LED'lerden düşük düzeyli sinyal gelen hatlara bağlı olanlar yanar, diğerleri sönük kalır. LDA
STA
#PORT
#PORT
; Giriş portundan A'yı yükle
; Çıkış portuna A'dakini aktar
4 . 2 . Yoklamalı G/Ç Aktarımı Portlara bağlı cihazlar, program kontrolü altında ve G/Ç cihazlarının yoklanması esasına dayalıdır. Bir çıkış portuna bağlanan çoğu cihanların hızı nispeten yavaştır ve bu hızdaki veri çıkışı gereksiz veri ve zaman kaybına sebep olacaktır. Öte yandan yüksek veri alış hızına sahip çevre birimlerinde FIFO (ilk giren ilk çıkar) bellek tamponu bulunduğundan veri bu tamponda tutularak sistem tarafından yavaş yavaş işlenir. Bilgisayar ile çevre birimleri arasındaki hız uyuşmazlığına en iyi çözüm, işlemcinin G/Ç cihazına verisinin hazır olup olmadığını sormasıdır. Bu tip G/Ç işlemlerinde eğer sisteme tek bir cihaz bağlanmışsa bu cihazla iletişim kurmak meşgul‐bekle düngüsüyle son derece kolay olacaktır. Bilgisayar sistemine birden fazla çevre birimi bağlandığında, meşgul‐döngüsüyle birlikle yoklama tekniği kullanılır. Normal olarak bir G/Ç portuna bağlı sistemin yoklanması üç adımda yapılır. İlk önce CPU çevre cihazından durum bilgisini alır, sonra bu bilgiye göre cihazın hazır olup olmadığını test eder, daha sonra cihaz hazırsa bilgi aktarımı başlar. Bütün bu işlemlere G/Ç yoklaması adı verilir. Döngü sırasında eğer test edilen cihaz hazır değilse döngü devam eder, bu sırada cihazın hazır olduğu tespit edilirse, cihazla ilgili G/Ç servis yordamına dalınır. Bu yoklama işlemi birden fazla cihazla ilgiliyse aşağıdaki meşgul‐bekle döngüsü kurulur. 1. Cihazı test et Eğer hazırsa ilgili servis yordamına dal 2. Cihazın durumunu kontrol et Hazırsa ilgili servis yordamına dal n. Cihazın durumunu kontrol et Hazırsa ilgili servis yordamına dal Yoklama işlemine devam et 5 . Giriş/Çıkış Cihazına Dayalı G/Ç Aktarımı Giriş ve Çıkış sislemlerine dayalı G/Ç aktarımında günümüzdeki sistemlerde kullanılması kaçınılmaz olan kesme sürümlü G/Ç aktarımıdır. 5 . 1 . Kesme Sürümlü G/Ç Aktarımı Bir önceki bölümde, işlemci G/Ç cihazının hazır olup olmadığını yoklamakta ve zaman kaybetmektedir. Bunun üstesinden gelmek için kesme sürümlü G/Ç tekniği kullanılmaktadır. Herhangi bir anda giriş cihazı sisteme bilgi göndermek isterse, G/Ç cihazı işlemciye bir kesme talep sinyali gönderir. İşlemci hemen, kesme sinyalini aldıktan sonra o anda yürüttüğü programı durdurarak o kesme sinyaline karşılık verecek programın bellekte saklı olduğu yere (altyordama) dalar. Bu alt programa kesme servis yordamı (Interrupt Service Rutine‐lSR) denir. Kesme hizmet yordamı işletilerek talebe cevap verildikten sonra bu alt programın sonunda bulunan kesme yordamından geri dön (ReTurn Interrupt‐RTI) komutuyla tekrar ana programda kalınan yere dönülerek oradan devam edilir. 6502 mikroişlemcisi RESET kesmesinin dışında d iki adet kesme girişine sahiptir. Önlenebilir kesme (Interrupt ReQuest‐IRQ) ve önlenemez kesme (Nonmaksable Interrupt‐NMI). IRQ, eğer mikroişlemcideki I bayrağı mantıksal 0 ise, işlemci o andaki işlediği komutu bitirdikten sonra bu kesme talebine cevap verir. I bayrağı mantıksal 1 ise, mikroişlemci bu kesmeyi ihmal eder ve işine devam eder. NMI hiçbir zaman kesme bayrağına bağlı değildir. Ne zaman NMI kesme talebi gelirse işlemci o anki işini bırakarak kesmeye cevap verir. Yani programcı tarafından bu kesme önlenemez. IRQ ile NMl kesmeleri arasındaki belli başlı farklar şunlardır: • Mikroişlemcinin NMI girişindeki negatife giden bir sinyal işlemciyi durdurur. Bu uçtaki sabit bir düşük düzey işlemciye etki etmez. IRQ girişindeki herhangi bir düşük düzeyli sinyal işlemciyi durdurabilir ve bu sinyal sabit düşük düzeyli de olabilir. Böylece, IRQ düşük düzey hassasiyete sahipken, NMI düşen kenar hassasiyetine sahiptir. • Eğer Önceden I kesme yetkisizleştirme bayrağı mantıksal 1'e kurulmuşsa işlemci IRQ kesmesini dikkate almaz, fakat bu durumda NMl işlemci tarafından dikkate alınır. • NMI kesmesinin ele alınması IRQ kesmesine göre önceliğe sahiptir. Eğer her ikisinede aynı anda işlemciye geldiği düşünülürse üstünlük doğal olarak NMI'da olacaktır. 6 . Kesme Servis Yordamları ve Kesme Vektörleri 6502 Mikroişlemcili bir sisteme bağlanan bir cihazla bir odanın ısısı kontrol edileceği zaman ADC ve DAC gibi devreler kullanılır. Bu işlemi yapacak program bellekte belli adreslerde saklanmaktadır. Bu tip programlara kesme servis (hizmet) yordamları denir. Bu hizmet yordamları kesme yollayan veya kesme yollanan cihazdan verilerin aktarımı için komutlar bulundurur. Kesme hizmet yordamı bittiğinde RTI komutuyla birlikte ana programa dönülerek kalınan yerden işleme devam edilir. Ana programın normal çalışması kesme sinyali gelmediği müddete 0000 ile 03FF arasındaki bellek bölgesinde devam eder. Bu durumda ISR yordamı hiç bir zaman çalışmaz. Fakat ana program normal çalışırken 0210 noktasında ADC ve DAC devresinden bir kesme sinyali alınırsa, işlemci önce üzerinde çalıştığı komutu bitirir ve bir sonraki komut adresini ve bayrak bilgilerini otomatik olarak yığına atar ve sonra F3A9 adresine dalarak RTI komutunu görene dek buradaki komutları işlemeye başlar. Ana program çalışırken dışardan alman bir kesme sinyali ile programın dalacağı altyordamın adresi, programcı veya tasarımcı tarafından belirtilir. 6502 mikroişlemcisinde bu kesmelere cevap verecek en az üç kesme hizmet yordamı olmalıdır. Bu üç yordamın başlangıç adresi işletim sistemini yazan programcı tarafından tespit edilir ve bellek alanlarının en üst yerlerinde vektörel olarak gösterilir. IRQ, NMI, RES ve BRK kesme adresleri 16‐bit üzerinden ROM bellekte yer tutarlar. Bellek alanları 8'er bitlik bloklardan meydana geldiğine ve 8‐bitlik mikroişlemcilerin 16‐bitlik adres yoluna sahip olduğuna göre, RES vektörünün RESET ile ilgili ROM'daki kesme hizmet programını işaret edebilmesi için iki adet bellek alanını göstermesi gerekir. Böylece RES vektörü 16‐bitlik F319 adresini gösteren iki vektörel adrese (FFFCH ‐ FFFDH) sahiptir. FFFDH vektörü ISR'nin büyük değerlikli adres parçasını (F3) tutarken, FFFCH vektörü düşük değerlikli adres parçasını (19) tutar. CPU'nun RES girişine düşük düzeyli bir sinyal geldiğinde işlemci ilkin ROM'daki vektör adresine bakar ve bu iki bellek alanında bulunan yeni adresi [F3I9] program sayıcısına (PC) koyarak ISR yordamını çalıştırır. I kesme yetkisizleştirme bayrağı mantıksal 0 iken IRQ girişi aktif olduğunda, işlemci otomatik olarak program sayıcısının (PC) kapsamını ve bayrakları yığına attıktan sonra FFFEH ve FFFFH adresindeki yeni adres bilgisini PC'nin yeni değeri olarak yerleştirir. Aynı şekilde, NMI kesme girişinin aktif hale getirilmesiyle, gerekli geri dönüş bilgileri yığında saklandıktan sonra FFFAH ve FFFBH vektör adresindeki yeni adres PC konularak çalışma bu adresin gösterdiği adresten başlar. Kesme tipleri; 1. Bir veya birden fazla cihazdan üretilen harici kesmeler. 2. Güç arızası, sistem hatası veya iletişim bozukluklarından dolayı oluşan dahili kesmeler. 3. Hata ayıklama işlemleri için yapılan kesme testlerinin yapıldığı yazılım tekniğinden doğan yapay kesmeler. Farklı kesme kaynakları farklı hizmet talepleri gerektirir. Bazı kesmeler daha fazla dikkat gerektirirken bazıları o anki işlemin bitmesini bekleyebilirler. Böylece kesme işlemi; 1 .Değişik kaynaklar arasındaki farklılıklar 2 .Aynı anda birden çok kesme talebinin ortaya çıkmasıyla servis verilecek olanların sıraya konulması, 3 .işlemcinin çoklu kesmelerden dündükten sonra tekrar eski konumunu alabilmesi için bayrak ve program sayıcısının saklanması şeklinde yapılır. Eğer bir kaç kesme hattı kullanılıyorsa, bunlardan her biri kendisine has kesme kapanı adresine sahiptir. Eğer her kesme kaynağı bir hatla tanımlanırsa, sistem kesmenin harici, dahili veya yapay olup olmadığını ayırt edebilmelidir. Eğer birden çok kesme kaynağı aynı kesme hattını kullanıyorsa kesme, yazılım kullanılarak yoklama tekniği yoluyla veya donanım kullanılarak vektörel kesme tekniği yoluyla seçilebilir. Yoklama tekniğinde kesme işlemi, kesme kapan adresini kullanarak kesme hizmet yordamına dalar. Kesme hizmet programı her G/Ç cihazının durumunu bildiren kelimeyi (Word) kontrol ederek hangisinden kesme talebi olduğunu belirler. Kesme durum biti kontrol sırasında hangi cihazın kesme talebinde bulunduğunu gösterir. Cihazın durum kelimesi daha sonra mikroişlemci bayraklarına alınır. Eğer bit mantıksal 1 ise, kesme hizmet yordamına dalınır. Çoklu kesme taleplerini ele alan en iyi yöntem yoklamalı kesme yöntemidir. Bu yol yavaş fakat, çok az bir donanım gerektirir. Sistemde bir kesme talebi ortaya çıkınca, işlemci kesmeye cevap verecek program komutlarının bulunduğu genel ISR yordamına dalar. Üç‐durumlu tamponların okunması ve 5, 6 ve 7 bitlerinin G/Ç aklarımı için hazır bir cihaz bulana dek yüksek düzeyli olup olmadığı kontrol edilir ve hangi cihaza yol verileceği belirlenir. 7 . G/Ç Bağdaştırma Teknikleri Bir sistemin kendi dışında başka bir sistemle irtibat kurması aşmasında bazı ortak çalışma noktalarının bulunması gerekmektedir. Bilgisayarın belli zamanlarda 0 ve 1'lerden meydana getirdiği verileri çevresel cihazların bağdaştırıcı devresine veya dış dünyaya göndermeden önce dışa uyumlu hale getirmesi ve aynı zamanda yine bilgisayarın dış dünyadan veri alırken kendi bağdaştırıcı devresi vasıtasıyla bu veriyi anlayabileceği duruma getirmesi gereklidir. Sistemin G/Ç cihazlarıyla yaptığı bilgi alış‐verişi bazı özel karakteristiklere sahip bağdaştırıcı devrelerin yapılmasını zorunlu kılmıştır. Bu çok önemli özellikler şunlardır; Sinyal Mantık Düzeyleri : Sayısal teknikte çalışan bir eleman, genel olarak 0V ve 5V gibi iki tip sinyal düzeyinde çalışır. Bu gerilim seviyesi 12V'da olabilir. Bazı G/Ç cihazları mantıksal 0'ı gerçek sıfır noktası alırken 5V'u negatif mantık olarak kullanabilir. Bu gibi durumlarda sistem ile G/Ç cihazları arasına sinyal mantık düzeylerini eşitleyen veya birbirine uyduran bağdaştırıcı devreler kullanılır. Yükleme : Sistemin G/Ç uçlarına bağlanan çevre birimlerin hangi tür mantık ailesine bağlı olduğu önemlidir. NMOS veya CMOS ile yapılmış bir sistemin TTL elemanlarından oluşan bir cihazı sürmesi doğal olarak doğrudan yapılmaz. Gerilim ve akım farklılıkları özel yapılmış bağdaştırıcılarla giderilerek bilgi alış‐verişi yapılabilir. Aşırı Yüklerin Sürülmesi : Sayısal teknikte çalışan bir bilgisayarın çıkışına bağlanan bir cihazı sürebilmesi için standart akım ve gerilimleri vardır. Bu gibi durumlarda sistemle G/Ç cihazı Şekil ‐ Aşırı yüklemeye karşı koruma tamponu arasında çevre biriminin aşırı yükünü veya kısa devre gibi oluşumları bilgisayara yükletmeyen izolatör özellikli bağdaştırma devreleri kullanılır. Bu tip devrelere tampon adı verilir. Sistem çıkışlarına bağlanan tampon çipleri besleme gerilimlerini diğer devrelerden ayrı olarak sağladığından yükün sisteme baskı yapmasını karşılamış olur. Sisteme bağlanan AC yüklerin sürülmesinde yine izolâsyon devreleri olan OPTO elemanlardan meydana gelen devrelerle bağdaştırıcılar gerçekleştirilebilir. Sinyal Formatı: 6502 mikroişlemcisi 8‐bitlik paralel verileri işler. Dış dünyadan aynı anda 8‐bit veri alır, işler ve yine 8‐bit olarak dışarı gönderir. Buna karşılık birçok çevre cihazları paralel veri yerine seri verilerle çalışırlar. Bu durumda işlenen sinyal paralelden seriye veya tersine çevrilmiş olmalı veya iletişim sırasında bir çevirici tarafından otomatikman çevrilmelidir. Ayrıca bu sinyal mikroişlemcili sistemde olduğu gibi sayısal olmayıp analog olabilir. Bu durumda sistem bağdaştırıcı devre olarak bir ADC veya DAC devresi kullanır. Çoğu mikroişlemcili sistemlerde cihaz ve iletişim yolu genişliklerine göre veriler 8, 16i ve 32‐bit paralel formda işlem görürler. Eğer veri G/Ç cihazı ile bağdaştırıcılar arasında paralel ortamda iletiliyorsa bu tip arabirimlere paralel bağdaştırma devresi denir. Eğer veri sistem içerisinde değil de daha uzak mesafelere taşınacaksa bu durumda seri iletişim tekniğinden yararlanırken seri bağdaştırma devresi kullanılır. 7 . 1 . Seri Bağdaştırma Bir mikroişlemcili sistem G/Ç cihazıyla seri olarak eşzamanlı ve eşzamansız iki ayrı iletişim kurgusunda haberleşirler. Eşzamansız seri iletişimde veri, alıcı ile verici arasında herhangi bir zamanda gönderilir ve bir veri kelimesi ile diğeri arasında belirli bir zaman gecikmesi yoktur. Diğer bir deyimle gönderici alıcıya veriyi göndermediği durumlarda sonsuz süre vardır. Eşzamansız seri iletişimde verici ile alıcı saat frekanslarında ortaklık aranmaz. Şekil ‐ Mikroişlemcili bir sistemin seri yazıcıya bağlanması Eşzamanlı (senkron) ilelişimde verici veriyi sürekli alıcıya gönderir. Veri kelimesi genellikle bloklar halinde gönderilir ve bloklar birbirinden sync karakterleri denilen özel bir veri kelimesiyle ayrılırlar. Bu sync sinyali, 8‐bitlik olup normalde veri kelimesinin akışında gözükmez. Genellikle kullanılan Sync sinyali 000101102 olup, SYNC senkronizasyon karakterinin ASCII kodudur. Eğer vericide, gönderilecek veri yoksa sürekli sync karakteri gönderilir. Seri bir veri sinyali bit anları denilen zaman aralıklarına bölünür. Her bir bit anı(Tb) aralığında sinyal ya 0 veya 1'dir ve mantıksal düzeyi yeni bir bit anı aralığının başlamasıyla değişebilir. Seri veri iletişiminde mors alfabesinden alınan işaret ve boşluk gibi bazı terimlerde kullanılmaktadır. Standart bir eşzamansız seri veri formatı dört parçadan meydana gelir; 1 . BAŞLA biti daima mantıksal 0' dan oluşur. Aynı zamanda boşluk olarak tarif edilebilir. 2 . Beş ile sekiz arası veri biti, aktarılacak gerçek bilgiyi gösterir. Verinin LSB tarafı öncelikli gönderilir. 3 . Eszamansız seri iletişimde bit hatasının bulunmasında kullanılan eşlik biti sistem tasarımcısı tarafından seçilir. Tek veya çift eştik bitinin seçimi sisteme göre belirlenir. 4 . 1 tam, 1 tam ve bir yarım veya 2 DUR biti daima mantıksal 1'ler ile ifade edilir. 11/2 tanımı 1 mantıksal seviyesi ile yapılırken 11/2 bit anı kadar sürer. Şekil ‐ Standart eşzamansız seri veri formatı Şekildeki formatta veri bitlerinin sayısı, eşlik biti seçimi ve DUR bitleri tasarımla sabittir. Şekilde bir BAŞLA biti, 7 veri biti, 1 çift eşlik biti ve 2 adet DUR biti kullanılmıştır. Bu format alfasayısal 7‐bit ASCII kodlarının aktarıldığı çoğu terminallerde kullanılmaktadır. BAŞLA'dan önceki sabit bir yüksek düzeyli sinyal işaret veya atıl zaman diye tanınır. BAŞLA işareti görüldüğünde, atıl zamandan sonra gelen bir mantıksal 0 BAŞLAT'ı işaret eder. Bundan sonra gelen 7‐
bit gerçek aktarılacak veriyi temsil eder. Verinin alıcıya girecek ilk tarafı LSB, son tarafı MSB bitleridir. Eşzamansız seri veri aktarımında veriler sıralı ve bir veri kelimesi ile diğeri arasında belirli bir zaman farkı olmadan gönderilir. Aktarılacak verilerin arasında sadece başla, eşlik ve dur gibi kontrol bitleri mevcuttur. Alıcı cihaza gönderilecek gerçek bilgi veri bitlerinin olduğu alandır. Aktarılan her kelimenin veri bitleri BASLA ve DUR bitleri ile çerçevelenir. Alıcı bu çerçeveye göre bitlerden hangisinin veri bitleri olduğunu anlar. Alıcı negatife giden kenar gördüğünde bunun BAŞLA biti olduğunu anlar ve diğerlerini ona göre yorumlar. Böylece iki cihaz arasındaki anlaşma sağlanmış olur. Bilginin seri olarak aktarımında kullanılan oran Baud Rate olarak bilinir. Baud Rate, saniyede aktarılan bilgi bitlerinin sayısıdır. 1 bit zaman aralığı 1 bit anına (Tb) eşit olduğunda 1 bit aktarılır. Formül olarak : 7 . 1 . 1 . Seri Bağdaştırıcı ‐ ACIA Eşzamansız (Asenkron) veri aktarımında kullanılan bağdaştırıcıların başında tek bir çipten mütevekkil eleman kullanılır. Bu çipe UART (Genel Eşzamansız Alıcı Verici‐Universal Asenkronize Receiver Transmitter) denir. Diğer G/Ç bağdaştırıcı üreten firmalar ürünlerine ACIA (Eşzamansız İletişim Bağdaştırma Adaptörü‐Asenkronize Comminication Interface Adaptör) adını vermişlerdir, ikisi de aşağı yukarı aynı mânaya gelmektedir. Bu çipler, eşzamansız veri aktarımında kullanılan BAŞLA‐DUR formatının ele alınması için ve paralelden seriye ve seriden paralele çevirme işlemi için gerekli veri,durum ve kontrol kaydedicilerini barındırır. Bu tip elemanların bağlı olduğu seri port RS‐232 standart konnektörüne bağlanır. ACIA çipi RS‐232‐C tipi standardı da kullanabilmektedir. Şekilde görülen ACIA çipinin sol tarafındaki uçları mikroişlemci kontrol ve veri yoluna bağlı olup, kalan uçlar G/Ç cihazına bağlantı ve ACIA'da aktarım ve kabul işlemleri için gerekli saat sinyalleridir. Seri giriş ve seri çıkış için iki ayrı patika vardır. Veri RxD girişinden alınarak giriş kaydıran kaydedicisine aktarılır. Alıcı bölümdeki karakter, kontrol mantığı tarafından yorumlanarak sinyalin 1'den 0'a geçişiyle birlikte BAŞLA anı olduğu anlaşılır. Veri kelimesinin tümü (karakter) alındığında mikroişlemci tarafından okunana dek bekleyeceği alıcı veri kaydedicisi RX'te bekler. Eğer diğer bir karakter ulaşırsa, bu giriş kaydıran kaydedicisine alınabilir. Seri Giriş Kaydıran kaydedicisi (Seri Gir. KK.) ve RX kaydedicileri birlikle çifte tampon oluştururlar. Bunlar birbiri ardına gelen karakterlerin işlemci tarafından doğru bir biçimde okunmasını sağlarlar. Kaydıran kaydedicideki karakterin sola kaydırılması oranı veri aktarım saatiyle ilgilidir. Eğer karakter aktarım zamanı T saniye ise, bu karakter T saniye içinde RX kaydedicisinden alınabilir. Böylece bu kaydedicideki karakter işlemci tarafından T saniyede doğru olarak okunabilir. Çipteki veri gönderme bölümü de alıcı bölümünün hemen hemen aynısıdır. Bu bölümdeki çifte tamponu verici veri kaydedicisi TX ve çıkış kaydıran kaydedicisi Seri Çık. KK.'dır. Mikroişlemci tarafından G/Ç cihazına bir karakter gönderileceği zaman TX kaydedicisine gider. Kontrol devresi bu karaktere BASLA, eşlik ve DUR bitleri ekler ve karakter çıkış KK'sına konularak cihaza aktarılır. 7 . 2 . Paralel Bağdaştırma Paralel bir mikroişlemci ile seri G/Ç cihazını iletişim ortamına alan 6850 ACIA/UART karışık bir yapıya sahip çevre bağdaştırıcı bir elemandır. DAC'lar,. ADC'ler, paralel yazıcılar, klavyeler ve çok değişik test ve ölçme cihazları sisteme paralel bağlanmaktadır. Sistemin giriş/çıkışına bağlanan bir cihazla paralel bilgi alış‐verişinde bulunması seri iletişime göre çok daha hızlı olmaktadır. Bilgisayar sistemlerinin dış dünyaya bir G/Ç portu vasıtasıyla bağlanan bazı paralel bağdaştırıcı devrelerinin özellikleri ; Programlanabilme yeteneği : Portlara veya her bir porta ait bitler CPU tarafından giriş veya çıkış olarak programlanabilir. Bu işlev, işlemcinin doğrudan G/Ç bağdaştırıcısının kontrol kaydedicilerine 1 veya 0'lar yazmasıyla yapılır. Onaylama : Bir kaç kontrol sinyal hattı, işlemci ile G/Ç elemanı arasında kontrol bilgisini taşır. Zamanlayıcılar : Bazı paralel bağdaştırıcı devreler çip üzerinde zamanlayıcı bulundururlar. Bu zamanlayıcılar sistem saat frekansından (Q2) çalışırlar ve değişik modlarda işlemci tarafından programlanabilirler. Kesme Kontrolü : G/Ç portuna bağlanan cihazların kesme yeteneklerini kontrol etmede kullanılır. 7 . 2 . 1 . 65XX Paralel Bağdaştırma Adaptörleri 65XX ailesinde iki tip genel amaçlı G/Ç cihazı vardır. Bunlar, G/Ç bağdaştırma adaptörü ve bellek‐G/Ç‐
zamanlayıcı birleşimli cihazlardır. G/Ç bağdaştırma adaptörlerinden ikisi olan Çevre Bağdaştırma Adaptörü(Peripheral Interface Adaptor ‐ PIA) ve Çok yönlü Bağdaştırma Adaptörü (Versatile Interface Adaptor ‐ VlA) en çok kullanılanıdır. 6502 mikroişlemcili sistemlerde kullanılan belli başlı bağdaştırıcı cihazlar şunlardır: 6521 PIA : PIA iki adet 8‐bitlik çift yönlü G/Ç portuna ve dört adet çevre birim kontrol/kesme hattına sahiptir. 8'er bitlik iki paralel portun giriş veya çıkısı olarak seçilmesi program kontrolü altında yapılır. Portlardan birisi A ile diğeri B ile ifade edilir. Her bölüme ait üçer adet dahili kaydedici mevcuttur. 6522 VIA: VIA, PIA'nın özelliklerini üstünde taşırken artı olarak iki adet 16‐bitlik programlanabilen süreli zamanlayıcı/sayıcı ve veriyi seriden paralele ve paralelden seriye çeviren bir dönüştürücü vardır. Yine 6502 mikroişlemcili sistemlerde kullanılan dört çeşit bellek‐G/Ç‐zamanlayıcı cihazlar vardır. Bunlar; 6530 ROM‐RAM‐G/Ç‐TIMER (RRIOT) : İçerisinde RAM ve ROM bellek, G/Ç sistemi ve zamanlayıcı bulunduran bu cihazda, 1024x8‐bit ROM, 64x8‐bit statik RAM bellek, iki adet 8‐bit çift yönlü G/Ç portu ve bir adet 8‐bitlik süreli zamanlayıcı mevcuttur. 6531 ROM‐RAM‐G/Ç COUNTER (RRIOC) : Bu bağdaştırıcıda 1024X8'lik ROM, 128X8'lik statik RAM, 8‐
bitlik bir seri kanal iki çift yönlü G/Ç port ve bir 16‐bitlik sayıcı/zamanlayıcı mevcuttur. 6532 RAM‐G/Ç‐TIMER (RIOT) : İçerisinde bir adet 128X8 statik RAM, iki adet çift yönlü G/Ç portu ve bir adet süreli zamanlayıcı vardır. 6534 ROM‐G/Ç‐COUISTER (RIOC) : Bu cihazda bir adet 4096X8'lik ROM, bir 8‐bit seri kanal, iki çift yönlü G/Ç kanalı ve birde içerisinde sonuç sayıcı modu, darbe generatörü ve süreli zamanlayıcı bulunan 16‐bitlik sayıcı/mandal bulunur. Eğer 6502'li sistem kurmak gerekirse, ortada Rockwell, Synertek veya MOS Technology firmalarınca ürettien bol çevre birim kontrol elemanları da mevcuttur. Bu çiplerin belli başlıları ve kontrol ettiği cihazlar şunlardır; 6541 Programlanabilir klavye/Display denetleyicisi 6545 CRT (Katot Ray Tüp) denetleyicisi 6551 Eşzamansız iletişim bağdaştırma adaptörü (ACIA) 6591 Floppy disk denetleyicisi 6592 Yazıcı denetleyicisi 7 . 2 . 2 . 6520 Çevre Bağdaştırma Adaptörü (PIA) 6502 mikroişlemcili sistemlerde kullanılan en popüler paralel G/Ç bağdaştırıcılarından birisi 6520 PIA çipidir. 6520 PIA'sı mikroişlemci ile G/Ç portlarına bağlanan yazıcı, klavye, anahtar grupları ve değişik şekillerdeki çevre cihazlarının uyumluluğunu sağlar. PIA ile mikroişlemci arasındaki iletişim sistem hatları olan veri, adres ve kontrol yollan üzerinden yapılır ve PIA ile çevre birimi arasında iletişim 8‐
bitlik iki A ve B portları üzerinden sağlanır. Her porta ait iki kontrol hattı vardır, bunlardan birisi PlA'ya çevre biriminin durumunu bildiren giriş hattı, diğeri giriş hattı veya çok modlu çıkış hattı olarak seçilebilir. Çipin mikro işlemci tarafında şu devre ve bunlara bağlı uçlar vardır ; Veri yolu Tamponu: Verinin işlemciden dışarıya veya dışardan işlemciye aktarılması sırasında veri yoluna alınmadan önceki kısa süreli bekletildiği yerdir. Veri Giriş Kaydedicisi : Mikroişlemciden gelen verinin Q2 saat darbesi sırasında PIA'da bulunan altı adreslenebilir kaydediciden birisine gönderildiğinde ilk tutulduğu yerdir. Çip Seçme ve R/W Kontrol Mantığı : Mikroişlemciden gelen adres ve kontrol bilgisinin kabul edildiği devredir. Çift yönlü A ve B Portlarında bulunan uçlar şunlardır: Kontrol Kaydedicisi (CRA‐CRB): PlA'nın içerisindeki diğer kaydedicilerin seçilmesi gibi mantıksal bağlantıların seçilmesinde ve portun kesme durumlarını tutar. PIA hazırlığında önce bu kaydedici ve sonra diğerleri kurulur. Veri Yönlendirme Kaydedicisi (DDRA‐DDRB) : Bu kaydediciye işlemci tarafından gönderilen bilgilere göre bulunduğu portun ya giriş ya da çıkış olarak yönlendirilmesi sağlanır. 8‐bitlik bu kaydedicideki bir bit mahalli eğer 1 içeriyorsa, o mahalle bağlı olan port çıkış olarak, eğer 0 içeriyorsa giriş olarak hazırlanmış olur. Çevre Birimi Çıkış Kaydedicisi (ORA‐ORB) : Mikroişlemciden çevre birimine veya tersi durumunda aktarımı yapılacak verinin tutulma yeridir. Çevre Birimi Bağdaştırma Tamponu : G/Ç portlarının çevre birimi ile irtibat kurduğu devredir. Kontrol Hatları (CA1, CA2‐CB1, CB2) : Kontrol kaydedicisinin 0, 1, 3, 4 ve 5. bitleri ile kurulur ve doğrudan kesme faaliyetleri ile ilgilidir. 7 . 2 . 2 . 1 . PIA Kaydedicilerinin Adreslenmesi 6520 PIA'sı içerisinde altı adet değişik işlevlere sahip kaydedici vardır. Bu kaydedicilerden CRA ve CRB portun kontrolünü, DDRA ve DDRB verinin yönlendirilmesini sağlarlar. ORA ve ORB kaydedicileri port giriş ve çıkışının tamponlanmasından sorumludurlar. Bu iki kaydedicinin tümüne bellek haritasında tasarım tekniği ile ilgili olarak yer ayrılmamış olup, bunlara sadece dört adet adres alanı ayrılmıştır. PIA'dan sorumlu kontrol kaydedicileri CRA için 0401, CRB için 0403 adresleri ayrılırken diğer kaydedici çiftlerine DDRA/ORA için 0400, DDRB/ORB için 0402 adresten ayrılmıştır. PIA içerisindeki kaydedicilerin seçilmesi ve adres paylaşımının hangisinde olduğu kontrol kaydedicisinin 1. bitine bağlıdır. Şekil ‐ a) PIA kaydedicilerinin bellek haritasındaki yeri ‐ b) kaydedici blokları Adres hatlarından A0 ve A1, PIA'nın RS0 ve RS1 girişine verilir. Adresler 040X ile tanımlandığından buradaki adres bilgisinin LSB tarafındaki (A0 ve A1) X'in değişimi ile kaydediciler seçilebilir. Tablo ‐ Dahili PIA kaydedicilerinin adreslenmesi 6520 PIA içerisindeki kaydedicilerle A portunun giriş ve B portunun çıkış olarak nasıl kurulduğu bir programla adım adım açıklanacak olursa ; 1 . Bir PIA portlarından giriş veya çıkış, yapılacağı zaman daha önceki program artıklarından kalan bilgilerin silinmesi ve 0 konumunda başlanması için bütün dahili kaydediciler temizlenmelidir. 6520 PIA içerisindeki kaydedicilerle A portunun giriş ve B portunun çıkış olarak nasıl kurulduğu bir programla adım adım açıklanacak olursa ; 1 . Bir PIA portlarından giriş veya çıkış, yapılacağı zaman daha önceki program artıklarından kalan bilgilerin silinmesi ve 0 konumunda başlanması için bütün dahili kaydediciler temizlenmelidir. Yukarıdaki programda, önce Akümülatöre 0 yüklendi ve buradan da ilgili kaydedicilere kopyalandı Akümülatördeki sıfırın CRA [0401] ve CRB [0403]'ye kopyalanmasının amacı, sadece 2. bitlerini 0 yaparak DDRA ve DDRB'nin seçilmesi içindir. Eğer Kontrol Kaydedicisinin 2. biti 1 yapılırsa, ORA veya ORB doğrudan seçileceğinden ve DDRA ve DDRB'de önceden kalan hangi bitler varsa ona göre giriş veya çıkış olarak talebin dışında bir kurulum gerçekleşmiş olacaktı. Kurulumda önce CRA ve CRB'nin 2. bitleri ile DDRA ve DDRB kaydedicileri seçilir ve bu yön kaydedicilerinin içerisine konulan 1 veya 0'lar ilgili portlardan hangi hatların giriş ve hangi hatların çıkış olarak seçileceğini gösterir. Şekil‐Kontrol kaydedicisinin 2. biti ile DDRX/ORX çiftinin seçilmesi Programda DDRA içerisine 0 atıldığından A portunun bütün hatları (PA0‐PA7) giriş olarak seçilmiş oldu. Aşağıdaki şekilde bu durum gürülmektedir. Şekil ‐ A portunun giriş olarak seçilmesi Şekil ‐ B portunun çıkış olarak seçilmesi 2 . DDRA kaydedicisine 00000000B yüklenerek A portu giriş olarak seçildi, eğer bu port çıkış olarak seçilecek olsaydı içerisine 11111111B konulması gerekiyordu. B portunun çıkış olarak seçilmesi için [0402] adresine FFH verisi yüklemek gerekeceğinden önce FFH verisi A'ya yüklenir. A'danda DDRB [0402]'ye aktarılır. 3 . Çevre Birim Çıkış Kaydedicisi ORA ve ORB'nin seçilebilmesi için Kontrol Kaydedicileri CRA ve CRB'nin 2. bitlerinin 1 yapılması gereklidir. A portunun giriş ve B portunun çıkış olarak programlanması yukarıdaki şekilde yapıldıktan sonra, portlar istendiği durumlarda tek tek ele alınarak 8‐bitten bazıları giriş ve bazıları da çıkış, olarak programlanabilir. Bunu gerçekleştirmek için DDRX kaydedicilerinin uygun hücrelerine uygun bitler yerleştirilmelidir. Yukarıdaki Program parçalarının tümü aşağıda verilmiştir. LDA
STA
STA
STA
LDA
STA
LDA
STA
STA
#00
$0401
$0403
$0400
#$FF
$0402
#04
$0401
$0403
7 . 2 . 2 . 2 . PIA Kontrol Kaydedicisi PIA'daki Kontrol Kaydedicisindeki b2 bitinin sadece DDRX veri yönlendirme kaydedicisinin seçiminde kullanıldığı görüldü. b2 bitinden başka bu kaydedicide çok önemli görevler üstlenen bitler vardır. Kontrol Kaydedicisine ait bitlerin işlevleri b2'nin dışında kesme ile ilgilidir. Sistemin giriş/çıkış portuna bağlanan çevre birimlerden gelen kesmeler CA1 ve CA2 uçları tarafından alınarak veya bu uçlardan birisiyle çevre birimine gönderilerek değerlendirilir. Şekil ‐ PIA kontrol kaydedicisinin organizasyonu 0. Bit: CA1 (CB1) kesme talebinin yetkilendirilip yetkilendirilmediğini gösteren bittir. Eğer 0 ise kontrol kaydedicisinin 7. Bitinden kesme yetkisi vermez, 1 ise kesme yetkisi verir. 1. Bit: Kesme bayrağı IRQA1 (IRQB1)'i (7. Bit) set etmek için aktif CA1 (CB1) geçişini belirler. 1. bit 0 ise, IRQA1 (IROB1), CA1 (CB)'deki yüksekten düşüğe setlenir. 1. bit=1 ise, düşükten yükseğe setlenir. 5. 4. ve 3. Bitler: CA2 (CB2) kontrol hatlarının giriş veya çıkış olarak seçilmesini sağlar. 5. bitin değerine göre, 0 olduğunda PIA'ya giriş, 1 olduğunda çevre birimine çıkış olarak seçilir. Eğer CA2 (CB2) çıkış olarak konumlanırsa (5. Bit=1), 3. ve 4. Bitlerin kombinasyonu dört farklı modda işlev kazanır. Bunlar, çevre birimine onaylama bilgisi, sayım veya kaydırma için bir çevrimlik darbe, düşük düzeyli sinyal veya yüksek düzeyli bir sinyal olabilir. 6. Bit: 7. Bit' deki durumun benzeri olup, sadece CA2 (CB2) kontrol hattndaki aktif bir geçişle setlenir. 7. Bit: IRQA1 (IRQB1) durumunu gösteren bu bit, bir kesme durum bayrağı olup, CA1 (CB1) kontrol hattındaki aktif bir geçişle setlenir ve eğer CA1 (CB1) giriş olarak kurulursa, çıkış kaydedicileri (Çevre Birimi Bağdaştırma Tamponları) tarafından silinir.( Tabloyu göster. ) Şekil ‐ PIA' nın A portunun onaylama işlemi A portu giriş, B portu çıkış olarak tanımlanırken, onaylama ve darbe çıkış modu portlar arasında değişir. Onaylama modu, mikroişlemci tarafından işletilen programın çevre birimiyle eşzamanlı bir şekilde çalışması için kullanılır. Giriş portu A'daki CA1, mikroişlemciye veri hazır sinyal göndericisi gibi davranırken CA2, çevre birimine veri alınmadı sinyal göndericisi gibi davranır. İşlemci çevre biriminden veri okuduğunda, "veri alınmadı" (CA2) silinir. Bu sinyal çevre biriminin, İşlemcinin bir sonraki veriyi almak için hazır olduğunu bildirmek için dikkatinin çekilmesinde gereklidir. Çıkış portu B'deki CB1, mikroişlemciye çevre birimi hazır sinyal göndericisi gibi davranırken CB2, çevre birimine veri hazır değil sinyal göndericisi gibi davranır. Mikroişlemci PIA'ya bir veri yazdığı zaman "veri hazır değil" temizlenir. Bu işlem çevre birimine veri hazır demektir. Düzey çıkış modları, CA2 ve CB2'yi kullanarak, sisteme bağlı çevre birimi isteğe bağlı uzunlukta aktif yüksek veya aktif düşük darbesi temin eder. Bu modlar, kaydedicilerin yüklenmesi, cihazların çalıştırılıp kapanması veya çalışma modlarının kontrolünde kullanılır. PIA' nın A portundaki onaylama yordamı şekilde görülmekledir. 7 . 2 . 2 . 3 . PIA' nın Kurulması Çevre Birimiyle ilelişim kurulmak istendiğinde önce bağdaştırma cihazı kurulmalı ve daha sonra ana program çalıştırılmalıdır. Bu kurulum aşaması şu şekilde yapılır: * A portu ve B portu giriş olacak, * Döt kesme bayrağının (IRQA1, IRQA2, IRQB1 ve IRQB2) her biri giriş olarak, ilgili kesme girişlerinin (CA1, CA2, CB1 ve CB2) yüksekten düşüğe geçişlerinde setlenecek, * IRQA ve IRQB kesme talepleri yetkisiz olacak, * Bu sırada adreslenebilir dört kaydedici (A Kontlrol Kaydedicisi, A Veri Yönü Kaydedicisi, B Kontrol Kaydedicisi ve B Veri Yönü Kaydedicisi) seçilecektir. DDRA ve DDRB veri yönü kaydedicilere 1 yüklenirse bağlı bulunduğu portun (hattı) çıkış, 0 yüklenirse bağlı bulunduğu portun (hattı) giriş olarak kurulmasını sağlar. 1. A portunun giriş olarak ve CA1'e yüksekten düşüğe koyarak IRQA ucundan kesme talebi üretmek için algıdaki kurulum yapılmalıdır ; 2. A portu giriş, CA1' deki yüksekten düşüğe geçiş CA2' ye bir sonraki okuma işleminde çevre birimine bir çevrimlik darbe çıkmasına imkân vermelidir. LDA ORA komutu, Kontral Kaydedicinin 2 Bitinin 1 olmasından sonra A Çevre Birimi Bağdaştırma Tamponu'ndan okuma yapar. 3. A portu giriş, CA1'deki yüksekten düşüğe geçiş CA2'yi onay giriş bilgi strobu olarak yükseğe setlesin. LDA
STA
#%00100101
CRA
; CA2' yi okuma onayı ve IRQA ile negatif
; geçişi seç
CA2'deki onaylama bilgisi, CA1'in negatif geçişiyle yükseğe gider ve LDA ORA komutuyla okunana kadar öyle kalır.A portunu giriş olarak seçip bazı örnekler yaptıktan sonra şimdi de B portunu çıkış olarak kuran örnekler yapılırsa: 1. B portu çıkış, CBl'deki düşükten yükseğe geçiş CB2'inin bir sonraki yaz işleminde çevre birimine bir çevrimlik darbe çıkışı göndermesine yetki versin. LDA
STA
LDA
STA
STA
#$FF
DDRB
#%00101111
CRA
ORB
; Bütün hatlar çıkış olsun
; CB2 darbe çıkışı ve IRQB ile pozitif geçişi seç
; Bir çevrimlikveri hazır yazımı
2. B portu çıkış, CB1'deki düşükten yükseğe geçiş, CB2'nin onay çıkış talep strobu olarak yükseğe sellenmesini sağlasın LDA #$FF
STA DDRB
; Bütün hatlar çıkış olarak seçildi
LDA #%00100111 ; Yaz onaylı CB2 ve IRQB ile pozitif geçiş seçimi
STA CRB
CBl'deki onay sinyali CB1 'in pozitif geçişiyle yükseğe gider ve yazma komutu yapılana dek öyle kalır. STA
ORB
3. B portu çıkış, CB1' deki düşükten yükseğe geçiş, CB2' yi yüksek yapsın. LDA
STA
LDA
CRB
#$FF
DDRB
#%00111111
; CB2' deki düzy çıkışı ve IRQB ile pozitif geçiş STA
; seçilir
A portundaki çevre biriminden işlemciye bilgi almak için yükleme komutları LDA ORA, LDX ORA ve LDY ORA yeterlidir. B portundaki çevre birimine bilgi çıkmak için depolama komutları STA ORB, STY ORB ve STX ORB kullanmak yeterlidir. Aynca kontrol bitlerinin (IRQA1, IRQA2, IRQB1 ve IRQB2) sorgulanmasını sağlayan komutlar vardır. BIT komutu bu kesmeleri kullanan 6. ve 7. Bitleri işlemci durum bitleri olan taşma (V) ve negatif (N) bayraklarına yükler. Mesela A portunu 7. Bitindeki çevre birimi hazır durumunu sorgulamak için aşağıdaki program parçası yeterlidir. SOR
BIT
BPL
; Çevre birimi hazır mı?
CRA
SOR
; Hayır. Öyleyse olana dek bekle
Bir yazmadan sonra PIA'nın durumı bitlerinin temizlenmesine örnek aşağıdadır. SOR
BIT
BPL
STA
LDA
CRA
SOR
ORA
ORA
; Evet, çevre birimine veri çık
; Sonra hazır bayrağını sil
7 . 3 . Basit Giriş/Çıkış Cihazları Şekil ‐ sekiz adet anahtar ve LED'in PIA'ya bağlanması Giriş/çıkış cihazları, bir bilgisayar sisteminde dahili elemanlarla harici elemanlar arasında uyum sağlayan bağdaştırıcılara örnek olarak, basit giriş cihazları olarak tek yollu anahtarlar ve çıkış cihazlan olarak LED'ler düşünülebilir. Anahtar devresıyle ilgili basit bir program yapılacak olursa; LDA
STA
LDA
#00
$0443
$0441
; A portunu giriş olarak seç
; Anahtar konumlarını IRA'
ya al
Anahtarlar A portunda bağlı iken B portuna sekiz adet LED bağlandığında bunlar basit çıkış elemanları olarak düşünülebilir. Normalde sıfıra çekilen her giriş hattı LED'lerin pozitif ucundaki +5V'dan beslenerek yanmasına sebep olur. LED' lerin kontrolü için bir program yazılırsa; LDA
STA
LDA
STA
#$FF
$0442
#%10101010
$0440
Örnek Program 11: A portu çıkışına paralel bağlı altı adet yedi parçalı gösterge üzerinde "E" harfinin sağdan sola doğru kaydırılması. Şekil ‐ "E" harfini göstergede sağa‐sola kaydıran program Şekilde"E" harfinin altı göstergede kaydırılmasını sağlayan program ilk önce "E" harfi hangi göstergede yakılacakça o göstergenin segment sürücüsü B portundan seçilir (LDA #01 ve STA ORB). Sonra seçilen bu göstergeye A portu vasıtasıyla "E" harfinin onaltılık tabandaki kodu gönderilir (LDA #$79 ve STA ORA). Bu göstergede "E" harfi ne kadar süre yanacaksa ona göre gecikme altyordamına dalınır. Geriye yapılması gereken, sonsuz bir döngü içerisinde veya altı göstergelik kaydırma içerisinde segment sürücüsünü (gösterge seçiciyi) ROL ORB komutuyla kaydırmaktır. Böylece "E" harfi sağdan başlamak üzere sola doğru kayarak gidecektir. Örnek Program 12: A portu çıkışına paralel bağlı altı adet yedi parçalı gösterge üzerinde "AS" harfinin sağdan sola doğru kaydırılması. Şekildeki programda ilk altı komut satırı A portunun kurulmasıyla ilgilidir. Sonraki üç satır segment sürücü seçiminin yapıldığı komutlardır. Daha sonra "A" harfine karşılık gelen 77H ve "S" harfine karşılık gelen 6DH verisi A portuna gönderilmektedir. Burada dikkat edilmesi gereken, X ve Y indis kaydedicilerin gecikme altyordamında kullanılmış olmasından dolayı daha önceki segment sürücü seçiminde indisçi olarak kullanılan X'in değerini her defasında değiştirmektedir. Bundun dolayı, seğment sürücü seçimindeki X'in değerinin kaybolmaması için yığına atılıp sonra tekrar çekilmesi gerekmektedir. Bu konunun amacı, mikroişlemcinin basit bir sistem kontrolünde nasıl kullanıldığını göstermektir. 
Author
Document
Category
Uncategorized
Views
0
File Size
1 621 KB
Tags
1/--pages
Report inappropriate content