Seri İletişim

Elektronik sistemler,  birbirine bağlı devrelerden ve birbirleri ile haberleşmeye ihtiyaç duyan komponentlerden oluşmuştur (işlemciler veya diğer entegre devreler). Aygıtların, çevre hakkında bilgi iletmek, durumlarındaki değişiklikleri ifade etmek veya yardımcı eylemler gerçekleştirilmesini istemek için birbirleriyle iletişim kurmaları gerekir. Bu devrelerin veri alış-verişi yapabilmeleri için ortak bir iletişim protokolünü paylaşmaları gerekir. Bu veri alışverişini gerçekleştirmek için birçok iletişim protokolü tanımlanmıştır ve genel olarak her prototkol iki kategoriden birine ayrılabilir: paralel veya seri iletişim.

Paralel ve Seri nedir?

Paralel arabirimler aynı anda birden fazla biti aktarır (1 baytlık bir bilgide 8 bit vardır). Genellikle sekiz, on altı veya daha fazla hatta sahip bir veri yolu gereklidir. Veriler, büyüktür ve aynı anda tüm bitler 1 ve 0 dalgaları ile aktarılır.

1
Her saat darbesinde 1 bayt (8bit) gönderen 8 bit veri veri yolu (data bus). 9 tel kullanılmıştır.

 

Seri arabirimler, bir seferde 1 bit veri akışını sağlar. Bu arayüzler, genellikle bir tel ile veri gönderebilir ve dörtten fazla hatta ihtiyaç duymadan çalışabilirler.

2
Her seri saat darbesinde 1 bit ileten seri arabirim örneği. Sadece 2 kablo kullanılmıştır

Paralel ve Seri haberleşme tiplerini araç trafiği için kullanılan yollar olarak düşünün: Paralel arabirim 8+ şeritli mega otoyol olurken, seri arabirim iki şeritli bir kırsal bölge yoluna benzer. Belirli bir zaman süresince mega otoyol, potansiyel olarak daha fazla insanı hedeflerine götürür ancak kırsal bölgenin iki şeritli yolu sadece kendi amacına hizmet eder ve inşa maliyeti 8 şeritli yola göre göre daha azdır.

Paralel iletişim kesinlikle avantajlıdır. Hızlı, basit ve uygulanması nispeten kolay. Ancak daha fazla giriş / çıkış (G / Ç) hattı gerektirir. Bir projeyi basit bir Arduino Uno’da gerçekleştirirken kullandığımız G / Ç pinlerinin ne kadar değerli ve az sayıda olduğunu biliyoruz. Bu nedenle, pin ekonomisi için potansiyel hızı feda ederek seri iletişimi tercih ediyoruz.

Asenkron (Eşzamansız-UART) ve Senkron (eşzamanlı-

USART) Seri İletişim

Yıllar geçtikçe, gömülü sistemlerin belirli ihtiyaçlarını karşılamak için onlarca seri protokol hazırlandı. USB (evrensel seri veri yolu) ve Ethernet, yaygın olarak herkes tarafından iyi bilinen bilgisayar seri arabirimleridir. Diğer çok yaygın seri arayüzler SPI, I2C ve bugün burada konuşacağımız seri standartları içerir. Bu seri arabirimlerin her biri, senkron veya asenkron gruplardan biri içerisinde gösterilebilir .

Senkron seri arabirim (USART), veri hattını (bus) her zaman bir saat sinyaliyle eşleştirir ve bu nedenle senkron bir seri veri yolundaki tüm aygıtlar ortak bir saat sinyalini paylaşır. Dolayısı ile her bir cihaza 1 adet saat sinyali için ilave bir kablo çekilmelidir. Bu arabirim, genellikle daha hızlı bir seri aktarım yapar ancak iletişim aygıtları arasında en az bir ek kablo gerektirdiğinden kablo yoğunluğu oluşur. Senkron arabirimlere örnek olarak SPI ve I2C verilebilir.

Asenkron seri arabirim (UART) ile, verilerin harici bir saat sinyal desteğine ihtiyaç olmadan aktarıldığı anlamına gelir. Bu iletim yöntemi, veri aktarımı için gerekli olan kablo bağlantıları ve G / Ç pimlerini asgariye indirmek için mükemmeldir. Ancak bu, veri aktarımı ve iletimi için ekstra bir çaba harcamamız anlamına gelir. Bu yazıda tartışacağımız Asenkron tip seri protokol, asenkron aktarımların en yaygın biçimidir. Aslında o kadar yaygındır ki çoğu insan “seri” dediğinde bu protokol hakkında konuşurlar.

