[发明专利]一种基于PCIE卡高速数据传输的驱动方法有效
申请号: | 201810076107.2 | 申请日: | 2018-01-26 |
公开(公告)号: | CN108228490B | 公开(公告)日: | 2022-11-01 |
发明(设计)人: | 郭世泽 | 申请(专利权)人: | 武汉精测电子集团股份有限公司 |
主分类号: | G06F13/10 | 分类号: | G06F13/10;G06F13/28;G06F13/42 |
代理公司: | 武汉开元知识产权代理有限公司 42104 | 代理人: | 黄行军 |
地址: | 430070 湖北省武汉市*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 pcie 高速 数据传输 驱动 方法 | ||
本发明涉及数据传输技术领域,特别是一种基于PCIE卡高速数据传输的驱动方法。在初始化的过程中将DMA通道的地址和长度分别写入至平台系统中,并分配临时缓冲区;当相机采集到数据后,自动进行DMA传输,并在传输完成后反馈DMA中断至驱动;当驱动收到DMA中断后,将图像数据从DMA地址搬移到临时缓冲区中;在上层软件下发取像指令至驱动后,对上层软件下发的数据长度和存放地址进行解析;拷贝临时缓冲区的数据至指定地址,完成图像数据从相机到上层软件的传输。在驱动中采用了多块虚拟地址交替使用的环形内存数据块和采用固定DMA通道地址与长度进行数据传输,减少与硬件的交互次数,使数据传输的逻辑更简洁,数据传输效率更高。
技术领域
本发明涉及数据传输技术领域,特别是一种基于PCIE卡高速数据传输的驱动方法。
背景技术
在现有的PCIE数据传输中大多基于Windriver的用户层开发,该类型的驱动具有一定的局限性,1、要依赖于第三方的工具库(Windriver),对于后期的维护不方便;2、DMA通道(大数据专用传输通道)的大小的局限性比较大,该类型的驱动分配大空间通道容易失败,从而造成数据进行传输时效率会受到影响;3、流程控制方面,由于在用户层开发,灵活性、快捷性都会受到影响,比如某一个事件在内核层已经可以处理掉,但基于用户层开发时必须要与上层交互才能处理。
发明内容
为解决上述技术问题,本发明的目的在于提供一种DMA的带宽局限性小、数据传输效率高的基于PCIE卡高速数据传输的驱动方法。
本发明一种基于PCIE卡高速数据传输的驱动方法的技术方案为:
在初始化的过程中将DMA通道的地址和长度分别写入至平台系统中,并分配临时缓冲区;
当相机采集到数据后,自动进行DMA传输,并在传输完成后反馈DMA中断至驱动;
当驱动收到DMA中断后,将图像数据从DMA地址搬移到临时缓冲区中;
在上层软件下发取像指令至驱动后,对上层软件下发的数据长度和存放地址进行解析;
拷贝临时缓冲区的数据至指定地址,完成图像数据从相机到上层软件的传输。
进一步的,在将DMA通道的地址和长度分别写入至平台系统之前,判断DMA通道带宽和要分配的带宽是否一致,若一致则将DMA通道的地址和长度分别写入至平台系统中,若不一致则重新分配DMA通道后再将DMA通道的地址和长度分别写入至平台系统中。
进一步的,所述相机将采集的数据传输至驱动的过程与从驱动中将数据传输至上层软件的过程并行进行。
进一步的,所述拷贝临时缓冲区的数据至指定地址前,判断临时缓冲区中是否存在没有传输到上层软件的数据,如果有则拷贝临时缓冲区的数据至指定地址,如果无则进行连续判断,当连续多次判断仍然没有数据存在时,则反馈数据传输失败信号至上层软件。
进一步的,所述相机将采集的数据传输至驱动的过程如下:
当AB且A=an+Length2AB时;
若B=a1,则相机数据经过DMA搬移需要等待到B不小于a2的值后再进行数据搬移,搬移完成后A值为a2,
若B=a2,则直接进行数据搬移,搬移完成后A值为a2,
当AB且A!=an+Length2AB时,直接进行数据搬移,搬移完成后A值为A+Length2AB;
当A==B时,若C0,则等待上层软件取走一块数据后再次进行搬移,否则直接进行数据搬,移搬移完成后A值为A+Length2AB;
当AB时,直接进行数据搬移,搬移完成后A值为A+Length2AB;
每次数据搬移完成后,C+1;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉精测电子集团股份有限公司,未经武汉精测电子集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810076107.2/2.html,转载请声明来源钻瓜专利网。