一种基于定时中断触发的主从式串口通讯方法转让专利

申请号 : CN201910198771.9

文献号 : CN110032532B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 车汝才谌颖张怡马昆高进吴倩张阿莉

申请人 : 北京控制工程研究所

摘要 :

本发明涉及一种基于定时中断触发的主从式串口通讯方法,主机设有M个独立的串口数据接收缓冲区,分别用来接收M个从机的数据,具体方法如下:(1)、在主机每个控制周期结束前的固定时间点设置一个定时器中断;(2)、在定时器中断内,主机仅向各从机发出取数脉冲信号;(3)、从机收到取数脉冲信号后,向主机中对应的串口数据接收缓冲区发送最新的串口数据;(4)、在下一个控制周期起始,主机直接读取各从机对应的串口数据接收缓冲区中的串口数据,完成一次串口通信。本发明合理利用多任务并行处理的策略,优化了以往主机和从机串口通讯时的排队等待过程,节省了主机与从机的串口通讯时间。

权利要求 :

1.一种基于定时中断触发的主从式串口通讯方法,主机设有M个独立的串口数据接收缓冲区,分别用来接收M个从机的数据,其特征在于步骤如下:(1)、在主机每个控制周期结束前的固定时间点设置一个定时器中断;所述定时器中断时刻根据主机与从机之间通讯数据量大小确定,保证在当前控制周期结束前完成所有从机数据传输;

(2)、在定时器中断内,主机仅向各从机发出取数脉冲信号;

(3)、从机收到取数脉冲信号后,向主机中对应的串口数据接收缓冲区发送最新的串口数据;

(4)、在下一个控制周期起始,主机直接读取各从机对应的串口数据接收缓冲区中的串口数据,完成一次串口通信。

2.根据权利要求1所述的一种基于定时中断触发的主从式串口通讯方法,其特征在于所述串口数据接收缓冲区的容量大于单个从机串口数据单次传输的最大需求。

3.根据权利要求1所述的一种基于定时中断触发的主从式串口通讯方法,其特征在于所述定时器中断级别设置为最高优先级。

4.根据权利要求1所述的一种基于定时中断触发的主从式串口通讯方法,其特征在于所述定时器中断时刻超前于当前控制周期结束时刻的时间满足:其中,Dbyte为从机一次发送的最大串口数据量,V为串口通讯波特率,Tp为字节之间的最大间隔时间;当串口为无校验时,C为10;当串口为有校验时,C为11。

5.根据权利要求1所述的一种基于定时中断触发的主从式串口通讯方法,其特征在于所述定时器中断通过如下方法实现:(2-1)、利用主机内部的FPGA电路设计一个定时器;

(2-2)、在主机每个控制周期的起始时刻,将定时器清零,之后,采用定时器对时钟信号进行累加计时;

(2-3)、当定时器计时达到预设的时间后,FPGA电路将产生一个脉冲信号,作为定时器中断信号;

(2-4)、该定时器中断信号连接到主机的外部中断入口处,作为最高级别中断,进而触发主机的外部中断处理流程。

6.根据权利要求1所述的一种基于定时中断触发的主从式串口通讯方法,其特征在于所述取数脉冲信号的有效脉冲宽度为1~5ms,通过硬件逻辑产生并发送至从机。

7.根据权利要求1所述的一种基于定时中断触发的主从式串口通讯方法,其特征在于适用于姿轨控计算机与星敏感器之间的串口通信,其中,姿轨控计算机为主机,星敏感器为从机。

8.根据权利要求1所述的一种基于定时中断触发的主从式串口通讯方法,其特征在于所述串口为RS422串口、RS232串口或者RS485串口。

说明书 :

一种基于定时中断触发的主从式串口通讯方法

技术领域

[0001] 本发明属于航天控制领域,涉及一种卫星姿态轨道控制计算机(AOCC)与星敏感器的串口通讯方法,特别是针对控制频率高且控制周期较短的卫星控制任务。

背景技术

