Geri Git   ForumSinsi - 2006 Yılından Beri > Bilgisayar,Teknoloji & İnternet Dünyası > Yazılım & Donanım

Yeni Konu Gönder Yanıtla
 
Konu Araçları
bilgiler, hakkında, portlar, temel

Portlar Hakkında Temel Bilgiler

Eski 09-08-2012   #1
Prof. Dr. Sinsi
Varsayılan

Portlar Hakkında Temel Bilgiler



PORTLAR Hakkında Temel Bilgiler
PORTLAR Hakkında Temel Bilgiler

1 GİRİŞ ÇIKIŞ (I/O) SİSTEMİ

Bir bilgisayar sistemini oluşturan temel birleşenlerden giriş/çıkış birimlerinin işe koşulması; verilerin, fiziksel olarak bu birimlerden ana belleğe, ana bellekten de bu birimlere, hiçbir veri kaybı ve tutarsızlığa neden olunmadan aktarılması giriş/çıkış sıstemı kapsamında dtişünülen işlevler tarafından gerçekleştirilir Giriş/çıkış birimleri, verilerin, kullanıcı ile bilgisayar ortamı arasında aktarılmasına ya da bu ortamda saklanmasına yarayan birimlere verilen genel addır Bu bağlamda, terminal, yazıcı gibi giriş/çıkış birimleri veri aktarım; disk, mıknatıslı şerit gibi giriş/çıkış birimleri ise veri saklama (ikincil bellek) birimleridir
Fiziksel adresleri kütük yönetim kesinıince belirlenmiş giriş/çıkış öge içeriklerinin ana bellekten sürüctilere ya da sürücülerden ana belleğe aktanlmalan, çekirdek katmanda yer alan giriş/çıkış yordamları tarafından gerçekleştirilir Bu yordamlar ve ilgili özel düzeneklerin oluşturduğu bütün, giriş/çıkış sistemi olarak adlandırılır

Giriş/çıkış birimi olarak terminal birimi; ekran ve klavyeden oluşan terminal sürücü ile bu sürücüye ilişkin arabirim çiftini tanımlar Bunun gibi disk birimi, dönen plakalar ve ilgili elektronik aksamın yer aldığı disk sürücü ile ilgili arabiriminden oluşur Ana işlem birimi ve ana bellek ikilisinin veriler üzerinde istenen işlemleri gerçekleştirebilmesi, bu yerlerin, önce (dış) kullanıcı ortammdan ana belleğe aktarılmasını gerektirir
Dış ortamdan ana belleğe aktarılan veriler, giriş/çıkış sürücüleri üzerinde saklanan ya da bu sürücüler aracılığıyla, kullanıcılar tarafından sisteme girilen verilerdir Verilerin sürücülerden ana belleğe, ana bellekten sürücülere aktarılabilmesi için bu sürücülerin denetlenmesi gereklidir Suni cülerin denetlenmesi arabirimlerinin programlanmasıyla gerçekleşir Arabirimlerin programlanması, giriş/çıkışların programlanması kapsamında ele alınır
İzleyen kesimde, giriş/çıkışlann programlanmasıyla ilgili temel yaldaşımlar açildanacaktır Once giriş/çıkış arabirinılerinin yapısal özellilderi incelenecektir Bunun sonrasmda giriş/çıkışlann programlanmasında kullanılan yöntemler, bu yöntemlerin gerektirdiği kimi özgün donanmı düzenekleriyle birlikte verilecektir Bunun sonrasında, zaman uyumsuz biçimde gelişen giriş/çıkış sistemlerini ele almaya olanak veren ana işlem birimi kesilme düzeneği, kesilmeli giriş/çıkış programlama yöntemiyle birlikte incelenecektir Sürücü - ana bellek arası veri aktarımlaıını ana işlem birimine başvurmadan yerine getirmeye yarayan doğrudan bellek erişim düzeneği ile doğrudan bellek erişim denetleme birimleri ve kanallar / giriş/çıkış işleyicileri incelenecektir

21 Giriş Çıkış (I/O) Komutları

