一种基于两级FIFO的智能接口设计方法技术

技术编号:36600745 阅读:20 留言:0更新日期:2023-02-04 18:14
本发明专利技术公开一种基于两级FIFO的智能接口设计方法,智能接口通过使用两级FIFO将数据接收、校验及有效数据读取分隔,一级FIFO用于收集数据并根据接口配置完成数据校验,二级FIFO用于放置有效数据,在数据读取时通过自推出优先保证有效数据更新;处理单元可直接从智能接口中取得有效数据并完成数据的校验发送。本发明专利技术通过FIFO完成数据收发,解放处理单元等待完成数据传输的工作,仅依靠判断标志位直接读取有效数据,大大提高了处理单元的软件效率。大大提高了处理单元的软件效率。大大提高了处理单元的软件效率。

【技术实现步骤摘要】
一种基于两级FIFO的智能接口设计方法


[0001]本专利技术属于飞航导弹控制
,特别是涉及全双工通信的智能接口设计方法。

技术介绍

[0002]嵌入式系统通常设计为在有限的资源上完成特定的功能,通过与外部多个设备的对接进行数据通信,并整合各个设备的信息按照一定的规则算法完成处理运算,再将运算的结果发送至各个设备。因此处理单元在完成功能运算的同时还要完成数据的收发解算。由于系统内设备的接口各异,传输速率及校验方式也存在不一致性,处理单元需要耗费大量时间资源及内存资源完成各个接口的数据接收、发送和校验工作。为保证数据的完整性,在数据收发过程中还需考虑数据的消息冲突等问题。对于实时性要求很高的嵌入式系统,处理单元应将主要的时间分布用于算法解算及功能运算上。

技术实现思路

