本发明专利技术提出了一种双端口虚拟FIFO数据写入的方法,包括以下步骤:1)获取FIFO信号量;2)判断待发送的数据块长度与FIFO长度的关系;3)获取FIFO的头指针和尾指针,通过获取到的头指针和尾指针判断数据块的长度是否小于FIFO当前待写入空间的长度;若是,则进行步骤4);4)计算数据块的校验和;5)在当前头指针所指的位置依次写入数据块的长度、数据块与校验和,并移动头指针;6)释放FIFO信号量。本发明专利技术的一种双端口虚拟FIFO数据交换的方法,适用于机载计算机中多处理器系统之间的数据交换。
【技术实现步骤摘要】
本专利技术涉及一种机载计算机中多处理器系统之间的数据交换方法,尤其涉及一种 实现双端口虚拟FIFO的数据写入与读出方法。
技术介绍
在机载计算机中,数据获取及交换是多处理器系统的重要组成部分。各智能接口 模块接收主处理器模块的各种控制命令,然后根据控制命令实时采集接口数据并及时将数 据提供给主处理器模块。多处理器系统数据交换的传统解决方法在接口模块上设计双端 口存储器电路,然后在双端口存储器上为各功能模块划分单/双缓冲数据区来解决多处理 器模块之间的数据交换。随着机载系统的快速发展,机载计算机集中的功能越来越多,智能 接口模块具有的功能越来越多,导致数据交换要求的通讯数据量很大,传统解决方法很难 满足这一系列要求。
技术实现思路
为了解决
技术介绍
中所存在的技术问题,本专利技术提出了一种双端口虚拟FIFO数 据交换的方法,适用于机载计算机中多处理器系统之间的数据交换。本专利技术的技术解决方案是一种双端口虚拟FIFO数据写入的方法,其特殊之处在 于所述方法包括以下步骤1)获取FIFO信号量;2)判断待发送的数据块长度与FIFO长度的关系;3)获取FIFO的头指针和尾指针,通过获取到的头指针和尾指针判断数据块的长 度是否小于FIFO当前待写入空间的长度;若是,则进行步骤4);4)计算数据块的校验和;5)在当前头指针所指的位置依次写入数据块的长度、数据块与校验和,并移动头 指针;6)释放FIFO信号量。 上述步骤2~)的具体步骤是2. 1)判断数据块的长度是否小于FIFO的长度,若是,则进行步骤2.2 ;若否,则直 接进行步骤6);2. 2)判断数据块的长度是否为0,若否,则进行步骤幻;若是,则直接进行步骤 6);2.3)判断FIFO是否队列满,若否,则进行步骤3);上述步骤幻的具体步骤是3. 1)获取FIFO的头指针(head)和尾指针(tail);3. 2)判断头指针和尾指针的大小关系当头指针大于尾指针时,将头指针向后移 动待写入数据的长度后的位置大于头指针或者小于尾指针时,该数据块可写入FIFO;当头3指针小于尾指针时,将头指针向后移动待写入数据的长度后的位置大于头指针并小于尾指 针时,该数据块可写入FIFO。一种双端口虚拟FIFO数据读出的方法,其特殊之处在于所述方法包括以下步 骤1)获取FIFO信号量;2)获取FIFO的头指针、尾指针,根据获取到的头指针、尾指针判断FIFO是否有新 数据块需要接收;3)读取需要接收的数据块的长度,即当前头指针处的数据,然后根据数据块长度 依次读出数据块内容和校验和;4)释放FIFO信号量。上述步骤2)中判断FIFO是否有新数据块需要接收的具体步骤是2. 1)判断头指针和尾指针是否相等,如果头指针和尾指针不相等,则FIFO中有数 据需要接收;2. 2)根据约定算法(例如计算所有数据的异或)计算该数据块的校验和,然后将 读出的校验和计算的校验和进行比较,如果相同则该数据块有效,保存该数据块,否则抛弃 该数据块,并移动尾指针;本专利技术的优点是(1)双端口存储器在机载计算机中使用很普遍,因此物理实现很方便,而且硬件电 路设计技术成熟、接口设计简单;(2)采用环形设计,保证高吞吐数据量,并设定状态信息单元,保证数据交换的高 效性;(3)使用信号量机制来控制双端口访问带来的竞争,提高了数据访问的可靠性;(4)在一个双端口存储器中可以根据用户的需求定义多个虚拟FIFO,并且每个 FIFO的起始位置和长度可以由用户自定义,使用灵活;(5)虚拟FIFO的操作方式(字节,字,双字)可根据用户需求进行选择,而且可根 据用户需求定义数据块算法,增加数据传输的可靠性。附图说明图1是双端口虚拟FIFO的功能区划分示意图;图2是双端口虚拟FIFO数据写入流程图;图3是双端口虚拟FIFO数据读出流程具体实施例方式参见图1,双端口虚拟FIFO的功能区划分为(1)虚拟FIFO数据管理区,用于保存 FIFO头指针、FIFO尾指针、FIFO的工作状态、记录FIFO的尺寸等其他相关信息;(2)虚拟 FIFO数据区,用于保存待交换的数据;参见图2,一种双端口虚拟FIFO数据交换的方法,FIFO数据写入操作的步骤如 下1)获取FIFO信号量;2)判断待发送数据块的合理性2. 1)判断数据块(msg[])的长度(Ien)是否小于FIFO的长度(fifo_siZe);若 是,进行步骤2. 2);2. 2)判断数据块的长度是否为0,若否,则进行步骤3);2.3)判断FIFO队列是否满(如果尾指针的下一个位置等于头指针,表示队列 满);3)判断待发送数据块可行性,判断数据块的长度(Ien)是否小于FIFO当前待写入 空间的长度3. 1)获取FIFO的头指针(head)和尾指针(tail);3. 2)当头指针大于尾指针时,tmp为将头指针向后移动待写入数据的长度后的位 置,当tmp大于head或者tmp小于tail时,该数据块可写入FIFO ;当头指针小于尾指针时, tmp为将头指针向后移动待写入数据的长度后的位置,当tmp大于head并且tmp小于tail 时,该数据块可写入FIFO;4)根据约定好的算法(例如计算所有数据的异或)计算数据块的校验和;5)在目前头指针所指的位置依次写入数据块的长度、数据块与校验和,并移动头 指针;6)释放FIFO信号量。参见图3,一种双端口虚拟FIFO数据交换的交换方法,FIFO数据读出操作的步骤 如下1)获取FIFO信号量;2)判断FIFO有新数据块如果头指针和尾指针不相等,说明FIFO中有数据需要 接收;3)获取数据块读取数据块的长度即当前头指针处的数据,然后根据长度依次读 出数据块内容和校验和,根据约定算法(例如计算所有数据的异或)计算该数据块的校验 和,然后将读出的校验和计算的校验和进行比较,如果相同说明该数据块有效,那么保存该 数据块,否则抛弃该数据块,并移动尾指针;4)释放FIFO信号量。权利要求1.一种双端口虚拟FIFO数据写入的方法,其特征在于所述方法包括以下步骤1)获取FIFO信号量;2)判断待发送的数据块与获取到的FIFO信号量的大小关系;3)获取FIFO的头指针和尾指针,通过获取到的头指针和尾指针判断数据块的长度是 否小于FIFO当前待写入空间的长度;若是,则进行步骤4);4)计算数据块的校验和;5)在当前头指针所指的位置依次写入数据块的长度、数据块与校验和,并移动头指针;6)释放FIFO信号量。2.根据权利要求1所述的双端口虚拟FIFO数据写入的方法,其特征在于所述步骤2) 的具体步骤是.2.1)判断数据块的长度是否小于FIFO的长度,若是,则进行步骤2. 2 ;若否,则直接进 行步骤6);.2.2)判断数据块的长度是否为0,若否,则进行步骤3);若是,则直接进行步骤6);.2.3)判断FIFO是否队列满,若否,则进行步骤3);3.根据权利要求2所述的双端口虚拟FIFO数据写入的方法,其特征在于所述步骤3) 的具体步骤是.3. 1)获取FIFO的头指针和尾指针;.3.2)判断头指针和尾指针的大小关系当头指针大于尾指针时,将头指针向后移动待 写入数据的长度后的位置大于头指针或者小于尾指针时,该数据块可写入FIFO;当头指针 小于尾指针时,将头指针向后移动待写入数据的长本文档来自技高网...
【技术保护点】
1.一种双端口虚拟FIFO数据写入的方法,其特征在于:所述方法包括以下步骤:1)获取FIFO信号量;2)判断待发送的数据块与获取到的FIFO信号量的大小关系;3)获取FIFO的头指针和尾指针,通过获取到的头指针和尾指针判断数据块的长度是否小于FIFO当前待写入空间的长度;若是,则进行步骤4);4)计算数据块的校验和;5)在当前头指针所指的位置依次写入数据块的长度、数据块与校验和,并移动头指针;6)释放FIFO信号量。
【技术特征摘要】
【专利技术属性】
技术研发人员:韩嫚丽,高杨,张珏辉,
申请(专利权)人:中国航空工业集团公司第六三一研究所,
类型:发明
国别省市:87
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。