[发明专利]一种基于PCIE卡高速数据传输的驱动方法有效
申请号: | 201810076107.2 | 申请日: | 2018-01-26 |
公开(公告)号: | CN108228490B | 公开(公告)日: | 2022-11-01 |
发明(设计)人: | 郭世泽 | 申请(专利权)人: | 武汉精测电子集团股份有限公司 |
主分类号: | G06F13/10 | 分类号: | G06F13/10;G06F13/28;G06F13/42 |
代理公司: | 武汉开元知识产权代理有限公司 42104 | 代理人: | 黄行军 |
地址: | 430070 湖北省武汉市*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 pcie 高速 数据传输 驱动 方法 | ||
1.一种基于PCIE卡高速数据传输的驱动方法,其特征在于:
在初始化的过程中将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;
其中,A为临时缓冲区保存数据后的结束地址值,B为上层软件每次数据获取完成后在临时缓冲区的结束地址值,C为缓冲区中存放的图像数据块数,an为将临时缓冲区平均分为n段后,第n段的起始地址,a1和a2分别为将临时缓冲区平均分为n段后,第一段的起始地址和第二段的起始地址,所述临时缓冲区内存长度为DMA长度n倍,Length2AB为DMA长度。
2.如权利要求1所述基于PCIE卡高速数据传输的驱动方法,其特征在于:在将DMA通道的地址和长度分别写入至平台系统之前,判断DMA通道带宽和要分配的带宽是否一致;
若一致则将DMA通道的地址和长度分别写入至平台系统中;
若不一致则重新分配DMA通道后再将DMA通道的地址和长度分别写入至平台系统中。
3.如权利要求1所述基于PCIE卡高速数据传输的驱动方法,其特征在于:所述拷贝临时缓冲区的数据至指定地址前,判断临时缓冲区中是否存在没有传输到上层软件的数据;
如果有则拷贝临时缓冲区的数据至指定地址;
如果无则进行连续判断,当连续多次判断仍然没有数据存在时,则反馈数据传输失败信号至上层软件。
4.如权利要求1所述基于PCIE卡高速数据传输的驱动方法,其特征在于,所述从驱动中将数据传输至上层软件的过程如下:
当AB时,直接进行数据拷贝,拷贝完成后B=B+Length2AB;
当A==B时,若C 0,则直接进行数据拷贝,否则等待C0时再进行数据拷贝,拷贝完成后B=B+Length2AB;
当A!=B时,直接进行数据拷贝,拷贝完成后B=B+Length2AB;
每次数据拷贝完成后,C-1;
其中,A为临时缓冲区保存数据后的结束地址值,B为上层软件每次数据获取完成后在临时缓冲区的结束地址值,C为缓冲区中存放的图像数据块数,Length2AB为DMA长度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉精测电子集团股份有限公司,未经武汉精测电子集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810076107.2/1.html,转载请声明来源钻瓜专利网。