通过基于 AT 命令的设备访问互联网的驱动程序

通过基于 AT 命令的设备访问互联网的驱动程序

USB 加密狗、GSM IC 使用“AT”命令进行配置以及控制其操作。此类命令能够控制电源以及发送短信、通过 LTE、GPRS 或 3G 连接到互联网,甚至重置设备和接听电话。我还必须提到,控制此类设备的唯一方法是通过“AT”命令。

“AT” 命令标准有大约 10 - 15 个通用命令,一些设备有一组附加命令来允许连接到互联网。以下是一些可能的此类操作,

  1. 建立与 SSL 或非 SSL 服务器的连接。
  2. 一旦连接处于活动状态,就将数据发送到服务器中的端口。
  3. 关闭连接。

我相信(如果我错了请纠正我)一个 AT 命令对应上述任务之一。

我有兴趣用 C 语言为 GNU/linux 系统编写一个驱动程序,它可以通过 AT 命令解释并满足 PC 的互联网需求。该软件必须让 PC“看到”自己是一个“出口”,可能像以太网连接一样。大多数加密狗软件都是这样做的。它们通常有两个高速运行的 COM 端口。一个 COM 端口由 USB 加密狗默认软件控制,另一个用于发送/接收数据。

如果有人能向我解释如何使用此驱动程序软件开发“假”以太网连接或让 PC“看到”出路,我将不胜感激。驱动程序软件需要“驱动” GSM IC 或 USB 加密狗来发送/接收数据。因此,这个项目用于教育目的,我对安装二进制软件并让我的加密狗工作不感兴趣。

如果有人能联系到类似的开源项目,我将不胜感激。

答案1

硬件方面:与 GSM 硬件对话

似乎有几个人使用“SIM900 GPRS 模块”通过 AT 命令连接到 Web 服务器。这是否足够接近您要寻找的内容?

编辑:

应用程序端:与普通、未修改的 Linux 应用程序对话

这听起来就像您希望 Linux 计算机上的 Firefox 之类的软件能够正常工作,而无需对 Firefox 应用程序本身进行任何更改,“就像” PC 插入标准以太网电缆连接到互联网一样。

因此,您的软件需要是一个设备驱动程序,在应用程序端“看起来”像其他以太网或 WiFi 设备驱动程序,但在硬件端通过 USB 或其他串行端口将数据路由到 GSM/GPRS 硬件。

您能否分叉一些标准的以太网设备驱动程序或 Wifi 设备驱动程序,然后将与其特定以太网卡硬件对话的部分替换为与您的特定 GSM/GPRS 硬件对话的部分?

已经有人写过关于编写 Linux 设备驱动程序的整本书了;而且许多 Linux 设备驱动程序都是开源软件:

对于你的特定应用程序,编写一个普通的用户空间程序并设置调谐/分接虚拟网络内核设备将 Firefox 和其他应用程序的数据包传送到您的用户空间程序。

对于编写此类设备驱动程序的问题,由于这些设备驱动程序在所有 Linux 系统(不仅仅是 Ubuntu)上的工作方式相同,你可以在更相关的网站上得到更好的答复,例如https://unix.stackexchange.com/https://serverfault.com/https://softwareengineering.stackexchange.com/https://networkengineering.stackexchange.com/, ETC。

相关内容