Bu yazının ana konusu olan UART seri protokol, gömülü elektroniklerde yaygın olarak kullanılmaktadır.

Seri İletişim Kuralları

Eşzamansız seri protokol, sağlam ve hatasız veri aktarımlarını sağlamaya yardımcı olan bazı yerleşik kurallara sahiptir. Harici saat sinyalini kullanmaktan kurtulduğumuz bu mekanizmalar şunlardır:

– Veri bitleri (data bits)
– Senkronizasyon bitleri (Synchronization bits)
– Eşlik bitleri (parity bits)
– Baud hızı (baud rate)

Bu sinyal mekanizmalarının çeşitliliği sayesinde, verileri seri olarak göndermenin tek bir yol olmadığını göreceksiniz. Protokol çok rahatlıkla yapılandırılabilir. Kritik kısım, bir seri veri yolundaki her iki aygıtın da aynı protokolleri kullanacak şekilde yapılandırıldığından emin olmaktır.

Baud Rate

Baud rate, seri veri hattı üzerinden ne kadar hızlı veri gönderileceğini belirtir. Genellikle saniyede bit sayısı – bit per second- (bps) cinsinden ifade edilir. Baud hızını ters çevirirseniz (invert), tek bir biti iletmenin ne kadar sürdüğünü öğrenebilirsiniz. Bu değer, vericinin(tx) bir seri hattını ne kadar süreyle yüksek / düşük tuttuğunu veya alıcı cihazın hangi periyodu örneklediğini belirler.

Baud hızları belirtilen sınırlar içinde herhangi değerde olabilir. Tek şart her iki cihaz aynı hızda çalışır olmasıdır. Hızın kritik olmadığı basit şeyler için daha yaygın olan baud hızlarından biri 9600 bps’dir. Diğer “standart” baudlar ise 1200, 2400, 4800, 19200, 38400, 57600 ve 115200’dür.

Baud hızı arttıkça, daha hızlı veri gönderilir / alınır, ancak verilerin ne kadar hızlı aktarılacağına ilişkin sınırlar vardır. Çoğu mikrodenetleyici için hızlı olan 115200’ü aşan hızları göremezsiniz. Çok yüksek hızlarda, saatler ve örnekleme periyotları devam edemediğinden alıcı tarafında hatalar görmeye başlarsınız.

Verileri Çerçeveleme (Data Frame)

Aktarılan verilerin her bloğu (genellikle bir bayt), aslında bir paket veya bit çerçevesinde gönderilir. Çerçeveler (frame), verilerimize senkronizasyon ve eşlik bitleri ekleyerek oluşturulur.

3
Bir seri çerçeve. Çerçevedeki bazı sembollerin yapılandırılabilir bit boyutları vardır

Bu çerçeve parçalarının her birinin ayrıntılarına geçelim.

Veri yığını (data)

Her seri paketin asıl yükü, taşıdığı veridir. Büyüklüğü belirgin bir şekilde belirtilmediğinden, veri bloğunu yığın olarak adlandırırız. Her paketteki veri miktarı 5 ila 9 bit arasında herhangi bir değere ayarlanabilir. Elbette, standart veri boyutu, temel 8 bitlik baytınızdır ancak diğer boyutlarda da kullanımı vardır. Özellikle 7-bitlik ASCII karakterleri aktarıyorsanız, 7-bit veri parçacıkları 8’den daha verimli olabilir.

Bir karakter uzunluğunu kabul ettikten sonra, her iki seri cihaz da verilerinin bitiş noktası konusunda anlaşmak zorundadır. Verilerin, en yüksek değerlikli biti (MSB) en önce mi gönderildi, yoksa en alçak değerlikli biti (LSB) en önce mi gönderildi? Aksi belirtilmemişse, genellikle verilerin en az anlamlı bitinin (LSB) önce aktarıldığını varsayabilirsiniz.

Senkronizasyon bitleri (Synchronization bits)

Senkronizasyon bitleri, her bir veri yığınıyla birlikte gönderilen iki veya üç özel bittir. Bunlar başlangıç biti ve bitiş bitleridir. Adlarına göre bu bitler bir paketin başına ve sonuna işaret eder. Her zaman yalnızca bir başlangıç biti vardır, ancak bitiş bitlerinin sayısı bir ya da iki olarak ayarlanabilir (ancak genelde “bir” de bırakılır).

