Red de conocimiento informático - Material del sitio web - ¿Cómo utilizar el módulo GPRS para lograr la transmisión remota de datos?

¿Cómo utilizar el módulo GPRS para lograr la transmisión remota de datos?

Con la popularización de las aplicaciones de red y el aumento masivo de dispositivos móviles, la tecnología GPRS se ha utilizado cada vez más en varias ocasiones por su bajo precio y su rápida velocidad mediante el protocolo de red que viene con el sistema para controlar. El proceso de acceso telefónico GPRS está muy maduro. Sin embargo, no todos los sistemas de transmisión de datos tienen sistemas operativos o protocolos de red. En comparación con los costosos chips integrados, la serie 8051 de microcontroladores es más económica y práctica. También es demasiado complicado utilizar un sistema operativo integrado sólo para realizar la transmisión de datos GPRS. Esto requiere un nuevo método simple y eficaz para realizar todo el acceso telefónico. .proceso y proceso de transferencia de datos. Por tanto, es necesario estudiar un nuevo método sencillo y económico para resolver esta contradicción. Este artículo propone las soluciones correspondientes basadas en las razones anteriores.

1. Análisis de la arquitectura de red

Este artículo estudia el protocolo UDP/IP en lugar del protocolo TCP/IP, que se basa principalmente en él. Depende de la situación real del tema de fondo de este estudio. Las ventajas de UDP sobre TCP son: simplicidad, conveniencia, velocidad y economía. La desventaja es que puede ocurrir "pérdida de paquetes" durante el proceso de transmisión, pero tiene poco impacto en los proyectos de ingeniería involucrados en este estudio. La estructura de hardware específica se muestra en la Figura 1. Principalmente a través del módulo GPRS, los datos muestreados del sensor se pueden transmitir de forma remota y la gestión remota se puede lograr a través de la red GPRS. El circuito periférico también incluye software de computadora host, como vigilancia, reloj, memoria flash, convertidor AD, etc., y luego analiza los datos mediante algoritmos específicos. Es un trabajo básico indispensable para lograr la modernización agrícola y tiene una importancia práctica muy importante.

Para estudiar la comunicación inalámbrica del GPRS troncal, primero debemos comprender la estructura del sistema de red del proceso de comunicación, de modo que podamos evitar desviarnos en el proceso de resolución del problema.

La capa más baja de transmisión de datos inalámbrica GPRS, es decir, la capa física, está compuesta por el puerto serie RS232 y el módulo GPRS, seguida por la capa de enlace de datos. Esta capa es el foco y la dificultad de. El análisis implica la implementación del protocolo PPP. Por encima de la capa de enlace de datos del proceso está la capa de red, seguida de la capa de transporte, que es lo que normalmente llamamos UDP/IP, TCP/IP pertenece a la red. El protocolo de capa y UDP.TCP pertenecen al protocolo de capa de transporte por encima de la capa de transporte. Esto incluye la capa de sesión, la capa de presentación, la capa de aplicación, etc., que no están dentro del alcance de este artículo y no se describirán en detalle. aquí.

Por otro lado, cada capa de protocolo se implementa en base al protocolo siguiente, es decir, si se utiliza la capa de enlace de datos, esta debe ser soportada por la capa física. Sin la capa física, el medio físico en el que se implementa el software no existiría. De la misma manera, IP es la capa de enlace de datos implementada en base al protocolo PPP, mientras que UDP es la capa de red implementada en base al protocolo IP. Es por esto que los paquetes UDP/IP se encapsulan a través del protocolo PPP.

2. Establecimiento de la capa de enlace de datos

El proceso de inicio de sesión GPRS en la red pertenece al establecimiento de la capa de enlace de datos, el cual debe realizarse a través del protocolo PPP (Point-. Protocolo a punto) proporciona un enlace en serie punto a punto. El método de transmisión de datagramas en la carretera admite datos asíncronos de 8 bits y conexiones síncronas orientadas a bits (como ISDN). dos puntos y está reemplazando el protocolo SLIP (Protocolo de interfaz de línea serie) como estándar de red punto a punto.

