Intel 8042: ¿qué son las "entradas de prueba"?

5

He implementado un controlador para Intel 8042 (controlador de teclado en IBM PC AT). La referencia técnica IBM 5170 (PC AT) sirvió como mi, bueno, referencia para eso.
El puerto de salida y el puerto de entrada de prueba contienen "entradas de prueba" (pp. 1-44):

Supongoquelosbitscontienenelestadoactualdecadalínea,esdecir,elrelojylosdatos.

¿Perocuálessonesas"entradas de prueba" en absoluto? ¿Por qué conectar "entradas de prueba", en cuanto a las pruebas durante la inicialización o algo así, al reloj y las líneas de datos? Además, ¿qué significan "(salida)" y "(entrada)"? ¿Tiene esto algo que ver con las partes internas del controlador, que el reloj y las líneas de datos existen en las formas de "entrada" y "salida", por ejemplo? O está relacionado con el comando 0xab , "Prueba de interfaz":

  

Esto le ordena al controlador que pruebe el reloj del teclado y las líneas de datos. El resultado de la prueba se coloca en el búfer de salida [...]

A pesar de que ese comando devuelve cinco valores posibles, necesita tres bits de datos para una representación única.

    
pregunta cadaniluk

1 respuesta

4

Puedo ayudarte respondiendo la mayoría de tus preguntas:

  

El puerto de salida y el puerto de entrada de prueba contienen "entradas de prueba" (pág. 1-44):   [...] Supongo que los bits contienen el estado actual de cada línea, es decir, el reloj   y datos.

Correcto. Puede confirmar esto en el diagrama de bloques en su PDF de referencia (página 60 del PDF, marcado 1-38). En algún lugar tengo un esquema de PC / AT en papel, que muestra la misma respuesta, pero con más detalle.

  

¿Pero cuáles son esas "entradas de prueba" en absoluto? ¿Por qué conectar "entradas de prueba", como   para pruebas durante la inicialización o algo así, ¿para líneas de reloj y datos?

El protocolo de teclado de PC en bidireccional, utilizando controladores de colector abierto en ambas líneas desde la PC y desde el teclado. La PC (8042) debe poder leer el estado actual de las líneas, ya que el teclado puede reducirlas cuando la PC desea enviar datos al teclado. La situación más común es que la PC está recibiendo datos del código de escaneo del teclado, que ingresan al 8042 a través de esos pines de entrada.

En resumen, la PC debe poder leer (ingresar) el estado actual de esas señales, para probar el estado de la señal y también para recibir datos del teclado, así como para escribir (es decir, salida / unidad) la PC deseada. Estado de esas señales.

La misma situación se aplica con el protocolo I2C (ligeramente similar): el dispositivo maestro I2C debe poder leer el estado de ambas señales y para poder controlarlas. (Me estoy saltando algunos detalles aquí, más disponibles si es necesario) los lectores que piensan que el maestro I2C solo necesita monitorear la línea SDA deben leer sobre el estiramiento del reloj.

  

También, ¿qué significan "(salida)" y "(entrada)"?

En este contexto, salida = salida de 8042, que pasa a través del chip del controlador del colector abierto al conector del teclado; entrada = entrada a 8042, es decir, 8042 está leyendo el estado actual de la señal en el conector del teclado.

No puedo responder rápidamente a la pregunta sobre ese comando específico, pero espero que se use durante la POST, para confirmar que la interfaz del teclado funciona correctamente, es decir, la PC controla cada señal y confirma (a través de la ruta de prueba / entrada ) que cada señal ha cambiado de estado correctamente.

Agregado: si alguien está conectando un teclado de PC a un dispositivo que no es PC (por ejemplo, un sistema integrado) que no va a enviar ningún comando al teclado, eso simplifica lo que se necesita para controlar con éxito la interfaz. Anteriormente he asumido que está preguntando sobre el uso normal de la interfaz del teclado de la PC. Agregado: Personalmente, sospecho que deberíamos leer "Puerto de entrada de prueba" como "puerto de entrada y prueba", ya que esas señales realizan ambas funciones: datos de entrada desde el teclado y estado de la señal de prueba actual.     
respondido por el SamGibson

Lea otras preguntas en las etiquetas