Başlangıç biti daima boşta olan bir veri hattı tarafından 1’den 0’a doğru gösterilirken, bitiş biti (veya bitleri), hattı 1’de tutarak bekleme durumuna geri dönecektir.

Eşlik bitleri (parity bits)

Eşlik, çok basittir ve düşük seviye hata kontrolünün bir biçimidir. İki özellik ile geri gelir: tek veya çift (odd veya even). “odd” artan veya kalan anlamında kullanılıyor, eğer bir sayının 2’ye bölümünden kalan olursa bu sayı “odd” anlamındadır. “even” ise eğer bir sayının 2’ye bölümünden kalan olmuyorsa ( yani bölme işleminde kalan 0 oluyorsa) bu sayı da “even anlamındadır.

Eşlik bitinin üretilmesi için, veri baytının 5-9 bitinin tamamı toplanır ve 2 ile bölünür. Bölme işleminde kalan olup olmamasına göre, eşlik bitinin set edilip edilmeyeceğine karar verilir. Örneğin, eşlik biti çift sayıya (0) ayarlanmış olarak kabul edelim ve 0b01011101 gibi bir bayta eklensin. Bayt içindeki sayıların toplamı tek sayı özelliği gösteceğinden (sayının içinde 5 adet 1 var) eşlik biti 1 olarak ayarlanır. Tersinde ise,  Eşlik biti 0 olacaktır.

Parite opsiyoneldir ve yaygın olarak kullanılmaz. Gürültülü ortamlarda iletim için yararlı olabilir, ancak aynı zamanda veri aktarımınızı biraz yavaşlatır ve  hem gönderen hem de alıcı hata kontrolü uygulasını gerektirir (genellikle başarısız alınan veriler yeniden gönderilmelidir).

Örnek = 9600 8N1

9600 8N1  (9600 baud, 8 data bits, No parity, and 1 stop bit), çok sık kullanılan seri protokollerden biridir. Peki, 9600 8N1 verisinden bir paket neye benzeyebilir? Bir örnek verelim.

‘O’ ve ‘K’ harflerinin ASCII kodunu ileten bir aygıt, iki veri paketi oluşturmak zorunda kalacaktır. Büyük harflerle gösterildiğinde;

O’nun ASCII değeri 79 (ikili sistemde 01001111 olarak belirtilir) ,

K’nın ikili değeri 75 (ikili sistemde 01001011 olarak belirtilir)’dir .

Geriye kalan tek şey ise senkron bitlerini eklemektir. Yani start ve stop bitlerini eklemektir.

Özel olarak belirtilmedi, ancak verilerin en düşük bitinin (b0) en önce olarak aktarıldığı (LSB) kabul edilir. İki baytın her birinin sağdan sola nasıl gönderildiğine dikkat edin.

OK paket

9600 bps’de aktarım yapacağımız için bu bitlerin her birini 1 veya 0 ‘da tutmak için harcadığımız zaman 1 / (9600 bps) veya bit başına 104 μs’dir.

İletilen her verinin baytı için, gönderilen aslında 10 bit vardır: bir başlangıç biti, 8 veri biti ve bir durdurma biti. Yani, 9600 bps’de saniyede 9600 bit veya saniyede 960 (9600/10) bayt gönderiyoruz.

Seri paketleri nasıl oluşturacağınızı bildiğinize göre donanım bölümüne geçebiliriz. Orada 1 ve 0 değerlerinin ve baud hızının sinyal seviyesinde nasıl uygulandığını göreceğiz.

 Donanım ve Bağlantılar

UART bir seri veri yolu sadece iki kablodan oluşur – biri veri göndermek için, diğeri almak için. Bu nedenle, seri aygıtların iki seri pini olmalıdır: alıcı, RX ve verici, TX.

Aşağıdaki resimde standart bir  seri veri yolu bağlantısı gösterilmektedir.

seri bağlantı

Buradaki her bir RX ve TX etiketlerinin cihazın kendisiyle ilgili olduğunu unutmamak önemlidir. Dolayısıyla bir cihazdaki RX, diğerinin TX’sine gitmeli ve aynı şekilde TX de diğerinin RX’ine gitmeli. Diğer bir deyişle verici (TX), alıcıyla (RX) konuşmalı, başka bir vericiyle (TX) değil.

