如何与USB 3G调制解调器通信?

11

我有一台D-Link DWM-156 3G USB调制解调器,我想从我的应用程序(在运行Windows XP SP3上的C# .NET 4.0)向其发送AT命令。

插上设备并安装驱动程序后,调制解调器会显示如下内容:

设备管理器中,添加了两个串行端口:

  • D-Link HSPADataCard诊断接口(COM4)
  • D-Link HSPADataCard NMEA设备(COM5)

控制面板、电话和调制解调器选项中,添加了一个新的调制解调器:

  • D-Link HSPADataCard专用USB调制解调器(连接到COM19)

问题:我应该使用哪个COM端口发送AT命令,以及速率应该是多少?


我已经尝试过不同速度下的所有三个端口,但完全没有成功。

为了学习,我安装了“Free Serial Port Monitor”嗅探器应用程序,希望能够在D-Link实用程序打开和关闭Internet连接时监视通信(这样可以正常工作)。

启动时,嗅探器应用程序会询问我要监视哪个端口,并提供以下端口名称供选择:

  • “Agere Systems HDA Modem”,
  • “D-Link HSPADataCard专用USB调制解调器”,
  • “COM3”,
  • “COM4”,
  • “COM5”
  • ...还有几个,包括“COM19”。

选择“D-Link…”名称可以正常工作,现在我可以观察到所有正在使用的AT命令,但我无法确定端口所使用的波特率。此外,COM4、COM5或COM19都无法通过此方式进行嗅探(这些端口似乎没有任何反应)。

现在我想使用 .NET 中的 SerialPort 类打开 "D-Link..." 端口并与 USB 调制解调器通信,但是 SerialPort 类要求端口名称以 "COM" 开头,否则将抛出异常。但普通的 COM 端口均不起作用。我仍然不知道应该使用哪个波特率。我非常困惑和束手无策 - 我该怎么办才能弄清楚这个问题呢?


Agere Systems HDA Modem 是 COM1,而 D-Link HSPADataCard 专有 USB Modem 可能是 COM2。如果您有这些问题,您可以随时联系 D-Link,因为我们不太可能给出确切的解决方案,除非我们自己拥有该设备。 - Security Hound
1
+1:我也需要对ZTE MF190做类似的事情。 - menjaraz
2个回答

7

大家好,感谢你们所有的想法和意见。我做了更多的研究,最终我意识到,为了做我想做的事情,我根本不需要麻烦串行端口和AT命令。所有需要做的就是进行几个Windows RAS调用。

如果我在我关于我想要做什么的AT指令问题上更具体一些,你们肯定早就告诉我关于RAS的事情了!

我发现了一个不错的.Net DLL (DotRas),它包装了用于从托管代码使用的本地Windows RAS,并且似乎正是我所需要的(通过代码拨号3G调制解调器连接,无论我连接的任何类型的3G调制解调器)。

再次感谢您的时间。


你能否发布一个使用DotRas发送AT命令的示例代码? - Monzir
DotRas不公开串行层,Answer_42。使用.NET SerialPort类就足够了。值得一提的是,9600 bps似乎是USB蜂窝调制解调器常见的“虚假”速度。 - Keith Douglas

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接