[0002] 基于CAST3000平台研制的小卫星,需要具备大角度快速机动和快速进入稳定工作状态的控制能力,而且还需具备在卫星成像时保持高的姿态指向精度和高稳定度的能力,因此卫星姿态轨道控制分系统必须具备快速响应能力。姿态轨道控制计算机的控制周期设计为125毫秒,以满足卫星高频率高精度控制的要求。在每一个控制周期内,姿态轨道控制计算机不仅要完成敏感器信息采集、控制律计算、控制信号输出、部件状态诊断、遥测遥控处理等内部任务,还要响应卫星其它分系统的各种指令注入和遥测数据轮询等外部任务。
[0003] 姿态轨道控制分系统配置了三台星敏感器,用于对卫星姿态进行高精度的实时测量,姿态轨道控制计算机在每个125毫秒的控制周期内,必须根据星敏感器最新的测量信息对卫星姿态进行精确计算,进而根据预先设计的控制律对卫星姿态进行实时修正(通过卫星配置的各种执行机构来完成),从而保证每个控制周期卫星姿态都保持在一个高精度指向和高稳定度的状态。
[0004] 以往小卫星型号的姿态轨道控制分系统设计中,姿态轨道控制计算机获取星敏感器的测量信息是通过RS422串口通讯来实现的,每个控制周期内,姿态轨道控制计算机必须依次与每个星敏感器进行串口通讯,所有星敏感器全部通讯完成后,姿态轨道控制计算机才能获取到全部的姿态测量信息,再执行后面的姿态确定和控制律计算任务。由于每个星敏感器的测量数据信息内容较多(多达100个字节),RS422串口通讯的波特率一般为115.2Kbps,则姿态轨道控制计算机与一个星敏感器的通讯时间约12毫秒,全部完成与三个星敏感器的串口通讯将达到36毫秒,占整个控制周期的28.8%。这将严重占用姿态轨道控制计算机时间资源,影响其它任务的处理和执行。因此小卫星型号现有的姿态轨道控制计算机与单个星敏感器排队等待的串口通讯方法,已不能满足CAST3000平台卫星控制周期任务的时间约束要求。

发明内容

[0005] 本发明的技术解决问题:针对现有技术的不足,提供一种基于定时中断触发的主从式串口通讯方法,解决主机与从机串口通信时的排队等待问题,节省主机与从机串口通讯时间。
[0006] 本发明的技术解决方案是:一种基于定时中断触发的主从式串口通讯方法,主机设有M个独立的串口数据接收缓冲区,分别用来接收M个从机的数据,该方法步骤如下:
[0007] (1)、在主机每个控制周期结束前的固定时间点设置一个定时器中断;
[0008] (2)、在定时器中断内,主机仅向各从机发出取数脉冲信号;
[0009] (3)、从机收到取数脉冲信号后,向主机中对应的串口数据接收缓冲区发送最新的串口数据;
[0010] (4)、在下一个控制周期起始,主机直接读取各从机对应的串口数据接收缓冲区中的串口数据,完成一次串口通信。
[0011] 所述串口数据接收缓冲区的容量大于单个从机串口数据单次传输的最大需求。
[0012] 所述定时器中断级别设置为最高优先级。
[0013] 所述定时器中断时刻根据主机与从机之间通讯数据量大小确定,保证在当前控制周期结束前完成所有从机数据传输。
[0014] 所述定时器中断时刻超前于当前控制周期结束时刻的时间至少大于:
[0015]
[0016] 其中,Dbyte为从机一次发送的最大串口数据量,V为串口通讯波特率,Tp为字节之间的最大间隔时间;当串口为无校验时,C为10;当串口为有校验时,C为11。
[0017] 所述定时器中断通过如下方法实现:
[0018] (2-1)、利用主机内部的FPGA电路设计一个定时器;
[0019] (2-2)、在主机每个控制周期的起始时刻,将定时器清零,之后,采用定时器对时钟信号进行累加计时;
[0020] (2-3)、当定时器计时达到预设的时间后,FPGA电路将产生一个脉冲信号,作为定时器中断信号;
[0021] (2-4)、该定时器中断信号连接到主机的外部中断入口处,作为最高级别中断,,进而触发主机的外部中断处理流程。
[0022] 所述取数脉冲信号的有效秒冲宽度为1~5ms,通过硬件逻辑产生并发送至从机。
[0023] 本方法适用于姿轨控计算机与星敏感器之间的串口通信,其中,姿轨控计算机为主机,星敏感器为从机。
[0024] 所述串口为RS422串口、RS232串口或者RS485串口。
[0025] 本发明与现有技术相比的优点是:
[0026] (1)、本发明采取多任务并行处理的运行策略:定时器中断处理中主机仅向从机输出一个取数脉冲信号,占用机时非常少,而从机通过串口回送姿态测量数据的过程,是由底层硬件自主完成的,并不占用主机运行的机时,节省了以往主机与多个从机通讯时的串行排队等待时间;
[0027] (2)、本发明利用定时器在每个控制周期内固定时刻中断输出取数脉冲信号,输出取数脉冲的时刻是根据从机串口通讯内容长度精确计算得出的,保证在本控制周期内能完成全部的从机星敏感器串口数据交互;
[0028] (3)、本发明定时器中断级别为最高等级,主机执行该中断的过程中将不受外部其他中断的影响,优先考虑从机的串口通讯时间约束要求,保证每个控制周期内主机能定时定量的发出多个从机的取数脉冲信号。

