Hotdry.

Article

Teletext 复用至业余无线电:低带宽信道上的数据包传输与纠错实践

将模拟电视时代的 Teletext 协议移植到 AX.25 业余无线电链路,在 300–1200 baud 速率下实现可纠错的数据页传输,提供可落地的频段选择、时序参数与实现要点。

2026-06-02systems

背景与动机

Teletext 是 1970 年代诞生于英国的一种广播数据服务,利用模拟电视信号垂直消隐期(VBI)的空白行传输数字信息。其技术特点极为鲜明:40×24 字符网格、8 色显示、基于 SAA5050 字符生成芯片的插值算法,使得在极低带宽下仍能呈现清晰可读的文本。在 1980–90 年代的欧洲,Teletext 是家庭获取天气、新闻、航班信息的主要数字渠道。

随着模拟电视停播,Teletext 逐渐淡出主流视野,但其协议设计 —— 尤其是面向低带宽、高噪声信道的优化思路 —— 为今天的业余无线电数字通信提供了可复用的范式。IEEE Spectrum 近期报道的 Spectel 项目,正是将 Teletext 帧结构移植到 AX.25 业余无线电协议栈的尝试,目标是为慢扫描电视(SSTV)提供一个纯数字的替代方案。

技术架构:Teletext over AX.25

帧结构映射

Teletext 数据页的核心是一个 40×24 字符的矩阵,每个字符占用 1 字节,整页数据量约 960 字节。控制字符用于设置颜色、闪烁效果、双高度字符等属性。Spectel 项目保留了这一结构,将完整的 Teletext 页封装为 AX.25 信息帧(I-frame)的载荷。

AX.25 作为业余无线电领域的事实标准数据链路协议,定义了地址、控制、信息、帧校验序列(FCS)等字段。其原生机制包括 CRC-16 错误检测和基于序号的 ARQ(自动重传请求)流程,但并不包含前向纠错(FEC)层。这意味着在 HF 高噪声环境下,传统 AX.25 可能因频繁重传而效率骤降。

传输参数与频段选择

Spectel 针对不同频段设定了差异化的波特率策略:

频段 波特率 单页传输时间 重复三次总时长
VHF/UHF 1200 baud ~11 秒 ~33 秒
HF 300 baud ~44 秒 ~132 秒(约 2.2 分钟)

HF 频段采用 300 baud 是 AX.25 的传统配置,对应音频频移键控(AFSK)的窄带特性,能够在电离层多径传播条件下维持可解码的信噪比。

纠错机制:重复发送与数据合并

Spectel 的核心创新在于应用层的数据恢复策略。由于 AX.25 的 ARQ 机制在弱信号场景下可能失效,Spectel 采用了应用层冗余:发送端将同一 Teletext 页连续发送三次,接收端缓存所有接收到的行数据,通过行号标识进行去重和补全。

具体流程如下:

  1. 行级粒度:Teletext 协议本身将页面划分为 24 行,每行 40 字节,行号嵌入数据流中。
  2. 缓存合并:接收端维护一个 24 行的缓冲区,首次收到某行时存入对应位置;若后续收到相同行号的重复数据,可选择覆盖或保留(取决于实现策略)。
  3. 完整性判定:当缓冲区中所有 24 行均被填充,或超时阈值到达时,页面被视为完整并提交显示。

这一策略与经典 Teletext 广播的 "轮播" 机制异曲同工 —— 原始 Teletext 服务也是循环广播页面,用户等待所需页面轮转到来。Spectel 将其改造为单播 / 组播场景下的主动冗余,规避了 AX.25 在极端条件下链路层重传的不确定性。

实现要点与工具链

Spectel 采用 Python 实现,系统分为三个模块:

  • 编辑器:用于创建和预览 Teletext 页面,支持控制字符插入、颜色设置、图形字符(sixel)编辑。
  • 编解码器:实现 AX.25 帧的封装与解封装,包括 FCS 计算、位同步、音频调制解调(AFSK)。
  • 监视器:接收端实时解码与页面渲染,集成行级缓存合并逻辑。

对于希望复现该方案的开发者,以下是关键参数清单:

  • 调制方式:AFSK 1200/2200 Hz(VHF/UHF 1200 baud)或 1600/1800 Hz(HF 300 baud)
  • 帧间隔:建议预留 100–200 ms 的帧间间隔,允许接收端时钟恢复
  • 超时阈值:HF 场景下建议设置 3–5 秒的行级超时,避免单点阻塞
  • 缓存策略:优先保留首次成功解码的行,后续重复行仅用于校验

应用场景与局限性

Spectel 的设计目标是为业余无线电操作员提供一种比 SSTV 更高效的数字图文传输方案。相比 SSTV 近 2 分钟的单幅图像传输时间,Teletext 在同等时长内可完成三轮冗余发送,且文本可读性不受噪声影响(字符级解码 vs. 模拟图像渐变)。

然而,该方案也存在明显局限:

  1. 带宽效率:重复三次的策略将有效吞吐量降低至 1/3,在信道条件良好时属于过度冗余。
  2. 无原生 FEC:AX.25 缺乏 Reed-Solomon 或卷积码等前向纠错机制,极端弱信号下仍可能整帧丢失。
  3. 字符集限制:Teletext 的字符集和图形能力(2×3 sixel)远逊于现代图像编码,不适合复杂视觉内容。

总结

Teletext 协议的复用展示了经典广播技术在低带宽数字通信中的持久生命力。通过将 40×24 字符帧结构映射到 AX.25 链路层,Spectel 在 300–1200 baud 速率范围内实现了可纠错的数据页传输。其核心设计 —— 应用层重复发送与行级合并 —— 为类似场景提供了可落地的参考实现:在链路层可靠性受限时,通过协议分层冗余换取端到端的交付保障。

对于业余无线电数字通信的开发者,这一方案的价值在于其极简的部署门槛(纯 Python 实现、通用声卡调制解调)和明确的参数边界(频段 - 速率 - 时延的对应关系)。


资料来源

  1. IEEE Spectrum: "Ham Radio Brings Teletext Back to Life" — 介绍 Spectel 项目的技术背景与实现动机
  2. AX.25 Link-Layer Protocol Specification v2.2 — 定义业余分组无线电的数据链路层帧结构与错误检测机制

systems

内容声明:本文无广告投放、无付费植入。

如有事实性问题,欢迎发送勘误至 i@hotdrydog.com