USB to serial

Başlatan lojikmemo1, 19 Ağustos 2007, 22:57:19

lojikmemo1

Olabilir tabii ama çok zaman alırmı ki acaba :D bu sene son sınıf ayrıca 1 yarışmaya 4 de sınava hazırlanmam lazım :D ama proje konusun iyi olur zaten kısa bir süre sonra aslında usb ile ilgili geniş çaplı bilgi verecektim burada ve kodlarıda verecektim.
Baştan söyleyeyim ben şu an bir usb anizer yapacak kadar iyi değilim ancak böyle basit işler ile uğraşıyorum.
Zaten 18f4550 ve türevleri bu protokolü destekliyor ben sadece program yazdım o kadar işin mühümi normal bir pic ile kocaman usb protokolünü çalıştırmak ki ben biraz incelemiştim zor  :!:  ama usb mass sore yapmak da istiyorum aslında yani kararsızım

ilgine teşekkürler....
İnsanlara Akılları Ölçüsünde Söz Söyleyiniz.

Jabba

Dostum ben bu işi biliyorum ve bilmiyenlere yardımcı olmak istiyorum.Az bir zaman ayırırsan bu işe yeter.Birde ben bir blog açıcam.Bilgileri orada toplasak.Ben kitabımıiuygulamarı mı herşeyi oraya koyacağım.Sen ve katılan olursa orada toplayalım hepsini.Buradaki arkadaşlarda o liknten faydalanır.

Ne dersin???
Capsule NET Compiler 2007

lojikmemo1

Jabba hiç fena değil bende bilgisayarımın kasasının fanını bağlamak için bir proje yapmıştımusb ile çalışıyordu ayrıca işin iyi yanı da anakartın üzerinde boş usb portu vardı buradan takıyordum dışarıdan bakan insanlar hiç anlamıyorlardı !! :D

:arrow:  bir uyarıda bulunmak isterim belki biliyorsundur usb 1 milisaniyede bir paket gönderiyor (yada benim program öyleidi) dolasıyla paketi geniş tutmak veri aktarımının hızını arttırıyordu ama piç ile yapılınca paket boyu 64 byte civarında bu da bir problem teşkil etmekte aklımıza harici ram gelebilir ama bu da mümkün değil çünkü picin içindeki usb modülü ayrı bir modül ayrı ramı var ayrıca modül de 64 byte göre yapılmış ama aslıda hesaplamalar sonuda 64 KB saniye gibi bir hız ortaya çıkıyor. Bazı projelerde yetersiz bu konuda dsPic belki daha elverişli olabilir.
İnsanlara Akılları Ölçüsünde Söz Söyleyiniz.

lojikmemo1

Alıntı yapılan: "Jabba"Dostum ben bu işi biliyorum ve bilmiyenlere yardımcı olmak istiyorum.Az bir zaman ayırırsan bu işe yeter.Birde ben bir blog açıcam.Bilgileri orada toplasak.Ben kitabımıiuygulamarı mı herşeyi oraya koyacağım.Sen ve katılan olursa orada toplayalım hepsini.Buradaki arkadaşlarda o liknten faydalanır.

Ne dersin???

anlaştık lojikmemo@gmail.com dan bana ulaşabilirsin blogu açınca hayırlı olsuna gelelim
İnsanlara Akılları Ölçüsünde Söz Söyleyiniz.

Jabba

Dostum PIC'in ram'inde sadece bir uçnokta kullanacaksan 1024 byte'lık bir tampon ayırabilirsin ve 1024 byte'lık veri alıp gönderebilirsin.Fakat bu durumda diğer uçnoktalar için ram kalmayacaktır.Veri byte'ı sayısı ise rapor tasarımı ile alakalı birşey.Mesela HID sınıfında kısa madde rapor tasarımı yaparsak 4 byte, uzun madde ise 255 byte veri tanımlıyabiliyoruz.

Blog'u şimdi açıyorum.Birde yazdığın komponenti hangi dilde yazdın.Neden hiç event'ı yok.Geliştirmek istersen yardımcı olabilirim.

Bu arada yukarıdaki uygulamalar yeni başlayanlar anlasın diye basit şeyler.Şu anda telefon hattından aldığım sesleri USB üzerinden PC'ye kaydeden bir uygulama ile uğraşıyorum :)
Capsule NET Compiler 2007

lojikmemo1

Jabba işte sorun orada aslında.

Birde event konusuna gelince yahu bu kadarı bile çok buradaki kardeşler gömülü sistemler için program yazıyorlar sen ben gibi c# çı değiller :D
tabi istisnalar mevcut.

