免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8749 | 回复: 11
打印 上一主题 下一主题

写FPGA驱动如何使用中断呢 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-07-30 11:00 |只看该作者 |倒序浏览
是这样的:
在我的开发板上,ARM与FPGA直接连接, 然后FPGA与并口相连.
现在我需要做FPGA的驱动, 假设从并口有数据写入FPGA, FPGA那么将会给ARM一个中断, 告诉ARM可以去读FPGA中的数据了.
我的问题是:
ARM如何知道FPGA的数据写到哪了, 到底应该读多少数据)? 怎么控制使读FPGA的数据的过程不会溢出? (读数据的范围超入的FPGA写入的数据范围)
希望大家指点一下, 小弟苦思很久了, 想不到解决方案, 谢谢了!

论坛徽章:
0
2 [报告]
发表于 2010-07-30 17:34 |只看该作者
回复 1# commandow01


   你的描述不是很清楚,,ARM和FPGA是如何通讯的?I2C?SPI?还是UART?Ethernet?等等 ,又用的什么协议?
   FPGA的程序应该可以控制ARM 读到数据的大小吧等等,,看你程序怎么写了?

论坛徽章:
0
3 [报告]
发表于 2010-07-30 17:41 |只看该作者
本帖最后由 wmmy2008 于 2010-07-30 17:42 编辑

"并口有数据写入FPGA, FPGA那么将会给ARM一个中断, 告诉ARM可以去读FPGA中的数据了."

这样子会不会走弯路了,,
这样子你看行不行:FPGA在收到数据以后,直接发送给ARM(不管用什么通讯方式和协议),在ARM中收到数据以后就可以解析数据,实现相关业务了。。
不太清楚你的具体情况,只是个人浅见...

论坛徽章:
0
4 [报告]
发表于 2010-07-30 20:13 |只看该作者
回复 3# wmmy2008


   是这样的, 在ARM中跑的是linux系统, FPGA直接给它发应该是不行. 如果FPGA中有数据了, 通过中断信号线给ARM一个中断, 相应的ARM就会调用FPGA的驱动程序进行读操作.
而在这个过程中我最苦恼的地方是双方之间的通信协议. 也就是说: 假设要读, 该读多少呢, 读的同时FPGA中也在不断的写入数据. 这是我现在的难点
  不过很感激你对我三个问题的回答, 有可能我问题描述不大清楚, 自已学的还是不够, 有错的地方还望指教

论坛徽章:
0
5 [报告]
发表于 2010-07-30 22:36 |只看该作者
回复 4# commandow01


    晕,ARM和FPGA是两个CPU吧,请问你如何在ARM程序中调用FPGA的驱动程序?

论坛徽章:
0
6 [报告]
发表于 2010-07-30 22:42 |只看该作者
这应该是个很简单的问题,就是涉及到两个CPU如何通讯的问题吧!

论坛徽章:
0
7 [报告]
发表于 2010-07-30 23:15 |只看该作者
正好,借机会问二位一个问题:

fpga中无法实现类似FIFO的逻辑?无法实现类似”加锁“一类的操作?
如果能实现的话就好说了,一个中断唤醒linux的读就可以了,直到不能读,就又睡了

关键是fpga能实现这个吗?本人一点不懂FPGA,请教下

论坛徽章:
0
8 [报告]
发表于 2010-07-30 23:35 |只看该作者
回复 4# commandow01

我觉得可以搞一个RING BUFFER (环行队列?中文也许是这么叫). 然后搞2个指针.一个读,一个写. 硬件 (FPGA) 和驱动(ARM) 在读写之前都先CHECK一下BUFFER状态. 如果BUFFER满了, FPGA就不能写了. 如果BUFFER空的, ARM也不能读. 可以用中断告诉ARM 有数据来了.

上面这个是在网卡(比如 INTEL E1000)中常用的方法,不知道你用FPGA做起来有多难. 可以看下 INTEL 82540 (E1000)的硬件手册. 我在这个版贴过.

论坛徽章:
0
9 [报告]
发表于 2010-07-31 09:27 |只看该作者
回复 8# accessory


    谢谢你的回答, 我的FPGA相当于只实现RAM的功能, ARM的数据过来, 然后存储转发出去. 它本身有数据了, 中断通知道ARM来读取.
主要就是这个流程, 我不大明白的就是在它们之间的通信流程. 你说的ring buffer 是在FPGA里面做吗?

论坛徽章:
0
10 [报告]
发表于 2010-07-31 09:39 |只看该作者
fpga应该可以实现fifo的功能吧 俺没做过,以前听别人说起过。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP