基于DSP和FPGA的编码器信号测量及处理的通用模块

发布者:数字航海家最新更新时间:2014-10-19 来源: 互联网关键字:DSP  FPGA  增量式编码器 手机看文章 扫描二维码
随时随地手机看文章
随着科学技术的飞速发展,自动控制系统在各领域中的应用越来越多,特别是计算机自动控制系统已成为现代科学技术、军事工程和现代工业等领域不可缺少的部分。因而,自动控制元件如作为动力装置的各种电动机、发电机和作为信号变换的各种控制电机在各种控制系统中得到广泛的应用。要对被控对象进行控制,不仅需要控制器和执行机构,还需要反馈装置。因此,编码器作为电机的角度、速度、方向的检测装置,也得到了广泛的应用。编码器又有旋转变压器、霍尔传感器和光电编码器。其中,光电编码器精度高,抗干扰能力强,接口简单,使用方便,因而获得了最广泛的应用。

光电编码器按编码方式又主要有增量式编码器和绝对式编码器两大类,前者具有分辨率高、价格较低、接口简单等优点,然而在当今工业中,无掉电记忆功能又对其应用构成了很大局限;后者结构紧凑、体积小、接口数字化、抗干扰能力强、具有掉电记忆功能,在应用中也越来越受重视。

当前市场上,德国海德汉公司的产品种类繁多,具有很好的品质保证,被广泛应用于机床、自动化领域,尤其在半导体和电子制造业等领域。海德汉光电编码器占有很大市场份额,而与之相配套的解码设备不适合嵌入式系统应用。本文针对实验用转台使用的海德汉编码器设计出了增量式和绝对式的通用数据处理模块。该模块具有信号处理速度快、精度高、数据准确、应用灵活广泛、使用和调试方便、成本低廉等优点,能很好满足使用需求。

1 海德汉编码器概述

1.1 高精度增量式编码器

增量式编码器是经过光栅将位移转换成周期性的电信号,再把这个电信号转变成计数脉冲,用脉冲的个数表示位移的大小。其光栅由周期性刻线组成,通过计算自某点开始的增量数(测量步距数)获得位置信息。本模块要测量的高精度海德汉增量式编码器的光栅上还有刻有距离编码参考点的轨道,加快参考点回零。下图1为某带距离编码的圆光栅。

图1带距离编码参考点的圆光栅(ERA4480)
图1带距离编码参考点的圆光栅(ERA4480)

这些参考点彼此相距数学算法确定的距离。已过三个参考点的两个脉冲后,后续电子设备就能找到绝对参考点。

1.2 高精度绝对式编码器

绝对式编码器利用自然二进制、循环二进制( 格雷码) 或PRC码对码盘上的物理刻线进行光电转换,将连接轴的转动角度量转换成相应的电脉冲序列并以数字量输出,其每一个位置对应一个确定的唯一的数字编码,因而具有掉电记忆功能。

有时,通过位置编码器获得位置值的数字驱动系统和反馈环还需要编码器提供一些附加值。为使系统具有更高可靠性,编码器还需具有错误检测和诊断功能。海德汉公司的Endat2.2数据接口是一种适用于编码器的双向数据接口,可传输绝对式或增量式编码器的位置值,也能传输或更新保存在编码器中的信息或保存新信息。由于采用串行数据传输方式它只需要4条线。数据传输保持与后续电子设备时钟信号同步。传输的数据类型(位置值、参数或诊断信息等)通过后续电子设备发至编码器的模式指令选择。

2 硬件设计

本模块采用了DSP和FPGA结合的工作方式。DSP主要用于数字信号处理领域,非常适合高密度、重复运算及大数据容量的信号处理。FPGA/CPLD器件一方面可实现硬件上的并行工作,非常适用于实时测控和高速应用领域,另一方面物理机制和纯硬件电路一样,十分可靠,尤其是抗强电磁干扰。两者结合,可实现宽带信号处理,速度快且可靠性好。

根据方案功能需求,设计模块结构图如图2所示:

图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计数是否进行四倍频等。使用时,根据具体编码器类型进行参数修改。

