ethercat 主站 FPGA verilog 代码
ECAT运动控制器ARM软件设计

一、ARM向FPGA发送目标位置
1、对应的操作地址
define CUR_POS_SERVO 1 define TARGET_CUR_POSL 2
`define TARGET_CUR_POSH 3

2、操作步骤
下发每个轴的位置时,先通过写地址1,告知FPGA接下来要发送目标位置的伺服;
再通过写地址2向FPGA写目标位置的低16bit;
再通过写地址3向FPGA写目标位置的高16bit。

3、注意
通过地址1,向FPGA写接下来要操作的伺服,写0表示第一个伺服,写31表示第32个伺服,以此类推。
在读写操作完成之前,不要改变指定的伺服。也就是说指定伺服+读写数据,是一整套。
YID:215000652098268519@alisi

二、ARM向FPGA读取当前位置
1、对应的操作地址,与目标位置共享一套地址
define CUR_POS_SERVO 1 define TARGET_CUR_POSL 2
`define TARGET_CUR_POSH 3

2、操作步骤
下发每个轴的位置时,先通过写地址1,告知FPGA接下来要读取当前位置的伺服;
再通过读地址“2”向FPGA读取当前位置的低16bit;
再通过读地址“3”向FPGA读取当前位置的高16bit。

三、ARM向FPGA发送控制字
1、对应的操作地址
define CUR_POS_SERVO 1 define STS_SERVO 4

2、操作步骤
下发每个轴的控制字时,先通过写地址1,告知FPGA接下来要发送控制字的伺服;
再通过写地址4向FPGA写伺服的控制字;FPGA会根据第一步的伺服去对应该控制字是给哪个伺服的。

当ARM通过地址58检测到所有伺服进入OP状态后,可以通过控制字来控制各个伺服进入伺服使能状态,具体的操作流程为:顺序发送控制字6、7、15。每发送一个控制字,伺服对应的状态字就会发生变化。通过检测状态字的变化来确定发送下一个控制字。
回零的控制字为15到31,回零完成后,控制字要返回15。

四、ARM向FPGA读取状态字
1、对应的操作地址
define CUR_POS_SERVO 1 define STS_SERVO 4

2、操作步骤
下发每个轴的控制字时,先通过写地址1,告知FPGA接下来要读取控制字的伺服;
再通过读地址4向FPGA读取对应伺服的控制字。

五、ARM读取轴的位置缓存数据的个数
1、对应的操作地址
define CUR_POS_SERVO 1 define ECAT_POS_FIFO_CNT 65

2、操作步骤
FPGA为每个轴的目标位置都对应设计了一个32深度的缓存,ARM根据缓存和需要将目标位置发送到这个缓存,供FPGA的ECAT刷新。
先通过写地址1,告知FPGA接下来要读取数据个数的伺服;
再通过读地址65来读取对应伺服的轴数据缓存中数据个数。

六、ARM在启动FPGA的ECAT之前需要配置的内容
1、配置FPGA内容的相关写地址
define SM0_PHYADDR 49 define SM1_PHYADDR 50
define SM2_PHYADDR 51 define SM3_PHYADDR 52
define WATCHDOG_SUPPORT 53 define LOOP_PERIOD_H 55
`define LOOP_PERIOD_L 56

2、具体含义
SM0_PHYADDR,SM0的地址,16bit,xml文件中的高低8bit交换后,下发给FPGA。
SM1_PHYADDR,SM1的地址,16bit,xml文件中的高低8bit交换后,下发给FPGA。
SM2_PHYADDR,SM2的地址,16bit,xml文件中的高低8bit交换后,下发给FPGA。
SM3_PHYADDR,SM3的地址,16bit,xml文件中的高低8bit交换后,下发给FPGA。
WATCHDOG_SUPPORT,伺服是否支持看门狗,写1表示支持,写0表示不支持,从测试的5家伺服来看,除久同外,其他家均支持。
LOOP_PERIOD_H ,为循环周期的高16bit。
LOOP_PERIOD_L ,为循环周期的低16bit。

七、控制和状态寄存器
1、相关操作地址
define ECAT_RSTN 57 define SERVO_INIT_DONE_ALL 58

2、具体含义
ECAT_RSTN ,ARM向该地址写1,启动FPGA的ECAT运行。
SERVO_INIT_DONE_ALL,ARM通过该地址读取所有伺服是否初始化完毕,1表示完毕。

八、伺服参数配置功能寄存器
1、相关操作地址
define PARA_INDEX 77 define PARA_SUB_INDEX 78
define PARA_DATA_H 79 define PARA_DATA_L 80
define PARA_DATA_LEN 81 define PARA_DATA_UpLOAD 82
define PARA_DATA_UpLOAD_H 83 define PARA_DATA_UpLOAD_L 84
define PARAM_SET 85 define PARAM_SET_RST 86
`define PARAM_SET_SERVO 87

九、伺服回零功能
多个伺服同时回零的流程:
通过参数设置端口,依次将各个伺服设置成模式6,再依次发送控制字31,再依次去读取状态字,如果读到某个轴的状态字是回零完成,就将该轴的控制字写回15,并然后通过参数设置接口将其模式设置为8。

