Linux ve Seri Haberleşme Bölüm 1 - Seri Port Yapısı ve S
1 sayfadaki 1 sayfası
Linux ve Seri Haberleşme Bölüm 1 - Seri Port Yapısı ve S
Linux ve Seri Haberleşme Bölüm 1 - Seri Port Yapısı ve Seri İletişime Giriş
[B]Gerekenler:
1. İki adet bilgisayarımız (Linux Çalıştırsın yeter)
2. Bir adet Null Modem Kablomuz
3. Linux İşletim sistemimiz.( Rahatça kullandığınız bir Linux sürümü)
4. C, C kitaplarımız ( Bu iş için C,C Bilmeniz gerekiyor! .Kitaplarda takıldığınız yerler için neolur ne olmaz.)
5. Bir adet jumper.(Bir kandırmaca yapmamız gerekebilir ileride dursun şimdilik)
6. Lehim , Havya
7. Lehim kalemi (Yanlış lehimlersek lehimi çekmek için yokluğu o kadar önemli değil.)
8. Kağıt Kalem.
9. Sukunet,sabır ve sakinlik
10. Bol abur cubur. ( Bu benim tercihimdir. Sakinleştiriyor
[b]Evet şimdilik ilk aşamada bize gerekenler bunlar. Bunları temin ettiğinizi varsayarak şimdi işin teorik kısımlarına değineceğim. Öncelikle "Seri Haberleşme nedir?" konusuna bir bakalım.
Seri Haberleşme Nedir?
Bilgisayarlar veya türevleri cihazların birbirleri arasında haberleşmeleri bu sihirli dünyanın minik büyülerinden birisidir.Bu işin baş aktörleri arasında da bizim atölyemizde birazdan tezgaha yatıracağımız seri port gelmektedir. Seri iletişim portumuz tamamen bu iş için dizayn edilmiş bir sistemdir. Çok basitçe Seri port üzerinden haberleşmeyi "UART" dediğimiz bir çip yapar. Seri portumuzda bu çipin dış dünyaya açılan bir kapısıdır. "UART" çiplerimiz sadece bilgisayarlar arasında haberleşmek için kullanılmaz. Haberleşme yapılması istenen ( Seri haberleşme ) her elektronik cihazda bu çipler ve türevleri kullanılır.
Bu tarz bir iletşimde haberleşmede bilgisayarların temeli olan 1 ve 0 lar vasıtasıyla olur. Siz seri port üzerinden bir bilgi karakter ya da sözcük gönderdiğinizde bu kelime ya da karakter bit lere ayrılır (yani bir ve sıfır haline döner) ondan sonra bir seferde bir bit alınır veya gönderilir. Seri iletişimde hız iki ölçü birimiyle ifade edilir. Bunlardan birincisi bizim "bps" dediğimiz "Bits Per Second" (Saniyede gönderilen bit sayısı) ya da "Baudot Rate" denen "Baud" olarak ifade edilir. Örneğin Seri portumuzun hızı 9600 Baud olarak kabul edelim. Buda demek oluyor ki. Bizim seri portumuz bir saniye aralığında 9600 bit gönderebiliyor. Buda 9600/8=1200 byte'a eşit oluyor. ( Bir byte 8 bit tir) Tabi doğal olarak her ölçü biriminde olduğu gibi bizim baud'larımız ya da bit lerimiz 1000 olunca artık bu birimi "kilo bit" (kbit) ya da "Kilo Baud"(Kbaud) olarak adlandırıyoruz.
İşin tekniğinde Bizim bu seri portumuza "Data Communications Equipment" ya da " Data Terminal Equipment" 'te derler. Peki bunlar arasındaki fark nedir. Fark aslında çok ince bir çizgiyle ayrılıyor. İki bilgisayarımız olduğunu var sayıyoruz. Bunlardan birinci bilgisayarımız veri göndersin. İşte Bu Data Terminal Equipment Diğer bu veriyi alanda Data Communications Equipment oluyor.Ancak Siz bunları sadece bilin yoksa bunlar işin masal kısmı.:
Seri portlarımızın tabiki adı Seri port değil. Bunun bir teknik adı var. Buda RS-232 (Bizim bilgisayarlarımızdaki portun adı).Peki nedir bu RS-232?.
RS-232 nedir?
Kısaca RS-232 nin tanımı Elektronik Endüstrisi Birliği (Electronic Industries Association (EIA) tarafından tanımlanmış elektriksel iletişim için seri bağlantı standartıdır.Yani Seri iletişimin bir standartı vardır ve buda değişmez. RS-232 standartıda kendi arasında 3 Guruba Ayrılır (RS-232A,RS-232B,RS-232C). Bunların arasındaki fark herbirinin Çıkış ve iniş Voltajlarının ( Yani 1 ve 0 voltajlarının) farklı olmasıdır. Ancak günümüzde en çok kullanılan RS-232 cinsi RS-232C'dir. Bu RS-232 cinsinin voltajları
Off( Yani 0) -3,-12V
On(Yani 1) 3, 12V
aralığındadır. Ve bizim RS-232C miz. 8m'ye kadar arada herhangi bir dönüştürücü ya da akım yukselteç devresi olmadan veriyi karşı tarafa sorunsuz olarak iletebilir. Ancak bu metreden sonrasında hepinizin bildiğini sandığım bir elektrik yasası devreye girer ve o yasada der ki : " Mesafe uzadıkça Gerilim Düşer!" Yani bizim RS-232C mizde 8 mt'den sonrası karşı tarafa gelecek gerilim -3,-,12, 3, 12 V aralığından düşük olacağından veri iletilemeyecek, iletilse bile karşı cihaz bu düşük gerilim aralığını algılayamayacağından herhangi bir tepki vermeyecektir.
Bu bizim bilgisayarımızda standart olarak bulunan 9 pinli seri portun basitçe elektriksel yapısı. Bununların yanında birde RS-422 ve RS-574 standartındaki seri portlar vardır. Bu portların hem şekil itibariyle hem çalışma voltajları hemde Pin sayısı açısından farklılık gösterdiklerinden daha özel uygulamalar için kullanılırlar.
Şimdi burada bir saplama yapalım. Bu konuda önceden araştırma yapan arkadaşlar hemen burada diyeceklerdir ki. "Ya hu kardeşim senin burada anlattığın, RS-232 'dediğin Port Aslında IBM RS-574 Portundan başka bir şey değil.!!" Doğrudur. Aslında RS-232 portu 25 Pinlidir. RS-574 (IBM PC/AT) Portu 9 pinli ve bizim burada inceleyeceğimiz konunun baş iletişim portudur. Ancak zaman içerisinde olan teknolojik değişmeler. RS-232 Portunu bilgisayarlardan kaldırmış yerini RS-574 Portuna bırakmıştır ve ne yazıktır ki Bizim RS-574 Portunun adı RS-232 olarak kalmıştır. Bende bundan böyle bu porta RS-232 diyeceğim. Hatta öyle demiyeceğim Direkt "Seri Port" diyeceğim. Hah! en güzeli bu.
Dediğim gibi seri portumuzun 9 adet Pin(iğne)'i var. İlgili görüntü aşağıda!.
Açılımıda burada
Pin Numarası Açıklama Pin Numarası Açıklama
1 DCD(Karşı Cihaz Hazırmı?) 6 DSR(Veri Set'i Hazır Sinyalı)
2 RXD(Alınan Veri) 7 RTS (Gönderme isteği sinyali)
3 TXD(Gönderilen Veri) 8 CTS (Gönderileni bellekten sil)
4 DTR(Veri Teriminalı hazır sinyalı) 9 Zil Kontolü
5 GND(Mantıksal Toprak)
Sizinde burada anladığınız gibi bizim 9'pinli seri portumuzda veri iletişimi sadece 2 pin üzerinden oluyor. Şimdi bu bizim pinlerimizin ne işe yaradığına bir bakalım.
DCD (Data Carrier Detect)
Yukarıdaki tabloda da belirtildiği gibi DCD pini bağlantı yapılacak olan cihazın veri iletişimine hazır olup olmadığını ya da bu cihazın iletişim için çalışıp çalışmadığını anlamamıza yarar. Bu sinyal iletişim yapılacak cihaz tarafından bize gönderilir. Eğer buradan gelen voltaj OFF değerinde ise karşı taraf hatta ve veri iletişimine hazır olduğunun göstergesidir. Burada bir ek yapalım. Bu sinyal veri iletişiminde her zaman gönderilen bir bilgi değildir. Bu cihaz tarafından ya da sizin programınızın özelliğine göre sizin belirlediğiniz zamanlarda gönderilir. Kısaca cihazımızın karşıda olup olmadığını 1. Numaralı Pinimiz Olan DCD'nin durumu ile öğreniriz.
RXD (Receive Data) , TXD (Transmitted Data)
Bu pin üzerinden biz karşı bilgisayardan veriyi alırız. RXD ve TXD pinleri kardeş pinlerdir. TXD pini ise bizim karşı cihaza veriyi göndermemize yarar. Bu Pinlerin voltaj aralıkları Gönderilecek karakterin ya da bilginin cinsine göre 1 ya da sıfır olur. Örneğin Göndermek istediğimiz veri "A" ise bu karakterin binary (ikili sistem kodu) 1100101 olacaktır. RXD pininde veriyi alırken de aynı bu şekilde alırız.
DTR (Data Terminal Ready)
Bu pin bizim veri iletimini hazır olduğumuzu karşı tarafa bildiren pindir. Off değeri bizim veri iletişimine hazır oluğumuzu On değeri ise bizim veri iletişimine hazır olmadığımızı belirtir.
GND (Logical Ground)
Teknik olarak GND pinine ait olan sinyal bir sinyal ya da bir voltaj değildir fakat diğer pinlerdeki işletilecek sinyallerde bu pin (Yani Mantıksal Toprak) olmadan işletilemezler. Basit olarak GND pini hangi voltajın negatif hangi voltajın pozitif olacağını belirlemede bir referans noktasıdır.
RTS (Request To Send)
Önceden seri port yapısını açıklamada verilerin bir an içerisinde bir kez gittiğinden bahsetmiştik. Yani bir anda sadece bir bit lik veri kümesi gönderilebilir. Bu pin ise bizim gönderilecek olan verilerimizin daha olduğunu belirterek diğer veriler için karşı cihazın kendini hazılaması gerektiğini bildiren sinyali yollar. Bu sinyal genelde off durumundadır.
CTS (Clear To Send)
Bu pine sinyal karşı cihazdan gelir. Off pozisyonu bizim cihazımızdan karşı cihaza gönderilecek verinin devamının olduğunu belirtir.
RTS ve CTS sinyalleri cihazların veri iletişiminin düzgün olmasını sağlar. Çoğu cihazda RTS ve CTS sinyalleri otomatik olarak Off pozisyonundadır.
Şimdi hazır bu kadar pin bilgisi vermişken hemen Null-Modem kablomuzuda inşaa edelim.
9pin to 9 pin Null-Modem Kablosu
Bilgisayarlar arasındaki seri iletişimi gerçekleştirmek için bu kablo kullanılır. Bu kablonun adı bazen seri kablo olarak da geçer. Ancak piyasada pek bulunan bir kablo değildir. Bu yüzden bu kabloyu kendimiz yapacağız. Bu iş için gerekenler:
1. İki adet "Dişi" Seri port (Elektronikçilerde rahatlıkla bulabilirsiniz..)
2. Kalem Havyamız ve Lehimimiz (Bunları da elektronikçilerde rahatlıkla bulabilirsiniz)
3. Maharet (İşimiz biraz ince olacak o yüzden elinizin hassas ve yapılacak liehimlerin düzgün olması gerekir.Bacakları lehim yaparken birbirine kısa devre ettirmeyin!!)
4. Null-Modem kablo şeması.
5. içinde 9 damar bulunan bir data kablosu yada buna uyan bir kablo ( Elektronikçilerde bu çeşit bir kabloyu bulabilirsiniz. Bu kabloyu bulamazsanız. Telefon kablosuda işinizi görür.) Malzemeler hazır.Kablonun yapımı çok basit. Öncelikle aldığımız dişi seri port fişlerimizin 1. ve
6.pinlerini bir miktar kablo vasıtasıyla birbirine lehimleyin. Daha sonrada aşağıda verilen şemaya uygun olarak kabloları bu fişlere lehimleyin. Olay bu kadar basit. Alın size Null-Modem Kablosu...
[B]Gerekenler:
1. İki adet bilgisayarımız (Linux Çalıştırsın yeter)
2. Bir adet Null Modem Kablomuz
3. Linux İşletim sistemimiz.( Rahatça kullandığınız bir Linux sürümü)
4. C, C kitaplarımız ( Bu iş için C,C Bilmeniz gerekiyor! .Kitaplarda takıldığınız yerler için neolur ne olmaz.)
5. Bir adet jumper.(Bir kandırmaca yapmamız gerekebilir ileride dursun şimdilik)
6. Lehim , Havya
7. Lehim kalemi (Yanlış lehimlersek lehimi çekmek için yokluğu o kadar önemli değil.)
8. Kağıt Kalem.
9. Sukunet,sabır ve sakinlik
10. Bol abur cubur. ( Bu benim tercihimdir. Sakinleştiriyor
[b]Evet şimdilik ilk aşamada bize gerekenler bunlar. Bunları temin ettiğinizi varsayarak şimdi işin teorik kısımlarına değineceğim. Öncelikle "Seri Haberleşme nedir?" konusuna bir bakalım.
Seri Haberleşme Nedir?
Bilgisayarlar veya türevleri cihazların birbirleri arasında haberleşmeleri bu sihirli dünyanın minik büyülerinden birisidir.Bu işin baş aktörleri arasında da bizim atölyemizde birazdan tezgaha yatıracağımız seri port gelmektedir. Seri iletişim portumuz tamamen bu iş için dizayn edilmiş bir sistemdir. Çok basitçe Seri port üzerinden haberleşmeyi "UART" dediğimiz bir çip yapar. Seri portumuzda bu çipin dış dünyaya açılan bir kapısıdır. "UART" çiplerimiz sadece bilgisayarlar arasında haberleşmek için kullanılmaz. Haberleşme yapılması istenen ( Seri haberleşme ) her elektronik cihazda bu çipler ve türevleri kullanılır.
Bu tarz bir iletşimde haberleşmede bilgisayarların temeli olan 1 ve 0 lar vasıtasıyla olur. Siz seri port üzerinden bir bilgi karakter ya da sözcük gönderdiğinizde bu kelime ya da karakter bit lere ayrılır (yani bir ve sıfır haline döner) ondan sonra bir seferde bir bit alınır veya gönderilir. Seri iletişimde hız iki ölçü birimiyle ifade edilir. Bunlardan birincisi bizim "bps" dediğimiz "Bits Per Second" (Saniyede gönderilen bit sayısı) ya da "Baudot Rate" denen "Baud" olarak ifade edilir. Örneğin Seri portumuzun hızı 9600 Baud olarak kabul edelim. Buda demek oluyor ki. Bizim seri portumuz bir saniye aralığında 9600 bit gönderebiliyor. Buda 9600/8=1200 byte'a eşit oluyor. ( Bir byte 8 bit tir) Tabi doğal olarak her ölçü biriminde olduğu gibi bizim baud'larımız ya da bit lerimiz 1000 olunca artık bu birimi "kilo bit" (kbit) ya da "Kilo Baud"(Kbaud) olarak adlandırıyoruz.
İşin tekniğinde Bizim bu seri portumuza "Data Communications Equipment" ya da " Data Terminal Equipment" 'te derler. Peki bunlar arasındaki fark nedir. Fark aslında çok ince bir çizgiyle ayrılıyor. İki bilgisayarımız olduğunu var sayıyoruz. Bunlardan birinci bilgisayarımız veri göndersin. İşte Bu Data Terminal Equipment Diğer bu veriyi alanda Data Communications Equipment oluyor.Ancak Siz bunları sadece bilin yoksa bunlar işin masal kısmı.:
Seri portlarımızın tabiki adı Seri port değil. Bunun bir teknik adı var. Buda RS-232 (Bizim bilgisayarlarımızdaki portun adı).Peki nedir bu RS-232?.
RS-232 nedir?
Kısaca RS-232 nin tanımı Elektronik Endüstrisi Birliği (Electronic Industries Association (EIA) tarafından tanımlanmış elektriksel iletişim için seri bağlantı standartıdır.Yani Seri iletişimin bir standartı vardır ve buda değişmez. RS-232 standartıda kendi arasında 3 Guruba Ayrılır (RS-232A,RS-232B,RS-232C). Bunların arasındaki fark herbirinin Çıkış ve iniş Voltajlarının ( Yani 1 ve 0 voltajlarının) farklı olmasıdır. Ancak günümüzde en çok kullanılan RS-232 cinsi RS-232C'dir. Bu RS-232 cinsinin voltajları
Off( Yani 0) -3,-12V
On(Yani 1) 3, 12V
aralığındadır. Ve bizim RS-232C miz. 8m'ye kadar arada herhangi bir dönüştürücü ya da akım yukselteç devresi olmadan veriyi karşı tarafa sorunsuz olarak iletebilir. Ancak bu metreden sonrasında hepinizin bildiğini sandığım bir elektrik yasası devreye girer ve o yasada der ki : " Mesafe uzadıkça Gerilim Düşer!" Yani bizim RS-232C mizde 8 mt'den sonrası karşı tarafa gelecek gerilim -3,-,12, 3, 12 V aralığından düşük olacağından veri iletilemeyecek, iletilse bile karşı cihaz bu düşük gerilim aralığını algılayamayacağından herhangi bir tepki vermeyecektir.
Bu bizim bilgisayarımızda standart olarak bulunan 9 pinli seri portun basitçe elektriksel yapısı. Bununların yanında birde RS-422 ve RS-574 standartındaki seri portlar vardır. Bu portların hem şekil itibariyle hem çalışma voltajları hemde Pin sayısı açısından farklılık gösterdiklerinden daha özel uygulamalar için kullanılırlar.
Şimdi burada bir saplama yapalım. Bu konuda önceden araştırma yapan arkadaşlar hemen burada diyeceklerdir ki. "Ya hu kardeşim senin burada anlattığın, RS-232 'dediğin Port Aslında IBM RS-574 Portundan başka bir şey değil.!!" Doğrudur. Aslında RS-232 portu 25 Pinlidir. RS-574 (IBM PC/AT) Portu 9 pinli ve bizim burada inceleyeceğimiz konunun baş iletişim portudur. Ancak zaman içerisinde olan teknolojik değişmeler. RS-232 Portunu bilgisayarlardan kaldırmış yerini RS-574 Portuna bırakmıştır ve ne yazıktır ki Bizim RS-574 Portunun adı RS-232 olarak kalmıştır. Bende bundan böyle bu porta RS-232 diyeceğim. Hatta öyle demiyeceğim Direkt "Seri Port" diyeceğim. Hah! en güzeli bu.
Dediğim gibi seri portumuzun 9 adet Pin(iğne)'i var. İlgili görüntü aşağıda!.
Açılımıda burada
Pin Numarası Açıklama Pin Numarası Açıklama
1 DCD(Karşı Cihaz Hazırmı?) 6 DSR(Veri Set'i Hazır Sinyalı)
2 RXD(Alınan Veri) 7 RTS (Gönderme isteği sinyali)
3 TXD(Gönderilen Veri) 8 CTS (Gönderileni bellekten sil)
4 DTR(Veri Teriminalı hazır sinyalı) 9 Zil Kontolü
5 GND(Mantıksal Toprak)
Sizinde burada anladığınız gibi bizim 9'pinli seri portumuzda veri iletişimi sadece 2 pin üzerinden oluyor. Şimdi bu bizim pinlerimizin ne işe yaradığına bir bakalım.
DCD (Data Carrier Detect)
Yukarıdaki tabloda da belirtildiği gibi DCD pini bağlantı yapılacak olan cihazın veri iletişimine hazır olup olmadığını ya da bu cihazın iletişim için çalışıp çalışmadığını anlamamıza yarar. Bu sinyal iletişim yapılacak cihaz tarafından bize gönderilir. Eğer buradan gelen voltaj OFF değerinde ise karşı taraf hatta ve veri iletişimine hazır olduğunun göstergesidir. Burada bir ek yapalım. Bu sinyal veri iletişiminde her zaman gönderilen bir bilgi değildir. Bu cihaz tarafından ya da sizin programınızın özelliğine göre sizin belirlediğiniz zamanlarda gönderilir. Kısaca cihazımızın karşıda olup olmadığını 1. Numaralı Pinimiz Olan DCD'nin durumu ile öğreniriz.
RXD (Receive Data) , TXD (Transmitted Data)
Bu pin üzerinden biz karşı bilgisayardan veriyi alırız. RXD ve TXD pinleri kardeş pinlerdir. TXD pini ise bizim karşı cihaza veriyi göndermemize yarar. Bu Pinlerin voltaj aralıkları Gönderilecek karakterin ya da bilginin cinsine göre 1 ya da sıfır olur. Örneğin Göndermek istediğimiz veri "A" ise bu karakterin binary (ikili sistem kodu) 1100101 olacaktır. RXD pininde veriyi alırken de aynı bu şekilde alırız.
DTR (Data Terminal Ready)
Bu pin bizim veri iletimini hazır olduğumuzu karşı tarafa bildiren pindir. Off değeri bizim veri iletişimine hazır oluğumuzu On değeri ise bizim veri iletişimine hazır olmadığımızı belirtir.
GND (Logical Ground)
Teknik olarak GND pinine ait olan sinyal bir sinyal ya da bir voltaj değildir fakat diğer pinlerdeki işletilecek sinyallerde bu pin (Yani Mantıksal Toprak) olmadan işletilemezler. Basit olarak GND pini hangi voltajın negatif hangi voltajın pozitif olacağını belirlemede bir referans noktasıdır.
RTS (Request To Send)
Önceden seri port yapısını açıklamada verilerin bir an içerisinde bir kez gittiğinden bahsetmiştik. Yani bir anda sadece bir bit lik veri kümesi gönderilebilir. Bu pin ise bizim gönderilecek olan verilerimizin daha olduğunu belirterek diğer veriler için karşı cihazın kendini hazılaması gerektiğini bildiren sinyali yollar. Bu sinyal genelde off durumundadır.
CTS (Clear To Send)
Bu pine sinyal karşı cihazdan gelir. Off pozisyonu bizim cihazımızdan karşı cihaza gönderilecek verinin devamının olduğunu belirtir.
RTS ve CTS sinyalleri cihazların veri iletişiminin düzgün olmasını sağlar. Çoğu cihazda RTS ve CTS sinyalleri otomatik olarak Off pozisyonundadır.
Şimdi hazır bu kadar pin bilgisi vermişken hemen Null-Modem kablomuzuda inşaa edelim.
9pin to 9 pin Null-Modem Kablosu
Bilgisayarlar arasındaki seri iletişimi gerçekleştirmek için bu kablo kullanılır. Bu kablonun adı bazen seri kablo olarak da geçer. Ancak piyasada pek bulunan bir kablo değildir. Bu yüzden bu kabloyu kendimiz yapacağız. Bu iş için gerekenler:
1. İki adet "Dişi" Seri port (Elektronikçilerde rahatlıkla bulabilirsiniz..)
2. Kalem Havyamız ve Lehimimiz (Bunları da elektronikçilerde rahatlıkla bulabilirsiniz)
3. Maharet (İşimiz biraz ince olacak o yüzden elinizin hassas ve yapılacak liehimlerin düzgün olması gerekir.Bacakları lehim yaparken birbirine kısa devre ettirmeyin!!)
4. Null-Modem kablo şeması.
5. içinde 9 damar bulunan bir data kablosu yada buna uyan bir kablo ( Elektronikçilerde bu çeşit bir kabloyu bulabilirsiniz. Bu kabloyu bulamazsanız. Telefon kablosuda işinizi görür.) Malzemeler hazır.Kablonun yapımı çok basit. Öncelikle aldığımız dişi seri port fişlerimizin 1. ve
6.pinlerini bir miktar kablo vasıtasıyla birbirine lehimleyin. Daha sonrada aşağıda verilen şemaya uygun olarak kabloları bu fişlere lehimleyin. Olay bu kadar basit. Alın size Null-Modem Kablosu...
1 sayfadaki 1 sayfası
Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz