VDL-4协议在A-SMGCS中的研究与实现

需积分: 9 4 下载量 140 浏览量 更新于2024-07-30 收藏 264KB PDF 举报
"VDL-4协议的研究与实现——吉林大学硕士论文,作者冷东波,导师于秀峰副教授,专业计算机系统结构,工学硕士,研究方向计算机通信与网络通信" 本文主要探讨了VDL-4(VHF Data Link Mode 4)协议在“高级场面活动引导和控制系统(A-SMGCS)”项目中的应用和实现。VDL-4是一种用于航空通信的数字数据链路协议,它在空中交通管理(ATM)领域扮演着重要角色,特别是与广播式自动相关监视(ADS-B)系统的结合使用。 首先,VDL-4协议栈的两个关键子层,即VSS(Volume Standard Sublayer)子层和LME(Logical Management Entity)子层,被详细研究和实现。VSS子层负责数据传输的物理层功能,包括信号的发射和接收,以及与预约机制的交互。预约机制是VDL-4的一个重要特性,它允许空中交通服务提供者预先分配通信频道,确保数据传输的高效性和可靠性。 LME子层则关注网络接入和同步数据帧的广播。这一子层处理网络连接的建立、维护和管理,确保多个用户公平、有序地接入网络。同步数据帧的广播使得信息能同时传递给多个接收者,对于提高空域管理效率至关重要。 在实现过程中,作者冷东波可能涉及了协议解析、错误检测与纠正、信道编码与解码、同步算法以及与ADS-B系统接口的设计等多个方面。ADS-B技术通过广播飞机的位置和其他关键信息,增强了空中交通的可见性和安全性,而VDL-4协议则为这种广播提供了稳定的数据传输平台。 此外,论文还可能涵盖了相关实验验证、性能分析和优化措施,以证明所实现的VDL-4协议栈的可行性和效率。通过这些研究,作者对VDL-4协议的理解得以深化,并为A-SMGCS系统及其他相关航空通信应用提供了技术支持。 关键词包括VDL-4、预约表、LME和VSS,反映了论文的核心研究内容。这篇硕士论文的完成,不仅对航空通信领域的理论研究有所贡献,也为实际系统开发提供了实践经验。

解释parser.add_argument( "-r", "--resume", default=None, help="weights path for resume") parser.add_argument( "--slim_config", default=None, type=str, help="Configuration file of slim method.") parser.add_argument( "--enable_ce", type=bool, default=False, help="If set True, enable continuous evaluation job." "This flag is only used for internal test.") parser.add_argument( "--fp16", action='store_true', default=False, help="Enable mixed precision training.") parser.add_argument( "--fleet", action='store_true', default=False, help="Use fleet or not") parser.add_argument( "--use_vdl", type=bool, default=False, help="whether to record the data to VisualDL.") parser.add_argument( '--vdl_log_dir', type=str, default="vdl_log_dir/scalar", help='VisualDL logging directory for scalar.') parser.add_argument( '--save_prediction_only', action='store_true', default=False, help='Whether to save the evaluation results only') args = parser.parse_args() return args def run(FLAGS, cfg): # init fleet environment if cfg.fleet: init_fleet_env() else: # init parallel environment if nranks > 1 init_parallel_env() if FLAGS.enable_ce: set_random_seed(0) # build trainer trainer = Trainer(cfg, mode='train') # load weights if FLAGS.resume is not None: trainer.resume_weights(FLAGS.resume) elif 'pretrain_weights' in cfg and cfg.pretrain_weights: trainer.load_weights(cfg.pretrain_weights) # training trainer.train(FLAGS.eval) def main(): FLAGS = parse_args() cfg = load_config(FLAGS.config) cfg['fp16'] = FLAGS.fp16 cfg['fleet'] = FLAGS.fleet cfg['use_vdl'] = FLAGS.use_vdl cfg['vdl_log_dir'] = FLAGS.vdl_log_dir cfg['save_prediction_only'] = FLAGS.save_prediction_only merge_config(FLAGS.opt) place = paddle.set_device('gpu' if cfg.use_gpu else 'cpu') if 'norm_type' in cfg and cfg['norm_type'] == 'sync_bn' and not cfg.use_gpu: cfg['norm_type'] = 'bn' if FLAGS.slim_config: cfg = build_slim_model(cfg, FLAGS.slim_config) check.check_config(cfg) check.check_gpu(cfg.use_gpu) check.check_version() run(FLAGS, cfg)

2023-06-13 上传