版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第6章 事件管理器及其应用6.1 事件管理器功能概述6.2 通用定时器6.8 比较单元6.11 捕获单元6.14 正交编码脉冲电路6.15 事件管理器中断光电编码器霍尔传感器功率放大器电流传感器2捕获单元是一种输入设备,用于捕获引脚上电平的变化并记录它发生的时刻。普通的微处理器能做到这一点,但需要由CPU完成判断和记录工作,占用了CPU的资源。6.11 捕获单元结构3对于两次间隔很短的跳变( 微秒级)的捕获,普通的微处理器就显得力不从心。DSP控制器的捕获单元不需要占用CPU的资源,与CPU并行工作。它有二级深度FIFO堆栈对于两次间隔很短跳变的捕获得心应手。6.11 捕获单元结构4事件管理
2、器总共有6个捕获单元,每个事件管理器有3个捕获单元。事件管理器A( EVA模块 )的捕获单元为CAP1、CAP2和CAP3,事件管理器B( EVB模块 )的捕获单元为CAP4、CAP5和CAP6,每一个捕获单元都有一个相应的捕获输入引脚。捕获单元的结构示意图如书P204所示。 6.11 捕获单元结构56.11 捕获单元结构当捕获引脚输入脉冲波形时,捕获单元能够捕获指定的电平变化。例如捕获脉冲的上升沿。当捕获到脉冲指定的电平变化时,捕获单元记录此时定时器的时间。假设捕获到第1个脉冲时定时器的时间为t1 ,捕获到第2个脉冲时定时器的时间为 t2,那么这个脉冲的宽度是 t2-t1。捕获单元可以用于测
3、量脉冲的宽度。捕获单元功能模块 (EVA)PWM 电路PWM 电路PWM 电路输出逻辑输出逻辑输出逻辑通用定时器1比较器通用定时器1通用定时器2比较器通用定时器2全比较单元1全比较单元2全比较单元3 捕获单元MUX QEP 电路Output Logic输出逻辑EV 控制寄存器 / 逻辑ResetPIETCLKINA / TDIRA/2ADC 启动Data BusCLKDIRT1PWM_T1CMPT2PWM_T2CMPPWM1PWM2PWM3PWM4PWM5PWM6CAP1_QEP1CAP2_QEP2CAP3_QEPI178捕获单元框图0选择定时器21选择定时器100禁止CAP1&201使能CA
4、P1&20禁止CAP31使能CAP3D12D14:13D10CAP3D9CAP1&200不检测01检测上升沿10检测下降沿11检测两个边沿0寄存器清零1无操作D8D7:6CAP1D5:4CAP2D3:2CAP3Capture Control RegisterCAPCONAD150无操作1CAP3中断置位 时启动ADCT2CNTT1CNT910捕获单元包含:(1) 一个16位的捕获控制寄存器 ( CAPCONA对EVA模块, CAPCONB对EVB模块)(2) 一个16位捕获FIFO状态寄存器CAPFIFOAB。6.11 捕获单元结构11(3) 可选择通用定时器1/2(对EVA模块)或者定时器3
5、/4(对EVB模块)作为时间基准。注意:CAP1和CAP2一定要选择相同的定时器作为它们的时基;CAP3可独立使用一个时基(对 EVA 模块);6.11 捕获单元结构12CAP4和CAP5一定要选择相同的定时器作为它们的时基。CAP6 可选择独立的时基 。 ( 对 EVB 模块 )。6.11 捕获单元结构13(4) 3个16位2级FIFO堆栈( CAPxFIFO ),每个对应一个捕获单元。 ( x = 1 3或 = 4 6 )(5) 3个施密特触发式的捕获输入引脚 ( 对于EVA模块,CAP123; 对于EVB模块, CAP456),6.11 捕获单元结构14引脚CAP1、CAP2和CAP4、
6、CAP5是功能复用的,也是正交编码脉冲电路(QEP)的输入引脚。所有的输入和内部时钟同步,为了使跳变被捕获,输入必须在当前电平保持当前状态两个时钟周期。 6.11 捕获单元结构15(6) 用户可指定所检测的电平跳变信号 ( 上升沿检测、下降沿检测或两者都检测 )。 (7) 3个可屏蔽的中断标志位。 每个标志位对应于一个捕获单元。 (EVA和EVB共6个)6.11 捕获单元结构16捕获单元使能后,捕获单元不停地检测捕获输入引脚的跳变。当检测到一个设定的转换时,通用定时器计数寄存器的值被捕获并存储在相应的2级深度FIFO堆栈中。6.11 捕获单元结构176.12.1 捕获控制寄存器 捕获单元的操作
7、由四个16位用户可读写控制寄存器即捕获控制寄存器CAPCONAB和捕获FIFO状态寄存器CAPFIFOA/B 控制。因为捕获电路的时间基准是由通用定时器12或34提供的,所以定时器是捕获单元的基础。 181. 捕获控制寄存器CAPCONx(x=A,B) (1) 捕获控制寄存器A(CAPCONA)地址:7420h CAPCONA各位的定义如下: 6.12.1 捕获控制寄存器 196.12.1 捕获控制寄存器 20位15 CAPRES。捕获单元复位,只能写,读为0。 向位15写0将清除所有的捕获和QEP寄存器。但是,使能捕获功能时不需要向位15写1。 0 所有捕获单元和正交编码脉冲电路的寄存器清0
8、 1 无动作位14-13 CAP12EN。捕获单元1和2的控制位。 00 禁止捕获单元1和2,FIF0堆栈保持原内容 01 使能捕获单元1和2 10 保留 11 保留6.12.1 捕获控制寄存器 21位12 CAP3EN。捕获单元3使能位。 0 禁止捕获单元3,其FlFO堆栈保持原内容 1 使能捕获单元3位11 保留位。位10 CAP3TSEL。捕获单元3的通用定时器选择位。 0 选择通用定时器2 1 选择通用定时器1位9 CAP2TSEL。捕获单元1和2的通用定时器选择位。 0 选择通用定时器2 1 选择通用定时器1位8 CAP3TOADC。捕获单元3事件启动ADC转换位:22 0 无操作
9、1 当CAP3INT标志位被置位时,启动ADC位7-6 CAP1EDGE。捕获单元1的边沿检测控制位。 00 无检测 01 检测上升沿 I0 检测下降沿 11 上升沿、下降沿均检测位5-4 CAP2EDGE。捕获单元2的边沿检测控制位。 00 无检测 01 检测上升沿 10 检测下降沿23 11 上升沿、下降沿均检测位3-2 CAP3EDGE。捕获单元3的边沿检测控制位。 00 无检测 01 检测上升沿 10 检测下降沿 11 上升沿、下降沿均检测位1-0 保留位(2) 捕获控制寄存器B(CAPCONB), 映射地址:7520h。 CAPCONB与CAPCONA各位的意义相同。2425捕获FI
10、FO状态寄存器CAPFIFOx中包括捕获单元的3个FIFO堆栈的状态位。1. 捕获 FIFO状态寄存器A(CAPFIFOA)地址7422h,Capture FIFO Status Register A(CAPFIFOA)各位的定义如图6-49所示。6.12.2 捕获状态寄存器 26位1514 保留位。位1312 CAP3FlFO。捕获单元3的FlFO状态位 00 空 01 有一个输入 10 有两个输入 11 有两个输入并又捕获到一个,第一个输入已丢 失。位1110 CAP2FlFO。捕获单元2的FlFO状态位 00 空 01 有一个输入 27 10 有两个输入 11 有两个输入并又捕获到一个,
11、第一个输入已丢 失。位98 CAP1FlFO。捕获单元1的FlFO状态位 00 空 01 有一个输入 10 有两个输入 11 有两个输入并又捕获到一个,第一个输入已丢 失。位70 保留位6.12.2 捕获状态寄存器 282. 捕获 FIFO状态寄存器B(CAPFIFOB)地址7522h。 Capture FIFO Status Register B(CAPFIFOB)各位的定义如图6-50所示。6.12.2 捕获状态寄存器 296.12.3 捕获单元FIFO堆栈FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,与普通存储器的区别是没有外部读写地址线,特点是
12、顺序写入数据,顺序读出数据。数据地址由内部读写指针自动加1完成。不像普通存储器那样由地址线决定读取或写入某个指定的地址。当捕获单元捕获到输入引脚指定的电平变化时,就会将定时器计数器的值保存到FIFO堆栈中。306.12.3 捕获单元FIFO堆栈FIFO的宽度是FIFO一次读写操作的数据位。FIFO的深度是FIFO可以存储多少个N位的数据(如果宽度为N)。例如一个8位的FIFO,若深度为8,它可以存储8个8位的数据。在没有使用FIFO堆栈时,如果有数据需要CPU处理,有一个数据CPU就要读取一次。如果有8个数据,CPU就要读取8次。当使用8级深度的FIFO堆栈时,有一个数据就将数据放入堆栈中。新
13、的数据到来时,之前的数据都往栈顶移动一个位置。新的数据始终放在栈底。当堆栈放满8个数据时,再通知CPU来读取。316.12.3 捕获单元FIFO堆栈F2812的事件管理器EVA和EVB的每个捕获单元都有一个2级深度FIFO堆栈。如图6-51所示。EVA的捕获单元1的顶层堆栈由CAP1FIFO组成,底层堆栈由CAP1FBOT组成。捕获单元2的顶层堆栈由CAP2FIFO组成,底层堆栈由CAP2FBOT组成。捕获单元3的顶层堆栈由CAP3FIFO组成,底层堆栈由CAP3FBOT组成。326.12.3 捕获单元FIFO堆栈EVB的捕获单元4的顶层堆栈由CAP4FIFO组成,底层堆栈由CAP4FBOT组
14、成。EVB的捕获单元5的顶层堆栈由CAP5FIFO组成,底层堆栈由CAP5FBOT组成。EVB的捕获单元6的顶层堆栈由CAP6FIFO组成,底层堆栈由CAP6FBOT组成。336.12.3 捕获单元FIFO堆栈每个捕获单元有一个2级深度FIFO堆栈。如图所示。顶部寄存器(存旧值) CAPxFIFO底部寄存器(存新值)CAPxFBOT2级深度FIFO堆栈示意图出 进 346.13.1 捕获单元操作当捕获输入引脚发生跳变时,捕获单元将该时刻时基的通用定时器计数寄存器TxCNT( x= 1,2,3,4)的值装入相应的FIFO堆栈中,可以装入两个值。第三个值装入时,会将第一个值挤出堆栈。FIFO堆栈的
15、状态可以从捕获 FIFO状态寄存器 CAPFIFOAB 中得知。35捕获单元的FIFO堆栈是2级深度FIFO先进先出的堆栈,顶层堆栈包括CAP1FIFO、CAP2FIFO和CAP3FIFO( 对于 EVA 模块),CAP4FIFO、CAP5FIFO和CAP6FIFO( 对于EVB 模块 );底层堆栈包括CAP1FBOT、CAP2FBOT和CAP3FBOT( 对于 EVA 模块),CAP4FBOT、CAP5FBOT和CAP6FBOT(对于 EVB 模块)。6.13.1 捕获单元操作36FIFO栈的顶层寄存器是只读寄存器,它总是存放相应捕获单元捕获到的旧计数值。对捕获单元FIFO栈的读访问总是读取
16、栈中旧的计数值。当FIFO栈的顶层寄存器中的旧计数值被读取时,栈底层寄存器中的新计数值(如果有)将被压入顶层寄存器中。6.13.1 捕获单元操作37(1) 第一次捕获:此时堆栈应该为空。当捕获单元的输入引脚出现指定的跳变时,选定的通用定时器计数寄存器的值就会被捕获。捕获单元将捕获到的计数寄存器的值写入空栈的顶层寄存器CAPxFIFO中。对EVA模块:x = 1,2,3;对EVB模块:x = 4,5,6。6.13.1 捕获单元操作38与此同时,FIFO状态寄存器CAPFIFOA/B相应的状态位 CAPxFIFO 被置成(01),表明已有一个值压入栈。如果在下一次捕获前对FIFO堆栈顶层寄存器进行
17、了读访问,则状态位CAPxFIFO 被复位为(00),FIFO堆栈又成为空栈。6.13.1 捕获单元操作39(2) 第二次捕获:如果在FIFO堆栈顶层寄存器被读取之前产生了第二次捕获,即在CAPxFIFO中还有数据时发生第二次捕获,则新捕获的计数寄存器的值送至栈底层寄存器CAPxFBOT 。( 对EVA:x=1,2,3;对EVB:x=4,5,6 )。与此同时,相应的状态位CAPxFIFO 被置成(10),表明现在堆栈中有2个数据。6.13.1 捕获单元操作40若在再一次捕获发生前,对FIFO堆栈顶层寄存器CAPxFIFO进行读访问,则顶层寄存器中的旧值被读出,底层寄存器中的新值被压入顶层寄存器
18、,并且相应的状态位CAPxFIFO将被置成(01),又变成只有一个值压入栈。若此时再发生捕获,FIFO堆栈不会溢出。6.13.1 捕获单元操作41第二次捕获会将寄存器相应的捕获中断标志位置1。如果中断没有被屏蔽,则会产生一个中断请求。6.13.1 捕获单元操作42(3) 第三次捕获:如果发生了二次捕获已经存储了2个数据而又未进行顶层寄存器CAPxFIFO的读访问,此时若再发生一次捕获,则位于堆栈顶层寄存器中的旧值将被挤出丢弃,而堆栈底层寄存器中的值将被压入顶层寄存器中。新捕获的通用定时器时基计数寄存器的值将被保存到底层寄存器中,并且状态位CAPxFIFO被置成(11),以表明已经丢弃了一个或多
19、个捕获计数器值。6.13.1 捕获单元操作43第三次捕获会将寄存器相应的捕获中断标志位置1。如果中断没有被屏蔽,则会产生一个中断请求。6.13.1 捕获单元操作如果在第三次捕获之前已经读取了第1次捕获的旧值,那么底层寄存器的值被送入顶层寄存器,新的值被写入底层寄存器,状态位为10。与第二次捕获的情况相同。之后的捕获是不断重复上述过程。44当捕获单元捕获到输入引脚的跳变时,除了将时基计数寄存器TxCNT的值装入相应的FIFO堆栈外,还将产生捕获中断事件。对于EVA模块,在EVA中断标志寄存器C(EVAIFRC)中的CAPxINT FLAG(x = 1,2,3)上置1。对于EVB模块,在EVB中断
20、标志寄存器C(EVBIFRC)中的CAPxINT FLAG(x = 4,5,6)上置1。6.13.1 捕获单元操作45若是捕获单元3或捕获单元6产生了捕获事件,还可以启动AD转换。6.13.1 捕获单元操作46每当将捕获到的新计数值存入到 FIFO堆栈时,CAPxFIFO 的相应状态位将被调整以反映 FIFO 堆栈的新状态。从捕获单元输入引脚处发生变化到所选通用定时器的计数值被锁存之间的延时需要两个 时钟周期。所有捕获单元寄存器在复位时被清0。6.13.1 捕获单元操作471捕获单元的时基选择对于EVA,捕获单元3有不同于捕获单元1和2的时基选择位。这允许在同一时刻,一个通用定时器给捕获单元1
21、和2用,另一个通用定时器给捕获单元3用。对于EVB,捕获单元6有自己的时基选择位。捕获操作不会影响任何通用定时器的操作以及与通用定时器相关的比较操作产生PWM输出。6.13.1 捕获单元操作482捕获单元的设置为使捕获单元能正常工作,应完成以下寄存器配置:(1) 初始化捕获状态寄存器CAPFIFOAB,并将相应的状态位清0;(2)设置通用定时器的控制寄存器TxCON,确定计数模式和分频系数,使能定时器。 6.13.1 捕获单元操作49(3)设置相应的捕获控制寄存器CAPCONx(x = A,B),确定上升沿、下降沿还是两个边沿都检测。选择通用定时器以及使能捕获单元。(4)如有必要,设置相关的通
22、用定时器比较寄存器或者通用定时器周期寄存器 。6.13.1 捕获单元操作506.13.2 捕获中断与捕获单元相关的中断只有捕获中断。事件管理器的每一个捕获单元都对应于一个捕获中断。EVA的捕获单元1有捕获中断CAP1INT,捕获单元2有捕获中断CAP2INT,捕获单元3有捕获中断CAP3INT。EVB的捕获单元4有捕获中断CAP4INT。捕获单元5有捕获中断CAP5INT。捕获单元6有捕获中断CAP6INT。516.13.2 捕获中断当一个捕获单元执行了一次捕获,且捕获单元FIFO中至少有一个捕获到的计数值时(CAPxFIFO 状态位不为0),则相应的中断标志位置1。如果该中断没有被屏蔽,则会
23、产生一个外设中断请求信号。52如下述指令如果写01到CAPxFIFO中,则事件管理器认为捕获单元FIFO堆栈中已经有一个捕获事件,随后每当捕获单元FIFO堆栈中获得一个新的捕获值时,均会产生一个捕获中断。EvaRegs.CAPFIFO.bit.CAP1FIFO =1;EvaRegs.CAPFIFO.bit.CAP2FIFO =1;EvaRegs.CAPFIFO.bit.CAP3FIFO =1;如果使能了对应的捕获中断,则会产生一个外设中断请求信号。如果使用了捕获中断,则可在中断服务程序中读取捕获到的计数值。6.13.2 捕获中断53如果没有使用中断,也可以通过查询中断标志位和FIFO堆栈的状态
24、位来确定是否发生捕获事件。如果已发生捕获事件则可以从相应的捕获单元的FIFO堆栈中读取捕获到的计数值。6.13.2 捕获中断541. 捕获单元可用于测量捕获引脚上输入信号的两个相邻跳变间的时间间隔,因此可以测量输入信号的频率或周期。捕获单元总结552. 每个事件管理器都有三个捕获单元,每个捕获单元都有相应的引脚 CAPx。 (对于EVA,x=1,2,3;对于EVB,x=4,5,6)每个捕获单元可以选择定时器作为计数时钟。例如对事件管理器A的捕获单元,CAP1、CAP2、CAP3可以选择通用定时器1或2作为计数时钟,但CAP1、CAP2必须使用相同的计数时钟。捕获单元总结563. 捕获单元有两种
25、寄存器一个是捕获控制寄存器( CAPCONAB ),另一个是捕获 FIFO 状态寄存器( CAPFIFOAB )。捕获单元总结574. 每个捕获单元都有一个2级先入先出(FIFO)堆栈,分为顶层堆栈( CAPxFIFO )和底层堆栈( CAPxFBOT )。5. 当输入引脚上的信号发生指定跳变时,捕获单元自动地将定时器计数寄存器值( TxCNT )保存到捕获单元FIFO堆栈中。(对于EVA,x=1,2;对于EVB,x=3,4)捕获单元总结58顶层堆栈保存旧的计数值,底层堆栈保存新的计数值。当对堆栈进行读操作时,总是读取顶层堆栈的旧值,而同时底层堆栈值自动地压入顶层堆栈。所以读操作可以清空堆栈。
26、捕获单元总结59例6.10 用捕获单元的 CAP2对脉冲的上升沿进行捕获,计算引脚CAP2波形的周期T。6.13.3 捕获单元应用举例引脚CAP2波形60#include DSP281x_Device.hunsigned int temp;void CAP2init( ) /EvaRegs.GPTCONA.all=0 x0000; EvaRegs.CAP2FBOT=0 x0000; EvaRegs.CAP2FIFO=0 x0000; EvaRegs.CAPFIFO.all=0 x0000; EvaRegs.T1PR=0 xffff; EvaRegs.T1CNT=0 x0000; EvaRegs
27、.CAPCON.all=0 x2210; /使能捕获单元1和2,捕获单元2检测上升沿,选择定时器1为时基 EvaRegs.T1CON.all = 0 x174c; /通用定时器1为连续递增,128分频,使能定时器,禁止定时器比较操作 6.13.3 捕获单元应用举例61void IOinit() EALLOW; GpioMuxRegs.GPAMUX.bit.CAP2Q2_GPIOA9 =1; /使能 CAP2 引脚,选择外设功能 EDIS;6.13.3 捕获单元应用举例62main(void) InitSysCtrl(); /系统控制初始化 DINT; /禁止全局中断 IER = 0 x0000
28、; IFR = 0 x0000; IOinit(); CAP2init(); EvaRegs.T1CNT=0 x0000; EvaRegs.CAPCON.bit.CAP12EN=1; /捕获单元1和2使能 while (1) if(EvaRegs.CAPFIFO.bit.CAP2FIFO)=2) temp=EvaRegs.CAP2FBOT-EvaRegs.CAP2FIFO;/得到两个上升沿之间定时器1计数器的计数值,可以求得引脚CAP2波形的周期T。 6.13.3 捕获单元应用举例63设高速外设时钟HSPCLK=75MHz,通用定时器1计数时钟为128/75=1.7us。则temp1.7us=
29、周期T。6.13.3 捕获单元应用举例2022/7/256465缝隙 光传感器光源(LED)旋转轴传感器A传感器BTT/4光电编码器是一种通过光电转换将输出轴上的角位移量转换成脉冲或数字量的传感器,是目前应用较多的传感器。一般的光电编码器主要由光栅盘和光电检测装置组成。光栅盘是在一定直径的圆盘上等分地开通若干个长方形孔。在伺服系统中,由于光电码盘与电动机同轴,电动机旋转时,光栅盘与电动机同轴旋转,经发光二极管等电子元件组成的检测装置检测输出若干脉冲信号,其原理如图6-53所示。传感器A传感器B光电码盘6.14 正交编码脉冲电路(QEP)66缝隙 光传感器光源(LED)旋转轴传感器A传感器BTT
30、/4在电机的转子上安装一个光电编码器。光电编码器主要有光栅盘和光电检测装置组成。光栅盘是在一定直径的圆盘上等分地开通若干个长方形孔。当电动机旋转时,光栅盘与电动机同轴旋转,当LED光被遮挡时,传感器A就输出逻辑0,即低电平;当LED光透过光栅的孔被传感器接收时,传感器A就输出逻辑1,即高电平。传感器A传感器B光电码盘6.14 正交编码脉冲电路(QEP)67缝隙 光传感器光源(LED)旋转轴传感器A传感器BTT/4光电编码器的光电检测部分就能够输出连续的脉冲信号,通过计算传感器A每秒输出的脉冲数就知道当前电机的转速。传感器A传感器B光电码盘6.14 正交编码脉冲电路(QEP)686.14 正交编
31、码脉冲电路(QEP)正交编码脉冲(QEP: Quadrature Encoder Pulse )是两个频率相同且正交(相位差90度即1/4个周期)的脉冲。在许多运动控制系统中,需要正反两个方向的运动,为了对位置、速度进行控制,必须检测出当前运动的方向、位置、速度等。EVA、EVB各有一个QEP电路。内部有4倍频电路。696.14.1 增量式光电编码盘的结构与工作原理不像绝对式光电编码盘那样测量转动体的绝对位置,是专门测量转动角位移的累计量。6.14 正交编码脉冲电路(QEP)光电编码器70十字滑块联轴器连接电机与编码器6.14 正交编码脉冲电路(QEP)71光电编码器6.14 正交编码脉冲电路
32、(QEP)726.14.1 增量式光电编码盘的结构与工作原理增量式编码器轴旋转时,有相应脉冲输出,需要判向电路和计数器来判别旋转方向和脉冲数量,具体原理如下图所示。在一个码盘上开出三条码道,由内向外分别为A、B、C,如图中(a)所示。6.14 正交编码脉冲电路(QEP)736.14 正交编码脉冲电路(QEP)增量式光电编码器原理图7475增量式光电编码盘的结构与工作原理在A、B码道的码盘上,等距离地开有透光缝隙,两条码道上相邻的缝隙互相错开半个缝宽,其展开图如图中(b)所示。第三条码道C开出一个缝隙,用来表示码盘的零位。在码盘的两侧分别安装光源和光敏元件,当码盘转动时,光源经过透光和不透光区域
33、,相应地每条码道将有一系列脉冲从光敏元件输出。76码道上有多少缝隙,就会有多少个脉冲输出。输出的脉冲信号如图中(c)所示。这样通过两组脉冲的相位(上升沿的前后顺序)可以判断出运动的方向,通过记录脉冲的个数可以确定具体的位置,通过记录确定周期的脉冲个数可以计算出运动的速度。增量式光电编码盘的结构与工作原理77DSP控制器内置正交编码脉冲电路,可自动识别由外部引脚上输入的正交编码脉冲的方向,记录脉冲的个数。为运动控制、伺服控制的实现提供了方便。书P215图6-57是正交编码脉冲电路结构图。 6.14 正交编码脉冲电路(QEP)7879806.14.2 DSP中正交编码脉冲电路实现1. 正交编码脉冲
34、电路引脚正交编码脉冲电路的输入引脚 CAP1_QEP1和CAP2_QEP2(对于 EVA 模块)或CAP4_QEP3和CAP5_QEP4(对于 EVB 模块)与捕获单元1,2和捕获单元4,5的输入引脚复用。816.14.2 DSP中正交编码脉冲电路实现正交编码脉冲电路引脚对于EVA由捕获控制寄存器 CAPCONA/B 的D14D13即捕获单元1和2的使能位CAP12PN位设置。对于EVB由捕获控制寄存器 CAPCONB 的D14D13即捕获单元4和5的使能位CAP45EN位设置。可以使能QEP电路,禁止捕获单元。 这样就把相应的输入引脚分配给正交编码器脉冲QEP电路。82正交编码脉冲电路中的检
35、测逻辑模块将自动分辨出正交编码脉冲的方向;两个正交编码输入脉冲的两个边沿均被QEP电路计数,因此由QEP电路产生的时钟频率是每个输入序列的4倍。将这个时钟送至通用定时器2或通用定时器4的输入时钟。6.14.2 DSP中正交编码脉冲电路实现832 . 正交编码脉冲电路时间基准通用定时器必须设置成定向增/减计数模式。对于EVA设置通用定时器控制寄存器T2COM的D5D4为11,对于EVB设置通用定时器控制寄存器T4COM的D5D4为11。选择时钟由QEP电路产生。6.14.2 DSP中正交编码脉冲电路实现843. 正交编码脉冲电路的计数通用定时器2或4总是从计数寄存器中的当前值开始计数;可以在使能
36、QEP工作模式前将所需的值装载到所选通用定时器的计数寄存器中。6.14.2 DSP中正交编码脉冲电路实现853. 正交编码脉冲电路的计数当正交编码脉冲电路的时钟作为通用定时器的时钟源时,选定的通用定时器将忽略定时器方向输入引脚TDIRA/B和定时器时钟输入引脚TCLKINA/B。时钟信号和计数方向的信号均来自于QEP解码逻辑电路。QEP解码逻辑电路可以通过输入的正交编码脉冲产生定时器计数的时钟脉冲和计数方向。6.14.2 DSP中正交编码脉冲电路实现861. 正交编码脉冲包括两个脉冲序列,是频率变化相差四分之一周期,即90 的脉冲序列。当电动机轴上的光电编码器产生正交编码脉冲时,通过检测两个序
37、列中哪个序列领先,就可测出电动机的转向。角位置和速度可以通过脉冲计数和脉冲的频率测出。6.14.3 正交编码脉冲解码876.14.3 正交编码脉冲解码正交编码脉冲和解码的定时器时钟与计数方向886.14.3 正交编码脉冲解码正交编码脉冲是两个频率可变,相位相差90的脉冲序列。QEP电路工作时,引脚CAP1_QEP1和引脚CAP2_QEP2输入两路正交编码脉冲。QEP电路对这两路正交编码脉冲的上升沿和下降沿都进行计数如图6-59的QEPCLK信号所示。当检测到引脚CAP1_QEP1和引脚CAP2_QEP2的上升沿或下降沿时,都会产生一个时钟脉冲,这个时钟脉冲将提供给定时器2进行计数。896.14
38、.3 正交编码脉冲解码QEP解码逻辑电路为定时器2提供的时钟频率是每个输入脉冲序列的4倍。该时钟连接到定时器2的时钟输入端。由于QEP电路对输入脉冲的上升沿和下降沿均进行计数,因此QEP电路对输入脉冲进行了4倍频。906.14.3 正交编码脉冲解码2. 将正交光电码盘的两路脉冲信号接至输入引脚CAP1_QEP1和CAP2_QEP2(对于EVA模块)或CAP4_QEP3和CAP5_QEP4(对于EVB模块)上。正交编码脉冲电路的方向检测逻辑通过确定哪个引脚的脉冲序列领先,可以产生方向信号DIR作为通用定时器2或定时器4的计数方向输入。916.14.3 正交编码脉冲解码如果引脚CAP1_QEP1输
39、入的脉冲序列在相位上比引脚CAP2_QEP2输入的脉冲序列超前90度,QEP电路输出的DIR信号为高电平,定时器2进行增计数。如果引脚CAP2_QEP2输入的脉冲序列在相位上比引脚CAP1_QEP1输入的脉冲序列超前90度,此时QEP电路输出的DIR信号为低电平,定时器2进行减计数。926.14.3 正交编码脉冲解码如果CAP1_QEP1输入是先导序列(EVA模块),通用定时器2进行增计数。如果CAP2_QEP2输入是先导序列(EVA模块),通用定时器2进行减计数。 如果CAP4_QEP3输入是先导序列(EVB模块),通用定时器2进行增计数。如果CAP5_QEP4输入是先导序列(EVB模块),
40、通用定时器2进行减计数。936.14.3 正交编码脉冲解码3. 全局通用定时器控制寄存器GPTCONA/B的TxSTAT(x = 2,4)位反映了定时器2/定时器4的计数方向。定时器2/定时器4是递增还是递减可以判断光电编码器是正转还是反转。通用定时器计数寄存器TxCNT(x = 2,4)的值反映了光电编码器对应的位置与速度。946.14.3 正交编码脉冲解码4. 当选择QEP电路为时钟源时,通用定时器忽略计数方向引脚TDIRA/B和外部时钟引脚TCLKINA/B的信号。956.14.4 正交编码脉冲电路寄存器设置EVA/EVB中启动正交编码脉冲电路需作以下设置。1. 如果需要,为通用定时器2
41、/定时器4的计数寄存器、周期寄存器和比较寄存器载入设定值。2. 配置T2CON/T4CON寄存器,将通用定时器2/定时器4设置成定向增/减计数模式,并以正交编码脉冲电路作为时钟源并使能选用的通用定时器2/4。966.14.4 正交编码脉冲电路寄存器设置3. 设置捕获控制寄存器CAPCONA/B以使能QEP电路。 用正交编码器脉冲(QEP)电路的时钟作为定时器2/定时器4的时钟。4. 通用定时器的周期、下溢、上溢和比较中断标志是根据相应的匹配产生的。如果中断没有被屏蔽,则将产生外设中断请求信号。976.14.5 正交信号决定光电编码器旋转方向如果A相脉冲比B相脉冲超前,通用定时器增计数,则光电编
42、码器正转。如果B相脉冲比A相脉冲超前,通用定时器减计数,则光电编码器反转。通过两组脉冲的相位即上升沿的前后顺序可以判断出电动机运动的方向。如何通过正交信号来决定位置?Ch. ACh. B(00)(11)(10)(01)(A,B) =00011110QEP解码状态机增计数减计数Position resolution is /4 degrees.996.14.4 光电编码器与正交编码脉冲电路连接光电编码器包含被称为零信号或者参考信号的第三个输出通道。这个通道每旋转一圈输出一个单脉冲。可以使用这个单脉冲精确计算某个参考位置。在绝大多数光电编码器中,这个信号称为Z轴或者索引。光电编码器与正交编码(QE
43、P)电路连接如图6-61所示。Ch.A和Ch.B表示通过传感器A和传感器B产生的脉冲信号。正向编码连接 (EVA)Ch. ACh. BCAP1_QEP1CAP2_QEP2 QEP 解码 逻辑通用定时器2QEPCLKQEPDIR.IndexCAP3_QEPI1QEPIEQEPIQUAL限定器1016.14.7 正交编码脉冲(QEP)电路应用举例例6.11:设光电编码器的光电码盘的光栅共有1024格。当电机旋转一周时,通过传感器A和传感器B将输出2路相位相差90的1024个正交脉冲。1026.14.7 正交编码脉冲(QEP)电路应用举例 假设传感器A和传感器B的信号分别接到2个引脚 CAP1_QEP1和CAP2_QEP2,采用事件管理器EVA。由于正交编码(QEP)电路检测每一路信号的上升沿和下降沿,对引脚 CAP1_QEP1和CAP2_QEP2的信号进行了4倍频。因
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 员工转正工作总结
- 2026年全国卷新高考三角函数综合易错突破卷含解析
- 2026年新高考全国卷化学种群群落基础卷(含解析)
- 2026年新课标全国卷二数学压轴题冲刺卷(含解析)
- 电压互感器培训课件
- 高频电感器包封工安全宣传模拟考核试卷含答案
- 矿山安全防护工岗前安全生产规范考核试卷含答案
- 井下采煤工冲突管理模拟考核试卷含答案
- 彩画作文物修复师安全知识竞赛强化考核试卷含答案
- 生活垃圾堆肥操作工标准化竞赛考核试卷含答案
- 当代中国经济教学知识考试复习题库(附答案)
- 2025-2026学年统编版道德与法治八年级下册期中模拟检测试题(含答案)
- 2025年人寿保险公司基本法
- 市县医院骨科、麻醉科加速康复实施管理专家共识解读课件
- 2021北京市中考数学真题及答案解析
- DB15∕T 3360-2024 饲草大麦裹包青贮技术规程
- 窗边的小豆豆(完整正式版)
- 进出口业务操作第四版章安平课后参考答案
- 国开作业《公共关系学》实训项目1:公关三要素分析(六选一)参考552
- 2024年4月自考00228环境与资源保护法学试题及答案
- MOOC 森林植物识别技术 -珍稀植物识别-南京森林警察学院 中国大学慕课答案
评论
0/150
提交评论