APP下载

一种在DSP中实现航管S模式闭锁协议的方法

2017-03-17卜凡湘魏祥利李辉

电子技术与软件工程 2016年16期

卜凡湘++魏祥利++李辉

摘 要

航管S模式是为解决传统A/C模式监视能力不足而设计的最新监视方法,闭锁协议是S模式协议中重要的组成部分。本文介绍了S模式闭锁协议,并采用TMS320F28335 DSP完成了S模式应答机中闭锁协议的实现。

【关键词】S模式 闭锁 DSP

1 引言

航管S模式(Mode Select)是欧美国家开发的先进航管协议,用于解决传统A/C模式监视容量不足的问题。传统A/C模式下,随着空域内的飞机数量增多,应答信号之间会产生严重的混扰和串扰,对日交通流量在1000架次以上的机场,其监视能力已接近极限。S模式下为每架飞机分配一个唯一的24位地址,只需根据飞机地址对飞机单独询问,同时只有一架飞机在应答,避免了应答信号的混扰,提高了其监视容量。

地面二次雷达为获取空域内飞机的地址,会周期性的发出全呼叫询问,而全呼叫询问是针对所有飞机的,为避免出现类似于A/C模式下的混扰问题,在S模式中设计有闭锁协议(Lockout),以减少同时出现的应答信号数量。本文介绍了闭锁协议和一种利用DSP实现闭锁协议的方法。

2 闭锁协议(Lockout)

闭锁协议用于控制S模式应答机对全呼叫询问的应答。通过特定的S模式询问启动闭锁状态,在闭锁状态下,对指定的全呼叫询问不产生应答。

2.1 S模式询问类型

S模式询问中包含56位或112位数据,定义如表1,其中前5位为UF字段,表示询问类型。UF4、5、20和21为监视询问,UF11为全呼叫询问。为和传统A/C模式兼容,S模式应答机还可以接收纯脉冲格式的ATCRBS/S模式全呼叫询问。

UF4、5、20和21的询问中的SD字段内容受DI字段控制,如表2所示。

2.2 闭锁协议

S模式应答机闭锁协议包括非选择性闭锁协议和多站闭锁协议。通过UF4、5、20和21询问来启动闭锁协议。

2.2.1 非选择性闭锁协议

以下条件任意一条满足时启动非选择性闭锁协议:a) PC=1;b) DI=1或7,LOS=1,IIS=0。启动后进入非选择性闭锁状态,持续18s±1s,在闭锁状态下,对CL=0,IC=0的UF11全呼叫询问和ATCRBS/S模式全呼叫询问不产生应答。在闭锁状态下,如果重新接收到启动条件,则重新计时18s±1s。

2.2.2 多站闭锁协议

多站闭锁协议分为II多站闭锁协议和SI多站闭锁协议。II多站闭锁协议允许对15个地面站的全呼叫询问进行闭锁,SI多站闭锁协议允许对63个地面站的全呼叫询问进行闭锁。对各地面站分别控制,互不影响。IIS=1~15时,表示II站点1~15,SIS=1~63时,表示SI站点1~63。在全呼叫询问中,当CL=0,IC=1~15时,表示II站点1~15,CL=1,IC=1~15时,表示SI站点1~15,CL=2~4,IC=0~15时,表示SI站点16~63。

当DI=1或7,LOS=1,IIS为某一个站点号,启动对该地面站的II多站闭锁协议;当DI=3,LSS=1,SIS为某一个站点号,启动对该地面站的SI多站闭锁协议。针对某一个地面站的闭锁协议启动后进入闭锁状态,持续18s±1s,在闭锁状态下,对带有该地面站站点号的UF11全呼叫询问不产生应答。可同时对多个地面站进行闭锁。在闭锁状态下,如果重新接收到启动条件,则重新计时18s±1s。

3 在DSP中的实现闭锁协议

本项目采用DSP TMS320F28335,工作频率设置为100MHz。

该DSP中有3个32位的CPU计数器,为实现S模式闭锁协议,难点在于如何实现79个独立工作的计时器。本项目复用1个CPU计数器构建79个计时器。

3.1 实现原理

CPU计数器在加载计数值后,按系统时钟减1计数,计到0后触发CPU中断。当只有1个计时器需要工作时,向CPU计数器加载计数值1,800,000,000(即18s),计数到0即完成了该计时器的18s计时。当1个计时器计时完成之前需要启动第二个计时器,设当前的计数值为N,在CPU计数器计数到0后,只需重新启动计数器,并设定计数值为1,800,000,000-N,当CPU计数器再次计数到0后,即完成了第二个计时器的18s计时。因此,只要合理设置每个计时器的真实计数周期,可以复用1个计数器完成79个独立工作的计时器。

3.2 实现方法

定义变量Run_Flag、Run_Tx和PRD_VEC,Run_Flag表示非选择性闭锁和多站闭锁的状态,Run_Tx用于存储处于计时状态的计时器序列,PRD_VEC用于存储Run_Tx序列中各计时器的计数修正值。这三个变量的对应关系如图1所示。

当需要启动计时器时,对应的Run_Flag位置1,在Run_Tx队列的末尾添加该计时器位号,计算该计时器的计数修正值,写入PRD_VEC队列的末尾。

当需要重启动计时器时,在Run_Tx队列中,将该计时器移到队列尾部,重新计算该计时器的计数修正值,写入PRD_VEC队列的末尾。计时器重启动流程如图2所示。

當计数器计到0后,即Run_Tx队列中的第一个计时器对应的闭锁状态结束,将其对应的Run_Flag标志位清0;将Run_Tx队列向前移1位;将PRD_VEC队列的第一个写入CPU计数器,然后将PRD_VEC队列向前移1位,后续的其他计时器继续计时。

在接收到全呼叫询问后,通过判断对应的Run_Flag标志位,确定是否被闭锁,进而确定是否需要应答,完成S模式应答机闭锁协议。

4 分析

CPU计数器计数到0后,需在中断服务程序中重新加载计数值才能重新开始计数,中断服务程序的执行时间及中断等待时间会影响计时准确度。经实际测试,中断服务程序执行时间<5μs,中断等待时间<70μs,在所有79个计时器同时计时的情况下,最大累积误差不大于5.85ms,远小于±1s的要求。

5 结论

该方法可以在DSP中实现S模式应答机闭锁协议,且对DSP的资源消耗少,时间误差小,可以满足实际应用需求。

参考文献

[1]Surveillance radar and collision avoidance systems[S].Annex 10 to the convention on international civil aviation.ICAO,2007.

[2]DO-181E Minimum Operational Performance Standards for Air Traffic Control System/Mode Select(ATCRBS/Mode S)Airborne Equipment[S].RTCA,2011.

[3]刘陵顺等.TMS320F28335 DSP原理及开发编程[M].北京:北京航空航天大学出版社,2011(12).

作者单位

陕西长岭电子科技有限责任公司 陕西省宝鸡市 721006