USB HID Sınıfı hakkında

Başlatan yamak, 28 Kasım 2012, 16:20:15

yamak

Alıntı YapBu HID sınıfı hakkında bi kaç sorum olacktı. Şimdi HID iletişim yapılacağı zaman ilk olarak neler oluyo. Keil ın örneklerini inceliyorum bi  "usbd_hid_get_report_trigger" diye bi fonksiyon var bu fonksiyonla eğer butonlardan herhangi birine basmışsam hangi butona basıldığını gönderiyo heralde.Ama bi de "usbd_hid_get_report" diye bi fonksiyon var bu fonksiyon şu şekilde.
int usbd_hid_get_report (U8 rtype, U8 rid, U8 *buf, U8 req) {

  switch (rtype) {
    case HID_REPORT_INPUT:
      switch (rid) {
         case 0:
          switch (req) {
            case USBD_HID_REQ_EP_CTRL:
            case USBD_HID_REQ_PERIOD_UPDATE:
              *buf = (((LPC_GPIO1->FIOPIN ^ (1 << 20)) >> 20) & 0x01) |
                     (((LPC_GPIO1->FIOPIN ^ (1 << 23)) >> 22) & 0x02) |
                     (((LPC_GPIO1->FIOPIN ^ (1 << 24)) >> 22) & 0x04) |
                     (((LPC_GPIO1->FIOPIN ^ (1 << 25)) >> 22) & 0x08) |
                     (((LPC_GPIO1->FIOPIN ^ (1 << 26)) >> 22) & 0x10) ;            
              return (1);
            case USBD_HID_REQ_EP_INT:
              break;
          }
           break;
      }
      break;
    case HID_REPORT_FEATURE:
      buf[0] = feat;
      return (1);
  }
  return (0);
}

bu fonksiyon başka bi .h dosyasının içinden extern ile bulunup kullanılıyo. Şimdi böyle bi fonksiyona neden ihtiyaç duyuluyo. ve burada buf adresine değer atamayı neden yapıyo.Bi de bu report muhabbeti tam olarak ne oluyo?

mesaj birleştirme:: 28 Kasım 2012, 16:15:13

Arkdadaşlar bu konuda bi fikri olan yok mu?HID'de data alış verişi tam olarak nasıl oluyo. Bu rapor olayı tam olarak nedir?

Arkadaşlar bu konu hakkında fikri olan yok mu? HID'de data alış verişi nasıl oluyo.Bu report olayı tam olarak nedir?

Not:Soruyu dün sormuştum takrar güncel hale getirebilmek için yeni konu açtım.Mesaj birleştirmeden dolayı son iletilerde gözükmüyo.

t2

#1
Örneklerde yetmeyen veya yanlış bulduğunuz kısım mı var? ne istiyorsunuz şu hid'den ?

Physical Minimum,logical minimum, HID report feature bilmemne  bunları ne yapacaksınız? Bunun nasıl olduğunu fazla kurcalamayın. faydasız zor iş. örnekleri aynen kullanın.  eğer yetmediği bir durumla karşılaşırsanız ozaman bakılabilir. gerisi vakit kaybı.

Benim şimdiye kadar anlayabildiğim:

report count, endpoint buffer ile eşit olmalı.
report size, 8 olsun. 1 bayt demek. her defasında  report count x report size kadar bit gönderilip alınır. yani report count kadar bayt gider ve gelir..



muhittin_kaplan

Hocam Konuyla alakalı olarak jan axelson un kitabını öneririm. her ne kadar T2 beğenmese de güzel kitaptır.

t2

kitabı beğeniyorum neden beğenmeyeyim.  ama bu derin bilgiler hiç kullanılmıyor. gerek yok.

Yapabileceğin şey, işlemciyi üreten firmanın  yayınladığı örneklerde zaten görülmektedir.  axelson un kendisine email yazdım parası neyse vereyim şuşu device descriptoru ve aygıtı koduyla beraber üretir misiniz diye. yok  kontrat filan lazım dedi çamura  yattı. yani bunun yapması, hidmaker FS lisansı alıp onunla  üretmekten daha ucuza gelmez idi.

bırakın bu derin işleri. ne kitaplar gördük. kaç senedir kitap yazan. proje bitince paylaşırım diyen çook kişiler geldi  buraya.

muhittin_kaplan

 bir ara "O kitapmı" demiştiniz. oradan hatrımda kalmış

t2

#5
Yanlışlık olmasın ? kitabı kötülediğimi ben hatırlayamadım.  bu kitabı başından beri saklıyorum. zaman zaman ctrl+f ile birşeyler arıyorum 3. 4. baskı diye pdf var. Kitap tamam. vaadettiği şeyi detaylı anlatmış.  fakat hala eksik var. nerede composite HID aygıt?   full çalışan örnek nerede?
driver geliştirme örneği? işte böyle driver yaparsınız dememiş. okul kitabı gibi çocuk kandırmaca.

yamak

Hocam tamam derine inmeyeyim de mantığı da az buçuk bilmek gerekiyo. Yoksa kafamı kurcalayıp duruyo. Bu kitabın tükçeye çevrilmişine baktım bugün biraz.Türkçesi 5 para etmez. Bu kadar iğrenç bir çeviri olamaz. İngilizcesinden devam edecem belki sorularıma bi kaç cevap bulurum. Hem siz de diyonuz ctrl+f kullandığınızı :). Eğer işin mantığını çözersem forumda bi kitap yayınlayacam :).Şaka şaka.Şimdi aynı şeyi benim için de söylemeyin.

t2

Arkadaş mantığını ne yapacaksın? usb.org bir şeyler, standardlar tespit etmiş o mantık çerçevesinde çalışıyor.

Şöyle söyleyim cihazdan bilgisayara veya bilgisayardan cihaza ne göndereceksin?
Cevap : Bayt


Tamam işte, cihaz full speed ayarlı. her defasında en fazla 64 bayt gönderebilirsin. her 1ms de en fazla 64 bayt.

var mı bunun ilerisi. takla at amuda kalk kitap oku öğren bunun ilerisine geçemiyorsun. geçeceğin tek kısım o da teorik aslı var mı ben de anlayamadım. yukarıdaki konu 1 interface için geçerli. HIDi 2 interface yapabilirsen 1ms de 128 bayt gönderebilirsin.  4 yapabilirsen 256 olur. yap bakalım. yapamazsın! Benim takıldığım yer bu. senin takıldığın ne? ne yapmak istiyorsun?


yamak

Hocam şu an için keil ın örneğini anlamaya çalışıyorum. Dediğinizde haklısınız mantığını bilmedikten sonra ezbere şu an usb den data alıp gönderebilirim.Ben size tutup yeni usb core yazayım demiyorum.Hiç bişey bilmeden de ezbere yapmak yakışmaz yani.

t2

#9
nihai amacın nedir bilmiyorum ama bana yanlış yöne gidiyorsun gibi geldi. benim amacım ürün geliştirmek idi. satçaz para kazancaz. öğretmen not vermeyecek,. kitap yazılmayacak

uveren

USB konusunda hasangurlek in 3 yıl önce yazdığı bir kitap var ama herhalde basılamadı. Burayı bana gösteren oydu, ihracat yapıyordu sanırım küresel kriz onuda vurdu. Uzun süredir görüşemiyorum, iş yeri cep telefon numarası hepsi kapanmış. Ben kitabın neredyse tümünü bilgisayarda okudum ve test yazılımına baktım. Kitapta 18F serisi ile assembl ve bilgisayar tarafında Visual Studio.net ile full kod ve neredeyse her bir kodun çok anlaşılır açıklaması ile çok detaylı çizimler resimler vardı. Mikroçipin sürücüsünü kullanıyordu hatta kitap için mikroçipten USB numarası alacaktı. PC tarafındaki programı ise aygıtın takıldığını, çıkarıldığını bile algılayabiliyordu. Tanıyan, görüşen varsa kitabın son durumunu bir sorsa olur. Şimdi profiline baktım siteye 28 Nisan 2010 da girmiş.
6.yüzyılda doğan kız çocuklar cahilce gömülüyordu. 21.yüzyılda kız/erkek farketmeden, doğamadan medenice öldürülüyor.  "1-Güneş katlanıp dürüldüğünde, 2-Yıldızlar bulandığında, 3-Dağlar yürütüldüğünde, 4-Kıyılmaz mallar bırakıldığında, 5-Vahşi hayvanlar bir araya toplandığında, 6-Denizler ateşlendiğ

z

T2 yerinde olsam bu işlere hiç kafa yormam. Çinden getir getir sat.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

t2

parayı gavura kaptırmayalım vatan millet sakarya ( yersen ) :)