Her iki cihazın veri gönderip alabileceği bir seri arabirim, tam çift yönlü (FULL-DUPLEX) veya yarı çift yönlü (HALF-DUPLEX)’dür. Full-dupleks, her iki cihazın aynı anda veri gönderip alabildiği anlamına gelir. Half-duplex, seri aygıtların gönderme ve alma işlemlerini sıra ile yerine getirmesi anlamına gelir.

Bazı seri veri yolları, bir gönderme ve alma aygıtı arasında yalnızca tek bir bağlantıya ihtiyaç duyacak şekilde olabilir. Örneğin, Seri LCD’ler kontrol cihazına geri gönderilecek herhangi bir veriye sahip değildir, sadece veri alır ve geri veri göndermez. Tek yönlü seri iletişim olarak bilinen şey budur. İhtiyacınız olan tek şey ana cihazın TX’sinden dinleyicinin RX hattına giden tek bir tel.

Donanım Uygulaması

Asenkron seri veri iletimini kavramsal bir yoldan ele aldık. Hangi tellere ihtiyacımız olduğunu biliyoruz. Peki, seri iletişim aslında bir sinyal seviyesinde nasıl uygulanır? Aslında çeşitli şekillerde. Seri sinyal gönderimi için bir çok standart vardır. Seri veri iletiminde 2 popüler donanım uygulamasına bir göz atalım: logic-level (TTL) ve RS-232.

Mikroişlemciler ve diğer düşük seviyeli IC’ler seri olarak iletişim kurduklarında genellikle TTL (transistör-transistor logic) seviyesinde çalışırlar. TTL seri iletişim sinyalleri, kullandığımız mikro denetleyicinin voltaj besleme aralığı (genellikle 0V ila 3.3V veya 5V) seviyesinde bulunur.

Mikrodenetleyicimizin VCC seviyesindeki bir sinyal (3.3V, 5V, vb.);

  • hattın boşta olduğunu (idle line), yani herhangi bir iletişimin o ende gerçekleşmiyor olduğunu,
  • yollanmakta olan verinin 1 seviyesindeki bir bitini,
  • ya da bir stop bitini gösterir.

0V (GND) seviyesindeki sinyal ise;

  • start bitini
  • veya 0 değerinde bir veri bitini temsil eder.
ttl serial
TTL SERİ İLETİŞİM

 

Eski bilgisayarlarda ve çevre birimlerinde bulunabilen RS-232, TTL seri iletişimin baş aşağı çevirilmiş hali gibidir. RS-232 sinyalleri genelde -13V ile 13V arasında değişir, ancak bu özellik +/- 3V’den +/- 25V’a kadar herhangi bir değerde de olabilir.

RS-232 habrleşmedeki bu sinyallerden düşük voltaj (-5V, -13V, vb.) olan;

  • hattın boşta olduğunu (idle line), yani herhangi bir iletişimin o ende gerçekleşmiyor olduğunu,
  • yollanmakta olan verinin 1 seviyesindeki bir bitini,
  • ya da bir stop bitini gösterir.

Yüksek voltajlı olan RS-232 sinyali (+13V v.b) ise;

  • start biti
  • veya 0 değerinde bir veri bitini temsil eder.

RS-232 bu hali ile TTL seri iletişimin tam tersi gibi davranış gösterir.

rs232 serial
RS-232 SERİ İLETİŞİM

 

İki seri sinyal standardı arasında TTL’nin gömülü devrelere uygulanması çok daha kolaydır. Bununla birlikte, düşük voltaj seviyeleri, uzun iletim hatlarındaki kayıplara karşı daha hassastır. RS-232 veya RS-485 gibi daha karmaşık standartlar, uzun mesafeli seri iletimler için daha uygundur.

İki farklı seri prtotkolü kullanan cihazı birbirine bağlarken, sinyal voltajlarının uyuşmasını sağlamak önemlidir. RS-232 seri veriyolu olan bir cihaz ile TTL seri veri yolu olan bir cihazı doğrudan birbirine bağlayamazsınız . Öncelikle bu sinyalleri birbirleri ile uygun hale getirmelisiniz.

 


TTL seri ile RS-232 seri iletişimin birbirleri ile bağlanması

