Picproje Elektronik Sitesi

SERBEST BÖLGE => Programlama ve Algoritma => Konuyu başlatan: z - 02 Ağustos 2015, 07:54:34

Başlık: Aklıma gelen ilginç bir soru HID USB senkronizasyon
Gönderen: z - 02 Ağustos 2015, 07:54:34
Birbirinin aynı iki tane HID cihaz yaptık. Cihazın kodlarını dilediğimiz gibi yazabiliyoruz.

Her iki cihazın işlemcisinde de aynı yazılım var.

Cihazlar farklı zamanlarda PC'ye takılacaklar.

Her iki usb cihaz üzerinde birer led var.

Her iki cihaz da bu ledleri bilink ettirecekler.

Soru. Scopun bir kanalını  1. lede, diğer kanalını da 2. lede bağladığımda ledlerin aynı anda yanıp aynı anda söndüklerini göreceğim.

Yani usb cihazları nasıl birbirine senkron ederim.

Cihazlar sadece usb porta takılıdır kendi aralarında ayrıca kablo vs haberleşme durumu yoktur.

Başlık: Ynt: Aklıma gelen ilginç bir soru HID USB senkronizasyon
Gönderen: Karamel - 02 Ağustos 2015, 08:27:08
hocam bilgisayar programindan ayni anda led blink message i gonderirseniz olur gibi duruyor bence?


usb device 1 takilimi? evet led blink 1;
usb device 2 takilimi? evet led blink 1;

biraz beklesin

usb device 1 takilimi? evet led blink 0;
usb device 2 takilimi? evet led blink 0;

biraz beklesin


bu sekil olursa bence senkron olurlar?
Başlık: Ynt: Aklıma gelen ilginç bir soru HID USB senkronizasyon
Gönderen: mufitsozen - 02 Ağustos 2015, 09:11:49
hocam PCden USB cihaziniza ilk/her/periodik(tasariminiza kalmis) yolladiginiz paketin icine Windows'un GetTickCount64 yada GetTickCount fonksiyonu ile aldiginiz degeri koyun. Cihazlarin timertick'lerini de buna senkron edin.

gerisi kolay.
Başlık: Ynt: Aklıma gelen ilginç bir soru HID USB senkronizasyon
Gönderen: z - 02 Ağustos 2015, 09:21:35
Bu çözüm eşzamanlamada ne kadar doğruluğu garanti eder?
Başlık: Ynt: Aklıma gelen ilginç bir soru HID USB senkronizasyon
Gönderen: mufitsozen - 02 Ağustos 2015, 09:41:12
Alıntı yapılan: z - 02 Ağustos 2015, 09:21:35
Bu çözüm eşzamanlamada ne kadar doğruluğu garanti eder?

milisaniye cinsinde senkron olabilirsiniz.
Başlık: Ynt: Aklıma gelen ilginç bir soru HID USB senkronizasyon
Gönderen: Icarus - 02 Ağustos 2015, 10:26:35
Abi USB bildiğin gibi polling yapan bir interface, polling zamanı ise hem windows hemde USB Host controller tarafından belirleniyor.

Eğer user-mode'u bırakıp, kernel mode'da çalışan bir program yazarsan (Windows kernel-mode'da Real-Time destekler):
Low-Speed device'lar için en yüksek(hızlı) 8ms çözünürlükte, High-Speed device'lar içinde en yüksek 1ms çözünürlükte işlem yapabilirsin.
Fakat "en yüksek" dememin sebebi şu: Hem devamlı programın real-time'da kalamaz + Windows'un pek çok mekanizması senin programını beklemeyemez ve ona senkronize olamaz.
Başlık: Ynt: Aklıma gelen ilginç bir soru HID USB senkronizasyon
Gönderen: muhittin_kaplan - 02 Ağustos 2015, 15:16:20
hocam kesme iletişim yöntemini araştırın,
http://www.beyondlogic.org/usbnutshell/usb4.shtml#Interrupt (http://www.beyondlogic.org/usbnutshell/usb4.shtml#Interrupt)
Başlık: Ynt: Aklıma gelen ilginç bir soru HID USB senkronizasyon
Gönderen: z - 02 Ağustos 2015, 20:11:54
Bu soru da fikir cimlastiği.

Muhittin kaplan HID yapı zaten int transfer yapabiliyor. Ne işimize yarayacak bu?
Başlık: Ynt: Aklıma gelen ilginç bir soru HID USB senkronizasyon
Gönderen: Icarus - 02 Ağustos 2015, 20:28:14
Yanlız USB Interrupt'larının CPU Interrupt'u gibi olmadığını, sadece "mantıksal" olarak bulduklarının altını çizmek isterim
"An Interrupt request is queued by the device until the host polls the USB device asking for data"
Başlık: Ynt: Aklıma gelen ilginç bir soru HID USB senkronizasyon
Gönderen: ErsinErce - 03 Ağustos 2015, 04:01:37
İlk bağlanmada Sistem saatini 2-3 defa gönderebileceğiniz en yüksek çözünürlükle mcuya gönderin hocam, mcuda yazılım ile senkronizasyonu saglayin