|
Ana Sayfa | Kayıt ol | Yardım | Ortak Alan | Ajanda | Bugünkü Mesajlar | XML | RSS | |
06-09-2008, 13:00 | #1 | ||
ยŦยк Üyelik tarihi: Jan 2007
Mesajlar: 11.262
Tecrübe Puanı: 41 |
BİLGİSAYAR TABANLI VERİ TOPLAMA | PARALEL PORTLAR Paralel Portun Kullanım Amacı ve Üstünlükleri Bir bilgisayar tek başına bilgi toplama ve değerlendirmek için kullanılabilir. Örneğin herhangi bir cihazın veya cihazın bulunduğu ortamın sıcaklığı zamanın fonksiyonu olarak kaydedilmek istenebilir. Ancak algılayıcılardan elde edilen bilgi bir arayüz kartı ile işlendikten sonra bilgisayara iletilmesi gerekmektedir. Peki işlemci dışardan gelen bu ham bilgileri kimin aracılığı ile alacaktır? Seçeneklerden birisi paralel porttur, diğer alternatiflere de ilerleyen konularda değinilecektir. Paralel portun kullanımı bize ne gibi üstünlükler sunar? Günümüzde bilgisayarla bilgi iletişimi anakarta takılan PCI, AGP (ekran kartları için) ve SCSI kartları ile gerçekleştirilmektedir. Daha eski model kişisel bilgisayarlarda ISA olarak bilinen kartlar da kullanılmakta idi. Ancak bu tip kartlarla çalışmak beraberinde bir çok dezavantaj da getirmektedir. Bu dezavantajları sırasıyla açıklayalım: Bilgisayar anakartına ait yuvalara (slot) takılan kartların laboratuar ortamında sökülüp takılmaları oldukça büyük sorunlara neden olabilir. Hatta bazı durumlarda tüm bilgisayar sisteminin zarar görmesi olasıdır. Tüm bilgisayar anakartları eşit sayıda yuvaya sahip değildir ve üstelik dizüstü bilgisayarlarda bu tip kartların oturacağı bir yuva (PCMCIA hariç) söz konusu değildir.En çok öne çıkan üstünlükleri ise: <LI class=madde-imi-simge>Çoğu uygulamada basit ve ekonomik çözümler yeterli gelmekte ve bu yüzden tercih edilmektedirler. Paralel port giriş ve çıkışları TTL (5v-0v) seviyesinde olduğu için fazladan gerilim dönüştürme entegrelerine ihtiyaç duymadan çoğu elektronik sistemle haberleşebilir. Paralel port üstte açıklanan bazı dezavantajlardan dolayı aranan en iyi alternatiflerden birisidir. Paralel port tüm PC sistemlerde standarttır ve mevcuttur. Her ne kadar çeşitli seri arabirimlerin (USB, Firewire) yaygılaşmasıyla önemini biraz kaybetse de sahip olduğu basitlik ve ekonomiklik bu portun uzun süreler PC standardında mevcut olacağını göstermektedir. http://www.wekatronik.com/resimler2/pport1.jpg - Bir PC ve paralel portun PC üzerindeki konumu - Yukarıda bir PC kasasının arka plandan görüntüsü ve paralel portun kasa arkasındaki konumu gösterilmektedir. Şekilden görüldüğü gibi paralel port 25 adet dişi pine sahiptir ve DB-25F olarak adlandırılır. Bu porta takılacak cihazın yine 25 pine sahip olması ancak erkek pinlere sahip olması gerekir. Her bir pinin hangi işleve sahip olduğu ilerleyen kısımlarda belirtilecektir. Paralel port, endüstride farklı isimlerle anılır: paralel port, paralel yazıcı adaptörü, Centronics adaptörü, Centronics port. Aslında paralel port kavramı bilgileri paralel olarak ileten bir iletişim mekanizmasını tanımlar. Ancak paralel port deyimi kişisel bilgisayarlara yazıcıların bağlantısını sağlayan arabirim olarak anlaşılmaktadır. Örneğin PC içerisindeki IDE konnektörü ve kablosu da paralel bir porttur. Paralel portun tasarım amacının bilinmesi onun yapısını daha kolay anlamamıza yardım edecektir. Aslında paralel port bilgisayardan gönderilen verilerin bir yazıcıya aktarılması için tasarlanan bir arayüzdür. Bilgisayar ile yazıcı arasındaki veri iletimini sağlayacak bir arayüz tasarlanırken aşağıdaki en önemli üç unsur göz önünde bulundurulmuştur. <LI class=madde-imi-simge>Bir baytlık bir bilgi (8-bit data) bilgisayardan yazıcıya paralel olarak gönderilmelidir. <LI class=madde-imi-simge>Bilgisayar, 8-bit bilginin gönderilmek üzere beklediğini yazıcıya bildirmek zorundadır ve bu sinyal STROBE olarak bilinir. STROBE uyarı, ikaz anlamında kullanılabilir. Bilgisayar, yazıcıdan veriyi aldığına dair bir teyit mesajı da laması gereklidir ve bu sinyal ACKNOWLEDGE (ACK) olarak adlandırılır. Bu terim Türkçe'ye kabul ve veya geri bildirim olarak çevrilebilir.Data, Strobe ve ACK sinyalleri (Şekil 6.2) her ne kadar ham veri iletimi için yeterli de olsa farklı istisnai durumlar düşünüldüğünde daha fazla sinyallere ihtiyaç olduğu açıktır. http://www.wekatronik.com/resimler2/pport2.jpg Örneğin yazıcılar mekaniksel bir cihazdır ve bilgisayardan almış oldukları verileri belirlenen format içerisinde kağıda basarlar. Bilgisayar gelişiminin ilk yıllarında yazıcılar, bilgisayara son derece yavaş seri portlarla bağlanırlardı. Oldukça yavaş çalışan o dönemdeki yazıcılar için bu, çok da bir problem teşkil etmiyordu. Ancak yazıcıların hızlanması sonucu gelen verilerin yazıcı içerisinde bulunan geçici bir bellekte tutulması ihtiyacı ortaya çıktı. Bu gereksinim için tampon bellek (buffer memory) olarak adlandırılan birimler kullanılmaya başlandı. Bu durumda yazıcıya ait tampon belleğin dolduğunda, yazıcının bu durumu bilgisayara bildirmesi gerekmektedir. Bu sinyal yazıcının meşgul (BUSY) olduğunu bildirir ve bilgisayarın veri göndermesini engeller. Tüm sistemlerin çok bilinen bir ortak yanları mevcuttur: Hatasız sistem yoktur. Tüm sistemler çalışma süresince er veya geç bir hata ile arızalı duruma düşerler ve bu tüm sistemler için kaçınılmaz bir durumdur. Aynı şekilde yazıcı bir hata ile karşılaştığında, mesela bir kağıt sıkışması söz konusu ise veya toner bitmesi oluştuysa bunun durumun bilgisayar bildirilmesi gerekmektedir. Bu tip durumları bildiren sinyal de ERROR (hata) olarak adlandırılır. Ayrıca yazıcının tamponundaki bilgiler bir hata sonucu ortaya çıkan arızadan dolayı silinip tekrar gönderilmesi istenebilir. Bu durumda tampon belleğin boşaltılması gerekeceğinden bu durum için de bir sinyal üretilmelidir. Bu sinyal de RESET sinyalidir ve bu sinyali alan yazıcı tampon belleğindeki bilgileri siler. Gerçek yazıcı portunda (paralel port) 17 adet sinyal mevcuttur ve bunlar: 1. DATA port : Çıkış portu, 8-bit veri sinyali 2. STATUS port : Giriş portu, 5 adet durum sinyali 3. CONTROL port : Çıkış portu, 4 adet kontrol sinyali Burada şu soru akla gelebilir toplam 25 adet pine sahip paralel portun diğer (25-17= 8) pinleri ne işe yarar? Kalan bu 8 pin, elektromanyetik etkilerin azaltılması ve toprak potansiyeline farklı yollardan erişilmesi için kullanılmaktadırlar. Şimdi bu portları sırasıyla inceleyelim. Sinyal ismi Görevi Kaynak DATA Yazıcıya gönderilecek 8-bit veri Bilgisayar Strobe Yeni verinin hazır olduğunu bildirme Bilgisayar ACK Verilerin alındığına dair geri bildirim Yazıcı Busy Yazıcının meşgul olduğunu bildirme Yazıcı Error Yazıcıda bir hata oluştuğunu bildirme Yazıcı Reset Yazıcıyı ilk haline kurma Bilgisayar - Bir paralel portun teorik sinyalleri - http://www.wekatronik.com/resimler2/pport3.jpg DATA PORT Data port veya Data Kayıtçısı (D0..D7) 8 bitlik bir kayıtçıdır. Bilgisayardan dışarıya gönderilen veya dışarıdan alınan verilerin tutulduğu kayıtçıdır. Data port iki yönlü bir porttur, yani hem veri gönderme için hem de alma için kullanılabilir. Data portunun çıkışları D tipi üç-durumlu flip-floplardan oluşmaktadır. Data port paralel portun taban adresini temsil eder ve genellikle bu adres PC'lerde 378(hex) olarak atanır. Aşağıda Data portun her bir bit sıralanışı verilmiştir. D7 en yüksek değerlikli (MSB) ve D0 en düşük değerlikli (LSB) bitlerdir. D7D6D5D4D3D2D1D0 - Data port bitleri - STATUS PORT Status kayıtçısı, bilgisayarın yazıcı durumunu okumak için kullandığı sadece okunabilir bir porttur. Adres olarak Data portundan bir sonra gelir, yani 379(hex) adresinden erişilebilir. S0, S1 ve S2 bitleri kullanılmadığı için konnektör çıkışında toplam beş bit ile temsil edilir. S7S6S5S4S3 BUSY Yazıcı meşkul sinyali Düşük-Aktif, Sıfır olduğunda meşkuldür. ACK Yazıcının Strobe sinyaline karşı ürettiği bir sinyaldir. PE Bu sinyal kağıdın bittiğini bildirir, normalde sıfırken, kağıt bittiğinde bir olur. SELECT Yazıcının yazdırmaya hazır olduğunu bildirir, yazıcı bakıma alındığında sıfır olur. ERROR Yazıda genel bir hata olduğunu bildirir. Hata oluştuğunda bu sinyal sıfır seviyesine düşer. - Status port bitleri - Bunun yanında S0 EPP modunda (çalışma modlarına ileriki sayfalarda değinilecektir) zaman aşımı (timeout) biti olarak kullanılabilir. Ancak bu bit DB-25 konnektöründe fiziksel olarak mevcut değildir. Bu yüzden sadece yazılım yoluyla kontrol edilebilir. Bu port 5 bitlik genel amaçlı giriş portu olarak kullanılabilir. CONTROL PORT Kontrol portu veya kayıtçısı konnektör çıkışında C0 dan C3 kadar toplam dört bite sahiptir. Konnektör çıkışında yer almayan IRQ EN isimli bir bit sayesinde harici kesme işlemleri Status portundaki ACK sinyali ile etkinleştirilebilir. Bu portun adresi, DATA portunun adresine 2 eklenmek suretiyle bulunur. C3C2C1C0SelectIN Yüksek olduğunda yazıcıya Veri girişlerini açmasını söyler, normalde konnektör de sıfırdır Initialise Sıfıra düştüğünde yazıcıyı ilk halinde kurar ve tampon belleği siler, normalde bildirir.AutoLF Otomatik satır besleme. Her bir ENTER karakterinden sonra satır atlamayı sağlar.Strobe Sinyalin Pozitif kenarında DO-D7 kayıtçısı okunur. - Control port bitleri - DB-25 Pin noSinyal adıKaynakKayıtçıKonnektör de terslenmiş mi?1StrobePC1ControlE2D0PCDataH3D1PCDataH4D2PCData H5D3PCDataH6D4PCDataH7D5PCDataH8D6PCDataH9D7PCData H10ACKYazıcıStatusH11BusyYazıcıStatusE12PaperEnd, PEYazıcıStatusH13SelectYazıcıStatusH14AutoLFPC1Con trolE15ErrorYazıcıStatusH16InitialiasePC1StatusH17 SelectInPC1ControlE18Gnd 19Gnd 20Gnd 21Gnd 22Gnd 23Gnd 24Gnd 25Gnd - Paralel portun sinyalleri ve pin özellikleri Yukarıdaki tabloda PC1 lere ait pinler, SPP (Standart Paralel Port) çalışma modunda giriş olarak kullanılmaları mümkündür. Yalnız, giriş olarak kullanılmadan önce lojik-1 yapılmalıdırlar. Paralel port çalışma modları Paralel port, ilk tasarım amacının aksine sadece yazıcılar için kullanılmamaktadır. Hatta günümüzde çoğu yazıcı USB veya kablosuz iletişim imkanlarını kullanarak bilgisayarlara bağlanmaktadır. Arayüz sistemleri gittikçe basit ve kablo yükü az veya hiç olmayan uygulamalara yönelmektedir. Peki paralel port artık ömrünü tamamlamış bir iletişim arayüzü müdür? Bu soruya tabii ki hayır diyebiliriz. Paralel portun önemli bir zayıf noktası teorik olarak 250Kb/s olan hızıdır. Ancak bu hız geliştirilen bazı çalışma modları ile artırılmıştır. Böylece harici CD-ROM, Harddisk vb. cihazlar doğrudan paralel porta bağlanarak kullanılmaktadır. Ancak şunu da belirtmek zorundayız ki, çok sayıda kablo içeren ve kullanımı ve taşınması zor olan paralel portun kablosu nedeni ile seri ve kablosuz iletişimin paralel portun önemini azaltacağı ve hatta onun yerini alacağı teknolojik eğilimler açısından oldukça mantıklıdır. Ancak bunu seneler alacağı da şüphesizdir. Ayrıca çevremizde her zaman eski bir sistem ve bu sisteme bağlı tasarlanmış veri depolama sistemleri mevcut olacaktır. CD-ROM teknolojisinin Teyp kasetlerini tamamen ortadan kaldıramaması buna en iyi örnektir. 1991 yılında NPA (Network Printing Alliance, Ağ Yazdırma Birliği) paralel port için daha verimli bir protokol (iletişim kuralları) geliştirmeye başladılar. Daha etkin çift yönlü ve daha hızlı bir yapı için yeni protokolü ortya koydular ancak bu protokol eski sistemlerle de uyumlu olmak zorunda idi. Amaç, 1Mb/s den daha hızlı bir iletişimi gerçekleştirmekti ve bu amaç doğrultusunda EPP (Enhanced Paralel Port, Gelişik Paralel Port) ve ECP (Extended Capability Port, Geniş Yetenekli Port) adında iki farklı protokol geliştirildi. Günümüz bilgisayarlarında artık SPP den ziyade bu iki protokol kullanılmaktadır. Bilgisayarınızın aygıt yöneticileri kısmındaki bağlantı noktalarından paralel portunuza ait bilgileri alabilirsiniz. Şimdi bu prokolleri detayları ile inceleyelim. IEEE 1284-1994 Standartı IEEE 1284 standardı, bir bilgisayar ve harici cihaz arasında orijinal paralel porttan 20-50 kat daha hızlı bilgi transferine imkan sağlar. Tasarlanan bu protokol geriye-uyumlu (backward-compatible) olarak geliştirilmiştir ve orijinal paralel port için yazılmış olan programlar da bu protokolden istifade edebilirler. IEEE 1284 bilgisayarı referans alarak, hem ileri hem de geri yönde veya her iki yönde (yarım-dubleks) 5 adet çalışma modu tanımlar. EPP ve ECP çalışma modları IEEE 1284'ten türetilmişlerdir. Modern kişisel bilgisayarlar EPP ve ECP tip paralel porta sahiptir ve iletişim hızları 1-1.75Mb/s hızlara erişebilmektedir. İleri yön Uyumluluk Modu: Standart, Orjinal Mode Geri yön Nibble Mod: Status hatları kullanılarak 4-bit Bayt Mod: Data hatları kullanılara 8-bit Her iki yön EPP Mod ECP Mod - IEEE 1284 veri iletim modları - EPP MOD EPP modu ilk olarak Intel, Xircom ve Zenith Data System firmaları tarafından yüksek performanslı, geriye dönük uyumlu bir paralel port protokolü olarak geliştirilmiştir. EPP satandardı, IEEE 1284 standardından dah önce geliştirildiği için aralarında küçük nüanslar mevcuttur. EPP modu 4 adet veri iletim tipi tanımlar: <LI class=madde-imi-simge> Veri yazma periyodu (Data write cycle) <LI class=madde-imi-simge> Veri okuma periyodu (Data read cycle) <LI class=madde-imi-simge> Adres yazma periyodu (Address write cycle) Adres okuma periyodu (Address read cycle) EPP port en az 5 adet kayıtçıdan oluşur : <LI class=madde-imi-simge> SPP DATA <LI class=madde-imi-simge> SPP STATUS <LI class=madde-imi-simge> SPP CONTROL <LI class=madde-imi-simge> EPP ADDRESS EPP DATA Dikkat edilirse geriye dönük uyumluluk için ilk üç kayıtçı standart paralel portta bulunan kayıtçıları içerir. EPP en az 5 kayıtçı içerirden kastettiğimiz EPP DATA kayıtçılarının sayısı dörde kadar çıkabilir. Bu dört kayıtçı 32-bitlik bir veri iletişimine olanak tanır. Kişisel bilgisayarlardaki paralel portlar, ilk kurulumda genellikle standart moda ayarlandığından dolayı EPP adres ve veri kayıtçılarını kullanabilmek için EPP denetim entegresi EPP moda ayarlanmalıdır. ECP MOD Geniş Yetenekli Port (ECP) modu ilk olarak HP ve Microsoft firmaları tarafından teklif edilmiştir. Teklifin amacı, kişisel bilgisayarlar ile çok fonksiyonlu fax/yazıcı/tarayıcı tümleşik cihazların arasında yüksek performanslı iletişim sağlamaktı. ECP protokolü EPP protokolüne oldukça benzerdir ancak paralel porta aynı anda bir çok cihazın bağlanmasına izin vermesi özelliği ile EPP den farklıdır. Örneğin ECP gerçek-zamanlı bir veri sıkıştırma yapılırken, porta bağlı diğer cihazlara veri gönderebilir veya cihazlardan veri alabilir. ECP protokolünde, EPP'deki gibi adres ve verilerden oluşan bir iletim ortamına ek olarak komutlar kullanılmaktadır. Elbette bu daha karmaşık bir donanım ve yazılım gerektirmektedir. Komutlar DATA portundan gönderilmektedir ve DATA portundan gönderilen bilginin veri veya komut olduğunu bildiren bir sinyal mevcuttur: HostAck. Bu yüzden ECP portundan iletilen veya porta alınan iki tür bilgiden söz edilebilir: <LI class=madde-imi-simge> Veri (data) iletimi Komut (command) iletimi Şimdi ECP çalışma modundaki FDC37C666 numaralı entegrenin ECR kayıtçısı ile elde edilen fonksiyonları inceleyelim. Mod Bitleri: Bit7, Bit 6, Bit 5 Fonksiyon000 SPP (Standart paralel port ) mod001 PS/2 paralel port mod010 Paralel port data FIFO (First in first out, işl giren ilk çıkar) mod011 ECP mod100 EPP mod101 BOŞ110 Test modu111 Konfigrasyon modu -ECR kayıtçısı mod ayarlama bitleri- /* portbul.c */ /*Bu program paralel porttaki DATA, CONTROL ve STATUS portlarını bulur*/ #include <stdio.h> #include <dos.h> #include <conio.h> #include <process.h> main(){ int dport, cport, sport, secim, mesafe; clrscr(); /*clear screen*/ do{ printf("\n\tParalel Port Adaptörünü Tespit Programı.\n"); printf("LPT1,LPT2 veya LPT3 portları için 1,2 veya 3 Girin.Çıkış için 0\n\n"); secim=getch(); while ((secim != '1')&&(secim!='2')&&(secim!='3')&&(secim!='0')){ printf("Geçersiz Giriş: 1, 2 veya 3 Giriniz\n"); secim=getch(); } if(secim=='1') mesafe = 0x08; if(secim=='2') mesafe = 0x0a; if(secim=='3') mesafe = 0x0c; if(secim=='0') break; //secim 0 olursa do-while döngüsü kırılır dport=peek(0x40, mesafe); if (dport ==0){ printf("Bu bilgisayarda LPT%d mevcut değil\n", secim-'0'); break; } printf("\nLPT%d bulundu!\n", secim -'0'); printf("DATA port adresi %x\n", dport); printf("STATUS port adresi %x\n", dport+1); printf("CONTROL port adresi %x\n", dport+2); }while(1); printf("\nÇıkışı Seçtiniz, Güle Güle......"); return 1; } #include <dos.h> #include <conio.h> #include <stdio.h> #include<process.h> unsigned char secim; void dataport(void){ static unsigned char a; while(!kbhit())/*bir tuşa basıncaya kadar bekle*/{ outportb(0x378, a); printf("\nDATA port = %X",a); a++; } getch(); } void controlport(void){ static unsigned char c; while(!kbhit()){ outportb(0x37a, c); printf("\nCONTROL port = %X",c); c++; } getch(); } void dataOut_controlIn(void){ static unsigned char dout, cin; outportb(0x37a, 0x04); while(!kbhit()){ outportb(0x378, dout); cin=inportb(0x37a) & 0x0f; printf("\nDATA port = %X, CONTROL port ham = %X",dout&0x0f,cin); printf("CONTROL port düzeltildi = %X", 0x0b ^ cin); dout++; } getch(); } void dataOut_statusIn(void){ static unsigned char dout, sin; while(!kbhit()){ outportb(0x378, dout); sin=inportb(0x379) & 0xf8; printf("\nDATA port = %X, STATUS port = %X",(dout & 0xf8)>>3, sin>>3); printf("STATUS port düzeltildi = %X",0x80 & (sin>>3)); dout=dout+8; } getch(); } unsigned char secimAl(void){ puts( "\nDATA Port ile test\t\t\tD\n" ); puts( "DATA port , CONTROL port giriş\t\tC\n" ); puts( "DATA port çıkış, STATUS port giriş\tS\n" ); puts( "CONTROL port çıkış\t\t\tO\n" ); puts( "Çıkış \t\t\t\t\tX\n" ); printf( "Seçiminizi Giriniz: " ); secim=getch(); secim |= 0x20; return secim; } main(){ for(;{ secimAl(); switch (secim) { case 'd': printf("\nCase D\n");dataport(); break; case 'c': printf("\nCase C\n");dataOut_controlIn();break; case 's': printf("\nCase S\n");dataOut_statusIn();break; case 'o': printf("\nCase O\n");controlport();break; case 'x': printf("\nGüle Güle..!\n");exit(0); default: printf("\nHatalı Giriş\n");break; | ||
|
Bu konuyu arkadaşlarınızla paylaşın |
Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| |