Mikro denetleyicinizden ihtiyacınız olan herhangi bir veriyi bir bilgisayarın seri portuna gönderip / alabilirsiniz ve bunları bir terminal emületörü ile görüntülyebilirsiniz de, burda bunu anlatmayacağız. Bu iki cihaz bir yazılım perspektifi sonucunda birbirleri ile ile uyumludur, ancak bir mikro denetleyiciyi bir bilgisayara doğrudan bağlayamazsınız, çünkü donanım arabirimleri uyumlu değildir.

Günümüzdeki çoğu mikro denetleyici, verileri seri olarak almak ve iletmek için kullanılabilen UART’lara (evrensel asenkron alıcı / verici) sahiptir. UARTlar belirli bir veri hızında bir defada bir bitlik bir veri iletir (yani 9600bps, 115200bps, vb.). Bu seri iletişim yöntemi genellikle TTL seri (transistör-transistör mantığı) olarak adlandırılır. TTL seviyesindeki seri iletişim her zaman 0V ve Vcc sınırları arasında kalır.

Bilgisayarınızdaki seri bağlantı noktası  RS-232 (Recommended Standart 232) telekomünikasyon standardına uygundur. RS-232 sinyalleri, mikro denetleyicinizin seri sinyallerine benzer; bu sayede, eşlik ve / veya durdurma bitleri olsun veya olmasın belirli bir baud hızında her seferinde bir bitlik bir veri gönderirler. İkisi yalnızca donanım düzeyinde farklılık gösterir. Çoğu PC’de RS-232 sinyalleri -13 ila + 13V arasında değişir.

rs232 serial IFC

Bu zamanlama diyagramı, 0b01010101 verisini gönderen bir TTL (alttaki) ve RS-232 sinyalini gösterir

Yukardaki şekilde bu iki sinyalin etkileşiminde sorunun nerde olduğunu görebilirsiniz. Bu iki portu birbirine bağlamak için sadece sinyalleri ters çevirmekle kalmaz, ayrıca bir mikro denetleyicinin seri pinlerini yok edecek potansiyeldeki zararlı RS-232 voltajlarını düzenlemekle uğraşmak zorunda kalırız. Voltaj dönüştürme ve ters çevirme sorunu için en yaygın ve en kolay çözüm, bir MAX-232’yi iki cihaz arasında takmaktır:

max232

 

MAX-232’nin birçok jenerik türevleri vardır. Maxim IC, bu şaheser cihazıyla (on yıllar önce) bu pazarı ilk oluşturan oldu. Alışkanlıktan ötürü, benzer işleri yapan tüm IC’leri ‘MAX-232’ olarak adlandırıyoruz. Kağıt mendillerin selpak olarak adlandırılması gibi bir durum yani…

Aşağıdaki devrede ise RS-232 Shifter gibi daha ucuz bir çözüm kullanılabilir. Sinyalleri çevirmek için transistörler veya çeviriciler kullanılır ve voltajları RS-232’ye uyumlu olacak şekilde yükseltilir:

 

rs232 ucuz devre

 


 

UART’lar

Bu son bölümde, hem seri veri paketleri oluşturmak hem de bu fiziksel donanım hatlarını kontrol etmek için  UART’ı ele alacağız.

Evrensel bir eşzamansız alıcı / verici (universal asynchronous receiver/transmitter – UART), seri iletişimin uygulanmasından sorumlu bir devre bloğudur. Esasen, UART, paralel ve seri arabirimler arasında aracı olarak görev yapar. UART’ın bir ucunda sekiz veya daha fazla veri hattı (artı bazı kontrol pimleri), diğerinde iki seri kablo vardır = RX ve TX.

UART
Süper basitleştirilmiş UART arayüzü. Bir tarafı paralel, diğer tarafı seri.

 

UART’lar ayrıca IC’ler olarak da bulunur, ancak daha yaygın olarak mikro denetleyicilerin içinde bulunurlar. Herhangi bir UART’ın olup olmadığını görmek için mikro denetleyicinizin veri sayfasını kontrol etmeniz gerekir. Bazılarında yoktur, bazılarında vardır, bazılarında ise birden çok UART vardır. Örneğin, “eski sadık” ATmega328 tabanlı Arduino Uno  yalnızca bir UART’a sahipken , bir ATmega2560 üzerine kurulu Arduino Mega ise dört tane UART’a sahiptir.