软件实现了对高精度海德汉增量式编码器和绝对式编码器的位置值的读取。下面将分别进行介绍。

3.1 测量增量式编码器位置值

3.1.1 相关部分的FPGA设计

增量式编码器是一旋转式光电编码器,根据轴所转过的角度,输出一系列脉冲。一般来说编码器输出有三相信号:A、B、Z。A、B两相信号是相位相差90°的正交方波脉冲串,每个脉冲代表被测对象旋转了一定的角度,A、B之间的相位关系则反映了被测对象的旋转方向,即当A相超前B相,转动方向为正转;当B相超前A相,转动方向为反转。Z信号是一个代表参考码道的脉冲信号,可用于调零、对位。对象每旋转一定角度时,A、B两者的脉冲发生变化,根据AB相位变化方向和脉冲个数来计算角位移。当AB相位变化为00 10 11 01 00时,为输出正转计数脉冲,脉冲计数P加1;当AB相位变化为00 01 11 10 00时,为输出反转计数脉冲,脉冲计数P减1。相位变化几次计数操作几次。需要指出的是,相位的状态变化只有严格按照上面8中方式改变时,FPGA才进行计数操作。在Verilog编程时,可以把前一个AB相电平状态和后一个AB相电平状态组成一个散转地址向量,然后把这个向量作为条件语句,进行计数操作。比如,当AB从00变为10时,向量就为0010,P=P+1。相反,若AB从10变为00,这个向量就为1000,P=P-1。下面为FPGA读取TTL数据并组成散转地址向量的Verilog代码:

always @(posedgeinClk)

begin

regUa1a2State <= {inIncUa1,inIncUa2};//读取AB向量

if(regUa1a2State!=regAllState[1:0]) //状态变化

begin

regAllState<= {regAllState[1:0],regUa1a2State};//组成新的散转地址向量

regPulseStateChanged<= 1;

end

elsebegin

regPulseStateChanged<= 0;

end

end

另外,增量式编码器不具有断电记忆功能,每次启动时都需确定零位。以前,只有一个零位参考点时,有时需转360°Z相位出现脉冲才能确定零位。高精度海德汉编码器参考点码道有若干个距离编码参考点,任一参考点经过读数头时,Z相位输出脉冲。此时,需要把之前的脉冲计数P保存下来(记为Q),P清零。这样,每次Z相位输出脉冲时,P的数值就为上次经过参考点后的脉冲数,这是DSP确定零位和当前参考点的重要依据。

FPGA测得4个读数头的4组信息,写入双口,等待DSP读取。每组写入双口的数据有两个:①上一次过参考码道时的计数增量计数RefPulseCnt(Q值),②增量计数PulseCnt(P值)。

3.1.2 相关部分的DSP设计

DSP程序中先生成增量式编码器参考码道的参考角度,也就是每个距离编码参考点所对应的脉冲数以及角度。又因为每两个参考点间脉冲数(即Q值)是不同且唯一的,可以根据读取的FPGA双口中的Q值确定最近经过的参考点,然后“查表”可以得到该参考点的角度。同时,DSP读取P值再乘以分辨率得到已当前参考点后的角度,合成后两者相加可以确定相应读数头测得的位置值。分辨率为360°/刻度值总刻度数*进入FPGA前细分数*4(本模块FPGA对TTL计数的处理实质就是对AB路信号进行了4倍频)所有读数头过完零以后,输入到DSP的4路读数头信号相对参考码道的零点而言,都有一个绝对位置。一般来说,安装读数头时,要参考测量的单个读数头的位置值对4个读数头的位置要进行调整,通常,相邻两个读数头之间相差90度最好。以任何一个读数头为基准,其他3个读数头的绝对位置相对基准读数头而言的位置差为90°,180°,270°。为了简化,以电路板输入端口的1作为基准量。合成位置量为A=(A1+A2+A3+A4-90-180-270)/4=(A1+A2+A3+A4-540°)/4,由于有安装系统误差,且要求合成位置值要大于0,计算时可以用520°替代540°。其范围为(e,e+359.999999),e为误差,这个时候要对360做求模处理,最后得到的合成值的工作范围就为(0,359.9999999)。3.2 测量绝对式编码器的位置值

