基于dsp+fpga的半导体运动台高速数据采集FPGA endac设计(三)

news2025/2/25 15:42:09
EnDat 双向串行通信协议的实现
数据(测量值或参数)可以在位置编码器和 EnDat 协议内核之间进行双向传输,
EnDat 协议内核的收发单元支持 RS-485 差分信号传输,数据传输与传感伺服控制系统
生成的时钟脉冲同步。传输的数据类型(位置值、参数或诊断信息等)通过 EnDat 协议
内核发至编码器的模式指令选择。 EnDat 数据接口是海德汉公司为编码器设计的双向数
字接口,具有高性能、低成本等一系列重要优点比如低成本、高质量、支持先进机床设
计原则等等 [42-44]

为匹配线路特征阻抗(Characteristic Impedance),在数据和时钟的差分线路端部,

各需加一个 120 Ω的电阻,同时各线路应加一个 330pF 的电容,以滤除高频干扰。 EnDat
串行通信模型见图 4.20 所示。
EnDat 2.2 版对 EnDat 2.1 具有很好的兼容性,性能得到进一步提升。主要表现在 1
更高时钟频率; 2 )更短计算时间; 3 )更短恢复时间 4 )更宽供电电压。
4.6.1 线路传输延时补偿
EnDat 串行通信模型中的时钟脉冲用于同步数据传输。时钟频率是可以通过应用层
DSP 系统进行主动配置的 , 频率可在 100 kHz 16 MHz 之间变化。时钟频率取决于电
缆长度。线缆长度不断增加或是时钟频率不断提高,传输延时与有效数据到达一个尺度,
无法区分两者区别,必须测量延迟时间并加以补偿。无延时补偿情况下最大频率可达 2
MHz [43] 。在有补偿的情况下,最大时钟频率可达到 16 MHz 。线缆长度跟时钟频率的关
系曲线见图 4.21 [46] 所示。

线路传输延时补偿,在更换传输线硬件设备后必须重新计算,为保险起见,最好每
次开机进行第一次数据传输之前,自动确定线路延时自动补偿。
具体的补偿方法是这样的,每次上电后 EnDat 协议内核给编码器发送模式指令“编
码器传输无附加信息的位置值”。这个补偿过程不受上面应用层的控制,由 EnDat 协议
内核自动完成。由 EnDat 协议内核发送指令模式完毕后, EnDat 协议内核便开始记录时
钟的每一个上升沿。最后一次检测到时钟上升沿与起始标志位 start 之间的时间间隔,定
义为传输延时 t D
为了保证测量得到的延时时间可靠,需采用三次测量取平均值的方法。且三次测得
的传输延时时间不应大于最大传输时时钟周期的八分之一。测量过程所用时钟频率与正
常传输时不同,采用 100 kHz 较低时钟频率来进行测量信号传输延时时间。且为了达到
足够高精度,传输延时时间的内部频率必须是数据传输时钟频率的八倍以上。
4.6.2 传输数据类型及模式指令
数据类型包括三种类型,它们分别是位置值、附加信息及参数。模式指令包括三个
比特位。 EnDat 协议内核在传输时钟的下降沿同步发送模式指令的每一位,而编码器则
在传输时钟的上升沿同步接收模式指令比特位。为确保可靠的传输模式指令的比特位,
每个比特位均采取取反的方式或者重复发送的方式。
为保证通信的正常运行,在有线路传输延时补偿的情况下,每一次数据传输过程中,
第一个时钟必须维持不小于 2 µs 的低电平。 EnDat 模式指令系统如表 4.2 [43] 所示。
从表格 4.2 中也可以明显的看出, EnDat 2.1 EnDat 2.2 指令集的子集,所以任何
适用于 EnDat 2.1 模式指令,必定适用于 EnDat 2.1。
4.6.3 位置值数据传输格式及 CRC 校验
传输周期从第一个时钟下降沿开始,两个时钟脉冲( 2T )后, EnDat 协议内核发送
000111 指令码,编码器成功接收到指令码后,开始向内核发送位置数据。首先发送起始
标志位,接着发送“ ERR1 ”和“ ERR2 ”错误指示信号,用以指示故障是否已经发生。
然后发送有效的位置数据。有效的位置数据以最低有效位开始,以最高有效位结束,具
体的位数由编码器的总长度参数决定,不同编码器总长度各不相同,可以被查询。
有效的位置数据结束后紧跟着就是循环冗余校验码部分。数据发送完毕后,信号线
被拉高为高电平,等待下一次新数据的传输。
带有附加信息的位置值传输格式见图 4.22 所示。其中,数据包内容包括错误信息 1
2 、位置值、附加信息 1 、附加信息 2

为了检测数据传输过程中由于干扰造成的传输错误,在位置值和附加信息后面采用 

5 位的 CRC 校验码。在编码器端, CRC 校验码由硬件生成。 EnDat 协议内核将接收
到的 CRC 码与之前接收到的串行数据流在本地生成的 CRC 码进行比较,即可检验通信
的正确与否。 CRC 校验可以检测出数据传输中的所有单一错误,是数据可靠传输的重要
保障 [41,45,47,49]
4.23 [43] 给出了编码器中 CRC 校验码的生成方案,因此,在本课题设计的 EnDat
协议内核中,也必须采用同样的 CRC 生成方案,才能保证 CRC 校验的正确性。由图 4.23
中可以看出,主要由一些逻辑门电路和触发器组成,因此在 FPGA 中利用 Verilog HDL
硬件描述语言来实现,非常方便简单,在此不再赘述。
4.6.4 EnDat 协议内核的 FPGA 实现
4.24 [48,50] 所示为 EnDat 协议内核的结构图,由时序控制模块、发送模块、接收模
块、时钟生成模块、相关寄存器及其与光纤通信内核的逻辑接口模块组成。
在内核结构图的左侧,是内核与同步串行双向接口的物理层接口信号,包括发送信
号线、接收信号线、时钟信号线及其各自的使能信号。在右侧,则是与光纤通信内核连
接的并行接口,包括了各种控制信号, 8 位的地址总线, 32 位的数据总线。其中地址总
线为 8 位宽度,对应于传输数据包格式中有效数据的个数被限定在 255 以内。
发送寄存器、模式指令寄存器和配置寄存器保存着待发送的数据。一旦触发,这些
数据被转为串行数据流在时序控制模块的控制下由发送模块串行发送给编码器,同时时
钟生成模块生成所需个数的时钟脉冲。接收模块在时序控制下将串行的数据流进行串并
转换,并将并行的数据,依据不同的含义,分配在 3 个寄存器中,同时更新状态寄存器
和中断寄存器,并产生中断或触发信号给光纤通信内核 [50]
根据 EnDat 协议规范,采用 5 位的循环冗余检验( CRC )码来完成串行通信的数据
校验功能。将接收到的 CRC 码与之前接收到的串行数据流在本地生成的 CRC 码进行比
较,即可检验通信的正确与否。 CRC 校验可以检测出数据传输中的所有单一错误,是正
确快速地获取位置值的保证。 CRC 校验结果保存在如图 4.24 所示的状态寄存器中。
4.6.5 位置值数据请求与传输机制
本课题中,最上层控制单元为 DSP ,所有的数据传输进程都受其控制。数据传输按
数据流的方向分为上行数据进程和下发数据进程。下发数据进程即 DSP EnDat 内核
下发各种配置数据的过程;上行数据进程即 DSP 向位置获取模块发送请求位置数据的
过程,在此详细论述上行数据进程,下行数据进程与之类似,在此不再赘述。

DSP 下发请求位置数据命令,光纤通信内核 A 收到触发,发送请求数据字符 K28.2,即TTC 特殊字符。经过高速光纤通道,接收端光纤内核 B 收到该特殊字符,立即启动

EnDat 内核向位置编码器的位置请求过程,完成后开始向模块 A 按照图 4.25 所示的数据
包格式发送位置数据及相关状态信息,模块 A 接收完毕数据,产生中断,触发 DSP
取数据开始处理过程。

 信迈提供FPGA Endat协议实现。

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

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

相关文章

如何将Postman API测试转换为JMeter以进行扩展

许多测试工程师使用Postman进行API测试自动化。他们发现端点,发出请求,创建测试数据,运行回归测试,使用Newman等实现API测试的持续集成。但是,Postman有一定的测试限制。希望获得更多负载测试能力的开发人员&#xff0…

系统集成项目管理工程师 笔记(第10章:项目质量管理)

文章目录 10.1.2 质量管理及其 发展史 35610.1.3 项目质量管理 35810.2.2 规划质量管理的输入 35910.2.3 规划质量管理的工具与技术 3601、成本效益分析法2、质量成本法(一致性成本【预防、评价】 和 非一致性成本【内部、外部】)3、七种基本质量工具&am…

数字设计小思 - 谈谈时钟:数字系统的心脏

前言 本系列整理数字系统设计的相关知识体系架构,为了方便后续自己查阅与求职准备。时钟作为数字系统中的“心脏”,其设计的质量好坏直接关乎整个系统的稳定性,本文主要介绍了数字设计中的常见的时钟产生电路和时钟类型,并进行相…

音视频八股文(7)-- 音频aac adts

AAC介绍 AAC(Advanced Audio Coding)是一种现代的音频编码技术,用于数字音频的传输和存储领域。AAC是MPEG-2和MPEG-4标准中的一部分,可提供更高质量的音频数据,并且相比于MP3等旧有音频格式,AAC需要更少的…

【经典题】二叉搜索树与双向链表

二叉搜索树与双向链表链接 解题思路 思路1 : 中序遍历,将节点放进vector中,再改链接关系,这很容易想出并解决,但这样明显不符合题意。 思路2: 这道题目要求将一个二叉搜索树转换成一个排序的双向链表&a…

php连接sqlserver

1.使用工具 Wampserver--3.3 sqlserver2023 php7.4.33 2.连接流程 1.下载Microsoft Drivers for PHP for SQL Server 下载地址:下载 Microsoft Drivers for PHP for SQL Server - PHP drivers for SQL Server | Microsoft Learn 2.下载Microsoft ODBC Driver …

简记二分算法模板与代码案例:整数二分和浮点数二分

本文以 Java 语言实现,整理的代码模板适用于编程竞赛。对代码模板原理的讲解不多,主要记录一下如何使用。 目录 一、算法模板 (1)整数二分 (2)浮点数二分 二、例题 例题:acwing-789.数的范…

开源网安入选“2023年中国信通院开源供应商名录”

近日,为进一步推进开源供应链安全合规发展,中国信息通信研究院云大所发布了“2023年中国信通院开源供应商名录”(简称名录),名录供应商均为通过可信开源供应链系列评估的企业。名录范围涵盖云计算、大数据、中间件、数…

【致敬未来的攻城狮计划】第1期 作业汇总贴 + 获奖公布

​ 文章目录 一、写在前面二、种子学员介绍三、作业贴汇总四、小小总结五、获奖公布六、学员有话说七、特别致谢 一、写在前面 时间过得真快,距离 【致敬未来的攻城狮计划】第1期 的发起,已经过去一个多月了,而第1期的真正学习考核期也将在…

虹科案例 | 如何通过智能、非接触式测量解决方案,提高起重机的安全和效率?

PART 1 案例详情 自建造初期以来,起重机行业已经走了很长一段路。技术的使用在行业进步中发挥了重要作用,降低了使用桥式起重机的危险性。特别是,智能、非接触式测量解决方案通过使用高架升降机更安全、更高效、更高效,为行业的进…

如何将化学分子SMILES字符串转化为Pytorch图数据结构——ESOL分子水溶性数据集解析

硬核原创,转载请注明出处: https://leytton.blog.csdn.net/article/details/130406553 一、前言 在用Pytorch图神经网络对化学分子进行数据分析的时候,经常使用现有的数据集。看到自动处理完毕的数据结构,里面的特征值让我们一脸…

springsecurity工作流程

Spring Security 的工作流程如下: 1.当用户请求一个受保护的资源时,Spring Security 的过滤器链会拦截该请求。 2.然后 Spring Security 会判断该请求是否认证(authenticated)和授权(authorized)。 认证(Authentication):验证用户身份,判断用户是否能登录系统。Spring Securi…

Linux应用编程(线程同步)(互斥锁)

对于一个单线程进程来说,它不需要处理线程同步的问题,所以线程同步是在多线程环境下可能需要注意的一个问题。线程的主要优势在于,资源的共享性,譬如通过全局变量来实现信息共享,不过这种便捷的共享是有代价的&#xf…

docker网桥冲突解决方法

Docker网桥网段冲突导致访问不到容器问题 三种情况 一、docker0所用网段与局域网所用网段相同,导致网桥冲突,这会造成冲突网段无法访问docker服务。 解决办法: 1.停止docker,删除冲突网桥 systemctl stop docker ip link del doc…

干货 | 中科院心理所考研复试经验分享

Hello,大家好! 这里是壹脑云科研圈,我是喵君姐姐~ 此时此刻,23年考研的小伙伴估计正在为复试进行准备吧,大家都准备得怎么样了呢? 今天为大家带来的就是我国顶级心理学研究结构—中科院心理所…

leetcode19_删除链表的倒数第 N 个结点

文章目录 题目详情分析Java代码实现 题目详情 leetcode19 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 分析 暴力的方法,两趟遍历,第一个遍历记录总的节点数目,第二次遍历到总结点数-N个位置&…

PyTorch——利用Accelerate轻松控制多个CPU/GPU/TPU加速计算

PyTorch——利用Accelerate轻松控制多个CPU/GPU/TPU加速计算 前言官方示例控制多个CPU/GPU/TPU简单说一下设备环境导包加载数据 FashionMNIST创建一个简单的CNN模型训练函数-只包含训练训练函数-包含训练和验证训练 参考链接 前言 CPU?GPU?TPU&#xff…

边学边记——数据结构☞关于对象的比较(包括对equals()方法的重写,Comparable接口,Comparator接口的介绍)

目录 一、基本类型 二、引用类型——对象的比较 1. 关于同一性的比较 2. 关于相等性的比较 三、Comparable接口 1. 介绍 2. 实现 3. 什么叫做正确的compareTo方法的重写 四、实现Comparator接口(基于比较器比较) 1. 介绍 2. 实现 3. 使用场景…

CentOS防火墙的常用快捷命令

CentOS是免费开源的Linux发行版之一,它兼容RHEL并由社区进行维护,大多数美国服务器提供对该系统支持。在使用CentOS系统时,您需要了解一些常用命令,比如开启、查看、关闭防火墙等。本文将介绍下CentOS防火墙的常用命令。 CentOS是一种面向企业级服务器环境的Linux发行版,…

D触发器仿真实验

关于D触发器的内容见专栏的单片机原理及应用,主要是时钟脉冲出现时候,会改变输出状态。 下面来做一个D触发器的仿真实验。 部件 使用74LS74:带清除和预置端功能的双上升沿D型触发器 74LS74是一款现代集成电路芯片,属于TTL&…