Komut seti bilgiyi I/O birimine aktaran (OUT) ayrıca I/O biriminden okuyan (IN) tek tip komut içermektedir Komutlar (INS ve OUTS komutları 8086/8088 hariç bütün versiyonlarda bulunur) data dizilerinin bellek ve I/O birimleri arasında transferi için kullanılır IN ve OUT komutlarından ikisi de datayı I/O birimi mikroişlemci akümülatörleri (AL, AX ve EAX) arasında transfer eder I/O adresi DX registerinde 16 bit I/O adresi olarak veya opkodu hemen takibin byte olarak 8 bit I/O adresi şeklinde depolanır
8 bitlik form komut ile depolandığından genellikle ROM'a depolanır- Intel bu formu sabitlenmiş adres olarak adlandırır DX'te bulunan 16 bit I/O adresi registere depolandığı için adres değiştirileb ilir INS ve OUTS komutlarının her ikisi de DX registerinde bulunan değişken I/O adresi kullanır
Ne zaman data IN ve OUT komutunu kullanarak transfer edilirse I/O adresi çoğunlukla port numarası olarak adlandırılır ve adres bus hattında görülür Port numarasını bellek adresinin dekod edilmesiyl e aynı yöntemle harici I/O arabirimi dekod eder 8 bit sabitlenmiş port numarası A15-A8=0000 0000 olacak şekilde A7-A0 adres bus hatlarında görülür Bu ilk 256 I/O port adresine (00H-FFH) hem sabit hem de değişken I/O komutları fakat 0100H-FFFFH arasınd aki her I/O adresine değişken I/O adresi ile erişilebilir demektir Pek çok özel görevli sistemde adresin sadece en sağdaki 8 biti dekod edilir PC'de 16 adres bus biti PC'lerde bulunan çok sayıda I/O için kullanılan 00XX-03XXH ile dekod edilir INS ve OUTS komutları DX registerini kullanarak I/O birimini adresler fakat IN ve OUT gibi datayı akümülatör ve I/O birimi arasında taşımaz Yerine bu komutlar datayı bellek ve I/O birimi ara sında iletir Bellek adresi INS komutu için ESI tarafında, OUTS komutu için DS:SI tarafında yerleştirilir Diğer dizi komutları gibi pointerlerin içerikleri özel olarak yönelme durum bayrağı (DF) tarafından azaltılır veya arttırılır INS ve OUTS'un he r ikisi de I/O ve bellek arasında birden fazla byte yada wordun transfer edilmesine müsaade eder REP sabiti ile sabitlenebilir
22 Giriş Çıkış (I/O) Portları

Giriş Çıkış portları CPU nun dış dünyala bağlantısını sağlarlar Kullanıcı CPU yardımıyla data girişi ve çıkışı yapabilmektedir
Her bir hata hattı dış bir elemana bağlanır Eğer çıkış portundaysa çıkış hattı, giriş portundaysa giriş hattına ayrılırlar
Programlanabilir I/O portları giriş çıkış portlarını birleştirmektedir Mesela PIO seri portları D0 – D3 data hattını giriş hattı D4 – D7 hattını çıkış hattı olarak birlikte kullanır
PIO lar imalat gereği hafızada bulunurlar Bu hafızalar RAM, ROM ve EPROM lardır Bu araçlar sistem kullanıcısı için çok yönlüdür Data transfer oranı çok yüksektir Birkaç saniyede işlemleri sıralar Bu arada işlemci sitemi kontroş eder ve 15 milyon işlem yürütür
Mikroişlemci hafıza ev I/O transferi için genel adres hattı kullanılır Bu demek oluyor ki hafıza ve I/O transferi ayırt edilmelidir
Bu işlem için üç yöntem kullanılımkatadır:[*]Isolated I/O (ayrılmış I/O)[*]Memory-Mapped I/O (I/O nun hafıza adresi)[*]Handshaking 31 ISOLATED I/O

