一种串行数据帧接收方法及装置与流程

文档序号:21360949发布日期:2020-07-04 04:34阅读:331来源:国知局
一种串行数据帧接收方法及装置与流程

本发明涉及数据处理技术领域,尤其涉及一种串行数据帧接收方法及装置。



背景技术:

目前在轨运行的航天光学卫星上,光学舱平台与载荷管理器之间或者光学舱平台与载荷之间,通常包含1553b数据总线及串行数据注入接口。为保证数据传输同步性及可靠性,串行数据注入接口通常设计成包含片选信号、时钟信号及数据信号的三线制同步rs-422接口,对串行数据的接收或者存储通过采用诸如载荷管理器的控制芯片进行,然后将缓存的数据进行转发或者其他处理。但是由于这种数据的传输需应用在航天领域,其数据传输的可靠性还有待加强以及不定周期数据帧处理中对缓存芯片带来的数据堆积压力以及处理速度均有待进一步完善。

鉴于上述原因,本发明提出一种解决数据快速缓存冲突问题以及提高数据传输可靠性的串行数据帧接收方法。



技术实现要素:

本发明的主要目的在于提供一种串行数据帧接收方法及装置,旨在解决串行传输误码及数据快速缓存冲突问题以及提出一种高可靠串行数据帧接收及不定周期数据帧多fifo缓存、传输方法,保证注入数据的有效执行。

为实现上述目的,本发明提供的一种串行数据帧接收方法,所述方法包括如下步骤:

步骤s10,载荷管理器fpga判定光学舱平台发送的信号是否符合预设要求;

步骤s20,在载荷管理器fpga判定光学舱平台发送的信号符合预设要求时,将数据存储至多fifo的第一fifo中;

步骤s30,判断光学舱平台是否将一帧数据发送完成;

步骤s40,在光学舱平台将一帧数据发送完成时,载荷管理器fpga判定接收到的串行数据帧长度是否满足协议要求;

步骤s50,在接收到的串行数据帧长度满足协议要求时,载荷管理器fpga将存储在fifo中的数据传输给处理器;

步骤s60,完成当前数据传输后,重复步骤s10~步骤s50,每一次待传输的数据依次存储在多fifo的下一fifo中。

优选地,所述步骤s10包括:

步骤s11,载荷管理器fpga判定光学舱平台发送的片选信号是否有效;

步骤s12,在判定片选信号有效时,载荷管理器fpga判定时钟信号下降沿是否有效;

步骤s13,在时钟信号下降沿有效时,进入步骤s20。

优选地,所述步骤s20为:载荷管理器fpga根据时钟边沿按位获取有效数据并移位组字,按字将数据存储至多fifo中的第一fifo中。

优选地,所述步骤s30包括:

步骤s31,载荷管理器fpga判断片选信号是否拉高,若信号为高,表明光学舱平台将一帧数据发送完成;若信号为低,则表明光学舱平台未将一帧数据发送完成。

优选地,所述步骤s30之后还包括:

步骤s41,在光学舱平台未将一帧数据发送完成时,返回步骤s12。

优选地,所述步骤s40之前包括:

步骤s42,在片选信号为高时,将该串行数据帧的相关状态进行更新。

优选地,所述步骤s50包括:

步骤s51,载荷管理器fpga将信号和数据计数值发送给处理器;

步骤s52,处理器在获取完整数据帧后执行相关操作并将读取结束的标志写入到载荷管理器fpga中。

优选地,所述步骤s52之后还包括:

步骤s531,载荷管理器fpga将当前传输的数据帧所存储在第一fifo的数据清零,以待下一次接收数据帧。

此外,为实现上述目的,本发明还提出一种串行数据帧接收装置,所述串行数据帧接收装置包括载荷管理器,所述载荷管理器与光学舱平台之间进行数据传输,所述载荷管理器内部包括载荷管理器fpga和与该载荷管理器fpga进行数据交互的cpu,所述载荷管理器fpga内结合至少两个fifo进行数据的存储与传输,所述串行数据帧接收装置用于实现如上所述的方法。

本发明串行数据帧接收方法采用三线制方式接收同步串行rs-422数据,通过判断光学舱平台发送的数据是否符合预设要求,保证了数据信号的正确获取,该方法可应用于稳定性、可靠性要求较高的串行传输中。本发明采取fpga内多fifo机制对不定周期串行数据帧进行接收,逻辑内实时判定数据帧头及fifo中数据长度,若不满足协议要求,记录接收状态并更新参数信息后下传。多fifo缓存既无额外芯片存储开销,也为cpu软件预留了更多的处理时间,优化了系统结构与处理方法。

附图说明

附图作为本发明的一部分,用来提供对本发明的进一步的理解,本发明的示意性实施例及其说明用于解释本发明,但不构成对本发明的不当限定。显然,下面描述中的附图仅仅是一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。在附图中:

图1是本发明采用的三线制同步串行rs-422数据传输时序示意图;

图2是本发明采用的多fifo数据缓存实施示意图;

图3是本发明串行数据帧接收方法第一实施例的流程示意图;

图4是本发明串行数据帧接收方法第二实施例的流程示意图;

图5是本发明串行数据帧接收方法第三实施例的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

下面结合附图以及具体实施例对本发明实施例解决的技术问题、所采用的技术方案以及实现的技术效果进行清楚、完整的描述。显然,所描述的实施例仅仅是本申请的一部分实施例,并不是全部实施例。基于本申请中的实施例,本领域普通技术人员在不付出创造性劳动的前提下,所获得的所有其它等同或明显变型的实施例均落在本发明的保护范围内。本发明实施例可以按照权利要求中限定和涵盖的多种不同方式来具体化。

需要说明的是,在下面的描述中,为了方便理解,给出了许多具体细节。但是很明显,本发明的实现可以没有这些具体细节。

需要说明的是,在没有明确限定或不冲突的情况下,本发明中的各个实施例及其中的技术特征可以相互组合而形成技术方案。

本发明提出一种串行数据帧接收方法,旨在解决串行传输误码及数据快速缓存冲突问题以及提出一种高可靠串行数据帧接收及不定周期数据帧多fifo缓存、传输方法,保证注入数据的有效执行。

本发明的方法应用于串行数据帧接收装置中,所述串行数据帧接收装置包括载荷管理器,所述载荷管理器与光学舱平台之间进行数据传输,所述载荷管理器内部包括载荷管理器fpga和与该载荷管理器fpga进行信号连接的cpu,所述载荷管理器fpga内结合至少两个fifo进行数据的存储与传输,

图3为本发明的串行数据帧接收方法的第一实施例的流程示意图,详述如下:

步骤s10,载荷管理器fpga判定光学舱平台发送的信号是否符合预设要求;

本发明中的光学舱平台与载荷管理器之间包含1553b数据总线及串行数据注入接口,串行数据注入接口包含片选信号、时钟信号以及数据信号的三线制同步rs-422接口,载荷管理器采用fpga进行接收或缓存,而后将缓存后的数据转发或者处理。

所述载荷管理器fpga通过判定光学舱平台发送的信号是否符合要求,只有在发送的信号符合预设要求时,才接收信号并进行下一步。如果数据不符合预设要求,则返回重新判断。

步骤s20,在载荷管理器fpga判定光学舱平台发送的信号符合预设要求时,将数据存储至多fifo的第一fifo中;

参见图2,本发明中的载荷管理器fpga中包括多fifo,针对多fifo数据缓存,由于考虑到每次传输的数据帧个数及周期不定、cpu读取载荷管理器fpga缓存数据的周期不定,所以在逻辑中设定了4个宽度为16bits、缓存空间为256words的fifo。载荷管理器fpga在每次接收完一次光学舱平台数据注入后置接收完成标志,4个fifo能够保证连续存储4次单帧数据或者2次连续帧数据,这样能够保证cpu在繁忙或者处理完其他中断后响应载荷管理器fpga数据传输请求,直到cpu将所有串行注入数据获取完成,载荷管理器fpga将接收完成标志清零。

步骤s30,载荷管理器fpga判断光学舱平台是否将一帧数据发送完成;

步骤s40,在光学舱平台将一帧数据发送完成时,载荷管理器fpga判定接收到的串行数据帧长度是否满足协议要求;

本发明实施例的光学舱平台与载荷管理器之间的串行数据注入分包遥控帧长度为108字,光学舱平台每次发送一帧或者连续两帧,连续两帧时,帧间隔时间为6ms。载荷管理器通过fpga串行接收同步rs-422数据并通过多fifo缓存后传输至cpu,若检测到串行数据不符合同步要求或数据帧长度不符合协议要求等问题,则将该数据帧抛弃同时置错误标志并将错误计数与状态进行下传。

步骤s50,在接收到的串行数据帧长度满足协议要求时,载荷管理器fpga将存储在fifo中的数据传输给cpu;

载荷管理器fpga与cpu之间数据传输采用多次握手机制,保证数据帧的完整传输。cpu不断查询获取fpga是否准备好数据ready_data,当判定该值有效后获取数据计数值num_data,根据该值获取infor_data,读取完成将结束标志end_data写入fpga,fpga逻辑可以进行参数清零、状态更新等操作。

步骤s60,完成当前数据传输后,重复上述步骤,每一次待传输的数据将依次存储在多fifo的下一fifo中。其他fifo中的数据存储与传输等操作如第一fifo中的操作相同。

本发明中载荷管理器接收数据帧后存入fifo中进行缓存,按照fifo1、fifo2、fifo3、fifo4、fifo1、fifo2……循环方式存储数据帧,cpu获取数据顺序与fpga存储数据顺序一致,保证串行注入数据按照事先约定的顺序执行。只要任何一个fifo或者多个fifo中缓存有效数据,则数据准备好信号一直置位,直到cpu将数据全部获取完成,信号清零。多个fifo联合缓存,既可以保证单帧或者连续两帧数据的不定期接收存储,也能够为cpu预留更多的处理时间,同时不需要额外的存储芯片开销,具有较强的实用性。