Kısaltmada yer alan R (Receive) ve T (transmit) harflerinin de gösterdiği gibi, hem seri verilerin gönderilmesi hem de alınmasından UART’lar sorumludur. Gönderim kısmında; bir UART,  senkron ve parite bitlerini de ekledikten sonra bir veri paketi  oluşturmalı ve bu paketi TX hattına kesin bir zamanlamayla (ayarlanmış olan baud hızına göre) göndermelidir. Alım kısmında ise; UART, beklenen baud hızına göre oranlarda RX hattını örneklemek, senkronizasyon bitlerini seçmek ve veriyi tam olarak almak zorundadır. UART bu şekilde çalışır.

UART şema
Dahili UART blok diyagramı (Exar ST16C550 veri sayfasından alınmıştır)

 

Daha gelişmiş UART’lar, aldıkları verileri bir mikroişlemciye ulaşıncaya kadar orada kalabilecekleri bir tampona atabilirler. UART’lar genellikle arabelleğe alınmış verilerini bir FIFO (first-in-first-out) temelli olarak serbest bırakır. Tamponlar, birkaç bit kadar küçük veya binlerce bayt kadar büyük olabilir.

Yazılım UART’ları

Bir mikrodenetleyici bir UART’a sahip değilse (ya da yeterli değilse), seri arabirim doğrudan işlemci tarafından kontrol edilebilir, bu yöntem bit darbesi (bit-bang) yöntemi ile uygulanabilir. Bu yöntem, SoftwareSerial gibi Arduino kütüphaneleri tarafından kullanılan bir yaklaşımdır. Bit-vurma işlemci hassasiyetli bir işlemdir ve genellikle bir UART kadar hassas değildir, ancak bir tutam veri için işe yarar bir yaklaşımdır.

Yapılabilecek Hatalar

Seri iletişim ile ilgili anlatacaklarımın hepsi bu kadar. Herhangi bir deneyim düzeyindeki bir mühendis için bile kolayca yapılabilecek olan birkaç yaygın hatayı burada kısaca belirtmek istiyorum.

  • RX’den TX’e ve Tx’den RX’e

BU bağlantıyı yapmak yeterince basit görünüyor, ancak çok kolaylıkla yapılabilecek bir yanlış. Seri haberleşecek olan cihazlar arasında RX ve TX hatlarını daima birbirleri ile bağladığınızdan emin olun.

  • Baud Hızı Uyumsuzluğu

Baud oranları, seri iletişimin dilleri gibidir. İki cihaz aynı hızda konuşmuyorsa, veriler yanlış yorumlanabilir veya tamamen gözden kaçabilir. Alıcı cihaz tarafından alınan bilgiler karmakarışık görünüyorsa,  baud hızlarının ayarlarının doğru yapıldığını kontrol edin.

baud yanlış
Veriler 9600 bps’de iletildi, ancak 19200 bps’de alındı. Baud uyumsuzluğu = çöp.

 

  • Veri Yolu uyuşmazlığı (bus contention)

Seri iletişim, sadece iki aygıtın bir seri veri yolu üzerinden iletişim kurmasına izin verecek şekilde tasarlanmıştır. Birden fazla cihaz aynı seri hat üzerinden iletim yapmaya çalışıyorsa, veriyolu uyuşmazlığı yaşayabilirsiniz.

Örneğin, bir GPS modülünü Arduino’nuza bağlarsanız, o modülün TX hattını Arduino’nun RX hattına bağlayabilirsiniz. Fakat Arduino RX pini Arduino’yu programlarken veya Seri İzleme’yi kullandığınızda kullanılan USB-to-serial dönüştürücünün TX pimine zaten bağlanmış durumda. Bu, hem GPS modülünün hem de FTDI çipinin aynı anda aynı hat üzerinden iletmeye çalıştığı potansiyel durumu (veriyolu uyuşmazlığı) ortaya çıkarır.

2t1r
Tek bir alıcıya gönderilen iki verici, veri yolu uyuşazlığı olasılığını ortaya çıkarır.

Aynı anda, aynı hatta veri iletmeye çalışan iki cihaz, kötü durumların ortaya çıkmasına neden olabilir. En iyi durumda, cihazlardan hiçbiri verilerini gönderemez. En kötü ihtimalle, her iki cihazın iletim hatları bozulur ( genellikle bu pinler  korunmaya sahiptir).

Yukarıdaki yazı https://learn.sparkfun.com/tutorials/serial-communication adresinden Türkçe’ye çevrilerek yayınlanmıştır.

Umarım faydalanırsınız….

 

Yorum bırakın