PELCO-D protokolü nedir?

Başlatan zakbay, 04 Aralık 2009, 18:20:48

zakbay

Merhaba
arkadaşlar güvenlik sistemlerinde kullanılan kameralardaki PELCO-D protokolü ile uğraşan oldumu bunu pic ile nasıl çözebilirim.

burada sanırım C# için örnek verilmiş

http://www.codeproject.com/KB/cs/PelcoPDinC.aspx
Tek dostum çalışmak...

PROTECH_

Speeddome kameraları kontrol etmek için bir çok protokol mevcut.
pelco-d, pelco-p 'de  speeddome kameraları kontrol etmek için kullanılan bir protokoldür, rs-485 üzerinden haberleşir.


protokol hakkında ayrıntılı bilgi almak isteyen arkadaşlar
daha sade ve anlaşılır olan aşağıdaki linki inceleyebilirler.

http://www.commfront.com/RS232_Examples/CCTV/Pelco_D_Pelco_P_Examples_Tutorial.HTM#1
Multi-Core ,RTX,ThreadX, FreeRTOS, MODBUS  RTOS - Electronic-Hardware -- BERLIN

Mucit23

Arkadaşlar merhaba.

RS485 üzerinden PelcoD protokolü ile haberleşen bir PAN-TILT güvenlik kamerası var. Bu kamerayı RS485 üzerinden kontrol etmek istiyorum birşey aklıma takıldı.

Kameranın PelcoD protokolüne göre standart komut yapısı bu şekilde


Burada Synch Byte olarak sürekli FF gönderiliyor. Sonrasında adres komut ve data şeklinde sıralanıyor. En sondaki 7. Byte'da ise CheckSum byte'ı yollanıyor. Bunu anlayamadım. Checksum Hesaplaması yapmam gerekiyor. Bunun hesabı nasıldır?

t2

#3
Önceki baytlarin toplamı olabilir. Sync byte hariç .

Yukarıdaki linkte bahsedilmis. Sadece toplama değil başka yöntemler de varmış.

Elinizde gerçek bir data varsa hangisi uyuyorsa onu kullanabilirsiniz
o sayfada bahsedilen Checksum Calculator programı ile deneme yapılır.

RaMu

Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

Mucit23

Bendeki pelcod protokolünün anlatıldığı pdf de checksum hesabina değinilmemiş. Ben bulamadım en azından.  Şimdi meseleyi anladım.  T2 nin dediği gibi sync hariç gönderilen tüm değerler and işlemine tabi tutulup checksum verisi elde ediliyor.

Mucit23

Selamlar. STM32 ile bir tane speeddome kamerayı RS485 üzerinden kontrol etmeye çalışıyorum. Kameranın video çıkışına ufak bir video monitör bağladım. Kamera çalışıyor. Baudrate Adress gibi parametreleri görebiliyorum. Kamera ile STM32 arasındaki bağlantıları yaptım. Kamera 2400 Baudrateye ayarlı olduğu için bende STM32 de usart ayarlarını 2400 baudrate olarak ayarladım.

Kameraya PelcoD protokolüne göre veri gönderiyorum. Kamera buna Video çıkışına bağladığım monitör üzerinden yazılı olarak tepki veriyor.

Kameraya hang komutu gönderirsem göndereyim farketmiyor. Veri gönderdiğim zaman Monitörde PROTOCOL AND BAUD IS DETECTING... Yazıyor. Veri göndermeyi kesince,

SELF            BAUD 2400
CONTROL    BAUD UNKNOW


Yazıyor. Yani baudrate farklı gibi birşey demek istiyor. Ama Ben STM32'nin Usart TX çıkışına Logic analyser bağlayıp 2400 baudratede veri gittiğini doğrulayabiliyorum. Hatta Gelen verileri analiz edip gönderdiğim dataların doğru bir şekilde STM32'den çıktığını görebiliyorum.

Acaba Senkronizasyon felanmı tutmuyor. PelcoD için Sync Byte 0xFF verilmiş. Buda karşıya gidiyor. Başka ne olabilirki?

Mucit23

Fikri olan varmı? Acaba protokol dışında yanlış birşeylermi yapıyorum? 

engerex

 Eğer cihazı PC'ye bağlayabiliyorsan ve PC yazılımı var ise iletişimi izleyip analiz edebilirsin.

Mucit23

Elimde oyle bir yazılım yok ama araştırayım. Arkadaşımda bunları kontrol edebilen bir joystick vardı.  Onu alıp çıkışını logic analyzer ile takip edersem gelen data paketlerini çözebilirim diye düşünüyorum.


Mucit23

İyi Bayramlar.

Dün tekrardan kameranın kartına baktım. Donanımda problem var sanırım. Kamera bana geldiğinde RS485 hattı yanmıştı. Kart üzerinde RS485 hattının A ve B uclarına seri iki adet 100R direnç ve SP485 isimli RS485 transreciever entegresi yanmıştı. Ben yanan malzemeleri değiştirdim. Ama RS485 çevirici düzgün çalışmıyor anladığım kadarıyla. Çıkışında datalar bozuluyor. İlk 2-3 byte düzgün gidiyor ama sonrasında bozuyor. Bunu RS485 çipinin data çıkışı ile Benim mikroişlemcimin TX pinin aynı anda Logic analyser'a bağlayarak görüyorum. Acaba RS485 transreciever çipi mi arızalı?

z

Bu çipleri test etmek atla deve değil. Scopun yokmu?

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

CLR

Öncelikle tüm foruma iyi bayramlar.

Bu transceiver testi konusu digital elektroniğe bile girmez onun öncesi olan bildiğimiz dijital logic'in konusu sayılır.  (Three-state buffer gibi). O zamanlar çok dersten kaçtın galiba.



Şekildeki transceiver'ın RE'sini logic low yap, DE'sini logic high yap, DI'den datanı gir , RO'dan izle, doğru geliyorsa transceiver çalışıyordur.

Karşılıklı (karşı devre) test etmek istiyorsan karşıyıda aynı şekilde logic kontrollerle , bozuk mu, sağlam mı veya bozuksa hangisi bozuk anlayabilirsin.
Knowledge and Experience are Power

Mucit23

Skop Logic analyser felan var hocam. Çipler SMD tipte karta lehimli. Gönderici taraf Benim deney kartım. Üzerinde RS485 çipi var. Ama şimdiye kadar hiç kullanmamıştım. Bozuk olacağını sanmıyorum. Alıcı tarafın 485 çipini ise bir kere değiştim. Değişmeden önce çok kötü bir şekilde yanmıştı.

Ben en iyisi kameranın anakartı üzerindeki RS485 çipini çipi yerinden söküp doğrudan MCU'lar arasında TX-RX yapayım. Dün akşam bir anlık kamera hareket eder gibi oldu. Büyük ihtimal taktığım çipte arızalı. Sonrasında Tekrar çipi yerine takıp duruma bakarım.