Protocolos de comunicación para Internet de las cosas

Protocolos de comunicación para Internet de las cosas



El propósito de la comunicación es transmitir información.

Para lograr la transmisión de datos entre dispositivos, debemos considerar encontrar el método de conexión más adecuado entre los objetos. Estos métodos de comunicación tienen sus propias ventajas y desventajas y son adecuados para diferentes escenarios de aplicación.

Los métodos de comunicación de Internet de las cosas se pueden dividir aproximadamente en las siguientes categorías

Por favor agregue una descripción de la imagen

La comunicación por cable de Internet de las cosas es el método de comunicación con líneas físicas como Ethernet y cable óptico. El estándar IEEE802.3 formula el estándar de Ethernet. Ethernet utiliza par trenzado como medio y puede cubrir un rango de 200 metros. La comunicación por cable puede garantizar la calidad, el retraso y el costo de la comunicación, y también puede funcionar normalmente en entornos hostiles, pero los problemas de alcance de comunicación pequeño y portabilidad inconveniente no se pueden resolver.

Existen muchas tecnologías de comunicación inalámbrica para el Internet de las cosas, que se dividen principalmente en dos categorías: una son las tecnologías de comunicación de corta distancia como Zigbee, WiFi, Bluetooth y Z-wave; la otra es LPWAN (low-power Wide- Red de área, red de área amplia de baja potencia), es decir, tecnología de comunicación de red de área amplia. LPWA se puede dividir en dos categorías: una es LoRa, SigFox y otras tecnologías que funcionan en espectro sin licencia; la otra es tecnología de comunicación celular 2/3/4G que funciona en espectro con licencia y es compatible con 3GPP, como EC-GSM, LTE Cat-m, NB-IoT, etc. Los servicios de alta velocidad utilizan principalmente tecnologías 3G y 4G, los servicios de velocidad media utilizan principalmente tecnología GPRS. Los servicios de tarifas bajas actualmente no se satisfacen con una buena tecnología celular, pero tiene una variedad de escenarios de aplicación, en muchos casos solo puede ser soportado por tecnología GPRS.

Por favor agregue una descripción de la imagen
Aquí podemos ver que Lora y NB-IOT son bastante similares. La principal diferencia es que el espectro de Lora es libre en algunos segmentos (puede ser autoconstruido), mientras que NB-IOT necesita ejecutarse en el operador. Para requisitos de transmisión de larga distancia que requieren transmisión de video, solo 4G+WIFI es adecuado para redes.

La comunicación inalámbrica también se puede dividir en conexión inalámbrica de espectro sin licencia y conexión inalámbrica de espectro con licencia, es decir, pagando por alquilar la red.
La conexión inalámbrica de espectro licenciado es nuestra comunicación celular común, que es la red del operador
1G: AMPS
2G: TDMA, CDMA, GSM...
3G: UMTS, HSDPA, WCDMA...
4G: LTE, EC-GSM, eMTC...

La conexión inalámbrica de espectro sin licencia se puede dividir en comunicación de corto alcance y
comunicación de área amplia)
.

Amplia área de comunicación
Lora

1. Comunicación serie UART

La abreviatura en inglés de comunicación serie es UART (Universal Asynchronous Receiver Transmitter) y su nombre completo es Universal Asynchronous Receiver Transmitter.

1.1 Comunicación serie

Por favor agregue una descripción de la imagen

Los dos dispositivos están conectados en serie con un cable. El emisor convierte los datos en una secuencia binaria en un extremo de la línea, envía la señal 01 secuencialmente con niveles alto y bajo, y el receptor lee los niveles alto y bajo de la señal. línea en el otro extremo de la línea La señal corresponde a la secuencia 01 convertida en binaria. Este es el concepto más básico de la comunicación serial,

1.2 Transceptor asíncrono

inserte la descripción de la imagen aquí
Si agrega una línea a los dos dispositivos en la imagen de arriba, de modo que el dispositivo izquierdo también pueda convertirse en el receptor, y el dispositivo derecho también pueda convertirse en el remitente, entonces para los dispositivos izquierdo y derecho, el envío y la recepción se pueden hacer en dos en línea al mismo tiempo, en este momento, el envío y la recepción son asíncronos.

1.3 Tasa de baudios

La velocidad en baudios es el número binario transmitido por segundo de 0 y 1. La velocidad en baudios del receptor y del emisor debe ser la misma, de lo contrario se producirán caracteres ilegibles.Por favor agregue una descripción de la imagen

Debido a que es inconveniente asegurarse de que la tasa de baudios del transceptor sea constante cada vez, algunos protocolos de comunicación basados ​​en reloj, como el protocolo de bus I2C y el protocolo de bus SPI, utilizan la línea de reloj para garantizar la sincronización de la transmisión y recepción de información.

1.4 Marco de datos del protocolo de comunicación en serie

En la comunicación en serie, el marco de datos más básico incluye al menos un bit de inicio + un bit de datos + un bit de parada (el marco de verificación es opcional).
La dirección de transmisión de datos es generalmente el bit más significativo MSB.En
el puerto serie UART, RX representa el extremo receptor de la información y TX representa el extremo emisor de la información.

1.5 Ventajas y desventajas

1.5.1 Ventajas

(1) Hardware simple
(2) Baja latencia
(3) Conexión directa

1.5.2 Desventajas

(1) Comunicación punto a punto, no adecuada para comunicaciones de red complejas
(2) La distancia y la velocidad de comunicación están limitadas por la longitud y la calidad del cable serie
(3) Falta de acuerdo, las partes de la comunicación deben definir su propia formato de mensaje y reglas de análisis

Dos , I2C

2.1 yo 2 c

I²C (Circuito Interintegrado) es un protocolo de bus desarrollado y diseñado por Philips en 1982. El bus I²C admite comunicación de corta distancia entre dispositivos y se utiliza como interfaz entre el procesador y algunos dispositivos periféricos. Solo necesita dos líneas de señal para completar el intercambio de información.

2.2 Yo 2 C

Por favor agregue una descripción de la imagen

I²C requiere al menos dos líneas, similar a los puertos seriales asíncronos, pero puede admitir múltiples dispositivos esclavos. A diferencia de SPI, I²C puede admitir sistemas multimaestro (mul-maestro), lo que permite múltiples maestros y cada El maestro puede comunicarse con todos los esclavos (maestros no puede comunicarse a través de I²C, y cada maestro solo puede usar el bus I²C a su vez). El maestro se refiere al dispositivo que inicia la transmisión de datos y genera una señal de reloj en el bus para impulsar la transmisión, mientras que los dispositivos de comunicación direccionados son todos esclavos.

La comunicación I²C requiere solo dos buses bidireccionales: línea de datos en serie SDA y línea de reloj en serie SCL

2.3 Validez de los datos

Los datos en la línea SDA deben permanecer estables durante el período alto del reloj, y el estado alto o bajo de SDA solo se puede cambiar cuando la señal del reloj en la línea SCL es baja.

2.4 Condición de inicio S y condición de parada P

Condición de inicio S: cuando SCL es alto, SDA cambia de alto a bajo;

Condición de parada P: cuando SCL es alto, SDA cambia de bajo a alto.

Por favor agregue una descripción de la imagen

Las condiciones de inicio y detención generalmente las genera el host. El bus está en estado ocupado después de la condición de inicio, y el bus está en estado inactivo nuevamente después de un cierto período de tiempo después de la condición de parada.

2.5 Formato de datos

Los datos transmitidos por I2C están en bytes, y cada byte debe tener 8 bits, y se puede transmitir cualquier número de bytes. El formato de datos de I2C tiene las siguientes características:

(1) Cada byte debe ir seguido de un bit de respuesta ACK ( Por favor agregue una descripción de la imagen
ACK en SCL), por lo que se necesitan 9 bits para transmitir realmente un byte (8 bits) de datos.

(2) El bit más alto del byte se transmite primero en SDA. De la figura anterior, podemos ver que el orden de envío del número de dígitos es Bit7-Bit0 de izquierda a derecha.

Después de recibir un byte de datos transmitidos, el receptor de datos debe dar una respuesta. En este momento, en el noveno reloj, el remitente suelta el control de línea SDA a la derecha, sube el nivel SDA y es controlado por el receptor. El receptor indica que ha recibido con éxito los datos de 8 bits y un byte, y luego tira SDA a un nivel bajo, es decir, la señal ACK, lo que indica una respuesta

2.6 Unidad de datos de protocolo PDU

Por favor agregue una descripción de la imagen

2.7 Ventajas y desventajas

2.7.1 Ventajas

(1) El bus I 2 C puede conectar múltiples dispositivos, utilizando una dirección única para el direccionamiento
(2) Adecuado para requisitos de comunicación de velocidad media
(3) Menor ocupación de recursos de hardware

2.7.2 Desventajas

