2024 Autor: Peter John Melton | [email protected]. Naposledy změněno: 2024-01-15 03:53
Dnešní zasedání Otázky a odpovědi se k nám přichází s laskavým svolením SuperUser - rozdělení Stack Exchange, komunitní skupiny webových stránek pro otázky a odpovědi.
Foto s laskavým svolením Evilelky Kowalski (Flickr).
Otázka
Čtečka superuseru smeeb chce vědět, zda skutečně existuje skutečný USB komunikační protokol:
According to Wikipedia, USB:
Defines the cables, connectors, and communications protocols used in a bus for connection, communication, and power supply between computers and electronic devices.
But is there an actual USB Communication Protocol? My understanding is that:
- You connect a USB device to a machine (Ubuntu or any kind of Linux for example).
- Linux finds the device driver for that device somehow (bonus if you know!) and loads it.
- The device is now connected under /dev/theDevice.
- User space apps can now read and write to /dev/theDevice and the driver handles the low-level input and output to the underlying device/hardware.
As far as I can tell, a USB Communication Protocol does not appear anywhere in this flow. If my understanding is correct, the USB is just the cable and electrical connection between the PC and the device.
Am I wrong here? Does USB actually implement some kind of low-level protocol that underscores the flow above? If so, what is it and how does it work at a 30,000 foot view?
Existuje skutečný komunikační protokol USB?
Odpověď
Uživatelé SuperUser RedGrittyBrick a projectdp mají pro nás odpověď. První, RedGrittyBrick:
Yes (see USB protocols).
As I understand it, the USB spec defines a complex set of layered protocols and device profiles.
For example, USB devices can conform to high-level templates like mass-storage, keyboard, human interface device, etc. and be managed by a generic device driver. Some USB devices can communicate at a lower level such that the operating system’s low level USB support can recognize that device-specific higher level drivers are needed.
Následuje odpověď od projectdp:
Question
Is there a low-level USB communication protocol in action and what is it?
Answer
Yes, there is. The USB specification includes the USB protocol which defines the way the bus is used on a bit level. This would be the low-level protocol that underlies the higher level protocols (i.e. mass-storage, HID, etc.).
For specifics on how the USB protocol works, this OSDev wiki is helpful. Here is another interesting description using sequence diagrams to describe the various data transactions per the USB protocol.
Bonus Question
How does Linux find and load the device driver for that device?
Bonus Answer
On Linux when using a USB-enabled kernel, a working USB device will be detected via the hardware and kernel due to the USB specification. On the hardware side, the detection is done by the USB Host Controller. Then in the kernel the Host Controller Driver takes over and translates the low-level bits on the wire to USB protocol formatted information. This information then gets populated in the usbcore driver in the kernel.
I paraphrased from this excellent Opensourceforu article, which has much more detail and clarity about your question in the Linux context.
Nezapomeňte zkontrolovat zbytek živé diskuse prostřednictvím odkazu na podproces sdíleného níže!
Musíte něco přidat k vysvětlení? Zní to v komentářích. Chcete se dozvědět více odpovědí od ostatních uživatelů technologie Stack Exchange? Podívejte se na celý diskusní příspěvek zde.
Doporučuje:
Jak získat Spotify k překročení mezi písněmi jako skutečný DJ
Když posloucháte živého DJ, jedna píseň nepřestane hrát a poté po krátké pauze začne další. Namísto toho se stopy přecházejí do sebe. Jedna z nejoblíbenějších metod se nazývá "crossfading". Dvě stopy se překrývají na několik sekund, hlasitost se snižuje o první stopu, jak se vyskytuje pro druhou.
Jak přidat přívěsy do vašich filmů Plex pro skutečný filmový zážitek
Pokud jste fanouškem filmových přívěsů, pre-rollů a nárůstu očekávání, které vedou k filmovému zážitku, pak máme pro vás zážitek: Plex Media Server zjednodušuje vytváření divadelní magie doma s oběma přívěsy z vlastní sbírky filmů, stejně jako s příštími vydáními.
Co je poškozený soubor a existuje způsob, jak ho získat zpět?
Poškozené soubory se na moderních počítačích příliš často nevyskytují s dobrými bezpečnostními opatřeními. Ale když to udělají, může to být noční můra. Podívejme se na běžné příčiny poškozených souborů, na to, jak jim pomůžete předcházet, a co můžete udělat, když se to stane.
Existuje způsob, jak vidět, kdo viděl váš Facebook profil?
Existuje spousta rozšíření pro prohlížeče, aplikací a webových stránek, které tvrdí, že vám mohou říci, který z vašich přátel Facebooku nedávno navštívil váš profil a kolik času tam strávili. Bohužel žádná z těchto rozšíření nebo aplikací nedělá to, co tvrdí.
Video komunikační software - alternativy Skype
Článek uvádí tři dobré video komunikační programy pro Windows - ooVoo, Tango, Google Hangout - které mohou sloužit jako alternativy Skype.