En los electrodomésticos modernos, la electrónica industrial y varios equipos de telecomunicaciones, a menudo se pueden encontrar soluciones similares, aunque los productos pueden no estar prácticamente relacionados. Por ejemplo, casi todos los sistemas incluyen lo siguiente:
- una cierta unidad de control "inteligente", que en la gran mayoría de los casos es una microcomputadora de un solo chip;
- componentes de uso general como búfer LCD, RAM, puertos de E/S, EEPROM o convertidores de datos dedicados;
- componentes específicos que incluyen sintonización digital y circuitos de procesamiento de señales para sistemas de video y radio.
¿Cómo optimizar su aplicación?
Para aprovechar al máximo estas soluciones comunes en beneficio de los diseñadores y fabricantes, así como para mejorar el rendimiento general de varios hardware y simplificar los componentes de circuitos aplicados, Philips se propuso desarrollar el bidireccional de dos cables más simple. bus que proporciona el inter-chip más productivocontrol. Este bus proporciona transferencia de datos a través de la interfaz I2C.
Hoy en día, la gama de productos del fabricante incluye más de 150 CMOS, así como dispositivos bipolares compatibles con I2C y diseñados para trabajar en cualquiera de las categorías enumeradas. Cabe señalar que la interfaz I2C está integrada inicialmente en todos los dispositivos compatibles, por lo que pueden comunicarse fácilmente entre sí mediante un bus especial. Debido al uso de una solución de diseño de este tipo, fue posible resolver una gran cantidad de problemas de interconexión de varios equipos, lo cual es bastante típico para el desarrollo de sistemas digitales.
Beneficios clave
Incluso si observa una breve descripción de las interfaces UART, SPI, I2C, puede res altar las siguientes ventajas de este último:
- Para trabajar, solo necesita dos líneas: sincronización y datos. Cualquier dispositivo que se conecte a un bus de este tipo puede direccionarse mediante programación a una dirección completamente única. En cada momento existe una relación simple que permite a los maestros actuar como maestro-emisor o maestro-receptor.
- Este bus brinda la capacidad de tener varios maestros a la vez, brindando todos los medios necesarios para determinar colisiones, así como el arbitraje para evitar la corrupción de datos en caso de que dos o más maestros comiencen a transmitir información simultáneamente. En modo estándarsolo se proporciona transmisión de datos en serie de 8 bits a una velocidad de no más de 100 kbps, y en modo rápido este umbral se puede aumentar cuatro veces.
- Los chips utilizan un filtro especial integrado que suprime eficazmente las sobretensiones y garantiza la máxima integridad de los datos.
- La cantidad máxima posible de chips que se pueden conectar a un bus está limitada únicamente por su capacidad máxima posible de 400 pF.
Beneficios para constructores
La interfaz I2C, así como todos los chips compatibles, pueden acelerar significativamente el proceso de desarrollo, desde un diagrama funcional hasta su prototipo final. Al mismo tiempo, debe tenerse en cuenta que debido a la posibilidad de conectar dichos microcircuitos directamente al bus sin usar todo tipo de circuitos adicionales, se proporciona espacio para una mayor modernización y modificación del sistema prototipo al desconectar y conectar varios dispositivos del autobús.
Hay muchos beneficios que hacen que la interfaz I2C se destaque. La descripción, en particular, le permite ver las siguientes ventajas para los constructores:
- Los bloques en el diagrama funcional corresponden completamente a microcircuitos y, al mismo tiempo, se proporciona una transición bastante rápida de funcional a fundamental.
- No es necesario desarrollar interfaces de bus porque el bus ya está integrado de forma nativa en chips dedicados.
- Protocolos de comunicación integrados yEl direccionamiento de dispositivos permite que el sistema esté completamente definido por software.
- Los mismos tipos de microcircuitos, si es necesario, se pueden utilizar en aplicaciones completamente diferentes.
- El tiempo total de desarrollo se reduce significativamente debido a que los diseñadores pueden familiarizarse rápidamente con los bloques funcionales más utilizados, así como con varios microcircuitos.
- Si lo desea, puede agregar o quitar chips del sistema y, al mismo tiempo, no tener mucho efecto en otros equipos conectados al mismo bus.
- El tiempo total de desarrollo de software se puede reducir significativamente al permitir una biblioteca de módulos de software reutilizables.
Entre otras cosas, vale la pena señalar el procedimiento extremadamente simple para diagnosticar fallas que han ocurrido y su posterior depuración, que distingue a la interfaz I2C. La descripción sugiere que, si es necesario, incluso las desviaciones menores en el funcionamiento de dicho equipo pueden controlarse instantáneamente sin ninguna dificultad y, en consecuencia, pueden tomarse las medidas apropiadas. También vale la pena señalar que los diseñadores obtienen soluciones especiales que, en particular, son bastante atractivas para varios equipos y sistemas portátiles que proporcionan energía de batería mediante la interfaz I2C. La descripción en ruso también indica que su uso le permite brindar las siguientes ventajas importantes:
- Grado de resistencia suficientemente alto a cualquier interferencia emergente.
- Al finalbajo consumo de energía.
- Rango de tensión de alimentación más amplio.
- Amplio rango de temperatura.
Beneficios para los tecnólogos
Vale la pena señalar que no solo los diseñadores, sino también los tecnólogos han comenzado recientemente a utilizar una interfaz I2C especializada con bastante frecuencia. La descripción en ruso indica una gama bastante amplia de ventajas que brinda esta categoría de especialistas:
- Un bus serie estándar de dos hilos con esta interfaz minimiza las interconexiones entre los circuitos integrados, lo que significa que se requieren menos pines y menos pistas, lo que hace que las PCB sean menos costosas y mucho más pequeñas.
- Una interfaz I2C LCD1602 completamente integrada o alguna otra opción elimina por completo la necesidad de decodificadores de direcciones y otra pequeña lógica externa.
- Es posible usar varios maestros en un bus de este tipo al mismo tiempo, lo que acelera significativamente las pruebas y la posterior configuración del equipo, ya que el bus se puede conectar a una computadora de línea de montaje.
- La disponibilidad de circuitos integrados compatibles con esta interfaz en paquetes VSO, SO y DIL personalizados puede reducir significativamente los requisitos de tamaño del dispositivo.
Esta es solo una breve lista de las ventajas que distinguen la interfaz I2C del LCD1602 y otras. Además, los chips compatibles pueden aumentar significativamente la flexibilidad del sistema utilizado, proporcionandodiseño extremadamente simple de varias opciones de equipo, así como actualizaciones relativamente fáciles para apoyar aún más el desarrollo al nivel actual. Así, es posible desarrollar toda una familia de equipos diferentes, tomando como base un determinado modelo básico.
Se puede realizar una mayor modernización del equipo y la ampliación de sus funciones mediante una conexión estándar al bus del microcircuito correspondiente utilizando la interfaz Arduino 2C o cualquier otra de la lista disponible. Si se requiere una ROM más grande, solo será suficiente seleccionar otro microcontrolador con una ROM aumentada. Dado que los chips actualizados pueden reemplazar por completo a los antiguos si es necesario, puede agregar fácilmente nuevas funciones al equipo o aumentar su rendimiento general simplemente desconectando los chips obsoletos y luego reemplazándolos con equipos más nuevos.
ACCESO.autobús
Debido al hecho de que el bus tiene una naturaleza de dos hilos, así como la posibilidad de direccionamiento de programas, una de las plataformas más ideales para ACCESS.bus es la interfaz I2C. La especificación (la descripción en ruso se presenta en el artículo) de este dispositivo lo convierte en una alternativa mucho más económica a la interfaz RS-232C que se usaba activamente anteriormente para conectar varios periféricos a computadoras usando un conector estándar de cuatro pines.
Introducción a las especificaciones
Para aplicaciones modernasControl de 8 bits, que utiliza microcontroladores, es posible establecer algunos criterios de diseño:
- el sistema completo incluye principalmente un microcontrolador y otros periféricos, incluida la memoria y varios puertos de E/S;
- el costo total de combinar diferentes dispositivos dentro de un sistema debe minimizarse tanto como sea posible;
- el sistema que controla las funciones no prevé la necesidad de proporcionar una transferencia de información de alta velocidad;
- la eficiencia total depende directamente del equipo elegido, así como de la naturaleza del bus de conexión.
Para diseñar un sistema que cumpla completamente con los criterios enumerados, debe usar un bus que usará la interfaz serial I2C. Aunque el bus serial no tiene el ancho de banda del bus paralelo, requiere menos conexiones y menos pines de chip. Al mismo tiempo, no olvide que el bus no solo incluye cables de conexión, sino también varios procedimientos y formatos necesarios para garantizar la comunicación dentro del sistema.
Los dispositivos que se comunican mediante emulación de software de la interfaz I2C o el bus correspondiente deben tener un protocolo específico que le permita prevenir diversas posibilidades de colisiones, pérdidas o bloqueos de información. Los dispositivos rápidos deberían poder comunicarse con los lentos y el sistema no debería depender dedel equipo conectado a él, ya que de lo contrario no se podrán utilizar todas las mejoras y modificaciones. También es necesario desarrollar un procedimiento con la ayuda del cual sea realista establecer qué dispositivo en particular está actualmente proporcionando control de bus y en qué momento. Además, si se conectan diferentes dispositivos con diferentes frecuencias de reloj al mismo bus, debe decidir la fuente de su sincronización. Todos estos criterios los cumple la interfaz I2C para el AVR y cualquier otro de esta lista.
Concepto principal
El bus I2C puede admitir cualquier tecnología de chip utilizada. La interfaz I2C LabVIEW y otras similares prevén el uso de dos líneas para transferir información: datos y sincronización. Cualquier dispositivo conectado de esta manera es reconocido por su dirección única, independientemente de si es un búfer LCD, un microcontrolador, una memoria o una interfaz de teclado, y puede actuar como un receptor o un transmisor, según el destino de este equipo.
En la gran mayoría de los casos, el búfer LCD es un receptor estándar y la memoria no solo puede recibir, sino también transmitir varios datos. Entre otras cosas, según el proceso de movimiento de la información, los dispositivos se pueden clasificar en esclavos y maestros.
En este caso, el maestro es el dispositivo que inicia la transferencia de datos y también generaseñales de sincronización. En este caso, los dispositivos direccionables se considerarán esclavos en relación con él.
La interfaz de comunicación I2C prevé la presencia de varios maestros a la vez, es decir, más de un dispositivo capaz de controlar el bus puede conectarse a él. La capacidad de usar más de un microcontrolador en el mismo bus significa que se puede reenviar más de un maestro en un momento dado. Para eliminar el caos potencial que corre el riesgo de aparecer cuando surge una situación de este tipo, se ha desarrollado un procedimiento de arbitraje especializado que utiliza la interfaz I2C. Los expansores y otros dispositivos permiten conectar dispositivos al bus de acuerdo con la llamada regla de cableado.
Generar la señal del reloj es responsabilidad del maestro, y cada maestro genera su propia señal durante la transferencia de datos, y solo puede cambiar más tarde si es "tirada" por un esclavo lento u otro maestro cuando ocurre una colisión
Parámetros generales
Tanto SCL como SDA son líneas bidireccionales que se conectan a una fuente de alimentación positiva con una resistencia pull-up. Cuando el neumático está absolutamente libre, cada línea está en una posición alta. Las etapas de salida de los dispositivos que están conectados al bus deben ser de drenaje abierto o de colector abierto para que se pueda proporcionar la función cableada Y. La información a través de la interfaz I2C se puede transmitir a una velocidad de no más de 400 kbps.modo rápido, mientras que la velocidad estándar no supera los 100 kbps. El número total de dispositivos que se pueden conectar simultáneamente al bus depende de un solo parámetro. Esta es la capacitancia de la línea, que no supera los 400 pf.
Confirmación
La confirmación es un procedimiento obligatorio en el proceso de transferencia de datos. El maestro genera el pulso de sincronización apropiado mientras que el transmisor libera la línea SDA durante este pulso de sincronización como reconocimiento. Después de eso, el receptor debe asegurarse de que la línea SDA se mantenga estable durante el estado alto del reloj en un estado bajo estable. En este caso, asegúrese de tener en cuenta los tiempos de preparación y espera.
En la gran mayoría de los casos, es obligatorio que el receptor direccionado genere un acuse de recibo después de cada byte recibido, con la única excepción cuando el inicio de la transmisión incluye una dirección CBUS.
Si el receptor-esclavo no tiene forma de enviar la confirmación de su propia dirección, la línea de datos debe dejarse alta, y luego el maestro podrá emitir una señal de "Parada", que interrumpirá el envío de toda la informacion. Si se ha confirmado la dirección, pero el esclavo no puede recibir más datos durante mucho tiempo, el maestro también debe interrumpir el envío. Para hacer esto, el esclavo no reconoce el siguiente byte recibido y simplemente deja la línea alto, lo que hace que el maestro genere una señal de parada.
Si el procedimiento de transferencia prevé la presencia de un maestro-receptor, entonces en este caso debe informar al esclavo sobre el final de la transmisión, y esto se hace sin reconocer el último byte recibido. En este caso, el transmisor-esclavo libera inmediatamente la línea de datos para que el maestro pueda emitir una señal de "Parada" o repetir la señal de "Inicio" nuevamente.
Para verificar si el equipo funciona, puede intentar ingresar ejemplos estándar de bocetos para la interfaz I2C en Arduino, como en la foto de arriba.
Arbitraje
Los maestros pueden comenzar a enviar información solo después de que el bus esté completamente libre, pero dos o más maestros pueden generar una señal de inicio en el tiempo de espera mínimo. Esto eventualmente da como resultado una señal específica de "Inicio" en el autobús.
El arbitraje funciona en el bus SDA mientras que el bus SCL está alto. Si uno de los maestros comienza a transmitir un nivel bajo en la línea de datos, pero al mismo tiempo el otro está alto, entonces este último se desconecta completamente de él, porque el estado SDL no se corresponde con el estado alto de su línea interna..
El arbitraje puede continuar durante varios bits. Debido al hecho de que la dirección se transmite primero y luego los datos, el arbitraje puede durar hasta el final de la dirección, y si los maestros se dirigiránel mismo dispositivo, entonces diferentes datos también participarán en el arbitraje. Debido a este esquema de arbitraje, no se perderán datos si ocurre alguna colisión.
Si el maestro pierde el arbitraje, puede emitir pulsos de reloj en SCL hasta el final del byte, durante el cual se perdió el acceso.