您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>电子百科>通信技术>基础知识>

包装协议数据单元 - AOS上行链路控制器的设计与实现

2011年06月29日 10:17 单片机与嵌入式系统 作者:丁艳会,郝俊寿 用户评论(0
(3)包装协议数据单元

  包装协议数据单元(E_PDU)如下:

  

 

  2 控制器的实现

  在控制器的实现平台的选择上使用了我国方舟(ARCA)科技公司GT2000嵌入式开发板,因为GT2000是方舟科技的一款基于方舟二号为核心的嵌入式CPU产品,是我国第一个具有自主知识产权CPU。它在主频400 MHz下运行时最大功耗只有360 mW,具有高性能、低功耗的特点,对于研究具有我国自主知识产权的AOS的底层接口器件、关键模块和设备具有重要的意义。GT2000提供两个串口,一个以太网口及其他外设接口。链路控制器就是利用其提供的以太网口进行数据传输。同时由于GT2000内嵌Linux操作系统使进程间通信机制十分灵活,而且Linux系统所提供的Socket通信接口和各种丰富的系统异步时间处理方式为在其上快速地处理数据提供了极大的方便。

  根据前述控制器所完成的功能,在Linux平台上采用标准的C语言进行实现。

  上行链路控制器工作过程中最重要的是解复用功能。首先判断首导头指针,当首导头的指针在M_PDU数据域长度范围内时,M_PDU模块把首导头指针所指示的上一个CCSDS包的剩余部分放入CCSDS缓冲区,此时CCSDS缓冲区的数据是一个完整的CCSDS格式包,然后判断它的数据类型,如果是包装数据,则调用DE_PDU模块,进行解包,然后进行转发,缓冲区清零。接着处理M_PDU包区中新开始的CCSDS包,首先判断该CC-SDS导头是否包含长度域,如果不包含长度域,则把该M_PDU包的剩余部分全部放入CCSDS缓冲区,继续接收下一个M_PDU包。如果包含有长度域,则计算此CCSDS包的长度,并与M_PDU剩余的长度进行比较,CCSDS包的长度大于M_PDU剩余长度时,则把M_PDU的剩余部分数据全部放入CCSDS缓冲区,继续接收下一个M_PDU数据。CCSDS包的长度等于M_PDU剩余长度时,则把M_PDU的剩余部分数据全部放入CCSDS缓冲区,继续接收下一个M_PDU数据。CCSDS包的长度小于M_PDU剩余长度时,则把此CCSDS包全部放入CCSDS缓冲区,判断其版本号,如果是可复用数据就直接转发出去,如果是不可复用数据,则调用解包装模块DE_PDU,进行解包,再进行转发,然后循环判断M_PDU中下一个CCSDS包,直至CCSDS包的长度大于或等于M_PDU剩余长度后,继续接收时的剩余部分数据全部放入CCSDS缓冲区,继续接收下一个M_PDU数据。解复用模块的工作流程如图2所示。

  

 

  3 测试及验证

  链路控制器可以支持多路数据,首先模拟一些真实的数据:非定界字符串,IPV6,IPV4,CP_PDU,把PC机和控制器通过以太网口相联,把模拟的各种数据发送给控制器,控制器接收数据进行识别处理。测试结果表明该控制器可以较好地进行数据的解VCA和解复用,无丢包现象,工作稳定、可靠。

  4 结语

  本文介绍了基于国产芯片设计的AOS系统的上行链路控制器,采用该控制器可以较好地处理模拟的航天器数据,并且对数据传输中的一些关键技术进行了验证,为今后进一步的研究打下基础。

非常好我支持^.^

(1) 100%

不好我反对

(0) 0%

( 发表人:叶子 )

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!