avatar_ete

Seri ve RF iletişim Sistemlerinde Master - Slave İlişkisi Üzerine bir Çalışma

Başlatan ete, 04 Eylül 2011, 16:33:47

xoom

Yanıt İçin Tşkler hocam ..Dün Epey bir düşündüm fakat kafama şöyle birşey takıldı.. Slave Veri Gönderdiğim Tx Pini İle Max 232'nin bağlı olduğu Tx   aynı pinler.. ikiside aynı hatta bağlılar..
Bu durumda PC'ye veri aktarmaya çalıştıgım anda aynı bilgi Master'dan Slave de gitmiş olucak bu kısımda beynim durdu?
PC'ye veriyi  başka nasıl aktarabilirim? Sonuçta MCU'da bir adet UART var..
https://www.dropbox.com/s/m60bv3j9sm3ivnc/test.DSN

ete

Sistem bilgi alırken zorlanır. O nedenle USART kullanmak gereklidir. Ama yollarken ipler senin elinde. O halde herhangi bir pin gurubunu kullanarak SEROUT2 komutu ile PC ye veri yollayabilirsin.

Ete

xoom

Ben Basic Kullanmadıgım için mantığını sormak istemiştim.. bu durumda şemamdaki tx ve rx  pinlerini iki farklı amaç için kullanamayacağım çıkıyor.. o zaman 2 USART çıkışlı Pic kullanmak mı gerekiyor.. veya bilmiyorum ama herhalde CCS C de de serout2'ye denk bir kod vardır..

Alıntı YapSistem bilgi alırken zorlanır. O nedenle USART kullanmak gereklidir.Ama yollarken ipler senin elinde.
bu kısımı biraz daha açarmısınız hocam bisey mi anlatmak istediniz yoksa ?

Hattuşa

S.A.
ETE HOCAM MUCİD23 HOCAM;
özür dileyerek bir soru sormak istiyorum 12F675 entegresinde serın komutu çalışmıyor mu? yani usart haberleşmesi yokmu? datasheette bulamadım, bu şu demek mi oluyor? bu işlemci seri haberleşme yapamaz. byte mertebesinde bilgi almasını sağlatma imkanımız yokmudur?

F®T

Alıntı yapılan: ete - 06 Ocak 2013, 16:06:11
Sistem bilgi alırken zorlanır. O nedenle USART kullanmak gereklidir. Ama yollarken ipler senin elinde. O halde herhangi bir pin gurubunu kullanarak SEROUT2 komutu ile PC ye veri yollayabilirsin.

Ete


hocanın demek istediği, bir işlemcinin alma pozisyonunda bilgiyi kayıpsız  alması isteniyorsa usart kesmesi ile kullanılması gerekiyor.çünkü usart kesmesinde işlemci usarttan bir bilgi geldiğini anladığı anda bilginin başını yakalar ve dataları kayıpsız bir şekilde alır.ama normal almada ise bilgi gelir işlemci kimbilir hangi işlemi yapıyordur alma pozisyonuna gelene kadar bundan dolayı bilgi alma pozisyonunda eksik data alma sorunu yaşarsın.yoksa normal serin kullanılırsa paket saglıklı alınamayabilir.ama gönderme ise bize baglıdır. neticede gönderme fonksiyonunu biz ne zaman istersek aktif edebiliriz.onun için ne zaman göndereceğin sana bağlı iken ne zaman bilgi geleceğini bilmek sana bağlı değil.o zaman sürekli bilgi geleceğini varsayarak usart kesmesi kullanıp geldiği anda kesme oluşturup kesme içine girip bilgiyi alıp çıkarsın.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

F®T

Alıntı yapılan: pro-TR - 20 Ocak 2013, 13:32:47
S.A.
ETE HOCAM MUCİD23 HOCAM;
özür dileyerek bir soru sormak istiyorum 12F675 entegresinde serın komutu çalışmıyor mu? yani usart haberleşmesi yokmu? datasheette bulamadım, bu şu demek mi oluyor? bu işlemci seri haberleşme yapamaz. byte mertebesinde bilgi almasını sağlatma imkanımız yokmudur?

http://www.best-microcontroller-projects.com/pic-serial-port.html

faydalanabilirsin.
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Hattuşa

F.T hocam burda 12F675 verici olarak çalışıyor sanırım, ben alıcı olarak çalıştırılması konusunda yardım istemekteyim.

F®T

pdf sini inceledim ama usart yok.sizbunu soft olarak kullanmak zorundasınız.serin komutu ile.ben olsam tmr0 kesmesi ile sürekli kesme içinde gelen varmı diye bakardım :)
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

ete

Benim vermem gereken cevapları FT vermiş sağolsun. İllaki 8 bacaklı bir pic kullanacaksanız usart ı olan işlemci var. Yanlış hatırlamıyorsam 12f683 idi yanılıyor olabilirim. Birde 12f1822 ye bakmak lazım.
Ete

Hattuşa

ETE hocam ve FT hocam vermiş olduğunuz bilgileriniz için teşekkür ederim

elektro77

Mesaj tarihlerine baktım da ben biraz geç kalmışım. Yıllar sonra ana konuya dönecek olursak; Anladığım kadarıyla: Master sürekli-git bak slavelerde bilgi var mı? , Varsa-şunu yap-diyor değil mi.
Fakat maksimum 16 adet slave ile yapılmış bir örnek var. Ben bunu 8 li dipswich ile teoride 100 adete kadar çıkarabileceğimi düşünüyorum. fakat pratikte yavaş çalışma ihtimali olacak sanırım. Çünkü master 100 adet slave i sürekli kontrol edecek. Bu işin tamamını kaç saniyelik döngülerle yapabilir bilmiyorum.
Doğru anlamış mıyım bilmiyorum?
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

Bir veri alışverişi yaklaşık 10 ms sürer. Kısaca alıcı her 10 ms de bir veri alabilir. Buda 1 snd e 100 aboneden gelen bilgiyi alabileceğini gösterir. Ama sıralı (protokol) çalışması olursa bu süre 2 katına çıkabilir. Master burada;
1. Nolu abone sende veri varsa yolla  diyecek. Bu bilgiyi 10 abonenin tamamı alacak. Ama yollanan bu bilgi mesela, (ID_NO, Emir_NO) şeklinde yollanır ise Her kes aldığı ID_NO sunun kendi ID si ile karşılaştırır. Eşit ise emir ona gelmiş demektir ve oda cevap olarak ID_NO, VERI şeklinde bilgi yollar. Master 1 nolu aboneden bilgi bekklediği için gelen ID no suna bakar 1 ise gelen veriye bakar ve o veriden ne var ise ona göre işlem yapar.
Sonra 2 numaralı aboneye sende ne var diye sorar aynı yöntemle. Gelen cevabı alır ona göre hareket eder. Sonra 3 numara ve bu 100 nolu aboneye kadar uzanır. Ne kadar sürer o nu bilemem. Sistemin hızına ve bilginin işleme hızına bağlı olarak değişir ama en fazla olsa olsa her bir alış veriş 5-10 ms arası sürer daha fazla sürmez.

Ete

elektro77

#72
Ben sadece vericiden gelen bilgiye bakacağım hocam:
örneğin:iki tuşlu ve tuşları artıya çekilmiş bir vericide Bir tuşa basınca verıcı enerjilenek ve  IF tus=1 ise VERICI=1 alıcıda da ekrana 1 yaz
diğer tuşa basılırsa yine verici enerjilenecek ve IF digertus=1 ise VERICI=101  alıcıda da ekrandaki 1 i sil  diyeceğim. Bunu yüz vericide de yapacağım.Bu kadar.

Bunun usart ile yapılmış gönderme alma protokolü nasıl olmalıdır. Yine ID_NO, Emir_NO şeklindemi olmalı. Orda biraz kafam karıştıda
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

ete

Bu sistemin sağlıklı çalışması için master slave ilişkisi içinde protokol gerekir diyorum ama sen pek kulak asmıyorsun anlaşılan. Zaten butondan elektrik alan verici sisteminde bu işe hiç uygun değil. Bu durumda tek bir seçenek kalıyor. 100 tane verici yapacaksın. Aynı anda çağrı yapmasınlar diye dua edeceksin. Yapsalar bile alıcıda alabildiğini alacak.

Bu sistemi yaparsan tabiiki bir ID_NO,Veri bilgisi göndermen gerekmiyor. Sadece ID-No (yani abone numarası) yollaman yeterli gözükecek. Ama bilgi kaçırmayı nasıl engellerim diye bir daha soru sorma başka yolu yok bu işin.
Yap şu sistemi kurtulalım hep birlikte.

Ete

aRci

iyi çalışmalar
siz kapatmak isteseniz de ben devam ettirmek istiyorum affınıza sığınarak :)

master ve slave çalışmasını anladım. Ancak nerdeyse her projemde bir kararsızlı yaşıyorum. Şuan ki projemde ornek olarak tarla yada kuyu otomasyonu için kablosuz uzak mesafelei haberleşme yaptırmaya çalışıyorum.

tarla sulama mantığı üzerinden gidersek.master tarla sulamasının yapılacağı pompa binasında ve 4 adet valfi kontrol ediyor. ve sahada sensörler ve sulama hattı üzerinde dağıtıcı vanalar ve vanaları kontrol eden bir baska slave var.

tum sensörler master ile haberleşme mesafesi içerisinde sayılıyor.arazide sensör sayısı ve çeşidi her zaman artırılabilir.

bu senaryolarda göre devrreyi hazırladım programda nerdeyse tamam ama master devresini yanlış yaptığım için tekrar tasarımını yapacağim ilk denemelerimde buruda paylasacağım

tum bunları geçtikten sonra zorlandığım kısım misal slave 1 den alınan sıcaklık ve nem bilgisine göre slave 2 de ki vanayı çalıştırmam yada kapatma kararını nasıl aktarmalıyım.

bu işleme slave mi karar vermeli yoksa master mı
slave desek belki slave de program değişikliğine gitmem gerekecek ve belkide sahada ki tüm slavelere program atmak demek olacak
master karar verecek desek masterın hem iletişim hem veri işlemesini istesek yavaşlama olabileceğini düşünüyorum.tabi bunun için pekde onemli değil.

tabi birde iletişimin kopmasıda cabası :( bunun için protokol yapılabilir. mesala 10dk boyunca bbilgi gelmezse sunu yap gibi...
siz değerli hocalarımın bu konudaki bilgi ve tecrubeleri nelerdir. anlık tapki verilmesi istenen yada zamanlamanın çokda önemli olmadığı durumlarda olarak 2 gruba ayırdığımızda karar verme sureci nasıl yapıyorsunuz.

Powered by EzPortal