基于AM62x的ARM+FPGA+Codesys低成本软PLC解决方案

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闪存



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)。



Codesys教程背景

在上一期教程中,我们已经完成了控制器设备的连接和配置。接下来的教程将继续以HK-MC-Prime为例,假设控制器已经配置并连接到开发者的PC上,为您演示如何为控制器安装合适的CODESYS V3版本并创建第一个程序。

一、安装CODESYS

(一)选择适合的版本

值得注意的是,控制器不能与任意编码的V3版本一起使用,其对CODESYS V3的版本和相应的target要求取决于控制器的固件版本。因此,重要的是要为您的控制器安装适配的CODESYS V3版本,而非直接使用CODESYS V3开发环境的最新版本。

要找到控制器的固件版本,请参考上一则教程中“通过web界面进行配置”的步骤,登录到控制器的web界面,并打开“System Info”页面。

如上图所示,可以看到控制器的固件版本为1.1.3,且HK-MC-Prime是基于Pi控制平台的,那么根据固件版本和CODESYS V3版本的对应选型表可知,该控制系所使用的开发环境为:CODESYS3.5.16.50。您可以通过CODESYS官网下载对应的安装包。

(二)安装CODESYS V3

如上图所示,我们已经完成安装包的下载,之后CODESYS V3的具体安装步骤如下:

1启动安装

请注意需以管理员身份运行文件CODESYS.3.5.16.50,以启动CODESYS V3的安装。

2自定义安装位置

点击“Next”,接受相应的安装要求,并再次点击“Next”,跳转到下图界面,可自定义更改软件安装位置:

3选择特性

如果您不知道您需要什么特性,那么就对所有特性进行完整的安装;反之,您可以取消选择一些不必要的特性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/586728.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023年新一代开发者工具 Vue ,正式开源!

以下文章来源于前端充电宝 ,作者CUGGZ 近日,Vue 新一代开发者工具(DevTools)正式开源!Vue DevTools 是一个旨在增强 Vue 开发人员体验的工具,它提供了一些功能来帮助开发者更好地了解 Vue 应用。下面就来看…

小程序入门-登录+首页

正常新建一个登录页面 创建首页和TatBar,实现登录后底部出现两个按钮 代码 "pages": ["pages/login/index","pages/index/index","pages/logs/logs" ],"tabBar": {"list": [{"pagePath"…

Hexo 部署 Github Pages, Github Actions自动部署

想整个静态的博客部署在github pages 历经两天的折磨终于是摸索成功了,官网的文档太简陋了,很多东西没说清楚。 欢迎大家访问我的博客! CanyueThis is Canyues blog.https://mobeicanyue.github.io/ 最终实现的效果,一个项目仓库…

51单片机之LED灯

51单片机之LED灯 🌴前言:🏮点亮LED灯的原理💘点亮你的第一个LED灯💘点亮你的八个LED灯 📌让LED灯闪烁的原理🎽 LED灯的闪烁🏓错误示范1🏓正确的LED闪烁代码应该是这样&am…

PythonTSK Study for first day (paper read)

HTSK model Study AbstractIntroductionII TSK for high-dimentional datasetIII ResultsA DatesetB AlgorithmC性能评估 Abstract The TSK Fuzzy System with Gaussian membership functions can not address high dimentional datasets, if add softmax function to solve i…

day14--JDK8~17新特性(下):

第18章_JDK8-17新特性(下) 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 6. 新语法结构 新的语法结构,为我们勾勒出了 Java 语法进化的一个趋势&#xff0c…

CSP CCF 202305-1 重复局面 C++满分题解

#include<iostream> using namespace std;int judge(char arr[][64],int m) {int a1;for(int i0;i<m;i){int flag0;for(int j0;j<64;j){if(arr[i][j]!arr[m][j]){flag1;break;}}if(flag0)a;}return a; }int main() {int n;cin>>n;char arr[n][64]; //直接看…

SpringMVC源码解析——DispatcherServlet初始化

在Spring中&#xff0c;ContextLoaderListener只是辅助功能&#xff0c;用于创建WebApplicationContext类型的实例&#xff0c;而真正的逻辑实现其实是在DispatcherServlet中进行的&#xff0c;DispatcherServlet是实现Servlet接口的实现类。Servlet是一个JAVA编写的程序&#…

Nacos 基础篇:Nacos简介、基本概念、基本架构、Standalone单机搭建部署

文章目录 什么是Nacos基本架构逻辑架构及其组件介绍领域模型数据模型服务领域模型配置领域模型 下载目录结构配置启动 什么是Nacos Nacos&#xff1a;(Dynamic) Naming and Configuration Service&#xff0c;动态的服务发现和配置的服务&#xff0c;是一个更易于构建云原生应…

<PDF-Pics> support

If get any questions,email me caohechunhotmail.com

力扣LeetCode第26题 删除有序数组中的重复项

一、题目 给你一个有序数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 示例 1&#xff1…

[Angular] 笔记 24:ngContainer vs. ngTemplate vs. ngContent

请说明 Angular 中 ngContainer&#xff0c; ngTemplate 和 ngContent 这三者之间的区别。 chatgpt 回答&#xff1a; 这三个在 Angular 中的概念是关于处理和组织视图的。 1. ngContainer&#xff1a; ngContainer 是一个虚拟的 HTML 容器&#xff0c;它本身不会在最终渲染…

WPF+Halcon 培训项目实战(12):WPF导出匹配模板

文章目录 前言相关链接项目专栏运行环境匹配图片WPF导出匹配模板如何了解Halcon和C#代码的对应关系逻辑分析&#xff1a;添加截取ROI功能基类矩形圆形 生成导出模板运行结果&#xff1a;可能的报错你的文件路径不存在你选择的区域的内容有效信息过少 前言 为了更好地去学习WPF…

DFS BFS

用DFS和BFS分别实现 //这边给出DFS的模版 void dfs(int x,int y) {//判断是否到达终点&#xff08;只有给出结束点的时候需要&#xff09; if (x ex && y ey) {if (min_steps > step) {min_steps step;}return;}//给出移动方向int move[4][2] {{0, 1}, {0, -1}…

php学习06-魔术常量

有九个魔术常量它们的值随着它们在代码中的位置改变而改变。例如 LINE 的值就依赖于它在脚本中所处的行来决定。这些特殊的常量不区分大小写&#xff0c;如下&#xff1a; 参考

[Angular] 笔记 20:NgContent

chatgpt: 在Angular中&#xff0c;NgContent是用于内容投影&#xff08;Content Projection&#xff09;的一个重要概念。它允许你在一个组件中插入内容&#xff0c;并将这些内容投影到另一个组件中。 当你在一个组件中使用<ng-content></ng-content>标签时&…

基于轻量级GhostNet模型开发构建生活场景下生活垃圾图像识别系统

轻量级识别模型在我们前面的博文中已经有过很多实践了&#xff0c;感兴趣的话可以自行移步阅读&#xff1a; 《移动端轻量级模型开发谁更胜一筹&#xff0c;efficientnet、mobilenetv2、mobilenetv3、ghostnet、mnasnet、shufflenetv2驾驶危险行为识别模型对比开发测试》 《基…

【用户增长】引言:浅析游戏运营用户增长概念

1 游戏发行运营中的主要职能&#xff1a; ​ 一、发行运营通识l 运营介绍&#xff1a;职能分工、发行运营流程、职业发展能力及要求l 品类认知&#xff1a;行业品类布局、品类用户画像、运营节奏及特性&#xff0c;包含不同品类核心打法及长线运营思路l 海外运营&#xff1a;海…

GO学习记录 —— 创建一个GO项目

文章目录 前言一、项目介绍二、目录介绍三、创建过程1.引入Gin框架、创建main2.加载配置文件3.连接MySQL、redis4.创建结构体5.错误处理、返回响应处理 前言 代码地址 下载地址&#xff1a;https://github.com/Lee-ZiMu/Golang-Init.git 一、项目介绍 1、使用Gin框架来创建项…

论文阅读<Contrastive Learning-based Robust Object Detection under Smoky Conditions>

论文链接&#xff1a;https://openaccess.thecvf.com/content/CVPR2022W/UG2/papers/Wu_Contrastive_Learning-Based_Robust_Object_Detection_Under_Smoky_Conditions_CVPRW_2022_paper.pdf Abstract 目标检测是指有效地找出图像中感兴趣的目标&#xff0c;然后准确地确定它们…