Tek kablo üzerinden birden fazla pic ve bilgisayarı haberleşmesi

Başlatan halinzlimurat, 05 Kasım 2011, 19:45:54

halinzlimurat

10 adet yarışmacı masası ve 1 adet ana masa var. Ana masada bir bilgisayar var. Yarışmacıların masasında puanlarını, geçen zamanı ve cevaplarını gösterecek bir display ve cevaplarını tuşlayacakları butonlar var. Yarışmacı masaları ana masadaki bilgisayarla çift yönlü ve tek kablo üzerinden haberleştirmek istiyorum. Çift yönlü çünkü, yarışmacı bilgisayarlar cevaplarını ana bilgisayara, ana bilgisayarda puanlarını yarışmacı masalara iletecek. Bunun için en uygun iletişim standartı RS485 gibi geldi bana, RS232 ile de olur mu??? RS485 te nasıl bir bağlantı şema entegre kullanacağım hakkında bir bilgim yok. Sanırım RS485'i RS232' ye çevirecek bir devreye de ihtiyacım olacak ana bilgisayar için. Bana yardımcı olursanız sevinirim.
Şimdiden teşekkür ederim...
@<-.HKM.->@

ayhani

En iyi bildiğim şey hiçbir şey bilmediğimdir.

ete

İlla kablolu yapacağım dersen Kullanacağın sistem  RS485 olmalı. ANcak tek kablo ile olmaz 2 kablo ile yapman gerekiyor.
Açıklamana göre bütün yarışmacı masaları Ana masaya bağlanacak gibi gözükmesine rağmen bütün üniteler RS485 hattına bağlanacaklar.
Yalnzca ANA bilgisayar için 1 adet MAX232 seviye düzeltici kullanman gerekecek. Sistem tamamen RS232 kuralları ile çalışacak ve her ünite çıkış ve girişinde 1 adet RS485 (max485) entegresi kullanılacaktır.
Pic kartları TTL dir. Yani HIGH denildimi +5V anlaşılır LOW denilince 0V yani GND anlaşılır.
PC nin RS232 sisteminde ise durum farklıdır. Orada HIGH denildimi -10V anlaşılır. LOW denilincede +10V anlaşılır. Bu nedenle TTL ile RS232 nin analşabilmesi için arada bir seviye düzeltici kullanılması gerekirki buda MAX232 entegresidir. Data sheetleri incelersen nasıl bağlandıkları devre şemasının ne olduğunu görebilirsin. MAx232 ye dikkat etmen gerekiyor. Bu entegre +5V besleme ile  hem +10V hemde -10V voltajları üretir . Bu nedenle devresindeki kondansatör bağlantılarına çok dikkat etmen gerekir. Bir şemaya ihtiyacın yok aslında bütün yapman gereken şet Max485 entgeresinin A ve B uçlarını ünitelerde bir birlerine bağlamak olacaktır.
Önce inceleme yap sonra takıldığın yerde yeniden sorarsın.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

halinzlimurat

Cevaplar için çok teşekkür ederim. Aslında önce RF ile yapmayı denedim. RF modül olarak UDEA' nın ARX-34 ve ATX-34 modüllerini kullandım. Tek pic' te hem alıcı , hem verici kullanınca şöyle sorunlar çıktı. Alıcıdan gelen sinyalleri  seri iletişim kesmesiyle kontrol edince program bir türlü kesme alt programından çıkmadı. Kesmesiz kullanınca da sağlıklı bir çalışma olmadı. Yani bir butona basılmasını algılatmak nerdeyse tesadüflere kalacak derecede kötü oldu. Alıcı ve verici için ayrı ayrı pic16f628' ler kullanayım, picleri kendi arasında haberleştireyim dedim yine alıcı devrede olunca sistem çöktü. Ne diyim aslında kablosuz yapmak istedim ama olmayınca RS485 ' le kablolu yapayım bari dedim.
@<-.HKM.->@

halinzlimurat

Bir de merak ettiğim bir husus var.  Kablolu sistemde yada aynı şekilde aslında kablosuzda da. Yarışmacılar aynı anda veri yollarlarsa sorun çıkar mı? Arda arda yollamak mı lazım. Ya da bir iletişim protokolü mü yapayım kendi çapımda yarışmacı masa veriyi yollasın sürekli ta ki ana masadan okey  alında mesajı gelene kadar. Buna gerek var mı?
@<-.HKM.->@

ErsinErce

herşeyden önce derdini anlatırken kullandığın karakter yapısını düzelt

sonrası RF için mesh ya da star network kurabilen modüller kullanman daha sağlıklı olur, sonuçta ms bazında gecikmelerle veri gelecek
ATX tarzı modüller yayına geçince birbirinin yayınını bozar gelen veri anlaşılmaz olur

RF işin anlayacağın biraz sıkıntılı zaman sıkıntın varsa RS-485 üzerinden gitmen daha iyi olur
nette ve forumda bolca örnek var

ete

Bu sistemin bir haberleşme protokolü olmadan çalışması neredeyse imkansızdır. Bu nedenle mademki ortada bir ANA masa mevcut ona yöneticilik görevini verirsein bütün sistemi o idare eder. Mantık son derece basit. ANA öncelikle ilk masaya soruyu yöneltir ve cevabını ver der. Diğerleride bu bilgiyialır ama ilk masadan başka kimse cevap yollamaz. Sonra ikinci ye aynı görev verilir ve bu şekilde devam eder.
Peki masalar kim olduklarını nereden bilecekler. Her bir masa kartında bir dip-sw olur ve bu swi den her masaya bir ID numarası verirsin. Dolayısıyla bütün masa kartları aynı yapılır tek fark anahtardan numaraları farklı verilir. Kart ilk çalıştığınde kendi numarasını okur ve hafızasında tutar. Gelen bilgide önce ID numarası yollanır böylece emirin kime yollandığı belirlenir.

Bu sistemin bir benzerini aşağıdaki linkte Algoritma çalışması şekilnde incelimş ve yapmış idik. İşin alsı RF üzerine yapılmış olsada simule etmek için sistem RS485 üzerinden kablolu olarak bağlanmış ve simulasyonda çalıştırılmıştır.

http://etepic.com/index.php?topic=57.0

Son bir şey, yazılarını her kes gibi normal karekterlerle yazmayı dene lütfen. Aynı şekilde devam edersen okumayacağım mesajları.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

halinzlimurat

Karakter yapısının sizleri bu kadar rahatsız edeceğini düşünmemiştim. İletilerin yazıldığı yerde bu imkanlar sunulmuş çünkü, ben de kullanayım dedim.

Tekrar çok teşekkür ederim yanıtlarınız için...
@<-.HKM.->@

RcALTIN

rs485 için bilgisayar tarafında .net ile çalışacaksanız nmodbus diye bir kütüphane var, mcu içinde ccs c ile yazarsanız modbus sürücüsü mevcut, modbustan anlıyorsanız öneririm.

ayrıca
Alıntı yapılan: halinzlimurat - 07 Kasım 2011, 10:22:16
İletilerin yazıldığı yerde bu imkanlar sunulmuş çünkü, ben de kullanayım dedim.

ihtiyaç duyulduğunda kullanılabilsin diye var olan özellikler, bir metni vurgulamak için v.s. mesela benimde silahımla önüme geleni vurma imkanım var ama yapmıyorum ;)
KİMSEYİ ENGELLEDİĞİM YOK, ÖZEL İLETİ DEVRE DIŞI !

halinzlimurat

 ;D Silahınız mı var. Peki ben artık normal yazacam bundan sonra  ;D
@<-.HKM.->@