STM32F4 USB Host ile RFID Reader Okuma

fgokcegoz

Üye
Katılım
22 Kasım 2022
Mesajlar
44
Herkese merhabalar,

Elimde aşağıdaki 13.56mhz usb rfid reader üründen mevcut. Normalde PC bağlandığında HID Klavye olarak bağlanıyor ve kart okutulduğunda kartın UID sini klavyeden girilmiş gibi ekrana basıyor. Bende STM32F4 USB Host ile HID Keyboard class'ı üzerinden bu kart okuyucunun verilerini alabilirim diye düşündüm ama henüz başarılı olamadım.

Projeyi CubeMX üzerinden hazırlıyorum. Normal bir klavye bağladığımda USB HID Event Callback üzerinden tuşa basıldığında, tuş bilgisini alabiliyorum. Ama bu ürünü bağladığımda öyle olmuyor. AI asistanlarının yönergeleri ile de çok denedim ama başarılı sonuç elde edemedim. STM32 ye bağlı olduğunda, kartı okuttuğumda uzun bir süre dıııtt sesi geliyor ve cihaz disconnect olup connect oluyor. Ama usb üzerinden herhangi bir gelen veri olmuyor. HID keyboard dan farklı bir protokol yapısına mı sahiptir acaba. Nasıl ilerlemek gerekir. Tecrübe etmiş olanlar veya tavsiyesi olanlar var mıdır ?
1356khz-usb-rfid-kart-etiket-okuyucu-1356-mhz-rfid-okuyucu-direncnet-21915-94-B.jpg
 

Ekler

  • IMG_20260216_002741.jpg
    IMG_20260216_002741.jpg
    398.3 KB · Görüntüleme: 17
  • IMG_20260216_002715.jpg
    IMG_20260216_002715.jpg
    755.3 KB · Görüntüleme: 18
  • R20C-ID-USB-Reader.pdf
    R20C-ID-USB-Reader.pdf
    304.6 KB · Görüntüleme: 6
bence bu projeyi böyle yapmamalısın. nihai amacın stm32 bir chip ile nfc-rfid okumak ise bağlantısı i2c, spi veya uart olan okuyucu chipler var.
amaç çok hızlı bir deneme yapmak veya eldekileri değerlendirmek ise tabi olabilir.

bir seçenek de bence o kartın üzerinde bir rfid chip, ve ona bağlı bir usb-hid dönüştürücü var. bu aradaki haberleşmenin de uart olma ihtimali çok yüksek. yani aradaki usb chipi bypass ederek direkt uart ucundan rahatlıkla bahsettiğin stringi alabilirsin.

syc8p1113 bir tür asic-mcu gibi görünüyor. aradada başka chip var mı bilmiyorum. gene de bu entegrenin uçlarını tarayarak kart okuma esnasında bir uart benzeri data çıkıyor mu kontrol edebilirsin.

@taydin bu arada çok ilginç birşey oldu. google'da entegreyi aratırken syc8p1113 kodunu yazdım. ikinci sırada bu postun linki çıktı. acaba postun içeriğinde entegrenin kodu yazılmıştı da ben mi göremedim diye tekrar baktım ama yok. google post içindeki fotoğrafların textlerini de almış ayrıştırmış ve bunu indexlemiş.
 
Son düzenleme:
Amacım zaten bu ürünü kullanıp bir proje yapmak değil aslında hocam. Kart okuyucu çok basit şekilde USB HID Keyboard olarak çalışıyor gibi görmüştüm. STM32 ile USB Host olarak klavye tuş bilgisi rahatça okunabildiği için bunu da okuyabilirim düşüncesinden doğdu aslında bu mesele. İşin içinden çıkamayınca bir sorayım demiştim :)
 
@taydin bu arada çok ilginç birşey oldu. google'da entegreyi aratırken syc8p1113 kodunu yazdım. ikinci sırada bu postun linki çıktı. acaba postun içeriğinde entegrenin kodu yazılmıştı da ben mi göremedim diye tekrar baktım ama yok. google post içindeki fotoğrafların textlerini de almış ayrıştırmış ve bunu indexlemiş.

Çevrimiçi üyelere bakarsan orada şu anda 800 tane robot var, onlar sürekli olarak takip ediyorlar kimin ne yaptığını :)
 
