Así identifica tu PC los periféricos de hardware que le conectas

Cuando conectáis un nuevo periférico de repente veis como el sistema operativo lo reconoce e instala los controladores de un repositorio online o en el caso que no los encuentre nos pregunta por unos. pero, ¿nunca os habéis preguntado como puede identificar vuestro PC el periférico que le habéis conectado? En este tutorial os vamos a explicar como lo hace vuestro PC para identificar que periférico es a través del USB ID y del PCI ID.

Hoy en día el termino plug and play ya no lo vemos repetido en todos sitios, el motivo es bien simple, todos los periféricos son de conectar y listo pero hubo un tiempo donde el sistema no tenía manera de saber con que tipo de periférico se estaba comunicando y era necesario tocar ciertos parámetros manualmente.

Esto termino con la implementación del puerto PCI primero, hoy en día evolucionado en las diversas generaciones de PCI Express, y el USB después, los cuales en sus estándares hacen uso de códigos de identificación que identifican todos y cada uno de los periféricos que hay en el

Identificación en periféricos PCI y PCI Express: el PCI ID

Placa Base PCIe

Cualquier dispositivo que es conectado a un puerto del tipo PCI o PCI Express es identificado por un código hexadecimal dividido en dos partes:

  • Las primeras cifras pertenecen al fabricante, dicha identificación es asignada de manera perpetua por el PCI-SIG, el cual es el consorcio que desarrolla los diferentes estándares del bus PCI Express, así como sus diferentes avances.
  • La segunda parte del ID es asignado por el fabricante.

Cada una de las dos partes del código de identificación es almacenado en forma de dos enteros de 16 bits, los cuales se almacenen en un registro concreto. Esto significa que pueden haber hasta 65.536 periféricos fabricantes de dispositivos PCI y cada uno de ellos pueden fabricar 65.536 dispositivos que utilicen dicha interfaz, dejad que os digamos que ni el más veterano se los fabricantes de hardware han llegado a fabricar dicha cantidad de dispositivos en todo este tiempo.

GPU PCIe

Muchos fabricantes subdividen la ID de producto en varias sub ID, que pueden marcar cosas como la generación del hardware, su naturaleza, el tipo de variante, etcétera. Por lo que al contrario de lo que ocurre con el USB ID cada uno de los fabricantes de hardware tiene una mayor libertad para asignar IDs, pero la contrapartida es que es más difícil asignar controladores genéricos a los periféricos PCIe.

La identificación en los periféricos USB: el USB ID

Puertos USB

El bus USB se diseño para que el sistema huésped pudiese identificar el periférico que es conectado a través del puerto USB, es por ello que al igual que ocurre con dispositivos PCI estos también disponen de una identificación pero funcionan de manera distinta. Pero funcionan de manera algo distinta a los PCI ID.

En primer lugar, hay una serie de identificaciones comunes que sirven para categorizar los diferentes tipos de dispositivos que podemos conectar a un puerto USB, entre ellos están:

  • Human Interface Descriptor (HID): Es utilizado por teclados, ratones e incluso tabletas y controladores de juegos como joysticks y game pads., muchos periféricos de este tipo no tienen controladores propios y utilizan los genéricos para este tipo de dispositivos.
  • Mass Storage Descriptor (MSD): Es utilizado para el almacenamiento externo como discos duros, llaves USB, etcetera.

USB ID Teclado

Existen diferentes tipos de identificaciones por tipo de periférico, dichas identificaciones son llamadas clases, por ejemplo la Human Interface Descriptor es un tipo de clase y luego la sub-clase para el tipo de hardware, por ejemplo una sub-clase sería la de teclado. lo que facilita cargar los controladores genéricos de cada tipo de hardware.

Disco Duro USB

Aparte de las clases y las sub-clases, también se incluyen otros descriptores, los cuales son los siguientes:

  • Vendor ID (VID): El código de identificación del vendedor del periférico USB, cada fabricante de dispositivos USB sean del tipo que sean tiene una identificación única.
  • Product ID (PID): El código de identificación del dispositivo, este es otorgado por el fabricante del mismo.
  • Revision: En el caso de que existan varias revisiones de un mismo producto, estas también pueden tener una identificación.

El descriptor de la revisión se utiliza en casos muy puntuales, especialmente cuando ha habido una pequeña mejora que obliga a utilizar un nuevo tipo de controlador con tal que el software pueda hacer uso de la misma.

Hay que aclarar para terminar que la ID no se debe confundir con los drivers, tanto el USB ID como el PCI ID son utilizados por el sistema operativo para encontrar el controlador adecuado que le sirva para comunicar con ese hardware en concreto, ya sea entre entre los archivos del sistema o desde un repositorio online.

¡Sé el primero en comentar!