c# ve pıc usb arayüz hazırlıyorum nasıl ?

Başlatan baran123, 16 Kasım 2014, 01:42:53

baran123

c# ile usbden pıc hazberleşen bir arayüz yapıyorum olabildiğince tüm özellikleri eklemeye çalışıyorum yarısı bitti sayılır daha ne eklenılır cıkartılır ? (18f4550 ,ccs c, umng.dll)



suan calısan kısımları connect butonu baglantı acıp kapatıyorum 2 adet led kontrol edıyor data yazdıgımız 8bitlik veriyi d portuna yonlendırıyor ve yanan ledler resımlerı degısıyor saat taih cpu ram bilgisini ve ya bir text lcd ye aktarabılıyor belırlenen saat gelınce d portune bır 8bitlik data gonderebılıyor okudugum sıcaklıga gore ıslem yapıyor ds18b20 ekleyip max ve min değerlere göre kontrol iyi olur dıye dusundum pwm ve seri kısmı daha bos :D

cok heveslenıyordum bu usbden kontrol ısıne sağlam bır arayüz hazırlayayım dedım bu sefer kullanılan dll ler kısıtlıyor
usblibrary.dll ile umng.dll aynı anda kullanılabliyor mu ?



barisertekin

Bu dll'ler hakkında hiç bir fikrim yok. Ama sonuçta ikiside SerialPort nesnesini kullanarak işlem yapıyor.

SerialPort referans tipinden bir obje olduğundan diğer dlldekini bir diğerine eşitlersen ramde aynı nesneyi işaret ederler.

Denemek lazım :)

Gökhan BEKEN

Bu dll'ler eğer sanal seriport oluşturarak çalışıyorsa, kullanıcının com port seçebilmesi için bir combobox koyman iyi olur.
Özel mesaj okumuyorum, lütfen göndermeyin.

baran123

hocam dll ler pıd ve vıd ler ıle calısıyor bun bılgılerle gırerek cıhaza baglanılan bır form acıp bılgıler dogruysa bu menuye gelecek sekılde yapmayı planlıyorum

Kabil ATICI

Her şeyi bir sayfaya yığacağına, sekme sistemini kullanabilirsin.
Böylece tasarımın sade görünür. Ama işlevselliği aynı olur.
ambar7

muhittin_kaplan

Yanlis hatirlamiyorsam bu dll sanal seriport açarak calismiyor.

trinity

#6
usb protokolunda 4 tip iletişim seçeneği vardır,

1) hid : sürücü gerektirmez tak ve kullan desteğiyle windows otomatik tanır. .dll kütüphane gerektirir. maksimum hızı 64kb/s dir.
2) cdc: sanal seri port üzerinden iletişim yapar,  .inf tanımlama dosyası gerektirir, maksimum hızı 80kb/s dir.
3) bulk: yığın bellekler için 19 adet 64kb paket gönderi, veri aktarım hızı değişkendir. .inf tanımlama dosyası ve .dlll kütüphane gerektirir. maksimum hızı 1024kb/s dir.
4) asenkron: iletişim band genişliği garantilidir, veri aktarımında yavaşlama olmaz. .inf tanımlama dosyası ve .dll kütüphane gerektirir. maksimum hızı 1024kb/s dir.

USB 2.0 fiziksel olarak maksimum hız 12MB/s hıza izin verir ama pratikte picle en fazla yukarıdaki hızlara ulaşılabilinir. Tecrübelerimle sabittir.


mesaj birleştirme:: 17 Kasım 2014, 04:44:42

Alıntı yapılan: BİLİRSHOP - 16 Kasım 2014, 14:31:09
Bu arada arkadaşlar bu visual studio da dll lerin kullanılması ne anlama geliyor?
Ve bu dll ler ne iş görüyorlat ?
Cevaplarınızı bekliyor hepinize çalışmalarınızda başarılar diliyorum.

C# ,Basic, Delphi gibi programlama dilleri USB porta direk ulaşamıyorlar. USB portuna ulaşmak için .dll adı verilen ve alt seviyeye inen kütüphane dosyalarından faydalanmak zorundayız.

