Seri bağlantı noktası

Seri port seri bir bağlantı noktası, seri iletişim (İng.: ), her seferinde içeriye veya dışarıya doğru bir bit bilgi transfer eden fiziksel bir arayüzdür. Kişisel bilgisayarların tarihi boyunca terminaller veya modemler gibi cihazlar ile bilgisayarlar arasındaki veri transferi çoğunlukla seri bağlantı noktaları üzerinden sağlanmıştır. Fare, klavye, diğer çevre birimleri de bu yolla bilgisayara bağlanmaktadır.

Ethernet, FireWire, ve USB gibi arayüzler de veriyi seri bir akım (stream) olarak gönderdiği için “seri bağlantı noktası” terimi genellikle RS-232 standardı ile az veya çok uyumlu donanımı tanımlamakta kullanılır. Amaç bir modem veya benzeri başka bir iletişim cihazı ile arayüz oluşturulmasıdır.

2006 yılı itibarıyla USB arayüzü artık seri bağlantı noktasının yerini almış durumda, modern bilgisayarların çoğunluğu diğer cihazlara USB bağlantısı ile bağlanmakta ve birçoğunda artık tek bir seri bağlantı noktası bile bulunmamaktadır. Seri bağlantı noktalarından maliyeti düşürmek için vazgeçilmekte ve bu bağlantı noktaları legacy port olarak adlandırılmaktadır.

IBM 5150 gibi bazı IBM bilgisayarlarda UART (Universal asynchronous receiver/transmitter) adı verilen bir tümleşik devre (integrated circuit) kullanılmaktaydı. Bu tümleşik devre karakterleri asenkron seri iletişim (asynchronous serial communication) biçimden (ve biçime) çevirmekte ve otomatik olarak verinin zamanlamasını ve çerçevelenmesini “framing” kontrol ediyordu. Bazı eski ev bilgisayarları “home computers” gibi çok ucuz sistemler veriyi CPU'ya çıkış (output) pininden göndermek için bit banging adı verilen bir teknikle kullanıyorlardı.

RS-232 standardının aslı 25 pinli D tipi “İng.: ” bir bağlayıcı kullanımını şart koştuğundan çoğu tasarımcı bu standardın tamamını değil de alt setlerini kullanmayı tercih etti: standart ile uyum sağlamak yerine daha ucuz ve küçük boyutlara sahip konnektörler (özellikle IBM PC-AT’de kullanılan DE-9 versiyonu) kullanmayı tercih ettiler. Daha sonra piyasaya çıkan dokuz pinli D-subminiature konnektörü ise ne gerekli ne de bir seri bağlantı noktasında kullanılmaya uygun değildi.

Macintosh’un birçok modeli bu bağlayıcı standardı ile ilgili (fakat daha hızlı) olan RS-422 standardını benimsedi, bunun için genellikle Alman Mini-DIN konnektörleri kullanıyorlardı.

Son yıllarda elektronikte yaşanan gelişmeler daha yüksek hızlı seri iletişimi mümkün hale getirdi, böylece USB ve FireWire gibi daha yeni seri iletişim standartları RS-232’nin yerini almaya başladı. Bu bağlantılar depolama cihazları, ses cihazları ve video cihazları gibi, daha yavaş hızlardaki seri bağlantılarla çalışamayacak olan cihazların bilgisayarlara bağlanmasına olanak tanıdı.

İşletim sistemleri bilgisayarların seri bağlantı noktalarından bahsederken genellikle sembolik isimler kullanırlar. Unix tipi işletim sistemleri seri bağlantı noktası cihazlarını genellikle /dev/tty* diye işaretlerler, burada * terminal cihazını tanımlayan bir dizidir; bu dizinin sentaksı işletim sistemine ve cihazın kendisine bağlıdır.

Bir laptop’ın seri bağlantı noktası yoksa onların yerine kullanılan en popüler bağlantı noktaları USB adaptörleri ve PCMCIA kartlarıdır. USB adaptörleri genellikle eski tip “legacy” cihazlarla çalışmaz. Daha pahalı olan PCMCIA kartı gerçek bir seri bağlantı noktası (donanım) sağlar. Eğer mutlaka RS-232 cihazları ile iletişim sağlanmak isteniyorsa, genellikle fiziksel bir RS-232 bağlantı noktası kullanılarak “legacy” yazılım ile daha iyi uyum sağlanabilir.

RS-232 standardı, özel ve genel amaçla üretilen çoğu cihaz tarafından kullanılır. Aşağıda, bir PC'nin seri portuna bağlanan en yaygın cihazların listesi vardır. Modem ve seri fare gibi bazıları her ne kadar artık kullanılmıyor olsa bile diğerleri hâlâ kullanılmaktadır.

