AM62x GPMC并口如何实现“小数据-低时延,大数据-高带宽”—ARM+FPGA低成本通信方案
GPMC并口简介
GPMC(General Purpose Memory Controller)是TI处理器特有的通用存储器控制器接口,支持8/16bit数据位宽,支持128MB访问空间,最高时钟速率133MHz。GPMC是AM62x、AM64x、AM437x、AM335x、AM57x等处理器专用于与外部存储器设备的接口,如:(1)FPGA器件(2)ADC器件(3)SRAM内存(4)NOR/NAND闪存

图 1 GPMC功能框图
GPMC并口3大特点
(1)小数据-低时延
在工业自动化控制领域中,如工业PLC、驱控一体控制器、运动控制器、CNC数控主板、继电保护设备、小电流接地选线等,极其注重精确性与快速性,GPMC并口“小数据-低时延”的特点显得格外耀眼,能够很好地提高数据传输效率,降低传输成本。
(2)大数据-高带宽大数据时代对能源电力领域的数据量传输、数据处理等方面提出了更高的要求。GPMC提供了最大的灵活性,以支持四个可配置片选中不同的时序参数和位宽配置。可根据外部设备的特点,使用最佳的片选设置。可通过配置GPMC接口的时序参数和不同工作模式,最大速率可超过100MB/s。因此,GPMC“大数据-高带宽”的特点在能源电力领域扮演着重要角色。
(3)低成本-低功耗“低成本、低功耗、高性能”是如今智能设备发展趋势,GPMC并口相对于PCIe串行接口,成本更低、功耗更低。两者都为常用的通信接口,均可满足高速通信要求,但在与FPGA通信的时候,用户往往更喜欢选用GPMC并口,因为:1、使用低成本FPGA即可实现高速通信,而具备PCIe接口的FPGA成本则成倍增长。2、具备PCIe接口的FPGA功耗往往较大,而低成本FPGA功耗较小。一般而言,低功耗器件的使用寿命也将更长。
基于CPU直接访问方式
以AM62x为例,通过GPMC接口与FPGA连接,采用CPU直接访问方式读取FPGA端的数据,写速度可达15.501MB/s,读速度可达5.744MB/s。
此方式适合“小数据-低时延”场合。

程序流程说明:(1)ARM端通过GPMC总线将数据写入FPGA BRAM;(2)ARM端通过GPMC总线从FPGA BRAM读取数据;(3)判断写入与读取数据的正确性,并计算读写速率。
基于UDMA访问方式以AM62x为例,通过GPMC接口与FPGA连接,采用UDMA的方式读取FPGA端的数据,写速度可达73.90MB/s,读速度可达77.47MB/s,实际上通过配置GPMC接口的时序参数和不同工作模式,最大速率可超过100MB/s。
此方式适合“大数据-高带宽”场合。

备注:由于测试受线材限制影响,因此测得误码率会过高。
程序流程说明
ARM端:(1) 采用UDMA方式;(2)将数据写入至dma_memcpy驱动申请的连续内存空间(位于DDR);(3)配置UDMA,如源地址、目标地址、传输的数据大小等;(4)写操作:通过ioctl函数启动UDMA,通过GPMC总线将数据搬运至FPGA BRAM;(5)程序接收驱动上报input事件后,将通过ioctl函数获取UDMA搬运数据耗时,并计算UDMA传输速率(即写速率);(6)读操作:通过ioctl函数启动UDMA,通过GPMC总线将FPGA BRAM中的数据搬运至dma_memcpy驱动申请的连续内存空间;(7)程序接收驱动上报input事件后,将数据从内核空间读取至用户空间,然后校验数据,同时通过ioctl函数获取UDMA搬运数据耗时,并计算UDMA传输速率(即读速率)。
FPGA端:(1)根据ARM端GPMC时序解析数据,对FPGA内部BRAM资源进行访问。BRAM的地址位宽为10bit,数据位宽为16bit,内存空间大小为2KByte(1024 x 16bit)。

AM62x GPMC并口如何实现“小数据-低时延,大数据-高带宽”—ARM+FPGA低成本通信方案的更多相关文章
- 【大数据-课程】高途-天翼云侯圣文-Day1:互联网大数据揭秘(大数据介绍&MR实现双十一举牌)
一.大厂职级 P7:年薪百万 二.大数据发展 1.职业路线和岗位角色 2.大数据行业发展 三.大数据的位置 1.热门行业 大数据承上启下 2.三者关系 啤酒和尿不湿:启发可以放在一块 3.大数据作用 ...
- 使用rowid抽取数据方法以及大数据量游标卡住的应对
平时工作的时候,经常会遇到这种事情,从一个大表A中,抽取字段a在一个相对较小B的表的数据,比如,从一个详单表中,抽取几万个用户号码的话单出来.这种时候,一般来说, 做关联查询: create tabl ...
- Hadoop! | 大数据百科 | 数据观 | 中国大数据产业观察_大数据门户
你正在使用过时的浏览器,Amaze UI 暂不支持. 请 升级浏览器 以获得更好的体验! 深度好文丨读完此文,就知道Hadoop了! 来源:BiThink 时间:2016-04-12 15:1 ...
- bat坐拥大数据。数据挖掘/大数据给他们带来什么。
阿里巴巴CTO即阿里云负责人王坚博士说过一句话:云计算和大数据,你们都理解错了. 实际上,对于大数据究竟是什么业界并无共识.大数据并不是什么新鲜事物.信息革命带来的除了信息的更高效地生产.流通和消 ...
- 1300多万条数据30G论坛大数据优化实战经验小结
最近由于某大型网站社区论坛运行效率比较低用户反馈论坛有些卡需要对系统进行优化,论坛性能影响了公司的形象还有网站的流量,当然这也会影响到公司的收入,而且后期还需要长期维护网站的社区论坛服务. 1:并发访 ...
- 第二篇:智能电网(Smart Grid)中的数据工程与大数据案例分析
前言 上篇文章中讲到,在智能电网的控制与管理侧中,数据的分析和挖掘.可视化等工作属于核心环节.除此之外,二次侧中需要对数据进行采集,数据共享平台的搭建显然也涉及到数据的管理.那么在智能电网领域中,数据 ...
- Oracle数据库--解决单张表中数据量巨大(大数据、数据量上百万级别,后查询,更新数据等耗时剧增)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/QQ578473688/article/details/54561397 思路1:采用备份表 备份表中 ...
- 《后会无期》票房赶超《小时代3》 大数据解读韩寒VS四娘之争
7月25日.韩寒导演的处女作<后会无期>零点首映,而郭四娘导演的<小时代3:刺金时代>比<后会无期>早上映一周.也就是7月17日正式公映,韩寒与四娘之间向来不缺乏话 ...
- Hadoop大数据学习视频教程 大数据hadoop运维之hadoop快速入门视频课程
Hadoop是一个能够对大量数据进行分布式处理的软件框架. Hadoop 以一种可靠.高效.可伸缩的方式进行数据处理适用人群有一定Java基础的学生或工作者课程简介 Hadoop是一个能够对大量数据进 ...
- 利用 StartLoadingStatus 和 FinishLoadingStatus 读取数据特别是大数据时增加渐隐渐显等待特效 - Ehlib学习(三)
代码很简单: DBGrideh.StartLoadingStatus(' Loading ... '); Sleep(500); DBGrideh.FinishLoadingStatus; 做下变动: ...
随机推荐
- C#.NET体系图文概述—2024最全总结
C# 是一种简单.现代.面向对象和类型安全的编程语言.. .NET 是由 Microsoft 创建的开发平台,平台包含了语言规范.工具.运行,支持开发各种应用,如Web.移动.桌面等..NET框架有多 ...
- blazor中的PageTitle输出keywords和description,自定义组件
在blazor的PageTitle中不具备输出keywords和description的功能,而如果直接使用<mate>标签,输出中文时会变成乱码,所以我给大家推介下面的代码解君愁: 1 ...
- gin+grom 求当天的数据列表 0点到24点
框架go-admin gin+gorm mysql表 CREATE TABLE `sq_user_ticket` ( `id` bigint(20) NOT NULL AUTO_INCREMENT C ...
- winform cefsharp chart.js 再winform上使用chart.js 绘制动态曲线
CefSharp 是一款开源的使用.net平台基于谷歌的 封装浏览器组件,可用于winform wpf . chart.js 也是一款开源的图表展示组件. 我所作的就是使用这两个组件再winform上 ...
- 一个基于 Spring Dubbo 微服务的快速开发脚手架,新手入门必备!
Spring-dubbo-skeleton 这是一个基于 Spring Dubbo 的快速开发脚手架,Github 地址:https://github.com/yxhsea/spring-dubbo- ...
- 三元运算符 JAVA12
Java 提供了一个特别的三元运算符(也叫三目运算符) 表示:条件运算符的符号表示为"? :",使用该运算符时需要有三个操作数,因此称其为三目运算符. 举例一 int x,y,z; ...
- 一个简单demo展示接口请求超时处理
package main import ( "context" "errors" "fmt" "time" ) type ...
- claude3国内API接口对接
众所周知,由于地理位置原因,Claude3不对国内开放,而国内的镜像网站使用又贵的离谱! 因此,团队萌生了一个想法:为什么不创建一个一站式的平台,让用户能够通过单一的接口与多个模型交流呢?这样,用户就 ...
- Cmockery学习
什么是cmockery? 是一个轻量级的C语言单元测试框架 什么是单元测试? 单元测试就是测试一个系统的最小实现单元,往往是函数 示例解析 #include <stdarg.h> #inc ...
- 7.16考试总结(NOIP模拟17)[世界线·时间机器·weight]
车如流水马如龙,花月正春风 前言 其实,一开始 T1 是看错了题的,我以为是无向图来着,就想直接搞到每一个联通块的完全图,然后减去总边数就好了. 发现错误之后,码了个暴力,想得 40pts 来着,没想 ...