代码之家  ›  专栏  ›  技术社区  ›  Christian Madsen

为什么GPRS调制解调器提供嵌入式TCP/IP堆栈

  •  5
  • Christian Madsen  · 技术社区  · 14 年前

    我和我的同事正在挖掘GPRS调制解调器市场,寻找适合与嵌入式Linux一起使用的模块。在市场扫描过程中,我们看到一些供应商强调他们的调制解调器包括嵌入式TCP/IP堆栈。

    这让我好奇:当我们使用的嵌入式Linux已经包含了一个TCP/IP堆栈,并且使用了ppp进行连接时,它会使用gps调制解调器中包含的堆栈吗?

    我目前的假设是,该堆栈包含在不提供自己堆栈的微型微控制器操作系统中。另外,一些调制解调器允许在调制解调器基带处理器中运行小型应用程序,这可以解释嵌入式堆栈…

    那么:当与HL操作系统一起使用时,GPRS调制解调器提供的TCP/IP堆栈是多余的还是我忽略了一些东西?

    2 回复  |  直到 12 年前
        1
  •  4
  •   Jeremy O'Donoghue    14 年前

    它在您的用例中几乎是多余的。

    大多数手机调制解调器产品都是专为手机设计的精简版产品。显然,在电话应用程序中,需要TCP/IP堆栈以及一大堆其他功能。

    一个典型的GPRS调制解调器可能包含一个ARM9处理器,而仅仅运行调制解调器软件并不会对这一点征税。对于许多较小的应用程序来说,它确实提供了足够的性能来运行整个应用程序(例如,想想自动售货机之类的东西,表明它几乎是空的),而TCP/IP堆栈在这里可能会有所帮助。

    还有一种可能的解释是有些愤世嫉俗。许多移动电话堆栈的软件耦合比它们的制造商愿意承认的要多一些,结果可能证明,删除TCP/IP堆栈根本不值得。

    在您的应用程序中,使用AT命令接口几乎肯定是最佳选择(这是老式拨号调制解调器命令集的扩展,允许您获取信号强度、网络状态等信息)。

        2
  •  2
  •   SHIBENYONG    12 年前

    这和我这两天问自己的问题完全一样。^ ^

    经过一些研究和询问,我发现:

    对于iPhone/Android这样的智能手机,TCP/IP作为操作系统的一部分运行在应用处理器(AP)上。基带处理器(BP)只是网络调制解调器(想想古代的56K拨号调制解调器和PC设置)。当然,BP将运行移动网络堆栈(GSM、CDMA、LTE…)来跳上蜂窝网络,但对于AP来说,它是透明的,而且只需对无线网络进行调制/解调即可。调制解调器接收AT命令,并可以在操作中在命令模式和数据模式之间切换。在数据模式下,AP和BP之间的协议通常是串行的ppp(!如果我错了,请纠正我)。所以tcp/ip/ppp/serial。

    在某些BP中发现的嵌入式TCP/IP堆栈旨在为某些应用程序提供一个完整的抽象,在这些应用程序中,由于系统限制或简单化,网络堆栈不可用。TCP/IP堆栈在BP中非常有用。正如您所提到的,一些BP(例如inferion)确实为用户应用程序和/或网络堆栈提供了额外的处理能力。在这种情况下,甚至不需要AP。这是功能手机(如诺基亚Brick)的典型设置。然后,bp提供at命令集的扩展,以创建套接字,甚至是ftp连接。