1. El proceso de autenticación de Internet GPRS se realiza a través de PPP

En el proceso de acceso a Internet del módulo GPRS, utiliza principalmente tres protocolos en el protocolo PPP, a saber, el protocolo LCP (Protocolo de control de enlace), PAP (Pass- Protocolo de autenticación de palabras) protocolo de autenticación y protocolo IPCP (Protocolo de control de protocolo de Internet) La parte LCP negocia principalmente el siguiente paso del protocolo de autenticación de contraseña, puede elegir el método PAP o el método CHAP, nosotros elegimos el método PAP según los requisitos del ISP. La parte PAP envía principalmente la contraseña al ISP para su autenticación. Después de pasar la autenticación de contraseña, ingresa IPCP y completa el proceso de que el cliente solicite IP y el ISP distribuya IP.

El diagrama del proceso de implementación se muestra en la Figura 2.

Durante el proceso de autenticación, la MCU, el módulo GPRS y el ISP deben enviar paquetes de datos en formato PPP para completar el proceso de negociación. Los paquetes de datos están en hexadecimal. en la mayoría de los casos, su código ASCII correspondiente no tiene significado práctico. La estructura del marco de datos PPP se muestra en la Tabla 1.

Para la parte del protocolo que se muestra en la Tabla 1, existen varias formas de descripción:

Para los bits de información que se muestran en la Tabla 1, incluido el indicador del paquete de configuración del enlace, la descripción es la siguiente siguiente:

El contenido que se muestra en las tres tablas anteriores son los conceptos básicos para analizar varios tipos de paquetes de datos en el protocolo PPP. Otra cosa a tener en cuenta al analizar paquetes PPP es que si un carácter incluye Ox7D, significa que los caracteres que siguen al carácter deben tener escape. El método de escape consiste en utilizar la operación XOR entre el último carácter y 0x20 para obtener los datos hexadecimales como datos reales. Por ejemplo, si un paquete de datos incluye...Ox7D0x23..., la representación real es Ox03a (por conveniencia, los datos que se muestran a continuación son todos datos escapados)

2. Análisis del proceso de negociación real

(1) Proceso de negociación LCP

Primero configure los parámetros de inicialización y los parámetros de trabajo del módulo y envíe los siguientes comandos AT al módulo:

1) AT +CGCLASS="B" configurado en modo "B"

2) AT+CGDCONT=1, "IP"; "CMNET" configurado APN

3) AT+CGATT=1, conecte el módulo GPRS a la red

Luego envíe el comando "ATD*99***1#" para establecer el proceso de marcación y el módulo devolverá algunos datos en hexadecimal. Necesitamos negociar con el módulo en consecuencia. Primero devuelva el paquete de datos (hexadecimal): 7EFF03CO2101010016010405DC020600000000070208020304CO2326B47E

Los datos contienen significado: 7E (encabezado PPP) FF03CO21 (protocolo LCP) 01 (código) 01 (identificador) 0016 (longitud) (tipo) 04 (Longitud) 05DC (Contenido de negociación Unidad de recepción máxima) 02 (Tipo) 06 (Longitud) 00000000 (Contenido de negociación) 07C Tipo Protocolo Negociación de compresión) 02 (Longitud) 08 (Tipo, Dirección Control Dominio Negociación de compresión) 02C Longitud) 03 [Tipo] 04 (longitud) CO23 (el contenido indica solicitud de autenticación PAP) 26B4 (FCS, suma de comprobación) 7E (cola del paquete PPP).

Este módulo es relativamente amigable durante la etapa de negociación LCP. Propone de manera proactiva el método de autenticación PAP. Puede devolver directamente el consentimiento a su solicitud o realizar algunas solicitudes nuevas. En la operación real, se envía la solicitud de consentimiento. como: 7EFF03CO2102010016010405DC020600000000070208020304CO23DO477E.

La fase de autenticación LCP ha finalizado en este punto

(2) Proceso de autenticación PAP

