14Aug
Οι περισσότεροι από εμάς δεν σκεφτόμαστε ποτέ τις συσκευές μας USB, απλώς τις συνδέουμε και τις ξεχνάμε.Αλλά τι εάν είστε ο περίεργος τύπος που θέλει να μάθει περισσότερα για το πώς λειτουργεί το USB;Η σημερινή δημοσίευση του χρήστη SuperUser Q & A έχει τις απαντήσεις σε ερωτήσεις περίεργου αναγνώστη.
Η σημερινή ερώτηση &Η συνάντηση απαντήσεων έρχεται με την ευγένεια του SuperUser - μια υποδιαίρεση του Stack Exchange, μια κοινότητα-καθοδηγούμενη ομαδοποίηση Q & A ιστοσελίδες.
Φωτογραφία ευγένεια της Evilelka Kowalski( Flickr).
Ο αναγνώστης ερωτήσεων
SuperUser θέλει να μάθει αν υπάρχει πραγματικά ένα πραγματικό πρωτόκολλο επικοινωνίας USB:
Σύμφωνα με τη Wikipedia, το USB:
- Ορίζει τα καλώδια, τις συνδέσεις και τα πρωτόκολλα επικοινωνίας που χρησιμοποιούνται σε ένα δίαυλο για σύνδεση, επικοινωνία και τροφοδοσία μεταξύυπολογιστές και ηλεκτρονικές συσκευές.
Υπάρχει όμως ένα πραγματικό πρωτόκολλο επικοινωνίας USB ;Η κατανόησή μου είναι ότι:
- Συνδέετε μια συσκευή USB σε ένα μηχάνημα( για παράδειγμα το Ubuntu ή οποιοδήποτε άλλο Linux).
- Το Linux βρίσκει το πρόγραμμα οδήγησης συσκευής για τη συγκεκριμένη συσκευή κάπως( το επίδομα αν γνωρίζετε! ) και το φορτώνετε.
- Η συσκευή είναι τώρα συνδεδεμένη με τη συσκευή /dev/ της συσκευής .Οι εφαρμογές χώρου χρήστη
- μπορούν τώρα να διαβάζουν και να γράφουν στη συσκευή /dev/ τη συσκευή και ο οδηγός χειρίζεται την είσοδο και την έξοδο χαμηλού επιπέδου στην υποκείμενη συσκευή / υλικό.
Από όσο μπορώ να πω, ένα USB επικοινωνιακό πρωτόκολλο επικοινωνίας δεν εμφανίζεται σε αυτό το σημείο.Εάν η κατανόησή μου είναι σωστή, το USB είναι μόνο η καλωδιακή και ηλεκτρική σύνδεση μεταξύ του υπολογιστή και της συσκευής.
Έχω κάνει λάθος εδώ;Η εφαρμογή USB υλοποιεί κάποιο είδος πρωτοκόλλου χαμηλού επιπέδου που υπογραμμίζει την παραπάνω ροή;Εάν ναι, τι είναι αυτό και πώς λειτουργεί σε μια θέα 30.000 ποδιών;
Υπάρχει πραγματικό πρωτόκολλο επικοινωνίας USB;
Οι συνδρομητές της απάντησης
SuperUser RedGrittyBrick και projectdp έχουν την απάντηση για εμάς.Πρώτα επάνω, RedGrittyBrick:
Ναι( βλ. Πρωτόκολλα USB).
Όπως καταλαβαίνω, το spec USB ορίζει ένα περίπλοκο σύνολο πρωτοκόλλων με στρώματα και προφίλ συσκευών.
Για παράδειγμα, οι συσκευές USB μπορούν να συμμορφώνονται με πρότυπα υψηλού επιπέδου, όπως μαζική αποθήκευση, πληκτρολόγιο, συσκευή διασύνδεσης ανθρώπου κ.λπ. και να διαχειρίζονται από ένα γενικό πρόγραμμα οδήγησης συσκευής.Ορισμένες συσκευές USB μπορούν να επικοινωνούν σε χαμηλότερο επίπεδο, έτσι ώστε η υποστήριξη USB χαμηλού επιπέδου του λειτουργικού συστήματος να μπορεί να αναγνωρίσει ότι απαιτούνται ειδικά προγράμματα οδήγησης υψηλότερου επιπέδου για συγκεκριμένη συσκευή.
Ακολούθησε η απάντηση από projectdp:
Ερώτηση
Υπάρχει ένα πρωτόκολλο επικοινωνίας USB χαμηλού επιπέδου σε δράση και τι είναι αυτό;
Απάντηση
Ναι, υπάρχει.Η προδιαγραφή USB περιλαμβάνει το πρωτόκολλο USB το οποίο καθορίζει τον τρόπο χρήσης του διαύλου σε επίπεδο bit.Αυτό θα ήταν το πρωτόκολλο χαμηλού επιπέδου που βασίζεται στα πρωτόκολλα υψηλότερου επιπέδου( δηλ. Αποθήκευση μάζας, HID, κλπ.).
Για λεπτομέρειες σχετικά με τον τρόπο λειτουργίας του πρωτοκόλλου USB, αυτό το wiki OSDev είναι χρήσιμο.Ακολουθεί μια άλλη ενδιαφέρουσα περιγραφή που χρησιμοποιεί διαγράμματα αλληλουχίας για να περιγράψει τις διάφορες συναλλαγές δεδομένων ανά πρωτόκολλο USB.
Ερώτηση μπόνους
Πώς εντοπίζει και φορτώνει το πρόγραμμα οδήγησης συσκευής για τη συγκεκριμένη συσκευή;
Απόκριση μπόνους
Στο Linux, όταν χρησιμοποιείτε πυρήνα με δυνατότητα USB, θα εντοπιστεί μια λειτουργική συσκευή USB μέσω του υλικού και του πυρήνα λόγω των προδιαγραφών USB.Από την πλευρά του υλικού, η ανίχνευση γίνεται από τον ελεγκτή κεντρικού υπολογιστή USB.Στη συνέχεια στον πυρήνα ο οδηγός ελεγκτή κεντρικού υπολογιστή αναλαμβάνει και μεταφράζει τα bit χαμηλής στάθμης του καλωδίου σε μορφοποιημένες πληροφορίες πρωτοκόλλου USB.Στη συνέχεια, αυτές οι πληροφορίες πληκτρολογούνται στο πρόγραμμα οδήγησης usbcore στον πυρήνα.
Παραφράζω από αυτό το εξαιρετικό άρθρο Opensourceforu, το οποίο έχει πολύ περισσότερες λεπτομέρειες και σαφήνεια σχετικά με την ερώτησή σας στο περιβάλλον του Linux.
Βεβαιωθείτε ότι έχετε δει την υπόλοιπη ζωντανή συζήτηση μέσω του συνδέσμου νήματος που μοιράζεται παρακάτω!
Έχετε κάτι να προσθέσετε στην εξήγηση;Απενεργοποιήστε τα σχόλια.Θέλετε να διαβάσετε περισσότερες απαντήσεις από άλλους χρήστες τεχνολογίας Stack Exchange;Δείτε το πλήρες νήμα συζήτησης εδώ.