virusdefender's blog ʕ•ᴥ•ʔ

POCSAG 协议考古 - 硬件实现

上一篇文章梳理了 POCSAG 的协议格式,这一篇来看看硬件的实际选型。POCSAG 是运行在 2-FSK 调制之上的应用层协议,硬件层面只需要两个核心能力:一个支持 FSK 调制解调的射频前端,一个能跑协议解析的 MCU。看上去选择很多,但真要做的时候,射频芯片的寄存器配置、FSK 极性的匹配、频率稳定度、开发门槛都是坑。

好在 GitHub 上有几个开源项目,各走了一条路,拿来当硬件选型的参考很合适。

硬件选型

Warning

无线电设备的研发必须严格遵守相关法律法规:禁止在非民用频段进行信号发射;严禁违规接收非授权频段信号;严禁将非公开的信号与数据上传至互联网。

MCU射频前端板卡方案简介
GoRail_PagerSTM32F103C8T6TI CC1101自己画 PCB纯 FSK 芯片,硬件层完成 preamble 和同步字匹配;外挂 ESP8266 走 MQTT。
SX1276_Receive_LBJESP32SX1276现成开发板TTGO LoRa 32 v1.6.1,约 18 美元到手即用。SX1276 支持 LoRa/FSK 双模,RadioLib 库直接配置极性。
RP2040-BasedRP2040SX1276自己画 PCB同样基于 SX1276,MCU 换成树莓派 RP2040,有完整的 PCB 和外壳文件。

TTGO LoRa 32 价格不算低,但完全不用 DIY——一块板子到手即用,代码现成,不需要画 PCB。缺点是板子形态固定,体积、功耗、接口都没法自己调整。

自己画板的灵活度最高:通过嘉立创免费打板和淘宝采购芯片,成本应该会低于现成开发板,而且可以根据需求自由调整 PCB 尺寸、外设取舍等。代价是需要一定的 PCB 设计知识,尤其是射频走线部分——阻抗匹配、接地设计这些还是有一定的难度。如果要提高灵敏度再加入温度补偿晶振或者放大器等,就会更加复杂。对于我这种小白不太友好。

E32-900MBL-SC

产品链接

在淘宝搜索的过程中,我发现了另外一个很适合拿来跑 POCSAG 的硬件:亿佰特(Ebyte)的 E32-900MBL-SC 评估套件,单价 39 元,买了一对两块一共 78 元。基板上焊了一颗 STM32F103C8T6 作为主控,所有 GPIO 均已引出,自带一块 OLED 屏幕,方便离线查看;射频部分标配的是 E32-900M20S,一颗基于 SX1276 的 868/915MHz LoRa 贴片模块。射频子模块自带工业级 32MHz 有源温补晶振(TCXO)和 LNA 低噪声放大器,频率稳定度和接收灵敏度都比用普通晶振的开发板或自己画板裸焊 SX1276 要好一截,也不需要靠软件 AFC 来补偿频率漂移。亿佰特还提供了完整的软件示例和原理图,上手难度比从头画 PCB 低得多。

缺点也很明显:前三个项目都设计了与外部的无线通信(Wi-Fi、MQTT 或 Telnet),收到消息后可以实时推送;但这款开发板没有集成无线联网芯片,只能离线使用。当然也可以通过引出的 GPIO 自己外挂 ESP32 或者亿佰特自己的串口转蓝牙芯片来补上。

这个方案介于"现成开发板"和"自己画板"之间:不用画 PCB,但 MCU 和射频芯片都是可以直接操作的裸片,灵活度接近自己的硬件;TCXO 也解决了频率漂移问题,比用普通晶振的开发板省心不少。

软件部分

亿佰特官方提供了一套完整的 STM32 示例代码,涵盖屏幕驱动、按键处理、LoRa 收发等常用功能,免去了从寄存器开始撸裸机的痛苦。我基于 PlatformIO 建了一个新项目,避免依赖 STM32 的 IDE,把官方示例里的驱动层和 LoRa 传输逻辑用 AI 重写了一遍,一来熟悉整套外设的 HAL 用法,二来验证 LoRa 模式下射频链路是否正常工作。确认收发通路没问题之后,才正式切入 FSK 模式的开发。这部分软件细节放在下一篇单独展开。


#技术 #POCSAG | 微信打赏 | 转载必须注明原文链接

欢迎评论

ᕦʕ •ᴥ•ʔᕤ

提交中...