[0003]本专利技术提供一种基于两级FIFO的智能接口设计方法,该方法大大提升处理单元的性能及数据传输的可靠性。
[0004]一种基于两级FIFO的智能接口设计方法技术方案:
[0005]智能接口通过使用两级FIFO将数据接收、校验及有效数据读取分隔,一级 FIFO用于收集数据并根据接口配置完成数据校验,二级FIFO用于放置有效数据,在数据读取时通过判断FIFO状态优先读出对外FIFO数据,保证有效数据更新;处理单元可直接从智能接口中取得有效数据并完成数据的校验发送。
[0006]进一步地,本专利技术方法具体包括如下步骤:
[0007]第一步,确认接口数量,对每一个接口确定数据协议格式、单帧数据的接口收发最大数据量和接口数据的校验方法;
[0008]给每个接口分配收发FIFO,FIFO为先入先出数据存储模块;发送数据FIFO 需分配两级,一级FIFO用于接收处理单元发送的数据,二级FIFO将一级FIFO 数据进行校验及完成帧头帧尾数据格式;接收数据FIFO需分配两级,一级FIFO 大小用于接收接口收取的数据,二级FIFO用于对一级FIFO中的数据根据协议格式及校验方式进行数据筛选,最终二级FIFO中只存放有效数据;
[0009]第二步,每个接口绑定一个整数寄存器作为发送命令寄存器,为发送命令寄存器设置内容为开始发送、发送中、发送完成三个状态;在初始化准备阶段先读空发送FIFO,并将发送命令寄存器设置为发送完成;
[0010]当处理单元发送数据时,先查询接口的发送命令寄存器状态,若为发送中则将数据更新在一级FIFO中,等待数据完成后将数据推送至二级FIFO中,并启动发送;当发送命令寄存器状态为发送完成时,直接将有效数据推入发送二级FIFO中,并清空一级FIFO,在数据全部推入后在发送命令寄存器中写入发送命令,当智能接口查到发送命令后,设置根据当
前接口配置的协议格式及校验方法对FIFO中的数据进行校验并对齐协议格式,完成上述步骤后将数据发送给硬件接口芯片,并将发送命令寄存器中数值设置为发送完成;
[0011]第三步,每个接口绑定一个整数寄存器作为接收状态寄存器,为接收状态寄存器设置内容为无数据、数据接收中、数据接收完成三个状态,状态置位由二级FIFO的状态决定;在初始化准备阶段先读空接收数据的一级FIFO与二级 FIFO,并将接收命令寄存器设置为无数据;
[0012]采用两级FIFO收取数据;当有数据进入时则立刻将数据推入一级FIFO中, 并从一级FIFO中按字节读出数据,根据接口数据协议格式从读出数据中查找数据帧头;当找到数据帧头时,开始将读出的有效数据推入二级FIFO中,并按照接口校验方式进行数据校验;若校验结果与数据中校验字一致则保留数据在二级FIFO中等待处理单元读取并置位接收状态寄存器为数据接收完成,若校验结果与数据中校验字不同则将二级FIFO中数据全部直接读出,并置位接收状态寄存器为无数据;
[0013]第四步,二级FIFO中保存两包有效数据,有数据进入时分为两种情况:
[0014]当二级FIFO中已存在一包有效数据时,一级FIFO将数据推入二级FIFO中,不更改接收状态寄存器;
[0015]当二级FIFO中已存在两包有效数据时,则先将二级FIFO中读出一包数据,一级FIFO再将数据推入二级FIFO中,并置接收状态寄存器为接受中,再推入新数据,并置接收状态寄存器为接受完成。
[0016]进一步地,第一步中,发送数据FIFO空间大小大于发送数据的最大数据量;接收数据一级FIFO与二级FIFO空间大小大于接收最大数据量的两倍。
[0017]本专利技术方法通过使用两级FIFO将数据接收与校验分隔,设计一级FIFO的数据接收,保证线上数据不丢失,并完成判帧校验;设计二级FIFO,保证处理单元可以拿到最新的有效数据,防止数据更新过程中数据包截断,有效提升了数据传输的稳定性及可靠性。通过FIFO完成数据收发,解放处理单元等待完成数据传输的工作,仅依靠判断标志位直接读取有效数据,大大提高了处理单元的软件效率。
附图说明
[0018]图1为实施例中单接口两级FIFO设计流程示意图;
[0019]图2为实施例中接口数据发送流程示意图;
[0020]图3为实施例中接口数据接收流程示意图。
具体实施方式
[0021]下面结合附图对本专利技术作进一步详细说明。
[0022]为了提高处理单元的核心处理能力,需要设计一种基于两级FIFO的智能接口用于配合处理单元完成数据的收发并适配不同设备协议的数据格式及校验方式。处理单元可直接从智能接口中取得有效数据并完成数据的校验发送,去除自身数据通信校验的时间,大大提升处理单元的性能及数据传输的可靠性。
[0023]本专利技术提供一种基于两级FIFO的智能接口设计方法,该方法协助处理单元完成数据的收发并适配不同设备协议的数据格式及校验方式,大大提升处理单元的性能及数据传
输的可靠性。
[0024]本专利技术方法包括如下步骤:
[0025]第一步
[0026]确认接口数量,对每一个接口确定数据协议格式、单帧数据的接口收发最大数据量和接口数据的校验方法。
[0027]给每个接口分配收发FIFO,FIFO为先入先出数据存储模块,发送数据FIFO 需分配两级,一级FIFO用于接收处理单元发送的数据,二级FIFO将一级FIFO 数据进行校验及完成帧头帧尾等数据格式;接收数据FIFO需分配两级,一级FIFO 大小用于接收接口收取的数据,二级FIFO用于对一级FIFO中的数据根据协议格式及校验方式进行数据筛选,最终二级FIFO中只存放有效数据。一级FIFO 与二级FIFO空间大小应略大于接收最大数据量的两倍,见图1。
[0028]第二步
[0029]每个接口绑定一个整数寄存器作为发送命令寄存器,为发送命令寄存器设置内容为开始发送、发送中、发送完成三个状态。在初始化准备阶段先读空发送FIFO,并将发送命令寄存器设置为发送完成。
[0030]如图2,当处理单元发送数据时,先查询接口的发送命令寄存器状态,若为发送中则将数据更新在一级FIFO中,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于两级FIFO的智能接口设计方法,其特征在于,智能接口通过使用两级FIFO将数据接收、校验及有效数据读取分隔,一级FIFO用于收集数据并根据接口配置完成数据校验,二级FIFO用于放置有效数据,在数据读取时通过判断FIFO状态优先读出对外FIFO数据,保证有效数据更新;处理单元可直接从智能接口中取得有效数据并完成数据的校验发送。2.根据权利要求1所述的一种基于两级FIFO的智能接口设计方法,其特征在于,本发明方法具体包括如下步骤:第一步,确认接口数量,对每一个接口确定数据协议格式、单帧数据的接口收发最大数据量和接口数据的校验方法;给每个接口分配收发FIFO,FIFO为先入先出数据存储模块;发送数据FIFO需分配两级,一级FIFO用于接收处理单元发送的数据,二级FIFO将一级FIFO数据进行校验及完成帧头帧尾数据格式;接收数据FIFO需分配两级,一级FIFO大小用于接收接口收取的数据,二级FIFO用于对一级FIFO中的数据根据协议格式及校验方式进行数据筛选,最终二级FIFO中只存放有效数据;第二步,每个接口绑定一个整数寄存器作为发送命令寄存器,为发送命令寄存器设置内容为开始发送、发送中、发送完成三个状态;在初始化准备阶段先读空发送FIFO,并将发送命令寄存器设置为发送完成;当处理单元发送数据时,先查询接口的发送命令寄存器状态,若为发送中则将数据更新在一级FIFO中,等待数据完成后将数据推送至二级FIFO中,并启动发送;当发送命令寄存器状态为发送完成时,直接将有效数据推入发送二级FIFO中,并清空一级FIFO,在数据全部推入后在发送命令寄存器中写入发送命令,当智能接口查到发送命令后,设置根据当...

【专利技术属性】
技术研发人员:姜楠万杨张舒
申请(专利权)人:北京机电工程研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1