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

时间:2012-06-22 13:51:55

标签: c# windows usb serial-port modem

我有一个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实用性的通信(工作正常)。

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

  • “杰尔系统HDA调制解调器”,
  • “D-Link HSPADataCard专有USB调制解调器”,
  • “COM3”,
  • “COM4”,
  • “COM5”
  • ......还有其他几个,包括“COM19”。

选择“D-Link ...”名称工作正常,现在我可以看到正在使用的所有AT命令,但我无法确定端口的使用波特率。此外,COM4,COM5或COM19都不能以这种方式进行嗅探(这些端口上似乎没有任何事情发生)。

现在我想在.NET中使用 SerialPort 类来打开“D-Link ...”端口并与USB调制解调器通信,但是 SerialPort 类要求端口名称以“COM”开头,否则抛出异常。但是普通的COM端口都不起作用。我仍然不知道使用哪种波特率。我非常困惑并被锁在这里 - 我能做些什么才能到达底部?

2 个答案:

答案 0 :(得分:7)

好的伙计们,感谢您的所有想法和意见。我做了一些更多的研究,最后我意识到,为了做我想要的事情,我根本不需要打扰串口和AT命令。所需的只是进行一些Windows RAS调用。

如果我在关于我的AT命令想要做什么的问题上稍微具体一点,那么很久以前你肯定会告诉我有关RAS的信息!

我发现了一个很好的.Net DLL(DotRas)包装本机Windows RAS以便从托管代码中使用,它似乎正是我所需要的(从代码拨打3G调制解调器连接,任何类型的我附加的3G调制解调器。)

再次感谢您的时间。

答案 1 :(得分:0)

在通过目标COM端口GetCommState()获取句柄后,您可以使用CreateFile()

http://msdn.microsoft.com/en-us/library/aa915369.aspx