首页 理论教育 eQEP功能子模块详解

eQEP功能子模块详解

时间:2023-06-24 理论教育 版权反馈
【摘要】:eQEP模块的看门狗时钟源由SYSCLKOUT/64分频得到,并且正交时钟事件脉冲复位看门狗定时器。图6-54 eQEP看门狗模块结构6.单位定时器eQEP外设包含一32位定时器QUTMR,该定时器由SYSCLKOUT提供时钟,为速度计算产生周期中断,如图6-55所示。当单位超时事件发生时,eQEP外设可以配置锁存位置计数器、捕获定时器及捕获周期值,用于速度计算。图6-55 eQEP单位时间基准

eQEP功能子模块详解

1.正交解码单元(QDU)

正交解码单元模块框图如图6-45所示。

(1)位置计数器输入模式

输入到位置计数器的时钟和方向信号由QDECCTL[QSRC]位控制,具有的模式如下:

1)正交计数模式。在正交计数模式下,正交解码器为位置计数器提供方向和时钟信号。

①方向解码。eQEP电路的方向解码逻辑检测QEPA和QEPB的超前顺序并且相应地更新QEPSTS[QDF]的方向信息。QEPA和QEPB的两个信号边沿均为位置计数器产生计数脉冲。因此,eQEP逻辑产生的时钟频率是输入频率的4倍。表6-49给出了方向解码逻辑的真值表,图6-46给出了状态机,图6-47给出了eQEP输入信号的方向解码和时钟产生。

978-7-111-49650-2-Chapter06-176.jpg

图6-45 解码单元模块框图

6-49 方向解码逻辑真值表

978-7-111-49650-2-Chapter06-177.jpg

(续)

978-7-111-49650-2-Chapter06-178.jpg

978-7-111-49650-2-Chapter06-179.jpg

图6-46 正交解码器状态机

②相位错误标志。在正常操作条件下,正交输入QEPA和QEPB在相位上相差90°。当检测到QEPA和QEPB信号边沿同时转变时,则将QFLG寄存器中的PHE位置位,并可以产生中断。图6-46中虚线所示的地方为非法的状态转变,并将产生相位错误。

③计数倍频。在QEPA和QEPB输入时钟的上升/下降沿均可产生正交时钟QCLK,因而eQEP位置计数器时钟为输入时钟的4倍。

④交换计数。正常正交计数操作时,QEPA输入送至QA输入,QEPB输入送至QB输入。通过将QDECCTL中的SWAP位置位,使能交换计数。此时,正交解码单元的输入将被交换,因而计数方向也会发生翻转。

2)方向计数模式。一些位置编码器提供了方向和时钟输出,而非正交输出。在这种情况下,可采用方向计数模式。QEPA输入将为位置计数器提供时钟,QEPB输入将提供方向信息。当方向输入为高电平时,位置计数器在每个QEPA的上升沿增计数,当方向输入为低电平时,位置计数器则进行减计数。

3)增计数模式。计数器的方向信号通过硬件连接使计数器进行增计数,此时位置计数器可用来测量QEPA输入信号的频率。通过将QDECCTL[XCR]置位,可以使得在QEPA输入信号的两个边沿均产生位置计数时钟脉冲,因而检测精度也提高一倍。

4)减计数模式。计数器的方向信号通过硬件连接使计数器进行减计数,此时位置计数器可用来测量QEPA输入信号的频率。通过将QDECCTL[XCR]置位,可以使得在QEPA输入信号的两个边沿均产生位置计数时钟脉冲,因而检测精度也提高一倍。

978-7-111-49650-2-Chapter06-180.jpg

图6-47 正交时钟产生和方向解码

(2)eQEP输入极性选择

每个eQEP输入都可以通过QDECCTL[8:5]位来将其反向。例如,通过将QDECCTL[QIP]位置位,则索引输入将被反向。

(3)位置比较同步输出