(1) La comunicación I 2 C está limitada por la distancia y es adecuada para comunicaciones de corta distancia
(2) Es necesario configurar la dirección I2C del dispositivo
(3) El rendimiento en tiempo real es deficiente

3. SPI

3.1 SPI

SPI es la abreviatura de Serial Peripheral Interface. Es una tecnología de interfaz serial síncrona introducida por Motorola, que es un bus de comunicación síncrono de alta velocidad y dúplex completo. El protocolo SPI se utiliza principalmente en sistemas de comunicación de corta distancia, especialmente en sistemas integrados, y muchos periféricos de chip, como controladores de pantalla LED, chips de interfaz de E/S, transceptores UART, etc., utilizan ampliamente el protocolo de bus SPI.

3.2 Principio de comunicación

El principio de comunicación de SPI es muy simple, funciona en modo maestro-esclavo, este modo generalmente tiene un dispositivo maestro y uno o más
dispositivos esclavos. En inglés, el dispositivo maestro generalmente se llama Maestro y el dispositivo esclavo se llama Esclavo.
Por favor agregue una descripción de la imagen
SPI teóricamente requiere 4 cables para transmisión de datos bidireccional y 3 cables para transmisión unidireccional: Los
4 cables teóricos de SPI son los siguientes Cuatro tipos:
Por favor agregue una descripción de la imagen

3.3 Validez de los datos

Por favor agregue una descripción de la imagen

3.4 Ventajas y desventajas

3.4.1 Ventajas

(1) Admite comunicación full-duplex, el envío y la recepción de datos se pueden realizar al mismo tiempo.
(2) Comunicación simple
(3) Velocidad de transmisión de datos rápida

3.4.2 Desventajas

(1) El cableado es complicado y requiere al menos cuatro cables
(2) En el caso de varios esclavos, cada esclavo debe conectarse a una línea de señal de selección de chip CS, lo que desperdicia los recursos de E/S del chip.

4. Comunicación de enchufe

4.1 Enchufe

Socket es una capa de abstracción entre la capa de aplicación y la capa de transporte. Abstrae las operaciones complejas de la capa TCP/IP en varias interfaces simples para que la capa de aplicación llame para realizar la comunicación del proceso en la red. Socket se originó en UNIX.Bajo la idea de que todo en UNIX es un archivo, la comunicación entre procesos se denomina descriptor de archivo (file descriptor).Socket es una implementación del modo "abrir-leer/escribir-cerrar".Servidores y clientes Cada extremo mantiene un "archivo".Después de establecer y abrir la conexión, puede escribir contenido en el archivo para que la otra parte lo lea o lea el contenido de la otra parte, y cerrar el archivo cuando finalice la comunicación.

Además, la ubicación del Socket del que solemos hablar es la siguiente:
Por favor agregue una descripción de la imagen

4.2 TCP y UDP

Hay muchos tipos de enchufes en el mundo, como la dirección de Internet DARPA (enchufe de Internet), el nombre de la ruta del nodo local (enchufe Unix), la dirección CCITT X.25 (enchufe X.25), etc. Solo presentamos el primer tipo de enchufe: el enchufe de Internet, que es el más representativo, el clásico y el más utilizado. Cuando nos referimos a enchufes en el futuro, nos referimos a enchufes de Internet. Dependiendo de cómo se transfieran los datos, los enchufes de Internet se pueden clasificar en dos tipos.

4.2.1 Conector de formato de transmisión SOCK_STREAM

Stream Sockets (Stream Sockets), también conocido como "conectores orientados a la conexión", es un flujo de datos de comunicación bidireccional fiable, los datos pueden llegar a otra computadora sin errores y, si se dañan o se pierden, se pueden reiniciar. . Sus características:
(1) Los datos no desaparecerán durante la transmisión;
(2) Los datos se transmiten en orden;
(3) El envío y la recepción de datos no son sincrónicos (algunos tutoriales también dicen "no hay límite de datos").
Utiliza el protocolo TCP (The Transmission Control Protocol, Transmission Control Protocol), el protocolo TCP controlará sus datos para que lleguen en orden y no haya ningún error.
El protocolo http utilizado por los navegadores se basa en sockets orientados a la conexión, porque se debe garantizar que los datos sean correctos, de lo contrario, el HTML cargado no se analizará.

4.2.2 Conector de formato de datagrama SOCK_DGRAM

