1、6.0 DSP6.0 DSP片内外设概述片内外设概述 优点:优点:(1)片内外设访问速度快。片内外设访问速度快。(2)可以简化电路板的设计。如将可以简化电路板的设计。如将A/D转换、转换、D/A转换、定转换、定时器集成在片内。时器集成在片内。(3)提供一些必须的特殊功能。如提供一些必须的特殊功能。如JTAG口、等待状态发生口、等待状态发生器等。器等。DSP的片内外设是集成在芯片内部的外部设备,的片内外设是集成在芯片内部的外部设备,主要用于与主要用于与DSP外部器件进行数据的交换和通信。外部器件进行数据的交换和通信。CPU核对片内外设的访问控制是通过对相应的核对片内外设的访问控制是通过对相应的控
2、制寄存器控制寄存器的的读写来完成的。读写来完成的。片内外设分为两大类:片内外设分为两大类:片内外设片内外设:串行接口、定时器、通用串行接口、定时器、通用I/O引脚和标准主机接引脚和标准主机接口口(HPI8)等。等。增强型外设增强型外设:多通道缓冲串口多通道缓冲串口(McBSP)、主机接口、主机接口(8位增强位增强HPI8、16位增强位增强HPI16)、直接存储器访问(、直接存储器访问(DMA)控控制器等。制器等。控制寄存器控制寄存器:被映射到数据存储空间的第被映射到数据存储空间的第0页页(地址地址20h5Fh)。表。表6-1-p163,164。6.1 时钟发生器时钟发生器 C5402内部有一个
3、时钟发生器,可为内部有一个时钟发生器,可为C5402提供时钟,包提供时钟,包括内部振荡器和锁相环电路括内部振荡器和锁相环电路PLL两部分。两部分。时钟信号的产生的两种方式:时钟信号的产生的两种方式:一是使用一是使用外部时钟源外部时钟源的时钟信号,将外部时钟信号的时钟信号,将外部时钟信号直接加到直接加到DSP芯片的芯片的X2/CLKIN引脚,而引脚,而X1引脚悬空。引脚悬空。二是利用二是利用DSP芯片芯片内部的振荡器内部的振荡器构成时钟电路,在构成时钟电路,在芯片的芯片的Xl和和X2/CLKIN引脚之间接入一个晶体,用于启动内引脚之间接入一个晶体,用于启动内部振荡器。部振荡器。外接时钟源外接时钟
4、源使用内部振荡器使用内部振荡器C5402的PLL是软件可编程的,通过对16bit的时钟模式寄存器CLKMD进行控制,PLL可以配置为如下两种时钟模式:1、倍频模式(PLL)输入时钟乘以0.2515共31个系数中的一个。2、分频模式(DIV)输入时钟除以2或4。CLKMD各位的定义各位的定义CLKMD寄存器各位的含义寄存器各位的含义PLL的乘法系数的乘法系数CLKMD各位的定义各位的定义STM#0 xF7FF,CLKMD ;CLKMD=1111011111111111B乘系数乘系数=1,即直通模式,即直通模式 锁相环PLL也可以通过硬件配置硬件配置,通过设定芯片的3个时钟模式引脚CLKMD13的
5、电平,可以选择片内振荡时钟与外部参考时钟的倍频。注意:改变注意:改变PLL倍频,必须先将倍频,必须先将PLL切换到切换到DIV方式,方式,然后再切换到新的倍频。基本步骤:然后再切换到新的倍频。基本步骤:1、复位、复位PLLNDIV,选择选择DIV方式。方式。2、检测、检测PLL状态,即读状态,即读PLLSTATUS位,若该位为位,若该位为0,表明已经切,表明已经切换到换到DIV方式。方式。3、根据要切换的倍频,选择、根据要切换的倍频,选择PLLNDIV,PLLDIV,PLLMUL 的组合。的组合。4、根据所需要的牵引时间,设置、根据所需要的牵引时间,设置PLLCOUNT的当前值。的当前值。5、
6、设定、设定CLKMD寄存器。寄存器。STM#0,CLKMD ;software setting of DSP clockSTM#0,CLKMD ;(to divider mode before setting)TstStatu1:LDM CLKMD,A AND#01b,A ;poll STATUS bit BC TstStatu1,ANEQ STM#0 xF7FF,CLKMD ;set C5402 DSP clock to 10MHz1、复位、复位PLLNDIV,选择选择DIV方式。方式。2、检测、检测PLL状态,即读状态,即读PLLSTATUS位,若该位为位,若该位为0,表,表明已经切换到明
7、已经切换到DIV方式。方式。3、根据要切换的倍频,选择、根据要切换的倍频,选择PLLNDIV,PLLDIV,PLLMUL 的组合。的组合。4、根据所需要的牵引时间,设置、根据所需要的牵引时间,设置PLLCOUNT的当前值。的当前值。5、设定、设定CLKMD寄存器。寄存器。6.2 可编程定时器可编程定时器 6.2.1 定时器的结构及特点定时器的结构及特点 C5402内部有定时器内部有定时器0和定时器和定时器1两个定时器。结构一样两个定时器。结构一样.每个定时器有每个定时器有3个控制寄存器,都是存储器映像寄存器个控制寄存器,都是存储器映像寄存器TIM定时器寄存器定时器寄存器:是减是减1计数器,可加
8、载周期寄存器计数器,可加载周期寄存器PRD的的值,并随计数减少。值,并随计数减少。PRD定时器周期寄存器定时器周期寄存器:PRD中存放定时器的周期计数值,中存放定时器的周期计数值,提供提供TIM重载用。重载用。TCR定时器控制寄存器定时器控制寄存器:TCR包含定时器的控制和状态位,包含定时器的控制和状态位,控制定时器的工作过程。控制定时器的工作过程。定时器的工作原理周期寄存器周期寄存器周期寄存器周期寄存器PRDPRD定时寄存器定时寄存器定时寄存器定时寄存器TIM(TIM(1616位位位位)借借借借位位位位oror3 3预定标计数器预定标计数器预定标计数器预定标计数器PSC(PSC(4 4位位位
9、位)借借借借位位位位预定标分频系数预定标分频系数预定标分频系数预定标分频系数TDDRTDDRoror2 2oror1 11 1&SRESETSRESETTRBTRBCLKOUTCLKOUTTSSTSSTINTTINTTOUTTOUT0024H0025H0026H主定时模块主定时模块预标定模块预标定模块复位复位定时中断定时中断主要特点:主要特点:(1)定时器是一个减计数器。定时器是一个减计数器。(2)由由16位计数器和位计数器和4位预分频计数器组成。位预分频计数器组成。16位计数器的位计数器的触发脉冲由预分频计数器提供,预分频计数器由触发脉冲由预分频计数器提供,预分频计数器由CPU工作工作时钟决
10、定。时钟决定。(3)有复位功能。有复位功能。(4)可以选择调试断点时定时器的工作方式。可以选择调试断点时定时器的工作方式。15 1211109 6543 0TCR0026h保留保留 Soft Free PSC TRB TSS TDDR 保留位保留位软件调试控制位软件调试控制位 预定标预定标计数器计数器 重新重新加载位加载位 停止停止状态位状态位 分分 频频系系 数数 6.2.2 定时器的控制寄存器定时器的控制寄存器TCRSoft Free 定时器状态定时器状态 0 0 定时器立即停止工作 1 0 当计数器减至0时停止工作 X 1 定时器继续工作 保留位:总是读为保留位:总是读为0 0;软件调试
11、控制位:控制软件调试控制位:控制调试断点调试断点时定时器的工作;时定时器的工作;PSC(96位位):定时器预定标计数器。当定时器预定标计数器。当PSC中的数值减中的数值减到到0后,后,TIM减减1,TDDR中的数加载到中的数加载到PSC;TRB(5位位):定时器重新加载控制位。复位片内定时器。当定时器重新加载控制位。复位片内定时器。当TRB置位时,置位时,TIM重新装载重新装载PRD的值,的值,PSC重新装载重新装载TDDR中的值。中的值。TSS(4位位):定时器停止位,定时器停止位,TSS=0 定时器开始工作,定时器开始工作,TSS=1 定时器停止定时器停止TDDR(30位位):当当PSC减
12、为减为0时,时,TDDR中的值被装载到中的值被装载到PSC中中6.2.3 定时器的操作过程定时器的操作过程 PSC由由CPU提供时钟提供时钟,每个,每个CPU时钟信号将使时钟信号将使PSC减减1。PSC 减到减到0时,向主定时模块时,向主定时模块TIM输出时钟,输出时钟,TDDR的内容重新加载到的内容重新加载到PSC。TIM由预定标器由预定标器PSC提供时钟,每个来自预定标块的输出时钟使提供时钟,每个来自预定标块的输出时钟使TIM减减1。TIM 减到减到0时,向时,向CPU输出定时器中断信号(输出定时器中断信号(TINT),并同时输出到),并同时输出到定时器输出引脚(定时器输出引脚(TOUT)
13、,),PRD中的内容重新加载到中的内容重新加载到TIM。定时器的中断周期定时器的中断周期定时器的工作过程周期寄存器周期寄存器周期寄存器周期寄存器PRDPRD定时寄存器定时寄存器定时寄存器定时寄存器TIM(TIM(1616位位位位)借借借借位位位位oror3 3预定标计数器预定标计数器预定标计数器预定标计数器PSC(PSC(4 4位位位位)借借借借位位位位预定标分频系数预定标分频系数预定标分频系数预定标分频系数TDDRTDDRoror2 2oror1 11 1&SRESETSRESETTRBTRBCLKOUTCLKOUTTSSTSSTINTTINTTOUTTOUT0024H0025H0026H
14、定时分频系数和周期数分别装入定时分频系数和周期数分别装入TCR的的TDDR位域和位域和PRD寄存器;寄存器;定时器的工作过程周期寄存器周期寄存器周期寄存器周期寄存器PRDPRD定时寄存器定时寄存器定时寄存器定时寄存器TIM(TIM(1616位位位位)借借借借位位位位oror3 3预定标计数器预定标计数器预定标计数器预定标计数器PSC(PSC(4 4位位位位)借借借借位位位位预定标分频系数预定标分频系数预定标分频系数预定标分频系数TDDRTDDRoror2 2oror1 11 1&SRESETSRESETTRBTRBCLKOUTCLKOUTTSSTSSTINTTINTTOUTTOUT0024H0
15、025H0026H 每来一个时钟,每来一个时钟,PSCPSC减减1 1;PSC PSC减到减到0 0时,产生借位信号;时,产生借位信号;定时器的工作过程周期寄存器周期寄存器周期寄存器周期寄存器PRDPRD定时寄存器定时寄存器定时寄存器定时寄存器TIM(TIM(1616位位位位)借借借借位位位位oror3 3预定标计数器预定标计数器预定标计数器预定标计数器PSC(PSC(4 4位位位位)借借借借位位位位预定标分频系数预定标分频系数预定标分频系数预定标分频系数TDDRTDDRoror2 2oror1 11 1&SRESETSRESETTRBTRBCLKOUTCLKOUTTSSTSSTINTTINT
16、TOUTTOUT0024H0025H0026H 借位信号使得借位信号使得TIMTIM减减1 1,同时,同时TDDRTDDR再次装载再次装载PSCPSC,重新计数;,重新计数;定时器的工作过程周期寄存器周期寄存器周期寄存器周期寄存器PRDPRD定时寄存器定时寄存器定时寄存器定时寄存器TIM(TIM(1616位位位位)借借借借位位位位oror3 3预定标计数器预定标计数器预定标计数器预定标计数器PSC(PSC(4 4位位位位)借借借借位位位位预定标分频系数预定标分频系数预定标分频系数预定标分频系数TDDRTDDRoror2 2oror1 11 1&SRESETSRESETTRBTRBCLKOUTC
17、LKOUTTSSTSSTINTTINTTOUTTOUT0024H0025H0026H TIM TIM减到减到0 0时,定时时间到,产生借位信号时,定时时间到,产生借位信号定时中断和定时中断和TOUT;定时器的工作过程周期寄存器周期寄存器周期寄存器周期寄存器PRDPRD定时寄存器定时寄存器定时寄存器定时寄存器TIM(TIM(1616位位位位)借借借借位位位位oror3 3预定标计数器预定标计数器预定标计数器预定标计数器PSC(PSC(4 4位位位位)借借借借位位位位预定标分频系数预定标分频系数预定标分频系数预定标分频系数TDDRTDDRoror2 2oror1 11 1&SRESETSRESET
18、TRBTRBCLKOUTCLKOUTTSSTSSTINTTINTTOUTTOUT0024H0025H0026H 周期寄存器周期寄存器PRD再次装入再次装入TIM。初始化定时器:初始化定时器:(1)将将TCR中的中的TSS位置位置1,停止定时器停止定时器。(2)加载加载PRD。(3)重新加载重新加载TCR以以初始化初始化TDDR。(4)重新启动定时器。重新启动定时器。TRB位为位为1,TSS位为位为0,以重载定,以重载定时器周期值,使能定时器。时器周期值,使能定时器。使能定时器中断使能定时器中断(假定假定INTM=1):(1)将将IFR中的中的TINT位置位置1,清除尚未处理完,清除尚未处理完(
19、挂起挂起)的定时的定时器中断。器中断。(2)将将IMR中的中的TINT位置位置1,使能定时器中断。,使能定时器中断。(3)可以将可以将ST1中的中的INTM位清位清0,使能全局中断。,使能全局中断。【例例6.1】利用定时器利用定时器Timer0在在XF引脚产生周期为引脚产生周期为1s的方的方波。波。分析:分析:设设f=100MHz,定时最大值是:定时最大值是:10(ms),要输出要输出1s的方波,的方波,1和和0分别为分别为500ms.可定时可定时5ms,再在中断程序中加个,再在中断程序中加个100计数器,计数器,定时器周期定时器周期=10ns(1+9)(1+49999)=5ms。Counte
20、rSet.set 100-1 ;定义计数次数;定义计数次数PERIOD .set 49999 ;定义计数周期;定义计数周期 .asg AR1,Counter ;AR1做计数指针,重新命名以便识别做计数指针,重新命名以便识别 STM#CounterSet,Counter ;设计数器初值;设计数器初值 STM#0000000000010000B,TCR;停止计数器;停止计数器 STM#PERIOD,TIM ;给;给TIM设定初值设定初值49999 STM#PERIOD,PRD ;PRD与与TIM一样一样 STM#0000001001101001B,TCR;启动定时器;启动定时器STM#0008H,
21、IFR ;清除尚未处理的定时器中断清除尚未处理的定时器中断 STM#0008H,IMR ;开开TIME0的中断的中断 RSBX INTM ;开总中断开总中断End:NOP B End15 1211109 6543 0TCR0026h保留保留 Soft Free PSC TRB TSS TDDR PSHM ST0Counter=0Counter=Counterset*AR2=1XF=0*AR2=0XF=1*AR2=1POPM ST0RETECounter-YNYN中断服务程序:中断服务程序:中断服务程序:中断服务程序:TINT0_ISRTINT0_ISR:PSHM ST0 ;保护;保护ST0,因
22、要改变,因要改变TC BANZ Next,*Counter-;计数器不为;计数器不为0,计数器减,计数器减1,退出中断,退出中断 ;计数器为;计数器为0,重新加载重新加载Counter,;根据当前;根据当前XF的状态,分别到的状态,分别到setXF或或ResetXFSTM#CounterSet,Counter ;BITF *AR2,#1 BC ResetXF,TC setXF:SSBX XF ST#1,*AR2 B NextResetXF:RSBX XF ST#0,*AR2Next:POPM ST0 RETE endPSHM ST0Counter=0Counter=Counterset*AR2
23、=1XF=0*AR2=0XF=1*AR2=1POPM ST0RETECounter-YNYN6.3 串串 行行 口口串口分为串口分为4种:种:标准同步串口标准同步串口(SP)带缓冲的串行接口带缓冲的串行接口(BSP)时分复用时分复用(TDM)串行口串行口 多通道缓冲串口多通道缓冲串口(McBSP)配置配置:芯片不同串口配置也不尽相同,芯片不同串口配置也不尽相同,C5402具有两个多通道具有两个多通道缓冲串口缓冲串口(McBSP)访问访问:串行接口一般通过中断来实现与核心串行接口一般通过中断来实现与核心CPU的同步。的同步。功能功能:串行接口可以用来与串行外部器件相连,如编码解码器、串行接口可以
24、用来与串行外部器件相连,如编码解码器、串行串行A/D或或D/A以及其他串行设备。以及其他串行设备。6.3.1 标准同步串行口标准同步串行口(SP)1.结构结构:2个存储器映像寄存器用于传送数据个存储器映像寄存器用于传送数据 接收数据寄存器接收数据寄存器(DRR)发送数据寄存器发送数据寄存器(DXR)一个串口控制寄存器一个串口控制寄存器(SPC)每个串行口的发送和接收部分都有独立的每个串行口的发送和接收部分都有独立的时钟时钟、帧同步脉冲帧同步脉冲以以及串行移位寄存器。及串行移位寄存器。接收移位寄存器接收移位寄存器(RSR)、发送移位寄存器发送移位寄存器(XSR)特点:特点:(1)发送与接收的帧同
25、步和时钟同步信号完全独立。发送与接收的帧同步和时钟同步信号完全独立。(2)发送和接收部分可独立复位。发送和接收部分可独立复位。(3)串口的工作时钟可来源于片外或片内。串口的工作时钟可来源于片外或片内。(4)独立的发送和接收数据线。独立的发送和接收数据线。(5)具有数据返回方式,便于测试。具有数据返回方式,便于测试。(6)在程序调试时,工作方式可选。在程序调试时,工作方式可选。(7)可以以查询和中断两种方式工作。可以以查询和中断两种方式工作。2.串行口控制寄存器串行口控制寄存器(SPC)串行口的操作是由串行口控制寄存器串行口的操作是由串行口控制寄存器(SPC)决定的。决定的。SPC寄存器的控制位
26、及功能如表寄存器的控制位及功能如表6-4所示所示P170-171。15141312111098SPCHFreeSoftRSRFULL XSREMPTY XRDYRRDYIN1IN0仿真仿真控制控制仿真仿真控制控制接收移位接收移位寄存器寄存器满满发送移位发送移位寄存器寄存器空空发送发送准备准备好好接收接收准备准备好好发送发送时钟时钟状态状态接收接收时钟时钟状态状态76543210SPCLRRSTXRSTTXMMCMFSMFODLBRes接收接收复位复位发送发送复位复位发送发送模式模式时钟时钟选择模式选择模式帧帧同步同步模式模式数据数据格式格式数据数据回送回送模式模式保留保留要复位和重新配置串行口
27、,需要对要复位和重新配置串行口,需要对SPC寄存器写两次。寄存器写两次。第一次,对第一次,对SPC寄存器的寄存器的RRST和和XRST位写位写0,其余位,其余位写入所希望的配置。写入所希望的配置。第二次,对第二次,对SPC寄存器的寄存器的RRST和和XRST位写位写1,其余位,其余位是所希望的配置,再一道重新写一次。是所希望的配置,再一道重新写一次。3.操作过程操作过程:发送数据时,数写到发送数据时,数写到DXRXSR DX引脚输出。引脚输出。在发送在发送期间,期间,DXR中的数据复制到中的数据复制到XSR后,串行口控制寄存器后,串行口控制寄存器(SPC)中的发送准备好中的发送准备好(XRDY
28、)位由位由0变为变为1,随后产生一个串,随后产生一个串行口发送中断行口发送中断(XINT)信号,通知信号,通知CPU可以对可以对DXR重新加载。重新加载。接收数据时,来自接收数据时,来自DR引脚的数据引脚的数据 RSR DRR,CPU从从DRR中读出数据。当中读出数据。当RSR的数据复制到的数据复制到DRR后,后,SPC中的中的接收数据准备好接收数据准备好(RRDY)位由位由0变为变为l,随后产生一个串行口接,随后产生一个串行口接收中断收中断(RINT)信号,通知信号,通知CPU可以从可以从DRR中读取数据。中读取数据。串行口是双缓冲的,发送和接收都是自动完成,用户只需串行口是双缓冲的,发送和
29、接收都是自动完成,用户只需检测检测RRDY或或XRDY位来判断可否继续发送或接收数据。位来判断可否继续发送或接收数据。串行口传送数据的一种连接串行口传送数据的一种连接 4.实例实例:(操作以中断的方式完成操作以中断的方式完成)P170,SPC的定义的定义1)串口的初始化串口的初始化(1)复位,并将复位,并将0 x0038写入写入SPC,初始化串口。,初始化串口。(2)将将0 x00C0h写入写入IFR,清除任何挂起的串行接口中断。,清除任何挂起的串行接口中断。(3)将将0 x00C0h和和IMR求逻辑或运算,使能串行接口中断。求逻辑或运算,使能串行接口中断。(4)清除清除ST1的的INTM位,
30、使能全局中断。位,使能全局中断。(5)将将0 x00F8h写入写入SPC,启动串行接口。,启动串行接口。(6)将第一个数据写入将第一个数据写入DXR。2)串口中断服务程序串口中断服务程序(1)保护现场。保护现场。(2)读读DRR或写或写DXR。(3)恢复现场。恢复现场。(4)用用RETE从中断子程序返回。从中断子程序返回。6.3.2 带缓冲的串行接口带缓冲的串行接口(BSP)结构和特点结构和特点:缓冲串行口在标准同步串行口的基础上增加了一个自动缓缓冲串行口在标准同步串行口的基础上增加了一个自动缓冲单元冲单元(ABU),并以,并以CLKOUT频率计时。频率计时。ABU利用独立于利用独立于CPU的
31、专用总线,让串行口直接读的专用总线,让串行口直接读/写写C54x内部存储器。这样可以使串行口处理事务的开销最省,内部存储器。这样可以使串行口处理事务的开销最省,并能达到较快的数据率。并能达到较快的数据率。BSP有两种工作方式:非缓冲方式和自动缓冲方式。有两种工作方式:非缓冲方式和自动缓冲方式。ABU具有自身的循环寻址寄存器组,每个都与地址产生单具有自身的循环寻址寄存器组,每个都与地址产生单元相关。发送和接收缓冲存储器位于一个指定的元相关。发送和接收缓冲存储器位于一个指定的C54x DSP内内部存储器的部存储器的2K字块中。该块可作为通用的存储器,但却是唯字块中。该块可作为通用的存储器,但却是唯
32、一的自动缓冲能使用的存储块。一的自动缓冲能使用的存储块。2.缓冲串行口的控制寄存器缓冲串行口的控制寄存器(6个个)数据接收寄存器数据接收寄存器(BDRR)数据发送寄存器数据发送寄存器(BDXR)控制寄存器控制寄存器(BSPC):控制扩展寄存器控制扩展寄存器(BSPCE)数据接收移位寄存器数据接收移位寄存器(BRSR)数据发送移位寄存器数据发送移位寄存器(BXSR)缓冲串行口在标准串行口的基础上新增了许多功能,这些特殊功能受控制扩展寄存器(BSPCE)控制,其各位的定义如表65所示。缓冲工作模式的操作过程缓冲工作模式的操作过程其功能主要由自动缓冲单元其功能主要由自动缓冲单元ABU来完成来完成 自
33、动缓冲单元自动缓冲单元(ABU)可独立于可独立于CPU自动完成自动完成控制串行口与固定控制串行口与固定缓冲内存区中的数据交换缓冲内存区中的数据交换。它包括。它包括 地址发送寄存器地址发送寄存器(AXR)块长度发送寄存器块长度发送寄存器(BKX)地址接收寄存器地址接收寄存器(ARR)块长度接收寄存器块长度接收寄存器(BKR)串行口控制寄存器串行口控制寄存器(BSPCE)当发送或接收缓冲区的一半或全部满或空时,当发送或接收缓冲区的一半或全部满或空时,ABU才产生才产生CPU的中断,避免了的中断,避免了CPU直接介入每一次传输带来的资源消耗。直接介入每一次传输带来的资源消耗。综上所述,自动缓冲过程可
34、归纳为:综上所述,自动缓冲过程可归纳为:ABU完成对缓冲存储器的存取。完成对缓冲存储器的存取。工作过程中地址寄存器自动增加,直至缓冲区的底部。到工作过程中地址寄存器自动增加,直至缓冲区的底部。到底部后,地址寄存器内容恢复到缓冲存储器区顶部。底部后,地址寄存器内容恢复到缓冲存储器区顶部。如果数据到了缓冲区的一半或底部,就会产生中断,并更如果数据到了缓冲区的一半或底部,就会产生中断,并更新新BSPEC中的中的XH/RH,以表明那一部分数据已经被发送或,以表明那一部分数据已经被发送或接收。接收。如果选择禁止自动缓冲功能,当数据过半或到达缓冲区底如果选择禁止自动缓冲功能,当数据过半或到达缓冲区底部时,
35、部时,ABU会自动停止缓冲功能。会自动停止缓冲功能。BSP发送发送初始化 把0008H写到BSPCE寄存器,复位和初始化串口;把0020H写到IFR,清除挂起的串口中断 把0020H与IMR进行或操作,使能串口中断 清除ST1的INTM位,使能全局中断 把1400H写到BSPCE寄存器,初始化ABU的发送器 把缓冲区开始地址写到AXR 把缓冲长度写到BKX 把0048H写到BSPCE,开始串口操作BSP接收初始化接收初始化 把0000H写到BSPCE寄存器,复位和初始化串口;把0010H写到IFR,清除挂起的串口中断 把0010H与IMR进行或操作,使能串口中断 清除ST1的INTM位,使能全
36、局中断 把2160H写到BSPCE寄存器,初始化ABU的发送器 把缓冲区开始地址写到ARR 把缓冲长度写到BKR 把0080H写到BSPCE,开始串口操作6.3.3 多通道缓冲串口多通道缓冲串口(McBSP)由缓冲串行口发展而来;在外部通道选择电路的控制下,采用分时方式实现多路缓冲串行通信;与其他C54x器件、编程器或其他串口器件通信;C54家族只有三款具有McBSP5402两个,5410三个,5420六个McBSP特点全双工通信;双缓冲的发送和三缓冲接收数据存储器,支持连续的数据流传送;独立的接收、发送帧和时钟信号;可直接与工业标准的编码器、模拟界面芯片(AICs)、其他串行A/D、D/A器
37、件通信;具有外部变速时钟发生器及内部频率可编程时钟发生器;可以直接利用多种串行协议接口通信;多达128路发送和接收通道;多字长:8,12,16,20,24,32位;可进行律或A律的压缩扩展通信;帧同步和时钟信号的极性可编程;可编程内部时钟和帧发生器。数数据据通通道道控控制制通通道道2.McBSP的结构 一个McBSP串口有7个引脚。DSP核通过片内外设总线访问和控制McBSP的内部控制寄存器和数据接收/发送寄存器,涉及到的寄存器如表68所示。寄存器的子寻址子寻址的工作方式,指的是多路复用技术,可以实现一组寄存器共享存储器中的一个单元。可以使用少量的寄存器映射存储器空间来访问McBSP的20多个
38、寄存器。3.McBSP控制寄存器控制寄存器 McBSP通过两个通过两个16比特串口控制寄存器比特串口控制寄存器1和和2(SPCR1,2)和管脚控制寄存器和管脚控制寄存器(PCR)进行配置,这些寄进行配置,这些寄存器包含了存器包含了McBSP的状态信息和控制信息。的状态信息和控制信息。串行接口接收控制寄存器串行接口接收控制寄存器SPCR1、SPCR2 引脚控制寄存器引脚控制寄存器PCR 接收控制寄存器接收控制寄存器RCR1、RCR2 发送控制寄存器发送控制寄存器XCR1、XCR2 除除SPCR1,2和和PCR之外,之外,McBSP还配置了接收控制还配置了接收控制寄存器寄存器RCR1,2和发送控制
39、寄存器和发送控制寄存器XCR1,2来确定接收和来确定接收和发送操作的参数发送操作的参数。4.McBSP的数据发送和接收的操作流程3个阶段:串口的复位、串口的初始化、发送和接收。串口的复位 芯片复位 引发的串行复位使整个串行口复位,包括接口发送器、接收器、采样率发生器的复位。串行接口的发送器和接收器可以利用串行接口控制寄存器(SPCR1和SPCR2)中的 和 位分别独自复位。串口的初始化串口的初始化(1)设定串行接口控制寄存器设定串行接口控制寄存器SPCR1,2中的中的 如果刚刚复位完毕,不必进行这一步操作。如果刚刚复位完毕,不必进行这一步操作。(2)编程配置特定的编程配置特定的McBSP的寄存
40、器。的寄存器。(3)等待等待2个时钟周期,以保证适当的内部同步。个时钟周期,以保证适当的内部同步。(4)按照写按照写DXR的要求,给出数据。的要求,给出数据。(5)设置设置 ,以使能串行接口。,以使能串行接口。(6)如果要求内部帧同步信号,设置如果要求内部帧同步信号,设置 。(7)等待等待2个时钟周期后,激活接收器和发送器。个时钟周期后,激活接收器和发送器。数据发送和接收的操作数据发送和接收的操作 接收操作是三缓冲的接收操作是三缓冲的 接收数据接收数据数据接收引脚数据接收引脚DR 接收移位寄存器接收移位寄存器RSR1,2 接收缓冲寄存器接收缓冲寄存器RBR1,2 数据接收寄存器数据接收寄存器D
41、RR1,2。发送操作是双缓冲的发送操作是双缓冲的CPU或或DMA将发送数据将发送数据数据发送寄存器数据发送寄存器DXR1,2中中 发送移位寄存器发送移位寄存器XSR1,2;从从DX移出发送数据移出发送数据 5.McBSP串口应用举例McBSP的初始化程序:STM SPCR1,McBSP1_SPSA ;将SPCR1 对应的子地址放到 子地址寄存器SPSA中STM#0000h,McBSP1_SPSD ;将#0000h加载到SPCR1中,使接收中断由帧有效信号触发,;靠右对齐高位添0STM SPCR2,McBSP1_SPSA ;将SPCR2对应的子地址放到 子地址寄存器SPSA中STM 0000h,
42、McBSP1_SPSD ;帧同步发生器复位,发送器复位STM RCR1,McBSP1_SPSA ;将RCR1 对应的子地址放到子地 址寄存器SPSA中STM#0040h,McBSP1_SPSD ;接收帧长度为16位STM RCR2,McBSP1_SPSA ;将RCR2 对应的子地址放到子 地址寄存器SPSA中STM#0040h,McBSP1_SPSD ;接收为单相,每帧16位STM XCR1,McBSP1_SPSA ;将XCR1 对应的子地址放到子 地址寄存器SPSA中STM#0040h,McBSP1_SPSD ;接收每帧16位STM XCR2,McBSP1_SPSA ;将XCR2对应的子地址
43、放到子 地址寄存器SPSA中STM#0040h,McBSP1_SPSD ;发送为单相,每帧16位STM PCR,McBSP1_SPSA ;将PCR对应的子地址放到子地 址寄存器SPSA中STM#000eh,McBSP1_SPSD ;工作于从模式6.4 主机接口主机接口(HPI)主机接口(HPI)是一个并行口,实现与主设备或主处理器的通信;信息通过HPI在c54和主机间交换;主机和C54都可以访问HPI的控制寄存器;外部主机是HPI的主控者,HPI作为一个外设与主机相连;主机通过专用地址和数据寄存器、HPI控制寄存器、外部数据与接口控制信号与HPI通信;类型(类型(3种)种):标准标准8位位HP
44、I8 增强型增强型8位位HPI-8 增强型增强型16位位HPI-16功能:功能:用于主机用于主机(其他其他DSP或单片机或单片机)与与C54x DSP的通信,的通信,通信的主控方为其他的主机。通信的主控方为其他的主机。优点:优点:HPI只需要很少或不需要外部逻辑就能和很多不同的只需要很少或不需要外部逻辑就能和很多不同的 主机设备相连。主机设备相连。6.4.1 标准8位主机接口HPI81.HPI8的特点的特点是一个是一个8位并行口位并行口用于主机用于主机(其他控制器其他控制器)与与C54x DSP的通信,实现的通信,实现主机主机访问访问DSP的内部的内部2K的的DARAM(HPI存储器存储器)。
45、HPI具有两种工作模式:具有两种工作模式:(1)共用访问模式共用访问模式(SAM):主机和:主机和C54x DSP都能访问都能访问HPI存储器。主机具有访问优先权,存储器。主机具有访问优先权,C54x DSP等待一个周等待一个周期。期。(2)仅仅主机访问模式仅仅主机访问模式(HOM):HPI只能由主机寻址,只能由主机寻址,DSP则处于复位或则处于复位或IDLE2空转状态;主机可以访问空转状态;主机可以访问HPI RAM,DSP处于最低功耗配置。处于最低功耗配置。2.主机接口HPI8的结构 主机通过访问HPI的3个寄存器实现对DSP内部RAM的访问。HPIA:地址寄存器。主机可以直接访问该寄存器
46、.HPIC(002Ch):控制寄存器,可以由主机或C54x DSP直接访问,包含了HPI操作的控制和状态位.HPID:数据寄存器,只能由主机直接访向。包含从HPI存储器读出的数据,或者要写到HPI存储器的数据HPI控制逻辑:用于处理HPI与主机之间的接口信号HPI存储器(DARAM):用于C54x DSP与主机之间传送数据3.控制寄存器HPIC HPIC共有4个位用于控制HPI操作,表618。BOB:字节选择位,BOB会影响数据和地址传输。SMOD:寻址方式选择位。DSPINT:主机向C54x DSP发出中断位;HINT:C54x DSP向主机发出中断位。15121110987 43210XH
47、INTDSIPNTSMODBOBXHINTDSIPNTSMODBOBHPIC寄存器各状态位控制位控制位主机状态主机状态 C54xC54x状态状态功功 能能 说说 明明HINTHINT 读读/写写 读读/写写 C54xC54x向主机发出中断位。这一位决定向主机发出中断位。这一位决定HINTHINT输出端的状态,输出端的状态,用来对主机发出中断。用来对主机发出中断。复位后,复位后,HINTHINT=0=0,外部,外部HINTHINT输出端无效输出端无效(高电平高电平)。该位只。该位只能由能由C54xC54x置位,也只能由主机将其复位。置位,也只能由主机将其复位。当外部当外部HINTHINT引脚无效
48、引脚无效(高电平高电平)时,时,C54xC54x和主机读和主机读HINTHINT位位为为0 0;当;当HINTHINT为有效(低电平)时为有效(低电平)时,读为读为1 1 BOBBOB 读读/写写 字节选择位。若字节选择位。若BOBBOB=1=1,第,第1 1个字节为低字节,否则,第个字节为低字节,否则,第1 1个字节为高字节。个字节为高字节。BOBBOB位影响数据和地址的传送。只有主位影响数据和地址的传送。只有主机可以修改这一位,机可以修改这一位,C54xC54x对它既不能读也不能写。对它既不能读也不能写。DSPINTDSPINT 写写 主机向主机向C54xC54x发出中断位,只能由主机写入
49、,且主机和发出中断位,只能由主机写入,且主机和C54xC54x都不能读它。当主机对该位写都不能读它。当主机对该位写1 1时,就对时,就对C54xC54x产生产生一次中断。该位总是读成一次中断。该位总是读成0 0。当主机写。当主机写HPICHPIC时,高、低字节时,高、低字节必须写入相同的值。必须写入相同的值。SMODSMOD 读读 读读/写写 寻址方式选择位。若寻址方式选择位。若SMODSMOD=0=0,选择,选择HOMHOM方式,方式,C54xC54x都都不能寻址不能寻址HPHPI I的的RAMRAM区。区。C54xC54x复位期间,复位期间,SMODSMOD=0=0;复;复位后,位后,SM
50、ODSMOD=1=1。该位只能由。该位只能由C54xC54x修正,修正,C54xC54x和主机和主机都可以读它。都可以读它。主机与HPI8的连接HD0HD7双向并行三态数据总线,与主机数据总线相连;双向并行三态数据总线,与主机数据总线相连;双向并行三态数据总线,与主机数据总线相连;双向并行三态数据总线,与主机数据总线相连;片选信号,与主机地址线或控制线相连;片选信号,与主机地址线或控制线相连;片选信号,与主机地址线或控制线相连;片选信号,与主机地址线或控制线相连;主机与HPI8的连接 地址选通信号,与主机地址锁存使能地址选通信号,与主机地址锁存使能地址选通信号,与主机地址锁存使能地址选通信号,