☰
FM350-GL 4G模组实战:AT指令与Windows拨号上网全解析
2026/10/6 10:47:24 网站建设 项目流程

1. 拿到FM350-GL模块后,先搞清楚它到底是个什么东西

FM350-GL这个模块在圈子里出现的频率越来越高,尤其是做工业网关、车载终端、远程采集设备的朋友,几乎绕不开它。它是一款M.2封装的4G LTE Cat.4模组,走的是标准USB 2.0接口跟主机通信,支持国内移动、联通、电信、广电四家运营商的网络。很多人第一次拿到它的时候会有点懵——这玩意儿长得像一块M.2固态硬盘,但插到电脑上之后既没有盘符也没有任何提示,设备管理器里可能只冒出来几个串口和一个网卡设备,完全不知道从哪里下手。

我最初接触这个模块是为了给一台工控机做无线回传链路。当时的需求很简单:设备放在现场,没有有线网络,需要把采集到的数据通过4G发回服务器。市面上能选的4G模组不少,但FM350-GL的性价比和供货稳定性让我最终选了它。实际用下来发现,这个模块的AT指令集兼容性做得不错,Windows下的驱动也比较成熟,但网上能找到的完整教程要么太零散,要么跳过了很多关键细节,导致我前后折腾了将近两天才把整条链路跑通。

这篇文章就是把我踩过的坑和验证过的流程完整梳理出来。从硬件连接到串口调试,从AT指令逐条解析到Windows网络配置,再到四家运营商APN的差异处理,每一步都会给出具体的操作和背后的原因。不管你是刚拿到模块的新手,还是已经调过几个模组但卡在某个环节的老手,应该都能从里面找到有用的东西。整个流程不需要额外的开发板或转接板,只要一台带M.2接口的电脑或者一个M.2转USB的硬盘盒就能搞定。

2. 硬件连接与驱动安装:别小看这一步,一半的问题出在这里

2.1 M.2接口的物理连接方式选择

FM350-GL是M.2 Key B的封装形态,尺寸是3042规格。如果你手头有带M.2插槽的工控主板或者笔记本,直接插上去就行。但大多数台式机没有M.2 Key B的插槽,这时候就需要一个M.2转USB的转接盒。市面上常见的转接盒有两种方案:一种是ASM1153E芯片的,主要针对SATA协议;另一种是专门针对USB 2.0信号的转接板,通常用的是USB 2.0的引脚定义直接引出。

这里有个关键点:FM350-GL走的是USB 2.0信号,不是SATA也不是PCIe。如果你买错了转接盒,插上去之后电脑完全认不到设备,设备管理器里连未知设备都不会出现。我一开始就是随手拿了一个M.2硬盘盒,结果插上之后毫无反应,换了专门的USB转接板才正常。判断方法很简单——看转接盒的商品描述里有没有明确写支持“M.2 Key B USB 2.0”或者“4G模组转USB”。

另外,模块上有一个额外的天线接口,通常标注为MAIN和DIV/AUX。MAIN口必须接天线,否则信号强度会非常差甚至搜不到网。DIV口是分集接收天线,条件允许的话也接上,能明显改善弱信号环境下的稳定性。天线频段要覆盖LTE的常用频段,一般买模块的时候商家会配好对应的FPC天线或者SMA天线。

2.2 Windows下的驱动安装顺序与识别验证

驱动安装这一步看起来简单,但顺序搞错了会多花很多时间。正确的做法是:先把转接板和模块连接好,但先不要插到电脑的USB口上。然后去下载FM350-GL的Windows驱动包,通常包含三个部分:USB复合设备驱动、串口驱动和NDIS网卡驱动。

安装的时候先装USB复合设备驱动,这个驱动的作用是让Windows正确识别模块的USB描述符,把复合设备拆分成多个接口。装完之后再把模块插到USB口上,这时候设备管理器里应该能看到多个串口设备和一个网络适配器。如果先插模块再装驱动,Windows可能会把设备识别成未知设备,后面再装驱动就需要手动指定inf文件,麻烦很多。

识别成功的标志是在设备管理器里看到类似这样的设备列表:

设备类型设备名称示例作用
端口FM350-GL AT Port (COMx)发送AT指令
端口FM350-GL Diagnostic Port诊断和日志
端口FM350-GL NMEA PortGPS数据输出
网络适配器FM350-GL Mobile Broadband数据拨号

