Discutimos los dos tipos de interfaces periféricas universales en sistemas integrados UART e I2S en el Capítulo Ⅰ . Ahora aprendamos sobre los buses I2C, ADC y CAN en el Capítulo Ⅱ .
I2C (Circuito interintegrado) es un bus semidúplex en serie de dos hilos desarrollado por Philips, que se utiliza principalmente para la comunicación entre chips a corta distancia y baja velocidad. Es un estándar de bus ampliamente utilizado en el campo del control de comunicaciones microelectrónicas. Es una forma especial de comunicación síncrona, con ventajas tales como menos líneas de interfaz, métodos de control simples y empaque de dispositivos pequeños.
I2C puede transmitir información entre nodos multimaestro y multisalve utilizando solo dos cables: SDA (datos en serie) y SCL (reloj en serie). La velocidad de transmisión de datos bidireccional en serie de 8 bits puede alcanzar los 100 Kbit/s en el modo estándar, los 400 Kbit/s en el modo rápido y los 3,4 Mbit/s en el modo de alta velocidad. La conexión del dispositivo se muestra en la Figura 1.
Figura 1 Conexiones de maestro a esclavo de bus I2C
Los datos en la línea SDA deben ser estables durante el período alto de la línea SCL. El estado ALTO o BAJO de la línea SDA solo puede cambiar cuando la señal del reloj en la línea SCL es baja.
Figura 2 La señal de datos sincrónicos
Condición de inicio : cuando SCL es ALTO y SDA salta de ALTO a BAJO, comienza la transmisión de datos.
Condición de parada : cuando SCL es ALTO y SDA salta de BAJO a ALTO, la transmisión de datos se detiene.
Tanto la condición de inicio como la condición de parada son emitidas por los dispositivos maestros. Después de que se genera la condición de inicio, el bus está en un estado ocupado. Y después de que se genera la condición de parada, el bus se libera y se encuentra en estado inactivo.
En estado inactivo, tanto SCL como SDA están en niveles altos. El proceso se muestra en la Figura 3 a continuación.
Figura 3 Condición de inicio y condición de parada
Señal de reconocimiento: después de completar la transmisión de 1 byte, es decir, dentro del noveno ciclo de reloj SCL, el maestro debe liberar el bus SDA y entregar el control del bus al esclavo. Debido al papel de la resistencia pull-up, el bus está en un nivel alto en este momento. Si el esclavo recibe correctamente los datos enviados por el maestro, bajará el SDA, indicando una señal de reconocimiento.
Señal de no reconocimiento : cuando se alcanza el noveno ciclo de reloj SCL, el SDA permanece alto, lo que indica una señal de no reconocimiento.
Se debe garantizar que cada byte sea de 8 bits. Al transmitir datos, el bit más alto (MSB) se transmite primero y cada byte transmitido debe ir seguido de un bit de reconocimiento (es decir, una trama tiene un total de 9 bits). Si hay una señal de no reconocimiento del esclavo dentro de un tiempo determinado, se considera automáticamente que el esclavo ha recibido los datos correctamente y el maestro envía una condición de parada para finalizar la comunicación. El formato de transmisión de datos se muestra en la Figura 4.
Figura 4 Formato de transmisión de datos
I2C generalmente se usa para la comunicación entre periféricos MCU o múltiples MCU. La interfaz I2C tiene las características de hardware simple y programación de software fácil.
En los sistemas de instrumentos, a menudo es necesario convertir las señales analógicas que cambian continuamente detectadas, como la temperatura, la presión, el caudal, la velocidad y la intensidad de la luz, en señales digitales discretas antes de que puedan ingresarse en una computadora para su procesamiento. Estas señales analógicas se convierten en señales eléctricas (generalmente señales de voltaje) a través de sensores y, después de ser amplificadas por amplificadores, necesitan realizar cierto procesamiento para convertirse en señales digitales. El dispositivo que convierte señales analógicas a digitales se conoce comúnmente como convertidor analógico a digital (ADC), abreviado como A/D.
El proceso de conversión A/D es un proceso de muestreo, retención, cuantificación y codificación. La idea básica de ADC es comparar el voltaje analógico de entrada con el voltaje de referencia (directa o indirectamente) y convertirlo en una salida digital. Hay tres tipos de ADC: tipo de comparación paralela, tipo de aproximación sucesiva y tipo de integración doble.
Al usar ADC, las preocupaciones más importantes son la precisión de la conversión y el tiempo de conversión. La precisión de conversión está influenciada principalmente por factores externos como la estabilidad del voltaje de la fuente de alimentación y el voltaje de referencia, la estabilidad del amplificador operacional y la temperatura ambiental. Los factores afectados por el propio chip incluyen la resolución, el error de cuantificación, el error relativo, el error lineal, etc.
El nombre completo del bus CAN es Controller Area Network. Es un bus serial, síncrono y semidúplex. Desarrollado por BOSCH Company en Alemania, esta interfaz periférica es uno de los buses de campo más utilizados a nivel internacional.
Las características del bus CAN son las siguientes:
El protocolo de comunicación CAN es el siguiente:
CAN especifica un total de 5 tipos de tramas, también conocidas como paquetes. Las tramas de datos son las más importantes y complejas en la comunicación CAN. La trama de datos comienza con un bit explícito (0 lógico) y termina con siete bits implícitos consecutivos (1 lógico).
Acceso múltiple con detección de portadora (CSMA): cada nodo debe escuchar el bus antes de intentar enviar un mensaje. Solo cuando el bus está inactivo se puede enviar.
Detección de Colisiones+Arbitraje en Prioridad de Mensaje (CD+AMP): Resuelve colisiones a través de prioridad de mensaje preprogramada por arbitraje de bit, con prioridad de mensaje ubicada en el dominio de identificación de cada mensaje. Los mensajes con identificadores de mayor prioridad siempre pueden obtener acceso al bus, lo que significa que el último mensaje en el identificador que permanece lógicamente alto seguirá transmitiéndose porque tiene una prioridad más alta.
Figura 5 Trama de datos del bus CAN
CAN estándar : solo se utiliza un identificador de 11 bits para determinar la prioridad de un mensaje. Cuanto menor sea el valor de este campo, mayor será la prioridad. Como se muestra en la Figura 6.
Figura 6 Identificador CAN estándar de 11 bits
CAN extendido : un identificador de 29 bits. Como se muestra en la Figura 7.
Figura 7 Identificador CAN extendido de 29 bits
El bus CAN utiliza principalmente CAN de baja velocidad (es decir, estándar ISO11898-3) en el campo de control industrial y utiliza CAN de alta velocidad de 125 Kbps en el campo automotriz. El protocolo CAN se usa ampliamente en todo tipo de aplicaciones de la industria automotriz, incluidos automóviles de pasajeros, camiones pesados y vehículos de usos múltiples, así como también vehículos agrícolas.
La mayoría de los módulos RF-star están integrados con periféricos UART, ADC, I2C e I2S en hardware. Debido a las necesidades del mercado, UART es uno de nuestros modos de comunicación más importantes en el software. Casi todos los módulos BLE y Wi-Fi de RF-star basados en TI, Silicon Labs, Nordic, Realtek y nuestros circuitos integrados de desarrollo propio cuentan con el protocolo de puerto serie UART para una transmisión transparente a fin de facilitar el desarrollo de integración del final productos, acorte el ciclo de desarrollo, ahorre el tiempo y los costos de calificación del certificado con módulos certificados, y más flexibilidad con más diseños de módulo RF. Por ejemplo, estos módulos inalámbricos son muy bienvenidos:
RF-BM-2642B1 , RF-BM-BG22A1 , RF-BM-ND04 , RSBRS02ABR , RF-WM-20CMB1
Shenzhen RF-star Technology Co., Ltd. (RF-star) es una empresa de alta tecnología que se centra en dispositivos de radiofrecuencia y ha sido el IDH oficial de terceros de Texas Instruments durante más de una década. RF-star proporciona módulos inalámbricos IoT y un conjunto completo de soluciones, que incluyen BLE, Wi-Fi, ZigBee, Thread, Matter, Wi-SUN, Sub-1G, etc. Para obtener más información, visite el sitio web oficial https: // www.rfstarot.com/ o contáctenos en info@szrfstar.com.