增强的eQEP外设包含了一位置比较单元,当位置计数寄存器QPOSCNT和位置比较寄存器QPOSCMP发生比较匹配时,该比较单元可以产生一位置比较同步信号。该信号可以通过eQEP外设的索引引脚或者选通引脚输出。QDECCTL[SOEN]位用来使能位置比较同步输出功能,并且QDECCTL[SPSEL]位用来选择通过eQEP的索引引脚或选通引脚输出。

2.位置计数器和控制单元(PCCU)

位置计数器和控制单元提供了两个配置寄存器QEPCTL和QPOSCTL,用来配置位置计数器操作模式、位置计数器初始化/锁存模式和产生同步信号的位置比较逻辑。

(1)位置计数器复位操作模式

位置计数器可以配置为四种操作模式:位置计数器在索引事件复位、位置计数器在最大位置处复位、位置计数器在第一个索引事件复位及位置计数器在单位时间输出事件复位(频率测量)。在这四种操作模式中,位置计数器都会在上溢时复位至0,在下溢时复位至QPOSMAX寄存器中的值。当位置计数器递增至QPOSMAX的值后,若仍然进行增计数,则发生上溢;当位置计数器递减至0后,若仍然进行减计数,则发生下溢。由QFLG寄存器中的中断标志位反映是否发生上溢/下溢。下面分别介绍:

1)位置计数器在索引事件复位(QEPCTL[PCRM]=00)。如果在前向运动过程中发生索引事件,则位置计数器在下一个eQEP时钟复位至0。如果在反向运动过程中发生索引事件,则位置计数器将在下一个eQEP时钟复位至QPOSMAX寄存器中的值。

第一个索引标志定义为第一个索引边沿后的正交边沿。eQEP外设记录第一个索引标志(QEPSTS[FIMF])、第一个索引标志事件时的方向(QEPSTS[FIDF]),也记录第一个索引标识的正交边沿,与该正交边沿相同的正交转变将用于索引事件的复位操作。

例如,在前向运动过程中,如果第一个复位操作发生在QEPB的下降沿,那么后继的复位必须在前向运动中QEPB的下降沿或反向运动中QEPB的上升沿。如图6-48所示。

978-7-111-49650-2-Chapter06-181.jpg

图6-48 1000线编码器位置计数器由索引脉冲复位(QPOSMAX=3999)

索引事件标志对应的位置计数器的值锁存在QPOSILAT寄存器,方向信息记录在QEP- STS[QDLF]中。如果锁存的值不为0或QPOSMAX,则位置计数器错误标志位(QEPSTS[PCEF])和错误中断标志位(QFLG[PCE])会被置位。位置计数器错误标志位(QEPSTS[PCEF])在每个索引事件标志时被更新,而QFLG[PCE]只能通过软件清除。

索引事件锁存配置位QEPCTL[IEL]在该模式下被忽略,位置计数器错误标志和中断标志只有在索引事件复位模式中才产生。

2)位置计数器在最大位置处复位(QEPCTL[PCRM]=01)。该模式下,在前向运动过程中,如果位置计数器的值等于QPOSMAX,则位置计数器将在下一个eQEP时钟处复位至0并且置位上溢标志位;而在反向运动过程中,如果位置计数器的值等于0,则位置计数器将在下一个eQEP时钟处复位至QPOSMAX并且置位下溢标志位。

3)位置计数器在第一个索引事件处复位(QEPCTL[PCRM]=10)。该模式下,在前向运动过程中,如果索引事件发生,则位置计数器将在下一个eQEP时钟处复位至0;在反向运动过程中,如果索引事件发生,则位置计数器将在下一个eQEP时钟处复位至QPOSMAX。需要注意的是,该复位只会发生在第一个索引事件处,位置计数器将不会在其后的索引事件处复位,而是由最大位置决定,即在最大位置处复位。

4)位置计数器在单位时间输出事件处复位(QEPCTL[PCRM]=11)。该模式下,在单位时间事件处,QPOSCNT的值会被锁存到QPOSLAT中,并且QPOSCNT会被复位(0或QPOSMAX,取决于QDECCTL[QSRC]位设置的方向模式)。该模式可应用于频率测量。

(2)位置计数器锁存