COM口号每台电脑可能不一样,记下AT Port对应的COM号,后面串口调试要用。如果只看到部分设备,说明驱动没有完全安装成功,可以尝试在设备管理器里右键未知设备,手动更新驱动并指向驱动包的解压目录。

注意:有些驱动包安装完之后需要重启电脑才能让NDIS网卡驱动生效。如果设备管理器里能看到网卡但网络连接里没有对应的拨号连接,先重启一次再试。

2.3 串口工具的选型与基本配置

串口调试工具我用的是SSCOM和SecureCRT两种,SSCOM胜在轻量、免费、中文界面,适合快速发指令看返回。SecureCRT适合需要保存日志和做脚本自动化的场景。配置参数方面,FM350-GL的AT口默认是115200波特率、8位数据位、1位停止位、无校验、无流控。这个参数在绝大多数情况下不需要改,如果你发指令没反应,先检查波特率是不是选错了。

打开串口之后,先发一个最简单的AT指令测试连通性。正常情况下模块会返回OK。如果没有任何返回,检查三件事:COM号是否选对、波特率是否匹配、模块是否已经正常上电。模块上电后一般会有个LED指示灯闪烁,如果灯完全不亮,可能是转接板供电不足。USB 2.0口最大只能提供500mA电流,而4G模块在搜网和发射瞬间的峰值电流可能超过1A,所以建议用带外部供电的USB Hub或者直接插在电脑后置的USB口上。

3. AT指令逐条拆解:从模块唤醒到网络注册的完整链路

3.1 基础AT指令与模块状态确认

串口通了之后,第一组要发的指令是确认模块的基本状态。按顺序来:

AT AT+CGMM AT+CGMR AT+CPIN?

第一条AT就是握手,返回OK说明串口链路正常。AT+CGMM返回模块型号,应该能看到FM350-GL相关的标识。AT+CGMR返回固件版本号,这个信息在后续排查问题时很有用,不同固件版本对某些指令的支持程度可能有差异。AT+CPIN?是查SIM卡状态,返回READY说明卡识别正常,如果返回SIM PIN说明卡被锁了需要先解锁,返回ERROR则可能是卡没插好或者卡座接触不良。

SIM卡的方向要注意,M.2模块的SIM卡座通常是推拉式的,卡插入的时候金属触点朝下,缺口方向对准卡座的防呆口。插反了虽然能塞进去但读不到卡,我见过不止一个人在这里翻车。

3.2 网络注册与信号质量查询

SIM卡识别正常之后,下一步是等模块注册到网络。相关指令:

AT+CFUN=1 AT+COPS? AT+CSQ AT+CEREG?

AT+CFUN=1是设置模块为全功能模式,也就是开启射频。有些模块默认就是全功能,但显式发一次没坏处。AT+COPS?查询当前注册的运营商,返回格式类似+COPS: 0,0,"CHN-UNICOM",7,最后的数字7表示LTE网络。如果返回+COPS: 0,0,"CHN-UNICOM",7就说明已经注册上了。

AT+CSQ查信号质量,返回两个数字,第一个是RSSI值,范围0到31,越大越好。一般来说低于10就比较差了,15以上算正常,20以上算好。第二个数字是误码率,通常忽略。如果RSSI一直是99,说明没搜到信号,检查天线连接和SIM卡是否欠费。

AT+CEREG?查EPS网络注册状态,返回+ CEREG: 0,1表示已注册到本地网络,+CEREG: 0,5表示漫游。这个指令比AT+COPS?更直接反映数据网络的注册情况。

3.3 PDP上下文激活与APN配置

网络注册成功之后,需要配置PDP上下文才能建立数据连接。核心指令是:

AT+CGDCONT=1,"IP","CMNET" AT+CGACT=1,1

AT+CGDCONT的第一个参数是CID,通常用1。第二个参数是PDP类型,IPv4用"IP",IPv6用"IPV6",双栈用"IPV4V6"。第三个参数就是APN,这是整个流程里最容易出错的地方。四家运营商的APN不一样:

运营商APN用户名密码备注
中国移动CMNET空空部分物联卡用CMIOT
中国联通3GNET空空部分卡用UNINET
中国电信CTNET空空部分卡用CTLTE
中国广电CBNET空空需确认卡是否已开通

