Etiketler
Adım motor kontrolü Asenkron Motor CNC Tezgahları DC Motor Kontrolü ENDÜSTRİYEL ROBOTLAR Haberleşme Hakkında Temel Bilgiler Hidrolik Hortumlar Kullanım Alanları Mekatroniğin Doğuşu ve Gelişimi Mekatronik Mekatronik Eğitimi Mekatronik Tasarım Ürünleri Mps Üniteleri OTOMASYONUN Tanımı Türkiyede Mekatronik Bölümleri| Visul Basic İle Seri İletişim |
|
|
|
| Zafer Erim tarafından yazıldı | ||||||||
| Çarşamba, 11 Ekim 2006 08:00 | ||||||||
|
Seri İletişim Tüm elektronik hobi okurlarına merhaba. Bu güne kadar uygulamalarımızı hep paralel port üzerinden gerçekleştirdik. Bunun sebebi paralel portun, lojik veriler ile programlanmasının kolay oluşuydu. Bu ay, seri iletişimin temellerini ve iki bilgisayarın seri port aracılığı ile nasıl haberleşebileceğini öğreneceğiz. Aynı zamanda, bilgisayar dünyasında çok sık duyulan birçok terimin ne anlama geldiğini göreceğiz. Paralel portta olduğu gibi, seri port üzerinden de bir çok uygulama gerçekleştirmek mümkündür. Fakat birçok uygulama, paralel iletişim ile daha kolay gerçekleştirilebilir. İşlemciniz bile aldığı seri veriyi paralel olarak işler. Seri veri ile paralel verinin iletim farkı ise temelde çok ufaktır. Paralel port üzerinde, bitler yani lojik 1 yada 0 değerleri 8 tane ayrı kablo ile aynı anda iletilir. Seri port üzerinde ise bu lojik değerler tek bir kablo aracılığı ile peşi sıra iletilir. Seri portun kullanımı ve programlaması, paralel porta nazaran daha karışıktır, fakat bunun yanında seri iletişimin de avantajları yok değildir. Seri portun avantajları: 1.Seri kablolar, paralel kablolara göre daha uzun olur. Seri port, lojik değerleri -3 volt ile +25 volt arasında iletebilir. Paralel portta ise "0", 0 volt ile, "1" ise +5 Volt ile iletilir. Dolayısı ile, seri portun 50V maksimum voltaj değişim aralığına sahiptir. Paralel portta ise bu aralık 5 volttur. Bu nedenle kabloda oluşan kayıp, seri portlarda, paralel portlardaki gibi önemli değildir. Seri haberleşmede, gönderici kısmında 8-bit veri, paralelden seriye çevrilir ve daha sonra tek bir hattan karşıya gönderilir. Alıcı, seri veriyi paralele çevirerek 8 bit veriyi oluşturur. Veri telefon hattı ile iletilecekse, bu lojik değerler ses sinyallerine dönüştürülür. Bu tür haberleşmede, göndericideki lojik değerler Modülatör ile ses sinyaline çevrilir. Ses sinyali karşı tarafa ulaştığında, Demodülatör ile tekrar lojik değerlere dönüştürülür. Modülatör ve demodülatör işlemlerini hepimizin bilgisayarında bulunan ve yakından tanıdığı MODEM (Modulator/Demodulator) adlı cihazlar gerçekleştirilir. Seri port ile veri aktarımı: Bir linkteki veri akışının kontrolü için, gerekli sinyallerden biri saat (clock) sinyalidir. Hem gönderici, hem de alıcı cihazda, bir bitin ne zaman gönderileceğine veya alınacağına karar verilirken bir saat sinyali kullanılır. Veri gönderen ve alan uçların belli kurallar çerçevesinde haberleşmesi gerekir. Verinin nasıl paketleneceği, bir karekterdeki bit sayısını, verinin ne zaman başlayıp biteceği gibi bilgileri bu kurallar belirler. Bu kurallar çerçevesine, Protokol adı verilir. Eğer veri sadece bir yönde aktarılıyor ise, half duplex, aynı anda her iki yönde aktarılıyorsa, full duplex olarak adlandırılır. İki çeşit seri iletim formatı vardır. Senkron ve Asenkron. Herbiri saatleri farklı şekilde kullanırlar.
Senkron gönderimde, her cihaz, kendisi yada dışarıdan bir cihaz tarafından üretilen aynı saat sinyali darbelerini kullanırlar. Saatin frekansı sabit yada düzensiz aralıklarda değişkende olabilir. İletilen her bit, bir saat darbesi geçişinden, yani şekildeki yükselen veya alçalan kenardan sonraki belirli bir zamanda geçerli olur. Senkron formatlar, iletimi başlatırken yada bitirirken, çok çeşitli formatlar kullanırlar. Bunlara start-stop bitleri denir. Fakat uzun mesafeli linklerde senkron format uygun değildir. Çünkü bahsettiğimiz saat sinyalinin iletimi, parazit nedeni ile, ek bir hat gerektirebilir. Bu durumda, Asenkron gönderim kullanılır. Asenkron iletişimlerde, linkte saat hattı bulunmaz. Her uç kendi sinyalini sunmaktadır. Bu iletişimde de, uçların saat frekansında anlaşmaları gerekir. Bu nedenle iletilen her byte 'ta saatleri eşlemek üzere bir start biti ve iletimin bittiğini bildirmek üzere bir stop biti bulunur. Seri iletişimde veri aktarım hızı, saniyedeki bit sayısı (bps-bit per seccond) olarak belirtilir. Veri aktarım hızını belirlemede yaygın olarak kullanılan diğer terim ise baud rate tir. UART Tümdevresi: Yazımızın başında, iletişim seri şekilde olsa bile, verinin işlenebilmesi için paralele çevirilmesi gerektiğinden bahsetmiştik. UART tümdevresi, seri ve paralel veriyi birbirine çevirmeye yarar. CPU 'nun sistem bus 'ında verinin okunabilmesi için, UART ile paralel dönüşüm yapılır. UART hem full duplex hemde hal duplex veri iletişimini destekler. Veri hatları yanında UART, RS-232 el sıkışma sinyali ile RTS, CTS, DTR gibi kontrol sinyallerinide destekler. Orjinal PC lerde, seri porta kumanda eden UART, 57,600 bps maksimum hızı olan bir 8250 idi. Günümüzdeki PC lerde ise 115,200 bps hıza imkan veren 16550 yada eşleniği olan daha gelişkin devreler bulunur.
IRQ, Kesmelerin kullanımı: Kesme, basit olarak, CPU 'ya acil olarak yapılması gereken işleri bildirmeye yarayan bir sinyaldir. Normal bir PC, 16 kesme hattını destekler. Donanım kesmelerine başvuran bir programda kesme servis rutinleri (ISR) olmak durumundadır. Bu rutinler, bir kesme meydana geldiğinde gereken fonksiyonu yerine getirirler. Cihaz, kesme yapmak için, IRQ hattını bir darbe ile uyarır. Sistemin kesme kontrolü bu isteği algılar ve durumu CPU ya bildirir. CPU o anda yaptığı işi durdurarak ISR 'yi devreye sokar. ISR 'in devreye girişi ile birlikte CPU kaldığı yerden devam etmek üzere işine döner. RS232 Standartı: Değişik üreticiler tarafından yapılmış veri haberleşme cihazlarının uyumluluğunu sağlamak amacıyla, EIA (Electronics Industries Association) tarafından 1960 yılında, RS232 olarak adlandırılan standart belirlenmiştir. Günümüzde de RS232 en yaygın kullanılan seri I/O arabirim standartıdır.
RS232 için, ,lk olarak DB-25 ile erişilen toplam 25 uç tanımlanmıştır. Modern bilgisayarlarda bu 25 uca gerek olmadığı için, IBM, DB-9 seri I/O standartını geliştirmiştir. 9 ve 25 uçlu RS232 sinyalleri: PC ile modem haberleşmesi bu uçlar ve sinyaller ile şu şekilde haberleşir; DTR ve DSR sinyalleri, PC ve modem tarafından hazır olma durumlarını belirlemede kullanılır. RTS ve CTS ile veri akışı kontrol edilir. PC, veri göndermek istediğinizde, RTS hattını aktif yapmakta, buna karşılık modem verş kobul etmeye hazır ise yani veri için yeri var ise, CTS sinyalini gönderir. Eğer yer yok ise modem CTS yi aktif yapmaz. Bu durumda PC nin tekrar aynı şekilde denemesi gerekir. Boş (Null) Modem bağlantısı: Boş modem bağlantısı iki DTE cihazını bağlamakta kullanılır. Bu yöntemi Zmodem veya Xmodem protokolü gibi bir protokol kullanarak, ağ haberleşmeleri veya bilgisayarlar arası dosya aktarımında kullanmak oldukça ucuz bir yoldur. Şekilde de görüldüğü gibi, boş modem bağlantısında sadece 3 hat gereklidir. Bunlar TD,RD ve GND uçlarıdır. Bu bağlantı şekli ile amaçlanan, bilgisayarın, diğer bir bilgisayar ile değil sanki bir modem ile haberleşiyormuş gibi düşünmesini sağlamaktır. Kısacası, modülasyon ve demodulasyon işlemi yoktur. Dolayısı ile modeme de gerek yoktur.
Şekilde TD ve RD veri hatları karşılıklı çapraz şekilde bağlanmış ve topraklar ortaklanmıştır. Her iki portta da DTR sinyalleri, DSR ve DCD uçlarına bağlanmıştır. DTR sinyali aktif yapıldığında, DSR ve DCD hemen aktif olur. Bu sayede, bilgisayar bağlı olduğu sanal bir modemin hazır olduğunu ve bu modemin DCD sinyali aldığını düşünür. Her iki bilgisayar aynı hızda haberleştiği için, akış kontrolüne gerek yoktur. Bu yüzden RTS ve CTS sinyalleri her iki portta birbirine bağlanmıştır. Bir bilgisayar verisini göndermek istediğinde, RTS sinyalini aktif yapar. Bu sinyal CTS ye geri bağlı olduğundan, gönderme için tamam cevabını hemen alır ve bu işlemi yerine getirir.RI sinyali ise her iki porttada bağlanmamıştır. Bu sinyal, telefon hattındaki çalma işlemini bilgisayara bildirir. Telefon hattına bağlı bir modem olmadığı için, bu hat bağlantısız bırakılmıştır. Geri Besleme (Loop-Back) Bağlantısı:
Şekilde gördüğünüz geri besleme bağlantısı, genelde seri RS232 haberleşme programları yazarken, geliştirme aşamasındaki testlerde kullanılır. Eğer evinizde ikinci bir PC yoksa, geri besleme bağlantısı ile seri port uygulaması geliştirebilirsiniz. Bu bağlantıda, alma (RD) gönderme (TD) hatları birbirlerine bağlanmıştır. Seri olarak dışarıya gönderilen veri, yine aynı porttan içeri alınır. Bu durumda bilgisayar kendi kendine bağlantı kurmuş olur. DTE/DCE Hızları ie veri akış kontrolü: DTE bir bilgisayar, DCE ise bir modem olarak tanıtılabilir. Bu ikisi arasındaki hız, bilgisayar ile modem arasındaki hızdır. DCE-DCE arasındaki hız ise modemler arasındaki hızdır. Günümüzde 56K modemler yaygın olarak kullanılır. Yukarıda bahsettiğimiz yaygın olarak kullanılan UART 16550A 115,200 BPS maksimum DTE-DCE bağlantısını destekler. Bunun yanında modemler, veri sıkıştırma ve açma fonksiyonlarına sahiptir. Eğer bilgisayar ile modem yani DTE-DCE arasındaki hız, modemler arasındaki hızdan çok fazla ise, PC nin gönderdiği veri, modemin buffer alanını kısa zamanda doldurduğundan bir veri akış kontrolü gerekir. Akış kontrolü için yazılım ve donanım olmak üzere iki yöntem vardır. Yazılım akış (Software Flow) kontrolünde, bazı yerlerde Xon/Xoff olarak belirtilen iki karekter kullanılır. Genelde Xon ASCII17, Xoff ise ASCII19 dur. Modemin buffer ı dolduğunda, modem Xoff karekteri göndererek, bilgisayara daha fazla veri göndermemesini bildirir. Buffer boşaldığında ise Xon sinyali gönderilir. Donanım akışında ise (Hardware Flow) bilgisayar veri göndermek istediğinde RTS (Request to Send) hattını aktif yapar. Eğer modemde veri için yer var ise CTS (Clear to Send) hattını aktif yapar ve bilgisayar veri göndermeye başlar. Eğer modemde yer yoksa CTS sinyali gönderilmez. Dolayısı ile bu şekilde yapılan bir akış kontrolü iletişim hızını yavaşlatmaz. Bilgisayarınız, COM olarak belirtilen 4 taneye kadar bahsettiğimiz bu seri portlara sahiptir. Bu portlar PC açıldığında, power on self test (POST) esnasında 4 COM portundan herbiri için, UART tümdevresi test edilir. Eğer COM port bulunur ise, I/O port, adresleri hafızada 0040:0000 ile 0040:0007 arasına yazılır. Bu portlara, BIOS tabanlı INT 14H kesme komudu kullanılarak erişmekte mümkündür. INT 14 H komudunun çeşitli seçenekleri AH saklayıcısı ile belirlenir. Bu komut ile iki PC arasında karekter alışverişi çok kolaydır. Fakat şimdilik işin bu kadar derinine inemiyoruz. Çünkü işin içerisine Assembly programlamada giriyor. Bahsettiğimiz INT 14H kesme komudu, assembly programlama komududur. Eğer seri iletişimin temelini bilirseniz, Visual Basic altındaki MSComm kontrol objesini kullanmak çocuk oyuncağı gelecektir. Seri portu programlamanın Windows altındaki en kolay yolu MSComm kullanmaktır. Yukarıda bahsettiğimiz sinyalleri bu kontrol objesi ile kontrol etmek oldukça kolaydır. Aşağıdaki örnek Visual Basic programı RS232 bağlantısı ile bilgisayarınızdaki bir dosyayı diğerine aktarmanızı sağlar. Sayfa sayımız sınırlı olduğundan, şimdilik MSComm kontrolünün detaylarını anlatamıyorum. Eğer biraz Visual Basic bilginiz var ise aşağıdaki örnek kod ile, çalışma prensibini anlamanız kolay olacaktır. Visual Basic MSCOMM ile dosya transferi Open FileName For Binary Access Read As #1 'Receiver Code. If MSComm1.CommEvent = comEvReceive Then
Powered by !JoomlaComment 3.23
3.23 Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved." |
||||||||
| Son Güncelleme ( Çarşamba, 12 Mart 2008 01:14 ) | ||||||||