İletişim konusunda asenkron başlama ve durma için seri bağlantılar yapılırken yığınla yazılım ayarı gerekir. Bunların arasında en çok yapılanlar; hızın ayarlanması, karakter başına veri biti sayısı, eşlik, ve karakter başına durma bitlerinin sayısı belirtilebilir. Ethernet, FireWire ve USB gibi standartların üzerinde yapılan basitleştirme çalışmalarından biri kullanılan parametrelerin sabit değerleri olması ve kullanıcıların yapılandırmaları değiştirememesi, aslında değiştirmeye gerek duymamasıdır; hız sabittir veya otomatik olarak ayarlanır. UART tümleşik devresi kullanan modern seri bağlantı noktalarında tüm ayarlar yazılım ile kontrol edilir. 1980’lere ve daha eskisine ait donanımlarda ayarların değiştirilmesi için devre kartları üzerinde atlama kablolarına veya anahtarlara gereksinim duyulmaktaydı.

Seri bağlantı noktaları iki seviyeli (ikili) sinyalleme kullanırlar, böylece saniyede bit cinsinden veri hızı bauddaki sembol hızına eşit olur. Asenkron iletişim başlama / durması için kullanılan ortak, saniyede bit hızları 300, 1200, 2400, 9600, 19200 baud, vs.dir. Bu hızlar elektromekanik teleprinterların hızlarının katları temel alınarak belirlenmiştir. Bağlantı noktasının ve cihazın hızlarının birbirine uygun olması gerekir. Bazı cihazlar bağlantı noktasının hızını otomatik olarak saptayabilmektedir. RS–232 standardı resmen 20.000 bit / saniye olarak sınırlandırılmış olmasına rağmen, popüler kişisel bilgisayarlarda kullanılan seri bağlantı noktaları 115.000 bit / saniye seviyelerine kadar ayarlanabilmektedir. Bit hızının bu seviyelere ayarlanmış olması çalışma bağlantısının aynı hızda gerçekleşeceği anlamına gelmemektedir. Her seri bağlantı noktasıyla belirtilen her bit hızına ulaşabilmek mümkün değildir. Müzik aletlerini kontrol etmek için kullanılan MIDI gibi bazı özel amaçlı protokollerde veya otomobillerde kullanılan OBD tanımlamalarda yukarıda belirtilen seri veri hızlarının dışında hızlar kullanılabilmektedir. Hız, çerçeveleme için bitleri de içerir (durma bitleri, eşlik, vs.) ve böylece etkin veri hızı bit iletim hızından daha düşük gerçekleşir. Örneğin 8-N-1 gösteriminde veri için bitlerin sadece %80’i kullanılabilir (her sekiz bitlik veri için, iki tane daha çerçeveleme biti gönderilir).

Sıkça desteklenen veri hızları; 75, 110, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600 ve 115200 bit/s'dir. 1,843200 MHz frekansına sahip bir kristal osilatör özellikle bu amaç için kullanılır. Bu da, veri hızının 16 katıdır ve seri port devresi, bu hızı as katlarına doğru kolayca bölebilir.

Her bir karakterdeki veri biti sayısı beş (Bodo alfabesi için), altı (nadiren kullanılır), yedi (gerçek ASCII için), sekiz (her türlü veri için, bu değer bir bayt büyüklüğüne karşılık gelmektedir) veya dokuz (nadiren kullanılır) olabilir. Daha yeni uygulamalarda hemen hemen evrensel olarak sekiz veri biti kullanılmaktadır. Beş veya yedi bit genellikle teleprinterlar gibi nispeten daha eski cihazlar ile işe yaramaktadır.

Seri iletişim tasarımlarının çoğu her bir bayttaki ilk LSB’yi (düşük öncelikli bit, İng. ) gönderir. Bu standarta “küçük endian” adı da verilir. Bir de kullanımı mümkün olmasına rağmen nadiren kullanılan “büyük endian” standardı vardır, diğer bir ifadeyle MSB (yüksek öncelikli bit, İng. ).

Eşlik, iletim esnasında meydana gelen bazı hataları saptama yöntemidir. Seri bir bağlantı noktası ile birlikte kullanıldığında her veri karakteri ile birlikte bir de fazladan veri biti gönderilir. Gönderilen bu veri biti öyle ayarlanır ki her bir karakterin içerisinde bulunan 1 bitlerin sayısı, eşlik biti de dahil olmak üzere, her zaman tek veya her zaman çift sayıdır. Eğer hatalı bir 1 bitlik sayısına sahip bir bayt alındığında bu baytın bozuk olduğu anlaşılır. Eğer eşlik doğruysa ortada hata yok veya çift sayılı bir hata yok anlamı çıkar. Tek bir eşlik biti her karakter üzerinde hata düzeltmenin (error correction) uygulanabilmesine imkân tanımaz ve seri veri linkleri üzerinde çalışan iletişim protokolleri verinin geçerliliğini saptamak üzere sağlama toplamı gibi ve hatalı bir şekilde iletilen verinin tekrar iletilmesi için istekte bulunmak gibi daha yüksek seviye mekanizmalara sahip olabilir.

