Driver'i olan bir cihaz'a usb den veri göndermek..

Başlatan mustafa_cmbz, 21 Aralık 2014, 05:34:17

mustafa_cmbz

Merhabalar.

Elimde UDA denilen pc ye usb den bağlanan ve pc ye bağlantı yaptığımda direkt olarak donanım olarak cihazın ismini cismini tanıyıp driver'ini yükleyen bir alet var.

Bu alete visual basic te ufak bir program yazarak usb den veri göndermek istiyorum.Bunun ile ilgili olarak mesela şöyle örneklemek istiyorum.:

pic ile usb den kontrol kartı yaptığımızda nasılki pc cihazı hid giriş aygıtı olarak tanıyor ve program kısmında ise ıd sini eşleştirdiğimizde data alış verişi yapabiliyorsak bu benim elimdeki cihaza data göndermek için visual basic tarafında program başında nasıl bir ID tanımlaması yapmamız gerekiyor acaba ?

MCansız

cihazla haberleşebilmeniz için cihazın vendorid ve producid numaralarını bilmeniz gerekiyor bunu aygıt yöneticisinden öğrenebilirsiniz windowsta bu numaralar hex(16-bit) olarak verilir

cihaza bağlandığınızda buffer kaç bitlik bilmezin gerekiyor ve buffra ne yüklendiğinde ne yapıyor veya hangi data hangi buffer adresinde gönderiliyor bunları bilmelisiniz ki bunlar cihazın yazılımını yazan kişilerce bilinir şirket bunları paylaşırmı bilemiyorum cihaza bağlanıp usb terminal programları ile dinleyip hangi şartlarda hangi data geliyor şeklinde bir sonuca varmanız olası

kolay gelsin

t2

Driver'i olan cihaz ile haberleşmek için bir DLL dosyası olması gerek.
Bunu Driver'i hazırlayan firma / kişi vermiş olması lazım.

Eğer bunu vermediyse cihazdan gelen bilgiyi okumak ve cihaza bilgi göndermek için açık kod iletmiş olması gerek.

Cihazı aygıt yöneticisinden sağ tıklayıp Driver dosyaları neymiş? diye bakılabilir. bu dosyaların ismi google da aranır.

Eğer bu DLL veya kodlar mevcut değilse mevcut driver kaldırılır. aynı cihaza Vendor ID ve product ID ayarlanarak winusb driver kurulur. winusb driver kullanımı DLLi ve kodları internette mevcut. kolayca kullanılır.

Geriye ufak bir  mesele kalıyor. Cihaza hangi iş için hangi komut gönderilecek? veya cihazdan gelen bilgiler ne anlama geliyor?

Bunu da orijinal driver ve program kaldırılmadan  önce USBlyser gibi bir program ile kaydetmek gerek. örneğin ledi yakmak için 10,00,.... gibi  bir bayt dizisi gönderiliyorsa bu not edilir. winusb driver ile de aynısı gönderilir led yanar. Cihaz driverin hangi driver olduğunu anlamaz.

http://msdn.microsoft.com/en-us/library/windows/hardware/ff540196%28v=vs.85%29.aspx

Karamel

hocam soyle birsey buldum vede cok heyecanlandim. usb aletleri kontrol edebiliyor. bende birsey sormak istiyorum hocam. samsung usb lazer yazicima resim yada yazi yazdirabilirmiyim?

Bar Code Scanner + Arduino USB Shield

Kabil ATICI

Bu işin paralel port ile yapıldığını gördüm, fakat usb olayı biraz özeldir. (En azından sabit şekiller, yazı, gri tonlama gibi işleri yapan , asm dilinde yazılmış kodu bulunan AT90S2313 gibi işlemcisi olan bir test aleti idi)
Yapılamaz diye bir şey yok. Ama sürücülerin yazıcıya gönderdiği verilerle nasıl bir ilişkisi olduğunu bilmek gerekir.
Basit örnek vereyim, (USB, veya seri port bu olay değişmez) bir led var ben bunu 0x21 ile yakacak şekilde kod yazdı isem, bilgisayardan 0x21 glmedikçe o led yanmaz. Tabii bu değer bilimiyorsa, dışarıdan bakan birisi için 0x46'de olabilir, 0x47'de...
ambar7

MCansız

Alıntı yapılan: Karamel - 21 Aralık 2014, 14:54:00
hocam soyle birsey buldum vede cok heyecanlandim. usb aletleri kontrol edebiliyor. bende birsey sormak istiyorum hocam. samsung usb lazer yazicima resim yada yazi yazdirabilirmiyim?

Bar Code Scanner + Arduino USB Shield

burada arduino USB host olarak kullanılmış bizim kullandığımız flas bellekler, mause, klavye ciahzları slave olarak çalışır
usb host kütüphanesi pic24 ve üzeri stm ve ardunio da var pic18f4550 bunu desteklemiyor

Kabil ATICI

ambar7

Karamel

Arm mcularda host var hocam. arm mcu kullansak?

Kabil ATICI

İşlemcinin ne olduğu o kadar önemli değil. USB host dahili olur, harici olur oda sıkıntı değil.
Açık kaynak kod yazıcı sürücüsünü bulur bunu ARM göre uyarlar, gömersen olur.
İletişimi bir kenara bıkacak olursak, yazıcıya gönderilen verinin biçimi biliyor muyuz? Ne gidiyor ve ne iş yapıyor? Bir sorun olduğunda yazıcı ne mesaj gönderiyor?
Buradaki asıl sorun bu!!
ambar7

Karamel

hocam usb hakkinda neredeyse hic bilgim olmadigi icin nelere bakmam gerektigini anlayamadim acikcasi ama usb yi izleyen bir program ile verileri kontrol etsek? notepad den hello world yazdirsak? nerede hangi veriler gidiyor bulabilirmiyiz ki?

Kabil ATICI

#10
Olabilir.
Farklı verileri yazdırıp , hangileri veri hangileri komut bakmak, ayıklamak gerekir.
Boş sayfa, %100 siyah sayfa, gri toplamalı sayfa, kare, dikdörtgen, daire , belirli yazı gibi öğeler gönderip yazıcı ile bilgisayar arasında neler geçiyor takip etmek gerekir.

Kabaca bir lokma bal için bir çuval keçi boynuzu çiğnemek gerekir.
Temel imza niteliğindeki değerleri tespit edince, gerisi gelecektir.
ambar7

Karamel

hocam bu proje beni suan icin asar.... yazin microcontrollerlar uzerine daha temel seyler ogrenmeyi planliyorum. okul olarak elektronik muhendisligi istiyorum. eger basarabilirsem. boyle bir proje yapmak isterim. koca yaziciyi bilgisayar olmadan kontrol edebilmek gerecekten muhtesem olmali... ::)

Kabil ATICI

Yazı bastırmak neyse de resim bastırmak bir sıkıntı resim çok fazla yer kaplıyor...
ambar7