Anasayfa » nasıl » Gerçek bir USB İletişim Protokolü Var mı?

    Gerçek bir USB İletişim Protokolü Var mı?

    Birçoğumuz USB cihazlarımıza asla fazla düşünmüyoruz, sadece fişe takıyoruz ve onları unutuyoruz. Peki ya USB'nin nasıl çalıştığı hakkında daha fazla bilgi edinmek isteyen meraklı bir türseniz? Bugünün Süper Kullanıcı Soru-Cevap yazısında meraklı bir okuyucunun sorularına cevap.

    Bugünün Soru ve Cevap oturumu bize topluluk tarafından yönlendirilen bir soru-cevap web sitesi grubu olan Stack Exchange'in bir alt birimi olan SuperUser'ın izniyle geliyor..

    Evilelka Kowalski'nin izniyle (Flickr).

    Soru

    SuperUser okuyucu smeeb, gerçek bir USB İletişim Protokolü olup olmadığını bilmek istiyor:

    Wikipedia'ya göre, USB:

    • Bilgisayar ve elektronik cihazlar arasında bağlantı, iletişim ve güç kaynağı için veri yolunda kullanılan kabloları, konektörleri ve iletişim protokollerini tanımlar.

    Ama gerçek var mı USB İletişim Protokolü? Benim anlayışım şudur:

    1. Bir USB cihazını bir makineye bağlarsınız (örneğin Ubuntu veya herhangi bir Linux türü).
    2. Linux bu aygıtın aygıt sürücüsünü bir şekilde bulur (Biliyorsanız bonus!) ve yükler.
    3. Cihaz şimdi altında bağlı / Dev /! Cihaz.
    4. Kullanıcı alanı uygulamaları artık okuyabilir ve yazabilir / Dev /! Cihaz ve sürücü, düşük seviye giriş ve çıkışı altta yatan cihaza / donanıma uygular.

    Söyleyebileceğim kadarıyla, bir USB İletişim Protokolü bu akışta hiçbir yerde görünmez. Anlayışım doğruysa, USB sadece PC ile cihaz arasındaki kablo ve elektrik bağlantısıdır..

    Burada yanlış mıyım? USB, yukarıdaki akışı vurgulayan bir çeşit düşük seviye protokolü kullanıyor mu? Öyleyse, bu nedir ve 30.000 fit görüşünde nasıl çalışır??

    Gerçek bir USB İletişim Protokolü var mı?

    Cevap

    SuperUser katkıda bulunanlar RedGrittyBrick ve projectdp bizim için cevap veriyor. İlk önce, RedGrittyBrick:

    Evet (bkz. USB protokolleri).

    Anladığım kadarıyla, USB spec karmaşık bir katmanlı protokol seti ve cihaz profili tanımlar..

    Örneğin, USB aygıtları, yığın depolama, klavye, insan arabirim aygıtı vb. Gibi üst düzey şablonlara uyabilir ve genel bir aygıt sürücüsü tarafından yönetilebilir. Bazı USB aygıtları, işletim sisteminin düşük seviye USB desteğinin, aygıta özgü daha yüksek sürücü sürücülerinin gerekli olduğunu algılayabileceği şekilde daha düşük düzeyde iletişim kurabilir.

    Projectdp'den gelen cevabın ardından:

    Soru

    Uygulamada düşük seviyeli bir USB iletişim protokolü var mı ve nedir??

    Cevap

    Evet var. USB spesifikasyonu, veriyolunun bit seviyesinde nasıl kullanıldığını tanımlayan USB protokolünü içerir. Bu, daha yüksek seviyeli protokollerin (yani yığın depolama, HID vb.) Temelini oluşturan düşük seviye protokol olacaktır..

    USB protokolünün nasıl çalıştığı hakkında ayrıntılı bilgi için, bu OSDev wiki yardımcı olur. USB protokolü başına çeşitli veri işlemlerini tanımlamak için dizi diyagramlarını kullanarak başka ilginç bir açıklama.

    Bonus soru

    Linux, o aygıtın aygıt sürücüsünü nasıl bulur ve yükler??

    Bonus cevabı

    Linux'ta USB etkin bir çekirdek kullanıldığında, USB özelliği nedeniyle donanım ve çekirdek yoluyla çalışan bir USB cihazı algılanacaktır. Donanım tarafında, algılama USB Host Controller tarafından yapılır. Daha sonra çekirdekte Ana Bilgisayar Denetleyici Sürücüsü devraldı ve kablodaki düşük seviyeli bitleri USB protokolü formatlı bilgilere dönüştürür. Bu bilgi daha sonra çekirdekteki usbcore sürücüsüne yerleştirilir.

    Linux bağlamında sorunuzla ilgili çok daha fazla ayrıntı ve netliğe sahip olan bu mükemmel opensourceforu makalesinden alıntı yaptım.

    Canlı tartışmanın geri kalanını aşağıda paylaşılan konu bağlantısı üzerinden kontrol ettiğinizden emin olun.!


    Açıklamaya eklemek için bir şey var mı? Yorumlarda ses kesiliyor. Diğer teknoloji meraklısı Stack Exchange kullanıcılarından daha fazla cevap okumak ister misiniz? Burada tüm tartışma konusuna göz atın.