附图说明

[0029] 图1为本发明的姿态轨道控制计算机控制周期示意图。

具体实施方式

[0030] 以下结合附图和具体实施例对本发明进行详细说明。
[0031] 本发明提供了一种基于定时中断触发的主从式串口通讯方法,主机设有M个独立的串口数据接收缓冲区,分别用来接收M个从机的数据,所述串口数据接收缓冲区的容量大于单个从机串口数据单次传输的最大需求。所述串口可以为RS422串口、RS232串口或者RS485串口等。
[0032] 本发明提供的主从式串口通讯方法方法步骤如下:
[0033] (1)、在主机每个控制周期结束前的固定时间点设置一个定时器中断;所述定时器中断级别设置为最高优先级。
[0034] 所述定时器中断时刻根据主机与从机之间通讯数据量大小确定,保证在当前控制周期结束前完成所有从机数据传输。具体来说,所述定时器中断时刻超前于当前控制周期结束时刻的时间至少大于:
[0035]
[0036] 其中,Dbyte为从机一次发送的最大串口数据量,V为串口通讯波特率,Tp为字节之间的最大间隔时间;当串口为无校验时,C为10;当串口为有校验时,C为11。
[0037] (2)、在定时器中断内,主机仅向各从机发出取数脉冲信号;所述取数脉冲信号的有效秒冲宽度为1~5ms,通过硬件逻辑产生并发送至从机。
[0038] 所述定时器中断通过如下方法实现:
[0039] (2-1)、利用主机内部的FPGA电路设计一个定时器;
[0040] (2-2)、在主机每个控制周期的起始时刻,将定时器清零,之后,采用定时器对时钟信号进行累加计时;
[0041] (2-3)、当定时器计时达到预设的时间后,FPGA电路将产生一个脉冲信号,作为定时器中断信号;
[0042] (2-4)、该定时器中断信号连接到主机的外部中断入口处,进而触发主机的外部中断处理流程。
[0043] (3)、从机收到取数脉冲信号后,向主机中对应的串口数据接收缓冲区发送最新的串口数据;
[0044] (4)、在下一个控制周期起始,主机直接读取各从机对应的串口数据接收缓冲区中的串口数据,完成一次串口通信。
[0045] 实施例:
[0046] 本发明适用于姿轨控计算机与星敏感器之间的串口通信,其中,姿轨控计算机为主机,星敏感器为从机。
[0047] 姿态轨道控制计算机配置有三个独立的RS422串口,分别与三个星敏感器进行独立的通讯,每个RS422串口均带有256字节的数据接收缓冲区,RS422串口通讯波特率为115.2Kbps。
[0048] 如图1所示,姿态轨道控制计算机运行的每个控制周期为125毫秒,姿态轨道控制计算机与每个星敏感器的通讯数据量为100个字节,结合串口通讯的波特率,星敏感器串口发送数据所需的通讯的时间为12毫秒。
[0049] 姿态轨道控制计算机每个控制周期起始时刻为T0,在T0+111毫秒处,设计一个定时器中断Timer,称之为“星敏感器取数中断”,并将该定时器中断级别设置为系统最高优先级。
[0050] 每个控制周期内,重复执行如下步骤:
[0051] (a)、当系统运行到T0+111毫秒时,自动进入定时器中断Timer,在该定时器中断处理中,姿态轨道控制计算机通过硬件接口向每个星敏感器发出一个取数脉冲信号(高电平有效,电压幅值5V),整个定时器中断的处理过程仅为20微秒。退出该定时器中断后姿态轨道控制计算机继续执行控制周期内的其它任务。
[0052] (b)、每个星敏感器收到姿态轨道控制计算机发来的取数脉冲信号后,同时将各自最新的姿态测量数据(100字节)在12ms内发送给姿态轨道控制计算机,并自动保存在姿态轨道控制计算机的三个串口数据接收缓冲区,该过程由底层硬件自主完成,不占用姿态轨道控制计算机的运行机时;
[0053] (c)、在每个控制周期的任务结束时刻(T0+125毫秒),姿态轨道控制计算机与三个星敏感器的通讯结束。
[0054] (d)、下一个控制周期起始,姿态轨道控制计算机直接读取三个串口数据接收缓冲区中的数据(读取时间仅为微妙级),该数据是每个星敏感器最新的姿态测量信息,将该信息进行相应处理后便可引入卫星姿态确定和控制律计算,进而根据预先设计的控制律对卫星姿态进行实时修正(通过各种执行机构来完成),使得卫星姿态保持高精度指向和高稳定度的状态。
[0055] 本说明书未进行详细描述部分属于本领域技术人员公知常识。