Programcılığı iyi olan usta abilerimiz, .dll kütüphanelerini yazarlar, ve yanında bu kütüphaneyi kullanacak birde örnek kod verirler. Örnek kod olmadan .dll dosyası kullanılamaz.

baran123

ambar hocam önce çalışmayı tamamlayım ondan sonra tasarımla iyice uğraşırım dedim çünkü sekmeyle yaparsam hepsi el altında olmuyor uğraştırıyor

"Bu arada arkadaşlar bu visual studio da dll lerin kullanılması ne anlama geliyor?
Ve bu dll ler ne iş görüyorlat ?
Cevaplarınızı bekliyor hepinize çalışmalarınızda başarılar diliyorum."

hocam c#ile usb portunu kontrol etmek için (bilgi alış verişi) dll kullanmanız gerekiyor dll de aynı şekilde yazılmış kod gibi usbye bağlanıyor standartlaşmış kütüphane gibi yani mesela seri port uygulaması yapmak isteseniz dll gerekmez cunku visual studıoda seri port nesnesi var

"Yanlis hatirlamiyorsam bu dll sanal seriport açarak calismiyor." evet hocam hid şeklinde calısıyor cihazı taktıgım anda surucu ıstemıyor otomatık yukluyor bır tane

peki PIC ile usb 3.0 bağlantısı yapılabiliyor mu ?

t2

#8
usb 3.0 özelliği olan PIC hiç duymadım.
Fakat USB 3.0 portuna  picle yaptığınız usb 2.0   veya 1.1 aygıtı takarsanız yine çalışır.

DLL hap gibi bir şeydir.  Cihazı bulmakla uğraşmazsınız. VID bu, PID  bu.  şunu gönder. gibi komutlar. Gelen bu gibi olaylar tanımlanmış ise, cihazı kolayca kullanmanıza imkan sağlar.

Bir de bu işlerin Multi Threaded  olması gerekir. en önemli kısmı budur.
Daha da iyisi. Birden fazla cihaz ile haberleşebilen DLL dir.

Aynı VID ve PIDe sahip iki veya daha fazla sayıda cihazımız var. Farklı USB portuna  bağladık.
Hangi cihaza ne  gönderilecek.? gelen veri hangi cihazdan gelmiş? Bunu yapabilmek iyi olur.

Cihazı bulurken, veri  gönderip alırken kum saati çıkıyorsa program donuyorsa o program veya DLL yaramaz. uyduruk olmuş demektir.

Cihazı söktün taktın, mavi ekran çıktı program sapıttı. cihazı tekrar bulamıyor eli ayağına dolanıyorsa hiç olmamış demektir. seriport ile durum daha beter olur.

DLL yazsak bile eninde sonunde windows DLL lerine ulaşılıp oradan bilgi alınıyor. 

baran123

hocam ınternette 2 tane az cok calısan dll var umng ile usblibrary bunlarda arada sapıtıyor söyle bir tane adam gibi dll çıksa ortaya fıstık gıbı olurdu
cunku cıhazı takıp cıkarırken algılıyor ama bır kac defa sonra sapıttıgı yerler oluyor daha tam olarak cozemedım olayı usb bayagı derın bır konuymus


baran123

hocam bırakalım burayı gelin biz özelden devam edelim :D

t2

#12
Hazır kod bulunabilir. HID DLLi  kullanmak şart değil. hazır kodlar. windows DLL lerini kullanır.

yine DLL var. ama DLLin kodu da verilmiş.
Tam burada:
http://www.waitingforfriday.com/images/5/57/USB_Generic_HID_reference_application_3_0_0_0.zip

baran123

hocam paylaştıgınız projede dll ıle calısıyor ? hatta sımdı projeyı  derrleyıp denedım dll nın olmadıgı bır dızınde calısmıyor

t2

tamam yukarıda belirttim. DLLin de kodu var o ayrı proje olarak yapılmış
usbGenericHidCommunications klasöründeki solutionu açıp önce kendinize DLL  yapmanız veya DLLSiz  proje için buradan kod kullanmanız gerek.