简介ADS-B广播式自动相关监视是现代航空监视中的关键技术这份整理资料面向民航通信导航监视、空管及飞行器电子设备相关学习者与从业者系统梳理了其工作原理、系统组成与应用价值可帮助快速构建知识框架。资料收录为1份PDF文档压缩包大小仅1.34MB轻量便携便于随时查阅、打印。目前已有201人学习下载适合作为课堂教学补充或技术入门读物。内容涵盖ADS-B的定义与“自动、相关、监视、广播”四要素并逐一详解信息源、传输通道、信息处理与显示三大部分包括机载GNSS、惯性导航/参考系统等如何提供精确位置与速度数据空对空/空对地数据链如何广播ADS-B报文以及机载CDTI显示器如何生成周边态势与避碰策略。同时整理了多点地面站组网、雷达旁路运行、飞行流量管理和航迹信息共享等应用场景并附有中国民航L888航路建设和ADS-B推广背景能够为理解新一代空管监视模式提供较为完整的参考。1. ADS-B 不是雷达替代品而是把监视权交给飞机本身如果你在区域管制中心盯过雷达屏幕一定会对“目标丢失”这件事印象深刻航班飞进山区、海上或者雷达覆盖边缘标牌开始闪烁最后变成一堆残留轨迹。传统二次雷达依赖询问-应答地面不发询问飞机就不开口。ADS-B 的逻辑完全不同——飞机自己定时向外广播“我在哪、多高、多快、要往哪去”地面站和周围飞机都只需要被动收听。换句话说监视能力从地面设备的手里转移到了飞机上这带来一个反直觉的结论没有雷达的地方反而可能获得比雷达更密的航迹刷新率。对空管工程师、机务电子专业人员以及航空数据应用开发来说理解这套广播式自动相关监视机制是理解下一代空管与空对空协同的基础。这篇内容会拆解信息源、报文结构、数据链选型和地面站实现最后落到国内实践中真正卡脖子的地方。2. ADS-B 信息源与报文结构四维位置是如何拼出来的2.1 信息源组合GNSS 为主惯导与大气数据兜底ADS-B 的“Dependent相关”体现在它依赖机载导航源而不是像雷达那样独立测量。一架典型运输机的位置数据主要来自 GNSS 接收机但 GNSS 信号在极区、城市峡谷或卫星几何分布不佳时会掉精度。因此现代飞机把 GNSS 与惯性参考系统IRS、大气数据计算机ADC做融合输出经过卡尔曼滤波的混合位置与速度。常见的输入源包括信息源提供内容典型更新率失效表现GNSS (GPS/GLONASS/北斗)经纬度、椭球高度、地速、航迹角1 Hz 或更高位置跳变精度降到不可用IRS / INS姿态、航向、角速率、加速度10-50 Hz漂移随时间累积ADC / 大气数据气压高度、空速、静温1-10 Hz无法提供地速但气压高度仍有效飞行管理系统 (FMS)航路点、意图信息、航班号与航段相关丢失计划航迹ADS-B 报文中广播的高度并非直接来自 GPS 高度而是优先使用气压高度Flight Level因为空管间隔标准建立在标准气压面之上。GNSS 高度通常作为备份字段存在。这一点在做数据解析时要特别注意把 GNSS 高度当气压高度用会让垂直剖面图错得离谱。2.2 1090ES 报文格式112 位怎么装下这么多信息国际民航组织推荐的 1090 MHz 扩展电文1090ES工作在应答机应答信号的频率上采用脉冲位置调制PPM。一条 ADS-B 消息长度为 112 位前 5 位是下行链路格式DFADS-B 常用 DF17TIS-B 用 DF18接下来的 24 位是 ICAO 24 位地址码每架飞机在全球唯一中间是 56 位报文数据区按类型码TC区分不同消息类型末尾 24 位是 CRC 校验包括奇偶校验交织用于纠错识别。56 位数据区里TC9 到 18 表示空中位置报文TC1 到 4 表示识别报文呼号TC19 是速度与航向报文。位置报文使用 CPRCompact Position Reporting编码把经纬度压缩到约 10 米量级奇偶两个报文交替发送才能完全解出全球坐标。如果只收到奇数帧或偶数帧只能得到相对位置。实际解码时我一般先校验 DF 类型再按 TC 分发。下面是 Python 风格的核心逻辑不是完整工程代码而是理清字段布局def decode_adsb(msg_hex: str) - dict: raw bin(int(msg_hex, 16))[2:].zfill(112) df int(raw[0:5], 2) if df not in (17, 18): return {df: df, type: non-adsb} icao int(raw[5:29], 2) tc int(raw[32:37], 2) result {df: df, icao: f{icao:06X}, tc: tc} if tc 19: result[speed_type] int(raw[37:38], 2) # 1地速, 0空速 result[velocity] int(raw[65:75], 2) - 1 # 单位节 result[heading] int(raw[49:58], 2) / 1024.0 * 360.0 return result代码里的raw[32:37]取的是第 33 到 37 位正好对应类型码字段。velocity字段在原文中是 10 位取值范围 0 到 10231 表示 1 节减去 1 是为了处理 0 值表示“不可用”的约定。heading占用 10 位1024 对应 360 度换算成角度后要检查是否在 0-360 区间。DF17 和 DF18 都承载 ADS-B但 DF18 还可以挂 TIS-B 地面广播目标如果做地面站融合需要把 DF18 的 ICAO 地址与真实目标关联时加一层置信度判断。2.3 识别与类别字段呼号不是航班号ADS-B 识别报文的呼号字段TC1-4存的是 ICAO 呼号比如 “CCA101”。它通常等于航班号但代码共享航班会出现同一呼号多架次使用或者呼号与航班号不同的情况。机务或数据应用方如果直接用呼号关联航班系统必须在时间窗口内做二次确认。类别字段区分飞机类型轻型机、大型运输机、直升机等和监视能力是否有 TIS-B 收发能力。在空管数据融合中类别字段决定了目标的间隔标准因为不同性能类别飞机的尾流间隔不同。解析时不要只依赖单一字段建议把 TC 类型、类别子字段、速度类型三个字段联合起来判断目标属性减少误判。3. ADS-B 数据链选型1090ES、UAT 与 VDL Mode 4 的取舍逻辑3.1 三种主流数据链的技术对比数据链是 ADS-B 的物理承载层选型直接决定机载设备成本、地面站部署密度和抗干扰能力。当前主流集中在三种数据链频段调制方式协议特点主要使用者弱点1090ES1090 MHz脉冲位置调制扩展应答机电文112 位ICAO 推荐欧美非普遍频谱拥挤与 Mode S 应答机共享UAT978 MHz二进制连续相移键控CP-FSK1 MHz 信道报文更长支持天气和 TIS-B美国通用航空与 DME 互扰欧洲不采用VDL Mode 4118-137 MHz VHFD8PSK模式 4 采用 SOTDMA自组织时分多址SOTDMA欧洲早期现已淡出VHF 频段资源紧张设备生态萎缩从工程角度1090ES 的最大优势是复用现有 Mode S 应答机天线与射频前端机载改动最小。但代价是 1090 MHz 频段上同时存在传统二次雷达应答信号、Mode S 招呼询问和 ADS-B 广播在繁忙终端区冲突概率上升。UAT 的报文更长可以携带气象和地形信息但只在美国通用航空机队形成规模。VDL Mode 4 的 SOTDMA 协议在信道利用率和确定性时延上有优势可惜未形成国际标准生态。3.2 为什么 1090ES 在商用航空里胜出商用航空的核心诉求是全球互用与适航认证成本。1090ES 被写入 ICAO 附件十第 77 项修正案后所有新交付运输机都预装该能力。在中国民航局推进 ADS-B 实施时同样把 1090ES 作为强制标准这一点在项目正文中也能看到“最大下行数据长度达到 112 位最大数据率达到 1 兆比特/秒”。但“最大数据率 1 Mbit/s”只是一个理论链路速率。实际有效吞吐量受脉冲冲突影响单信道在重度拥挤下会因为比特错误率升高而损失大量报文。我在地面站日志里经常看到 DF17 的 CRC 错误率在终端区超过 20%这属于正常现象不需要立即怀疑设备故障。3.3 频谱冲突与缓解策略从天线分集到脉冲解交织1090ES 与二次雷达应答共用频率带来的直接问题是“异步干扰”。当多架飞机同时应答询问时脉冲在接收端叠加前置码无法识别整个消息被丢弃。缓解手段有三个层次地面站采用双天线分集接收利用空间隔离减少同频信号叠加概率接收机前级加带通滤波器和限幅放大器抑制带外和强信号阻塞解调阶段采用解交织算法把重叠的两个消息按脉冲优先级拆分。开源实现中Mode-S解码库大多包含这一模块但实际效果取决于接收机前端带宽。如果是自建地面站我倾向于把天线尽量远离机场终端区和繁忙航路交叉点或者在馈线端增加 1090 MHz 专用陶瓷滤波器这样能显著降低 LTE 与航空频段的邻频干扰。澳大利亚的 ADS-B 地面站就大量采用分布式小站而非大功率中心站这种布局天然分散了冲突概率。4. ADS-B 地面站与机载端实现从射频天线到航迹显示的完整链路4.1 地面站接收链路的基本构成ADS-B 地面站核心功能是接收 1090 MHz 广播、解码报文、校验合法性、提取目标轨迹并输出给空管自动化系统。最简单的验证性地面站可以这样搭建天线1090 MHz 专用天线或 1/4 波长地网天线接收前端RTL-SDRR820T2 芯片或专用 ADS-B 接收机采样率 2.4 MSPS 以上信号处理RTL-SDR 输出 I/Q 数据经dump1090解码数据落格解码结果转化为 JSON 或 ASTERIX CAT021 报文交给显示终端。天线 - 低噪声放大器 - 带通滤波器 - ADC(2.4 MSPS) - 数字下变频 - 脉冲解调 - 位同步 - CRC校验 - 报文解析 - 航迹滤波每一级都有坑。低噪声放大器增益过高会饱和导致近距强信号阻塞带通滤波器带宽过窄会让脉冲边沿失真影响 PPM 解码效果。我调 LNA 增益的原则是在中低流量时段观察前置码检出率挑检出率最高且无持续饱和的值而不是追求最大增益。4.2 解码与航迹处理CRC 失败并不等于报文无用报文的 CRC 是 24 位循环冗余校验但 ADS-B 使用 CRC 做两种事错误检测和地址修正。由于 24 位 ICAO 地址包含在 CRC 计算中当 CRC 失败时可以通过尝试常见地址前缀来部分恢复消息。某些解码器会输出“CRC failed but corrected”这类报文在航迹显示中通常标记为“不可靠”但在低密度区域可作参考。实际工程里更常用的方式是报文级置信度评估# 以 dump1090 输出为例非标准输出已省略 dump1090 --net --net-ro-size 1000 --net-ro-rate 5 \ --gain 49.6 --ppm 5 --oversample参数中--gain 49.6把接收增益固定为 49.6 dB不用自动增益因为 AGC 在脉冲信号下会持续调整导致脉冲压缩。--ppm 5补偿 SDR 晶振频率偏移这个值要按实际环境启动后校准方法是用已知频率的信号源或对比多台接收机的时间偏移。--oversample开启过采样能在一定程度上降低采样定时误差导致的误码。4.3 机上态势显示CDTI 如何把报文变成可操作的提示机载端把 ADS-B IN 信息与 CDTI驾驶舱交通信息显示器融合后飞行员看到的不是一个简单的点而是带有趋势矢量的目标符号。常见显示逻辑目标与本机相对高度小于某个阈值且水平距离快速缩小时符号变黄同时触发 TCAS 冲突判定时显示“TRAFFIC”并伴随音响告警ATSA-AIRB 应用则直接显示邻近飞机标识让机组在目视条件下主动避让。这个过程涉及时间戳对齐。ADS-B 报文中的时刻是 GNSS 授时而机载惯导和雷达数据用的是系统时钟两个时钟源如果不做同步相对位置计算会产生几十米的偏差。实际工程中需要用一个时基转换模块把接收时间统一到 GPS 时间。判断一个 ADS-B 设备是否适合机载使用就看它有没有做这个时间同步而不是只看接收灵敏度。5. 国内 ADS-B 落地观察从 ADS-C 到广播式体制的演进与低成本接收实践5.1 ADS-C 与 ADS-B 的工程差别合约式通信的昂贵教训项目正文提到我国很早就建设了基于 FANS 1/A 的 ADS-C 监视工作站但并未带来预期效果。原因之一在于 ADS-C 的“合约式”传输特性飞机只有在收到地面站上行申请后才发送报告且按照约定内容选择字段、周期和目的地。这条链路依赖 SITA 或地面运营商按报文条数计费航迹越多、周期越短费用越高。高额运行成本使其难以常态化使用。ADS-B 把合约去掉改为自发广播地面站不收钱飞机只负责公开自己的数据。这不只是通信方式的改变更是运行经济性的改变。不过 ADS-B 的信息格式比 ADS-C 更“扁平”无法像 ADS-C 那样传递完整的意图航路点列表这也是为什么 ADS-B 落地后仍然需要 CPDLC 数据链补充通信能力。欧洲 CASCADE 项目把 ADS-B 与 Link2000 并行推进的原因就在于此。5.2 数据链国产化的现实边界国内现役地空数据链采用 ARINC 618/622 协议最大下行数据长度 32 位速率 2400 bit/s与 1090ES 的 112 位、1 Mbit/s 差距悬殊。要兼容 ADS-B不能靠升级软件必须换数据链。从技术选型看1090ES 是唯一进入国际民航组织附件十的方案但国内公共航空机队与通航机队的设备差异很大。通航大量使用 VHF 电台UAT 在美国通航的生态已经成熟国内如果要覆盖低空经济场景UAT 或 5G-ATG 都可能成为补充数据链。实际项目和论文里我建议把“数据链”和“应用服务”解耦传送层用 1090ES 保证基本监视服务层通过地面网络叠加气象、情报和态势感知。这样既满足全球互用又为国产系统留出服务化空间。5.3 低成本 ADS-B 数据应用技巧用接收数据反推基础设施质量最后分享一个可复现的验证方法适合拿到一套 ADS-B 数据流后快速评估其质量。不依赖商业软件用 Python 即可完成。import json import time def evaluate_feed(one_minute_lines: list): total 0 icao_set set() crc_err 0 pos_ok 0 for line in one_minute_lines: msg json.loads(line) total 1 icao_set.add(msg.get(hex)) if not msg.get(crc_ok, True): crc_err 1 if msg.get(lat) and msg.get(lon): pos_ok 1 return { messages_per_minute: total, unique_aircraft: len(icao_set), crc_error_rate: crc_err / total if total else 0, position_fraction: pos_ok / total if total else 0, }这个逻辑不是简单统计吞吐量而是把三个指标放在一起评估messages_per_minute单机报文率约为每秒 2 条如果每架飞机每分钟只有几十条则说明丢包严重crc_error_rate现场环境下超过 0.3 就需要检查前端滤波和天线位置position_fraction位置报文占比低于 0.5 时多半是 DF17 与 DF18 混用或者存在大量非位置报文识别、速度。把这段脚本挂到数据流上持续运行可以快速发现接收机劣化、干扰源变化和网络丢包问题。相比依赖设备厂商的自检报告这种方式直接反映真实接收质量也更容易定位到链路中的薄弱环节。ADS-B 在空管和通航领域的应用还会继续深化但从原理层面把报文、数据链与地面处理这一整条链路吃透任何时候都不会过时。本文还有配套的精品资源点击获取