6.1’C54x的主机接口(HPI)6.2’C54x的定时器6.3’C54x的中断系统第6章TMS320C54x片内外设、接口及应用DSP原理及应用6.1’C54x的主机接口(P163)主机与HPI的通信,可通过专用地址和数据寄存器、HPI控制寄存器以及使用外部数据与接口控制信号来实现。DSP原理及应用HPI接口有两种工作方式:共用寻址模式(SAM方式)在这种方式下,主机和’C54x都能寻址HPI存储器。如果是异步工作的主机寻址,可在HPI内部重新得到同步。当’C54x与主机的周期发生冲突时,则主机具有寻址优先权,’C54x将等待一个周期。主机寻址模式(HOM方式)在HOM方式下,HPI存储器只能让主机寻址,而’C54x则处于复位状态或IDLE2空转状态。主机可以访问HPIRAM,而’C54x则配置为最小功耗。1.HPI与主机的连接’C54x通过HPI与主机设备连接,除了8位HPI数据总线以及控制信号线外,不需要附加其他的逻辑电路。数据线地址读/写数据口地址锁存使能准备中断主机HD0~HD7HCNTL0HCNTL0HBILHR/WHDS1HDS2HCSHASHRDYHINTTMS320C54x8例:1.HPI与主机的连接HPI与主机连接的信号名称和功能:HD0~HD7:当不传送数据(HDSx或HCS=1)或EMU1/OFF=0(切断所有输出)时,HD7~HD0均处于高阻状态。双向并行三态数据总线,与主机数据总线相连。片选信号,与主机地址线或控制线相连。HCS:作为HPI的使能输入端,在每次寻址期间必须为低电平,而两次寻址之间也可以停留在低电平。1.HPI与主机的连接HPI与主机连接的信号名称和功能:地址选通信号,与主机地址锁存使能(ALE)或地址选通引脚相连,也可以不使用。HAS:若主机的地址和数据线是分开的,则HAS接高电平,此时由HDS1、HDS2或HCS中最迟的下降沿锁存HBIL、HCNTL0/1和HR/W信号。若主机的地址和数据是一条多路总线,HAS则与主机的ALE引脚相连。在HAS的下降沿,锁存HBIL、HCNTIL0/1和HR/W信号;1.HPI与主机的连接HPI与主机连接的信号名称和功能:字节识别信号,与主机地址线或控制线连接,用于识别主机传送来的是第几字节。HBIL:高电平表示HPI已准备好,可执行一次数据传送;低电平表示HPI正忙于完成当前事务。当HBIL=0时,为第1字节;当HBIL=1时,为第2字节。第1个字节是高字节还是低字节,由HPIC寄存器中的BOB位决定。HRDY:HPI准备好端,与主机异步准备好线相连。1.HPI与主机的连接主机控制信号,与主机地址线或控制线连接,用来选择主机所要寻址的寄存器。HCNTL0、HCNTL1:HCNTL0HCNTL1功能说明00主机可以读/写HPIC寄存器。01主机可以读/写HPID寄存器。每读1次,HPIA事后增1;每写1次,HPIA事先增1。10主机可以读/写HPIA寄存器。这个寄存器指向HPI存储器。11主机可以读/写HPID寄存器。HPIA寄存器不受影响1.HPI与主机的连接数据选通信号,与主机读选通和写选通或数据选通线连接,用于在主机寻址HPI周期内,控制HPI数据的传送。HDS1、HDS2:HDS1和HDS2信号与HCS一道产生内部选通信号。HPI中断输出信号,与主机中断输入相连。受HPIC寄存器中的HINT位控制。HINT:当’C54x复位时为高电平,EMU1/OFF低电平时为高阻状态。1.HPI与主机的连接读/写信号。与主机读/写选通、地址线或多路地址数据线连接,用于控制主机对HPI的读写操作。HR/W:当该信号为高电平时,表示主机要读HPI;当该信号为低电平时,表示主机要写HPI。若主机没有读/写信号,可用一根地址线代替。DSP原理及应用2.控制寄存器HPICHPI控制寄存器为16位寄存器,用来控制HPI的操作。其高8位与低8位完全相同,提供了4个控制位,分别为BOB、SMOD、DSPINT和HINT位。15~121110987~43210XHINTDSIPNTSMODBOBXHINTDSIPNTSMODBOB2.控制寄存器HPIC控制位主机状态’C54x状态功能说明HINT读/写读/写’C54x向主机发出中断位。这一位决定HINT输出端的状态,用来对主机发出中断。复位后,HINT=0,外部HINT输出端无效(高电平)。该位只能由’C54x置位,也只能由主机将其复位。当外部HINT引脚无效(高电平)时,’C54x和主机读HINT位为0;当HINT为有效(低电平)时,读为1BOB读/写——字节选择位。若BOB=1,第1个字节为低字节,否则,第1个字节为高字节。BOB位影响数据和地址的传送。只有主机可以修改这一位,’C54x对它既不能读也不能写。DSPINT写——主机向’C54x发出中断位,只能由主机写入,且主机和’C54x都不能读它。当主机对该位写1时,就对’C54x产生一次中断。该位总是读成0。当主机写HPIC时,高、低字节必须写入相同的值。SMOD读读/写寻址方式选择位。若SMOD=0,选择HOM方式,’C54x都不能寻址HPI的RAM区。’C54x复位期间,SMOD=0;复位后,SMOD=1。该位只能由’C54x修正,’C54x和主机都可以读它。DSP原理及应用6.2’C54x的定时器6.2.1定时器结构1.定时器的组成定时器主要由定时寄存器TIM、定时周期寄存器PRD、定时控制寄存器TCR及相应的逻辑控制电路组成。寄存器TIM、PRD和TCR是存储器映像寄存器,地址分别为0024H、0025H和0026H。1.定时器的组成(P161)主定时模块预定标模块周期寄存器PRD定时寄存器TIM借位13预定标计数器PSC借位预定标分频系数TDDR12111&SRESETTRBCLKOUTTSSTINTTOUTDSP原理及应用1.定时器的组成定时周期寄存器PRD用来存放定时时间。地址:0025H定时寄存器TIM16位减1计数器。地址:0024H定时控制寄存器TCR存放定时器的控制位和状态位。地址:0026H。逻辑控制电路用来控制定时器协调工作。DSP原理及应用1.定时器的组成逻辑控制电路:由三个或门和一个与门组成。复位SRESET和TRB:①通过或门1、3控制PRD的加载计数;②通过或门1、2控制PSC的加载计数。停止控制位TSS:通过与门屏蔽CLKOUT信号来控制定时器的启动。TINT——外部定时中断,定时时间到发中断;TOUT——定时输出,输出定时波形。DSP原理及应用2.定时器工作原理主定时模块包括PRD和TIM,由预定标模块定时,预定标模块每输出一个时钟,TIM减1。当TIM减到0后,TIM装入PRD的值。当设备复位(SRESET=1)或者定时器复位(TRB=1)时,PRD的内容将装入TIM中。主定时模块的定时中断(TINT)信号输出至CPU以及定时器的输出引脚TOUT。DSP原理及应用2.定时器工作原理预定标模块包括TCR中的TDDR和PSC位,由CPU时钟定时,每来一个CPU时钟,PSC值减1。当PSC减至0、设备复位或定时器复位时,TDDR的内容复制到PSC中。4位预定标计数器PSC和16位定时计数器TIM组成一个20位计数器,定时器每接收一个CPU时钟减1,当计数器减到0时,产生定时中断(TINT),同时PSC和TIM重新装入预设的值。DSP原理及应用2.定时器工作原理定时器的工作过程:①定时分频系数和周期数分别装入TCD和PRC寄存器中;②每来一个定时脉冲CLKOUT,计数器PSC减1;③当PSC减至0时,PSC产生借位信号;④在PSC的借位信号作用下,TIM减1计数,同时将分频系数装入PSC,重新计数;⑤当TIM减到0时,定时时间到,由借位产生定时中断TINT和定时输出TOUT,并将PRD中的时间常数重新装入TIM。3.定时控制寄存器TCR16位存储器映像寄存器,包含定时器的控制位和状态位。15~1211109~6543~0TDR0026h保留SoftFreePSCTRBTSSTDDR保留位软件调试控制位预定标计数器重新加载位停止状态位分频系数DSP原理及应用3.定时控制寄存器TCRTDDR:定时器分频系数,用来对CLKOUT进行分频,以改变定时周期。最大预定标值为16,最小预定标值为1。当PSC减到0后,以TDDR中的数加载PSC。TSS:定时器停止状态位,用于停止或启动定时器复位时,TSS位清0,定时器立即定时。TSS=0,定时器启动工作;TSS=1,定时器停止工作。DSP原理及应用3.定时控制寄存器TCRTRB:定时器重新加载位,用来复位片内定时器。当TRB置1时,以PRD中的数加载TIM,以及以TDDR中的值加载PSC。TRB总是读成0。PSC:定时器预定标计数器,其标定范围为1~16。当PSC减到0后,TDDR位域中的数加载到PSC,TIM减1。DSP原理及应用3.定时控制寄存器TCRFree、Soft:软件调试控制位。Free和Soft位结合使用,用来控制调试程序断点操作情况下的定时器工作状态。SoftFree定时器状态00定时器立即停止工作10当计数器减至0时停止工作X1定时器继续工作保留:读成0。DSP原理及应用4.定时器的初始化定时器的基准工作脉冲由CLKOUT提供,每来一个脉冲预定标计数器PSC减1,当PSC减至0时,下一个脉冲到来,PSC产生借位。借位信号分别控制定时计数器TIM减1和或门2的输出,重新将TDDR的内容加载预定标计数器PSC,从而完成定时工作的一个基本周期。定时器的定时时间为:定时周期=CLKOUT×(TDDR+1)×(PRD+1)DSP原理及应用4.定时器的初始化定时器初始化步骤如下:①TCR的TSS位置1,关闭定时器,停止定时;②装载PRD值;③重新装入TCR,初始化TDDR,设置TSS=0和TRB=1,重装载定时器周期。启动定时器。设置定时器中断方法(INTM=1)如下:将IFR中的TINT置1,以清除尚未处理完的定时器中断;将IMR中的TINT置1,启动定时器中断。将INTM置0,启动全部中断。DSP原理及应用定时器自动装载定时。TSS=0:启动定时器;TRB=1:自动装载;TDDR=Ah:分频系数10;soft=1,free=0:计数器减至0时,停止工作;TCR=0AAAH。定时周期:0101H;关闭定时器中断:IFR=0008H;开放定时器中断:IMR=0008H。STM#0010H,TCR;TSS=0关闭定时器STM#0101H,PRD;加载周期寄存器(PRD)STM#0AAAH,TCR;装入定时器控制字,启动定时器STM#0080H,IFR;消除尚未处理完的定时器中断STM#0080H,IMR;开放定时器中断RSBXINTM;开放中断DSP原理及应用6.2.2’C54x定时器/计数器的应用1.方波发生器(1)定时器初始化例如:用TMS320VC5402实现方波发生器。假设时钟频率为4MHz,在XF端输出占空比为50%的方波,方波的周期由片上定时器确定,采用中断方法实现。关闭定时器,TCR中的TSS=1;加载PRD。设定定时中断周期,每中断一次,输出端电平取反一次;启动定时器,初始化TDDR,TSS=0,TRB=1。DSP原理及应用(2)中断初始化中断允许寄存器IFR中的定时中断位TINT=1,清除未处理完的定时中断;中断屏蔽寄存器IMR中的定时屏蔽位TINT=1,开放定时中断;状态控制寄存器ST1中的中断标志位INTM=0,开放全部中断。DSP原理及应用(3)方波发生器程序清单周期为8ms的方波发生器,定时中断周期为4ms,每中断一次,输出端电平取一次反。;abc1.asm;定时器0寄存器地址TIM0.set0024HPRD0.set0025HTCR0.set0026H;K_TCR0:设置