Debido a que el método de autenticación de contraseña PAP ha sido negociado y acordado, el Es necesario enviar el proceso PAP y enviar el nombre de usuario y la contraseña al ISP. El formato de solicitud es 7ECO230101000600003B3F7E

El 0000 después de 0006 en este paquete representa el nombre de usuario y la contraseña respectivamente. de los cuales están vacíos en este momento, debido a que necesita ser autenticado con el ISP, debe esperar un período de tiempo después del juicio, el servidor pasa la autenticación de contraseña y devuelve: 7ECO237D227D217D207D2D7D2857656C636F6D65214EBC7E. El carácter hexadecimal "57656C636F6D6521" se convierte en el código ASCII "¡Bienvenido!". Al mismo tiempo, el servidor envía un paquete de solicitud IPCP: 7E8021010100OA0306CO A86F6FCID497E

Ingrese al proceso de negociación IPCP

. (3) Proceso de negociación IPCP

En este momento, la parte del cliente debe solicitar al ISP que distribuya la solicitud de IP: 7E802101060016030600000000810600000000830600000000OACF7E

"0306""8106""8306" El último cuatro 00 representan la IP del cliente, la primera dirección de host DNS y la segunda dirección de host DNS. Si las tres partes son 00, significa que el contenido está vacío y es una solicitud para que el ISP distribuya la IP al cliente.

Después de recibir la solicitud, el servidor distribuye el paquete de datos IP: 7E8021030600160306OA4A0C148106D38812AB8306D3887D34CB.6B6B7E

OA4AOC14 se expresa como decimal 10.74, 12.20. Desde China Mobile Communications estipula que las IP distribuidas. a GPRS Los usuarios de Internet por acceso telefónico son todos Es una IP interna, no una IP externa, por lo que todas las IP comienzan con 10.***. D38812AB después de 8106 indica 211.136.18171, que es la dirección IP del primer host DNS. D38814CB después de 8306 indica 211.136.20.203, que es la dirección IP del segundo host DNS. Después de eso, debemos identificar varias IP en distribución y luego solicitar la solicitud nuevamente para incluir estas 3 IP de distribución, lo que significa aceptar el resultado de la distribución. . El paquete de datos es 7E8021010700160306OA4A4C838106038812ABe3o6D38e14CBF2C17E

Después de eso, el ISP reconoció la solicitud, se completó el proceso de protocolo de enlace PPP de la capa de enlace y entró en la etapa de red. A partir de ese momento, todos los paquetes de datos que contengan IP enviados a la red GGSN se transmitirán de forma transparente a la dirección IP correspondiente. Lo anterior es un análisis del proceso de negociación de PPP. Siempre que preste atención a las precauciones y significados de cada paso mencionado anteriormente, podrá establecer rápida y rápidamente la capa de enlace de datos.

3. e implementación de la capa de transporte

Aunque la capa de red y la capa de transporte son funciones implementadas por los protocolos IP y UDP, ambas se basan en la capa de enlace de datos, por lo que todavía no se pueden escapar al enviar paquetes PDP/IP. Dependencia del acuerdo PPP. El paquete de datos UDP/IP encapsulado por PPP está compuesto como se muestra en la siguiente tabla:

1. Introducción al protocolo IP

La composición del paquete IP se muestra en la Tabla 5. El protocolo de 8 bits puede elegir TCP o UDP. El TTL de 8 bits es TimeToLive, que es el tiempo de supervivencia del paquete de datos. en la red.

2. Introducción al protocolo UDP

En comparación con los paquetes de datos antiguos, la composición de los paquetes de datos UDP es relativamente simple y contiene principalmente la información de datos que se enviará, es decir, segmentos de datos. La estructura se muestra en la Tabla 6. La verificación UDP final es la misma que la verificación de IP en el paquete IP, pero diferente de la verificación FSC en el protocolo PPP. La verificación FSC es un tipo de método de verificación CRC de 16 bits, mientras que la verificación antigua y la verificación UDP son mecanismos de verificación relativamente simples de suma de código inverso.