Rapor tasarımı için benim pic derleyicisi şu an 64 byte yi geçmeye izin vermiyor belki de 18f2550 yüzündendir. Bir vakit ayrıp inceleyemedim ki.
Bende şu an grafik lcd ile uğraşıyorum seri arayüz ile çalıştıracam belki ilerde usb ile pc ye bağlar directx den alacağımız ses bilgisi ile bir ekolayzer de yapabiliriz.
bu arada şimdilerde başka bir componet daha buldum bu iyiye benziyor bunu bir ilceleyim olmassa bunu kullanmaya devam ederiz.

Bir şey sorucam senin mikro bilgin nasıl yani ne kadar dır uğraşıyorsun ?
İnsanlara Akılları Ölçüsünde Söz Söyleyiniz.

Jabba

Ben yaklaşık 7-8 senedir C ve ASM ile PIC programlıyorum.Yani sırf C# çı değilim, gömülü sistem programcısıyım.Aslında daha ilgilendiğim çok şey varda da burda ukalalık yapmayayım.
Bu arada ben hazır şeyler kullanmayı sevmiyorum.Herşeyi kendim yazarım.Senle de bu şekilde çalışırsak tam süper olur :)
Zaten e-kitabı da yazmamın sebebi şu milleti hazırcılıktan kurtarmak.Kitap konuları aşağıda.Bu kitabı yayınladıktan sonra açacağım blokta sen ve diğer bize katılacak arkadaşlar ile projeler yaparız.Çok süper olur.

Bu arada verdiğin fikir çok güzel :)

Bölüm 1

USB Tarihçesi                                    
Avantajları ve Dezavantajları                           

Bölüm 2

USB Projesi Geliştirmek İçin Gerekli Elemanlar                  
   USB Denetleyici Seçimi                              
   PIC18F4550'nin USB Özellikleri                        
   Derleyici Seçimi ve Programlama Dili                     
   Programlayıcılar                                        
   Test Devresi ve Özellikleri                                     
   Windows Uygulaması İçin Programlama Dili                  
USB Projesi Geliştirirken Kullanılacak Test Programları               
   Device Monitoring Studio                           
   USB Verify                                           
   
Bölüm 3

USB Transferi'nin Detayları                           
   Bus'taki Verinin Yönetimi                                     
Transfer Elemanları                                        
   Uç Nokta Nedir?                                        
   USB Borusu Nedir?                                        
Paket Tipleri ve İçerikleri                                     
Transfer Türleri ve Özellikleri                                     
   Kontrol Transferler                                        
   Kesme Transferler                                        
   Yığın Transferler                                        
   İzokron Transferler                                        
USB Cihazların Sisteme Tanıtılması                        
   Listeleme İşlemi ve Adımları                        
Tanımlayıcılar ve İçerikleri                              
   Aygıt Tanımlayıcısı                                     
   Konfigrasyon Tanımlayıcısı                           
   Arabirim Tanımlayıcısı                              
   Uçnokta Tanımlayıcısı                              
   String Tanımlayıcısı                                     
Kontrol Transferi'nin Detayları                           
   İşlem Evreleri
İstekler

Bölüm 4

Cihazların Windows Sınıflarına Uydurulması
HID Sınıfı
Sınıf Açıklayıcısı
Rapor Açıklayıcısı
Sınıfa Özgü İstekler
Rapor Nedir?

Bölüm 5

Adım Adım USB Cihaz Tasarımı
   Yonga Kodu'nun Yazılması
   C18 USBHid Firmware'nin incelenmesi
   Firmware'ın Test Kartına Yüklenmesi ve İlk Deneme
   Listelemenin Device Monitoring Studio İle İzlenmesi
   Listeleme Sonrası Registry
   
Bölüm 6

Windows Programı'nın Tasarımı ve Detaylar
   Sürücü Nedir?
   API Nedir?
   Sürücülerin C# İle Yazılmış Yardımcı Araçla İncelenmesi
   INF Dosyası ve İçeriği
   USBHid Windows Uygulaması
   USB Haberleşmesinde ve Diğer İşlemlerde Kullanılacak API'ler
   Win32 Mesaj Sistemi ve Cihaz Takibi
   C# ile USB Windows Uygulamasının Geliştirilmesi
   C# ile Hazırlanmış USBApplication Programının İncelenmesi
   USBManagement.dll
   Ana Uygulama

Bölüm 7

