9
votes

Relation entre USB et PCI

i m mors confus par la déclaration suivante dans le livre de pilotes de périphérique Linux. http://www.linuxdriver.co.il/ldd3/

13.2. USB et SYSFS pour aider à comprendre ce que signifie ce long chemin de périphérique, nous Décrivez comment le noyau étiquette la clé USB dispositifs. Le premier périphérique USB est un hub racine. Ceci est le contrôleur USB, généralement contenue dans un périphérique PCI. Les contrôleur est tellement nommé parce qu'il Contrôle l'ensemble du bus USB connecté à cela. Le contrôleur est un pont entre le bus PCI et le bus USB, En plus d'être le premier périphérique USB sur ce bus.

Surtout la déclaration "Le contrôleur est un pont entre le bus PCI et le bus USB"

Est-ce tellement? Je suis sous l'impression que PCI et USB sont des bus distincts. S'il vous plaît clarifier.


4 Réponses :


2
votes

Le contrôleur USB communique à la fois USB et PCI. USB ne parle pas directement à la CPU, mais plutôt à travers le bus PCI en premier.


2 commentaires

"USB ne parle pas directement à la CPU, mais plutôt à travers le bus PCI en premier." Est-ce que cela signifie que nous ne pouvons pas "avoir un contrôleur USB" dans notre machine. Est-il toujours obligatoire d'avoir un bus PCI afin d'utiliser des périphériques USB. Je suis perplexe?


Il pourrait y avoir des implémentations qui font cela, mais je ne suis pas sûr.



2
votes

Deux diagrammes de débit très simples:

UtilisateursPace -> Kernel -> PCI -> Contrôleur USB -> Dispositif USB

Dispositif USB -> Contrôleur USB -> PCI -> Kernel -> Utilisateurspace

ou, mieux mettre:

UtilisateursPace -> Kernel -> [Card_Architecture] -> Contrôleur USB -> Dispositif USB

Dispositif USB -> Contrôleur USB -> [Card_Architecture] -> Noyau -> UtilisateursPace

... comme vous le voyez, PCI est plutôt accessoire. Écrivez-vous un pilote de périphérique?


2 commentaires

Semble que vous êtes correct! EN.WikiPedia.org/wiki/Universal_serial_bus Je n'ai vu aucune mention sur PCI ici :(


@kumar, PCI est un peu accessoire ici ... cela pourrait aussi être un certain nombre d'autres architectures. J'ai vu des cartes USB primitives construites sur MCA.



7
votes

Ce sont en effet des bus distincts, c'est pourquoi vous avez besoin d'un pont em> entre eux afin que la CPU puisse, sur PCI, à travers le pont, communiquer avec des trucs sur le bus USB.

CPU ---(front-side bus)----  PCI controller ----(PCI-bus)-+--   USB controller ----(USB-bus)--+-- USB mouse
                                                          |                                   +--- USB printer
                                                          +--   SATA controller


3 commentaires

Est-ce que le contrôleur PCI moyen et le bus PCI est toujours requis pour un périphérique USB fonctionner ??


Du point de vue matériel: Oui. Du côté logiciel, toutes les trucs PCI seront manipulés pour vous dans un autre calque, il vous suffit de perdre des appels de fonction USB.


Aimez votre art ASCII !! Vous avez des sources pour cela? En outre, il serait préférable de la mettre verticalement afin qu'il puisse être visualisé sans faire défiler.



7
votes

Le "contrôleur" se réfère à ci-dessus est un élément de matériel. Il abrite des fonctionnalités de «pont» des communications entre une interface USB et une interface PCI.

Par "Bridging", il est signifié que les paquets de protocole USB sont transférés vers / depuis les ports CPU / USB, mais généralement via un "bus" PCI.

Les raisons pour lesquelles un hop via un bus PCI est utilisé probablement de 2:

  • 1 interface est meilleur que deux (coût et complexité sage)
  • USB est une vitesse totale plus lente que PCI (certainement PCI-Express): il est facile de "encapsuler" des paquets de protocole USB sur PCI pour navetter ceux autour de la carte mère.

    note : il existe souvent une confusion lorsqu'il s'agit de nommer des croustilles matérielles. Pour des raisons efficaces (lire $$), il est assez courant d'avoir des puces qui abritent des fonctions multiples . Ce n'est pas parce que la fonction principale d'une puce est "pont PCI" qu'elle doit être limitée pour effectuer "PCI Bridging".


5 commentaires

Hmm .... Mais pourquoi un contrôleur PCI doit s'inquiéter du contrôleur / périphérique USB. Contrôleur PCI pour le contrôleur USB de périphérique PCI pour le périphérique USB Pourquoi une interface USB est-elle nécessaire et une interface PCI? USB est plus rapide que PCI (ma compréhension) en connectant USB à PCI, nous pouvons réduire la vitesse de USB ... je me trompe ??


Regardez-le sous un autre angle: la pièce de matériel sur la carte abrite beaucoup de fonctionnalités, notamment (mais peut-être pas limitée) PCI Bridging, ponte PCI-USB, etc.


Un contrôleur USB est en fait un périphérique PCI en même temps ...! (Voir ma photo dans l'autre réponse: il se connecte à PCI au côté gauche, étant un esclave leur, et est maître pour le bus USB au bon côté)


@WIM: Oui à partir d'un Emballage Point de vue, mais d'un point de vue fonctionnel, un périphérique PCI est une chose différente qu'un périphérique USB.


@ jldupont: le mot "emballage" clarifie vraiment mon doute, merci!