@fgokcegoz bir masaüstü işletim sistemindeki HID aygıt sürücüler, çok farklı cihazlarla çalışacak şekilde yıllarca optimize edilmiştir. Ama STM'deki HID driver çok daha az test görmüştür.

RFID okuyucunun HID descriptor'unu değiştiremeyeceğine gire, STM deki HID aygıt sürücünün kaynak kodu varsa onu adapte etmen gerekir. Bu da çok vakit alacak bir iş. O yüzden @czorgormez in dediği gibi, sana RFID bilgisi lazım ve onu doğrudan almak daha mantıklı. USB -> HID -> USB dolambacına gerek yok.
 
Çevrimiçi üyelere bakarsan orada şu anda 800 tane robot var, onlar sürekli olarak takip ediyorlar kimin ne yaptığını :)
benim asıl dikkatimi çeken fotoğraftan ocr taraması yaparak oradaki textleri de indexlemiş olması.
bu 800 tane bot guest serverin trafik yükünü/maliyetini çok arttırmıyor mu ?
 
Sunucunun ortalama trafiği çok az. 250 Mbps bant genişliği var, ortalama kullanım birkaç Mbps. Dolayısıyla kotaları doldurmaya yaklaşmıyoruz bile.
 
Windows bilgisayara takıp HID cihaz mı, türü ne vs görebiliyorsunuz. Hatta descriptoru da görebiliyordunuz. Linux da biraz daha detaylı bilgiyi daha pratik çekebiliyorsunuz ama nasıl yapıldığını ezberden söyleyemem. HID olduğu kesinse ST nin F4 için sanırım hazır örneği vardı o modifiye edilerek denenebilir.
 
@fgokcegoz bir masaüstü işletim sistemindeki HID aygıt sürücüler, çok farklı cihazlarla çalışacak şekilde yıllarca optimize edilmiştir. Ama STM'deki HID driver çok daha az test görmüştür.

RFID okuyucunun HID descriptor'unu değiştiremeyeceğine gire, STM deki HID aygıt sürücünün kaynak kodu varsa onu adapte etmen gerekir. Bu da çok vakit alacak bir iş. O yüzden @czorgormez in dediği gibi, sana RFID bilgisi lazım ve onu doğrudan almak daha mantıklı. USB -> HID -> USB dolambacına gerek yok.
Ben başarılı olabilir miyim diye bir teşebbüs edeyim dedim sadece. Dediğiniz gibi yol dolambaçlı. Amacım muhakkak başarılı olmak değildi, denemiş olmaktı. Onu da gerçekleştirdim.

Windows bilgisayara takıp HID cihaz mı, türü ne vs görebiliyorsunuz. Hatta descriptoru da görebiliyordunuz. Linux da biraz daha detaylı bilgiyi daha pratik çekebiliyorsunuz ama nasıl yapıldığını ezberden söyleyemem. HID olduğu kesinse ST nin F4 için sanırım hazır örneği vardı o modifiye edilerek denenebilir.
Evet HID olduğu kesin. Hatta STM32 de usb debug seviyesini artırdığımda hid keyboard device olarak hid class ı düzgün şekilde başlıyor. Fakat sonrası gelmiyor işte. Uğraşılsa belki sonuç alınır ama giden vakte değmez.
 
stm32 kendini bilgisayara tanıtırken ben "özel sınıf hid cihazım" deyip sonrasında sınıfım'da "0x0B" yani akıllı kart okuyucuyum demeli bu sayede akıllı kart okuyucu olarak tanınacak bilgisayar tarafından.
 
stm32 kendini bilgisayara tanıtırken ben "özel sınıf hid cihazım" deyip sonrasında sınıfım'da "0x0B" yani akıllı kart okuyucuyum demeli bu sayede akıllı kart okuyucu olarak tanınacak bilgisayar tarafından.
Benim bağlantım o şekilde değildi hocam. USB Host olan kısım STM32F4, Device olan kısım ise RFID Reader idi.
 
Benim bağlantım o şekilde değildi hocam. USB Host olan kısım STM32F4, Device olan kısım ise RFID Reader idi.
demekki bu dediğimin tam tersini görmen lazım akıllı kart okuyucu sadece sınıf davranış biçimi yine üreticiye kalmış bir durum, lojik analizör edinirsen daha kolay ilerlersin muhtemelen
 

Forum istatistikleri

Konular
8,912
Mesajlar
144,957
Üyeler
3,587
Son üye
huseyin6334

Son kaynaklar

Back
Top