Asenkron ve senkron haberleşme

erdemtonga

Üye
Katılım
17 Ağu 2019
Mesajlar
4
Puanları
1
Yaş
28
Asenkron haberleşme ile senkron haberleşme arasındaki farkı tam olarak açıklayabilecek biri var mı ? Clock sinyalinin kullanıldığından falan değilde neden asenkron var iken senkron haberleşmeye ihtiyaç duyulmuşturu açıklarsanız çok makbule geçer 2. Bir sorum olacak asenkron haberleşmede otomatik baudrate algılama devresi ve yazılımı yapılabilir mi yapılırsa ne tür bir yöntem izlenmelidir? Şimdiden teşekkürler...
 
Anladıgım kadarıyla anlatmaya calışayım.
senkron iletisim cok hızlı data transferi gerekli ise kullanılır,her clock sinyalinde bir data okuyabilirsin,buda islemcinin hızına göre cok hızlı data transfer etmemize olanak saglar.Oysa asenkron data transferinde ilave bir clock sinyali kullanılmadıgından gelen bilginin uzunluguna(süresine bakarak) datanın bir veya sıfır olduguna karar veririz.Asenkron iletim bu yüzden daha yavastır.çünki cok kısa pulsları(yüksek baudrate) okumaya kalktıgımızda hatalı bilgi gelme ihtimali artar.
ikinci sorunuza gelince otomatik baudrate cok basit bir sekilde (hatta pic in bazılarında halehazırda var) yapabilirsiniz.bunun için ilk gelen bilginin bir ve sıfır data uzunluklarını(sürelerini) ölçerek gelen bilginin hangi bautratede gönderildigini bulabiliriz.zaten baudrate dedigin saniyedeki bit sayısı demek.1200 baudrate için saniyede 1200 bit gelecegine göre herbir bitin uzunlugu 1/1200=833us olması lazım.eger gelen start bitinin uzunlugu bu 833us civarında ise baudratemiz 1200 baud diyebiliriz.daha emniyetli olması için bir baytlık (mesela 10101010) gibi bir bilgi göderip sürelerin ortalamasını alarak daha kesin bir sonuca varmıs oluruz.
 
"Oysa asenkron data transferinde ilave bir clock sinyali kullanılmadıgından gelen bilginin uzunluguna(süresine bakarak) datanın bir veya sıfır olduguna karar veririz " bu şekilde çalıştığından emin misiniz ? İnternette yaptığım araştırmalar sonucu asenkron iletişimin başlaması için sistem boşta iken yani hiçbir veri akışı yokken data hattının lojik 1 seviyesinde olduğu ve lojik 0'a düşmesi durumunda veri transferinin başladığı bilgisine ulaşmaktayım. Sizin yazdıklarınıza göre biz asenkron haberleşmede sürekli olarak verinin geliş süresini ölçüyoruz diyebilir miyiz ?
 
hayir sürekli olarak ölçmüyoruz,sadece bir seferligine ölçüm yapıyoruz ve kac baudratede geldigini bulmus oluyoruz.tabiki bunu ölcebilmemiz için ilk gönderdigimiz bilginin sürekli bir(FF) veya sürekli sıfır olmaması gerekir.bunun içinde ilk kalibrasyon bilgisi olarak 10101010 gönderiyoruz.Dediginiz gibi hat sürekli olarak set degerinde,reset durumuna düstügü an sayıcıyı saydırmaya baslıyoruz ve birsonraki set anına kadar gecen süreyi buluyoruz.iste baudrate süresini veren bu ölçtügümüz deger.Tabiki yanlıs deger okumamak için bir sonra gelen bilginin set olduguna emin olmamız gerekir.işte bunun için kalibrasyon bilgisi olarak 10101010 gönderiyoruz.bu sayede biliyoruzki start bitinden yani sıfıra düstügü andan sonra gelen bit set.

Baska bir çözüm ise baslangıcta gönderdiginiz ilk bilginin ne oldugunu biliyorsanız,bu bilgiyi alıcı tarafda farklı baudratelerde okuyarak dogru gelip gelmedigini kontrol etmeniz ve dogru geldigi andaki baudratenin gecerli baudrate oldugu sonucuna varmanız.Tabiki elsıkısma yapabilmeniz için bütün baudrateleri taramanız gerekir(yani aynı bilgiyi işin baslangıcında 15-20 kere göndermeniz gerekir).
 

Forum istatistikleri

Konular
128,133
Mesajlar
915,308
Kullanıcılar
449,850
Son üye
umutbaysal9

Yeni konular

Geri
Üst