PIC32MX驱动铱星9602实现全球短数据通信(SBD)
在一些极限场景比如深海浮标、极地科考、远洋等,地面网络(如4G等)完全覆盖不到。这时候,铱星(Iridium)卫星网络的短数据(Short Burst Data, SBD)业务就成了比较可靠的通信手段。它不需要你接任何基站,就能把数据发到世界任何一个角落。
前几年我设计了一款基于PIC32MX564F128H的数据采集终端,集成了铱星9602模块、亿佰特LoRa无线模块和一个RS232调试接口,与一款铱星海上信标进行数据通信。
一、铱星9602模块核心特性
铱星9602是一款SBD专用模块,它和普通手机模块不同,不需要SIM卡,开通服务时直接绑定IMEI号即可,自带铱星和GPS两个天线接口。
工作频段:1616 ~ 1626.5 MHz
发射功率:平均1.6W,峰值1.5A
上行数据:最大340字节/次
下行数据:最大270字节/次
串口电平:3.3V TTL
默认波特率:19200bps
工作电压:5V
功耗:待机45mA,发射190mA
二、9602模块上电与基础AT指令
9602的串口默认波特率是19200,8N1,无硬件流控。上电后需要先拉高ON/OFF脚(默认电平为高则自动开机)。建议上电后先发送AT\r\n测试通信
基础操作:
- 查询信号质量:
AT+CSQ返回0~5,5表示信号最好。如果返回0,需要调整天线位置。 - 开启射频:
AT*R1必须执行,否则无法搜网。 - 启用服务指示:
AT+CIER=1,0,1,0让模块上报网络状态(+CIEV:1,1表示服务可用)。 - 查询注册状态:
AT+SBDREG?返回2表示已注册。
等待网络可用:上电后通常需要30~90秒才能捕获卫星信号。可以轮询AT+CIER?或监听+CIEV指示。
三、发送短数据
发送数据分为三步:写入消息→发起会话→清除缓存。
- 写入二进制消息:使用
+SBDWB命令。 - 发起SBD会话:使用
+SBDIX - 清除缓存:发送
AT+SBDD0清空发送缓冲区。
四、接收下行数据
下行数据有两种触发方式:
- 主动查询:定期执行
AT+SBDIX(会同时检查邮箱)。 - 被动振铃:模块收到下行消息时,RI(Ring Indicator)引脚会拉低,并输出
SBDRING串行数据。
建议采用中断+主动查询方式:将RI引脚配置为下降沿中断,中断后延时几秒再发起AT+SBDIXA。
五、低功耗管理与关机
野外设备通常要低功耗运行。9602在空闲时可以关闭射频:
AT*R0关闭射频,电流降至约45mA(基带仍工作)。
完全关机:拉低ON/OFF引脚(或断电),但关机前务必先执行AT*F刷写内部EEPROM,防止参数丢失。
六、调试经验与常见问题
天线是灵魂:铱星天线必须朝南(在北半球),且天空仰角>8°。
电源必须稳:发射瞬间1.5A,如果电源内阻大或电容不够,模块会重启。我用了两个2200μF并联。
SBD会话超时:如果信号极差,会话可能持续几十秒甚至失败。一定要设置足够超时(如180秒)。
消息序号:每次成功发送,MOMSN会递增,可用于核对消息是否丢失。
资费:SBD按消息条数计费,340字节和1字节同价,尽量攒够数据再发。
铱星9602模块虽然面世较早,但依然是全球覆盖SBD最成熟的方案之一。可以轻松构建远洋、荒漠、极地等极端环境的数据采集系统。如果对功耗要求极高,还可以利用AT*R0关闭射频间歇工作。
后续干货不断,咱们一起在单片机的世界里,共同进步。
