Drivers escritos para acessar a Internet por meio de dispositivos baseados em comando AT

Drivers escritos para acessar a Internet por meio de dispositivos baseados em comando AT

Dongles USB e ICs GSM usam comandos "AT" para configuração e também para controlar sua operação. Tais comandos têm a capacidade de controlar a energia, bem como enviar SMS, conectar-se à internet via LTE, GPRS ou 3G e até mesmo reiniciar os dispositivos e atender chamadas. Devo também mencionar que a única forma de controlar tais dispositivos é através de comandos “AT”.

O padrão de comando "AT" possui cerca de 10 a 15 comandos universais e alguns dispositivos possuem um conjunto adicional de comandos para permitir conexões com a Internet. Abaixo estão algumas dessas ações possíveis,

  1. Fazendo uma conexão com servidores SSL ou não SSL.
  2. Envio de dados para uma porta do servidor quando a conexão estiver ativa.
  3. fechando conexões.

Acredito (corrija-me se estiver errado) que um comando AT corresponde a uma das tarefas acima.

Estou interessado em escrever um driver em C para o sistema GNU/linux que possa interpretar e atender às necessidades de Internet dos PCs por meio de comandos AT. Este software deve permitir que o PC se "veja" como uma "saída", talvez como uma conexão Ethernet. Isto é o que a maioria dos softwares dongle fazem. Eles geralmente têm duas portas COM funcionando em alta velocidade. Uma porta COM é controlada pelo software padrão do dongle USB e a outra é usada para enviar/receber dados.

Eu apreciaria se alguém pudesse me explicar como posso desenvolver uma conexão Ethernet "falsa" ou fazer o PC "ver" uma saída usando este software de driver. O software do driver precisará "conduzir" o IC GSM ou um dongle USB para enviar/receber dados. Este projeto é para fins educacionais, portanto, não estou interessado em instalar um software binário e fazer meu dongle funcionar.

Eu também apreciaria muito se alguém se identificasse com um projeto de código aberto semelhante a este.

Responder1

lado do hardware: conversando com hardware GSM

Parece haver várias pessoas usando um "módulo SIM900 GPRS" para se conectar a servidores web usando comandos AT. Isso é próximo o suficiente do que você está procurando?

EDITAR:

lado do aplicativo: conversando com aplicativos Linux normais e não modificados

Parece que você deseja que softwares como o Firefox em seu computador Linux funcionem normalmente, sem nenhuma alteração no próprio aplicativo Firefox, “como se” o PC estivesse conectado à Internet por um cabo Ethernet padrão.

Portanto, seu software precisa ser um driver de dispositivo que "se pareça" com outros drivers de dispositivo Ethernet ou WiFi no lado do aplicativo, mas no lado do hardware roteia os dados através de uma porta USB ou outra porta serial para o hardware GSM/GPRS.

Você poderia criar um fork de algum driver de dispositivo Ethernet padrão ou driver de dispositivo Wifi e, em seguida, substituir a seção que se comunica com seu hardware de placa Ethernet específico por uma seção que se comunica com seu hardware GSM/GPRS específico?

Livros inteiros poderiam ser e foram escritos sobre como escrever drivers de dispositivos Linux; e muitos drivers de dispositivos Linux são software de código aberto:

Para sua aplicação específica, pode ser mais fácil escrever um programa normal no espaço do usuário e configurarTUN/TAPdispositivos de kernel de rede virtual para entregar pacotes do Firefox e de outros aplicativos para o seu programa de espaço do usuário.

Para perguntas sobre como escrever tais drivers de dispositivos, uma vez que esses drivers de dispositivos funcionam da mesma forma para todos os sistemas Linux (não apenas para Ubuntu), você pode obter uma resposta melhor em sites mais relevantes, comohttps://unix.stackexchange.com/,https://serverfault.com/,https://softwareengineering.stackexchange.com/,https://networkengineering.stackexchange.com/, etc.

informação relacionada