基于CCSDS规范的多路复用协议数据单元的解析方法和装置与流程

文档序号:38552636发布日期:2024-07-05 11:23阅读:23来源:国知局
基于CCSDS规范的多路复用协议数据单元的解析方法和装置与流程

本发明属于空间数据处理的,尤其涉及一种基于ccsds规范的多路复用协议数据单元的解析方法和装置。


背景技术:

1、ccsds的全称是空间数据系统咨询委员会(consultive committee for spacedata system,ccsds),其任务是负责开发和采纳适合于航天测控和数传系统的各种通信协议和数据处理规范,使其以标准化的方式进行数据交换与处理。其中,ccsds高级在轨系统(advanced orbit systems,aos)建议书的目的是建立一个关于空-地或空-空的数据管理系统,面向由小容量、低速率到大容量、高速率的宽带数据通信需求,提供动态的数据包自动路由和多用户联网能力,从而在不同空间局域网之间以及在空间与地面系统之间,建立起广泛的立体化的全球数据网络。多路复用协议数据单元(multiplexing protocoldataunit,mpdu)作为aos最重要的复用数据单元,将多业务的ccsds数据包封装成标准协议数据格式,已经成为空间数据处理的常用方法之一。

2、目前,空间飞行器一般使用cpu完成多路复用协议数据单元组包和解包处理,受限于cpu的性能,已经无法满足空间飞行器越来越高的多路复用协议数据单元和解包处理要求。其次,空间飞行器一般为无人值守,对故障隔离和故障自恢复有着较高的要求。


技术实现思路

1、本发明的目的是提供一种基于ccsds规范的多路复用协议数据单元的解析方法和装置,解决目前飞行器产品多路复用协议数据单元处理能力不足、故障隔离及自主恢复等突出的问题。

2、为解决上述问题,本发明的技术方案为:

3、一种基于ccsds规范的多路复用协议数据单元的解析方法,包括:

4、获取多路复用协议数据单元mpdu,对mpdu数据包进行分割及封装包解析;

5、其中,对mpdu数据包进行分割包括:

6、提取当前mpdu数据包的前两个字节的导头指针,对导头指针进行合法性判读,若合法,则对当前mpdu数据进行计数,当导头指针指向数据包中的预设位置时,启动数据接收,写入缓存;

7、接收下一mpdu数据包,提取该mpdu数据包的前两个字节的导头指针,对导头指针进行合法性判读,若合法,则继续接收数据,写入缓存;若不合法,则强制写入包分割符,包计数+1,且不再接收数据;

8、对mpdu数据包进行封装包解析包括:

9、读取缓存中的数据,判断包头数据类型,若为分割符,则退出解包;若为合法标识符,则读取封装包长度信息,根据长度信息连续输出封装包数据,并根据封装包的间隔要求,插入相应的等待周期,以进行下一封装包的解析。

10、根据本发明一实施例,采用状态机实现对mpdu数据包的分割控制:

11、s1:空闲状态,等待mpdu数据包输入;收到mpdu数据包后,提取当前mpdu数据包的前两个字节的导头指针,并对导头指针的合法性进行判读;若非法,则不启动接收,保持空闲状态s1;若合法,则对接收的数据进行计数,当导头指针指向包数据中的指定位置时,则启动接收,进入s2;

12、s2:接收数据,并将数据写入缓存;同时判断当前mpdu数据包是否结束,若结束则进入s3;

13、s3:接收下一mpdu数据包,提取该mpdu数据包的前两个字节的导头指针,并对导头指针的合法性进行判读;若合法,则进入s4,继续接收数据;若不合法,则进入s5;

14、s4:接收数据,并将数据写入缓存;同时判断当前mpdu数据包是否结束,若结束,则进入s3;若未结束,且当导头指针指向包数据中的指定位置时,进入s6;

15、s5:强制写入包分隔符,包计数+1,且不再接收数据,然后进入s1,等待下一次数据接收任务。

16、s6:强制写入包分隔符,包计数+1,然后进入s2,继续数据接收。

17、根据本发明一实施例,采用状态机实现对mpdu数据的封装包解析控制:

18、a1:空闲状态,当缓存中多于一个分割包时,则进入a2,启动解包流程;

19、a2:读取缓存数据,判断包头数据类型;若为分割符,则退出解包流程,进入a1;若为空闲包标识符,则进入a7;若为非法标识符,则进入a6;若为合法标识符,则进入a3;

20、a3:首先读取封装包长度信息,若长度信息错误,则进入a6;若长度信息正确,则根据长度信息连续输出封装包数据,结束后进入a4;

21、a4:根据封装包间隔要求,插入相应的等待周期;

22、a5:读取下一包封装包,判断包头数据类型;若为分割符,则退出解包流程,进入a8;若为空闲包标识符,则进入a7;若为非法标识符,则进入a6;若为合法标识符,则进入a3;

23、a6:非法包处理,连续清空缓存数据,直至读取到分割符,进入a8;

24、a7:空闲包处理,判断包头数据类型;若为分割符,则退出解包流程,进入a8;若为空闲包标识符,则保持当前状态;若为非法标识符,则进入a6;若为合法标识符,则进入a3;

25、a8:一次分割包解析结束,退出解包流程,进入a1,等待下一个分割包处理。

26、根据本发明一实施例,获取多路复用协议数据单元mpdu时,采用fpga对输入数据进行并行处理,处理位宽为8或16。

27、根据本发明一实施例,在mpdu数据包进行封装包解析时,通过调整封装包解析与缓存数据读取的比例,来调节封装包的输出速率,以实现mpdu的高速解包处理。

28、根据本发明一实施例,所述缓存的深度设置为封装包最大长度的多倍,采用先进先出的方式进行数据读写。

29、一种基于ccsds规范的多路复用协议数据单元的解析装置,包括:处理模块、mpdu分割控制模块、封装包解析控制模块、输出设置模块及缓存;

30、所述处理模块采用fpga对输入的mpdu数据进行并行处理,传输至所述mpdu分割控制模块;

31、所述mpdu分割控制模块用于提取当前mpdu数据包的前两个字节的导头指针,对导头指针进行合法性判读,若合法,则对当前mpdu数据进行计数,当导头指针指向数据包中的预设位置时,启动数据接收,写入缓存;接收下一mpdu数据包,提取该mpdu数据包的前两个字节的导头指针,对导头指针进行合法性判读,若合法,则继续接收数据,写入缓存;若不合法,则强制写入包分割符,包计数+1,且不再接收数据;

32、所述封装包解析控制模块用于读取缓存中的数据,判断包头数据类型,若为分割符,则退出解包;若为合法标识符,则读取封装包长度信息,根据长度信息连续输出封装包数据,并根据封装包的间隔要求,插入相应的等待周期,以进行下一封装包的解析;

33、所述输出设置模块用于通过调整封装包解析与缓存数据读取的比例,来调节封装包的输出速率,以实现mpdu的高速解包处理。

34、本发明由于采用以上技术方案,使其与现有技术相比具有以下的优点和积极效果:

35、本发明一实施例中的基于ccsds规范的多路复用协议数据单元的解析方法,采用fpga并行处理和流水的方式实现了多路复用协议数据单元的高速解包处理;并且将封装包解包流程分为多路复用协议数据单元分割和封装包解析两个流程,有效得限制了多路复用协议数据单元及封装包故障扩散的范围,满足了故障隔离和故障自恢复的可靠性要求。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1