16F877 ve MAX 232 ile RS 232 Seri Haberleşme

Fronius kaynak makinasının nasıl çalıştığını anlamak için mikrodenetleyicili ara kart tasarlaması gerekmektedir. RS422 seri iletişim standardının direkt kütüphanesini bulamadığımdan dolayı önce RS232′de sinyaller üretilip RS422 dönüştürücüyle aktarılabilinir. Eğer aktarım zamanında sorun çıkarsa direk kütüphane yazabilirim ancak biraz zamanımı alır.

RS232 standardı geliştirildiğinde TTL uC’ler piyasaya girmediğinden TTL entegrelerine uyumlu değillerdir. bilgisayarlar 12/24 V kullanırken TTL’ler yaklaşık 5 voltta çalışır. Bu gerilim farkını MAX232 entegresi ile aşarız. Aşağıda örnek devresini çizdim.

proteus pic 16f877 rs 232 devre şeması

RS232′de veriler karakter karakter gönderim olur. Karakterlerin ASCII kodlarına göre 7 bitlik veri
olarak yollanır. Bu şekilde Fronius’un manuelindekine benzer veriler yollanabilinir. RS232′de
iletişim asenkron tiptedir yani alıcı ile vericinin saatleri aynı olmak zorunda değildir. Ancak verinin
iletilebilmesi için senkronizasyon gerekmektedir. Bu yüzden start biti ile iki taraf da saatlerini
senkronize eder. Start biti lojik sıfırdır. 4Mhz de kullanılan 16f877 uC sinde 118 us uzunluğundadır.
7 veya 8 bitlik veri yollanıp ardından stopla durdurulur. Veri bitleri de yine aynı uygulamada
104-107 mikrosaniyedir. Stop biti de lojik sıfırdır. Yazdığım koda ve bağlı olduğu kütüphaneye göre
her seferde 10 bit yollanır. RS232 de asıl yollanan 7-8 bitin önce 2 tabanında tersi alınıp ardından
sıralanışı tersine çevrilerek iletilir.

Örnek 1.1
Yollanan karakter: !
ASCII karşılığı: 33 = 0100001
Yollanan veri: 0101111011000…
Çevrilmiş hali: 1000010

Yollanan karakter: a
ASCII karşılığı: 97 = 1100001
Yollanan veri: 0101111001000…
Çevrilmiş hali:
Yollanan karakter: $
ASCII karşılığı: 36 = 0100100
Yollanan veri: 0111011011000…
Çevrilmiş hali: 0100100
Direk sayısal veri olarak gönderim:
char value;
value = 1;
putc(value);
value değeriyle oyanayarak istediğimiz veriyi girebiliyoruz.
1 için gönderile veri: 0101111111000…
Çevrilmiş hali: 00000001
Bu kullanım işimize daha fazla yarayacaktır.
RS232′den RS242′ye Çevirme
Perpa’da bu tür dönüştürücüler 40-50 TL’ye bulunmaktaymış. İki standardın genel özelliklerini
karşılaştırabiliriz:

Özellik RS232 RS422
Maksimum kablo uzunlukları 40 FT. 4000 FT.
Maksimum Veri Oranları 20kb/s 10Mb/s
Gerilim Aralıkları + 3-25 arası 0 – 3-25 arası 1 + 2-4 ve – 2-4 aralıkları

ds 275 entegre şeması

Şeklinde bir dönüştürme entegresi kullanılabilir. Basit bir örneği http://www.kmitl.ac.th/~kswichit
%20/Rs422/Rs422.html adresinde var ancak endüstriyel uygulamalarda ne kadar başarılı olur
bilmiyorum.

NOT: Bir yıldır gnu linux dağıtımı Ubuntumu kullanıyordum ve proteustan iyice kopmuştum. RS 232′nin hazır devresini Onur Kalecik’in sitesinden alıp üzerine analog gösterge koydum. Şimdi hatırladım çoğu şeyin nasıl yapıldığını ancak ilk giriş kısmını hızla geçmemi sağladığı için okuldan arkadaşım Onur Kalecik’e teşekkür ederim.

Yazının PDF hali