基于DSP和FPGA的编码器信号测量及处理的通用模块
- UID
- 1029342
- 性别
- 男
|
基于DSP和FPGA的编码器信号测量及处理的通用模块
随着科学技术的飞速发展,自动控制系统在各领域中的应用越来越多,特别是计算机自动控制系统已成为现代科学技术、军事工程和现代工业等领域不可缺少的部分。因而,自动控制元件如作为动力装置的各种电动机、发电机和作为信号变换的各种控制电机在各种控制系统中得到广泛的应用。要对被控对象进行控制,不仅需要控制器和执行机构,还需要反馈装置。因此,编码器作为电机的角度、速度、方向的检测装置,也得到了广泛的应用。编码器又有旋转变压器、霍尔传感器和光电编码器。其中,光电编码器精度高,抗干扰能力强,接口简单,使用方便,因而获得了最广泛的应用。
光电编码器按编码方式又主要有增量式编码器和绝对式编码器两大类,前者具有分辨率高、价格较低、接口简单等优点,然而在当今工业中,无掉电记忆功能又对其应用构成了很大局限;后者结构紧凑、体积小、接口数字化、抗干扰能力强、具有掉电记忆功能,在应用中也越来越受重视。
当前市场上,德国海德汉公司的产品种类繁多,具有很好的品质保证,被广泛应用于机床、自动化领域,尤其在半导体和电子制造业等领域。海德汉光电编码器占有很大市场份额,而与之相配套的解码设备不适合嵌入式系统应用。本文针对实验用转台使用的海德汉编码器设计出了增量式和绝对式的通用数据处理模块。该模块具有信号处理速度快、精度高、数据准确、应用灵活广泛、使用和调试方便、成本低廉等优点,能很好满足使用需求。
1 海德汉编码器概述
1.1 高精度增量式编码器
增量式编码器是经过光栅将位移转换成周期性的电信号,再把这个电信号转变成计数脉冲,用脉冲的个数表示位移的大小。其光栅由周期性刻线组成,通过计算自某点开始的增量数(测量步距数)获得位置信息。本模块要测量的高精度海德汉增量式编码器的光栅上还有刻有距离编码参考点的轨道,加快参考点回零。下图1为某带距离编码的圆光栅。
图1带距离编码参考点的圆光栅(ERA4480)
这些参考点彼此相距数学算法确定的距离。已过三个参考点的两个脉冲后,后续电子设备就能找到绝对参考点。
1.2 高精度绝对式编码器
绝对式编码器利用自然二进制、循环二进制( 格雷码) 或PRC码对码盘上的物理刻线进行光电转换,将连接轴的转动角度量转换成相应的电脉冲序列并以数字量输出,其每一个位置对应一个确定的唯一的数字编码,因而具有掉电记忆功能。
有时,通过位置编码器获得位置值的数字驱动系统和反馈环还需要编码器提供一些附加值。为使系统具有更高可靠性,编码器还需具有错误检测和诊断功能。海德汉公司的Endat2.2数据接口是一种适用于编码器的双向数据接口,可传输绝对式或增量式编码器的位置值,也能传输或更新保存在编码器中的信息或保存新信息。由于采用串行数据传输方式它只需要4条线。数据传输保持与后续电子设备时钟信号同步。传输的数据类型(位置值、参数或诊断信息等)通过后续电子设备发至编码器的模式指令选择。
2 硬件设计
本模块采用了DSP和FPGA结合的工作方式。DSP主要用于数字信号处理领域,非常适合高密度、重复运算及大数据容量的信号处理。FPGA/CPLD器件一方面可实现硬件上的并行工作,非常适用于实时测控和高速应用领域,另一方面物理机制和纯硬件电路一样,十分可靠,尤其是抗强电磁干扰。两者结合,可实现宽带信号处理,速度快且可靠性好。
根据方案功能需求,设计模块结构图如图2所示:
图2 硬件结构图
图中,模块连接器为标准的DB15连接器,通过管脚配置,能相应地与增量式编码器和采用EnDat2.2接口的绝对式编码器进行信号交流。模块的收发单元支持的是RS-485形式,差分信号和单端信号通过接口芯片进行转换。为了提高对高精度增量式编码器数据测量精度,需在同一个增量编码器上安装4个读数头,各自测量增量式编码器数据,再合成得到位置值。这样,板卡上读取编码器信号的接口设置有4个。
FPGA芯片选用赛灵思公司Spartan-3AN系列的XC3S700An,logic cells为10476。
实现:①对增量信号的计数和参考信号的采集,在进行计数达到参考码道的数据后,进行增量信号的清零;②对Endat2.2绝对式编码器位置信号的采集;③在外同步时钟上升沿到来前,保存计数处理,把数据存储在双口RAM中,等待DSP读取。
本模块选用的DSP芯片为TI公司的TMS320F28335,主频可达150MHz。TMS320F28335增加了浮点运算单元,在保持了原有DSP芯片优点如强大控制和信号处理能力、C语言编程效率等优点的同时,节省了代码执行时间和存储空间。F28335通过GPIO端口与XC3S700An连接有4路地址线和16根数据线,可以接受16种编码器信号。模块中DSP部分开辟参数存储区,在中断信号到来的时候读取FPGA中数据,完成数据合成,通过SCI串口把数据发送给主控机箱,电器形式为RS422。
模块板卡由5V电源供电。3 软件设计及实现
根据硬件架构,分别对DSP和FPGA进行软件功能分析和具体编程实现。
FPGA部分使用Xilinx公司的ISE10.1开发软件,采用Verilog语言,接受从接口管脚输入的编码器信号,相应地实现对海德汉高精度增量式编码器输出并经细分盒细分后的TTL脉冲计数和参考信号生成,或者是与绝对式编码器的Endat2.2通信。DSP部分开发软件采用TI公司的CCS5.2,使用C语言进行编程。DSP完成对信号最终的位置合成处理,在这里,首先要定义编码器的相关参数,如:编码器总刻度数、分辨率、带参考码道的增量式编码器的参考点数,还要考虑增量信号进入FPGA前的细分数(取决于IBV600),以及FPGA对TTL计数是否进行四倍频等。使用时,根据具体编码器类型进行参数修改。
软件实现了对高精度海德汉增量式编码器和绝对式编码器的位置值的读取。下面将分别进行介绍。 |
|
|
|
|
|