พวกเราส่วนใหญ่ไม่เคยคิดมากกับอุปกรณ์ USB ของเราเพียงแค่เสียบปลั๊กและลืมอุปกรณ์เหล่านั้นไป แต่ถ้าคุณเป็นคนขี้สงสัยที่ต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับการทำงานของ USB ล่ะ? โพสต์ถาม & ตอบ SuperUser วันนี้มีคำตอบสำหรับคำถามของผู้อ่านที่อยากรู้อยากเห็น
เซสชันคำถามและคำตอบของวันนี้มาถึงเราโดยได้รับความอนุเคราะห์จาก SuperUser ซึ่งเป็นแผนกย่อยของ Stack Exchange ซึ่งเป็นการรวมกลุ่มเว็บไซต์ถาม & ตอบโดยชุมชน
เอื้อเฟื้อภาพโดย Evilelka Kowalski (Flickr) .
คำถาม
ผู้อ่าน SuperUser smeeb ต้องการทราบว่ามีโปรโตคอลการสื่อสาร USB จริงหรือไม่:
อ้างอิงจาก Wikipedia ยูเอสบี :
- กำหนดสายเคเบิลตัวเชื่อมต่อและโปรโตคอลการสื่อสารที่ใช้ในบัสสำหรับการเชื่อมต่อการสื่อสารและแหล่งจ่ายไฟระหว่างคอมพิวเตอร์และอุปกรณ์อิเล็กทรอนิกส์
แต่มีจริงหรือไม่ โปรโตคอลการสื่อสาร USB เหรอ? ความเข้าใจของฉันคือ:
- คุณเชื่อมต่ออุปกรณ์ USB กับเครื่อง (เช่น Ubuntu หรือ Linux ชนิดใดก็ได้)
- Linux ค้นหาไดรเวอร์อุปกรณ์สำหรับอุปกรณ์นั้นอย่างใด ( โบนัสถ้าคุณรู้! ) และโหลดมัน
- ขณะนี้อุปกรณ์เชื่อมต่อภายใต้ / dev / theDevice .
- แอปพื้นที่ผู้ใช้สามารถอ่านและเขียนได้แล้ว / dev / theDevice และไดรเวอร์จะจัดการอินพุตและเอาต์พุตระดับต่ำไปยังอุปกรณ์ / ฮาร์ดแวร์พื้นฐาน
เท่าที่ฉันสามารถบอกได้ก โปรโตคอลการสื่อสาร USB ไม่ปรากฏที่ใดก็ได้ในขั้นตอนนี้ หากความเข้าใจของฉันถูกต้อง USB เป็นเพียงสายเคเบิลและการเชื่อมต่อไฟฟ้าระหว่างพีซีและอุปกรณ์
ฉันผิดที่นี่? USB ใช้โปรโตคอลระดับต่ำบางประเภทที่เน้นการไหลด้านบนหรือไม่? ถ้าเป็นเช่นนั้นมันคืออะไรและทำงานอย่างไรที่มุมมอง 30,000 ฟุต?
มีโปรโตคอลการสื่อสาร USB จริงหรือไม่?
คำตอบ
ผู้สนับสนุน SuperUser RedGrittyBrick และ projectdp มีคำตอบให้เรา ก่อนอื่น RedGrittyBrick:
ใช่ ( ดูโปรโตคอล USB ).
ตามที่ฉันเข้าใจแล้วข้อมูลจำเพาะของ USB กำหนดชุดโปรโตคอลและโปรไฟล์อุปกรณ์ที่ซับซ้อน
ตัวอย่างเช่นอุปกรณ์ USB สามารถสอดคล้องกับเทมเพลตระดับสูงเช่นที่เก็บข้อมูลขนาดใหญ่แป้นพิมพ์อุปกรณ์อินเทอร์เฟซสำหรับมนุษย์ ฯลฯ และได้รับการจัดการโดยไดรเวอร์อุปกรณ์ทั่วไป อุปกรณ์ USB บางอย่างสามารถสื่อสารในระดับที่ต่ำกว่าเพื่อให้การสนับสนุน USB ระดับต่ำของระบบปฏิบัติการสามารถรับรู้ได้ว่าจำเป็นต้องมีไดรเวอร์ระดับสูงกว่าเฉพาะอุปกรณ์
ตามด้วยคำตอบจาก projectdp:
คำถาม
มีโปรโตคอลการสื่อสาร USB ระดับต่ำกำลังทำงานอยู่หรือไม่และมันคืออะไร?
ตอบ
ใช่มี. ข้อกำหนด USB ประกอบด้วยโปรโตคอล USB ซึ่งกำหนดวิธีการใช้บัสในระดับบิต นี่จะเป็นโปรโตคอลระดับต่ำที่รองรับโปรโตคอลระดับสูงกว่า (เช่น Mass-storage, HID เป็นต้น)
สำหรับข้อมูลเฉพาะเกี่ยวกับวิธีการทำงานของโปรโตคอล USB นี้ OSDev wiki เป็นประโยชน์ นี่คืออีกหนึ่ง คำอธิบายที่น่าสนใจ ใช้แผนภาพลำดับเพื่ออธิบายธุรกรรมข้อมูลต่างๆตามโปรโตคอล USB
คำถามโบนัส
Linux ค้นหาและโหลดไดรเวอร์อุปกรณ์สำหรับอุปกรณ์นั้นได้อย่างไร
คำตอบโบนัส
บน Linux เมื่อใช้เคอร์เนลที่เปิดใช้งาน USB อุปกรณ์ USB ที่ใช้งานได้จะถูกตรวจพบผ่านฮาร์ดแวร์และเคอร์เนลเนื่องจากข้อกำหนดของ USB ในด้านฮาร์ดแวร์การตรวจจับทำได้โดย USB Host Controller จากนั้นในเคอร์เนล Host Controller Driver จะรับช่วงต่อและแปลบิตระดับต่ำบนสายเป็นข้อมูลที่จัดรูปแบบโปรโตคอล USB ข้อมูลนี้จะถูกเติมในไดรเวอร์ usbcore ในเคอร์เนล
ฉันถอดความจากความยอดเยี่ยมนี้ บทความ Opensourceforu ซึ่งมีรายละเอียดและความชัดเจนมากขึ้นเกี่ยวกับคำถามของคุณในบริบท Linux
อย่าลืมดูส่วนที่เหลือของการสนทนาที่มีชีวิตชีวาผ่านลิงค์ของเธรดที่แชร์ด้านล่างนี้!
มีสิ่งที่จะเพิ่มคำอธิบาย? ปิดเสียงในความคิดเห็น ต้องการอ่านคำตอบเพิ่มเติมจากผู้ใช้ Stack Exchange ที่เชี่ยวชาญด้านเทคโนโลยีคนอื่น ๆ หรือไม่? ดูกระทู้สนทนาฉบับเต็มได้ที่นี่ .