checksum byte ını hesaplama ???

Başlatan elektromet, 09 Ocak 2008, 10:19:49

elektromet

merhaba arkadaşlar.

elime üzerinde pic16f877 bulunan ve sıcaklık ölçen bir kart geçti.Kart ile alakadar hiç bir döküman yada kaynak kod elimde yok.Sıcaklık değerilerini PC ye rs232 ile aktarabiliyor. haberleşebilmem için aşağıdaki byte dizisini porta göndermem gerek.

" 0x04 ,0x82 ,0x80 ,0x0c ,0x14 ,0x03 ,0xB0 ,0x01 ,0x03 ,0x010 ,0x03, 0xBC "

0xBC baytı checksum byte fakat bunun nasıl hesaplandığını bir türlü bulamadım.Yardımcı olmanızı rica ediyorum.Teşekkür ederim.

F493

Alıntı yapılan: "elektromet"merhaba arkadaşlar.

elime üzerinde pic16f877 bulunan ve sıcaklık ölçen bir kart geçti.Kart ile alakadar hiç bir döküman yada kaynak kod elimde yok.Sıcaklık değerilerini PC ye rs232 ile aktarabiliyor. haberleşebilmem için aşağıdaki byte dizisini porta göndermem gerek.

" 0x04 ,0x82 ,0x80 ,0x0c ,0x14 ,0x03 ,0xB0 ,0x01 ,0x03 ,0x010 ,0x03, 0xBC "

0xBC baytı checksum byte fakat bunun nasıl hesaplandığını bir türlü bulamadım.Yardımcı olmanızı rica ediyorum.Teşekkür ederim.

yukarıda bilgi  işlemci  tarafında elde edildikten sonra ,kendi içersinde exor işlemine sokuluyor, ve sonra bilgi arkasından checksum byte gönderiliyor..

açık olarak şöyle , örnegin   10 defa farklı ısı degeri ölçücez ve bunları bir diziye kaydedicez ,sonrada bunu bilgisayar aktaracagız,ancak bilginin dogru gidip gitmedigi önemli.

basit olarak şöyle yazıcam anlamanız için

"0x04 ,0x82 ,0x80 ,0x0c ,0x14 ,0x03 ,0xB0 ,0x01 ,0x03 ,0x010 ,0x03, 0xBC "

0x04 (exor) 0x82 (exor) 0x80(exor).......bu işlem  (exor) 0x03'e kadar devam eder bunun sonucunda ortaya 0XBC çıkar

yani  sen bilgini gönderiyorsun ancak göndermeden yukarıdai yaptıgım şekilde hepsini bir sınrakiyle exor işlemine sokuyosun  ve 0xbc yi buluyorsun.

artık verini bilgisayara gönder ve ayni şekilde bilgisayara aldıgın veriyi   tek tek exor işlemine sok ,ve çıkan sonucuda en son gelen ((burada 0xBC))HEX degerle exorla  ve sonuç 0 çıkar .
iki aynı deger exorlanırsa sonuç o çıkar

ben bilgini kontrol ettim sonuç dogru ,emin olman için farklı bir kaç degerde aynı işlemi yap bakalım en son byte ile aynı çıkacakmı..

iyi çalışmalar..

elektromet

@ F493 ,
çok teşekkür ederim yardımın için.denedim ve işe yaradı. tekrar teşekkürler.

F493

Alıntı yapılan: "elektromet"@ F493 ,
çok teşekkür ederim yardımın için.denedim ve işe yaradı. tekrar teşekkürler.

önemli değil bana yardımcı olabilmenin verdigi hazzı yaşattın . ;)

burada olayı anlamışsan artık sende  kendin haberleşme ile ilgili bişeyler yaparsan böyle bişeyi araya koyup ,(süzmek) saglama yapabilirsin..

böylece daha güvenli bir haberleşme olmuş olur..

aslında genelde CRC  kullanıyorlar,oda bir kontrol algoritmasi ..

tabiki crc biraz komplex (logaritmik) işlem..ör\ akbillerde var,tcp-ıp de var sanırım... mantıgı aynı ama.

 iyi çalışmalar...