Intel mikroişlemci temelli sistemlerde kullanılan en temel I/O transfer tekniğidir İzole edilmiş terimi ayrı I/O adres uzayında bulunan bellek sisteminden I/O yerlerinin nasıl izole edildiğini anlatır İzole edilmiş I/O birimi için (bunlar port olarak adlandırılır) bellekten ayrıdırlar Bunun sonucu olarak kullanıcı I/O birimi için bu boşluğun hiçbirini kullanmayarak belleğin tamamı için genişletebilir I/O uzayı için ayrı kontrol sinyalleri I/O okuma (IORC) ve ya I/O yazma (IOWC) işlemlerinin gösterilmesini sağlamaktadır Bu sinyaller I/O elemanını seçmekte kullanılan adres bus üzerinde I/O port adresini gösterir PC’ler izole edilmiş I/O portları çevresel elemanların kontrolünde kullanılır Kural olarak, 8 bit port adresi zamanlama ve keyboard arabirimi gibi sistem üzerinde bulunana kartlara erişmek için ve 16 bit port ise video ve disk sürücü sistemlerinde olduğu gibi seri ve paralel portlara erişmek için kullanılır
Isolated I/O nun düzenlenmiş hali 11 şeklinde gösterilmiştir Mantıksal sinyal I/O okuma kontrol hattı olduğunda giriş portu, I/O yazma hattında olduğunda çıkış portu seçilir Her iki portda DS2 hattına uygulanan sinyal tarafından port adresleri saptanır
Bu modelde I/O işlemleri isolated I/O adreslenmesi olarak adlandırılır Çünkü sinyal I/O araçının araç seçim pinine uygulanma işi ayrılmıştır Hafızayı seçmek için kullanılmış sinyal ayrı bir formdur Bu demek oluyor ki giriç çıkış araçları için MR ve MW yerine I/OR ve I/OW kullanılır Bu aynı zamanda akümülatör I/O olarakta bilinir ki yalnızca girişle akümülatör ve akümülatörle çıkış arasında data transfer edebilir I/O portları ve diğer yazmaçlar arasındaki data transferi için CPU içindeki akümülatör akümülatör I/O yu kullanmasına imkan vernez
Okuyucunun şekil 11 deki I/O port adresinin çıkarma metodu diıkkat: IC üzerindeli DS’ kontrol hattına sinyal çıkarmak için kullanılan data adresi port adresini özelleştirir Tek adres hattı her I/O port üzerindeki DS’ pini bağlana kadar okuyucu not eder, bu arada adres çözme işlemi bitmemiştir Hat adresi I/O chipi kullanıldıktan sonra görülür Bu da programcı için program yazarken bütük sorunların çıkmasına neden olur
Her giriş portu adresiyle verilir ve not edilir Bu adreste uygun çıkış port ile aynı adres vardır D2 pin portuna bağlanmış adres hattı tarafından port adresi önceden ayarlanmıştır Her iki port görünüşte aynı adresi kullanmaktadır Bu sorunu gidermek için giriş portu I/OR sinyali, çıkış portu I/OW sinyali tarafından seçilmektedir
Giriç Çıkış portları ibi byte lık direktiflerdir Sonuç olarak ikinci byte yalnızca adreslemek için kullanılır Bundan dolayı I/O portlarının 00-16 dan FF-16 ya kadar sıralı adreslere sahip olmalıdır Bu adresler A0-A7 adres bus hattı kullanarak seçilir
Eğer data hattı A0-A7 kapsarsa tam çözülmüş olur Böylece 256 giriş portu ve 256 çıkış portu seçilmiş olur Şekil 32 de çalışan yüksek chip seçiciler gösterilmiştir
Kullanıcı G1 NOR kapısında girişe gelen sinyaller düşük çıkış sinyalleri yüksek olmalıdır
Şekil 32 deki adres çözüm metodu olarak bilinen giriş kapıları her I/O adresi için kullanılır
Bu sınırlamalara galip gelen yöntem IC çözücüler tarafından kullanılmıştır(Şekil 33)
Şekildeki çözücü çıkış sinyali olarak sekiz düşük aktivite üretilmiştir Eğer yüksek aktivite sinyaline gereksinme duyulursa, uygun çözücü çıkış ve I/O port üzerindeki araç seçim pini arasında bir çeviriciye ihtiyaç vardır

311 Isolated I/O nun Özellikleri

Birçok işlemci kullanıcıya I/O işlemleriyle hafıza okuma/yazma işlemlerinin ayrımına izin veren kontrol sinyali sağlamaktadır Bu grup içerisine İntel 8086,80286,80386,80486 ve Pentium ve 8085, Zileg Z80 vb girmektedir
312 Isolated I/O nun avantajları[*]I/O ve hafıza sistemi birbirinden ayrılır[*]I/O port adresleri kolaylaştırılır ve basit çözümleyicilere yol gösterir[*]I/O ve hafıza transferi birbirinden ayrıldığından beri programlar kolayca yorumlanmaktadır 313 Isolated I/O nun dezavantajları

Data transferi akümülatörden olmalıdır Bu datalar kendi içerisine veya yardımcı yazmaçlara transfer edilemez
32 MEMORY – MAPPED I/O

İzole edilmiş I/O’dan farklı olarak memory-mapped I/O IN, INS, OUT ve OUTS komutlarını kullanmaz Yerine mikroişlemci ile bellek arasında data transferi yapan bütün komutları kullanılır Memory-mapped I/ O, bellek haritasında bir bellek yeri olarak çalışır Memory-mapped I/O’nun en temel avantajı bütün bellek transfer komutları I/O birimine ulaşmak için kullanabilmektir Bu bellek uygulamalarının sayısını azaltmaktadır
Nerde memory mapped I/O kullanılırsa orada I/O chip seçiminde hafıza okuma strobunu (MR) veya yazma strobunu (MW) kullanır Şöyle diyebiliriz ki, her çıkış portu hafızadaki konumuna dikkatle bakar ve sistem hafıza haritasında bir alan ayırır Yani mikroişlemciler I/O portlarını adresler Isolated I/O kullanan işlemciler memory mapped I/O yuda kullanmaktadır
Şekil 34 de memory mapped I/O nun blok diyagramı gösterilmiştir Hafıza okuyucu strobu tarafından aktif hale getirilen giriş portuunu DS1 pinin ve çıkış portu üzerindeki DS1 hafıza yazma strobu tarafından güçlendirilir ve okuyucu tarafından not edilir DS2 seçim sinyali A9, A10 ,G1 ve G2 adres hatları tarafından sürülür
İkinci sinyal yüksek AND MR strobu düşük olunca giriş portu kullanımdadır A9, A10 sinyali yüksek ve MW strobu düşük olduğunda çıkış portu kullanımdadırç
İki adres hattı adres çözüm devresinde kullanıldığında chipler bir çok adrese sahiptir Bu adresler aşağıdaki 1 0 haricindeki her iki I/O adres kombinasyonlardan karar vermesidir
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

