一种基于RapidIO的高速传输实现方法技术

技术编号:17346161 阅读:91 留言:0更新日期:2018-02-25 11:16
本发明专利技术公开了一种基于RapidIO的高速传输实现方法,其中,包括:进行RapidIO驱动模块加载;进行主设备驱动加载;进行从设备驱动加载;进行高速传输驱动模块加载;进行高速传输驱动模块加载之后,进行设备打开;申请DMA通道;进行虚拟地址到物理地址的映射;将RapidIO地址映射到物理地址;进行主从设备间的通信,包括:发送数据采集指令;发送DMA数据包;通知接收设备DMA数据已发送;接收DMA数据;重复发送DMA数据包、通知接收设备DMA数据已发送以及接收DMA数据步骤,直到全部数据发送完毕;发送停止命令。本发明专利技术可以进行VPX架构下RapidIO总线下通过DMA进行大数据高速传输工作。

【技术实现步骤摘要】
一种基于RapidIO的高速传输实现方法
本专利技术设计一种数据传输方法,尤其基于RapidIO的高速传输实现方法。
技术介绍
现有的采用VPX体系架构的军用机计算机大多以SerialRapidIO串行通信总线为系统互联总线,SerialRapidIO串行通信总线将会是未来军用计算机系统内部互联的主流方式;VPX计算机内部板卡通常基于专用RapidIO芯片(如IDT公司的TSI721)或者IP核的方式来构建互联接口,基于专用RapidIO芯片的方式的优势在于通信稳定性高,可靠性好,成本低,功能完备。相比硬件,国内外对SerialRapidIO软件研究较少,尤其是驱动程序开发和研究参考资料很少,官方提供的可用驱动是针对Windows平台,并未提供Linux平台的成熟驱动。
技术实现思路
本专利技术的目的在于提供一种基于RapidIO的高速传输实现方法,用于解决上述现有技术的问题。本专利技术一种基于RapidIO的高速传输实现方法,其中,包括:进行RapidIO驱动模块加载;进行主设备驱动加载;进行从设备驱动加载;进行高速传输驱动模块加载;进行高速传输驱动模块加载之后,进行设备打开,包括:在接收端的驱动中注册一个doorbell响应请求函数,当设备接收到一个含有指定门铃号码的doorbell信号后,本地设备进行响应,执行doorbell响应请求函数中的行为;在接收端的驱动中注册一个message入邮箱响应请求函数,当设备接收到message信号后,本地设备进行响应,执行message入邮箱响应请求函数中的行为;在接收端的驱动中注册一个message出邮箱响应请求函数,当设备接收到message信号后,本地设备进行响应,执行message出邮箱响应请求函数中的行为;进行message发送队列初始化;申请DMA通道;进行虚拟地址到物理地址的映射;将RapidIO地址映射到物理地址;进行主从设备间的通信,包括:发送数据采集指令;发送DMA数据包;通知接收设备DMA数据已发送;接收DMA数据;重复发送DMA数据包、通知接收设备DMA数据已发送以及接收DMA数据步骤,直到全部数据发送完毕;发送停止命令。根据本专利技术的基于RapidIO的高速传输实现方法,其中,发送停止命令进一步包括:发送端将停止命令放入发送缓冲区,并给定发送缓冲区长度,将数据发送给接收端设备;接收端当收到message信号后读取邮箱中的数据,将邮箱中读取到的数据复制到message队列中,执行停止数据采集功能,清空数据接收队列,以便接受新的message数据。根据本专利技术的基于RapidIO的高速传输实现方法,其中,全部数据发送完成后,主设备通过message功能发送停止指令,通知从设备结束数据采集工作。根据本专利技术的基于RapidIO的高速传输实现方法,其中,发送数据采集指令包括:发送端将数据采集指令放入发送缓冲区,并给定发送缓冲区长度,将数据发送给接收端设备;接收端当收到message信号后读取邮箱中的数据,将邮箱中读取到的数据复制到message队列中,执行数据采集功能,清空数据接收队列,以便接受新的message数据;根据本专利技术的基于RapidIO的高速传输实现方法,其中,发送DMA数据包包括:发送端定义DMA发送端描述符,定义DMA的传输方向,申请DMA通道,绑定待发送缓冲区,给定目的地址,配置发送端RapidIO的MA数据,获取DMA描述符,确定数据已经完全发送完成,重置DMA应答标识位;根据本专利技术的基于RapidIO的高速传输实现方法,其中,接收DMA数据包括:接收端收到一个doorbell后,得知在映射好的物理地址上已经收到数据,从设备读取映射好的DMA缓冲区中的数据并保存至本地。根据本专利技术的基于RapidIO的高速传输实现方法,其中,主设备驱动加载的步骤,包括:1、加载“rapidio.ko”驱动,在加载时传入参数hdid,配置参数hdid为0;2、加载“tsi721_mport.ko”驱动;3、加载“rio-scan.ko”驱动,在加载时传入参数scan,配置参数scan为1。根据本专利技术的基于RapidIO的高速传输实现方法,其中,从设备驱动加载的步骤为:1、加载“rapidio.ko”驱动,在加载时传入参数hdid,配置参数hdid为-1;2、加载“tsi721_mport.ko”驱动;3、加载“rio-scan.ko”驱动,在加载时传入参数scan,配置参数scan为0。根据本专利技术的基于RapidIO的高速传输实现方法,其中,在加载扫描驱动后得到RapidIO设备rdev,对于主设备来说,rdev是从设备,对于从设备来说探测出来的rdev是主设备。根据本专利技术的基于RapidIO的高速传输实现方法,其中,发送DMA数据包,包括:发送端:定义DMA发送端描述符,包括:定义DMA异步发送描述符,这个结构体中定义了包括DMA的cookie、物理地址以及通道号回调函数在内的一个描述符;定义DMA的传输方向,包括:DMA的传输方向分为双向传输、单向发送数据、单向读取数据以及无DMA传输;绑定待发送缓冲区,包括:将指定缓冲区的地址以及挂载到RapidIODMA描述符上,发送的数据为该缓冲区中的数据;给定目的地址,包括:给定DMA发送的目的地址,该地址为RapidIO地址,DMA将缓冲区中的数据发送到指定的RapidIO地址上,接收端将该地址映射到本地物理地址,再将物理地址映射到虚拟地址,读取该虚拟地址中的数据即为DMA传输的数据,不断的向目的地址上发送连续的数据;配置发送端RapidIODMA数据,包括:配置DMA发送端数据传输的信息,该数据包括IO列表、列表长度、RapidIO写方式以及RapidIO目的地址地址;获取DMA描述符,包括:通过rio_dma_prep_slave_sg()函数将RapidIODMA数据赋给DMA描述符,该描述符将DMA数据发送到接收端;DMA回调函数,包括:在DMA数据包发送完成后通过描述符调用回调函数,该函数的调用说明DMA数据已经完全发送完成,不再影响后续数据的发送过程;重置DMA应答标识位,包括:DMA的发送过程已经结束,在数据包发送的过程中,DMA控制器给外设发送DMA应答信号,发送端应答信号DMA控制应答标识位置为1,在发送结束后,应当将该标识位重新重置,使其在数据包发送完成后处于可用状态。本专利技术的基于RapidIO的高速传输实现方法,基于业界最成熟的专用TSI721芯片方案,着眼开发并移植适合Linux平台下的驱动程序,为处理器板,高速记录存储板两类基础板卡之间的SerialRapidIO通信提供驱动层支持,并进行演示验证的应用层开发,借助“下一代地面雷达计算机”的样机研制契机,突破SerialRapidIO驱动共性技术。通过TSI721转换芯片实现了数据由PCIE向RapidIO转换的过程,主要用于满足武器系统雷达数据处理机大数据量交换传输的需求,在主机板和存储板/数据记录板之间传输数据。附图说明无具体实施方式为使本专利技术的目的、内容、和优点更加清楚,下面结合实施例,对本专利技术的具体实施方式作进一步详细描述。RapidIO大容量数据传输驱动的实现过程包括RapidIO驱动模块加载过程以及doorbell本文档来自技高网...

