[发明专利]一种在PCI总线上实现数据高速传输的方法无效
申请号: | 201110433216.3 | 申请日: | 2011-12-20 |
公开(公告)号: | CN102521184A | 公开(公告)日: | 2012-06-27 |
发明(设计)人: | 刘斌;朱颖 | 申请(专利权)人: | 北京遥测技术研究所 |
主分类号: | G06F13/38 | 分类号: | G06F13/38 |
代理公司: | 中国航天科技专利中心 11009 | 代理人: | 安丽 |
地址: | 100076 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 pci 线上 实现 数据 高速 传输 方法 | ||
技术领域
本发明涉及一种总线数据高速传输方法。
背景技术
在航天测控领域,高速的总线传输已经成为一种必需的技术。
在地面测控设备中,普遍采用PCI&PCI-X的总线结构,在设备板上用外购的接口芯片完成总线交互,由于商用芯片多是为中低速率传输设计的,灵活性较差,难以满足高速的数据传输需要,因此,需要有一种好的方法在PCI&PCI-X总线平台上实现高速传输。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供了一种在PCI总线上实现数据高速传输的方法。
本发明的技术解决方案是:一种在PCI总线上实现数据高速传输的方法,包括总线设备端与PCI总线之间的数据传输方法以及PCI总线上所挂接主机的驱动程序内存使用方法,其中总线设备端与PCI总线之间进行数据传输时采用状态机进行控制,方法如下:
(1)在收到直接内存传输开始的命令后,状态机首先发起本地数据发送,然后将接收到的本地数据保存到FIFO中;
(2)当FIFO中的可读数据大于可读预设值后,以该可读预设值作为直接内存传输的数据量进行传输;
(3)在直接内存传输过程中,状态机始终监视FIFO中存储的数据量,如果FIFO中的可读数据量小于可读预设值,则停止直接内存传输,同时本地数据继续存入FIFO中;
(4)当FIFO中的可写数据量小于可写预设值时,状态机停止本地数据传送;当FIFO中的可写数据量大于可写预设值时,状态机重新开始本地数据传送;
通过上述状态机的不同状态切换完成总线设备端与PCI总线之间的数据传输;
PCI总线上所挂接主机的驱动程序内存使用方法如下:
(1)为主机的驱动程序预设一个长度为A的非分页内存单元,由主机的应用程序在初始化时通过驱动接口进行申请,A的大小大于每次直接内存传输的数据量;所述的非分页内存单元为主机操作系统管理的连续物理内存;
(2)驱动程序在收到应用程序的请求后,循环向操作系统申请以A为大小的非分页内存单元,直到申请到的非分页内存单元大小满足应用程序的要求;
(3)驱动程序将申请到的各内存单元的起始地址存入内存块地址列表;
(4)设定内存块地址列表中第一块内存的起始地址作为第一次直接内存传输的写指针;
(5)当有直接内存传输请求时,首先读取需要传输的数据量,然后根据直接内存传输的写指针位置判断该直接内存传输的数据量是否超出该非分页内存单元的边界,如果没有越出则直接返回写指针所在内存地址进行直接内存传输;如果越出则顺序查询后面的非分页内存单元,并将满足数据量传输要求的非分页内存单元的初始地址作为写指针进行直接内存传输。
所述的可读预设值或者可写预设值为48。所述的A的大小为8*1024*1024。
本发明与现有技术相比的优点在于:
(1)本发明采用FPGA作为板卡的总线控制器,并在商用PCI Core的基础上开发传输控制流程,极大的提高了总线传输的效率,并在驱动程序一端使用了链式内存管理策略,在驱动程序和应用程序之间共享内存,极大地提高了主机的效率,使得将数据从设备板通过PCI&PCIX总线传输给应用程序成为可能。经过测试,采用本发明,在PCI和PCI-X总线上都能达到很高的传输速度,可以为需要在PCI&PCI-X工控设备开发高速应用的用户提供一个可行的选择;
(2)采用本发明方法,与目前普遍采用的商用桥接芯片的方式相比,采用FPGA和商用IP Core作为底层的桥接芯片,可根据需要进行流量控制,更能满足高速数据传输的需要;
(3)本发明采用FPGA作为板卡的总线控制器,相对目前商用芯片的接口形式来说,外部数据接口方式更灵活,比采用商用的桥接芯片工程适用性更强;
(4)本发明的驱动程序接口采用了链式内存池管理技术,在驱动程序和应用程序之间最大程度的减少了数据交互次数,很大程度的提高了数据采集的效率,减少了对于主机性能的依赖;
(5)本发明方法在66MHz/64位宽的情况下数据传输能到400MBps,在PCI-X/100MHz/64bit的情况下数据传输能到600MBps,远大于现有常规设计的传输能力。
附图说明
图1本发明的原理示意图;
图2为本发明方法的传输控制流程示意图;
图3为本发明主机驱动程序链式内存池结构示意图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京遥测技术研究所,未经北京遥测技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110433216.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于IAAS云平台的虚拟机容错方法
- 下一篇:简易的测量速度的装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置