X X X X X X X X X X X X X X X X


0- F16 2,3,A,B16 0-F16 0-F16
Çünkü A0 dan A8 ve A11 den A15 adresleri kullanılmamıştır Ve mantıksal 0 ve ya 1 olabilir
Şekil 35 de memory map in 4 K lık bölümü gösterilmektedir Bu harita şekli maksimum 64 K ya kadar her 4K da tekrarlanmaktadır Demekki her giriş çıkış portları her 4 K da adreslandiğine göre 64 K da 16 kez tekrarlanacaktır

321 Memory Mapped I/O ların Avantajları [*]Hafızadaki data üzerindeki işlem yapılan her komut data formu ile I/O portlarının birleşiminde kullanılır[*]Giriş Çıkış komutlarını ayırmak gereksizdir[*]Sıralanmış adres Isolated I/O ile karşılaştırıldığında hazır vaziyettedir[*]Hafıza adres çözücü için kullanılan aynı gereçler tarafından I/O port adresleri çözülür 322 Memory Mapped I/O ların Dezavantajları[*]I/O portları hafıza haritasında bir yer işgal etmektedirler[*]Küçük ve basit sistemler için az uygundur[*]Program içerisinde hafızanın ve I/O data transferinin ayırt edilmesi oldukça zordur 33 HANDSHAKING

Pekçok I/O birimi bilgileri mikroişlemcilerden çok daha yavaş bir hızla kabul eder veya işletir Handshake veya tarama (polling) olarak adlandırılan diğer bir I/O kontrol metodu I/O birimi ile mikroişlemciyi senkronize eder Handshake işlemine ihtiyaç duyan örnek bir devre saniyade 100 karakter (CPS) yazan paralel yazıcıdır Dolayısıyla mikroişlemci ile printerın hızı eş yapılmalıdır Burada, data seri data bağlantıları olan D7-D0 vasıtasıyla taşınır BUSY printerin meşgul olduğunu gösterir STB^ yazma işlemi için printere dataları göndermekte kullanılan bir clock pulsidir
Yazıcı tarafından yazılacak olan ASCII datalar D7-D0 üzerinde bulunurlar ve puls STB^ ucuna uygulanır Strob sinyali yazılabilmesi için yazıcıya dataları gönderir Yazıcı dataları alır almaz, bilgileri yazmakla meşgul olduğunu gösteren BUSY pininde lojik 1 görülür Eğer printer meşgul ise, mikroişlemci bekler aksi halde printere diğer ASCII karakterleri gönderir Printerın interrogating (sorgulama) işlemi handshaking veya polling olarak adlandırılır Eğer sadece BUSY bayrağı yazıcının meşgul olmadığını gösteren lojik 0 durumunda ise Print işlem dizisi kodlanılan BL’nin içeriklerini veya ASCII’leri yazar
Data transfere hazır olduğu zamanki CPU teknolojisine verilen ada Handshaking denir Burda iki tür adlandırma vardır Bir giriş handshaking ‘i ve çıkış handshaking’i dir
Handshake sistemi şekil 16 da kullanıldığuı gibi üç port içermektedir Bunlardan ikisi (Giriş ve Çıkış portları) ayrı ayrı muamele görürler Bu portlar tek başlarına flip-flop olabilirler Peripheral ve CPY arasında bilgi taşımak için kalıcı portlara gereksinme vardır Programlanabilir I/O kullanılırsa basit bir porta gereksinme duyulur
Handshake girişi şekil 36 da gösterilmiştir Peripheral’ı şekilde analogtan dijitale cevirici (ADC) olarak düşünelim Miktarı tayin edilen sinyaller RAM de sıralanarak yerleştirilmiştir Isolated I/O portları 01, 02 ve 04 portlarını benimsemiştir
ADC aracı analog voltajı dijital voltaja çevirir fakat bu işlemin tamamlanması birkaç dakika almaktadır Başlangıçta işlem miktarı ADC nin çıkış port terminalinin QUANTISED SIGNAL 0 (sıfır)’ a resetlediğinde işlem devam etmektedir Bundan dolayı bu terminal analog giriş voltajı eşit binary değere kadar artar Zamanın belirli dönemlerinde CPU ya data ttansferi önerir Data hazır olduğunda CPU bilgilendirilir Sonrada CPU data okuma işlemini başlatır
Genel olarak işlem sırası:[*]Peripheral 02 giriş portundan DATA HAZIR sinyali CPU tarafından gönderilir Sinyal gelene kadar yazılım içerisinde kalır veya programın diğer bölümleri devam eder[*]CPU 01 giriş portundan QUANTISED SIGNAL’ni okur[*]CPU 04 veri yolundan INPUT ACKNOWLEDGE sinyalini gönderir ADC sonraki analogtan dijitale dönüştürme işlemini başlatmak INPUT ACKNOWLEDGE sinyalini kullanır Bu giriş handshake ‘i tamamlama işlemi peripharel ve CPU arasındadır Çıkış handshake şekil 17 de gösterilmiştir Peripheral teletype veya bir printer olabilir
Genel olarak işlem sırası:[*]CPU 04 çıkış portundan çıkış sinyalini gönderir[*]Peripheral datayı göndermeye hasır olunca, CPU tarafından okuma PERİPHERAL HAZIR sinyali 20 giriş portundan gönderilir[*]CPU datayı peripherala 10 çıkış portundan gönderilir Birinci adımda peripheral işlemini tamamlandığında tekrar denenebilir Çıkış handshake tamamlama işi peripheral ve CPU arasındadır 41 Hafızayı Kapsayan Programlanabilir I/O Portu