Los sockets de datagramas (Datagram Sockets) también se denominan "sockets sin conexión". La computadora solo transmite los datos y no verifica los datos.Si los datos se dañan durante la transmisión o no llegan a otra computadora, no hay forma de remediarlo. En otras palabras, si los datos son incorrectos, son incorrectos y no se pueden retransmitir. Debido a que los sockets de datagramas realizan menos trabajo de verificación, son más eficientes que los sockets de formato de flujo en términos de eficiencia de transmisión. Tiene las siguientes características:
(1) enfatiza la transmisión rápida en lugar del orden de transmisión;
(2) los datos transmitidos pueden perderse o dañarse;
(3) limita el tamaño de cada transmisión de datos;
(4) el envío y la recepción de datos son
datos sincrónicos El socket del paquete también usa el protocolo IP para el enrutamiento, pero no usa el protocolo TCP, sino que usa el protocolo UDP (Protocolo de datagramas de usuario, Protocolo de datagramas de usuario).
QQ video chat y chat de voz usan SOCK_DGRAM para transmitir datos, porque primero se debe garantizar la eficiencia de la comunicación y se debe minimizar la demora, mientras que la corrección de los datos es secundaria. Incluso si se pierde una pequeña parte de los datos, el video y el audio Puede ser un análisis normal, como máximo el ruido o el ruido no tendrán un impacto sustancial en la calidad de la comunicación.

4.3 Proceso de comunicación de socket

Socket garantiza la comunicación entre diferentes ordenadores, es decir, la comunicación en red. Para sitios web, el modelo de comunicación es entre servidor y cliente. Se establece un objeto Socket en ambos extremos y luego los datos se transmiten a través del objeto Socket. Por lo general, el servidor está en un bucle infinito, esperando una conexión de un cliente. El siguiente es un diagrama de secuencia TCP orientado a la conexión:
Por favor agregue una descripción de la imagen

4.4 Ventajas y desventajas

4.4.1 Ventajas

(1) Es adecuado para la comunicación en red y puede comunicarse entre diferentes dispositivos
(2) El zócalo TCP proporciona una transmisión de datos confiable para garantizar la precisión y la secuencia de los datos
(3) Admite múltiples lenguajes de programación

4.4.2 Desventajas

(1) La programación es más complicada y necesita lidiar con la conexión y desconexión, etc.
(2) Implica la configuración de direcciones IP y puertos, y necesita configurarse correctamente para establecer una conexión de comunicación
(3) Necesita para ser utilizado en un entorno de red y no es adecuado para la conexión directa a hardware físico superior

5. MQTT

MQTT es un protocolo de capa de aplicación, que está al mismo nivel que el Protocolo de transferencia de hipertexto (HTTP).

5.1 Transporte de telemetría de cola de mensajes MQTT

La comunicación de socket original no puede garantizar que la información pueda llegar al receptor, y la confiabilidad de los datos, incluido el rendimiento en tiempo real, tendrá un cierto impacto.Por lo tanto, se necesita un protocolo de comunicación de red en este momento para garantizar la transmisión de información y la calidad. de servicio. El protocolo de red básico de Internet es TCP/IP. MQTT (Message Queuing Telemetry Transport) se basa en la pila de protocolos TCP/IP y se ha convertido en el estándar para la comunicación IoT.

5.2 Modelo de publicación y suscripción de MQTT

Hay varias funciones en la red IOT basadas en el protocolo MQTT: Por favor agregue una descripción de la imagen
(1) El editor es responsable de publicar mensajes, como sensores que recopilan datos y luego envían información actual del sensor.

(2) Suscriptor El suscriptor se suscribe al mensaje y realiza las acciones correspondientes de acuerdo con los datos del sensor obtenidos.

(3) *Servidor Servidor * Estación de transferencia de información, responsable de entregar información de los editores a los suscriptores.

La implementación de MQTT en el lado del cliente se llama MQTT Client, y la implementación en el lado del servidor se llama MQTT Broker.

Cada microcomputadora de un solo chip (Cliente) solo mantiene una conexión larga con la PC (Servidor) y le dice al Servidor si hay algún dato.Si hay otras microcomputadoras de un solo chip o PC que se comunican con esta microcomputadora de un solo chip, puede solo se puede obtener a través de este Servidor Al mismo tiempo, también se debe tener en cuenta que este El proceso de adquisición de datos es pasivo, la microcomputadora de un solo chip no sondea activamente, todo el proceso es asincrónico, los datos se transmiten y el La función de devolución de llamada se llama automáticamente, por lo que el servidor se convierte en el único canal para que la microcomputadora de un solo chip se comunique con el dispositivo periférico.Este mecanismo hace que todo el proceso sea más liviano y eficiente.

