Rf alıcı ve verici kodlaması için algoritma

Başlatan erdogan2734, 12 Haziran 2012, 16:52:34

erdogan2734

    Arkadaşlar öncelikle herkese merhaba.
Rf alıcı ve rf verici ile cihaz kontrolü yapmaktayım. Herşey iyi güzel çalışıyor ancak tek bir sorunum var bunu yine sizlere sormak istedim.
Yaklaşık 50 tane kumandamız ve 50 tane alıcı cihazımız var. Bu cihazları istediğimiz kumanda ile istediğimiz alıcıyı eşleştirmek istiyoruz. Ancak bu sistemi dijital olarak yapmak istiyoruz. Yani entegre kullanmadan yazılımla. Örneğin elimizde bir adet kumanda var ve ortamda 5 adet alıcı cihaz var. Ben bu kumanda ile tüm alıcıları kontrol etmek istiyorum tabi kodlama yaparak. Ayrıca istediğim kumanda ile istediğim alıcıyı ayrı ayrı eşleştirebilmek istiyorum. Umarım anlatabilmişimdir. Bunun için çeşitli argoritmalar olduğunu öğrendim ancak nasıl bir yöntem izlemeliyim tam olarak bilmiyorum. Bana bu konu ile ilgili yardımda bulunursanız çok sevinirim...
Erdoğan
İmkansızın zaman aldığı bir dünya'da bana zorluktan bahsetme!

ete

Algoritma basit aslında.  Öncelikle eşleştirilecek alıcı ile vericileri bir araya getirirsin. Sonra her bir vericiyi alıcıya okutup içindeki şifreyi öğretirsin.  SOnra vericideki butona basılınca alıcı hafızasındaki şifreleri kontrol eder ve liste dahilinde bir şifre ise kontrol işini yapar değilse kılını bile kımıldatmaz.

Bu iş için alıcı devrende bir program butonu birde prog. ledi olması gerekir.
Sistem ilk açıldığında işlemci hafızasındaki 5 adet 16 bitlik şifreyi okur.  Şifre kayıtlı değil ise şifre değerleri $FFFF şeklindedir.
İlk önce program PRG tuşuna basılmışmı ona bakar. Basılmış ise basılma süresini kontrol eder.
Şayet 3 sn den daha az basılmış ise bu yeni bir şifre girilmesi anlamına gelir.
Şayet 3 snde n fazla basılmış ise hafızadaki şifreler silinecek demektir.
Basılma süresine göre işlem yapar.
Şifre girerken hafızadaki boş (değeri $FFFF olmayan ) şifreyi bulur.
Şifreleri okur ve okuduğu şifreyi bu hafızaya kayıt eder. Kayıdın başarılı olduğunu prog ledine flash yaptırarak teyid eder.
Prog tuşuna basılmamış ise program RF den gelen bilgiye bakar. Gelen bilgi var ise onları alır ve hafızasındaki bilgiler ile karşılaştırır. Uyan var ise ne yapması gerekiyorsa onu yapar uyan yok ise başla satırına döner.

Bütün algoritma budur. Tabiiki bu işin içinde birde RF vericisinden gelen bilgilerin okunması işi var.  Bu işin mantığını anlamak için şifre entegrelerinin çalışma mantığını incelemek gerekiyor. Burada vericide kullanılan şifre entegresine bağlı olarak alıcı mantığını çözmek gerekir. İşin bu kısmı azıcık ticari alana giriyor. Daha fazla detay veremem. Çünki bu sistemi ben yapıp satıyorum. İlk defa da bir ticari proje için yapmıştım . Sonrasında ise işin devamı geldiği için proje haline getirmediğim bir konudur. Yinede epeyce bilgi verdiğimi düşünüyorum.

Elbette farklı fikirler gelebilir. Onlarıda görmek ve incelemek isterim.

Ete

erdogan2734

Ete hocam hızlı cevabınız içn teşekkür ederim.
Benimde düşüncem (Bir hocamın tavsiyesi ) her bir alıcı ve vericiye bir ID numarası vermek ve bu numara üzerinden işlem yaptırmak.
Diğer arkadaşların da düşüncelerini aldıktan sonra ortaya birşeyler çıkarabileceğime inanıyorum.

Erdoğan
İmkansızın zaman aldığı bir dünya'da bana zorluktan bahsetme!

ete

Bu bir okul ödevi ise o zaman seri haberleşme yolu ile dediğin yöntemle yaparsın. Ben bunu bir iş amacı ile yapacağını düşünerek yukarıdaki açıklamayı yazdım. Doğru metod odur çünki.
Ama seri haberleşme yolu ilede bu işi yapabilirsin.

İşin zor yanı 20 tane vericiyi yapmaktır. Tabiiki gerçekte bu vericileri yapacak isen zor değilse oda sorun olmaz sanırım.

Ete

halilgaliç

Sn ete hocam bi aralar roling code diye bi tabir duymustum anlattıgınız omu acaba.

ete

Rolling code tamamen farklı bir olay.
Her seferinde farklı şifre yollanması gibi bir temele dayanır. Açıklanmayan bir hesap mantığına göre alıcı gelen şifre bilgisini alır işler hesaplar ve kendine ait bir kod mu değilmi anlar ve gereken işleri buna göre yapar. Bu şifrelerin kopyalanmasını önlemek amacı ile geliştirilmiş bir sistemdir. Üst üste aynı kodu yollarsanız alıcı ikincisinde buna tepki vermez farklı bir kod gelmiş gibi davranır.
Henüz mantığını bende bilemiyorum. Tahmin ettiğim şeyler var. Mesela alıcı ve vericide birer tablo oluşturulsa ve alıcı gelen kodları bu tablo içinde arasa. Bulduğu zaman en azından 3-5 kod öncesinden aynı kod yollanmış mı diye baksa ve yollanmamış ise işlemi yapsa yollanmış ise kopyadır deyip işi yapmasa olur gibime geliyor.

Ete

erdogan2734

     Ete hocam okul projesi değil, 1 sene önce mezun oldum. Şimdi özel bir firmanın arge bölümünde çalışıyorum. Her yeni ve bilmediğim anlayamadığım konularda sizin ve arkadaşlarımızın değerli fikirlerini almak için buraya ve pic proje forumuna yazıyorum. Bu konuyu üniversiteden basic konusunda bilgili bir hocama da danışmıştım. Bu fikir ondan gelmişti. Alıcı ve vericilerimiz yurt dışından geliyor hocam. Biz sadece yazılım ile kontrol edip bilgi gönderip kullanacağımız sistemi tasarlıyoruz. Bu da yine öyle bir endüstriyel proje. Son olarak bu algoritma olayı kaldı işallah bu hafta bunu araştırıp bitirmeyi düşünüyorum.
     Verdiğiniz cevaplar için teşekkür ederim.
Erdoğan
İmkansızın zaman aldığı bir dünya'da bana zorluktan bahsetme!

askin

Sevgili Erdoğan; benim buna benzer bir çalışmam oldu,  RF kumandan kastın anahtarlığın içine yerleştirilmiş
bir RF kumanda ise muhtemelen en çok burada zorlanacaksın, uzun ve meşakkatli bir iş olduğunu şimdiden
hatırlatmak isterim,

Benim projemin çalışma mantığını kısaca anlatayım.

Verici = 
Tek butonlu bir anahtarlığın içine yerleştirilmiş 12f675 içerisinde yazılımsal olarak kendi ID si var.
butona basıldığında kendi ID numarasını ve gönderdiği bitlerin toplam kaç bit olduğunu bilgisini de
göndermekte, bu şunun için gerekli: RF olarak bilginin tamamı karşı tarafa doğru olarak gitmedi ise
işlemin alıcı kısımda dikkate alınmaması gerekiyor. 

Alıcı =
alıcı kısımda iki adet buton var. birinci buton öğrenme butonu, bu butona basılı tutarak kumandadan
bilgi gelmesi beklenir eğer bu bilgi kendi cihazından gelmiyorsa işlem yapılmaz, kumandadan bilgi tam
olarak geldi ise O anahtarlığı tanır ve bu ID yi epromuna yazar 50 adet anahtarlığı tanıyabilir.
ikinci butona basılı tutulup anahtarlıktan sinyal gönderilirse O anahtarlığı hafızadan siler.         

ete hocamızında dediği gibi rolling çok farklı bir olay, eğer ki bir otomobil veya çok değerli birşey
korunmayacaksa uğraşmaya değmez çünki ben piyasada satılan kopyalabilir anahtarlıkların
hepsini denedim hiçbiri bu ID yi kopyalayamadı, muhtemelen sıra dışı bir baud kullandığımdan
olsa gerek, söylediğim gibi eğer çok değerli birşey korunmuyorsa kim niçin uğraşsın.
yazının akışı hernekadar cihazın tanıtımı gibi olduysada özür dilerim, amacım sana yol göstermekti.
Bu sitenin amacı paylaşım olmasına rağmen ticari olarak sana açık kodları vermem imkansız fakat
gidilecek yol belli, kolları sıvadığında başta ete hocamız olmak üzere hepimiz yardıma hazırız.

sağlıcakla kal



erdogan2734

Sevgili askin;
Öncelikle cevabın için çok teşekkür ederim. Benim ETE hocamdan yediğim fırçalar sayesinde öğrendiğim en büyük şey
hazıra konmamak(Tabi buna hiç bir zaman gocunmadım). Demek istediğim burada benim aradığım sadece bir yol gösterimidir.
Yoksa bana direk programı yapın verin dersem kendi mesleğime yanlış yapmış olurum. Bu arada bizim kullanım alanımız araç sektöründen çok farklı. Yaklaşık 8 adet tuşa sahip bir kumandamız var. Bu kumanda ile alıcı tarafta birden fazla şey kontrol ediyoruz. Hatta bunların içerisinde dijital potansiyometre bile var.Benim burdan anladığım sıkı bir algoritma hazırlamam ve tüm vericilere bir ID vermem gerekliliği. Bu tip bir algoritma için kaynak araştırması yapmam gerekli.
   İlginiz için teşekkür ederim.
Erdoğan
İmkansızın zaman aldığı bir dünya'da bana zorluktan bahsetme!

Powered by EzPortal