Uygulama Programının ve Cihaz'ın Beraber Kullanılması
Cihaz'a Veri Göndermek Ve Okumak
Veri Trafiğinin Device Monitoring Studio İle İzlenmesi
C# İle Geliştirilmiş Diğer Yardımcı Uygulamalar

Bölüm 8

RS232 İle Tasarlanmış Cihazların USB'ye Yükseltilmesi
   FT232BM Yongası ve Özellikleri
   Sürücü Desteği
   Donanım Tasarımı
   Örnek Firmware'in İncelenmesi
   Windows Uygulamasının Geliştirilmesi

Bölüm 9

USB Uygulamaları
   USB-LCD Uygulaması
   USBtoRS232
   DS1621 ile Sıcaklık Ölçümü
   HT90S32 ile CALLER ID Uygulaması
   ATX-34 ve ARX-34 ile Alıcı/Verici Uygulaması
   Internet Üzerinden Ev Otomasyonu
   USB Motor Kontrol  


Bölüm 10
Sinyaller ve Şifreleme
Güç Seçenekleri ve Kablolama

içerik bundan ibaret ileride daha da eklenebilir eklenebilir.Daha sadece 3 bölüm yazabildim ve 70.sayfadayım.
Capsule NET Compiler 2007

lojikmemo1

Daha ne ekleceksin be :D süper bir şey sen usb konusnda çok iyisin yahu ben bu içeriğin ancak yarısını biliyorum  :cry:  neyse kitabı merakla bekliyorum hemen çıksın da bende alacam bir tane.
PC tarafındaki programın tümünü yani baştan sona usb bus taraması device bulma falan hepsini componet kullanmadan mı yazdın ben bir ara denedim ama çok uzun sürdü verim alamadım diye bırakmıştım. Ne yapayım tek usb ile uğraşmıyorum ki ha sana bir şey daha söyleyeceğim Bence birlikte ARM serisi ile ilgilenmeliyiz biliyorsundur ARM serisi ile işletim sitemi çalışabiliyor belik ortak olarak kendi mobil operation system'imimizi yazarız tabi usbyi sen yazarsın :D

Unutmuşum :  Sadece hid sınıfımı var acaba yoksa verdiğin bilgilere dayanarak mass store falan da yapabilirmiyiz ?
İnsanlara Akılları Ölçüsünde Söz Söyleyiniz.

Jabba

Sitedeki ARM başlıklı konularda bu isteğimi belirttim zaten.Bende ARM ile basit bir işletim sistemi projesi yapmak istiyorum.
Bu arada kitap çıkınca almana gerek yok.Blogdan indirirsin. :D
Bilgi paylaştıkça büyür.Ben USB'yi kontraol eden DLL'i hiçbir component kullanmadan sırf API ve Win32 bilgimle yazdım.Yani herşey API arka planda.DLL bayağı komplike olmaya başladı ama daha da geliştircem.Mesela kendi geliştirdiğin USB cihazı sisteme taktın.OpenPipe methodu ile vendor ve Product ID'sini verdiğin cihazı arıyro ve buluyor.Sonra bunla iletişime geçeceğin handle'lar açıyor.Bu handle'lar ile kullanıcının bir işi yok.Sen sadece WritePipe ile yazıp ReadPipe ile okuyorsun.Bu iki methodun aşırı yüklenmiş versiyonları var.Mesela WritePipe bir AutoResetEvent nesnesi alıp yazma işlemi bittiğinde bunu setliyor, okuma da aynı işlemi yapıyor.Bu şu işe yarıyor.Diyelim yazma işlemi yapan bir methodun var ve bu methoddan WritePipe'ı çağırıyorsun.İki thread sürekli bu methodu işliyor.Birinci thread yazma yaparken ikincisinin bu AutoResetEvent'ın setlenmesini beklemesini istersen bu nesneden bir tane oluşturur WritePipea verirsin o işi bitince setler.Bu thread senkronu için.Lock ilede olur ama bu yöntem daha sağlıklı.lock nesneyi kitlediğinden ve DLL içindeki writepipe gibi methodları tutan class public olduğundan dışarıdan kitlenebilir.
Aynı zamanda bulduğun cihazı sisteme kaydedebiliyorsun.RegisterDevice methodu ile.Sonra ana uygulamanın WndProc'u içinden ProcessDeviceMessage methodunu işletiyorsun.Bu sayede cihaz sistemden çıkartıldığında bir olay takıldğında bir olay tetikliyorum.Aynı zamanda cihaz bağlantısı kapandığında ve açıldığında bir olay tetikliyorum.
Daha birçok method var.

Özellikler ise cihaz üretici ve ürün string'lerini, bağlantının durumu, sisteme kayıtlı olup olmadığını vb tutan özellikler var.Yani burda hepsini yazamayacağım çok uzun.
Üyeler aşağıda.Dahada ekliyorum;


Shot at 2007-08-20

Bu sadece üyeler.O class'lar içinde ne kodlar var bilsen :lol:
Capsule NET Compiler 2007

Jabba

Kitapta basit olması açısından HID sınıfını inceledim.Mass Stroge olayında cihazın HID değil Mass Stroge Class sınıfına uyması gerekiyor.Bu sınıfın tüm istekleri faklı.Bu yüzden PIC kodlarını baştan aşağı yenilemem gerek.Güzel yanı PC tarafında kodlama yapmayacağımız.Direkt disk gibi erişebiiceğiz.

Benimde amacım bu.Kitap çıktıktan sonra herkez olayın mantığını anladıktan sonra blog'da yada sitede uygulamalar yayınlamaya başlamak istiyorum.Hepsini bir sıraya koyarız.Mesela senin GLCD, Mass Stroge, benim ses kayıt .... bu böyle devam eder.Amacım USB'nin tek kaynağı olan bir yer yapmak.Ama bu iş yalnız başına olmuyor.Kitapda en çok bilinmesi gereken şeykeri yazdım.Mesela kitap bitince yukarıda yapacağımız projeler yanında yine site veya blogdan bu e-kitaba ek olarak driver yazımı adlı makale yazmak istiyorum.Şu anda DDK'yı inceliyorum...
Capsule NET Compiler 2007

lojikmemo1

Dostum itiraf etmeliyim ki etkileyici bu küyüphane  .Net içinde çok iyi durmuş Sadece api ile yazman ayrı bir güzel zaten seni kutluyorum.

Çok uğraşmış olmalısın ayrıca kitabı internetten mi vereceksin yani bence bastır çok iyi hazırlanmış ama ben netten vereceyim dersen iyi olur.
Ayrıca çok merak ettim eğer kitapta belli bir seviyeye geldi isen ve mahsuru yoksa çalışmalarını incelemek istiyorum.
İnsanlara Akılları Ölçüsünde Söz Söyleyiniz.

Jabba

Dostum kitap tam istediğim seviyeye gelmedi.Sonra yapsak bana kırlmazsın değil mi?Senin benim gibi USB ile upraşan insan çok az.Herkez hazır şeyler ile uğraşıyor.Seninle güzel şeyler yapıcaz inşallah.
Capsule NET Compiler 2007

lojikmemo1

kırılmak mı o ne demek  :lol:  bilrim o duyguyu proje bitmeden önce mahrem sayılır :D dostum seninle tanıştığımız iyi oldu ben bir de pic ile mail gönderecek uygulama yapacağım bitirme tezi için inşallah olur sen bu konuda hiç çalıştınmı smtp, arp veya udpbilgin varmı ama unut gitsin hazırcılık olmaz kendim yapmalıyım :D

Mail adresini verirsen daha yakın oluruz :D
benimki lojikmemo@gmail.com
İnsanlara Akılları Ölçüsünde Söz Söyleyiniz.

Jabba

digital_castle@hotmail.com mail adresim.

@lojikmemo1 bu konu ile ilgilenmeyi düşündüm fakat vaktim olmadı.TCP protokolünü çöz.Daha sonra protokoldeki paket yapısını kullanarak mesela hotmail'in mx sunucularına mail atabilirsin diye düşünüyorum.Yinede sen bir araştır.Eğer çözersen bloğumuza koyarız.

www.digital-castle.blogspot.com

Şu anda benim adım soyadım var blokta ama arkadaşlar katıldıkça yazarız.Tabii seninkinide.Bu arada blog'a girip yazı ekleyebilirsin sonra.Birşeyler hazırlandın mı bana haber ver yeter.

Heee bu arada ben birkaç arkadaş ile Visual Basic ve C# dillerini derleyebilen bir compiler yazmaya başladık.Türkçe compiler :D Eğer katılmak istersen beraber çalışırız.Proje çoook.
Capsule NET Compiler 2007

files

sayın Jabba arkadaşım siz voltranı oluşturmadan bir soru sorayım,

HID için fulspeed olarak maks hız 64kb/sn demiştin   mchipin custom driverini kullansak (mchpusb.sys )hız artar mı?

enaz 100kbayt/sn hız elde etmem lazım. pic 18f2455, 2250 vs olabilir.