通过配置,当eQEP模块中的索引和选通输入引脚发生特定事件时,可将位置计数器值QPOSCNT相应地锁存至QPOSILAT和QPOSSLAT。具体如下:

1)索引事件锁存。在一些应用场合中,并不希望在每个索引事件处复位位置计数器,而是需要将位置计数器工作在32位模式下(QEPCTL[PCRM]=01或10)。在此情况下,eQEP位置计数器可配置为在如下的事件处锁存(方向信息是在每个索引事件标识处记录至QEPSTS[QDLF]中):

●在上升沿锁存(QEPCTL[IEL]=01)。位置计数器的值QPOSCNT在每个索引输入的上升沿锁存至QPOSILAT中。

●在下降沿锁存(QEPCTL[IEL]=10)。位置计数器的值QPOSCNT在每个索引输入的下降沿锁存至QPOSILAT中。

●在索引事件标识处/软件索引标志处锁存(QEPCTL[IEL]=11)。第一个索引标识定义为第一个索引边沿后的第一个正交边沿,eQEP外设记录第一个索引标识的发生(QEPSTS[FIMF])以及第一个索引事件标识的方向(QEPSTS[FIDF]),同时也记录第一个索引标志处的正交边沿,与该边沿相同的正交转变可用于锁存位置计数器。(www.xing528.com)

索引事件锁存功能可用于检查位置计数器在两个索引事件之间是否累加了正确的个数。例如,对于1000线的编码器,当按照固定方向运动时,在两个索引事件之间必须计数4000次。

当位置计数器被锁存至QPOSILAT寄存器中时,索引事件锁存中断标志QFLG[IEL]将被置位。当QEPCTL[PCRM]=00时,索引事件锁存配置位QEPCTL[IEL]将被忽略。图6-49给出了位置计数器在索引事件标识处锁存的情况。

2)选通事件锁存。QEPCTL[SEL]位被清零后,位置计数器的值将在选通输入的上升沿锁存至QPOSSLAT寄存器中。如果QEPCTL[SEL]置位,则对于前向运动,位置计数器的值将在选通输入的上升沿锁存至QPOSSLAT;对于反向运动,位置计数器的值将在选通输入的下降沿锁存至QPOSSLAT,如图6-50所示。当位置计数器值锁存至QPOSSLAT寄存器中时,选通事件锁存中断标志位QFLG[SEL]将置位。

3)另外,单位时间超时事件发生时,会将QPOSCNT锁存至QPOSLAT中。这将在单位定时器子模块介绍。

(3)位置计数器初始化

位置计数器可通过索引事件、选通事件及软件来进行初始化。具体如下:

1)索引事件初始化(IEI)。QEPI索引输入可以触发位置计数器在索引输入的上升沿或下降沿初始化。若QEPCTL[IEI]=10,则位置计数器QPOSCNT将在索引输入上升沿初始化为QPOSINIT寄存器中的值;若QEPCTL[IEI]=11,则是在下降沿初始化。

978-7-111-49650-2-Chapter06-182.jpg

图6-49 1000线编码器位置计数器在软件索引标识处锁存(QEPCTL[IEL]=11)

978-7-111-49650-2-Chapter06-183.jpg

图6-50 选通事件锁存(QEPCTL[SEL]=1)

2)选通事件初始化(SEI)。若QEPCTL[SEI]=10,则位置计数器在选通输入的上升沿初始化为QPOSINIT的值;若QEPCTL[SEI]=11,则在前向运动中,位置计数器在选通输入的上升沿初始化为QPOSINIT,在反向运动中,位置计数器在选通输入的下降沿初始化。

3)软件初始化(SWI)。可以通过向QEPCTL[SWI]位写1来实现软件初始化位置计数器,该位不会自动清除。当该位置位时,若再次向该位写1,则将再次初始化位置计数器。

3.eQEP位置比较单元

eQEP外设包括一位置比较单元,当发生位置比较匹配时,可以用来产生同步输出信号或中断,如图6-51所示。位置比较寄存器QPOSCMP可以被映射,并且映射模式可以通过配置QPOSCTL[PSSHDW]位来使能或禁止。如果映射模式被禁止,则DSP直接将比较值写入到当前工作(active)的位置比较寄存器。

