sinyallerin senkronizasyonu

Başlatan batuhanayyuzlum, 10 Kasım 2011, 16:55:30

batuhanayyuzlum

iyi günler belli frekanslarda yayın yapan iki devreyi kayıp vermeden sinyalleri tam olarak nasıl ilettirebilirim.
örnekle açıklayacak olursam bir devrem var seri porttan bilgi veriyor  01010101 gibi diyelim bu bilgileri 1 er sn aralıklarla çıkartıyor.
bunu paralele dönüştürecek kaymalı kaydedici devresini kurduğumuzu varsayalım yaptığımız devreninde clock palsi 1 sn.
bilgiler sırasıyla paralel uçlara aktarılsın istiyorum seriden gelen bilgilerin hangi anda başladığını kaydedeci devre nasıl bilecek.
1 er sn aralıklarla bilgi geliyor ancak ne zaman başlıyor iki tarafında frekansını nasıl eşitlerim.biri gönderirken diğerinin almasını nasıl sağlarım.
bu sadece seri port tan paralele aktarma işlemi için değil genel amaçlı bir soru belli frekanstan gelen 10011 bilgilerini nasıl okurum.
alıcı devremde yüksek frekans kullansam ör:yollayan taraf 1sn aralıklarla yollarken alıcıda 0.25snlik clock palsi versem bu defada 1 bilgisini 3-4 defa okuyacak 0 bilgisini 3-4 defa okuyacak bir sonraki 0 bilgisine geçtiğini nerden bilecem ör: 10011 bilgisini okurken bana 11100000111111 gibi bi bilgi vermesini istemiyorum.aynı frekansta kullanarak başlangıcını tam tutturamayıp 11011 gibisinden bilgiyi tam okuyamamasını da istemiyorum.nasıl bir çözüm uygun olur? 

Tagli

#1
İletişimde senkron ve asenkron kavramları vardır. Bunları bir araştır. Kabaca, senkron iletişimde, veri bir clock sinyali eşliğinde aktarılır. Böylece alıcı taraf her bir biti ne zaman okuması gerektiğini bilir. Bazı durumlarda clock sinyalini alıcı taraf da gönderebilir. O zaman da gönderici taraf her biti ne zaman göndermesi gerektiğini bilir. Asenkron iletişimde ise önceden hız belirlenir. Alıcı taraf sadece başlangıcı algılayabilir. Sonrasında ise önceden belirlenmiş hıza göre bitleri örnekleyerek kaydeder.

Bu anlattıklarım, katmanlı iletişim yapısının en alt tarafı, yani donanıma yakın olan kısım. Basit uygulamalar için bu kadarı yeterli olsa da, daha karmaşık uygulamalar için üst katmanları da geliştirmen, yani bir iletişim protokolü oluşturman gerekir. Bunlar kolay konular değil, zaten benim de konu hakkında fazla bilgim yok. Sadece bazı temel kavramları ve başlıkları biliyorum.
Gökçe Tağlıoğlu

GreeN

@Tagli'da değinmiş. bir clock eşliğinde data verilerini gönderirsin , örneğin 8 bit bir veri alacaksın
8 kere clock yükselen kenarında data'yı okursun shift registere kaydedersin , (clock shift registeri kontrol edecek)
Terörü Lanetliyoruz.

z

@batuhanayyuzlum

Anladığım kadarıyla seri porttan gelen bilgiyi kendi yapacağın lojik devre ile paralele açacaksın.

Eğer sorun bu ise;

Seri portdan çıkan verilerde start bit konusunu araştır. Start bit bahsettiğin senkronizasyon işi başlatan bittir.

Start bitini 8 data bit takip eder.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

GreeN

@bunalmis hocam askenkron iletişimde lojik devreleri kullanmak daha zor olmaz mı ?

Start bitini yakaladık diyelim veri iletim hızını nasıl anlayacağız , arka arkaya iki data biti 0 değerini almışsa bunu devre nasıl ayıracak ?
Ama data ile birde clock pulse gönderirsek start ve stop bitlerine gerek kalmayacak diye düşünüyorum.
Terörü Lanetliyoruz.

z

Clk eşliğinde iletişim zaten kolay yol ve extra birşey yapmaya gerek yok.

Asenkron iletişimin avantajı sadece tek sinyal hattının yeterli olması.

Bunun için baudrate ın iki katı hızda osc olacak.
Hattaki data sinyalinin her 1 den 0 a düşen kenarlarında bu osc yi senkron edeceksin.
Data hattı en fazla peşpeşe start dahil 9 tane 0 içerebilir. Fakat osc, startın ilk düşen kenarında senkronlandımı en az 9 clk boyunca osc frekansı cok kaymamalı.

Böylece data hattına senkron clk sinyali var. Start biti de var. Sorun kalmıyor.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com