LSI chipi I/O portlarıyla birlikte hafızanın belli bölümü kapsanmaktadır Kullanıcı giriş çıkış hat portlarının yazılımla tanımlar Sistem dört giriş ve dört çıkış portuna gerksinim duyduğunda kullanılabilir Kullanıcı programında isteği doğrultusunda giriş ve çıkış portlarını kullanır Bundan başka bir çok araç 40 pin DIL paketi ima edilir Öyle ki bu iki bazen üç port aynı paket içerisinde kapsanmaktadır Dolayısıyla tek 40 pin DIL ‘i 16 programlanabilir I/O hattıyla birlikta küçük bir hafıza alanının kullanıcıya sağlar
Bu hafızalar RAM, ROM, EPROM’u kapsar
42 Programlanabilir I/O Protlarının Uygulaması
Programlanabilir I/O nun şekil 48 de basit bir blok diyagramı gösterilmektedir Basitleştirilmiştir ve iç yapısı gösterilmemiştir
A6 ve A0 adrs hattı CPU adres hattından giriş yapılır Amaç RAM içerisinde datayı 128 bytelık adresleyebişlmektir Kalan adres hatları (A15-A8) chip seçimi için kullanılır Şekil 18 de chip seçimi A8 düşük AND olduğunda ve A11 eşdeğerde yüksek olduğundqa olur
A9,A10,A12 ve A15 e kadar adres hatları kullanımadığında PIO nun adresleri aşağıdaki gibidir
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

X X X X 1 X X 0 X X X X X X X X


0- F16 8,A,C,E16 Hafıza adreslemesi için kullanılan
PIO chipinden seçilen her hangi bir adresdeki (X8XX, XAXX, XCXX, XEXX) X değerleri hexadecimal olarak sıralı bir şekilde 0 dan F e kadar değerler alır,
A7 adres hattı yüksek olduğunda RAM bölümü seçildiği, A7 adres hattı düşük olduğunda I/O bölümü seçildiği kullanıcı tarafından seçildiği gözlenir
5 8 ve 16 bit I/O portları
Şimdiye kadar bellek adresi dekod edilmesinden belki de daha kolay olan (çünkü bit sayısı farklı) I/O port adresinin dekod edilmesi anlatıldı Şimdi de mikroişlemci ile 8 veya 16 bit I/O birimi aras ında dataların nasıl transfer edildiğini anlatacağız 8 bit I/O için datanın transfer edilmesi 8086/80286 veya 80386SX’in I/O bankalarından birinde olur Bellekte olduğu gibi I/O sistemi de 2 tane 8 bit bellek bankası içerir Bu 80286 ve 80386SX’teki gibi 16 bit bellek sistemi için ayrı I/O banka vardır İki I/O bankı mevcut olduğu için her 8 bit I/O yazma işlemi fonksiyonlarını doğru şekilde yapmak için write strobuna ihtiyaç duyar I/O okuma, ayrı oku strıbuna gerek duymaz Çünkü bellekteki gibi mikroişlemci sadece bir byte okur Bu byte diğer byte ile birleştirilmiş veya ayrı tutulmuştur Okumanın problemlere neden olduğu tek zaman I/O biriminin okuma işlemini doğru bir şekilde yapmadığı zamandır I/OP birim inin yalnış bankadan okuma yaptığı durumlarda ayrı okuma sinyallerine ihtiyaç duyarız Şekil 9-10 40H ve 41H 8 bit I/O adresindeki iki farklı8 bit çıkış birimini içeren bir sistemi gösterm ektedir Çünkü bunlar 8 bitlik birimlerdir ve iki ayrı I/O yazma sinyali üretiriz Çünkü farklı I/O banklarında görünürler
6 Seri Data Aktarımı
Sekiz bitlik data sekiz data hattından geçirilmektedir Bu paralel data geçirilimi olarak bilinsede çoğu bilgisayar peripheral data aktarımı uzun uzun bir hat üzerinden seri on-off pulse’i olarak almaktadır Örnek olarak telefon hattı üzerinden dijital datanın aktarılmasıdır Bu da seri data aktarımı olarak bilinir Bu data aktarım modeli teletypeler, CRT bilgisayar terminalinde ve modemlerde görülmektedir
Seri data aktarımı ile Mikroişlemci arasındaki arayüzleme metodu CPU chip izerindeki adanmış giriş çıkış hatları kulllanılarak yapılır İntel Chiplerde SID (Serial Input Data) ve SOD (Serial Output Data) hatları vardır Konuşma dilinde bu teknolojiye data patlamsı denir Giriş ve çıkış hattından gelen komut dizisi dataya etki eder
Diğer taraftan popüler bir metodda adanmış donanım ile CPU nun kullanıldığı meteddur CPU bus sistemi tarafından kullanılan araçlar seri data girdi ve çıktılarla paralel datalar arsında dönüştürme için kullanılır Bu uygulama için en popüler yöntem UART (Universal Asynchronous Receiver / Transmitter) dir
UART yi tanımlamadan önce seri data sinyalinin taslağını çizmek gerekiyor[*]Başlangıç biti manmtıksal (0) sıfırdır[*]5 ten 8 kadar data biti 1 veya 0 dır[*]Parite kontrol biti 0 veya 1 olması data biti tarafından karar verilir[*]Sonlandırma biti mantıksal 1 dir Şu ana kadar bilgisayardaki I/O ların mimari olarak ve iç yapıları incelendi Şimdi bilgisayarda SERİ ve PARALEL portların özellikle tanıtılması ve kullanılmasına değineceğiz
7 SERİ PORT