模块参考海德汉公司提供的endat2.2相关技术手册,设置好参数:根据编码器位数和模式命令设置传输的数据位数ct_tx_oem_value、ct_rx_oem_value;需要传送的附加信息个数ai_count;传输时钟频率参数freq_oem_value;恢复时间III (tST)的设置参数freq_tst_value等。测量EnDat2.2的子文件根据参数转换状态机,进行相应操作。另外,程序带有电缆传输延迟测量模块pdm。然后,按照下图4的格式根据自己对信息的需求设置向编码器传输的信号d_in。在系统时钟上升沿到来后立即通过start_trans信号控制开始与编码器通信。接收编码器数据,读出相应d_out信号数据,得到代表位置值的数据写入双口。

图4 endat2.2输入数据“d_in”
图4 endat2.2输入数据“d_in”

上图中,Mode bits为6位模式指令,最基本的编码器发送位置值模式为000111。模式指令和其他参数的含义都可以在技术手册中查到。

DSP从FPGA双口RAM中读取绝对式信号数据,取有效位数后再乘以该绝对式编码器的分辨率即得到位置信息。分辨率为360°/2^N,N是对应的绝对式编码器位数。

3.3 数据输出

模块通过RS422异步串行接口与上位机进行通信,串行接口通过DSP的SCI口实现,设计的模块同时需要上位机发送的同步采样频率信号,将其与DSP相连,作为中断信号启动ISR功能。同时,该信号管脚通过跳针把该外同步时钟分给FPGA。这样,保证两者的时钟源是统一的,然后DSP访问FPGA的双口就能实现正确读取所需数据。过程时序示意图如图5所示:

图5 整体过程时序示意图
图5 整体过程时序示意图

如上图所示,在t_1时,FPGA即启动与编码器的通信,在t_2时,FPGA把增量式编码器脉冲计数或者绝对式编码器信息存入双口,在t_3时,外同步时钟上升沿启动DSP中断程序,读取已经存储在FPGA双口中的数据并合成位置值,合成量纲后通过RS422接口把绝对位置值传递给主控机箱。这样,主控得到的数据是上一帧的数据,即有一帧的延迟,时钟频率越大,延迟越小。因此,对采样频率有一定要求,不能太低。4 实验及数据分析

模块设计好以后,需搭建平台检测是否实现功能。实验平台如图6所示:

图6 实验平台
图6 实验平台

如图6所示:打开电源控制开关,然后从PC机把DSP和FPGA程序分别通过仿真器加载到F28335和XC3S700AN芯片中,打开主控机箱。最后,点击CCS上的运行键,拨动编码器,可在CCS软件界面右上方的变量观察窗口观察编码器位置值。界面如下图7所示:

图7 实验时,观察位置值的CCS界面
图7 实验时,观察位置值的CCS界面

本实验中,所使用的编码器为23位海德汉绝对式编码器ECN1023,外同步时钟源为500HZ。FPGA内部频率为10MHz,向Endat2.2输入的频率为64MHz的32分频。观察到该界面中位置值为359.8117303848267度。在实验中通过real-time与自动刷新功能还观察到,界面上数据的变化与编码器的转动几乎同步,编码器停止转动后,数据小数点后前3位之前的数据非常稳定,第3、4、5位数据比较稳定。由此可见,本模块满足了一定的测量速度和测量精度,能够很好工作。

通过实验对本模块的性能有了一定了解后,还需对精度进行检测。通过模块与标准检测仪同时测量一台海德汉绝对式编码器,360度测量正反相各测24组值。结果,正测RMS值为0.67角秒,极差为1.9角秒;反测RMS值为0.76角秒,极差为2.2角秒。两组误差曲线图如下图8所示:

图8 正反转检测两组误差数据曲线
图8 正反转检测两组误差数据曲线

从图中观察到,从0到23的24组数据皆是从0度到36度变化时测量得到的。如图所示,两组误差曲线基本重合,可在最大误差点加个修正值减小误差。

结语

