RF şifreleme

Başlatan erdogan2734, 15 Haziran 2012, 12:24:38

erdogan2734

  Sevgili arkadaşlar öncelikle herkese merhaba.
Geçenlerde ETE hocamın Etepic sitesinde bu konuyu açmıştım Ete hocamın değerli tavsiyelerini aldım birde sizlere danışmak istedim yardımcı olursanız sevinirim.
                 Şimdi benim sorunum şu 50 adet kumandam ve 50 adet alıcı cihazım var. Bu kumandaların şöyle bir özelliği olmasını istiyorum eğer ortamda bir adet kumanda varsa ve birden fazla alıcı varsa ben kumandanın ikitane özel tuşuna basarak (ceptelefonlarında tuş kilidi gibi) ortamda ki açık olan tüm alıcılarla kumandamı eşleştirmek isityorum. Daha sonrada eşleştirdiğim tüm cihazları kontrol etmek istyorum. Alıcı eşleşmeden sonra o kumandayı hafızaya alacak ve başka bir eşleştirme olana kadar o kumandadan gelen verileri kabul eddecek. Eğer başka bir eşleştirme olursa alıcı sonrakini kabul edecek ve kaydedecek.
                  Şimdi basic dilinde başlangıçta VERİCİ için bir şifreleme dalı açtım.

SIFRELEME:
IF TUS1=0 AND TUS2=0 THEN 
VER=1
GOSUB GONDER
GOTO BUTONKONTROL
ELSE 
PAUSE 100
GOTO SIFRELEME
ENDIF


               Burada sorunum şu her verici için 50 tane ID oluştumaktansa acaba bir tablo yapsam ve oradan bir veri gönderip alıcı bu tablodan
  veriyi kontrol edip şifrelemeyi kabul edip çalışsa daha kolay olurmu? Yada burada farklı ne kullanabilirim?
  Alıcı için ve verici için her yolladğım şifrelemeyi eproom a yazdırmayı ve böylece eşleşmiş cihazları cihaz açılıp kapatıldığında tekrardan
  şifreleme beklemesin diyerek bilgiyi korumaya almayı düşünüyorum.
              Ete hocamın kendi sitesinde verdiği yanıt çok profesyonel bir yanıt ve onun üzerinden gitmek istiyorum. Ama rf ile ilgili daha önce fazla bir pratiğim olmadığı için öylece baka kalıyorum. Ete hocamın yanıtı:
Alıntı YapAlgoritma 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
Arkadaşlar fikirlerinizi bekliyorum. Ete hocama da değerli yorumu ve yardımı için teşekkür ediyorum.
 
Bildiğim tek şey henüz hiç bir şey bilmediğim...

erdogan2734

#1
Arkadaşlar uzun uğraşlar sonucu kendi sorunumu kendim çözdüm :) İsteyen arkadaşlara bu konuda yardımcı olabilirim.
Bildiğim tek şey henüz hiç bir şey bilmediğim...

aea_46

Merhabalar. Öncelikle emeginize sağlık.
Rica etsem bu konuda bana da yardımcı olabilirmisiniz.
KSU Elektronik Bölüm Öğrencisi A.K.A TA8AKU

mustafa_cmbz

şöyle yapılabilir...

vericiden dediğiniz gibi bir tuş fonskiyonu oluşturup bu fonksiyon gerçekleştirildiği zaman data'dan önce göndereceğin ön bilgiyi "HEPSİ" olarak verirsen sonrada datayı gönderirsen ve alıcıda da gelen önbilgi şayet hepsi ise ve sonrasındaki data 1 ise meslea bütün alıcılardaki 1. led'i yak dersin gelen önbilgi hepsi data 2 ise hepsindeki 2. ledi yakarsın...ama kumandadan o bahsettiğimiz tuş fonksiyonunu gerçekleştirmeden sadece 1. alıcıyı çalıştırmak istersen yine bir tuş fonksiyonu oluşturup gönderme yapabilirsin...

mesela alıcıları tek tek kontol etmek istersen kumandadan a tuşuna basara a alıcısını seçer 1 tuşuna basarsanız 1 datasını a alıcısına gönderirsiniz...kumandanıza # tuşuna basarsanız da hepsi moduna sokup ardından hangi datayı göndermek istiyorsanız o datayı atar ve gönderirsiniz...

bu işlemler için şöyle yapabilirsini


kumanda için:

başla:
ıf #=1 then hepsi_modu
ıf a=1 then  alıcı_1_modu
ıf b=1 then alıcı_2_modu
goto basla

hepsi_modu:
ıf 1_tusu=1 then data=1 : goto hepsine_gonder
ıf 2_tusu=2 then data=2 : goto hepsine_gonder
goto hepsi_modu


hepsine_gonder:
serout , önbilgi (hepsi),data
delayms 500
goto basla


alıcı_1_modu:
serout , önbilgi (alıcı_1) ,data
delayms 500
goto basla

alıcı_1_modu:
serout , önbilgi (alıcı_2) ,data
delayms 500
goto basla


gibi olabilir... örnektir..

MT

Araç kumandalarının hepsi IDE kullanarak haberleşir en profesyonelide budur(güvenlik açısından). Şifreleme entegrelerini incele bence microchip ve nxp firmasının entegreleri mevcut işim gereği fazla bişey söyleyemiyorum malesef. Bu dediğim güvenlik açısından önemlidir şifrele algoritması yoksa birisi alır USBEE'yi dinleme yapar zınk diye çıkar password ortaya. Amaç sadece cihazlar arası karışmayı engellemekse zaten çözüm bulmuşsunuz iyi günler.