Estaba echando un vistazo al pinout HDMI y pensé: ¿por qué usarían I 2 C para la comunicación pantalla-host? Mi pregunta aquí es sobre las métricas de diseño que conducen a esta elección.
HDMI es un estándar bastante reciente , mientras que I 2 C existe desde 1982 . I 2 C está diseñado para la comunicación de a bordo, chip a chip, además, el estándar permite múltiples dispositivos conectados al mismo bus. Un cable HDMI puede tener una longitud de unos 15 m , por lo que la señal I 2 C probablemente debería usar voltajes más altos de lo normal para evitar demasiado ruido, lo que agrega la necesidad de tranceceptores en ambos lados. Sobre lo de dispositivos múltiples, realmente no puedo pensar cómo conectaría más de un monitor a un solo puerto HDMI a menos que sea muy, muy poco estándar.
Realmente no soy un experto en protocolos de comunicación, pero creo que RS485, CAN o algún otro punto a punto, full duplex, un protocolo SNR más alto hubiera sido mejor.
Entonces, ¿por qué elegirían I 2 C?
nota: Sé que esto podría estar marcado como "basado en la opinión", espero que alguien pueda pensar / conocer algunas razones objetivas.
fuente
Respuestas:
El historial de DCC en HDMI va a través de DVI hasta VGA. Se implementa de una manera que simplemente puede conectar un chip de memoria eeprom estándar I²C en el lado del monitor, que es casi tan barato como la suciedad (AT24C01 y compatible).
No Los +5 voltios te cuentan una historia diferente. Lo que podrían hacer es una frecuencia de reloj más baja en el autobús. Los cables HDMI generalmente también están bien protegidos.
Estaba allí en DVI (que es compatible con HDMI) y funciona y es barato.
fuente
I2C es muy económico y sencillo de implementar por varias razones. A menudo se usa cuando solo se necesitan transferir unos pocos bytes. También es una interfaz muy estructurada, con un protocolo definido para quién debería hablar en un momento dado. I2C, debido a su antigüedad, también está bien respaldado entre los fabricantes de I2C (de ahí que sea económico y fácil de implementar). Debido a la baja velocidad de datos, SNR realmente no es un problema y 3.3V es un voltaje de bus típico y, si es necesario, puede filtrarse en gran medida.
Creo que es importante señalar CÓMO se usaría el I2C en un monitor. No solo I2C permitiría la comunicación a múltiples monitores, sino a múltiples dispositivos (por ejemplo, múltiples circuitos integrados) dentro de cada monitor, aunque es probable que haya un bus I2C separado para cada cable HDMI en la mayoría de los sistemas host. La interfaz I2C probablemente se usaría para establecer la conexión con el host, donde el host consultaría al monitor para averiguar cosas como su resolución, velocidad de cuadros, fabricante, nombre y probablemente otras cosas. I2C no sería lo suficientemente rápido como para transferir datos de imagen y sonido, esa información pasa a través de los cables TDMS, que serán de alta velocidad y baja SNR.
fuente
Es barato, funciona, ya estaba allí desde la era VGA, y no había una razón real para cambiarlo.
La buena ingeniería en el espacio del consumidor es barata y funciona lo suficientemente bien (lo que hace HDMI en su mayoría), nadie gana puntos por diseñar algo en ese espacio que usa chips adicionales, tiene comunicaciones serias y soporta complejas topologías multipunto para algo como esto.
El chip se lee una vez al abrir el enlace, por lo que incluso si solo puede registrar la cosa a velocidades de KHz, eso no es un problema para los cientos de bytes de datos. CAN o RS485 habrían requerido más acciones en una aplicación de consumo con costos muy limitados.
Sospecho que el material DDC se importó al por mayor sin siquiera pensarlo, ya que de hecho era la mayor parte de la sincronización de video (Displayport y HDMI son prácticamente idénticos eléctricamente), y la sincronización de video se puede rastrear fácilmente al menos hasta el video compuesto en CRT, porche delantero, video activo, porche trasero, intervalo de retroceso ... Parece muy familiar para cualquier tipo de televisión de la vieja escuela.
En realidad, este es un caso un tanto raro de un organismo de estándares que NO realiza cambios para eliminar la ventaja de un fabricante y, en cambio, opta por un estándar de facto que funciona. I2C no me habría sorprendido, pero con el bus bajado y el estado activo siendo lógico 1, o algo igualmente estúpido solo para evitar darle una ventaja a Phillips / NXP / Nexperia.
fuente