本发明涉及绝对编码器与伺服电机控制领域,具体涉及一种基于fpga的绝对编码器角度读取电路和方法。
背景技术:
在电机控制领域,转子的角度位置信号对电机控制的算法至关重要,永磁电机控制也如是。如何快速读取转子位置信号是更好地控制电机的关键因素。目前主流的伺服电机转子角度位置读取方式主要是通过编码器、旋转变压器等方法。其中编码器主要分为增量式编码器和绝对式编码器两种。增量式编码器的缺陷在于只输出abz脉冲信号,无法得知初始角度位置,导致电机起动的时候不方便。绝对式编码器可以避免这个问题,但是绝对编码器的角度数据读取协议比较复杂,就增加了读取角度的难度。
所以如何简化绝对式编码器的角度读取方式对改善电机控制的速率与精确度有很大的影响。
技术实现要素:
针对现有绝对式编码器的角度读取方法的复杂度,本发明提供了一种基于fpga的绝对编码器角度读取电路和方法。进一步简化了角度读取的方式,提高了角度读取的效率。
本发明采用的技术方案是:一种基于fpga的绝对编码器角度读取电路,包括fpga芯片、总线收发器、dsp芯片、电容c、电阻r;fpga芯片的发送端与总线收发器的接收端相连,fpga芯片的接收端与总线收发器的发送端相连,fpga芯片的方向端口分别与总线收发器的方向端口和复位端口相连,总线收发器的电源端口分别与+3.3v电源和电容c的一端相连,电容c的另一端接地;总线收发器的编码接收端分别与电阻r的一端和绝对编码器的发送端相连,总线收发器的编码发送端分别与电阻r的另一端和绝对编码器的接收端相连,dsp芯片通过总线与fpga芯片相连,绝对编码器为多摩川的绝对式编码器。
作为优选,所述fpga芯片的型号为altera公司的ep3c16q240c8n。
作为优选,所述总线收发器的型号为sn65hvd08。
作为优选,所述dsp芯片型号为tms320f28377d。
作为优选,所述dsp芯片通过23位的总线与fpga芯片相连。
本发明的另一目的是提供一种基于fpga的绝对编码器角度读取方法,包括如下步骤:
(1)fpga芯片通过总线收发器向绝对编码器发送控制信号,所述控制信号包括起始码、同步码、控制指令、校验位和结束位;
(2)绝对编码器通过总线收发器向fpga芯片传输数据信号,所述数据信号包括控制帧、状态帧、数据帧和校验帧;
(3)fpga芯片产生窄脉冲定位信号,确定角度数据和圈数数据在数据信号的位置;
(4)fpga芯片将处理完的角度数据和圈数数据通过总线上传给dsp。
本发明的有益效果是:本发明简化了以往用绝对式编码器时候的读取角度数据信息的复杂程度,使得fpga处理时序的过程中更加方便和快捷,从而可以进一步提高电机控制的效率。
附图说明
图1为本发明的硬件电路图;
图2为控制信号的格式示意图;
图3为数据信号的格式示意图;
图4(a)为数据信号当中控制帧格式示意图;
图4(b)为数据信号当中状态帧格式示意图;
图4(c)为数据信号当中数据帧格式示意图;
图4(d)为数据信号当中crc校验帧格式示意图;
图5为窄脉冲定位格式示意图;
图6为控制信号波形图;
图7为窄脉冲定位波形图;
图8为数据信号波形图。
具体实施方式
为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案以及fpga读取角度信息的过程进行详细说明。
如图1所示是硬件电路图,包括fpga芯片、总线收发器、dsp芯片、电容c、电阻r;fpga芯片的发送端与总线收发器的接收端相连,fpga芯片的接收端与总线收发器的发送端相连,fpga芯片的方向端口分别与总线收发器的方向端口和复位端口相连,总线收发器的电源端口分别与+3.3v电源和电容c的一端相连,电容c的另一端接地;总线收发器的编码接收端分别与电阻r的一端和绝对编码器的发送端相连,总线收发器的编码发送端分别与电阻r的另一端和绝对编码器的接收端相连,dsp芯片通过总线与fpga芯片相连,绝对编码器为多摩川的绝对式编码器。
基于fpga的绝对编码器角度读取方法,包括如下步骤:
(1)fpga芯片发送出来的控制信号485-scib-scitxd-1,主要包括起始码、同步码、控制指令、校验位和结束位,格式如附图2所示,该信号通过总线收发器sn65hvd08输入给绝对编码器的rs485_a-1信号,此时因为是输入给绝对编码器的信号,所以代表收发方向的dir信号此时应该置高电平。
(2)绝对式编码器收到该控制指令之后会发出数据信号rs485_b-1信号,通过总线收发器sn65hvd08将信号传回给fpga芯片,即485-scib-scirxd-1信号,此时因为是绝对式编码器的输出,所以dir信号应该为低电平。
(3)数据信号485-scib-scirxd-1的格式如图3所示,数据信号包括控制帧,状态帧、数据帧、crc校验帧。其数据格式分别为图4所示,而数据信号当中的有效信息就藏在数据帧当中,所以我们的关键步骤就是读取数据帧当中的有效数据。主要是通过相应的脉冲信号定位来读取数据信号的数据,其主要是读取数据信号中数据帧的有效信息,即角度数据与圈数数据。如图5所示,用一系列的窄脉冲信号来定位数据帧当中的每一位,然后依次根据时序关系读取有效数据位,通过fpga处理得到角度数据与圈数数据。
(4)fpga处理过后的角度数据和圈数数据全部转化为二进制的数据,通过dsp和fpga的连接总线传送至dsp。
实验结果分别如图6-8所示,其中图6所示的是控制信号波形,图7所示为窄脉冲定位波形;图8所示为数据信号波形。
上述的实施方法可以较好地获得绝对式编码器的角度数据和圈数数据,而且速率相对比原来的时序简单一些。