CN110032532A - 一种基于定时中断触发的主从式串口通讯方法 - Google Patents
一种基于定时中断触发的主从式串口通讯方法 Download PDFInfo
- Publication number
- CN110032532A CN110032532A CN201910198771.9A CN201910198771A CN110032532A CN 110032532 A CN110032532 A CN 110032532A CN 201910198771 A CN201910198771 A CN 201910198771A CN 110032532 A CN110032532 A CN 110032532A
- Authority
- CN
- China
- Prior art keywords
- slave
- host
- serial
- interruption
- timer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B64—AIRCRAFT; AVIATION; COSMONAUTICS
- B64G—COSMONAUTICS; VEHICLES OR EQUIPMENT THEREFOR
- B64G1/00—Cosmonautic vehicles
- B64G1/22—Parts of, or equipment specially adapted for fitting in or to, cosmonautic vehicles
- B64G1/24—Guiding or controlling apparatus, e.g. for attitude control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
- G06F13/26—Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4286—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0002—Serial port, e.g. RS232C
Abstract
本发明涉及一种基于定时中断触发的主从式串口通讯方法,主机设有M个独立的串口数据接收缓冲区,分别用来接收M个从机的数据,具体方法如下:(1)、在主机每个控制周期结束前的固定时间点设置一个定时器中断;(2)、在定时器中断内,主机仅向各从机发出取数脉冲信号;(3)、从机收到取数脉冲信号后,向主机中对应的串口数据接收缓冲区发送最新的串口数据;(4)、在下一个控制周期起始,主机直接读取各从机对应的串口数据接收缓冲区中的串口数据,完成一次串口通信。本发明合理利用多任务并行处理的策略,优化了以往主机和从机串口通讯时的排队等待过程,节省了主机与从机的串口通讯时间。
Description
技术领域
本发明属于航天控制领域,涉及一种卫星姿态轨道控制计算机(AOCC) 与星敏感器的串口通讯方法,特别是针对控制频率高且控制周期较短的卫星控制任务。
背景技术
基于CAST3000平台研制的小卫星,需要具备大角度快速机动和快速进入稳定工作状态的控制能力,而且还需具备在卫星成像时保持高的姿态指向精度和高稳定度的能力,因此卫星姿态轨道控制分系统必须具备快速响应能力。姿态轨道控制计算机的控制周期设计为125毫秒,以满足卫星高频率高精度控制的要求。在每一个控制周期内,姿态轨道控制计算机不仅要完成敏感器信息采集、控制律计算、控制信号输出、部件状态诊断、遥测遥控处理等内部任务,还要响应卫星其它分系统的各种指令注入和遥测数据轮询等外部任务。
姿态轨道控制分系统配置了三台星敏感器,用于对卫星姿态进行高精度的实时测量,姿态轨道控制计算机在每个125毫秒的控制周期内,必须根据星敏感器最新的测量信息对卫星姿态进行精确计算,进而根据预先设计的控制律对卫星姿态进行实时修正(通过卫星配置的各种执行机构来完成),从而保证每个控制周期卫星姿态都保持在一个高精度指向和高稳定度的状态。
以往小卫星型号的姿态轨道控制分系统设计中,姿态轨道控制计算机获取星敏感器的测量信息是通过RS422串口通讯来实现的,每个控制周期内,姿态轨道控制计算机必须依次与每个星敏感器进行串口通讯,所有星敏感器全部通讯完成后,姿态轨道控制计算机才能获取到全部的姿态测量信息,再执行后面的姿态确定和控制律计算任务。由于每个星敏感器的测量数据信息内容较多(多达100个字节),RS422串口通讯的波特率一般为115.2Kbps,则姿态轨道控制计算机与一个星敏感器的通讯时间约12毫秒,全部完成与三个星敏感器的串口通讯将达到36毫秒,占整个控制周期的28.8%。这将严重占用姿态轨道控制计算机时间资源,影响其它任务的处理和执行。因此小卫星型号现有的姿态轨道控制计算机与单个星敏感器排队等待的串口通讯方法,已不能满足CAST3000平台卫星控制周期任务的时间约束要求。
发明内容
本发明的技术解决问题:针对现有技术的不足,提供一种基于定时中断触发的主从式串口通讯方法,解决主机与从机串口通信时的排队等待问题,节省主机与从机串口通讯时间。
本发明的技术解决方案是:一种基于定时中断触发的主从式串口通讯方法,主机设有M个独立的串口数据接收缓冲区,分别用来接收M个从机的数据,该方法步骤如下:
(1)、在主机每个控制周期结束前的固定时间点设置一个定时器中断;
(2)、在定时器中断内,主机仅向各从机发出取数脉冲信号;
(3)、从机收到取数脉冲信号后,向主机中对应的串口数据接收缓冲区发送最新的串口数据;
(4)、在下一个控制周期起始,主机直接读取各从机对应的串口数据接收缓冲区中的串口数据,完成一次串口通信。
所述串口数据接收缓冲区的容量大于单个从机串口数据单次传输的最大需求。
所述定时器中断级别设置为最高优先级。
所述定时器中断时刻根据主机与从机之间通讯数据量大小确定,保证在当前控制周期结束前完成所有从机数据传输。
所述定时器中断时刻超前于当前控制周期结束时刻的时间至少大于:
其中,Dbyte为从机一次发送的最大串口数据量,V为串口通讯波特率,Tp为字节之间的最大间隔时间;当串口为无校验时,C为10;当串口为有校验时,C为11。
所述定时器中断通过如下方法实现:
(2-1)、利用主机内部的FPGA电路设计一个定时器;
(2-2)、在主机每个控制周期的起始时刻,将定时器清零,之后,采用定时器对时钟信号进行累加计时;
(2-3)、当定时器计时达到预设的时间后,FPGA电路将产生一个脉冲信号,作为定时器中断信号;
(2-4)、该定时器中断信号连接到主机的外部中断入口处,作为最高级别中断,进而触发主机的外部中断处理流程。
所述取数脉冲信号的有效秒冲宽度为1~5ms,通过硬件逻辑产生并发送至从机。
本方法适用于姿轨控计算机与星敏感器之间的串口通信,其中,姿轨控计算机为主机,星敏感器为从机。
所述串口为RS422串口、RS232串口或者RS485串口。
本发明与现有技术相比的优点是:
(1)、本发明采取多任务并行处理的运行策略:定时器中断处理中主机仅向从机输出一个取数脉冲信号,占用机时非常少,而从机通过串口回送姿态测量数据的过程,是由底层硬件自主完成的,并不占用主机运行的机时,节省了以往主机与多个从机通讯时的串行排队等待时间;
(2)、本发明利用定时器在每个控制周期内固定时刻中断输出取数脉冲信号,输出取数脉冲的时刻是根据从机串口通讯内容长度精确计算得出的,保证在本控制周期内能完成全部的从机星敏感器串口数据交互;
(3)、本发明定时器中断级别为最高等级,主机执行该中断的过程中将不受外部其他中断的影响,优先考虑从机的串口通讯时间约束要求,保证每个控制周期内主机能定时定量的发出多个从机的取数脉冲信号。
附图说明
图1为本发明的姿态轨道控制计算机控制周期示意图。
具体实施方式
以下结合附图和具体实施例对本发明进行详细说明。
本发明提供了一种基于定时中断触发的主从式串口通讯方法,主机设有 M个独立的串口数据接收缓冲区,分别用来接收M个从机的数据,所述串口数据接收缓冲区的容量大于单个从机串口数据单次传输的最大需求。所述串口可以为RS422串口、RS232串口或者RS485串口等。
本发明提供的主从式串口通讯方法方法步骤如下:
(1)、在主机每个控制周期结束前的固定时间点设置一个定时器中断;所述定时器中断级别设置为最高优先级。
所述定时器中断时刻根据主机与从机之间通讯数据量大小确定,保证在当前控制周期结束前完成所有从机数据传输。具体来说,所述定时器中断时刻超前于当前控制周期结束时刻的时间至少大于:
其中,Dbyte为从机一次发送的最大串口数据量,V为串口通讯波特率,Tp为字节之间的最大间隔时间;当串口为无校验时,C为10;当串口为有校验时,C为11。
(2)、在定时器中断内,主机仅向各从机发出取数脉冲信号;所述取数脉冲信号的有效秒冲宽度为1~5ms,通过硬件逻辑产生并发送至从机。
所述定时器中断通过如下方法实现:
(2-1)、利用主机内部的FPGA电路设计一个定时器;
(2-2)、在主机每个控制周期的起始时刻,将定时器清零,之后,采用定时器对时钟信号进行累加计时;
(2-3)、当定时器计时达到预设的时间后,FPGA电路将产生一个脉冲信号,作为定时器中断信号;
(2-4)、该定时器中断信号连接到主机的外部中断入口处,进而触发主机的外部中断处理流程。
(3)、从机收到取数脉冲信号后,向主机中对应的串口数据接收缓冲区发送最新的串口数据;
(4)、在下一个控制周期起始,主机直接读取各从机对应的串口数据接收缓冲区中的串口数据,完成一次串口通信。
实施例:
本发明适用于姿轨控计算机与星敏感器之间的串口通信,其中,姿轨控计算机为主机,星敏感器为从机。
姿态轨道控制计算机配置有三个独立的RS422串口,分别与三个星敏感器进行独立的通讯,每个RS422串口均带有256字节的数据接收缓冲区, RS422串口通讯波特率为115.2Kbps。
如图1所示,姿态轨道控制计算机运行的每个控制周期为125毫秒,姿态轨道控制计算机与每个星敏感器的通讯数据量为100个字节,结合串口通讯的波特率,星敏感器串口发送数据所需的通讯的时间为12毫秒。
姿态轨道控制计算机每个控制周期起始时刻为T0,在T0+111毫秒处,设计一个定时器中断Timer,称之为“星敏感器取数中断”,并将该定时器中断级别设置为系统最高优先级。
每个控制周期内,重复执行如下步骤:
(a)、当系统运行到T0+111毫秒时,自动进入定时器中断Timer,在该定时器中断处理中,姿态轨道控制计算机通过硬件接口向每个星敏感器发出一个取数脉冲信号(高电平有效,电压幅值5V),整个定时器中断的处理过程仅为20微秒。退出该定时器中断后姿态轨道控制计算机继续执行控制周期内的其它任务。
(b)、每个星敏感器收到姿态轨道控制计算机发来的取数脉冲信号后,同时将各自最新的姿态测量数据(100字节)在12ms内发送给姿态轨道控制计算机,并自动保存在姿态轨道控制计算机的三个串口数据接收缓冲区,该过程由底层硬件自主完成,不占用姿态轨道控制计算机的运行机时;
(c)、在每个控制周期的任务结束时刻(T0+125毫秒),姿态轨道控制计算机与三个星敏感器的通讯结束。
(d)、下一个控制周期起始,姿态轨道控制计算机直接读取三个串口数据接收缓冲区中的数据(读取时间仅为微妙级),该数据是每个星敏感器最新的姿态测量信息,将该信息进行相应处理后便可引入卫星姿态确定和控制律计算,进而根据预先设计的控制律对卫星姿态进行实时修正(通过各种执行机构来完成),使得卫星姿态保持高精度指向和高稳定度的状态。
本说明书未进行详细描述部分属于本领域技术人员公知常识。
Claims (9)
1.一种基于定时中断触发的主从式串口通讯方法,主机设有M个独立的串口数据接收缓冲区,分别用来接收M个从机的数据,其特征在于步骤如下:
(1)、在主机每个控制周期结束前的固定时间点设置一个定时器中断;
(2)、在定时器中断内,主机仅向各从机发出取数脉冲信号;
(3)、从机收到取数脉冲信号后,向主机中对应的串口数据接收缓冲区发送最新的串口数据;
(4)、在下一个控制周期起始,主机直接读取各从机对应的串口数据接收缓冲区中的串口数据,完成一次串口通信。
2.根据权利要求1所述的一种基于定时中断触发的主从式串口通讯方法,其特征在于所述串口数据接收缓冲区的容量大于单个从机串口数据单次传输的最大需求。
3.根据权利要求1所述的一种基于定时中断触发的主从式串口通讯方法,其特征在于所述定时器中断级别设置为最高优先级。
4.根据权利要求1所述的一种基于定时中断触发的主从式串口通讯方法,其特征在于所述定时器中断时刻根据主机与从机之间通讯数据量大小确定,保证在当前控制周期结束前完成所有从机数据传输。
5.根据权利要求1所述的一种基于定时中断触发的主从式串口通讯方法,其特征在于所述定时器中断时刻超前于当前控制周期结束时刻的时间至少大于:
其中,Dbyte为从机一次发送的最大串口数据量,V为串口通讯波特率,Tp为字节之间的最大间隔时间;当串口为无校验时,C为10;当串口为有校验时,C为11。
6.根据权利要求1所述的一种基于定时中断触发的主从式串口通讯方法,其特征在于所述定时器中断通过如下方法实现:
(2-1)、利用主机内部的FPGA电路设计一个定时器;
(2-2)、在主机每个控制周期的起始时刻,将定时器清零,之后,采用定时器对时钟信号进行累加计时;
(2-3)、当定时器计时达到预设的时间后,FPGA电路将产生一个脉冲信号,作为定时器中断信号;
(2-4)、该定时器中断信号连接到主机的外部中断入口处,作为最高级别中断,进而触发主机的外部中断处理流程。
7.根据权利要求1所述的一种基于定时中断触发的主从式串口通讯方法,其特征在于所述取数脉冲信号的有效秒冲宽度为1~5ms,通过硬件逻辑产生并发送至从机。
8.根据权利要求1所述的一种基于定时中断触发的主从式串口通讯方法,其特征在于适用于姿轨控计算机与星敏感器之间的串口通信,其中,姿轨控计算机为主机,星敏感器为从机。
9.根据权利要求1所述的一种基于定时中断触发的主从式串口通讯方法,其特征在于所述串口为RS422串口、RS232串口或者RS485串口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910198771.9A CN110032532B (zh) | 2019-03-15 | 2019-03-15 | 一种基于定时中断触发的主从式串口通讯方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910198771.9A CN110032532B (zh) | 2019-03-15 | 2019-03-15 | 一种基于定时中断触发的主从式串口通讯方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110032532A true CN110032532A (zh) | 2019-07-19 |
CN110032532B CN110032532B (zh) | 2021-02-09 |
Family
ID=67236143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910198771.9A Active CN110032532B (zh) | 2019-03-15 | 2019-03-15 | 一种基于定时中断触发的主从式串口通讯方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110032532B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324559A (zh) * | 2020-02-27 | 2020-06-23 | 南通琅润达大数据科技有限公司 | 一种自主请求的串口分流装置 |
CN113259215A (zh) * | 2021-05-25 | 2021-08-13 | 东莞铭普光磁股份有限公司 | 一种主从机通信方法和主从机通信系统 |
CN114356831A (zh) * | 2022-03-18 | 2022-04-15 | 苏州联讯仪器有限公司 | 一种串口通信方法、装置、设备及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101771526A (zh) * | 2008-12-31 | 2010-07-07 | Ls产电株式会社 | 连接到网络的从设备的同步控制装置及其方法 |
CN102937819A (zh) * | 2012-09-21 | 2013-02-20 | 北京控制工程研究所 | 一种星载计算机时间标签输出系统 |
CN103559164A (zh) * | 2013-11-05 | 2014-02-05 | 深圳市科曼医疗设备有限公司 | 串口波特率识别方法和装置 |
CN104156334A (zh) * | 2014-08-19 | 2014-11-19 | 宁夏赛文节能股份有限公司 | 用于多机通讯的串口自适应数据透明传输协议 |
CN107885691A (zh) * | 2017-11-21 | 2018-04-06 | 迈普通信技术股份有限公司 | 串口数据传输方法、分布式设备及主机 |
-
2019
- 2019-03-15 CN CN201910198771.9A patent/CN110032532B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101771526A (zh) * | 2008-12-31 | 2010-07-07 | Ls产电株式会社 | 连接到网络的从设备的同步控制装置及其方法 |
CN102937819A (zh) * | 2012-09-21 | 2013-02-20 | 北京控制工程研究所 | 一种星载计算机时间标签输出系统 |
CN103559164A (zh) * | 2013-11-05 | 2014-02-05 | 深圳市科曼医疗设备有限公司 | 串口波特率识别方法和装置 |
CN104156334A (zh) * | 2014-08-19 | 2014-11-19 | 宁夏赛文节能股份有限公司 | 用于多机通讯的串口自适应数据透明传输协议 |
CN107885691A (zh) * | 2017-11-21 | 2018-04-06 | 迈普通信技术股份有限公司 | 串口数据传输方法、分布式设备及主机 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324559A (zh) * | 2020-02-27 | 2020-06-23 | 南通琅润达大数据科技有限公司 | 一种自主请求的串口分流装置 |
CN113259215A (zh) * | 2021-05-25 | 2021-08-13 | 东莞铭普光磁股份有限公司 | 一种主从机通信方法和主从机通信系统 |
CN114356831A (zh) * | 2022-03-18 | 2022-04-15 | 苏州联讯仪器有限公司 | 一种串口通信方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110032532B (zh) | 2021-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110032532A (zh) | 一种基于定时中断触发的主从式串口通讯方法 | |
CN104503565B (zh) | 移动设备的功耗管理方法、装置及移动设备 | |
CN106372012B (zh) | 一种不使用握手控制线的串口唤醒系统及串口通信方法 | |
CN104330082B (zh) | 一种mems/gnss组合导航系统实时数据同步方法 | |
CN101261129B (zh) | 一种基于dsp和fpga的组合导航计算机 | |
CN103868513B (zh) | 一种分布式pos用数据处理计算机系统 | |
CN103591961B (zh) | 一种基于dsp和fpga的捷联罗经导航计算机 | |
CN103440216B (zh) | 一种通过i2c从设备调试mcu的芯片及方法 | |
CN103323008A (zh) | 基于dsp的光纤陀螺捷联惯导计算机及其导航解算方法 | |
CN102354305A (zh) | 设备间串行通信系统及方法 | |
CN101901200A (zh) | 一种基于双AHB Master接口的片上DMA控制器实现方法 | |
CN108197699A (zh) | 针对卷积神经网络硬件加速器的调试模块 | |
US11494324B2 (en) | Daisy chain streaming mode | |
CN109373996A (zh) | 基于zynq处理器的实时飞控导航系统及方法 | |
CN108932207A (zh) | 带有缓存区的sdio-wifi数据传输方法及系统 | |
CN103017736A (zh) | 一种确定卫星星敏感器数据曝光时刻的方法 | |
CN104866444B (zh) | 一种分布式pos用数据存储计算机系统 | |
CN103034236B (zh) | 一种基于时分复用的多星敏感器时序同步处理方法 | |
CN109634184A (zh) | 一种负荷分担式双核飞行控制计算机 | |
CN102819256B (zh) | 一种足式机器人状态感知系统 | |
CN111679935A (zh) | 一种基于dma与中断融合的组态监控容错通信方法 | |
CN105676689B (zh) | 实时软件接收机中采集数据循环存储与分发方法 | |
US20170168980A1 (en) | SPI Interface With Automatic Slave Select Generation | |
CN209640845U (zh) | 一种自适应低功耗异步串行接口 | |
CN104699110B (zh) | 可编程飞行器控制引擎ip核 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |