5019|4

5979

帖子

8

TA的资源

版主

楼主
 

【Altera SoC体验之旅】高速数据采集之数据传输(1) [复制链接]

本帖最后由 chenzhufly 于 2015-4-19 02:03 编辑

作者:chenzhufly  QQ:36886052
1、  硬件环境
       硬件平台: Embest SoC --LarkBoard
       软件平台:开发板-linux-3.10.31
                       Quartus 14.0
2、系统设计
     上回写到,中断是干什么的?中断就是通知ARM去接客的,那么ARM如何去接待尊贵的客人呢?,又如何能够获取到正确的数据呢?天空一声霹雳,HPS-FPGA Interfaces闪亮登场!主要包含:
  • FPGA-to-HPS bridge
  • HPS-to-FPGA bridge
  • Lightweight HPS-to-FPGA bridge
  • FPGA-to-HPS SDRAM interface

通过对HPS-FPGA Interfaces的深入学习和了解,我修改了高速数据采集的框架设计,系统框图如下:
1)中断挂在Lightweight HPS-to-FPGA bridge
2)数据缓存挂在HPS-to-FPGA bridge;Lightweight HPS-to-FPGA bridge只有2M的寻址空间,感觉不太适合挂数据buffer,HPS-to-FPGA bridge有640M的寻址空间,够用了。
3)每中断一次,ARM从FPGA的ROM中取一次数据,这是本次实验的重点!

这次主要是测试一下红圈圈里面的东西,为进一步的数据传输做准备,先传个ROM的数据,这个方便测试!

3、qsys的设计
下图是qsys的设计和连接关系如下图所示:

从图上可以看出rom挂载在HPS-to-FPGA bridge上,偏移地址为0

rom加载的文件方法可参照:
  1. https://bbs.eeworld.com.cn/thread-459695-1-1.html
复制代码

当然也可以在quartus中新建一个Memory files,然后自己手添测试数据,我就是这么干的,哈哈。下图是ROM的初始化数据
4、驱动更新
在上回的驱动上做一些小小的修改,支持每次中断的时候把ROM中的数据取出来并打印到中断上;
1)定义一些宏
  1. #define ROM_BASE 0xc0000000
  2. #define ROM_SIZE 64
  3. void *fpga_rom_mem;
复制代码

2)初始化
  1. if (!request_mem_region(ROM_BASE,ROM_SIZE,"rom_test")) {
  2.                 printk( KERN_INFO"rom_test Memory region busy\n");
  3.                 return  -EBUSY;

  4.         }
  5.         fpga_rom_mem = ioremap(ROM_BASE,ROM_SIZE);
  6.         if(!fpga_rom_mem) {
  7.             printk( KERN_INFO" rom_test ioremap failed\n");
  8.                 return -EIO;
  9.         }
复制代码

3)中断处理函数
  1.     for (i=0;i < ROM_SIZE;i++){
  2.                 tmp = ioread8(fpga_rom_mem + i);
  3.     printk("%d ",tmp);
  4.     }
  5.     printk("\n");  
复制代码

5、测试结果

这是终端打印的结果,每中断一次打印一次,对比一下是不是和上面ROM的初始化文件一样一样的,说明整个数据链路已经通了!

6、小结
1)这次主要是测试一下HPS-to-FPGA bridge,通过读取ROM中的数据来确认正确性,目前已经测试成功;
2)修改了一下系统设计,随着对soc的不断认识,可能后续还会做一些调整,soc的内容太多了,一时半会学不透啊;
3)下一步准备把ADC采集的数据挂上去,做进一步的测试,欢迎大伙一起交流


此帖出自FPGA/CPLD论坛

最新回复

楼主可以把quartus工程共享一下吗  详情 回复 发表于 2018-1-12 16:42

赞赏

1

查看全部赞赏

点赞 关注(1)
个人签名生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙
===================================
做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
 

回复
举报

1204

帖子

1

TA的资源

纯净的硅(初级)

沙发
 
哇哇,好厉害,学习学习
此帖出自FPGA/CPLD论坛
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
楼主可否提供一个HPS响应FPGA中断的demo,一直没有搞定啊,谢谢  544045524@qq.com
此帖出自FPGA/CPLD论坛
 
 
 

回复

39

帖子

0

TA的资源

一粒金砂(中级)

4
 
楼主可以把quartus工程共享一下吗
此帖出自FPGA/CPLD论坛
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(初级)

5
 

楼主可以把quartus工程共享一下吗
此帖出自FPGA/CPLD论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表