AT+CGACT=1,1是激活CID为1的PDP上下文。返回OK之后,可以用AT+CGPADDR=1查询分配的IP地址。如果返回的IP是0.0.0.0或者没有返回,说明激活失败,大概率是APN填错了。

提示:广电的卡比较特殊,有些早期发行的广电卡需要手动配置APN为CBNET,而且部分模块固件对广电网络的支持需要更新到较新版本。如果广电卡一直注册不上,先确认固件版本,再确认卡是否已经在手机上测试过能正常上网。

3.4 数据拨号与模式切换

PDP上下文激活之后,模块本身已经拿到了IP,但要让Windows通过模块上网,还需要把模块切换到数据模式。FM350-GL支持多种数据模式,常用的是ECM和RNDIS。ECM模式下模块会模拟一个以太网设备,Windows直接用NDIS驱动就能识别。RNDIS则是微软自己的远程NDIS协议。

切换指令通常是:

AT+QCFG="usbnet",1

这里的参数1表示ECM模式,不同固件可能参数定义有差异,有的用0表示RNDIS,1表示ECM,2表示MBIM。发完指令后需要重启模块或者重新插拔USB,让模式切换生效。重启之后Windows应该能识别到一个新的网络适配器,这时候就可以在Windows里配置拨号了。

如果AT+QCFG指令返回ERROR,说明固件不支持这个指令,可以尝试AT+QCFG="usbnet"?查询当前支持的参数范围。有些定制固件会精简掉部分指令,这种情况就需要用NDIS拨号的方式,在Windows里创建一个拨号连接,号码填*99#,用户名和密码留空。

4. Windows网络配置:从拨号连接到路由共享

4.1 识别模块网卡与创建拨号连接

模块切换到ECM模式并重新插拔之后,打开Windows的“网络和Internet设置”,应该能看到一个新的以太网适配器,名称通常是“FM350-GL Mobile Broadband”或者类似的标识。如果没看到,去设备管理器检查有没有带黄色感叹号的网络设备,有的话重新安装NDIS驱动。

看到网卡之后,有两种方式建立连接。第一种是用Windows自带的移动宽带拨号:在“网络和Internet”里找到“蜂窝”选项,点击“连接”,Windows会自动使用模块的默认APN。但这种方式对APN的控制不够灵活,如果默认APN不对,就连不上。

第二种方式更可控:创建一个新的拨号连接。在“网络和Internet”设置里选择“拨号”,然后“设置新连接”,选择“连接到Internet”,再选“宽带(PPPoE)”,但这里不要填PPPoE的账号密码,而是选择“使用拨号连接”。号码填*99#,用户名和密码留空。创建完成后点击连接,Windows会通过模块的AT口发送拨号指令,建立数据链路。

实测下来,第二种方式在APN需要自定义的场景下更可靠。因为Windows的移动宽带接口有时候会缓存旧的APN配置,改了AT+CGDCONT之后不生效,而拨号连接每次都会重新走一遍PDP激活流程。

4.2 APN在Windows侧的配置方法

如果你用的是Windows自带的移动宽带连接,APN的配置入口在“设置”->“网络和Internet”->“蜂窝”->“高级选项”里。这里可以手动添加APN配置文件,填入运营商对应的APN字符串。但要注意,Windows的APN配置和模块内部的AT+CGDCONT配置是两套东西,最终生效的是模块内部的配置。Windows侧的APN只是用来告诉模块“用哪个APN”,如果模块里已经用AT指令配好了,Windows侧可以留空。

我遇到过一种情况:模块里AT+CGDCONT配的是CMNET,但Windows的移动宽带接口里默认APN是空,结果Windows自己发了一个空的APN给模块,导致PDP激活失败。解决办法是在Windows的APN配置里也填上CMNET,保持两边一致。这个细节在很多教程里都没提,但实际用的时候很容易卡住。

4.3 网络共享与多设备上网

模块本身只能给一台电脑提供网络,如果你想让多台设备通过这个4G连接上网,就需要做网络共享。Windows自带的Internet连接共享(ICS)就能实现。在“网络连接”面板里,找到刚才建立的拨号连接,右键属性->共享,勾选“允许其他网络用户通过此计算机的Internet连接来连接”,然后选择要共享到的网卡(比如电脑的WiFi网卡或者第二个以太网口)。

