电气与信息工程学院第13讲281xEV之捕获单元及QEP电路2电气与信息工程学院DSP技术及应用281x捕获单元及QEP电路13.1捕获单元记录捕获输入引脚上的跳变当在捕获输入引脚CAPx上检测到一个规定的跳变信号时,通用定时器的值将被捕获并存储到一个2级深度的FIFO堆栈中EVA捕获单元均可选择GP定时器2或1作为其时间基准每个事件管理器模块有3个捕获单元CaptureUnits(EVA)PWMCircuitsPWMCircuitsPWMCircuitsOutputLogicOutputLogicOutputLogicGPTimer1CompareGPTimer1GPTimer2CompareGPTimer2CompareUnit1CompareUnit2CompareUnit3CaptureUnitsMUXQEPCircuitOutputLogicOutputLogicEVControlRegisters/LogicResetPIETCLKINA/TDIRA/2ADCStartDataBus•CLKDIR••T1PWM_T1CMPT2PWM_T2CMPPWM1PWM2PWM3PWM4PWM5PWM6CAP1/QEP1CAP2/QEP2CAP3/QEPI1•2电气与信息工程学院DSP技术及应用281x捕获单元及QEP电路捕获单元的结构捕获单元原理捕获单元结构CaptureUnitsBlockDiagram(EVA)Canlatchon:•risingedge•fallingedge•bothTTLSignalmin.validwidth:2CPUCLKlo2CPUCLKhiGPTimer1CounterT1CNT.15-0EdgeDetectCAP3TOADCCAP1,2,3MUXGPTimer2CounterT2CNT.15-0CAPCONA.10-9EnableCAPCONA.14-122-LevelDeepFIFO/3.CAPCONA.8EdgeSelectCAPCONA.7-2CAPCONA.15CAPRESETADCStart(CAP3)CAPFIFOA.13-8CAPxFIFOStatusRS2电气与信息工程学院DSP技术及应用281x捕获单元及QEP电路捕获单元特点•一个16位的捕获控制寄存器(EVA:CAPCONA,EVB:CAPCONB),可读写。•一个16位捕获FIFO状态寄存器(EVA:CAPFIFOA,EVB:CAPFIFOB)。•可选择通用定时器1或2(EVA)和通用定时器3或4(EVB)作为时钟基准。•3个16位2级深的FIFO堆栈,每个捕获单元一个。•6个施密特触发捕获输入引脚,CAP1~CAP6,一个输入引脚对应一个捕获单元。•用户可设定的跳变沿检测(上升沿、下降沿或上升下降沿)。•6个可屏蔽的中断标志位,每个捕获单元1个。2电气与信息工程学院DSP技术及应用281x捕获单元及QEP电路捕获单元的操作•捕获单元被使能后,输入引脚上的跳变将使所选择的通用定时器的计数值装入到相应的FIFO堆栈。•如果此时已经有一个或多个有效的捕获值存到FIFO堆栈(CAPxFIFO位不等于0),将会使相应的中断标志位置位。•如果中断标志未被屏蔽,将产生一个外设中断请求。•每次捕获到的新数值存入到FIFO堆栈时,捕获FIFO状态寄存器CAPFIFOx相应的位就进行调整,实时地反映FIFO堆栈的状态。•从捕获单元输入引脚发生跳变到所选通定时器的数值被锁存需要2个CPU时钟周期的延时。•复位时,所有捕获单元的寄存器都被清零。2电气与信息工程学院DSP技术及应用281x捕获单元及QEP电路捕获单元FIFO堆栈•每个捕获单元有一个专用的两级深的FIFO堆栈。•所有FIFO堆栈的顶层堆栈寄存器是只读寄存器,它存放相应捕获单元捕获到的最老的计数值。•当读取FIFO堆栈的顶层寄存器的数值时,堆栈底层寄存器的新计数值(如果有)将被压入到顶层寄存器。•读FIFO堆栈的底层寄存器可使FIFO的状态位变为01(如果先前是10或11)。如果原来FIFO状态位是01,则读取底层FIFO寄存器后,FIFO状态位变为00(即为空)。2电气与信息工程学院DSP技术及应用281x捕获单元及QEP电路捕获操作第三次捕获:如果捕获发生时,FIFO堆栈已捕获到两个计数值,在顶层寄存器中最早的计数值将被弹出并被丢弃,而堆栈底层寄存器的值将被压入到顶层寄存器中,新捕获到的计数值将被压入到底层寄存器中,并且FIFO的状态位被设置为11。第三次捕获使相应的捕获中断标志位置位。第二次捕获:如果在第一次捕获计数值被读取之前产生了另一次捕获,则新的捕获到的计数值被送至底层寄存器。相应的寄存器状态位设置为10,第二次捕获使相应的捕获中断标志位置位,如果中断未被屏蔽,则产生一个外设中断请求。第一次捕获:当捕获单元的输入引脚出现跳变时,捕获单元将通用定时器的计数值写入到空FIFO堆栈的顶层寄存器,同时相应的状态位设置为01。如果在下一次捕获操作之前读取了FIFO堆栈,则FIFO状态位被复位为00。2电气与信息工程学院DSP技术及应用281x捕获单元及QEP电路第1次捕获第2次捕获第3次捕获SomeUsesfortheCaptureUnitsSynchronizedADCstartwithcaptureeventProblem:Atlowspeeds,calculationofspeedbasedonameasuredpositionchangeatfixedtimeintervalsproduceslargeestimateerrorsAlternative:EstimatethespeedusingameasuredtimeintervalatfixedpositionintervalsSignalfromoneQuadratureEncoderChannelLowspeedvelocityestimationfromincr.encoder:Measurethetimewidthofapulsevkxtk-tk-1vktxk-xk-1x2电气与信息工程学院DSP技术及应用281x捕获单元及QEP电路13.2正交编码脉冲QEP电路当QEP电路被使能时,可以对CAP1/QEP1和CAP2/QEP2引脚上输入的正交编码输入脉冲进行解码和计数时间基准可以由通用定时器2提供。通用定时器必须被设置成定向的增/减计数模式,并选择QEP电路作为其输入时钟源连接光电编码器以获得电机的位置和速率等信息。当QEP电路被使能时,CAP1/CAP2引脚上的捕获功能将被禁止QEPCircuitQuadratureEncoderPulse(EVA)PWMCircuitsPWMCircuitsPWMCircuitsOutputLogicOutputLogicOutputLogicGPTimer1CompareGPTimer1GPTimer2CompareGPTimer2CompareUnit1CompareUnit2CompareUnit3CaptureUnitsMUXOutputLogicOutputLogicEVControlRegisters/LogicResetPIETCLKINA/TDIRA/2ADCStartDataBus•CLKDIR•T1PWM_T1CMPT2PWM_T2CMPPWM1PWM2PWM3PWM4PWM5PWM6CAP1/QEP1CAP2/QEP2CAP3/QEPI1•photosensorsspacedθ/4deg.apartWhatisanIncrementalQuadratureEncoder?Adigital(angular)positionsensorslotsspacedθdeg.apartlightsource(LED)shaftrotationCh.ACh.BQuadratureOutputfromPhotoSensorsθθ/4IncrementalOpticalEncoderHowisPositionDeterminedfromQuadratureSignals?Ch.ACh.B(00)(11)(10)(01)(A,B)=00011110QuadratureDecoderStateMachineincrementcounterdecrementcounterPositionresolutionisθ/4degrees.IncrementalEncoderConnections(EVA)•GPTimer2selectedaspulsecounter•TimerPrescalerbypassed(i.e.Prescalealways1)Ch.ACh.BCAP1/QEP1CAP2/QEP2QEPdecoderlogicGPTimer2CLKDIR..IndexCAP3/QEPIQEPIEQEPIQUAL初始相位判断信号,码盘每旋转一周发出一个,码盘发出信号时所对应的转子位置是固定的,因此可以判断电机转子实际所处的位置2电气与信息工程学院DSP技术及应用281x捕获单元及QEP电路EVA模块中的QEP电路的原理框图2电气与信息工程学院DSP技术及应用281x捕获单元及QEP电路QEP电路•EV模块中的QEP电路的方向检测逻辑确定哪个脉冲相序相位超前,然后产生一个方向信号作为通用定时器2(或4)的方向输入,如果CAP1/QEP1(对于EVB是CAP4/QEP3)引脚的脉冲输入是相位超前脉冲序列,那么定时器就进行增计数;相反,如果如果CAP2/QEP2(对于EVB是CAP5/QEP4)引脚的脉冲输入是相位超前脉冲序列,那么定时器就进行减计数。•正交编码脉冲电路对编码输入脉冲的上升沿和下降沿都进行计数,因此,由QEP电路产生的通用定时器(通用定时器2或4)的时钟输入是每个输入脉冲序列频率的4倍。2电气与信息工程学院DSP技术及应用281x捕获单元及QEP电路正交编码脉冲和经过解码的定时器时钟和方向2电气与信息工程学院DSP技术及应用281x捕获单元及QEP电路如何通过QEP测速及定位电机转过的角度为T2CNT[(K1)t]T2CNT[kt]*3604096电机的转速n为T2CNT[(K1)t]T2CNT[kt]n*60rpm4096*t设光电码盘光栅共有1024格2电气与信息工程学院DSP技术及应用281x捕获单元及QEP电路QEP计数•通用定时器2(或4)总是从它的当前值开始计数,在使能QEP模式前,可将所需的值装载到通用定时器的计数器中。当选择QEP电路作为时钟源时,定时器的方向信号TDIRA/B和计数信号TCLKINA/B不起作用。用QEP电路作为时钟,通用定时器的周期、下溢、上溢和比较中断标志在相应的匹配产生时,将产生外设中断请求(如果中断未被屏蔽)。2电气与信息工程学院DSP技术及应用281x捕获单元及QEP电路QEP电路的寄存器设置启动EVA的QEP电路的设置如下:•根据需要,将所需的值装载到通用定时器2的计数器、周期和比较寄存器。•配置T2CON寄存器,使通用定时器2工作在定向增/减模式,QEP电路作为时钟源并使能使用的通用定时器。启动EVB的QEP电路的设置如下:•根据需要,将所需的值装载到通用定时器4的计数器、周期和比较寄存器。•配置T4CON寄存器,使通用定时器4工作在定向增/减模式,QEP电路作为时钟源并使能使用的通用定时器。2电气与信息工程学院DSP技术及应用281x捕获单元及QEP电路13.3事件管理器的中断•事件管理器的中断模块分成3个组:A,B,C。每组都有相应的中断标志和中断使能寄存器。下图为EVA中断:2电气与信息工程学院DSP技术及应用281x捕获单元及QEP电路EVB中断标志寄存器及屏蔽寄存器