50 adet pic ile rs485 haberleşme nasıl yapılır

Başlatan sagamen, 11 Haziran 2007, 03:07:58

Ziya

Biraz farklı bir soru sormak istiyorum.

33 adet mikrodenetleyici bulunan kartlar kabin içerisinde seri haberleşme yapsa (örneğin 4800 bps) senkron master-slave haberleşme ile bilgi kaybı olur mu? Yaklaşık 100 cm lik hat üzerinde 32 slave 1 master olacak. Haberleşme protokolü sorun değil. Bilgi kaybı olmasın istiyorum. Slave modüllerin haberleşme portları normalde kapalı olacak (yani IO-giriş), haberleşme için modül seçildiğinde sadece o modül senkron slave moda geçip masterdan emir bekleyecek. Data ve clock hatlarını güçlendirmem gerekir mi?
Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey

Göktuğ

Bir sistem tasarlanmıstım. Orada master yayın yapıyordu. Slavelerde ilk once bir logic mantık devresinde denetim yapıyordum. Yollanan datadaki adres slave ID sine uygun oldugunda o slave aktif hale geliyordu. Ve haberleşmeye baslıyorlardı. Burada her bir kartta mcu olduguna gore bu işi cok daha kolay yapabilirsiniz. Bu durumda hatta bir anda sadece 1 adet master ve 1 adet slave oluyor.
Sistemin beslemesi iyi olmalı.

Ziya

Son dediğiniz şekilde sanki hatta bir anda bir master ve bir slave haberleşiyormuş gibi olacak. Diğer slavelerin seri portu kapalı olacak, mcu haberleşme bacaklarının yönü de giriş olacak. Bunu slavelerin haberleşme hattından fazla akım çekmemesi için yapayım diye düşündüm. Besleme sorunu yok (300 Watt ve standby yedekli).

Bir elektrik santralında kullanılan chronological event recorder cihazının mevcut kartlarını değiştirmek veya mevcutları kullanıp CPU bordunu değiştirmek seçeneklerini değerlendiriyorum. Mevcut input kartlarında mcu yok, 25 adet kart paralel bir bus üzerinde ve cpu kartı tarafından denetleniyor. CPU kartı Z80 ile yapılmış. Cihaz uzun zamandır çalışmıyor (trip kaynağını tespit etmek için başka kayıtlardan faydalanılıyor). CPU kartını değiştirebilirim ama kartlarında değiştirilip her birinin üzerine mcu koymak ve herhangi bir trip anında müstakil kartların topladığı logic bilgileri merkeze seri taşımak daha  verimli olacak. Bu durumda haberleşme kısmında sorun yaşanmaması lazım.
Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey

Ziya

Bahsettiğim haberleşmede rs485 sürücüsü kullanılmayacak ve doğrudan data /clock haberleşmesi (SCI üzerinden) olacak.
Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey

sagamen

o zaman ı2c protokolunu kullanacaksınız
herkEse kolay gelsin

Ziya

Alıntı yapılan: "sagamen"o zaman ı2c protokolunu kullanacaksınız
Hocam protokolle sorunum yok. SCI üzerinden (UART senkron master-slave) senkron haberleşmede de sorunum yok. Sorun 1 mt civarında olan haberleşme hattının uzunluğu, veri kaybı, hattaki slave modüllerin hattan akım çekmeleri. i2c olmaz çünkü i2c haberleşme için haberleşme hattının pullup dirençle Vcc ye çekilmesi gerekir. Yani hatta basılacak akım miktarı daha kısıtlı olacaktır.

Belki SCI haberleşme hattında her nodda pullup direnç kullanarak sorunu halledebilirim. Çağrışım :)
Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey

sagamen

bence sorun olmaz 3 mt ilerye rahatca bilgi gonderebilirsin  cunkü 3 metreye kadar deneme sansım olmuştu asansor kapı dedektorleri için
herkEse kolay gelsin

Ziya

i2c ile mi haberleştirdiniz? i2c ise clock hattı frekansınız ne kadar dı? Seri haberleşme ise yine haberleşme hızınız ne idi?
Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey

sagamen

#use rs232(baud=9600, xmit=PIN_A4, rcv=PIN_B4)
herkEse kolay gelsin

Ziya

Hocam teşekkür ederim. Bu durumda en kötü ihtimalle daha düşük hızda haberleşmeyi sağlayabilirim. Malum hatta 33 adet mcu olacağından biraz endişeliyim. Belki her kartta buffer ile hattı güçlendirmek gerekebilir. Bunları denemek bile baya zahmetli bir iş olacak.
Bu günden sonra hiç kimse sarayda, divanda, meclislerde ve seyranda Türk dilinden başka dil kullanmaya. (13 Mayıs 1277) Karamanoğlu Mehmet Bey

CLR

@Ziya,

Hangi protokülü kullanırsan kullan mecburen bir driver kullanmalısın (I2C ile  olmaz) Mesafe kısa olduğu için Tri-state bufferlar ile (hattı high empedans yapmak) yapılabilir. Doğrudan işlemci portlarını birbirine bağlama (tri-state olduğu için) , birinde sorun olsa tümünü göçürebilir.
Knowledge and Experience are Power

sagamen

evet arkadaşlar rs 485 ile ilgili geniş bilgi ve ccs c ile bilgi verecek arkadaşlar yardımlarınızı beklıyorum
herkEse kolay gelsin

OG

Ziya Hocam pullup direnç değerlerini mümkün olduğunca küçük değerde tutun, hattın iki ucunu da direnç ile pullup yapın. Bu hız için problem olacağını hiç sanmıyorum.

sagamen RS485 için nasıl bilgi istiyorsun, genel anlamda balance (differential) bir sürüş tekniği. Bu sebeple 5V gibi küçük bir data voltaj seviyesi ile çok uzak mesafelere yüksek hızlarda (250.000 B gibi) data taşınabiliyor.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

CLR

@sagamen

RS485 ile hab. çok basit altı üstü  max485(75176,26LS31-32) gibi driver'lar kullanıyorsun. RS232'den tek farkı(yazılım olarak) iki kontrol pini var.
Yapacağın şu, Data alacaksan receiver'ı enable ediyorsun ve portu okuyorsun, göndereceksen, transmit'i enable ediyorsun ve datanı gönderiyorsun. Çoğu uygulamada bu iki kontrol pini kısa devre edilir (toplam 3 port kullanmak için), 1-0'a göre alma ve gönderme yapılır. Tümü bu,

*********************************************
#use rs232(baud=9600, xmit=PIN_A4, rcv=PIN_B4)
*********************************************

Bence CCS C'deki hazır alt programlar'dan kurtulmalısın yani kendi alt programını kendin yaz. Hem böylece tüm donanıma daha iyi hakim olursun. Aksi takdirde , bu şekilde belirli bir noktaya kadar ilerleyebilirsin.
Hi-tech C ve asm kullanıyorum ama derleyicini değiştir falan demiyeceğim çünkü hi-tech içinde yapılabilecekler aynı şekilde CCS içinde de yapılabiliyor(hazır #use direktiflerini kullanmadan). (ama ikiside bazı noktalarda asm'ye muhtaç)

Kolay gelsin.
Knowledge and Experience are Power

Göktuğ

RS485 bir donanımdır. Bu donanım 2 uçlu bir kablo verir. Bu kablonun bir ucundan gireceginiz bir bilgiyi  1200mt mesafeye yollayabilmenizi saglar. Baska hiç bir sey değildir. Yazılımsal olarak bilinen haberleşme türlerini kullanabilirsin. Yada kendin bir protokol geliştirebilirsin. Önemi yok.