设置完之后,其他设备连接到这个共享网卡就能上网了。但ICS有个已知问题:共享的网段默认是192.168.137.0/24,如果内网已经有这个网段,会冲突。解决办法是改注册表或者用第三方工具。另外ICS的稳定性一般,长时间大流量传输可能会断,工业场景下更推荐用软路由或者Linux网关来做NAT转发。

5. 四家运营商实战差异与常见问题排查

5.1 移动、联通、电信、广电的APN与注册差异

四家运营商里,移动和联通的配置最简单,APN填CMNET和3GNET基本就能通。电信的CTNET也没问题,但电信的物联卡有时候需要填CTLTE,而且电信对IMEI有绑定,换设备之后可能需要重新激活。广电是最特殊的,CBNET这个APN在部分模块固件里没有被预置,需要手动添加,而且广电的VoLTE和4G数据是分开的,如果卡没有开通数据功能,注册上了也上不了网。

实际测试中,同一个模块换不同运营商的卡,需要重新执行AT+CGDCONT和AT+CGACT。有些模块在换卡之后不会自动清除旧的PDP上下文,导致新卡激活失败。保险的做法是换卡之后先发AT+CGDCONT=1,"IP",""清空APN,再重新配置。

5.2 信号弱、频繁掉线的排查思路

信号问题是最常见的。如果AT+CSQ返回的RSSI低于10,先检查天线。天线接口有没有拧紧、天线频段是否匹配、天线周围有没有金属遮挡。工业环境里设备通常装在金属机柜里,对信号衰减很大,这时候需要把天线引到机柜外面。

如果信号强度正常但频繁掉线,查AT+CEREG?的状态变化。如果状态在1和2之间跳变,说明网络注册不稳定,可能是基站切换导致的。可以尝试锁定频段:AT+QCFG="band"指令可以设置模块只搜特定频段,减少切换带来的掉线。但锁频段需要知道当地基站的频段信息,一般用AT+QCFG="band"?先查当前支持的频段列表。

另一个掉线原因是USB供电不足。4G模块在发射瞬间电流会突然增大,如果USB口供电能力不够,模块会重启。表现就是串口突然断开,过几秒又恢复。解决办法是用带外部供电的USB Hub,或者直接给转接板接上辅助供电线。

5.3 拨号失败与IP获取异常的定位方法

拨号失败的时候,按这个顺序排查:

  1. 确认AT+CPIN?返回READY
  2. 确认AT+CEREG?返回1或5
  3. 确认AT+CGDCONT配置的APN正确
  4. 确认AT+CGACT=1,1返回OK
  5. 确认AT+CGPADDR=1返回了非0.0.0.0的IP

如果第4步返回ERROR,通常是APN不对或者卡没有数据权限。如果第5步返回0.0.0.0,说明PDP激活了但没拿到IP,可能是运营商侧的问题,换张卡测试就能定位。

Windows侧如果拨号连接显示“已连接”但无法上网,检查DNS。模块默认会从运营商获取DNS,但有时候获取不到。可以手动在拨号连接的属性里设置DNS为114.114.114.114和8.8.8.8。另外检查路由表,确保默认路由指向了拨号连接而不是其他网卡。

6. 长期运行稳定性与固件升级的几点经验

模块跑通之后,如果要长期运行,有几个地方需要额外注意。首先是散热,FM350-GL在持续数据传输时发热比较明显,尤其是夏天或者密闭机箱里。我遇到过模块温度过高导致降速甚至断网的情况,后来在模块背面贴了一块小散热片,问题就解决了。如果设备装在户外,还要考虑低温启动的问题,工业级模块一般标称-40到85度,但实际低温下搜网时间会变长。

固件升级方面,FM350-GL的固件更新通常通过USB口用厂商提供的升级工具来做。升级前一定要备份当前的AT配置,因为升级后配置会恢复默认。升级过程中不能断电,否则模块可能变砖。如果升级失败导致模块无法识别,可以尝试进入紧急下载模式,通常是通过短接模块上的特定测试点来触发。

最后说一个实际项目中遇到的坑:模块在ECM模式下,Windows有时候会把模块网卡识别为“公用网络”,导致防火墙规则过严,某些端口不通。解决办法是在“网络和Internet”设置里把模块网卡的网络位置改成“专用网络”。这个设置不影响模块本身的工作,但会影响Windows防火墙对通过4G进来的流量的处理方式。改完之后,远程桌面和文件共享之类的服务就能正常访问了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询