PIC Uygulamaları
DTMF kod çözücü yapmak ister misiniz?
Bilgisayar yardımı ve bir pic ile DTMF sinyallerini çözmeniz mümkün. �PIC 16F84 uygulamalarında bu ay DTMF ton kodlama sistemini ele alacağız.
DTMF Dual Tone Multi Frequency kelimelerinin baş harflerinden oluşur.
Kelime anlamı çift tonlu çoklu frekans kodlama sistemidir. DTMF esas olarak
Amerikan ordusu için Bell telefon laboratuvarlarında geliştirilmiş bir kodlama
sistemidir. Daha sonra telefon şebekelerinde bilgi yollamanın güvenli yolu
olarak tercih edilmiş ve telefon abonesinin santrala aradığı abone ile ilgili
bilgileri ilettiği standart yöntem olarak günümüzde yaygın olarak kullanılmaktadır.
DTMF kodlama sistemi radyo amatörlüğünde yerini son yirmi yıl içinde yaygın
olarak almıştır. Günümüzde telsiz cihazlarının çoğunda DTMF sinyallerini
yollamaya ve almaya yarayan modüller ile tuş takımı bulunmaktadır. Bu imkan
sayesinde telsiz yardımıyla DTMF kodlu mesajlar, çağrı kodları yollamak;
uzaktan kumanda amaçlı rölelerin kontrolu gibi işler gerçekleştirilebilir.
Örnek olarak ANTRAK rölelerini gösterebiliriz.
DTMF kodlama sisteminde temel olarak dört adet iki çift ton kulanılır.
Bu iki ton kombinasyonu ile 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, #, *, A, B, C, D rakam
ve sembolleri ifade edilir.
1209 Hz | 1336 Hz | 1477 Hz | 1633 Hz | |
697 Hz | 1 | 2 | 3 | A |
770 Hz | 4 | 5 | 6 | B |
852 Hz | 7 | 8 | 9 | C |
941 Hz | * | 0 | # | D |
Yukarıdaki DTMF Kod kombinasyon tablosundan görüleceği gibi dört adet
frekans satır için, dört adet freakansta kolon için tahsis edilmiştir.
Tablonun ortasındaki rakam ve semboller karşılarında bulunan satır ve
sütundaki frekans çiftiyle ifade edilirler. Bir örnek vermek gerekirse
4 rakamını 770 Hz ve 1209 Hz lik ton çiftiyle ifade ederiz. Bu ton çiftleri
16 adet ton kombinasyonuna olanak tanır. Bu tonlardan sıra için adanmış
olanlar 1 kHz 'in altında, kolon için tahsis edilmiş olanlar ise 1 kHz ile 2 kHz
arasındadır. Bu frekansların bu sınırlar dahilinde olmasının sebebi telefon ve
telsiz sistemlerinde band geçiren filtreler kullanılır ve bu filtreler
300 Hz ' 3000 Hz arasındaki konuşma aralığı dediğimiz aralıktaki frekansları
geçirirler. DTMF tonlarıda bozulma ve kesintilere uğramaması için bu frekans
sınırları içinde kalacak şekilde tasarlanmışlardır.
Bu noktaya kadar bir DTMF ton kodunun üretilmesini ele aldık. Bu sinyallerin
çözümlenmesi oldukça kritik ve karmaşık bir DSP ' Digital Signal Processing '
tekniği gerektirmektedir. Çözümleme için geçerli bir ton çifti ve zamanlama
aralığı gereklidir. Bir konuşma esnasında DTMF sinyalinin çözülme gerekliliği
işleri daha da karmaşık bir hale sokar.
Bir DTMF Kod Çözücü sistemi aşağıdaki işleri yapmalıdır:
- Her ton sinyalinin algılanması
Geçerli ton çiftinin belirlenmesi
Bir sembolun geçerli zaman dilimindeki varlığının tespiti
Bir DTMF alıcısı ton frekanslarını +/- %1.5 hata toleransı ile algılamalı ve
vericiden gelen tonlar +/- %3.5 hata toleransı içinde kalmalıdır. DTMF sinyalleri
iki ton arasında bir şiddet seviyesi olduğunda dahi algılamada hata yapmamalıdır.
İnsan bu kadar sert şartlarda görev yapan bir sistemin ne kadar karmaşık
olduğunu kafasında kolay kolay canlandıramaz sanırım, ama bu iş sanıldığı
kadar zor değildir. Son yıllarda hızla gelişen DSP- dijital sinyal işleme teknikleri –
sayesinde DTMF alıcıları bir entegreye indirilmiş ve 1.5 US$ gibi fiyatlarla alıcı
beklemektedir. Bu alıcılara bir örnek olarak national firmasının
(http://www.nsc.com) TP8870 veya SAMSUNG firmasının KT3170'ini
söyleyebiliriz.
Bu ayki PIC 16F84 uygulamamız bu entegreleri PIC'e aplike ederek DTMF
sinyallerini PC yardımıyla görmektir.
Şemamız her zaman olduğu gibi oldukça basittir. Bütün işi PIC 16F84 üzerine
yazılım olarak yıktık. KT3170 veya muadili TP8870 telsiz hoparlör ucundan
veya herhangi bir ses kaynağından gelen DTMF sinyali (telefon vs.) yukarıda
açıkladığım prensipleri kullanarak çözer ve tablodaki karşılık sembolünü pic'in
RB0'RB3 bacaklarına iletir. PİC bu kodu kabul etmeden evvel RB4 bacağına
bağlı olan KT3170 ton geçerlilik bacağındaki sinyali kontrol eder. Eğer bu
bacakta High yani +5V varsa kod geçerlidir aksi hallerde kod kabul edilmez.
Bu ayrımı yapmak şarttır, eğer yapmazsak Porttaki kodun yenimi yoksa eski mi
oldğunu PIC'in anlamasına imkan yoktur. Daha sonra PIC aldığı kodun yeni
ve geçerli bir kod olduğuna karar verdikten sonra bu kodun binary karşılığı olan
sembolü ASCII formatında 1200 Baud olarak PC de çalışan Terminal
emülasyon programına iletir ve ekranda algılanan kod görülür.
Devreyi gerçekleştirirken DTMF.ZIP içindeki .hex dosyayı pic16f84'ü
programlamakta kullanabilirsiniz. Programlayıcı için eski yazı dizilerindeki
programlama sisteminden yararlanabilirsiniz.
Devreyi hatasız yapıp voltaj vermeden önce bazı ayrıntılara
dikkatinizi çekmek istiyorum:
* PC RS232 (COM) portuna bağlantı konektörünü takarken PC ya da
PIC'den en az birinin enerji almaması gerekir
aksi halde RS232 portunun
arızalanması işten bile değildir.
* DB9 konnektör kullanırsanız COM1, DB25 konnektörünü kullanırsanız
COM2 portunu işgal etmeniz gerekir. PIC için hangi COM portun kullanıldığının
önemi yoktur, bu terminal programının sorunudur.
* RS232 (COM) portun bacaklarının kesinlikle kısa devre olmasına izin
vermeyin aksi takdirde port arızalanır.
Şimdi terminal programının SETUP'ına göz atalım:
* COM1 veya COM2 yi seçin. (Hangisini kullandıysanız)
* 1200 baud ,8Bit,No parity,1 Stop bit seçeneklerini ayarlayın.
* Terminal emülasyon tipini TTY olarak seçin.
* Sistem Half duplex çalışacağından half duplex yada full duplex olması
farketmez.
Önce Terminal programını çalıştırın daha sonra devreye +5Volt verin.
Eğer herşey düzgünse ekranda;
DTMF —> RS232C
Barbaros ASUROGLU – ANTRAK
Mesajını görürsünüz.Bu noktaya geldiyseniz devre ve terminal sorunsuz
çalışıyor demektir. Devrenin girişini telsiz veya herhangi bir alıcının hoparlör
girişine bağlayıp bir başka telsizden gelen DTMF sinyallerini ekranda
görebilirsiniz.
Denemelerinizde telsiz kullanmak istemiyorsanız bir mikrofon ve mikrofon
kuvvetlendiricisini hoparlör girişi yazan uca bağlayarak mikrofonun ucuna
telefon ahizesini tutarak ve tuş takımına basarak yapabilirsiniz. Alternatif
bir yöntemde telefon tuş takımına basıldığında çıkan DTMF tonları bir teype
kaydedip bunu devreye teybin hoparlör çıkışı vasıtasıyla uygulamaktır.
Bu ay DTMF sinyallerini yakalayan bir PIC uygulamasıni inceledik,
gelecek ay yeni bir uygulamada buluşmak dileğiyle