Serinin eşliği boş (N), tek sayı (O), çift sayı (E), işaret (M) veya boşluk (S) olabilir. Boşun anlamı hiçbir eşlik bitinin gönderilmediğidir. İşaret eşliği, eşlik bitinin her zaman işaret sinyal durumuna ayarlanmış olduğu (mantıksal 1) ve benzer şekilde, boşluk eşliği eşlik bitini her zaman boşluk sinyal durumunda anlamına gelir. Fazla kullanılmayan uygulamalar bir yana bırakılacak olursa, adreslemenin, özel sinyalleşmenin, işaretlemenin veya boşluk eşliğinin bir çeşidi olarak 9.nun (eşlik) bitinin kullanılması, pek olağan bir durum değildir. Çünkü hata saptama bilgilerine çok az katkısı vardır. Tek sayılı eşliğe çift sayılılardan daha fazla rastlanır. Çünkü en azından bir adet durum geçişi meydana gelir, bu da onu daha güvenilir hale getirir. En çok görülen eşlik ayarı, “boş”dur ve hata saptaması işlemi protokolün daha yüksek seviyelerinde gerçekleştirilir.

Alıcı donanımın tekrar senkronize olabilmesi için gönderilen her baytın sonunda durma bitleri gönderilir. Elektronik cihazlar genellikle tek bir durma biti kullanır. Seyrek olarak da özellikle teleprinter’lar gibi yavaş cihazlar kullanıldığında, birbuçuk veya iki durma bitine gerek duyulur.

Seri bir bağlantı noktası, veri iletimini duraklatıp tekrar başlatmak için arayüzde sinyaller kullanabilir. Örneğin nispeten daha yavaş bir yazıcı, cihaz bir satır ilerleyene kadar kendisine gönderilen verinin duraklatılması için seri bağlantı noktası ile el sıkışmaya “handshake” ihtiyaç duyuyor olabilir. Donanım el sıkışma sinyalleri genellikle RS-232 RTS/CTS, DTR/DSR sinyal devrelerini kullanmaktadır.

Bir başka akış kontrol yöntemi de verinin akışını kontrol etmek için XON/XOFF gibi özel karakterlerin kullanımı olabilir. Gönderici veri göndereceği zaman, XON/XOFF karakterleri kontrol için alıcı tarafından göndericiye gönderilir, diğer bir ifadeyle bu karakterler gönderilen veri ile ters istikamette gönderilirler. XOFF karakteri alıcının veri almak için tekrar uygun hale gelene kadar göndericinin yeni veri göndermemesi için alıcı tarafından gönderilir. XON işareti ise alıcının veri almaya hazır olduğunun ifadesi olarak göndericiye yollanır. Eğer kontrol karakterleri veri dizisinin bir parçasıysa, akış kontrolün bir parçası olarak yorumlanmaması için başka kodla geçiş dizisinin (escape sequence) bir parçası olarak gönderilmesi gerekir. Daha başka bir sinyal devresine gereksinim olmadığından XON / XOFF akış kontrolü üç kablolu bir arayüz üzerinde uygulanabilir.

Sanal seri bağlantı noktası (virtual serial port), standart seri bağlantı noktasının bir emülasyonudur. Bu tür bağlatı noktaları ilave donanıma (genişleme kartları expansion cards gibi) gerek duyulmadan, işletim sistemi üzerinde ek seri bağlantı noktaları yaratabilen özel yazılım ürünleri tarafından gerçekleştirilir. Standart fiziksel seri bağlantı noktasının aksine, sanal bağlantı noktası herhangi bir isim alabilir (COM255, VSP33, vs.). PC’nizde sınırsız sayıda sanal seri bağlantı noktası yaratabilirsiniz. Karşınıza çıkacak olan tek kısıtlama bilgisayarın performansı ile ilgilidir. 255 tane seri bağlantı noktasını emüle edebilmek için bilgisayar önemli ölçüde kaynak ayırmak zorundadır.

Sanal seri bağlantı noktası “”; Baud genişliği (Baud rate), veri biti, eşlik biti, durma biti, gibi tüm seri bağlantı noktası fonksiyonlarını emüle eder. Ve bunlara ilaveten bacak fonksiyonlarını uyarlayarak ve tüm tek hatları emüle ederek (DTR / DSR / CTS / RTS / DCD / RI ) veri akışını da kontrol eder.

Sanal seri bağlantı noktası emülasyonu yeterli sayıda fiziksel seri bağlantı noktasının olmadığı veya o anda gerekli ihtiyaçları karşılayamadığı durumlarda faydalı olabilir. Örneğin sanal seri bağlantı noktaları, bir seri bağlantı noktasına bağlanmış olan bir GPS cihazındaki verinin muhtelif uygulamalar arasında paylaşılmasında kullanılabilir. Bir başka kullanım şekli, diğer herhangi bir seri bağlantı cihazıyla İnternet veya LAN üzerinden sanki o cihaz doğrudan bilgisayara bağlıymışcasına bağlantı kurulması (ethernet üzerinden seri teknolojisi). İki bilgisayar arasında veya uygulama arasında emüle edilmiş modemsiz link ile bağlantı kurabilirsiniz. Piyasada bulunan sanal seri bağlantı noktalarının çoğunluğu Microsoft Windows’un son versiyonları ile uyumludur ve bazıları Windows CE, Windows Mobile ve Pocket PC altında da çalışabilmektedir.