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

发布者:Meshulun最新更新时间:2014-12-11 来源: 21ic关键字: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个。[page]

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”

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

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

3.3 数据输出

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

图5 整体过程时序示意图

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

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

图6 实验平台

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

图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 正反转检测两组误差数据曲线

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

结语

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

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

上一篇:DC-DC电源波纹的测量方法及仪器要求
下一篇:测量电流的两种“损耗”电流感测方法

推荐阅读最新更新时间:2024-03-30 22:51

解读FPGA设计的安全性
与开发成本很高的ASIC相比,FPGA可重复编程的性能正受到系统设计者的青睐。此外, FPGA的性能和功能也越来越强大,包括32位软处理器、SERDES、 DSP块和高性能的接口。现在的低成本FPGA甚至可以满足大批量的应用。设计人员采用FPGA能够快速开发产品,以应对产品快速上市(市场要求缩短产品的开发时间)和远程更新的需求。 但是,把器件生产、现场更新和固件远程重构的工作外包可能会导致FPGA被复制、克隆或盗版。这对某些企业是个严重的问题,因为有些算法对企业保持竞争优势是必不可少的,而外包可能使这些算法被别人利用。因此,考虑FPGA设计的安全性是一件非常重要的事。 FPGA有两种类型 :基于SRAM、需要用外部引导器件配
[嵌入式]
Indyme采用Blackfin产品实现店内通信
Indyme公司的解决方案能够智能的连接任何指定商店零售环境内的每个设备、应用程序与系统,提供销售团队与顾客之间的无缝通信,实现专业的商店运营管理,并有助于顾客授权的进一步实现和顾客满意度的进一步提高。对于零售商和顾客来说,这是一个双赢的结果。 Connect LX是Indyme Solutions公司推出的商店内通信与事件处理系统,它采用Blackfin ADSP-BF533处理器实现了零售环境内的通信设备数据流的控制,从而在一个单一、集成的系统内,完成商店顾客与盟友、POS机与价格扫描仪,以及安全与损失预防监控器的连接。Connect LX的增强功能包括:VoIP电话与模拟电话系统接口的实现,以及对无线PDA、k
[嵌入式]
Arduino的FPGA开发板MKR Vidor-4000介绍
自2011年Arduino推出后,凭借低成本电子原型开发平台使工程师、设计师、教育工作者甚至制造商能够随意创建创新的开发工具甚至产品。Arduino更具吸引力的特性之一是它允许通过定制板(Shield)实现个性化的新特性和功能。Arduino Shield可通过两个单独的内嵌母连接器安装在Arduino顶部,该连接器焊接在Arduino板的两侧,目前Arduino系统拥有包括传感器、WiFi、执行器等多种开发板体系。 近日,为了给Arduino提供更多的计算和连接能力,一家名为MKR的公司推出了Vidor-4000 扩展板。该板卡通过集成Intel Cyclone 10,使其拥有丰富的功能。 扩展板的尺寸仅为83毫米(3.2
[嵌入式]
Arduino的<font color='red'>FPGA</font>开发板MKR Vidor-4000介绍
Cadence 扩充 Tensilica Vision 产品线,新增毫米波雷达加速器及针对汽车应用优化的新款 DSP
内容提要 单个 DSP 用于嵌入式视觉、雷达、激光雷达和 AI 处理,在性能提升的前提下,带来显著的面积优化、功耗和成本的降低 针对 4D 成像雷达工作负载,新增的雷达加速器功能可提供高度可编程的硬件解决方案,显著提升性能 专为多传感器汽车、无人机、机器人和自动驾驶汽车系统设计中的传感器融合处理而设计 中国上海,2024 年 3 月 5 日 —— 楷登电子近日宣布扩充其 Tensilica IP 产品阵容,以应对不断增长的汽车传感器融合应用计算需求 。新推出的 Cadence® Tensilica® Vision 331 DSP 和 Vision 341 DSP 将视觉、雷达、激光雷达和 AI 处理功能整合到单个
[嵌入式]
Cadence 扩充 Tensilica Vision 产品线,新增毫米波雷达加速器及针对汽车应用优化的新款 <font color='red'>DSP</font>
FPGA与PCB板焊接连接的实时失效检测
  81%的电子系统中在使用FPGA,包括很多商用产品和国防产品,并且多数FPGA使用的是BGA封装形式。BGA封装形式的特点是焊接球小和焊接球的直径小。当FGPA被焊在PCB板上时,容易造成焊接连接失效。焊接连接失效可以“致命“一词来形容。当焊接球将封装有FPGA的器件连接到PCB上时,如果没有早期检测,由焊接失效引起的电性异常可能会导致关键设备的灾难性故障。为了防止关键设备由于焊接问题引起的灾难性故障,美国锐拓集团公司(Ridgetop-Group)开发了SJ-BIST解决方案。作为一系列的故障预测产品中的一员,SJ-BIST对工作中的FPGA的焊接失效提供了实时检测手段。   焊接点故障失效经常发生在FGPA,在所有类型
[测试测量]
基于FPGA+嵌入式处理器的违章车辆视频检测系统
0 引 言 随着我国经济的发展,机动车辆不断地增长,现有道路等硬件设施的增长已经满足不了日益膨胀的交通问题,智能交通系统(Intelligent Transportation System,ITS)越来越受重视。 所谓智能交通系统(ITS)就是将先进的信息技术、数据通信传输技术、电子传感技术以及计算机处理技术等有效地集成运用于整个地面交通管理系统而建立的一种在大范围内、全方位发挥作用的、实时、准确、高效的综合交通运输管理系统。近年来,ITS在城市交通管理方面得到了普遍应用,在缓解道路交通、防范交通违章及事故发生等方面获得了良好的效果。本文针对ITS应用,特别是电子警察系统的应用,提出了车辆违章视频检测方案,以适应ITS的发
[嵌入式]
基于DSP的IP电话设计
引言 传统的电话网是以电路交换的方式传输语音信号的,它需要的基本带宽为64kbit/s。据统计,在正常通话情况下,大约只有40%的时间为有声期,其余时间电路均为空占,网络带宽利用率不高。随着计算机技术的不断发展,尤其是国际互联网(Internet)的不断完善,基于分组交换的数据通信成为最重要的通信方式。而要在基于IP的分组网络上传输语音,就必须对模拟的语音信号进行特殊处理,使处理后的信号可以适合在面向无连接的分组网络上传输,这就是分组语音技术。本文介绍的就是一种基于TMS320VC5409的IP电话设计。 G..728编码标准 语音编码技术是IP电话的核心技术之一,编码质量的好坏直接关系到IP电话的通话质量。
[嵌入式]
基于<font color='red'>DSP</font>的IP电话设计
TMS320VC5402 DSP并行8bit EPROM引导装载方法研究
摘要:TMS320VC5402 DSP芯片并行引导的特点和引导的过程中,设计了并行8bit EPROM引导装载的电路,并给出了实现方法。实践证明,该电路和方法在利用TMS320VC5402 DSP芯片设计系统时非常简便,具有很大的实用性。 关键词:DSP 引导装载 并行引导表 TMS320VC5402(以下简称C5402)是德州仪器公司(TI)推出的性价比极高的16bit定点数字信号处理器(DSP),操作速率可达100MIPS,它的内部资源配置为用户构造系统提供了很大便利。 C5402芯片配置有4K%26;#215;16bit片内屏蔽式的ROM(F000h-FFFFh)。在4K ROM资源里,包含了Bootloader程序。
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved