โฮมเพจ » ทำอย่างไร » มีโปรโตคอลการสื่อสาร USB จริงหรือไม่

    มีโปรโตคอลการสื่อสาร USB จริงหรือไม่

    พวกเราส่วนใหญ่ไม่เคยคิดมากกับอุปกรณ์ USB ของเราเราเพียงแค่เสียบมันและลืมมันไป แต่ถ้าคุณเป็นคนที่อยากรู้อยากเห็นอยากรู้เพิ่มเติมเกี่ยวกับการทำงานของ USB? บทความถามตอบ SuperUser ในวันนี้มีคำตอบสำหรับคำถามของผู้อ่านที่อยากรู้อยากเห็น.

    เซสชั่นคำถามและคำตอบในวันนี้มาถึงเราด้วยความอนุเคราะห์จาก SuperUser - แผนกย่อยของ Exchange Exchange ซึ่งเป็นกลุ่มที่ขับเคลื่อนด้วยชุมชนของเว็บไซต์ถาม - ตอบ.

    ภาพถ่ายมารยาทของ Evilelka Kowalski (Flickr).

    คำถาม

    ผู้อ่าน SuperUser smeeb ต้องการทราบว่ามีโปรโตคอลการสื่อสาร USB จริงหรือไม่:

    ตามที่ Wikipedia, USB:

    • กำหนดสายเคเบิลตัวเชื่อมต่อและโปรโตคอลการสื่อสารที่ใช้ในบัสสำหรับการเชื่อมต่อการสื่อสารและแหล่งจ่ายไฟระหว่างคอมพิวเตอร์และอุปกรณ์อิเล็กทรอนิกส์.

    แต่มีจริง โปรโตคอลการสื่อสาร USB? ความเข้าใจของฉันคือ:

    1. คุณเชื่อมต่ออุปกรณ์ USB เข้ากับเครื่อง (เช่น Ubuntu หรือ Linux ชนิดใดก็ได้).
    2. Linux พบไดรเวอร์อุปกรณ์สำหรับอุปกรณ์นั้นอย่างใด (โบนัสถ้าคุณรู้!) และโหลด.
    3. อุปกรณ์ได้รับการเชื่อมต่อภายใต้ / dev / theDevice.
    4. แอปพื้นที่ผู้ใช้สามารถอ่านและเขียนได้แล้ว / dev / theDevice และไดรเวอร์จะจัดการอินพุตและเอาต์พุตระดับต่ำไปยังอุปกรณ์ / ฮาร์ดแวร์พื้นฐาน.

    เท่าที่ฉันสามารถบอกได้ โปรโตคอลการสื่อสาร USB ไม่ปรากฏที่ใดก็ได้ในโฟลว์นี้ หากความเข้าใจของฉันถูกต้อง USB เป็นเพียงการเชื่อมต่อสายเคเบิลและไฟฟ้าระหว่างพีซีและอุปกรณ์.

    ฉันผิดที่นี่ USB ใช้โพรโทคอลระดับต่ำจริง ๆ หรือไม่ที่เน้นการไหลของข้อมูลด้านบนหรือไม่? ถ้าเป็นเช่นนั้นมันคืออะไรและมันทำงานอย่างไรในมุมมอง 30,000 ฟุต?

    มีโปรโตคอลการสื่อสาร USB จริงหรือไม่?

    คำตอบ

    ผู้สนับสนุน SuperUser RedGrittyBrick และ projectdp มีคำตอบสำหรับเรา ก่อนอื่น RedGrittyBrick:

    ใช่ (ดูโปรโตคอล USB).

    ตามที่ฉันเข้าใจแล้วสเป็ค USB กำหนดชุดโพรโทคอลที่ซับซ้อนและโปรไฟล์อุปกรณ์.

    ตัวอย่างเช่นอุปกรณ์ USB สามารถปฏิบัติตามแม่แบบระดับสูงเช่นที่เก็บข้อมูลขนาดใหญ่, คีย์บอร์ด, อุปกรณ์เชื่อมต่อระหว่างบุคคล ฯลฯ และจัดการโดยไดรเวอร์อุปกรณ์ทั่วไป อุปกรณ์ USB บางตัวสามารถสื่อสารในระดับที่ต่ำกว่าเช่นการรองรับ USB ระดับต่ำของระบบปฏิบัติการสามารถรับรู้ได้ว่าต้องการไดรเวอร์ระดับสูงเฉพาะสำหรับอุปกรณ์.

    ตามด้วยคำตอบจาก projectdp:

    คำถาม

    มีโปรโตคอลการสื่อสาร USB ระดับต่ำในการทำงานหรือไม่และมันคืออะไร?

    ตอบ

    ใช่แล้ว ข้อมูลจำเพาะ USB รวมถึงโปรโตคอล USB ซึ่งกำหนดวิธีการใช้บัสในระดับบิต นี่จะเป็นโปรโตคอลระดับต่ำที่รองรับโปรโตคอลระดับสูงกว่า (เช่นที่เก็บข้อมูลขนาดใหญ่, HID, เป็นต้น).

    สำหรับข้อมูลเฉพาะเกี่ยวกับวิธีการทำงานของโปรโตคอล USB วิกิ OSDev นี้จะมีประโยชน์ นี่คือคำอธิบายที่น่าสนใจอีกอย่างหนึ่งที่ใช้ไดอะแกรมลำดับเพื่ออธิบายการทำธุรกรรมข้อมูลต่าง ๆ ต่อโปรโตคอล USB.

    คำถามโบนัส

    Linux พบและโหลดไดรเวอร์อุปกรณ์สำหรับอุปกรณ์นั้นอย่างไร?

    คำตอบโบนัส

    บน Linux เมื่อใช้เคอร์เนลที่ใช้งาน USB อุปกรณ์ USB ที่ใช้งานได้จะถูกตรวจพบผ่านฮาร์ดแวร์และเคอร์เนลเนื่องจากข้อกำหนด USB ในด้านฮาร์ดแวร์การตรวจจับทำได้โดย USB Host Controller จากนั้นในเคอร์เนล Host Controller Driver จะเข้าควบคุมและแปลบิตระดับต่ำบนสายไปเป็นข้อมูลที่ฟอร์แมตโปรโตคอล USB ข้อมูลนี้จะได้รับการบรรจุในไดรเวอร์ usbcore ในเคอร์เนล.

    ฉันถอดความจากบทความ Opensourceforu ที่ยอดเยี่ยมนี้ซึ่งมีรายละเอียดและความชัดเจนมากขึ้นเกี่ยวกับคำถามของคุณในบริบท Linux.

    ตรวจสอบให้แน่ใจว่าได้ตรวจสอบการสนทนาที่มีชีวิตชีวาที่เหลือผ่านลิงก์เธรดที่แชร์ด้านล่าง!


    มีสิ่งที่จะเพิ่มคำอธิบายหรือไม่ ปิดเสียงในความคิดเห็น ต้องการอ่านคำตอบเพิ่มเติมจากผู้ใช้ Stack Exchange คนอื่นหรือไม่ ลองอ่านหัวข้อสนทนาเต็มได้ที่นี่.