多通道软硬件并行串口通讯处理方法

xiaoxiao2021-3-1  198

多通道软硬件并行串口通讯处理方法
【专利说明】多通道软硬件并行串口通讯处理方法
[0001]
技术领域
[0002]本发明涉及航天器控制计算机串口通讯技术,具体一种涉及多通道软硬件并行串口通讯方法。
[0003]
【背景技术】
[0004]随着航天领域任务复杂性的提高,越来越多不同用途的单机配备到航天器上。控制计算机与众多单机通过数据交互建立复杂的控制系统,最通用的方式即为串口通讯。
[0005]一般的控制计算机串口通讯设计中,控制计算机作为主节点,启动某一通道通讯后,进入空循环等待,待所有数据全部接收完毕后,切换至下一通道。当通道较多且收发字节较多时,一方面控制计算机嵌入式系统有限的硬件资源无法满足多路独立串口通道、独立收、发缓存的需求;另一方面查询等待方式的通信机制浪费较多的CPU处理时间,也无法满足复杂控制系统处理周期时间资源的需求。
[0006]

【发明内容】

[0007]本发明针对复杂航天器控制计算机串口通讯单机数量不断增加,但嵌入式系统软硬件资源有限的矛盾,提出了一种多通道软硬件并行串口通讯处理方法,完成软硬件资源统筹调度,采用“硬件通道复用+软件串口通讯中断”的处理方式,实现了多通道软硬件并行串口通讯。
[0008]为达到上述目的,本发明提供一种多通道软硬件并行串口通讯处理方法,该方法包括以下步骤:
步骤一、硬件多路串口通道复用、发送缓存复用、接收缓存独立,通过软件设置通道号实现道号切换,并设置相应通道的发送数据长度、接收数据长度。根据当前设定的串口通道号,将发送缓存与相应的串口通道绑定,同一时刻只能与同一通道通讯。
[0009]步骤二、串口接收中断与超时中断复用,多路串口采用同一接收中断、超时中断,占用同一 CPU外部中断资源。根据接收中断与超时中断优先触发的原则,若某一中断触发,则不再产生另一中断。
[0010]步骤三、软硬件并行工作,实现多路串口通讯。串口通讯由软件任务主流程、软件中断流程、硬件处理流程共同完成。软件实现多通道切换和通讯任务管理,在软件任务主流程同步运行的同时,硬件处理流程和软件串口通讯中断服务程序交替依次完成各通道串口通讯的软、硬件任务,直至本周期全部通道串口通讯任务完成。
[0011]进一步,所述的步骤三,软硬件并行工作,实现多路串口通讯,还包括如下步骤:
1)主任务流程读取上周期各路串口独立接收缓存的数据,并启动本周期第一路串口通讯,随后继续处理主任务中其他流程。
[0012]2)软件中断处理流程由串口接收、超时中断触发,保存本路串口通讯状态并启动下一路通讯。
[0013]3)硬件处理流程中,首先根据软件写入的串口通道号及发送数据长度进行数据发送流程处理;再根据软件写入的接收数据长度设置定时周期并启动超时定时器;接收数据依次存入通道对应的接收缓存,对接收的每个字节进行奇偶校验判断;当接收数据长度达到设定字节数或超时定时器达到定时周期时触发串口接收、超时中断,返回通讯正常、超时或奇偶校验错状态标志。
[0014]与现有技术相比,本发明的多通道软硬件并行串口通信处理方法,通过软硬件资源统筹调度,节约了计算机硬件资源,减少了多路串口通讯占用的CPU时间。
[0015]
【附图说明】
[0016]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
附图1为根据本发明实施例的多通道软硬件并行串口通信处理流程示意图;
附图2为多通道软硬件并行串口通信处理技术中的软硬件资源占用示意图。
[0017]
【具体实施方式】
[0018]参见示出本发明实施例的附图,下文将更详细地描述本发明。然而,本发明可以以许多不同形式实现,并且不应解释为受在此提出之实施例的限制。相反,提出这些实施例是为了达成充分及完整公开,并且使本技术领域的技术人员完全了解本发明的范围。这些附图中,为清楚起见,可能放大了层及区域的尺寸及相对尺寸。
[0019]现参考附图详细描述根据本发明实施例的多通道软硬件并行串口通讯处理方法。如图1所示,根据本发明的多通道软硬件并行串口通讯处理方法,该技术通过如下步骤具体实现:
一、硬件多路串口通道复用、发送缓存复用、接收缓存独立,通过软件设置通道号实现通道切换,并设置相应通道的发送数据长度、接收数据长度。
[0020]控制计算机硬件采用反熔丝型FPGA实现14路串口通道复用,14路共用64字节发送缓存,14路独立各128字节接收缓存。软件可设置通道号、发送字节、接收字节。
[0021]二、串口接收中断与超时中断复用,多路串口采用同一接收中断、超时中断,占用同一 CPU外部中断资源。
[0022]硬件接收字节计数达到软件设置的期望接收字节时产生接收中断。考虑到根据通讯任务的不同接收字节数可变,超时定时器可由软件根据接收字节数设定不同定时周期。当超时定时器达到定时周期仍未接收完全部数据时产生超时中断。接收中断或超时中断中任何一个产生时,触发计算机外部中断。
[0023]三、软硬件并行工作,实现多路串口通讯,串口通信由软件任务主流程、软件任务中断流程、硬件处理流程共同完成。通讯机制为“请求+应答”方式,控制计算机作为主节点依次向不同单机发出请求,单机接收到请求后在规定的响应时间内向控制计算机返回应答数据。
[0024]1、软件任务主流程首先将上周期14路串口独立接收缓存中的数据及通讯状态字依次读入内存接收数据数组,根据通讯状态字判断数据有效后用于本周期控制解算;再根据本周期通讯任务更新14路串口发送数据数组、发送数据长度、接收数据长度;最后启动本周期第一个通道的串口通信,将第一通道的发送数据长度、接收数据长度写入硬件寄存器,将发送数组中内容写入硬件发送缓存并启动硬件发送,启动接收超时定时器。软件任务主流程继续进行其他处理流程。
[0025]2、启动硬件数据发送后,FPGA将发送缓存中的数据依字节顺序通过串口发送给第一通道对应的单机。单机接到请求数据帧后开始向计算机返回应答数据,计算机硬件逐字节将接收数据存入第一通道接收缓存,并对每字节进行奇偶校验判断,若校验错则设置奇偶校验错误状态寄存器。若单机在等待周期内完成全部数据应答,则计算机硬件缓存接收字节计数达到软件设置的期望字节数,产生串口接收中断;或者单机响应超时,未在规定时间内反馈全部数据,则计算机硬件产生串口超时中断。接收中断与超时中断根据优先触发的原则,若某一中断产生则不再产生另一中断,也不再置位另一中断标志。
[0026]3、硬件产生串口接收、超时中断后,触发软件从任务主流程切入串口中断处理流程。软件中断处理流程首先读取硬件状态寄存器,记录第一通道本周期通讯状态为正常、超时或奇偶校验错;同样的方法依次启动下一路串口通讯流程。软件流程再返回任务主流程,同步硬件进行数据发送、接收处理。
[0027]4、第2至14路串口通讯流程,重复上述步骤2、3,直至本周期所有串口通道通讯均已完成,则关闭超时定时器,退回任务主流程。本周期14路串口通讯任务全部完成。
[0028]本发明已在某航天器控制计算机中成功在轨应用,满足了复杂航天器多路串口通讯的要求,目前航天器在轨状态良好,单机通讯状态正常。
[0029]本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
【主权项】
1.一种多通道软硬件并行串口通讯处理方法,其特征在于,该方法步骤包括: .1)硬件多路串口通道复用、发送缓存复用、接收缓存独立,通过软件设置通道号实现通道切换,并设置相应通道的发送数据长度、接收数据长度; .2)串口接收中断与超时中断复用,多路串口采用同一接收中断、超时中断,占用同一CPU外部中断资源; .3)软硬件并行工作,实现多路串口通讯,串口通信由软件任务主流程、软件中断流程、硬件处理流程共同完成。2.如权利要求1所述的多通道软硬件并行串口通讯处理方法,其特征在于,所述步骤.3)具体流程如下: .3 - 1)主任务流程读取上周期各路串口独立接收缓存的数据,并启动本周期第一路串口通讯,随后继续处理主任务中其他流程; .3 - 2)软件中断处理流程由串口接收、超时中断触发,保存本路串口通讯状态并启动下一路通讯; .3 - 3)硬件处理流程中,首先根据软件写入的串口通道号及发送数据长度进行数据发送流程处理;再根据软件写入的接收数据长度设置定时周期并启动超时定时器;接收数据依次存入通道对应的接收缓存,对接收的每个字节进行奇偶校验判断;当接收数据长度达到设定字节数或超时定时器达到定时周期时触发串口接收、超时中断,返回通讯正常、超时或奇偶校验错状态标志。
【专利摘要】本发明针对复杂航天器控制计算机串口通讯单机数量不断增加,但嵌入式系统软硬件资源有限的矛盾,提出了一种软硬件资源统筹调用方法,步骤包括硬件多路串口通道复用、发送缓存复用、接收缓存独立,通过软件设置通道号实现通道切换,并设置相应通道的发送数据长度、接收数据长度;串口接收中断与超时中断复用,多路串口采用同一接收中断、超时中断,占用同一CPU外部中断资源;软硬件并行工作,实现多路串口通讯,串口通信由软件任务主流程、软件中断流程、硬件处理流程共同完成。该方法实现了多通道软硬件并行串口通讯,节约了计算机硬件资源,减少了多路串口通讯占用的CPU时间,已在某型号控制计算机上成功在轨应用。
【IPC分类】G06F13/38, G06F13/42
【公开号】CN105487992
【申请号】CN201410473686
【发明人】吕敏, 张国柱, 曹斌, 陈晓强
【申请人】上海新跃仪表厂
【公开日】2016年4月13日
【申请日】2014年9月17日

最新回复(0)