第六章:片内外设第第6 6章章 DSPDSP片内外设片内外设•可编程定时器•串行口•主机接口•通用I/O•软件等待状态发生器•分区转换逻辑第六章:片内外设 6.1 DSP6.1 DSP片内外设概述片内外设概述含义含义: DSP的片内外设是集成在芯片内部的外部设备的片内外设是集成在芯片内部的外部设备访问访问:CPU核对片内外设的访问是通过对相应的控制寄核对片内外设的访问是通过对相应的控制寄 存器的访问来完成的存器的访问来完成的优点:优点: (1)片内外设访问速度快片内外设访问速度快 (2)(2) 可以简化电路板的设计如将可以简化电路板的设计如将A/D转换、转换、D/A转转换、定时器集成在片内换、定时器集成在片内3) 提供一些必须的特殊功能如提供一些必须的特殊功能如JTAG口、等待状态口、等待状态发生器等发生器等 ——概述第六章:片内外设——概述片内外设片内外设:串行接口、定时器、通用串行接口、定时器、通用I/O引脚和标准主机接口引脚和标准主机接口(HPI8)增强型外设增强型外设:多通道缓冲串口多通道缓冲串口(McBSP)、主机接口、主机接口(8位增强位增强HPI--8、、16位增强位增强HPI--16)、直接存储器访问(、直接存储器访问(DMA)控制器。
控制器控制寄存器控制寄存器:被映射到数据存储空间的第被映射到数据存储空间的第0页页(地址地址20h~~5Fh)表表61•所有的C54x DSP的CPU结构及功能完全相同,但是片内的外设配置多少不同本章将以C5402 DSP为主介绍 .第六章:片内外设 ——可编程定时器 6.2 可编程定时器可编程定时器 6.2.1 定时器的结构及特点定时器的结构及特点• C5402内部有定时器内部有定时器0和定时器和定时器1两个定时器结构一样两个定时器结构一样.• 每个定时器有每个定时器有3个控制寄存器,都是存储器映像寄存器个控制寄存器,都是存储器映像寄存器,表表61 TIM定时器寄存器定时器寄存器:是减是减1计数器,可加载周期寄存器计数器,可加载周期寄存器PRD的值,的值,并随计数减少并随计数减少PRD定时器周期寄存器定时器周期寄存器:PRD中存放定时器的周期计数值,提供中存放定时器的周期计数值,提供TIM重载用TCR定时器控制寄存器定时器控制寄存器:TCR包含定时器的控制和状态位,控制定包含定时器的控制和状态位,控制定时器的工作过程时器的工作过程第六章:片内外设 ——可编程定时器 6.2.2 定时器的控制寄存器定时器的控制寄存器TCRPSC (9~~6位位): 定时器预定标计数器。
当定时器预定标计数器当PSC中的数值减到中的数值减到0后,后, TIM减减1 ,, TDDR中的数加载到中的数加载到PSC;TRB(5位位): 定时器重新加载控制位复位片内定时器当定时器重新加载控制位复位片内定时器当TRB置置位时,位时,TIM重新装载重新装载PRD的值,的值,PSC重新装载重新装载TDDR中的值TSS(4位位):定时器停止位,定时器停止位,TSS=0 定时器开始工作,定时器开始工作,TSS=1 定定时器停止时器停止TDDR(3~~0位位): 当当PSC减为减为0时,时,TDDR中的值被装载到中的值被装载到PSC中中第六章:片内外设 ——可编程定时器 主定时器模块主定时器模块(由由PRD和和TIM组成组成)预定标器模块预定标器模块(由由TCR的的TDDR和和PSC位组成位组成) 第六章:片内外设 ——可编程定时器 主要特点:主要特点:(1)定时器是一个减计数器定时器是一个减计数器2)由由16位计数器位计数器TIM和和4位预分频计数器位预分频计数器PSC组成TIM的触发脉冲由的触发脉冲由PSC提供,提供,PSC由由CPU工作时钟决定工作时钟决定3) 有复位功能有复位功能。
4) 可以选择调试断点时定时器的工作方式可以选择调试断点时定时器的工作方式第六章:片内外设 ——可编程定时器 6.2.3 定时器的操作过程定时器的操作过程 •PSC由由CPU提供时钟,每个提供时钟,每个CPU时钟信号将使时钟信号将使PSC减减1 •当当PSC中的数值减到中的数值减到0或复位(系统复位或定时器单独复位或复位(系统复位或定时器单独复位TRB=1)时,)时, TDDR的内容重新加载到的内容重新加载到PSC•TIM由预定标器由预定标器PSC提供时钟,每个来自预定标块的输出时钟提供时钟,每个来自预定标块的输出时钟(当当PSC中的数值减到中的数值减到0时时)使使TIM减减l •当当TIM中的数值减到中的数值减到0或复位(系统复位或定时器单独复位或复位(系统复位或定时器单独复位TRB=1)时,)时,PRD中的内容重新加载到中的内容重新加载到TIM•主计数器块的输出为定时器中断(主计数器块的输出为定时器中断(TINT)信号)信号 ,该信号被送到,该信号被送到CPU和定时器输出和定时器输出TOUT引脚 定时器的中断周期定时器的中断周期第六章:片内外设 ——可编程定时器 初始化定时器:初始化定时器:(1) 将将TCR中的中的TSS位置位置1,停止定时器。
停止定时器2) 加载加载PRD3) 重新加载重新加载TCR以初始化以初始化TDDR4) 重新启动定时器重新启动定时器TSS位为位为0,,TRB位为位为l, 以重载定时器周期值,以重载定时器周期值,使能定时器使能定时器使能定时器中断使能定时器中断(假定假定INTM=1)::(1) 将将IFR中的中的TINT位置位置0,清除尚未处理完,清除尚未处理完(挂起挂起)的定时器中断的定时器中断2) 将将IMR中的中的TINT位置位置l,使能定时器中断使能定时器中断3) 可以将可以将ST1中的中的INTM位清位清0,使能全局中断使能全局中断第六章:片内外设 ——可编程定时器 【【例例6.1】】 利用定时器利用定时器Timer0在在XF引脚产生周期为引脚产生周期为1s的方波分析:分析:定时器的中断周期定时器的中断周期 设设f=100MHz,则,则 =10ns定时最大值是:定时最大值是: =10(ms),,要输出要输出1s的方波,的方波,1和和0分别为分别为500ms.可定时可定时5ms,再在中断程序中加个,再在中断程序中加个100计数器,计数器,定时器周期定时器周期=10ns×(1+9)×(1+49999)=5ms。
即即 =9,, =49999第六章:片内外设 ——可编程定时器 CounterSet .set 100 ;定义计数次数;定义计数次数PERIOD .set 49999 ;定义计数周期;定义计数周期 .asg AR1,Counter ;;AR1做计数指针,重做计数指针,重 新命名以便识别新命名以便识别 STM #CounterSet,Counter ;设计数器初值;设计数器初值 STM #0000000000010000B,TCR ;;TSS=1, ;停止计数器停止计数器 STM #PERIOD,TIM ;给;给TIM设定初值设定初值49999 STM #PERIOD,PRD ;;PRD与与TIM一样一样 STM #0000001001101001B,TCR;开始定时器;开始定时器 STM #0008H,IMR ;开;开TIME0的中断的中断 RSBX INTM ;开总中断;开总中断End: NOP B EndTDDRTSSTRBPSC第六章:片内外设 ——可编程定时器 中断服务程序:中断服务程序:TINT0_ISRTINT0_ISR: PSHM ST0 ;保护;保护ST0,因要改变,因要改变TC BANZ Next,,*Counter ;计数器不为;计数器不为0,计数器减,计数器减 1,退出中断,退出中断 STM #CounterSet,,Counter ;; BITF *AR2,,#1 ;;计数器为计数器为0, 根据当前根据当前XF的状态,的状态, ;分别到;分别到setXF或或ResetXF BC ResetXF,,TC setXF:: SSBX XF ;置;置XF为高为高 ST #1,,*AR2 B NextResetXF:: RSBX XF ;置;置XF为低为低 ST #0,, *AR2第六章:片内外设 ——可编程定时器 Next:: POPM ST0 RETE .end 第六章:片内外设 ——串行口 6.3 串串 行行 口口串口分为串口分为4种:种:• 标准同步串口标准同步串口(SP)• 带缓冲的串行接口带缓冲的串行接口(BSP)• 时分复用时分复用(TDM)串行口串行口• 多通道带缓冲串行接口多通道带缓冲串行接口(McBSP) 配置配置: 芯片不同串口配置也不尽相同,表芯片不同串口配置也不尽相同,表63。
访问访问: 串行接口一般通过中断来实现与核心串行接口一般通过中断来实现与核心CPU的同步功能功能: 串行接口可以用来与串行外部器件相连,如编码解码器、串行接口可以用来与串行外部器件相连,如编码解码器、串行串行A/D或或D/A以及其他串行设备以及其他串行设备 第六章:片内外设 ——串行口 6.3.1 标准同步串行口标准同步串行口(SP)1.结构结构:• 2个存储器映像寄存器用于传送数据个存储器映像寄存器用于传送数据 接收数据寄存器接收数据寄存器(DRR) 发送数据寄存器发送数据寄存器(DXR)• 一个串口控制寄存器一个串口控制寄存器(SPC)• 每个串行口的发送和接收部分都有独立的时钟、帧同步脉冲以每个串行口的发送和接收部分都有独立的时钟、帧同步脉冲以及串行移位寄存器:及串行移位寄存器: 接收移位寄存器接收移位寄存器(RSR) 发送移位寄存器发送移位寄存器(XSR)第六章:片内外设 ——串行口 第六章:片内外设 ——串行口 2.操作过程操作过程: 发送数据时,数写到发送数据时,数写到DXR→XSR → DX引脚输出引脚输出在发送期间,在发送期间,DXR中的数据复制到中的数据复制到XSR后,串行口控制寄存器后,串行口控制寄存器(SPC)中的发送准中的发送准备好备好(XRDY)位由位由0变为变为1,随后产生一个串行口发送中断,随后产生一个串行口发送中断(XINT)信信号,通知号,通知CPU可以对可以对DXR重新加载。
重新加载 接收数据时,来自接收数据时,来自DR引脚的数据引脚的数据→ RSR → DRR,,CPU从从DRR中读出数据当中读出数据当RSR的数据复制到的数据复制到DRR后,后,SPC中的接收数中的接收数据准备好据准备好(RRDY)位由位由0变为变为l,随后产生一个串行口接收中断,随后产生一个串行口接收中断(RINT)信号,通知信号,通知CPU可以从可以从DRR中读取数据中读取数据 串行口是双缓冲的,发送和接收都是自动完成,用户只需检测串行口是双缓冲的,发送和接收都是自动完成,用户只需检测RRDY或或XRDY位来判断可否继续发送或接收数据位来判断可否继续发送或接收数据第六章:片内外设 ——串行口 串行口传送数据的一种连接串行口传送数据的一种连接 第六章:片内外设 ——串行口 3.串行口控制寄存器串行口控制寄存器(SPC)• 串行口的操作是由串行口控制寄存器串行口的操作是由串行口控制寄存器(SPC)决定的• SPC寄存器的控制位及功能如寄存器的控制位及功能如表表64(P170)所示• 要复位和重新配置串行口,需要对要复位和重新配置串行口,需要对SPC寄存器写两次寄存器写两次。
第一次,第一次,初始化串口初始化串口,对,对SPC寄存器的寄存器的RRST和和XRST位写位写0,,其余位写入所希望的配置其余位写入所希望的配置 第二次,第二次,启动串口启动串口,对,对SPC寄存器的寄存器的RRST和和XRST位写位写1,其,其余位是所希望的配置,再一道重新写一次余位是所希望的配置,再一道重新写一次 第六章:片内外设 ——串行口 4.特点:特点:(1) 发送与接收的帧同步和时钟同步信号完全独立发送与接收的帧同步和时钟同步信号完全独立2) 发送和接收部分可独立复位发送和接收部分可独立复位3) 串口的工作时钟可来源于片外或片内串口的工作时钟可来源于片外或片内4) 独立的发送和接收数据线独立的发送和接收数据线5) 具有数据返回方式,便于测试具有数据返回方式,便于测试6) 在程序调试时,工作方式可选在程序调试时,工作方式可选7) 可以以查询和中断两种方式工作可以以查询和中断两种方式工作第六章:片内外设 ——串行口 5.实例实例: (操作以中断的方式完成操作以中断的方式完成)1) 串口的初始化串口的初始化(1) 复位,并将复位,并将0x0038写入写入SPC,初始化串口。
初始化串口 STM #0038h,SPC(2) 将将00C0h写入写入IFR,清除任何挂起的串行接口中断清除任何挂起的串行接口中断 STM #00C0h,IFR(3) 将将00C0h和和IMR求或逻辑运算,使能串行接口求或逻辑运算,使能串行接口0中断ORM #00C0h,IMR(4) 清除清除ST1的的INTM位,使能全局中断位,使能全局中断 RSBX INTM(5) 将将00F8h写入写入SPC,启动串行接口启动串行接口 STM #00F8h,SPC(6) 将第一个数据写入将第一个数据写入DXR第六章:片内外设 ——串行口 2) 串口中断服务程序串口中断服务程序(1) 保存当前工作状态到堆栈中保存当前工作状态到堆栈中2) 读读DRR或写或写DXR或同时操作,从或同时操作,从DRR读出的数据写入存储器读出的数据写入存储器中,将要发送的数据从存储器中取出写入中,将要发送的数据从存储器中取出写入DXR3) 恢复现场恢复现场4) 用用RETE从中断子程序返回从中断子程序返回。
第六章:片内外设 ——串行口 6.3.2 带缓冲的串行接口带缓冲的串行接口(BSP)结构和特点结构和特点:• 缓冲串行口在标准同步串行口的基础上增加了一个自动缓冲缓冲串行口在标准同步串行口的基础上增加了一个自动缓冲单元单元(ABU),并以,并以CLKOUT频率计时频率计时• ABU利用独立于利用独立于CPU的专用总线,让串行口直接读的专用总线,让串行口直接读/写写C54x内部存储器这样可以使串行口处理事务的开销最省,并能达内部存储器这样可以使串行口处理事务的开销最省,并能达到较快的数据率到较快的数据率• BSP有两种工作方式:非缓冲方式和自动缓冲方式有两种工作方式:非缓冲方式和自动缓冲方式• ABU具有自身的循环寻址寄存器组,每个都与地址产生单元具有自身的循环寻址寄存器组,每个都与地址产生单元相关发送和接收缓冲存储器位于一个指定的相关发送和接收缓冲存储器位于一个指定的C54x DSP内部存内部存储器的储器的2K字块中该块可作为通用的存储器,但却是唯一的自字块中该块可作为通用的存储器,但却是唯一的自动缓冲能使用的存储块动缓冲能使用的存储块第六章:片内外设 ——串行口 2. 缓冲串行口的控制寄存器缓冲串行口的控制寄存器(6个个)•数据接收寄存器数据接收寄存器(BDRR)•数据发送寄存器数据发送寄存器(BDXR)•控制寄存器控制寄存器(BSPC):•控制扩展寄存器控制扩展寄存器(BSPCE)•数据接收移位寄存器数据接收移位寄存器(BRSR)•数据发送移位寄存器数据发送移位寄存器(BXSR) 缓冲串行口在标准串行口的基础上新增了许多功能,这些特殊功能受控制扩展寄存器(BSPCE)控制,其各位的定义如表6-5(P173)所示。
第六章:片内外设 ——串行口 3.缓冲串行口的操作过程缓冲串行口的操作过程两种工作模式:标准工作模式(非缓冲方式)、缓冲工作模式(自动缓冲方式)两种工作模式:标准工作模式(非缓冲方式)、缓冲工作模式(自动缓冲方式)缓冲工作模式:缓冲工作模式:其功能主要由自动缓冲单元其功能主要由自动缓冲单元ABU来完成来完成• 自动缓冲单元自动缓冲单元(ABU)可独立于可独立于CPU自动完成控制串行口与固定缓冲内存区中的自动完成控制串行口与固定缓冲内存区中的数据交换它包括数据交换它包括 地址发送寄存器地址发送寄存器(AXR) 块长度发送寄存器块长度发送寄存器(BKX) 地址接收寄存器地址接收寄存器(ARR) 块长度接收寄存器块长度接收寄存器(BKR) 串行口控制寄存器串行口控制寄存器(BSPCE)• 当发送或接收缓冲区的一半或全部满或空时,当发送或接收缓冲区的一半或全部满或空时,ABU才产生才产生CPU的中断的中断,避免了,避免了CPU直接介入每一次传输带来的资源消耗直接介入每一次传输带来的资源消耗 第六章:片内外设 ——串行口 综上所述,自动缓冲过程可归纳为:综上所述,自动缓冲过程可归纳为:①① ABU完成对缓冲存储器的存取。
完成对缓冲存储器的存取②② 工作过程中地址寄存器自动增加,直至缓冲区的底工作过程中地址寄存器自动增加,直至缓冲区的底部到底部后,地址寄存器内容恢复到缓冲存储器区顶部到底部后,地址寄存器内容恢复到缓冲存储器区顶部③③ 如果数据到了缓冲区的一半或底部,就会产生中断,如果数据到了缓冲区的一半或底部,就会产生中断,并更新并更新BSPEC中的中的XH/RH,以表明那一部分数据已经,以表明那一部分数据已经被发送或接收被发送或接收④④ 如果选择禁止自动缓冲功能,当数据过半或到达缓如果选择禁止自动缓冲功能,当数据过半或到达缓冲区底部时,冲区底部时,ABU会自动停止缓冲功能会自动停止缓冲功能第六章:片内外设 ——串行口 6.3.3 时分复用时分复用(TDM)串口串口• 时分多路串行模式是将时间分为时间段,周期性地分别按时间段时分多路串行模式是将时间分为时间段,周期性地分别按时间段顺序与不同器件通信的工作方式各通道的发送或接收相互独立顺序与不同器件通信的工作方式各通道的发送或接收相互独立• C54x的的TDM最多可以有最多可以有8个个TDM信道 • 四条串行口总线分别为时钟四条串行口总线分别为时钟TCLK、帧同步、帧同步TFAM、数据、数据TDAT及及附加地址附加地址TADD。
• TDM串行口工作方式:非串行口工作方式:非TDM方式和方式和TDM方式方式 受受6个存储器映像寄存器个存储器映像寄存器TRCV、、TDXR、、TSPC、、TCSR、、TRTA、、TRAD和两个专用寄存器和两个专用寄存器TRSR和和TXSR控制 第六章:片内外设 ——串行口 第六章:片内外设 ——串行口 6.3.4 多通道缓冲串行接口多通道缓冲串行接口(McBSP)1. McBSP的主要特点的主要特点(1) 全双工通信全双工通信2) 双缓冲发送,三缓冲接收双缓冲发送,三缓冲接收,提供数据流工作方式提供数据流工作方式3) 独立的发送接收帧同步与时钟同步独立的发送接收帧同步与时钟同步4) 直接与工业标准的模拟接口器件直接与工业标准的模拟接口器件AIC、串行、串行A/D和和D/A相连6) 可以使用外部时钟,也可使用内部可编程时钟可以使用外部时钟,也可使用内部可编程时钟7) 最多最多128通道的发送和接收通道的发送和接收8) 数据可以数据可以8、、12、、16、、20、、24和和32方式传送方式传送11) 可编程的帧同步有效与数据时钟有效可选可编程的帧同步有效与数据时钟有效可选。
第六章:片内外设 ——串行口 第六章:片内外设 ——串行口 2. McBSP的结构的结构• 一个一个McBSP串口有串口有7个引脚个引脚• DSP核通过片内外设总线访问和控制核通过片内外设总线访问和控制McBSP的内部控的内部控制寄存器和数据接收制寄存器和数据接收/发送寄存器,涉及到的寄存器发送寄存器,涉及到的寄存器如表如表68(P178)所示• 寄存器的寄存器的子寻址子寻址的工作方式,指的是多路复用技术,的工作方式,指的是多路复用技术,可以实现一组寄存器共享存储器中的一个单元可以使可以实现一组寄存器共享存储器中的一个单元可以使用少量的寄存器映射存储器空间来访问用少量的寄存器映射存储器空间来访问McBSP的的20多个多个寄存器寄存器 第六章:片内外设 ——串行口 3. McBSP控制寄存器控制寄存器 McBSP通过两个通过两个16比特串口控制寄存器比特串口控制寄存器1和和2(SPCR[1,2])和和管脚控制寄存器管脚控制寄存器(PCR)进行配置,这些寄存器包含了进行配置,这些寄存器包含了McBSP的状的状态信息和控制信息态信息和控制信息 串口控制寄存器串口控制寄存器SPCR1 、、SPCR2 引脚控制寄存器引脚控制寄存器PCR 接收控制寄存器接收控制寄存器RCR1 、、RCR2 发送控制寄存器发送控制寄存器XCR1 、、XCR2 除除SPCR[1,2]和和PCR之外,之外,McBSP还配置了接收控制寄存器还配置了接收控制寄存器RCR[1,2]和发送控制寄存器和发送控制寄存器XCR[1,2]来确定接收和发送操作的参来确定接收和发送操作的参数数 。
第六章:片内外设 ——串行口 4. McBSP的数据发送和接收的操作流程的数据发送和接收的操作流程3个阶段:串口的复位、串口的初始化、发送和接收个阶段:串口的复位、串口的初始化、发送和接收 ①①串口的复位串口的复位• 芯片复位芯片复位 引发的串行复位使整个串行口复位,包括接引发的串行复位使整个串行口复位,包括接口发送器、接收器、采样率发生器的复位口发送器、接收器、采样率发生器的复位 • 串行接口的发送器和接收器可以利用串行接口控制寄存器串行接口的发送器和接收器可以利用串行接口控制寄存器(SPCR1和和SPCR2)中的中的 和和 位分别独自复位位分别独自复位 第六章:片内外设 ——串行口 ②②串口的初始化串口的初始化(1)设定串行接口控制寄存器设定串行接口控制寄存器SPCR[1,,2]中的中的 如果刚刚如果刚刚复位复位完毕,不必进行这一步操作完毕,不必进行这一步操作2) 编程配置特定的编程配置特定的McBSP的寄存器的寄存器3) 等待等待2个时钟周期,以保证适当的内部同步。
个时钟周期,以保证适当的内部同步4) 按照写按照写DXR的要求,给出数据的要求,给出数据5) 设置设置 ,以,以使能使能串行接口串行接口6) 如果要求内部帧同步信号,设置如果要求内部帧同步信号,设置 7) 等待等待2个时钟周期后,激活接收器和发送器个时钟周期后,激活接收器和发送器第六章:片内外设 ——串行口 ③③数据发送和接收的操作数据发送和接收的操作 •接收操作是三缓冲的接收操作是三缓冲的 接收数据接收数据→数据接收引脚数据接收引脚DR→ 接收移位寄存器接收移位寄存器RSR[1,2] → 接收缓冲寄存器接收缓冲寄存器RBR[1,2] → 数据接收寄存器数据接收寄存器DRR[1,2]•发送操作是双缓冲的发送操作是双缓冲的CPU或或DMA将发送数据将发送数据→数据发送寄存器数据发送寄存器DXR[1,2]中中 →发送移位寄存器发送移位寄存器XSR[1,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,,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对应的子地址放到子对应的子地址放到子 地址寄存器地址寄存器SPSA中中STM #0040h, McBSP1_SPSD ;发送为单相,每帧发送为单相,每帧16位位STM PCR, McBSP1_SPSA ;将将PCR对应的子地址放到子地对应的子地址放到子地 址寄存器址寄存器SPSA中中STM #000eh, McBSP1_SPSD ;工作于从模式工作于从模式第六章:片内外设 ——主机接口HPI 6.4 主机接口主机接口(HPI) TMS320C54x系列系列DSP具有具有并行并行接口接口类型(类型(3种)种): 标准标准8位位HPI8 增强型增强型8位位HPI8 增强型增强型16位位HPI16功能:功能:用于主机用于主机(其他其他DSP或单片机或单片机)与与C54x DSP的通信,通信的的通信,通信的 主控方为其他的主机。
主控方为其他的主机优点:优点:HPI只需要很少或不需要外部逻辑就能和很多不同的主机设只需要很少或不需要外部逻辑就能和很多不同的主机设 备相连第六章:片内外设 ——主机接口HPI 6.4.1 标准8位主机接口HPI81.HPI8的特点的特点•是一个是一个8位并行口位并行口•用于主机用于主机(其他控制器其他控制器)与与C54x DSP的通信,实现主机访问的通信,实现主机访问DSP的的内部内部2K的双口的双口RAM(HPI存储器存储器)•HPI具有两种工作模式:具有两种工作模式:(1) 共用访问模式共用访问模式(SAM):主机和:主机和C54x DSP都能访问都能访问HPI存储器主机具有访问优先权,主机具有访问优先权,C54x DSP等待一个周期等待一个周期2)仅仅主机访问模式仅仅主机访问模式(HOM)•HPI支持主机与支持主机与C54x DSP之间高速传输数据之间高速传输数据 第六章:片内外设 ——主机接口HPI 第六章:片内外设 ——主机接口HPI 2. 主机接口主机接口HPI8的结构的结构 主机通过访问主机通过访问HPI的的3个寄存器实现对个寄存器实现对DSP内部内部RAM的访问。
的访问HPIA: 地址寄存器地址寄存器主机主机可以直接访问该寄存器可以直接访问该寄存器.HPIC(002Ch): 控制寄存器,可以由控制寄存器,可以由主机或主机或C54x DSP直接访问直接访问,,包含了包含了HPI操作的控制和状态位操作的控制和状态位.HPID: 数据寄存器,只能由数据寄存器,只能由主机主机直接访向包含从直接访向包含从HPI存储器读存储器读出的数据,或者要写到出的数据,或者要写到HPI存储器的数据存储器的数据HPI控制逻辑控制逻辑: 用于处理用于处理HPI与主机之间的接口信号与主机之间的接口信号HPI存储器(存储器(DARAM)):用于用于C54x DSP与主机之间传送数据与主机之间传送数据第六章:片内外设 ——主机接口HPI 3. 控制寄存器控制寄存器HPIC HPIC共有共有4个位用于控制个位用于控制HPI操作,表操作,表618BOB ::字节选择位,字节选择位,BOB会影响数据和地址传输会影响数据和地址传输SMOD ::寻址方式选择位寻址方式选择位DSPINT ::主机向主机向C54x DSP发出中断位;发出中断位;HINT :: C54x DSP向主机发出中断位。
向主机发出中断位第六章:片内外设 ——主机接口HPI 主机与HPI8的连接第六章:片内外设 ——主机接口HPI 4. 主机接口的操作主机接口的操作 • 8位数据总线位数据总线(HD0~~HD7)与主机之间交换信息与主机之间交换信息 16位字位字 ,,HBIL 引脚引脚 和和HPIC的的BOB位位 决定;决定;• 两个控制输入两个控制输入(HCNTL0和和HCNTL1)表示哪个表示哪个HPI寄存器被访问寄存器被访问 • HPIA寄存器可以使用自动增寻址方式寄存器可以使用自动增寻址方式 • 主机可以中断主机可以中断C54x DSPC54x DSP也可用也可用HPIC中的中的HINT来中来中断主机 • HPI存储器为存储器为2K字字×16位的双访问位的双访问RAM块,其地址范围为数据存块,其地址范围为数据存储空间的储空间的1000h~~17FFh 第六章:片内外设 ——主机接口HPI 6.4.2 增强的增强的8位位HPI(HPI8) •增强型增强型8位并行主机接口是标准型位并行主机接口是标准型8位并行接口的改进位并行接口的改进• HPI8可以让主机访问到可以让主机访问到DSP内的所有内的所有RAM,而不仅,而不仅仅是仅是2K的的RAM。
• HPI8大部分的功能与大部分的功能与HPI8相同 • 应该注意的是,片内应该注意的是,片内RAM实际上不论是分配给程序或实际上不论是分配给程序或数据区,对访问数据区,对访问HPI8的主机来讲,地址只能如图的主机来讲,地址只能如图6.10所示 第六章:片内外设 ——主机接口HPI HPI-8的存储器分配 第六章:片内外设 ——主机接口HPI 6.4.3 应用举例应用举例 下例假设为双下例假设为双DSP通过通过HPI口通信DSP1向向DSP2的的数据空间发送数据,并读回到数据空间发送数据,并读回到DSP1的存储器中的存储器中 DSP2的的HPI口的口的HPIC映射到映射到DSP1的的0x8008、、0x8009;; HPIA映射到映射到DSP1的的0x800C、、0x800D;; HPID映射到映射到DSP1的的0x800A、、0x800B 由于由于DSP2在访问过程中不需要操作,所以以下为在访问过程中不需要操作,所以以下为DSP1的程序。
的程序 第六章:片内外设 ——主机接口HPI STM0x1000,AR1 ST0x00,*AR1PORTW*AR1,0x8008 ;将将0x00写入写入HPICST0x00,*AR1PORTW*AR1,0x8009 ;高低位都为高低位都为0x00NOPST0x10,*AR1PORTW*AR1,0x800C ;将将0x10写入写入HPIA高位高位ST0x20,*AR1NOPPORTW*AR1,0x800D ;将将0x20写入写入HPIA低位低位NOP ;地址为地址为0x1020第六章:片内外设 ——主机接口HPI loop: ST 0x1A,*AR1PORTW *AR1,0x800A ;将将0x1A2B写入写入DSP2的的0x1020ST 0x2B,*AR1PORTW *AR1,0x800B NOPSTM 0x1010,AR2PORTR 0x800A,*AR2 ;将读到的数放入将读到的数放入0x1010和和0x1011 NOP ;两个单元,每个为;两个单元,每个为8位数位数 STM 0x1011,AR2 PORTR 0x800B,*AR2 ST 0x3C,*AR1PORTW *AR1,0x800A ;利用自动增量模式将利用自动增量模式将0x3C4D写入写入 ;;DSP2的的0x1021 第六章:片内外设 ——主机接口HPI ST0x4D,*AR1NOPPORTW *AR1,0x800B STM 0x1012,AR2NOPPORTR 0x800A,*AR2 ;将将DSP2中的数通过中的数通过HPI读到读到 ;;DSP1的的0x1012和和0x1013中,中,NOP ; DSP1两个单元中分别为两个两个单元中分别为两个8位数位数STM0x1013,AR2 PORTR 0x800B,*AR2 hearB hear .end第六章:片内外设 ——外部总线访问时序6.5 外部总线访问时序外部总线访问时序问题问题: 54x系列系列DSP其内部存储器有限,在应用时有时需要扩展外其内部存储器有限,在应用时有时需要扩展外部存储器部存储器. 但可能产生流水线冲突但可能产生流水线冲突; 同时由于同时由于DSP工作频率高,与工作频率高,与外部存储器和外设接口时有时序问题。
外部存储器和外设接口时有时序问题解决解决: C54x系列系列DSP内部有内部有等待状态发生器等待状态发生器与与分区转换控制器分区转换控制器来提来提供方便的外部程序、数据存储器、外部设备的时序匹配和控制供方便的外部程序、数据存储器、外部设备的时序匹配和控制应用应用: 在在DSP应用中,选择存储器时,主要考虑的因素有存取时间、应用中,选择存储器时,主要考虑的因素有存取时间、容量和价格等因素在采用低速器件时,需要用软件或硬件为容量和价格等因素在采用低速器件时,需要用软件或硬件为DSP插入等待状态来协调插入等待状态来协调第六章:片内外设 ——外部总线访问时序6.5.1 软件等待状态发生器软件等待状态发生器• 可以将外部总线的访问周期延长多达可以将外部总线的访问周期延长多达7~~14个机器周期个机器周期• 如果外部器件要求更多等待周期,则可以利用硬件如果外部器件要求更多等待周期,则可以利用硬件READY线来接口线来接口• 受到一个受到一个16位的软件等待状态寄存器位的软件等待状态寄存器(SWWSR)的控制,它是一个存储器映像寄的控制,它是一个存储器映像寄存器存器(0028h) • 程序空间和数据空间都被分成两个程序空间和数据空间都被分成两个32K的字块,的字块,I/O空间由一个空间由一个64K字块组成。
字块组成这这5个字块空间在个字块空间在SWWSR中都相应地有一个中都相应地有一个3位字段,用来定义各个空间插入位字段,用来定义各个空间插入等待状态的数目表等待状态的数目表619•例:如果例:如果I/O空间需延时空间需延时4个周期,数据空间需延时个周期,数据空间需延时2个周期,程序空间需延时个周期,程序空间需延时3个周期,则个周期,则SWWSR应为应为0100010010011011,即,即449Bh,程序指令为,程序指令为 STM #449Bh,,SWWSR• 复位时,复位时,SWWSR=7FFFh,,SWWSR这时所有的程序、数据和这时所有的程序、数据和I/O空间都被空间都被插入插入7个等待状态个等待状态第六章:片内外设 ——外部总线访问时序6.5.2 分区转换逻辑分区转换逻辑• 在外部存储器由多个存储芯片构成时,在不同芯片之间的地址转在外部存储器由多个存储芯片构成时,在不同芯片之间的地址转换过程中,需要有一定的延时换过程中,需要有一定的延时• 可编程分区转换逻辑允许可编程分区转换逻辑允许C54x在外部存储器分区之间切换时不需在外部存储器分区之间切换时不需要使用软件为存储器的访问插入等待状态。
当跨越外部程序或数据要使用软件为存储器的访问插入等待状态当跨越外部程序或数据空间中的存储器分区界线寻址时,分区转换逻辑会自动地插入一个空间中的存储器分区界线寻址时,分区转换逻辑会自动地插入一个周期• 分区转换由分区转换控制寄存器分区转换由分区转换控制寄存器(BSCR)定义,它是存储器映像寄定义,它是存储器映像寄存器存器(0029h)表620第六章:片内外设 ——外部总线访问时序 C54x分区转换逻辑可以在下列几种情况下分区转换逻辑可以在下列几种情况下自动地插入一个自动地插入一个附加的周期附加的周期,让地址总线转换到一个新的地址,即,让地址总线转换到一个新的地址,即• 一次程序或数据存储器读操作之后,紧跟着对一次程序或数据存储器读操作之后,紧跟着对不同的存储器分不同的存储器分区区的另一次程序存储器或数据存储器读操作的另一次程序存储器或数据存储器读操作• 当当PS~~DS位位置置1时,一次程序存储器读操作之后,紧跟着一时,一次程序存储器读操作之后,紧跟着一次数据存储器读操作次数据存储器读操作• 对于对于C548和和C549,一次程序存储器读操作之后,紧跟着对,一次程序存储器读操作之后,紧跟着对不不同页同页进行另一次程序存储器或数据存储器读操作。
进行另一次程序存储器或数据存储器读操作第六章:片内外设 ——通用I/O 6.6 通用通用I/O 1.通用通用I/O引脚引脚((1)) 分支转移控制输入引脚分支转移控制输入引脚( ) 可以用于可以用于监控外部设备的状态监控外部设备的状态 当时间要求严格时,代替中断非常有用当时间要求严格时,代替中断非常有用 根据输入的状态可以有条件地执行一个分支转移根据输入的状态可以有条件地执行一个分支转移2))外部标志输出引脚外部标志输出引脚(XF) XF可以用来可以用来为外部设备提供输出信号为外部设备提供输出信号;; XF引脚由软件控制引脚由软件控制 复位时,复位时,XF为高电平为高电平 第六章:片内外设 ——通用I/O 2.串口作通用串口作通用I/O在满足一定条件下,可将部分串口引脚作通用在满足一定条件下,可将部分串口引脚作通用I/O;;条件:(条件:(1))串口处于复位,即串口处于复位,即 ;; ((2)串口通用)串口通用I/O使能有效,即使能有效,即PCR中中 XIOEN=RIOEN=1;; 串口引脚:串口引脚:CLKX/CLKR;FSX/FSR;DX/DR 3.主机接口主机接口8条数据线作通用条数据线作通用I/O 条件:条件:HPI接口被禁,即使能端接口被禁,即使能端HPIENA=0第六章:片内外设 ——通用I/O 作业:作业: P197::1、、2、、4、、6。