本发明实施例的串行数据帧接收方法采用三线制方式接收同步串行rs-422数据,通过判断光学舱平台发送的数据是否符合预设要求,保证了数据信号的正确获取,该方法可应用于稳定性、可靠性要求较高的串行传输中。本发明采取fpga内多fifo机制对不定周期串行数据帧进行接收,逻辑内实时判定数据帧头及fifo中数据长度,若不满足协议要求,记录接收状态并更新参数信息后下传。多fifo缓存既无额外芯片存储开销,也为cpu软件预留了更多的处理时间,优化了系统结构与处理方法。本发明的方法还设计了故障处理预案,具有高度灵活性。

图4示出了本发明的第二实施例提供的一种串行数据帧接收方法步骤s10的细化流程示意图。参加图4和图1,基于图3实施例,本实施例提供了的一种串行数据帧接收方法中,步骤s10包括步骤s11~步骤s13,具体详述如下:

步骤s11,载荷管理器fpga判定光学舱平台发送的片选信号是否有效;

步骤s12,在判定片选信号有效时,载荷管理器fpga判定时钟信号下降沿是否有效;

步骤s13,在时钟信号下降沿有效时,进入步骤s20。

本发明采用三线制同步串行rs-422数据传输方法,fpga逻辑判定在片选信号有效的条件下根据时钟信号的下降沿按位获取数据信号。片选及时钟信号的判读及边沿检测的利用,保证了数据信号的正确获取。

在本实施例中,所述步骤s20为:载荷管理器fpga根据时钟边沿按位获取有效数据并移位组字,按字将数据存储至多fifo中的第一fifo中。

此外,在此基础上,所述步骤s30包括:

步骤s31,载荷管理器fpga判断片选信号是否拉高,若信号为高,表明光学舱平台将一帧数据发送完成;若信号为低,则表明光学舱平台未将一帧数据发送完成。

所述步骤s30之后还包括:

步骤s41,在光学舱平台未将一帧数据发送完成时,返回步骤s12。

当片选信号为高时,表明光学舱平台将一帧数据发送完成,则不再判断光学舱平台发送的时钟信号。若信号为低,表明光学舱平台未将一帧数据发送完成,则将返回步骤s12,继续判定时钟信号。

所述步骤s40之前包括:

步骤s42,在片选信号为高且光学舱平台将一帧数据发送完成时,将该串行数据帧的相关状态进行更新。

在片选信号为高,一帧数据接收完成,逻辑内不再判读光学舱平台发送的时钟信号,将该帧数据相关状态进行更新。

图5示出了本发明的第三实施例提供的一种串行数据帧接收方法步骤s50的细化流程示意图。参加图5,基于图3实施例,本实施例提供了的一种串行数据帧接收方法中,步骤s50之后包括步骤s51~步骤s52,具体详述如下:

步骤s51,cpu在获取完整数据帧后执行相关操作并将读取结束的标志写入到载荷管理器fpga中;

步骤s52,载荷管理器fpga响应cpu写入的读取结束操作。

进一步地,在所述步骤s51之前还包括:

步骤s501,cpu查询载荷管理器fpga是否准备好需要传输的数据;

步骤s502,在cpu判定载荷管理器fpga准备好需要传输的数据时,cpu获取载荷管理器fpga数据计数值;

步骤s503,cpu根据数据计数值获取载荷管理器fpga内指定个数的有效数据。

在接收到的串行数据帧长度满足协议要求时,载荷管理器fpga置接收完成标志,cpu获取载荷管理器fpga准备好信号以及数据计数值,cpu根据数据计数值从载荷管理器fpga中获取指定个数有效数据,cpu获取完整数据帧后进行解析和发送,并执行相关操作后将读取结束的标志写入载荷管理器fpga中,载荷管理器fpga在接收到读取结束的信号时,将其内的第一fifo内的数据清零,以便下一次接收数据帧。完成一次的数据传输和处理操作。

参见图2,载荷管理器fpga与cpu之间数据传输采用多次握手机制,保证数据帧的完整传输。cpu不断查询获取fpga是否准备好数据ready_data,当判定该值有效后获取数据计数值num_data,根据该值获取infor_data,读取完成将结束标志end_data写入fpga,fpga逻辑可以进行参数清零、状态更新等操作。

此外,参见图2,本发明还提出一种串行数据帧接收装置,所述串行数据帧接收装置包括载荷管理器,所述载荷管理器与光学舱平台之间进行数据传输,所述载荷管理器内部包括载荷管理器fpga和与该载荷管理器fpga进行数据交互的cpu,所述载荷管理器fpga内结合至少两个fifo进行数据的存储与传输,所述串行数据帧接收装置用于实现如上所述的方法。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1