[LinuxFocus-icon]
<--  | Ev  | Erişimdüzeni  | İçindekiler  | Arama

Duyumlar | Belgelikler | Bağlantılar | LF Nedir
Bu makalenin farklı dillerde bulunduğu adresler: English  Deutsch  Francais  Turkce  

[Photo of the Author]
Bob Smith
<bob(Q)linuxtoys.org>

Yazar hakkında:

Bob'un hobisi, elektronik ve Linux programlamadır.Onun en son projelerini www.linuxappliancedesign.com adresinden ve onun anasayfası www.linuxtoys.org'dan bulabilirsiniz.



Türkçe'ye çeviri:
Özcan Güngör <ozcangungor(at)netscape.net>

İçerik:

 

Bir bit veri izleme

hardware

Özet:

1 Bitlik Veri İzleme, saniyede 46080 (ya da 92160) defa 1 bitlik verileri yakalayarak, RS-232 karakter dizisi şeklinde kodlamaktadır. Bu veriler, 57.6 (veya 115.2) kilobaud (baud=bilgi işleme hizı birimi) hızında okunabilmektedir. Veri İzleme, altı adet ucuz entegre devresi ile yapılmıştır.

_________________ _________________ _________________

Picture of the 1 Bit Data Scope  

Giriş

Bu yazı, 1 Bitlik Veri İzlemenin tasarımı, yapısı ve kullanımını anlatmaktadır. Veri dizisini yakalayan ve gösteren bir program da verilmişir.  

Çalışma teorisi ve tasarımı

 

Tasarım hedefleri

- En az örnekleme hızı, en azından saniyede 8000 örnek olmalıdır.
- Çıkış verisi bir PC seri girişine gönderilmelidir.
- Bir bit bile atlanmadan sürekli veri örneklemelidir.
- Elektir gereksinimini seri girişten sağlamalıdır.

 

Tasarıma genel bir bakış

Amacımız, girişi sabit bir frekansta örnekleme yapmak ve çıkışı, bir başlangıç biti, sekiz veri biti ve bir bitiş biti olarak, seri karakter çerçevesi şeklinde elde etmektir. Sözü edilen başlangıç ve bitiş bitleri, örnekleme hızının seri port hızına oranının onda sekiz olmasını sağlar. 56.7 kbaudluk seri port hızı saniyede (8*5.76 k) ya da 46080 örnektir.

Sorun şudur: Başlangıç ve bitiş bitlerini gönderirken verileri depolamalıyız. Veri ie Baud zamanlayıcıların karşılaştırılması
0,1,2 ve 3 bitleri sırasında, verinin 4,5,6 ve 7 bitleri sırasında, verinin bir veri zamanı kadar beklemesini istiyoruz. Bu yüzden kayıt kaydırıcıdan Q(A)'yı seçiyoruz. Başlangıç ve bitiş bitleri sırasında, bir 0 ve bir 1 istiyoruz. Bu yüzden bit sayıcıdan Q(0)'ı seçiyoruz.

 

1 Bitlik Veri İzlemenin Şeması

1 Bitlik Veri İzlemenin Şeması

Şemanın resmi EAGLE (Cadsoft) adı verilen çok hoş bir paket ile yapılmıştır. Yukarıdaki devrenin şema dosyası 1bitla.sch.gz adı altında bulunmaktadır.

 

Saat Devresi

Saat devresi iki çıkışa sahiptir: biri baud saati, diğeri baud saatinin sekizde biridir. Saat devresi, 4049'daki üç çeviriciyi, 4024'deki 7 durumlu ikili sayıcıyı ve 4518'in yarısındaki onluk sayıcıyı kullanmaktadır. Osilatör, 1.8432 MHz'de çalışır ve 4024'deki Q(2), 460.8 kHz'de kare dalga üretir. 4518 ona bölücünün çıkışı olan Q(3), 46.08 Khz'dir. 7 durumlu ripple sayıcının çıkışı olan Q(5), 57.6 kHz'de kare dalgadır.

Devreyi 115.2 kHz'de çalıştırabilmek için 4024'ın Q(2) ve Q(5) çıkışları yerine Q(1) ve Q(4) çıkışlarını kullanın. Diğer hızları, kristalin farklı değerlerini kullanarak veya kristali bir RC osilatörü ile değiştirerek elde edebilirsiniz.

Kristal osilatörlerin RC osilatörlerden aynı frekansta daha az güç harcadığını hatırlatayım. Güç tasarrufu için, 4049'un kullanılmayan girişlerini topraklayın.

 

Giriş Tamponlama

Yukarıdaki devreye giriş tamponu eklemenin iki basit yolu vardır: 4049'un kullanılmayan tersleyicilerine veri girişini başlayabilirsiniz. Bu önemli değildir çünkü giriş, bir CMOS yükünü temsil eder ve hala CMOS eşiğindedir (bu devrede yaklaşık 3 Volt).

Daha iyi bir yol, TL082 içindeki ikinci op-ampı kullanmaktır. Opamp girişlerinden birine bir gerilim bölücü direnç bağlayıp diğerine veri girişini bağlayabiliriz. Bu eğik gerilimini daha kesin ayarlamamızı sağlar ve test edilen cihaza çok yüksek empedans sunar.

 

CMOS - RS-232 Çevirici

TL082 opampının bir yarısı CMOS'u RS-232'ye çeviri işlevi görür. R1,R2 bölücü dirençleri, eksi girişi yaklaşık 3 Volt civarında öngerilim sağlar. 4015 kaydedicinin çıkışı 3 Voltun altına inip üstüne çıkabildiği için opamp artı ve eksi giriş gerilimi değerini alır. RS-232 hattındaki örnek verinin terslenmiş olduğuna dikkat edin. Bu veriyi okuyan yazılım bunu gözönüne almaktadır.  

Güç Kaynağı

Devreyi besleyen kaynak, bilgisayarın RS-232 hattından alınmaktadır. Bilgisayarın Tx'i RS-232 çevirici(TL082P) için eksi gerilim sağlarken DTR artı gerilim sağlamaktadır. D1 ve D2 diyotları prototip devrede gerçekten gerekli değildir. Devreyi onlarsız da deneyebilirsiniz.

RTS, devrenin geri kalan kısmı için gerilim(Vcc) sağlar. Prototip devrede bu gerilim yaklaşık 7 Volt civarındaydı. Sizin Vcc geriliminiz bilgisayarınızın RS-232 arayüzüne bağlı olarak değişebilir. Veri izleme devresini süren yazılım hem DTR'yi hem de RTS'yi açmalıdır(yüksek yapmalıdır).

 

Yapım

Veri izleme devresindeki freakns gçreceli olarak düşüktür ve her türlü devre yapım tekniği ile çalışacaktır. Prototip devrede kaplanmış tel kullanılmış ve çok iyi sonuç alınmıştır. Önce güç kaynağını yapmak isteyebilirsiniz. Tümdeverler 14/16 nolu bacaklardan Vcc'yi almaktadır.Ancak 4049 onaltılık tersleyici 1 nolu bacaktan Vcc'yi almaktadır.

Yapım yaklaşımlarından birini gösteren resimler görüyorsunuz.

1 Bit Veri
      İzleyicinin içini görün
Palketi üstü
Plaketteki
kaplanmış tellerin ayrıtılı görüntüsü
 

Basit Veri Yakalama Programı

Örnek çıktı
-r -c -t
03
e3
ff
03
e3
ff
03
e3
ff
03
e3
ff
03
e3
ff
03
e3
ff
03
e3
ff
03
e3
ff
03
e3
ff
03
e3
ff
03
e3
ff
03
e3
0, 0
1, 5
0, 3
1, 10
0, 6
1, 5
0, 3
1, 10
0, 6
1, 5
0, 3
1, 10
0, 6
1, 5
0, 3
1, 10
0, 6
1, 5
0, 3
1, 10
0, 6
1, 5
0, 3
1, 10
0, 6
1, 5
0, 3
1, 10
0, 0.000000
1, 0.000065
0, 0.000065
1, 0.000217
0, 0.000130
1, 0.000109
0, 0.000065
1, 0.000217
0, 0.000130
1, 0.000109
0, 0.000065
1, 0.000217
0, 0.000130
1, 0.000109
0, 0.000065
1, 0.000217
0, 0.000130
1, 0.000109
0, 0.000065
1, 0.000217
0, 0.000130
1, 0.000109
0, 0.000065
1, 0.000217
0, 0.000130
1, 0.000109
0, 0.000065
1, 0.000217

1bitla.c programı ile seri porttan veri yakalayabilirsiniz. Çıktıyı üç farklı biçimde erkana yazdırabilirsiniz. İlk biçim ham veri biçimidir: Her satırda bir byte ve iki karakterli onaltılık karşılık. Verilerin önce terslendiğine ve MSB(en önemli bit)'nin önce yazıldığına dikkat edin. Ham çıktı -r komut satırı seçeneği ile alınır. İkinci biçimde, ekrana bir değer(0 veya 1) yazılır ve bu değerin kaç defa ardarda tekrarlandığını yazar. Bu biçimi -c parametresiyle alabilirsiniz. Üçüncü biçimde ise ekrana yine bir değer yazılır ve değerin yanına bu değerin kaç saniye aynı kaldığı yazılır. 46080 kHz'deki çözünürlük 21.7 mikrosaniyedir. Bu biçimi -t seçeneği ile alabilrisiniz.

Programı
1bitla [seçenek] seri_port komutu ile çalıştırabilirsiniz. Seçenek -r, -c veya -t olabilir.Varsayılan -c'dir.

Programın tasarımı oldukça basittir. Komut satırını işleriz, seri bağlantı noktasını açarız ve sonsuz bir döngü ile byte'ları okuruz ve ekrana yazdırırız.

Örnekleri sadece ekrana yazdırmak ve ya bir dosyaya daha sonra işlemek için yönlendirmek sizin için yeterli olabilir. Ya da örnekleri işleyen bir durum makinası ile veriler üzerinde "mantıksal değerlendirilmesi" yapmak isteyebilirsiniz. Örnek durum makinası, bir kızılötesi uzaktan kontrolünden gönderilen kod çözme komutlarını içerebilir ya da radyo kontrollü darbeleri module edilmiş çıktı ile çözebilir.

 

Kaynaklar

 

Bu yazı için görüş bildiriminde bulunabilirsiniz

Her yazı kendi görüş bildirim sayfasına sahiptir. Bu sayfaya yorumlarınızı yazabilir ve diğer okuyucuların yorumlarına bakabilirsiniz.
 talkback page 

<--, Bu sayının ana sayfasına gider

Görselyöre sayfalarının bakımı, LinuxFocus Editörleri tarafından yapılmaktadır
© Bob Smith, FDL
LinuxFocus.org
Çeviri bilgisi:
en --> -- : Bob Smith <bob(Q)linuxtoys.org>
en --> tr: Özcan Güngör <ozcangungor(at)netscape.net>

2003-07-17, generated by lfparser version 2.42