【技术保护点】
一种基于RapidIO的高速传输实现方法,其特征在于,包括:进行RapidIO驱动模块加载;进行主设备驱动加载;进行从设备驱动加载;进行高速传输驱动模块加载;进行高速传输驱动模块加载之后,进行设备打开,包括:在接收端的驱动中注册一个doorbell响应请求函数,当设备接收到一个含有指定门铃号码的doorbell信号后,本地设备进行响应,执行doorbell响应请求函数中的行为;在接收端的驱动中注册一个message入邮箱响应请求函数,当设备接收到message信号后,本地设备进行响应,执行message入邮箱响应请求函数中的行为;在接收端的驱动中注册一个message出邮箱响应请求函数,当设备接收到message信号后,本地设备进行响应,执行message出邮箱响应请求函数中的行为;进行message发送队列初始化;申请DMA通道;进行虚拟地址到物理地址的映射;将RapidIO地址映射到物理地址;进行主从设备间的通信,包括:发送数据采集指令;发送DMA数据包;通知接收设备DMA数据已发送;接收DMA数据;重复发送DMA数据包、通知接收设备DMA数据已发送以及接收DMA数据步骤,直到全部数据发送完毕;发送停止命令。...

【技术特征摘要】
1.一种基于RapidIO的高速传输实现方法,其特征在于,包括:进行RapidIO驱动模块加载;进行主设备驱动加载;进行从设备驱动加载;进行高速传输驱动模块加载;进行高速传输驱动模块加载之后,进行设备打开,包括:在接收端的驱动中注册一个doorbell响应请求函数,当设备接收到一个含有指定门铃号码的doorbell信号后,本地设备进行响应,执行doorbell响应请求函数中的行为;在接收端的驱动中注册一个message入邮箱响应请求函数,当设备接收到message信号后,本地设备进行响应,执行message入邮箱响应请求函数中的行为;在接收端的驱动中注册一个message出邮箱响应请求函数,当设备接收到message信号后,本地设备进行响应,执行message出邮箱响应请求函数中的行为;进行message发送队列初始化;申请DMA通道;进行虚拟地址到物理地址的映射;将RapidIO地址映射到物理地址;进行主从设备间的通信,包括:发送数据采集指令;发送DMA数据包;通知接收设备DMA数据已发送;接收DMA数据;重复发送DMA数据包、通知接收设备DMA数据已发送以及接收DMA数据步骤,直到全部数据发送完毕;发送停止命令。2.如权利要求1所述的基于RapidIO的高速传输实现方法,其特征在于,发送停止命令进一步包括:发送端将停止命令放入发送缓冲区,并给定发送缓冲区长度,将数据发送给接收端设备;接收端当收到message信号后读取邮箱中的数据,将邮箱中读取到的数据复制到message队列中,执行停止数据采集功能,清空数据接收队列,以便接受新的message数据。3.如权利要求1所述的基于RapidIO的高速传输实现方法,其特征在于,全部数据发送完成后,主设备通过message功能发送停止指令,通知从设备结束数据采集工作。4.如权利要求1所述的基于RapidIO的高速传输实现方法,其特征在于,发送数据采集指令包括:发送端将数据采集指令放入发送缓冲区,并给定发送缓冲区长度,将数据发送给接收端设备;接收端当收到message信号后读取邮箱中的数据,将邮箱中读取到的数据复制到message队列中,执行数据采集功能,清空数据接收队列,以便接受新的message数据。5.如权利要求1所述的基于RapidIO的高速传输实现方法,其特征在于,发送DMA数据包包括:发送端定义DMA发送端描述符,定义DMA的传输方向,申请DMA通道,绑定待发送缓冲区,给定目的地址,配置发送端RapidIO的MA数据,获取DMA描述符,确定数据已经完全发送完成,重置DMA应答标识位。6.如权利要求1所述的基于RapidIO的高速传输实现方法,其特征在于,接收DMA数据包括:接收端收到一个doorbell后,得知在映射好的物理地址...

【专利技术属性】
技术研发人员:杜默谭智敏钟松岩
申请(专利权)人:北京计算机技术及应用研究所
类型:发明
国别省市:北京,11

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

1