十、伺服IO读取与写入
在启动ECAT之前,通过如下两个地址,分别配置伺服IO的地址:
define M2S_IO_PHYADDR 47 //master output define S2M_IO_PHYADDR 48 //master input
地址47为运动控制器输出到伺服的IO指令;
地址48为运动控制器从伺服获取的IO状态。
启动ECAT后,通过地址99来输出IO指令到伺服,或者从伺服获取IO状态。
`define SERVO_IO 99
同理,通过地址4来指定所要操作的伺服。
初定为8输入8输出,16位数据线的低8bit有效。

十一、其他标志
轴数据缓存的空满标志、ECAT断线等等标志



ethercat 主站 FPGA verilog 代码 EtherCAT 总线 demo 板介绍 ethercat 主站 FPGA verilog 代码相关推荐

  1. 指南|研控EtherCAT总线驱动器与基恩士KV-7500主站连接样例(以伺服AS3-BNI为例)

    前期,我们分别介绍了研控EtherCAT总线驱动器和倍福.欧姆龙.松下.正运动.汇川主站的连接方法及注意事项,本期指南继续介绍与基恩士主站的连接教程! 如需查看往期内容,请点击文章顶部"研控 ...

  2. ethercat主站给从站分配多个地址_Profinet 与 EtherCAT 网关使用方法

    一. 介绍: 所谓的网关通俗来讲就是一种"协议转换器",它能够将一种通信协议转换到另一种通信协议,满足实际应用中对通信的需求,从而实现投资保护的作用.Hongke Gateway ...

  3. FPGA数字信号处理(十六)单级CIC滤波器Verilog设计

    该篇是FPGA数字信号处理的第16篇,选题为多速率信号处理系统中常用的CIC滤波器.本文将详细介绍使用Verilog HDL设计单级CIC滤波器的方法.接下来几篇会介绍多级CIC滤波器的Verilog ...

  4. 【camera】自动泊车-基于深度学习的视觉车位检测项目(课程设计--训练代码、测试代码、部署demo)(2)

    **基于深度学习的点定位回归和角度预测的车位检测 基于深度学习的点定位回归和角度预测 基于深度学习的角点检测和角度回归 ** 项目下载地址:训练代码.测试代码.部署demo 数据集百度网盘下载:数据集 ...

  5. 基于fpga的计算机组成原理,清华大学出版社-图书详情-《基于FPGA与Verilog的计算机组成原理实践》...

    计算机组成原理是计算机专业的核心课程,也是一门实践性很强的专业基础课.课程内容不仅包含计算机原理等理论知识,而且包含计算机设计等实践知识.因此,实践是"计算机组成原理"课程重要的组 ...

  6. (125)FPGA面试题-熟悉AXI总线吗,介绍AXI

    1.1 FPGA面试题-熟悉AXI总线吗,介绍AXI 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-熟悉AXI总线吗,介绍AXI: 5)结束语. 1.1 ...

  7. (87)FPGA面试题-同步FIFO与异步FIFO区别?异步FIFO代码设计

    1.1 FPGA面试题-同步FIFO与异步FIFO区别?异步FIFO代码设计 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题-同步FIFO与异步FIFO区 ...

  8. lms算法的verilog实现_数字通信同步技术的MATLAB与FPGA实现

    <数字通信同步技术的MATLAB与FPGA实现>包含2个版本:Xilinx/VHDL版的设计平台为ISE14.7/VHDL,配套开发板为CXD301:Altera/Verilog版(第2版 ...

  9. 使用Verilog设计1553B总线协议芯片

    目标:以DCC公司的1553b芯片手册为参考,设计与其功能兼容的FPGA程序. 预期:使用不足百元的FPGA芯片实现功能. 架构: 难点: 1. 对总线数据进行监控的同时,需要同时接受主机的控制,存在 ...

最新文章

  1. java从入门到精通_想要开始学java?你要的java从入门到精通布列如下!
  2. 9月全球浏览器份额之争:IE领先Chrome21.73%
  3. 如何用df的两列作复杂的运算
  4. VC2008中处理CStatic控件的单击STN_CLICKED消息
  5. android怎么升级版本5.0,一加手机怎么升级安卓5.0系统
  6. 计算机应用基础知识点.pdf,计算机应用基础知识点11.pdf
  7. HDU 3652:B-number(数位DP)
  8. String写时拷贝实现
  9. RegularExpressions
  10. red hat4 安装yum的方法
  11. Yii Framework2.0开发教程(5)数据库mysql函数
  12. matlab2010改语言,[转载]ubuntu下安装matlab2010及语言环境设置和创建桌面启动
  13. 基于Spring Boot 技术的后台管理框架
  14. 如何使用手机打开CAJ文件?
  15. Linux服务器集群系统(一)——LVS项目介绍
  16. Python简介及入门
  17. 99%的人都不知道的90个秘密
  18. Android 图片存储到指定路径和相册
  19. 开唐贡献榜(凌烟阁二十四功臣)
  20. luogu2947向右看齐【栈】

热门文章

  1. Myeclipse破解方法及失败解决方案
  2. oracle stat=30,使用Solaris上的filestat工具
  3. 放置奇兵最新服务器,放置奇兵2019年发展方向
  4. 英雄联盟怎么录屏?在线录制一键搞定
  5. 氮矽科技开启新的篇章 矽能科技孵化器运营模式收获肯定
  6. 【Unity特效】人物脚底下光环阴影影子特效的实现
  7. 光速一秒可以绕地球 7 圈,那为什么到美国的光纤宽带,速度会那么慢?
  8. linux txt快捷键,Linux快捷键.txt
  9. 刀塔霸业android如何更新_刀塔霸业手游最新版本更新内容 最新版本怎么更新
  10. 解决gtid主从复制connecting问题