主机接口定时器串行口中断系统第7章TMS320C54x片内外设、接口及应用概述为满足数据处理的需要,C54x器件除提供功能强大的CPU、改进的哈佛结构的总线、片内大容量的高速存储器和大范围的寻址,还提供了丰富的片内外围电路。•通用I/O引脚(BIO和XF)•定时器•时钟发生器•主机接口HPI•软件可编程的等待状态发生器•可编程的分区转换逻辑•直接存储器访问DMA控制器•串行口---标准同步串口、带缓冲的串口BSP、多通道缓冲串口McBSP和时分复用串口TDM不同型号的C54x芯片具有不同的外设数量和配置:片内外设的存储器映射寄存器片内外设的控制与操作是通过存取存储器映射的控制和数据寄存器实现;这些寄存器可用来与外设交换数据,CPU通过访问这些寄存器来操作和控制外设;置位或清零控制寄存器中的相应位可以使能、禁止、初始化或动态配置外设;片内外设的寄存器映射到数据存储空间的第0页20H~5FH地址中。P43控制,控制主机接口和TOUT1GPIOSR3DH通用I/O状态,主机接口作通用I/O时有用CLKMD58H时钟模式PCR039H+0EH串口0管脚控制PCR149H+0EH串口1管脚控制主机接口HPI是C54x芯片具有的一种8位或16位的并行接口部件1.概述•主机和DSP可独立地对HPI接口操作;•主机和DSP握手可通过中断方式来完成;•主机可通过HPI直接访问CPU的存储空间,包括存储器映像寄存器;•主机还可通过HPI接口装载DSP应用程序、接收DSP运行结果或诊断DSP运行状态,为DSP芯片的接口开发提供了一种极为方便的途径。特点:•主要用于DSP与其他主设备或主处理器(主机-主控者)进行通信(7~0)地址HPI控制寄存器图2HPI接口框图2.结构1000H-17FFHDARAM(1)共用访问模式(SAM)主机和C54x都能访问HPI存储器。如果C54x与主机的周期发生冲突,主机具有访问优先权,C54x需等待一个周期。3.HPI的工作方式(2)仅主机访问模式(HOM)只有主机可以访问HPI存储器,C54x则处于复位状态或内/外所有时钟都停止工作的空闲状态。此方式下,HPI支持更快的主机访问速度,与C54x的时钟速度无关。HPI具有两种工作方式:~HD7HCNTL0(地址)HBIL(第1/第2字节)进行采样由内部选通或HAS地址读/写WHR/HDS1HDS2HCS数据选通HINT地址锁存使能(如果已经使用)内部选通(控制传输)中断28),(HAS经使用地址和读写信号如果已采样READHRDY图3HPI与主机设备之间的连接框图4.HPI的基本功能——HPI地址寄存器,主机可直接访问HPIC002CHHPI控制寄存器,可由主机或C54X直接访问,包含HPI操作的控制和状态位。HPID——HPI数据寄存器,只能由主机访问,包含从HPI存储器读出的数据或要写到HPI存储器的数据。的区别HPI-8是8位增强HPI接口是用于连接C54x芯片与主机设备或主机处理器的并行接口主机与C54x芯片通过C54x的片内RAM交换数据。C5402、C5410带有HPI-8,C5420为HPI-16。标准8位HPI增强型8位HPI只允许访问片内RAM指定的2k字允许对整个片内RAM进行访问在HOM方式,仅能主机寻址HPI存储器主机与C54x都能访问HPI存储器在HOM方式,允许主机的异步访问主机访问总是与C54x的时钟同步表2标准HPI与HPI-8的区别•C54xDSP的定时器是一个带有4位预分频器的16位定时电路(减法计数器),可获得较大范围的定时器频率。•定时器计数器每来一个时钟周期自动减1,当计数器减至0时产生一个定时中断。•通过编程设置特定的状态,可使定时器停止、恢复运行、复位或禁止。•VC5402有两个片内定时器。一、定时器概述C54x的定时器是一个可软件编程的计数器,主要包括3个存储器映射寄存器:1.定时器设定寄存器TIM---16位减法计数器,映射到数据存储空间的0024H单元。复位或定时器中断(TINT)时,TIM内装入PRD寄存器的值(定时时间),并进行自动减1操作。2.定时器周期寄存器PRD---16位的存储器映像寄存器,位于数据存储空间的0025H单元,用来存放定时时间常数。复位或TINT中断时,将定时时间装入TIM。3.定时器控制寄存器TCR---16位的存储器映像寄存器,位于数据存储空间的0026H单元,用来存储定时器的控制位和状态位,包括定时器分频系数TDDR、预标定计数器PSC、控制位TRB、TSS等。二、定时器寄存器各位的意义描述三、定时器控制寄存器15~1211109~6543~0保留位SoftFreePSCTRBTSSTDDR位名称功能15-12保留读出时总为011SOFT和FREE结合使用控制定时器操作10FREEFREESOFT定时操作00定时器立即停止工作01计数器TIM减为0时停止工作1x定时器继续运行,PRD重新装入TIM9-6PSC预标定计数器(减1计数器),每个CLKOUT作减1操作,减为0时,TDDR值装入PSC,TIM减1。5TRB定时器复位,此位置1,将PRD、TDDR分别装入TIM和PSC4TSS置0启动定时器;置1停止定时器工作,切断时钟输入,减少DSP功耗。3-0TDDR定时器分频系数,最大值为16,最小值为1。按此分频系数对CLKOUT进行分频,以改变定时周期。当PSC减到0时,将此值装入PSC定时器结构图周期寄存器(PRD)TRB预定标分频系数(TDDR)定时寄存器(TIM)借位CLKOUTTSS预定标计数器(RSC)借位TINTTOUT2SRESETC54xDSP的定时器由主定时器模块(PRD和TIM)、预置模块(TCR中的TDDR和PSC等)及相应控制电路组成。三、定时器工作过程周期寄存器(PRD)TRB预定标分频系数(TDDR)定时寄存器(TIM)借位CLKOUTTSS预定标计数器(RSC)借位TINTTOUT2SRESET定时器由CPU提供时钟,受定时设定寄存器TIM、周期寄存器PRD和控制寄存器TCR控制。周期寄存器(PRD)TRB预定标分频系数(TDDR)定时寄存器(TIM)借位CLKOUTTSS预定标计数器(RSC)借位TINTTOUT2SRESET工作原理:当CLKOUT信号时钟沿到来时触发减1计数器PSC,直到PSC为0,然后用TDDR重新装入PSC;同时用分频时钟对TIM作减1计数,直到TIM为0。周期寄存器(PRD)TRB预定标分频系数(TDDR)定时寄存器(TIM)借位CLKOUTTSS预定标计数器(RSC)借位TINTTOUT2SRESETTIM减为0时,CPU发出定时器中断信号TINT,同时在TOUT管脚输出一个脉冲,脉宽与主时钟一致,可为外围电路提供时钟;同时PSC和TIM重新装入预设值,重复下去至系统或定时器复位。周期寄存器(PRD)TRB预定标分频系数(TDDR)定时寄存器(TIM)借位CLKOUTTSS预定标计数器(RSC)借位TINTTOUT2SRESET当系统复位或定时器单独复位时,TIM和PRD被置成最大值FFFFH,TDDR清0,TSS清0启动定时器。并将TDDR的内容重新加载到PSC,PRD的值重新加载到TIM。提供,每来一个脉冲预定标计数器PSC减1,当PSC减至0时,下一个脉冲到来,PSC产生借位。借位信号分别控制定时计数器TIM减1和或门2的输出,重新将TDDR的内容加载预定标计数器PSC,从而完成定时工作的一个基本周期。定时器的定时时间为:定时周期=CLKOUT×(TDDR+1)×(PRD+1)四、定时器初始化使用定时器前,首先应设好定时器的工作方式和计数值,并设置好中断,即对其初始化。具体步骤如下:(1)TSS=1,停止定时器;(2)加载PRD值;(3)重新设置TCR的值,包括初始化TDDR、TRB位置1(TIM为0后,加载定时器时间常数)和TSS位清0(启动定时器)。如果要使用定时器中断TINT(ST1的中断模式INTM=1的情况下),要做如下设置:(1)设置中断标志寄存器(IFR)中的TINT=1,清除定时器中断;(2)设置中断屏蔽寄存器(IMR)中的TINT=1,激活定时器中断;(3)设置STI中的INTM=0,激活全部中断。五、定时器中断当定时器计数器减少到0时,会产生一个定时器中断TINT,其频率为:)1()1(1PRDTDDRtTINTcrate式中,tc为CPU时钟周期(即CLKOUT的周期)复位时,TIM和PRD被设置为最大值(0FFFFH),TCR中的TDDR置0,定时器可以通过启动定时控制寄存器(TCR)完成以下操作:●设定定时器的工作方式;●设定预定标计数器中的当前数值;●启动或停止定时器;●重新装载定时器;●设置定时器的分频值。四、定时器初始化【例1】定时器自动装载定时。TSS=0:启动定时器;TRB=1:自动装载;TDDR=Ah:分频系数10soft=1,free=0:计数器减至0时,停止工作;TCR=0AAAH。定时周期:0101H;关闭定时器中断:IFR=0008H;开放定时器中断:IMR=0008H。STM#0000H,SWWSRSTM#0010H,TCRSTM#0101H,PRDSTM#0AAAH,TCRSTM#0080H,IFRSTM#0080H,IMRR