71 Seri Portun Tanıtılması

Seri haberleşme uzun mesaferlerde bilgi transeri için kullanılır Çünkü paralel haberleşme için çok fazla kabloya gereksinme vardır Modemden veya diğer araçlardan seri data alımı paralele dönüştürülerek olur Bu demek oluyor ki Pc buslardan transfer edilebilir
Seri haberleşme araçları basitce Half-duplex ve Full-duplex olarak ikiye bölünürler Basit seri haberleşmelerde bilgi gönderme tek yönlüdür (Radya yanınları gibi) Half-duplex de data iki sistem arasında aynı yönde gönderilir Ama Full-duplex taşımada her sistem aynı anda datayı gönderebilir ve alabilir
Seri data aktarımında iki yol vardır Senkronize ve Asenkroniza (Eşzamanlı ve Eşzamansız) Senkronize data aktarımında data bir bloğa gönderilir Aktarıcı ve alıcı bir veya birden fazla özel karakter tarafından senkronize edilir
PC nin seri portları asenkronize araçlardır Bundan dolayı bu sistemden bahsedilecektir Asenkronize data aktarımı için bir bit ve bitmesi için 1 veya 2 bit e ihtiyaç vardır Başka bir senkronizeye gerek yoktur Başlangıç biti gönderildikten sonra data bitleri alıcıya gönderilir Data karakterleri genelde 7 ve 8 bitten meydana gelmektedir Taşıma konfigürasyonuna göre parite biti her data bitinden sonra gönderilir Data karakterlerinde hata olup olmadığının kontrol içinde son olarak 1 veya 2 bitiş biti gönderilir

72 Portun Tanıtılması

PC portları RS-232C standardına uygun haldedir Bu standart 1960 larda DTE (Data Terminal Equipment) ve DCE (Data Comminication Equipment) olarak tasarlandı
Bu standart özel 25 sinyal pininden oluşmaktadır DTA konnektörü erkek DCE konnektörü dişidir En çok kullanılan konnektörler DB 25 erkek olanıdır Fakat 25 pine her zaman ihtiyaç yoktur Bundan dolayı modern PC lerde DB9 erkek konnektörü kullanılmaktadır Bu konnektörlerden bir veya birden fazlası bilgisayarlarda kulanılmaktadır Yüksek mantık için voltaj seviyesi –3V ve –15V arsındadır Düşük mantık için voltaj seviyesi +3V ve +15V arasındadır Genel olarak +12V ve –12V değerleri arasındadır
Aşağıda genel olarak kullnılan sinyaller vardır:

/DTR (Data-Terminal-Ready) : PC modeme çalışır halde ve datayı göndermek için hazır olmasını belirtir

/DSR (Data-Set-Ready): PC modeme çalışır halde ve datayı almak ve tranfer etmek için hazır olmasını belirtir

/RTS (Request-To-Send): Data gönderilmeye hazır olduğunda PC ye gönderilen sinyaldir

/CD (Carrier-Detect): Modem bilgisayarı tabnıdığı zaman gönderdiği sinyaldir

/CTR (Clear-To-Send): Modem datayı göndermeye hazırdır PC datayı modeme göndermeye başlar

TxD : Modem PC den datayı alır

RxD : Modem PC ye datayı gönderir