978-7-111-49650-2-Chapter06-184.jpg

图6-51 eQEP位置比较单元

在映射模式下,用户可以配置位置比较单元QPOSCTL[PCLOAD],选择如下事件发生时将映射(shadow)寄存器的值装载到当前工作(active)的寄存器中:

●在比较匹配时装载。

●位置计数器值为0时装载。

在装载发生后,产生位置比较就绪中断QFLG[PCR]。

当位置计数器值QPOSCNT与位置比较寄存器QPOSCMP(active)相匹配时,位置比较匹配标志QFLG[PCM]将置位,并且产生位置比较同步输出信号(其脉冲宽度可编程改变)用以触发外部器件。例如,假设QPOSCMP=2,则在前向计数中,当位置计数器值从1到2跳变时,位置比较单元将产生位置比较事件;在反向计数中,当位置计数器值从3到2跳变时,产生位置比较事件。

位置比较单元中的脉冲展宽逻辑在发生位置比较匹配时,产生可编程的位置比较同步脉冲输出。若新的位置比较匹配已发生并且之前的位置比较脉冲仍然处于有效状态,则脉冲展宽器从新的比较匹配事件处产生所设定占空比的脉冲,如图6-52所示。

4.eQEP边沿捕获单元

eQEP外设包含了集成的边沿捕获单元,用以测量单位位置事件之间的时间,如图6-53所示。通常以式(6-3)完成低速时的速度测量。

eQEP捕获定时器QCTMR运行时钟由SYSCLKOUT分频得到,分频系数由QCAPCTL[CCPS]位配置。捕获定时器的值在每个单位位置事件发生时锁存到捕获周期寄存器QCPRD中,然后捕获定时器复位,且QEPSTS[UPEVNT]标志位置位以表明新的值锁存至QCPRD中。低速测量时,用户在读取周期寄存器之前可以先检查该标志位以判断是否有新的值锁存。向该标志位写1可清除标志。

满足如下条件时,两个单位位置事件间的时间差测量会比较准确:

●在两个单位位置事件间的计数不超过65,535。

●两个单位位置事件间没有方向变化。

978-7-111-49650-2-Chapter06-185.jpg

图6-52 eQEP位置比较同步输出脉冲展宽器

978-7-111-49650-2-Chapter06-186.jpg

图6-53 eQEP边沿捕获单元

在两个单位位置事件间,如果捕获定时器发生上溢,则捕获单元会将上溢错误标志位QEPSTS[COEF]置位,同样,如果方向发生变化,则会将QEPSTS[CDEF]标志置位。

捕获定时器QCTMR和捕获周期寄存器QCPRD可以配置成在下面事件发生时锁存(由QEPCTL[QCLM]决定):

●CPU读取QPOSCNT。

●单位时间超时事件。

5.eQEP看门狗

eQEP外设包含1个16位的看门狗定时器,用来监控运动控制系统中的正交时钟。eQEP模块的看门狗时钟源由SYSCLKOUT/64分频得到,并且正交时钟事件脉冲复位看门狗定时器。如果直到发生周期匹配(QWDPRD=QWDTMR)时还未检测到正交时钟事件脉冲,看门狗定时器将超时并且看门狗中断标志位QFLG[WTO]置位。看门狗超时的值可以通过看门狗周期寄存器QWDPRD配置。看门狗模块结构如图6-54所示。

978-7-111-49650-2-Chapter06-187.jpg

图6-54 eQEP看门狗模块结构

6.单位定时器

eQEP外设包含一32位定时器QUTMR,该定时器由SYSCLKOUT提供时钟,为速度计算产生周期中断,如图6-55所示。当单位定时器QUTMR与单位周期寄存器QUPRD相匹配时,单位超时中断标志位QFLG[UTO]将置位。当单位超时事件发生时,eQEP外设可以配置锁存位置计数器、捕获定时器及捕获周期值,用于速度计算。

978-7-111-49650-2-Chapter06-188.jpg

图6-55 eQEP单位时间基准

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