[发明专利]支持PC与FPGA通过PCIE通信的驱动设计方法有效
申请号: | 202010235268.9 | 申请日: | 2020-03-30 |
公开(公告)号: | CN111427823B | 公开(公告)日: | 2023-05-02 |
发明(设计)人: | 褚孝鹏;陈玉杰;赵辰;姜博畅 | 申请(专利权)人: | 天津光电通信技术有限公司 |
主分类号: | G06F13/40 | 分类号: | G06F13/40;G06F13/32 |
代理公司: | 天津合正知识产权代理有限公司 12229 | 代理人: | 李成运 |
地址: | 300211*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 支持 pc fpga 通过 pcie 通信 驱动 设计 方法 | ||
1.一种支持PC与FPGA通过PCIE通信的驱动设计方法,其特征在于,包括:
S1、根据FPGA中断类型,设计驱动运行状态表;
S2、设计PCIE上行数据流程,根据驱动运行状态表判断状态进行下一步的操作;
S3、设计PCIE下发数据流程,根据驱动运行状态表判断状态进行下一步的操作;
步骤S2所述上行数据流程包括:
S21、FPGA主动向PC发送中断;
S22、FPGA发送的中断在Windows驱动内进行处理;先进行状态判断;如果设备已经打开并且处于空闲状态,执行步骤S23,如果设备不是空闲状态,执行步骤S26;
S23、通过查询寄存器判断FIFO中是否满足一包的数据要求;如果满足要求,申请dpc处理;
S24、先复位DMA控制器,分配DMA传输空间和地址,再将缓存地址发送给FPGA的寄存器08H,最后通过设置寄存器04H,启动DMA Write传输,并改变驱动状态;
S25、等待DMA传输完成后,DMA控制器产生中断;
S26、通过读取寄存器04H,判断读取数据是否完成,如果读取数据完成,则该改变标志位,申请dpc处理;
S27、将数据从总线上转移到DMA关联的buf中;然后将数据从DMA关联的buf中,存储到两个交替使用的用户buffer中;
S28、当其中一个用户buffer存满后,通过事件通知DLL层,DLL层的程序再将用户buffer中的数据拷贝到内核层的buf中;
步骤S3所述下发数据流程包括:
S31、下发命令,通知FPGA停止中断,使上行数据停止上传;
S32、将应用层要下发的数据传入到内核层;
S33、将传递下来的数据拷贝到DMA关联的Buf中;
S34、初始化DMA操作,先复位DMA控制器,分配DMA传输空间和地址,再将缓存地址发送给FPGA的寄存器1CH寄存器,最后通过设置寄存器04H,启动DMA Read传输,并改变驱动状态,并等待传输完成;
S35、等待DMA传输完成后,DMA控制器产生中断;
S36、进入中断后,判断状态,通过读取寄存器04H,判断发送数据据是否完成,如果发送数据完成,则该改变标志位,申请dpc处理;
S37、在dpc处理中,释放DMA资源,并通知内核中的等待事件,步骤S34继续运行,传输完成,返回信息。
2.根据权利要求1所述的设计方法,其特征在于,步骤S1中所述驱动运行状态表的设计方法包括:
根据FPGA的中断类型,设计驱动状态主要包括:空闲状态、发送状态、接收状态三种;在空闲状态时,进行读取数据的操作,并转换成接收数据状态,不再允许读取数据操作,直到读取数据完成,再转换成空闲状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津光电通信技术有限公司,未经天津光电通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010235268.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种五层花色线冰淇淋及其制备方法
- 下一篇:一种建筑排烟与通风结构