Seri data adreslerinin paralele dönüştürme işlemine UART dendiğini söylemiştik Tipik bir PC UART ye örnek olarak İntel 8251A yı gösterebiliriz
IC senkronize veya asenkronize devrelerini programlayabilir PC sisteminin kontrol bus’ı öne sürüldüğünde chip seçimi girişe uygundur IC iki tane dahili adrese sahiptir (Data adresleri ve Kontrol adresleri) Kontrol adresleri CD girişiş yüksek olduğunda seçilir Data adresi CD girişi düşük olduğunda seçilir RESET sinyali IC yi reset eder RD düşük olunca bilgisayar kontrol veya data byte okunur WR aktifse PC bir byte yzar Her iki sinyalde sisteme aynı adla bağlanır
UART dört dahili yazmaç içermektedir
THR : Geçici çıkış yazmacı
TSR : Çkış yazmacı
RDR : Giriş yazmacı
RSR : Geçici giriş yazmacı
Her karakter taşınmaya başlandığında THR yazmacına depolanır UART başlangıç ve bitiş bitlerini ekler Sonta bütün bitleri (data,başlangıç ve bitiş) TSR ye kopyalar İşlemi bitirmek için TD sinyali tarafından bitler gönderilir
Her karakter RSR yazmacına depolanan RD hattı tarafından alınırlar Başlangıç ve bitiş bitleri elimine edilir ve UART bu karakterleri RDR ye yazar İşlemi bitirmek için karakter PC için okunur

73 Portun Adreslenmesi
Seri portları adreslemenin iki yolu vardır 14H BIOS ve 21H BIOS interrupları sayesinde olur
14H BIOS interrupt’ı seri portu programlaya bilmek için dört özelliği kullanır Her özellik AH yazmacına değer atamak için seçilir

14H in özellikleri:

00H : Seri portun başlangıcıdır ve data, başlangıç biti ve parite parametreleri bulunur
01H : Seri portuna karakter gönderir
02H : Seri portundan karakter okur
03H : Seri portundan durumu dönderir

21H ın özellikleri :

03H : COM1 Seri portundan karakter okur
04H : COM1 Seri portundan karakter yazar
40H : Bu genel çıkış özelliğidir Bütün dosyalar ve araçlar manuel olarak kullanılır Buffer dan özel araca byteların numarasını gönderir
//Program to communicate two PC s via serial port
//00H bios function (AL register)
//bits 7 6 5 Baud rate
// 0 0 0 110
// 0 0 1 150
// 0 1 0 300
// 0 1 1 600
// 1 0 0 1200
// 1 0 1 2400
// 1 1 0 4800
// 1 1 1 9600
//bits 4 3 Parity bits
// 0 0 no parity
// 0 1 odd parity
// 1 1 even
//bits 2 stop bits
// 0 1 stop bit
// 1 2 stop bit
//bits 1 0 Number of bits per data
// 1 0 7 data bits
// 1 1 8 data bits
//Register Dx 0->com1, 1->com2, 2->com3, 3->com4
//Configuration: 9600 bd,no parity,2 stop bits and 8 data bits
//AL register value is 1 1 1 0 0 1 1 1 -> 0xE7
#include <stdioh>
#include <processh>
#include <conioh>
#include <dosh>
#include <biosh>
#define TRUE 1
#define PARAM 0xA7
#define COM1 0
#define COM2 1
void init_port(void);
char state_port(void);
void send_byte(unsigned char);
unsigned char read_byte(void);
void keyb(void);
int tecla = 1;
void main ( void )
{
unsigned char read_com;
unsigned char read_kb;
clrscr();
init_port();
while(read_kb != 'c')
{
read_kb=getch();
send_byte(read_kb);
read_com=read_byte();
if(read_com!=0){printf("%c",read_com);}
}
}
void init_port()
{
union REGS regs;
regshah = 0x00;
regsxdx = COM2;
regshal = PARAM;
int86( 0x14, &regs, &regs);
}
//return the state of the port
char state_port()
{
union REGS regs;
regshah = 0x03;
regsxdx = COM2;
int86( 0x14, &regs, &regs);
if(regshah & 0x80) printf(" EXCEED TIME
");
if(regshah & 0x40) printf(" TSR EMPTY
");
if(regshah & 0x20) printf(" THR EMPTY
");
if(regshah & 0x10) printf(" INTERRUPTION
");
if(regshah & 0x08) printf(" THREAT ERROR
");
if(regshah & 0x04) printf(" PARITY ERROR
");
if(regshah & 0x02) printf(" OVERLOAD ERROR
");
return (regshah);
}
//Keyboard handle
void keyb()
{
union u_type{int a;char b[3];}keystroke;char inkey=0;
if(bioskey(1)==0) return;
keystrokea=bioskey(0);
inkey=keystrokeb[1];
switch (inkey)
{
case 1: keyb=0;
return; /*ESC*/
default: keyb=15;
return;
}
}
//Send a character to the serial port
void send_byte(unsigned char byte)
{
union REGS regs;
regshah = 0x01;
regsxdx = COM2;
regshal = byte;
int86( 0x14, &regs, &regs);
if( regshah & 0x80)
{
printf(" SENDING ERROR ");
exit(1);
}
}
//read a character from serial port
unsigned char read_byte()
{
int x,a;
union REGS regs;
if((estate_port() & 0x01))
{
regshah = 0x02;
regsxdx = COM2;
int86(0x14,&regs,&regs);
if(regshah & 0x80)
{
printf(" RECEIVING ERROR");
exit(1);
}
return(regshal);}
else
{
return(0); } }

8 PARALEL PORT

81 Portun Tanıtılması

Paralel portun standart sizaynı bilgisayarla yazıcı arasında bağlantı içindir CPU’dan yazıcıya data göndermek için kullanılır
Bu arayüz giriş çıkıl sinyallerini sürer Bu sinyalin amacı bilgisayara yazıcının durumunu ve kontrolünü sağlar Sekiz data biti bütün bilgileri saat pulseyle birlikte taşır
Paralel port 8 çıkış data biti, 5 giriş kontrol biti ve 5 çıkış kontrol bitinden meydana gelmektedir

Çıkışlar:

STROBE : Yazıcıya data biti okumaya hazır olduğunu belirtir Data hazır olduğunda Yüksek mantıksal seviyeye döner

INIT : Yazcıyı restler

SLCT IN : Yüksek mantıksal seviyeye döndüğünde yazıcıyı seçer

AUTO FD : Geri taşımanın takibindeki boş sayfayı yazıcıya belirtir

D0-D7 : Data bitleridir

Girişler:

ACK : Datanın doğru olarak alındığını CPU ya belirtir

BUSY : Bu hattı yazıcı hafızası dolduğu zaman koyar Bilgisayar fazla data gönderimini durdurur

SLCT : Bilgisayara yazıcının hazır olduğunu belirtir

ERROR : Hataları belirtir ve CPU daha fazla data gönderimini durdurur

PE : Yazıcıda kağıt olmadığını belirtir

Bütün bu sinyaller 25 pinlik konnektöre bağlanır Bütün bitler TTL mantıksal seviyeye sahiptir

82 Portun Adreslenmesi:

MS-DOS işletim sistemi LPT1,LPT2,LPT3 olarak üç port desteklemektedir Bu portları PC nin hafıza haritasında ayrılmış olarak bulabiliriz İlk önce LPT1 üzerinde çalışalım Her paralel port I/O haritasındaki üç adresi kullanırç LPT! İçin üç adres 378H, 379H ve 37AH dır

378H : Bu adreste CPU yazıcıya dataları göndermek için yazılır Çıkış portudur 8 data biti (D0-D7) çıkış portlarında görülmektedir Tablo 21 konnektörün hangi pini kullanıldığı görülmektedir

379H : Giriş portudur Bu sinyal, CPU yazıcının durumunu öğrenmek için kullanır Tablo 22 de bitlerin konumlarını listelenmiştir

37AH : Bu portu bilgisayar yazıcıyı kontrol etmek için sinyal gönderir Bundan dolayı çıkış portudur Tablo 23 de görülmektedir
Tablo 24 de portların durumları görülmektedir Bütün LPT portları aynı LPT! Deki gibi aynı şekilde çalışırlar

83 Portun Programlanması:

Program1:
#include <stdioh>
#include <dosh>
#include <conioh>
/********************************************/
/*This program set the parallel port outputs*/
/********************************************/
void main (void)
{
clrscr();
outportb(0x378,0xff);
outportb(0x37a,0xff);
getch();}

Paralel portun çıkış adresinden nasıl byteların gönderildiği gösterilmiştir Outportb( ); özelliği I/O portuna byte göndermek için parametrelerine port adresleri yazılır
İkinci parametrede gönderilecek bitin mikraının gösterir

Program 2:
#include <stdioh>
#include <dosh>
#include <conioh>
/*****************************************/
/*This function read parallel port inputs*/
/*****************************************/
int Read_Input()
{int Byte;
Byte=inportb(0x379);
return Byte;}
void main (void)
{int PP_Input;
clrscr();
PP_Input = Read_Input;
printf("%d",var);
getch();}
Paralel portun giriş adresinden nasıl byteların alındığını göstermektedir İntportb( ) ; özelliği I/O adresinden bilgisayara bilginin alınmadır

Alıntı Yaparak Cevapla
 
Üye olmanıza kesinlikle gerek yok !

Konuya yorum yazmak için sadece buraya tıklayınız.

Bu sitede 1 günde 10.000 kişiye sesinizi duyurma fırsatınız var.

IP adresleri kayıt altında tutulmaktadır. Aşağılama, hakaret, küfür vb. kötü içerikli mesaj yazan şahıslar IP adreslerinden tespit edilerek haklarında suç duyurusunda bulunulabilir.

« Önceki Konu   |   Sonraki Konu »


forumsinsi.com
Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ForumSinsi.com hakkında yapılacak tüm şikayetlerde ilgili adresimizle iletişime geçilmesi halinde kanunlar ve yönetmelikler çerçevesinde en geç 1 (Bir) Hafta içerisinde gereken işlemler yapılacaktır. İletişime geçmek için buraya tıklayınız.