5.3 Flujo del protocolo de comunicación

Por favor agregue una descripción de la imagen
El marco de datos El Marco de datos utilizado para la comunicación se compone principalmente de dos partes: ID de tema y Mensaje.

No hay forma de que los editores y los suscriptores perciban directamente la existencia del otro. Los suscriptores y los editores pueden obtener los datos que desean a través del número de tema ID de tema en el marco de datos Marco de datos.

Para dar un ejemplo de control remoto de las luces LED para encender y apagar:

(1) Conecte el ESP32 y la PC a la misma LAN y obtenga la dirección IP de la PC

(2) Inicie MQTT Broker en la PC y encienda el modo Servidor

(3) ESP32 pasa la dirección IP y el número de puerto de la PC y crea un MQTT_Client

(4) MQTT_Client de ESP32 crea una conexión larga con MQTT_Server en la PC

(5) MQTT_Client de ESP32 suscribe Tema LED_CONTROL

(6) Cree un CLIENTE en la PC, pase la IP local y el número de puerto del servicio MQTT Broker en el Cliente y establezca una conexión larga con el Servidor en la PC

(7) Cliente en PC, enviar marco de datos ID de tema + comando, ID de tema es control LED

(8) Los datos se envían al servidor, y el servidor encuentra que la placa de desarrollo ESP32 se ha suscrito al tema LED_CONTROL y luego envía el marco de datos a través de la conexión creada entre el ESP32 y el servidor.

(9) ESP32 recibe este marco de datos y encuentra TOPIC_ID: LED_CONTROL, por lo que sabe que esta es una instrucción relacionada con el control de LED, lee el MENSAJE es LED_ON, ESP32 ejecuta la instrucción led.on() y el LED se enciende.

5.3 Ventajas y desventajas

5.3.1 Ventajas

(1) Protocolo de mensajes asincrónicos
(2) Orientado a la conexión persistente
(3) Transmisión de datos bidireccional
(4) Protocolo ligero
(5) Adquisición pasiva de datos

5.3.2 Desventajas

(1) Es necesario construir un servidor MQTT, lo que aumenta la complejidad del sistema
(2) No es adecuado para redes a gran escala
(3) La comunicación tiene cierta sobrecarga, lo que puede afectar a las aplicaciones con altos requisitos de tiempo real

6. Resumen

6.1 Alámbrico e inalámbrico

Si puede usar cable, use cable, la calidad de los datos es la primera garantía.

6.2 Autorización y no autorización

Si el efecto de los dos métodos de comunicación inalámbrica no es muy diferente y puede cumplir con los requisitos, se puede hacer sin gastar dinero, lo que puede reducir el costo posterior.

6.3 Bluetooth y Zigbee

¿Por qué los teléfonos móviles básicos y otros dispositivos ahora están equipados con Bluetooth como estándar en lugar de zigbee? Uno es el costo y el otro es el ecosistema creado por el hermano mayor de zigbee, Philips. Pero Zigbee tiene que responder más rápido. Si tienes esta demanda, puedes considerar Zigbee.

6.4 RFID y NFC

RFID es tecnología de identificación por radiofrecuencia, que es identificación; NFC es tecnología de comunicación de campo cercano, que es comunicación.

6.5 MQTT y COAP

MQTT y HTTP son protocolos basados ​​en TCP, y CoAP (Protocolo de aplicación restringida) es un protocolo basado en UDP.
MQTT es una conexión persistente y el protocolo CoAP no tiene conexión.
MQTT es un protocolo de muchos a muchos que transmite mensajes a través de agentes intermedios, y el protocolo CoAP es un protocolo uno a uno para la transmisión de mensajes entre el servidor y el cliente.
MQTT no admite mensajes con tipo u otras etiquetas para ayudar a los clientes a comprender. CoAP tiene soporte integrado de negociación y descubrimiento de contenido, lo que permite que los dispositivos se espíen entre sí para encontrar formas de intercambiar datos.

Artículos de referencia: http://wiki.1zlab.deepsenserobot.com/wiki/micropython-esp32/mqtt/, https://www.cnblogs.com/myitnews/p/13790067.html
https://zhuanlan.zhihu.com /p/510549726
https://club.gizwits.com/thread-7555-1-1.html

Supongo que te gusta

Origin blog.csdn.net/qq_37249793/article/details/131957016
Recomendado
Clasificación