Controladores escritos para acceder a Internet a través de dispositivos basados ​​en comandos AT

Controladores escritos para acceder a Internet a través de dispositivos basados ​​en comandos AT

Los dongles USB y los circuitos integrados GSM utilizan comandos "AT" para la configuración y para controlar su funcionamiento. Dichos comandos tienen la capacidad de controlar la energía, así como enviar SMS, conectarse a Internet a través de LTE, GPRS o 3G e incluso restablecer los dispositivos y atender llamadas. También debo mencionar que la única forma de controlar dichos dispositivos es mediante comandos "AT".

El estándar de comando "AT" tiene entre 10 y 15 comandos universales y algunos dispositivos tienen un conjunto adicional de comandos para permitir conexiones a Internet. A continuación se muestran algunas de estas acciones posibles,

  1. Realizar una conexión a servidores SSL o no SSL.
  2. Envío de datos a un puerto del servidor una vez activa la conexión.
  3. cerrando conexiones.

Creo (corríjame si me equivoco) que un comando AT corresponde a una de las tareas anteriores.

Estoy interesado en escribir un controlador en C para el sistema GNU/linux que pueda interpretar y satisfacer las necesidades de Internet de las PC mediante comandos AT. Este software debe permitir que el PC se "vea" a sí mismo como una "salida", tal vez como una conexión Ethernet. Esto es lo que hacen la mayoría de los softwares de dongle. Generalmente tienen dos puertos COM funcionando a alta velocidad. Un puerto COM está controlado por el software predeterminado de las llaves USB y el otro se utiliza para enviar/recibir datos.

Agradecería que alguien pudiera explicarme cómo puedo desarrollar una conexión Ethernet "falsa" o hacer que la PC "vea" una salida usando este software controlador. El software del controlador deberá "controlar" el IC GSM o una llave USB para enviar/recibir datos. Este proyecto tiene fines educativos, por lo tanto, no estoy interesado en instalar un software binario y hacer que mi dongle funcione.

También agradecería mucho que alguien pudiera identificarse con un proyecto de código abierto similar a este.

Respuesta1

lado del hardware: hablando con el hardware GSM

Parece que hay varias personas que utilizan un "módulo GPRS SIM900" para conectarse a servidores web mediante comandos AT. ¿Está esto lo suficientemente cerca de lo que estás buscando?

EDITAR:

Lado de la aplicación: hablar con aplicaciones Linux normales y sin modificar.

Parece que desea que un software como Firefox en su computadora Linux funcione normalmente, sin ningún cambio en la aplicación Firefox en sí, "como si" la PC estuviera conectada a Internet a través de un cable Ethernet estándar.

Por lo tanto, su software debe ser un controlador de dispositivo que "se parezca" a otros controladores de dispositivos Ethernet o WiFi en el lado de la aplicación, pero en el lado del hardware enruta los datos a través de un USB u otro puerto serie al hardware GSM/GPRS.

¿Podría bifurcar algún controlador de dispositivo Ethernet estándar o controlador de dispositivo Wifi y luego reemplazar la sección que se refiere al hardware de su tarjeta Ethernet específica, con una sección que se refiere a su hardware GSM/GPRS específico?

Se podrían escribir y se han escrito libros enteros sobre la escritura de controladores de dispositivos Linux; y muchos controladores de dispositivos Linux son software de código abierto:

Para su aplicación particular, puede que le resulte más fácil escribir un programa de espacio de usuario normal y configurarlo.SINTONIZAR/GRIFOdispositivos de núcleo de red virtual para entregar paquetes desde Firefox y otras aplicaciones a su programa de espacio de usuario.

Si tiene preguntas sobre cómo escribir dichos controladores de dispositivos, dado que esos controladores de dispositivos funcionan igual para todos los sistemas Linux (no solo Ubuntu), puede obtener una mejor respuesta en sitios más relevantes comohttps://unix.stackexchange.com/,https://serverfault.com/,https://softwareengineering.stackexchange.com/,https://networkengineering.stackexchange.com/, etc.

información relacionada