编码器应用广泛。本文详细介绍了一个测量各类海德汉编码器的数据的通用且实用的模块。该模块基于Xilinx FPGA平台和TI DSP平台,使用和调试方便,使用者可快速掌握;通过了实验和精度的检测,实现了设计目的,工作可靠;模块小巧,可以与上位机通信,可以很好的被结合到嵌入式系统中。目前,本模块已用于实验转台用的增量式和绝对式编码器数据的处理,拟结合到实验室驱动控制机箱中,正进一步开发它对海德汉绝对式编码器Endat2.2附加信息的测量和处理。

关键字:DSP  FPGA  增量式编码器 引用地址:基于DSP和FPGA的编码器信号测量及处理的通用模块

上一篇:基于ADI DSPBF506F的汽车EPS方案
下一篇:基于DSP的车载导航系统硬件电路设计与实现

推荐阅读最新更新时间:2024-05-02 23:14

一种基于FPGA控制全彩大屏幕显示的设计
随着数字技术的飞速发展,各种数字显示屏也随即涌现出来有LED、LCD、DLP等,各种数字大屏幕的控制系统多种多样,有用ARM+FPGA脱机控制系统,也有用PC+DVI接口解码芯片+FPGA芯片联机控制系统,在这里我们讲述一种不仅可以用于控制全彩LED大屏幕的显示,而且还可以作为发送端输出高清图像数据。采用的联机控制系统对全彩LED大屏幕进行控制。即PC+DVI接口解码芯片+FPGA芯片+输出接口模式的联机控制系统。 DVI接口概述 DVI全称为Digital Visual Interface,它是基于TMDS(Transition Minimized Differential Signaling,最小化传输差分信
[工业控制]
一种基于<font color='red'>FPGA</font>控制全彩大屏幕显示的设计
FPGA蚕食DSP与MCU市场
通过提高密度、降低功耗和成本等手段,FPGA已经披靡传统ASIC领域,在众多新兴应用领域加速渗透。但它未来的发展“志不在此”,如今FPGA不仅将应用触角不断伸向更为广泛的领域,在通信、消费类、嵌入式等领域FPGA行使DSP“职能”,通过嵌入处理器核取代MCU一些应用,FPGA未来发展空间惹人想象。 FPGA向DSP领域加速渗透 一项研究显示,在多个DSP高端应用中FPGA将扮演越来越重要的角色,例如高端通信基础设施等需要大量并行运算且对性能要求很高的应用,FPGA的性能优势要超过独立DSP。 近日Altera公司宣布开始发售业界首款65纳米低成本FPGA—Cyclone III系列。目前250多家
[嵌入式]
基于DSP仿人机器人关节控制器电路设计
  仿人机器人具有可移动性,具有很多的自由度,包括双臂、颈部、腰部、双腿等,可以完成更复杂的任务,这些关节要连接在一起,进行统一的协调控制,就对控制系统的可靠性、实时性提出了更高的要求,以往采用的集中控制系统,控制功能高度集中。局部的故障就可能造成系统的整体失效,降低了系统的可靠性和稳定性,因此考虑采用分布式的控制系统来实现系统的控制功能。    电机驱动器的接口电路   驱动器的控制模式可以分为两种:速度控制模式和位置控制模式(通常用电位器作为电机的位置传感器)。这里采用它的速度控制模式,输入的指令信号是0~10 V的模拟量。因此需要用D/A转换电路,把DSP输出的数字量给定转变为模拟信号,电路图如图3所示。DAC7621为1
[嵌入式]
基于<font color='red'>DSP</font>仿人机器人关节控制器电路设计
基于FPGA的简易频谱分析仪的设计方案
  1 引言   目前,由于频谱分析仪价格昂贵,高等院校只是少数实验室配有频谱仪。但 电子 信息类教学,如果没有频谱仪辅助观察,学生只能从书本中抽象理解信号特征,严重影响教学实验效果。   针对这种现状提出一种基于FPGA的简易频谱分析仪设计方案,其优点是成本低,性能指标满足教学实验所要求的检测信号范围。   2 设计方案   图1为系统设计总体框图。该系统采用C8051系列单片机中的 C8051F121作为控制器,CvcloneⅢ系列EP3C40F484C8型FPGA为数字信号算法处理单元。系统设计遵循抽样定理,在时域内截取一段适当长度信号,对其信号抽样量化,按照具体的步骤求取信号的频谱,并在LCD上显示信号的频谱,同时提供
[测试测量]
基于<font color='red'>FPGA</font>的简易频谱分析仪的设计方案
基于FPGA的多DSP红外实时图像处理系统
O 引言 随着红外探测技术迅猛的发展,当今红外实时图像处理系统所要处理的数据量越来越大,速度要求也越来越快,利用目前主流的单DSP+ FPGA硬件架构进行较为复杂的图像处理算法运算时,有时就显得有些捉襟见肘了。使用多信号处理板虽可满足复杂处理的要求,但系统成本和设计复杂度会大大增加,对于对空间质量有严格要求的系统也是不可行的,多处理器系统应用的需求越来越迫切。 本文提出了一种新型的基于FPGA和四端口存储器的三DSP图像处理系统。它不同于以往的主从处理器结构,而是3个处理器分别连接四端口存储器的3个端口,处于同等地位,对图像数据并行处理,FPGA占用存储器另一端口进行数据流的控制管理和其他功能实现。这种连接方式增强了系统的
[嵌入式]
基于<font color='red'>FPGA</font>的多<font color='red'>DSP</font>红外实时图像处理系统
基于FPGA的LCD测试用信号发生器设计
摘要:在检测液晶屏特性和质量时,需要控制液晶屏显示一些标准信号。已有的一些信号产生设备产生的是AV信号、VGA信号或YPhPr信号等模拟制式的信号。模拟制式的信号需要经过图形处理器(GPU)转换成数字LVDS信号,然后输入到液晶屏的扫描控制电路产生相应图像。这个过程不可避免的会使图像信号产生一定程度的失真与损耗,影响图像质量。旨在设计一种新型信号发生器,该发生器产生的数字图像信号转换成数字LVDS信号后,直接输入液晶屏,以避免信号传输过程产生的失真与损耗。 关键词:液晶显示;信号发生器;FPGA;LVDS 0 引言 液晶显示已成为目前平板电视与计算机显示终端的主流,液晶显示器的研究设计、生产、检验等部门甚至消费者需要用一些
[嵌入式]
基于<font color='red'>FPGA</font>的LCD测试用信号发生器设计
TMS320VC5402 DSP与单片机的HPI接口实现
  TMS320VC5402(VC5402)两个可编程的多通道缓冲串口(McBSP)能够全双工、快速地与其他同步串口进行数据交换,硬件连接简单,串口的工作模式和传送数据的格式可通过编程实现。DSP和单片机之间的通信一般利用双口RAM,通过串口或DSP的HPI接口实现。   利用双口RAM实现   CY7C026是CYPRESS公司生产的16k×16B高速双口静态RAM,存取速度小于25ns。他具有真正的双端口,可以同时进行数据存取,两个端口具有独立的控制信号线、地址线和数据线,另外通过主?从选择可以方便地扩存储容量和数据宽度。通过芯片的信号量标志器,左、右两端口可以实现芯片资源的共享。   由于DSP的数据是16位,而单片机
[单片机]
TMS320VC5402 <font color='red'>DSP</font>与单片机的HPI接口实现
基于DSP的物体重量实时动态监测的研究
  目前,对物体的重量进行测量主要依据两种基本原理。一是利用力学中的杠杆平衡原理,二是利用各种传感器将物体的重量信息转化成电信号,再对此电信号进行分析处理提取该物体的重量信息。前者适用范围广,量程大,是一种经济的方法,但测量精度有限且需人工完成,因此,这种方法无法实现实时动态测量。后者采用了传感器,这就有利于用电子装置来对重量信息进行分析、计算,并显示结果,但是,很多传感器受动态范围的限制。本文则从光学技术角度结合力学原理利用CCD传感实现了对物体的动态实时测量。    2 测量原理   CCD对物体进行测量的原理如图1所示。平面镜的转动支点为O,且垂线OW交透镜轴为W点。W点位于f′(焦距)与2f′之间。当没有测量物体时,平
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved