一种基于Linux系统的串行RapidIo数据传输方法技术方案

技术编号:8215595 阅读:364 留言:0更新日期:2013-01-17 13:10
一种基于Linux系统的串行RapidIo数据传输方法,利用少量的DMA控制器资源,采用DMA链表模式,并将DMA控制器的寄存器空间映射到FPGA,从而实现FPGA通过写CPU的DMA模式寄存器MRn的[CC]bit,开始DMA链表传输,从而发起rapidio链路的数据传输,整个数据传输过程无论是写DMA寄存器还是DMA搬运数据以及最后的rapidio链路数据传输都不需要CPU参与,极大的提高了CPU效率,并且数据传输严格按照时序要求实现,摆脱利用中断实现时序同时频繁响应中断带来的性能下降的困境;利用uio技术,实现内核空间地址到用户空间地址的映射,使得在用户空间可以直接操作内核空间地址,避免用户空间和内核空间的数据拷贝。并且可以设计DMA链表节点,实现rapidio链路输出窗口的数据传输的灵活控制。

【技术实现步骤摘要】

本专利技术涉及无线通信
,尤其是涉及。
技术介绍
在嵌入式系统中,传统的时序控制均是由外部中断通知CPU,然后CPU完成该时序应实现的工作,一般来说,由于外部中断的抢占性和独占性,决定了如果同一个核上的中断到来的时间非常接近,就会发生丢中断的现象,如果将中断线程化以减少中断处理时间,从而缓解丢中断问题,则会降低系统的实时性。用户空间与内核空间之间的数据交换,必然会产生上下文切换和数据拷贝的代价,而使用Uio技术(用户空间进行IO存取的技术),则是直接将内核空间地址映射到用户 空间,使得这段地址范围在用户态和内核态均可操作,避免上下文切换和数据拷贝。Uio接口已经在linux2. 6. 23中正式合并到内核的代码树中。rapidio表示高性能嵌入式互连技术,由Rapidio Trade Association在2001年12月开发的一套应用于芯片至芯片或板至板通信的公开的高带宽全双工方案,性能达到Gigabyte/s。在2004年举行的委员会上,国际标准化组织(ISO)和国际电工协会(IEC) —直投票批准Rapidio互连规范成为IS0/IEC DIS18372标准,使得Rapidio成为世界上唯一的嵌入式系统互连技术国际标准。在一个rapidio传输系统中,所有的设备共同拥有34位地址的rapidio空间(Rapidio region),这个空间是个虚拟的空间,当一个输出窗口与一个输入窗口对应的rapidio空间的地址相同时,数据就可以从输出窗口传输到输入窗口,如图4所示,通过申请的输出窗口和输入窗口,将CPU的10 regionClO空间)通过rapidio传输通道与FPGA的内存(Memory)连接。根据《rapidio互联规范》IS0/IEC DIS 18372所述,输出窗口的地址转换单元(ATMU)是本地10空间与rapidio空间之间的地址转换,同时DMA (直接内存存取)是将数据从内核空间的地址搬运到10空间的地址,并且这两个过程都是由硬件完成,基本对CPU运行程序不会带来任何负面影响。所以通常基于rapidio协议的数据传输设计都会将DMA和rapidio的输出窗口相结合,通常每个输出窗口申请一个DMA通道,这样如果输出窗口有多个,就会占用过多的DMA资源,从而影响整体设计。如图I所示,现有技术中的rapidio链路数据传输过程为首先将数据从用户空间拷贝到内核空间的一段地址,然后当接收到FPGA等外部时序设备的中断时,CPU执行中断服务程序开启DMA传输,通过此DMA通道将内核空间的数据搬运到10空间,最后由输出窗口的ATMU单元,实现rapidio链路的数据传输。下面描述一个需要同时解决上述三个问题的实际系统。在LTE (长期演进)无线通信基站系统中,数据由用户态协议栈产生并拷贝到内核空间对应的地址,并于下个Ims响应由FPGA产生的2个中断,再分别通过rapidio接口发往FPGA (现场可编程门阵列)或者DSP (数字信号处理器)。当只有管理一个小区的时候,数据拷贝3次,中断响应2次,当管理多个小区时,这些操作也会加倍,此时按照普通设计的系统,性能将不能满足实际需要。
技术实现思路
本专利技术提出了,其目的是在无线通信基站建设中,满足高速数据传输的要求,有效减少资源占用的同时有效提高系统的性能。本专利技术的技术方案为,设置支持rapidio接口的CPU和与CPU相连的对端设备,由对端设备产生时序;在初始化后进行数据传输。初始化过程包括以下子步骤, 步骤I. 1,采用DMA基本链表模式,建立DMA链表,DMA链表中的节点包括头节点和数据传输节点,每个rapidio输出窗口对应一个DMA链表的数据传输节点;DMA链表中每个节点的数据结构包括源地址、目的地址、传输长度、下一个节点的地址Next link addr, Nextlink addr中设一个标志位End of link表示当前节点是否为最后一个节点; 步骤I. 2,申请所需的多个rapidio输出窗口,并申请每个rapidio输出窗口相应的内核DMA空间; 步骤I. 3,每一个内核DMA空间地址和相应的rapidio输出窗口的10空间地址分别填入DMA链表中对应数据传输节点的源地址和目的地址,建立rapidio传输通道; 步骤I. 4,申请一个rapidio输入窗口,rapidio输入窗口的地址转换单元的源地址包含CPU的DMA寄存器的地址;同时在对端设备中申请一个输出窗口,并且对端设备的输出窗口和rapidio输入窗口有相同的rapidio空间的地址; 步骤I. 5,使用uio技术,将DMA链表、为rapidio输出窗口申请的内核DMA空间的所有存储空间都映射到用户空间; 数据传输过程包括以下子步骤, 步骤2. 1,写步骤I. 5使用uio技术映射到用户空间的存储空间,实现数据装入; 步骤2. 2,当数据装入完成后,在用户态清除DMA链表头结点的end of link标志位;步骤2. 3,当对端设备产生的时序到了发起传输数据的时刻后,由对端设备通过步骤I. 3建立的rapidio传输通道,写CPU的DMA寄存器,将CPU的DMA寄存器的模式寄存器的[CCJbit 置 I。而且,在DMA链表的头节点后面增加一个copy节点和一个clone节点,设置头节点的end of link位为I。而且,在DMA链表中每一个rapidio输出窗口对应的节点后面增加一个copy节点和一个clone节点,清除上一个节点的源地址和目的地址。而且,所述对端设备为FPGA或DSP。该方法能在Iinux系统中实现完全控制发送时序并且摆脱利用中断实现时序同时频繁响应中断带来的性能下降的困境;实现多个输出窗口复用I个DMA通道完成数据搬运;利用uio技术,实现内核空间地址到用户空间地址的映射,使得在用户空间可以直接操作内核空间地址,避免用户空间和内核空间的数据拷贝。本专利技术的特点包括输出窗口控制灵活;控制基本上都在用户态完成,无需上下文切换;外围FPGA通过rapidio输入窗口直接写CPU的DMA寄存器,实现时序控制。本专利技术对比已有技术有以下创新点 I、利用DMA链表技术,使Rapidio输出窗口的数目脱离DMA通道资源的束缚。2、利用rapidio输入窗口使得FPGA可以写CPU的DMA寄存器,达到严格完成数据发送的时序要求,并且不使用中断,解决时序要求和中断损耗的矛盾。3、利用uio技术,免除从用户空间拷贝数据到内核空间。4、本设计模型还可以通过修改DMA链表的设计,达到灵活控制rapidio输出窗口是否发送数据的目的。附图说明 图I为现有技术中的rapidio链路数据传输的传统方法示意 图2为本专利技术实施例的rapidio链路数据传输方案示意图。图3为本专利技术实施例的DMA节点的主要数据结构图。图4为现有技术中的rapidio的数据传输通道示意图。图5为本专利技术实施例建立的DMA节点的链表示意图。图6为本专利技术实施例建立的一种数据传输节点的示意图 具体实施方式 本专利技术主要针对嵌入式系统如何在Iinux系统下应用Serial rapid io实现高速传输,提供了一种基于rapidio协议的设计,在无线通信基站建设中,满足高速本文档来自技高网
...

【技术保护点】
一种基于Linux系统的串行RapidIo数据传输方法,其特征在于:设置支持rapidio接口的CPU和与CPU相连的对端设备,由对端设备产生时序;在初始化后进行数据传输,初始化过程包括以下子步骤,步骤1.1,采用DMA基本链表模式,建立DMA?链表,DMA?链表中的节点包括头节点和数据传输节点,每个rapidio输出窗口对应一个DMA链表的数据传输节点;DMA?链表中每个节点的数据结构包括源地址、目的地址、传输长度、下一个节点的地址Next?link?addr,Next?link?addr中设一个标志位End?of?link表示当前节点是否为最后一个节点;步骤1.2,申请所需的多个rapidio输出窗口,并申请每个rapidio输出窗口相应的内核DMA空间;步骤1.3,每一个内核DMA空间地址和相应的rapidio输出窗口的IO空间地址分别填入DMA链表中对应数据传输节点的源地址和目的地址,建立rapidio传输通道;步骤1.4,申请一个rapidio输入窗口,rapidio输入窗口的地址转换单元的源地址包含CPU的DMA寄存器的地址;同时在对端设备中申请一个输出窗口,并且对端设备的输出窗口和rapidio输入窗口有相同的rapidio空间的地址;步骤1.5,使用uio技术,将DMA链表、为rapidio输出窗口申请的内核DMA空间的所有存储空间都映射到用户空间;数据传输过程包括以下子步骤,步骤2.1,写步骤1.5使用uio技术映射到用户空间的存储空间,实现数据装入;步骤2.2,当数据装入完成后,在用户态清除DMA链表头结点的end?of?link标志位;步骤2.3,当对端设备产生的时序到了发起传输数据的时刻后,由对端设备通过步骤1.3建立的rapidio传输通道,写CPU的DMA寄存器,将CPU的DMA寄存器的模式寄存器的[CC]bit置1。...

【技术特征摘要】

【专利技术属性】
技术研发人员:秦燕婷
申请(专利权)人:武汉邮电科学研究院
类型:发明
国别省市:

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

1