碧波液压网 欢迎你,游客。 登录 注册

基于UDP协议的CCD数据可靠传输的研究和实现

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  

  观测控制系统(OCS)是LAMOST系统的一个重要子系统。它的主要任务是管理、协调和控制各子系统操作,使整个望远镜系统有条不紊地、按计划、有步骤地进行天文观测。

  MASTER是32台CCD的管理控制模块,负责向CCD发送命令以及接受CCD的状态信息。OCS通过MASTER对CCD进行控制。CCD硬件的基本构架如图1所示。

  在观测过程中,为了保证32台CCD控制器能及时传递状态信息,能同时接收到OCS的控制命令同步动作,在MASTER和CCD控制器之间,采用UDP协议进行通讯。

  图2给出了OCS和CCD的通信过程:OCS使用TCP协议向MASTER发送命令;MASTER通过UDP协议向所有的CCD控制器广播命令;CCD控制器收到命令后发送给CCD,再进行相应的处理。CCD控制器同样使用UDP协议把CCD的状态信息发往MAS-TER;MASTER对状态做出分析后,通过TCP协议把状态信息传递给OCS。

  UDP协议是无连接的数据包协议,在正式通信前不必与对方先建立连接,直接向接收方发送数据,是一种不可靠的通信协议。信息在传送过程中很容易丢失。所以为MASTER和CCD的应用层增加可靠性设计十分必要。

  1 可靠数据传输方法设计

  在应用层添加如下机制实现命令和状态的可靠传输:帧结构、确认技术、超时和重传。

  1·1 帧结构

  采用通用I/O函数sendmsg函数和re-cvmsg函数来发送信息帧和接受确认帧。信息被封装在msghdr结构体中。帧结构如图3所示。

  hdr是自定义的数据结构,用来记录序号,时间戳和信息的总长度。序号用来实现确认技术,时间戳用来计算定时时间。

  1·2 确认技术

  用于验证是否为需要的信息。发送端为每一帧冠以序号,接收端必须在返回给发送端的应答中回射这个序号。发送端和接收端可以根据序号来验证是否是需要的信息,如果不是需要的信息,直接丢弃。

  1·3 超时和重传

  用来处理丢失的数据包。当发送端在定时时间内没有收到回复就重传数据包。定时时间的计算需要实测的往返时间(RTT)。

  计算发送每个数据包的重传超时(RTO)的公式为:

  delta=RTT-srtt

  srttrtt←g×delta

  rttvar←rttvar+h×(|delta|-rttvar)

  RT0=srtt+4×rttvar

  其中,RTT是根据接收到的回复帧中的时间戳和当前时间来计算的;srtt为平滑了的RTT估计因子;rttvar为平滑了的平均偏差估计因子;delta为测得的RTT和当前平滑了的估计因子(srtt)之间的差;g为施加在RTT估计因子上的增益因子,值为1/8;h为施加在平均偏差估计因子上的增益因子,值为1/4。当重传定时器超时的时候,对下一个RTO用一个指数退回,并采用Karn算法解决“重传二义性”的问题。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论