Y para la verificación de IP y UDP, es necesario convertir la parte de 16 bits del paquete de datos que debe verificarse en 32 bits para la verificación y luego convertirla a 16 bits después de la verificación.

3. Sumas de verificación de IP y UDP

Los segmentos de datos que se verificarán mediante sumas de verificación de IP incluyen todos los segmentos de bits en el paquete de datos IP mencionado anteriormente, y la verificación UDP es más complicada que la verificación de IP, la verificación UDP no solo debe incluir. el contenido del paquete UDP, pero también incluye cierta información en la parte IP. La composición de bits de verificación UDP es la siguiente:

Para el último bit del segmento de datos, ya que la paridad es de 32 bits, entonces. si hay un número impar de datos en el segmento de datos, se requiere relleno con ceros.

El procedimiento de verificación es el siguiente:

HdelineUSHORT

unsignedshortUSHOPTchecksum(USHORT*buller, Intsize)

{

unsignedIongcksum=0;

mientras(tamaño>1)

{

cksum+=*búfer++;

tamaño-=tamañode (USHORT);

}

if(tamaño)

cksum+=*(UCHAR*)buller;

cksum=(cksum >>16)+(cksum&oxnff);

cksum+=(cksum>>16)return(USHORT)(Ccksum);

}

4. Paquete de datos UDP/IP encapsulado mediante el formato de encapsulación PPP

De acuerdo con el método presentado anteriormente, a continuación se proporciona un ejemplo específico para su análisis: 7E2145.00001D47F300DOBID11BOF60A4A30EDD350336C03E803F20000551B61A5DE7E

7E21 es el encabezado PPP, 4 representa el número de versión anterior, 5 representa la longitud del encabezado, 00 representa el tipo de servicio, 001D representa la longitud total del paquete, 47F3 representa el identificador de 16 bits, 00 representa la bandera de 3 bits + desplazamiento de segmento de 13 bits, 80 representa TTL y 11 representa el protocolo (11 representa el protocolo UDP, TCP es 06), B0F6 es la suma de verificación del encabezado IP. El siguiente "0A4A30E0" representa la dirección IP local, que es la IP dinámica recién obtenida a través del protocolo PPP; "D350336C" representa la IP de la otra parte, que es la IP de destino a enviar; "03E8" representa el puerto local (este); se puede configurar a voluntad siempre que no esté relacionado con el sistema. Solo necesita un conflicto con el puerto utilizado. Para UDP, esto no tiene sentido porque a GPRS se le asigna una IP interna. Incluso si la otra parte conoce su IP y su puerto. aún puede transmitir datos a través de UDP. Si es un protocolo TCP, use GPRS como cliente. Después de que el servidor establezca el canal, el servidor puede enviar datos según el puerto) "03F2" significa el puerto de destino "0009". significa la longitud del paquete UDP (puerto local 2 bytes + puerto de destino 2 bytes + longitud de datos 2 bytes + final de datos n bytes + suma de comprobación UDP 2 bytes), "55" representa datos, que deben ser "a" cuando se convierten a ASCII código, "1B61" es la suma de verificación UDP y "A5DE" es la suma de verificación FSC del paquete PPP. El significado de este código es "Enviar el carácter a al destino con IP 211.80.51.108 y puerto 1010".

IV.Conclusión

La aplicación de GPRS no se limita a la incrustación. En el campo de la computadora o PC, se puede ampliar a un simple microcontrolador 8051, ampliando así aún más el uso de la tecnología GPRS. Al mismo tiempo, los protocolos PPP y UDP/IP se reducen para el acceso a Internet GPRS. La parte del software está escrita en lenguaje C y se puede comprimir a 4K. No solo simplifica el proceso de autenticación sino que también ahorra tiempo de ejecución del programa. , solo toma 3 segundos desde marcar hasta iniciar sesión en la red y el programa se puede trasplantar fácilmente a varios sistemas de hardware. En la actualidad, el sistema ha estado funcionando de manera estable en el sistema de detección de humedad de las tierras agrícolas del campo experimental de Nanjing.