好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

DSP技术电子通信实用教案.ppt

84页
  • 卖家[上传人]:ni****g
  • 文档编号:587324410
  • 上传时间:2024-09-05
  • 文档格式:PPT
  • 文档大小:3.60MB
  • / 84 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1一、C54x的主机(zhǔjī)接口 HPI • 功能 • 主机接口HPIHPI专门提供了C54xDSPC54xDSP与外部其它主处理器(如其它 DSP DSP、微处理器、单片机等)的通信接口, 主机接口为主从分布式系统和多处理器并行处理系统提供了方便• C54xDSP C54xDSP主机接口是一个并行的 8 8 位或 16 16 位接口,外部主机是HPIHPI的主控者C54xC54x系列(xìliè)(xìliè)中提供了标准的 8 8位HPIHPI接口或 8 8位增强的HPIHPI接口或1616位增强的HPIHPI接口第1页/共83页第一页,共84页 2TMS320C54x系列DSP具有(jùyǒu)并行接口类型(3种):       标准8位HPI-8       增强型8位HPI-8       增强型16位HPI-16功能:用于主机(其他DSP或单片机)与C54x DSP的通信,             通信的主控方为其他主机优点:HPI不需要或只需要很少外部逻辑就能和很多不同            的主机设备相连。

      第2页/共83页第二页,共84页 31.HPI-8的特点(tèdiǎn)2.是一个8位并行口3.用于主机(其他控制器)与C54x DSP之间的通信,实现主机访问DSP内部2K的双访问RAM(HPI存储器)4.HPI具有两种工作模式:5.共用访问模式(SAM):主机和C54x DSP都能访问HPI存储器当访问发生冲突时主机具有优先访问权,而C54x DSP需等待一个周期6.仅主机访问模式(HOM), C54x DSP休眠状态7.HPI支持主机与C54x DSP之间高速数据传输   第3页/共83页第三页,共84页 4标准HPIHPI的两种工作(gōngzuò)(gōngzuò)模式: (1)共享模式(móshì)(SAM)(2)主机(zhǔjī)模式(HOM) HPI存储器 主机 C54x HPI存储器 主机 C54x 第4页/共83页第四页,共84页 52. HPI-8结构(jiégòu)框图第5页/共83页第五页,共84页 6(1)HPI存储器(2k字DARAM)(2)HPI地址寄存器(HPIA)(3)HPI数据锁存器(HPID) (4)PHI控制(kòngzhì)寄存器(HPIC)(5)PHI控制(kòngzhì)逻辑工作(gōngzuò)(gōngzuò)过程HPIHPI存储(cún chǔ)(cún chǔ)空间访问主机数据寄存器HPIDHPID主机地址寄存器HPIAHPIA外部主机外部控制信号第6页/共83页第六页,共84页。

      7         外部主机通过访问主机接口的3个寄存器实现对DSP内部HPI存储器的访问:HPIA: 地址寄存器主机直接访问该寄存器HPIC(002Ch): 控制寄存器,可以由主机或C54x DSP直接访问,包含了HPI操作的控制和状态位.HPID: 数据寄存器,只能由主机直接访向包含从HPI存储器读出的数据,或者要写到HPI存储器的数据HPI控制逻辑(luó jí): 用于处理HPI与主机之间的接口信号HPI存储器(DARAM):用于C54x DSP与主机之间传送数据第7页/共83页第七页,共84页 83. 控制寄存器HPIC      HPIC共有4 个位用于控制HPI操作BOB :字节选择位,BOB会影响数据和地址传输SMOD :寻址方式选择位DSPINT :主机向C54x DSP发出(fāchū)中断位;HINT : C54x DSP向主机发出(fāchū)中断位第8页/共83页第八页,共84页 9标准HPI-8的HPIC控制(kòngzhì)寄存器各位设置 第9页/共83页第九页,共84页 10   4. 主机接口的操作    8 位数据总线(HD0~HD7)与主机之间交换信息。

       16位      字,由HBIL引脚和HPIC的BOB位决定;  两个(liǎnɡ ɡè)控制输入(HCNTL0和HCNTL1)表示哪个HPI寄存器    被访问;   HPIA寄存器可以使用自动增寻址方式 ;  主机可以中断C54x DSP,C54x DSP也可用HPIC中的    HINT来中断主机;   HPI存储器为2K字×16位的双访问RAM块,其地址范围    为数据存储空间的1000h~17FFh 第10页/共83页第十页,共84页 11C54x HPI-8与主机(zhǔjī)的连接: 第11页/共83页第十一页,共84页 12HPI的中断过程主机(zhǔjī)HPI中断(zhōngduàn)写DSPINT=1HCNTL0HCNTL100HPIC第12页/共83页第十二页,共84页 13     应用举例:        设为双DSP通过(tōngguò)HPI口通信DSP1向DSP2的数据空间发送数据,并读回到DSP1的存储器中     DSP2的HPI口的HPIC映射到DSP1的0x8008、0x8009;                                   HPIA映射到DSP1的0x800C、0x800D;                                HPID映射到DSP1的0x800A、0x800B。

              由于DSP2在被访问过程中不需要操作,所以,以下为DSP1的程序 第13页/共83页第十三页,共84页 14 STM 0x1000, AR1 ST0x00, *AR1PORTW *AR1, 0x8008 ;将0x00写入HPICST0x00, *AR1PORTW *AR1, 0x8009 ;高低位都为0x00NOPST0x10, *AR1PORTW *AR1, 0x800C ;将0x10写入HPIA高位(ɡāo wèi)ST0x20, *AR1NOPPORTW *AR1, 0x800D ;将0x20写入HPIA低位NOP ;地址为0x1020第14页/共83页第十四页,共84页 loop: ST     0x1A,*AR1PORTW  *AR1,0x800A     ;将0x1A2B写入DSP2的0x1020ST     0x2B,*AR1PORTW  *AR1,0x800B NOPSTM     0x1010,AR2PORTR  0x800A,*AR2     ;将读到的数放入0x1010和0x1011            NOP                                     ;两个单元(dānyuán),每个为8位数            STM    0x1011,AR2 PORTR  0x800B,*AR2             ST    0x3C,*AR1PORTW   *AR1,0x800A   ;利用自动增量模式将0x3C4D写入                                                         ;DSP2的0x1021                   第15页/共83页第十五页,共84页。

      16 ST 0x4D,*AR1NOPPORTW *AR1, 0x800B STM 0x1012, AR2NOPPORTR 0x800A,*AR2 ;将DSP2中的数通过(tōngguò)HPI读到 ;DSP1的0x1012和0x1013中,NOP ; DSP1两个单元中分别为两个8位数STM 0x1013, AR2 PORTR 0x800B,*AR2 hearB hear .end第16页/共83页第十六页,共84页 17定时(dìnɡ shí)器的结构及特点: C54x的片内定时(dìnɡ shí)器根据所选型号不同有2~3个不等,定时(dìnɡ shí)器0、1、2,其结构相同 每个定时(dìnɡ shí)器有3个寄存器,都是存储器映像寄存器(24-26H)定时(dìnɡ shí)寄存器TIM :是减1计数器,可加载周期寄存器PRD的值,并随计数减少。

      定时(dìnɡ shí)周期寄存器PRD :PRD中存放定时(dìnɡ shí)器的周期计数值,提供TIM重载用定时(dìnɡ shí)控制寄存器TCR :TCR包含定时(dìnɡ shí)器的控制和状态位,控制定时(dìnɡ shí)器的工作过程二、C54x的可编程定时器 第17页/共83页第十七页,共84页 181. C54x的定时器结构(jiégòu) 结构图分 频系 数时 间常 数主定时器模块(mó kuài)(由PRD和TIM组成)预定标器模块(mó kuài)(由TCR的TDDR和PSC位组成) 第18页/共83页第十八页,共84页 19主要特点:(1) 定时器是一个减计数器2) 由16位计数器和4位预分频计数器组成16位计数器       的触发脉冲由预分频计数器提供,预分频计数器由       CPU工作时钟决定3) 有复位(fù wèi)功能4) 可以选择调试断点时定时器的工作方式第19页/共83页第十九页,共84页 20TSS保留15~ 12soft11free10PSC9 ~ 6TRB5TDDR3~ 04TCR中的控制(kòngzhì)位和状态位定时器停止(tíngz(tíngzhǐ)/hǐ)/启动定时器工作(gōngzu(gōngzuò)ò)状态定时器预定标计数器复位片内定时器预定标分频系数第20页/共83页第二十页,共84页。

      21PSC (9~6位):定时器预定标计数器当PSC中的数值减到0后, TIM减1 , TDDR中的数加载到PSC;TRB (5位):定时器重新加载控制(kòngzhì)位复位片内定时器当TRB置位时,TIM重新装载PRD的值,PSC重新装载TDDR中的值TSS (4位):定时器停止位,TSS=0  定时器开始工作,TSS=1  定时器停止TDDR (3~0位):当PSC减为0时,TDDR中的值被装载到PSC中第21页/共83页第二十一页,共84页 22  2.  定时中断周期(zhōuqī)的计算         定时中断周期(zhōuqī)= TCLKOUT×(TTDDR+1)×(TPRD+1)定时器输出(shūchū)(shūchū)信号TOUT—定时脉冲输出(shūchū)TINT —定时中断输出(shūchū)第22页/共83页第二十二页,共84页 23定时器的操作过程:   PSC由CPU提供时钟,每个CPU时钟信号将使PSC减1    TDDR的内容重新加载到PSC  TIM由预定标器PSC提供时钟,每个来自(lái zì)预定标块的输出时钟使TIM减l PRD中的内容重新加载到TIM。

             第23页/共83页第二十三页,共84页 24初始化定时器:(1) 将TCR中的TSS位置1,关闭定时器2) 加载PRD3) 重新(chóngxīn)加载TCR以初始化TDDR4) 重新(chóngxīn)启动定时器TSS位为0,TRB位为l,以重载定时      器周期值,使能定时器3. 定时器初始化步骤(bùzhòu) 第24页/共83页第二十四页,共84页 25使能定时器中断(zhōngduàn)(假定ST1寄存器中INTM=1):(1) 将IFR中的TINT位置1,清除尚未处理完(挂起)的定时      器中断(zhōngduàn)2) 将IMR中的TINT位置l,使能定时器中断(zhōngduàn)3) 将ST1中的INTM位清0,使能全局中断(zhōngduàn)第25页/共83页第二十五页,共84页 26【例】 利用C54x定时器可以实现方波信号发生器要求利用定时器0在通用I/O引脚XF输出周期(zhōuqī)为1s的方波分析:设 f =100MHz,已知定时最大值为:                                 =10(ms),要输出1s的方波,1和0分别为500ms.可定时5ms,再在中断程序中加个100计数器,定时器周期(zhōuqī) =10ns×(1+9)×(1+49999)=5ms。

       第26页/共83页第二十六页,共84页 27CounterSet .set  100                       ;定义计数次数(cìshù)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, IMR              ;开TIME0的中断            RSBX  INTM                    ;开总中断End:       NOP             B  End第27页/共83页第二十七页,共84页。

      28中断服务程序:TINT0_ISRTINT0_ISR:            PSHM  ST0                  ;保护ST0,因要改变TC            BANZ  Next,*Counter-  ;计数器不为0,计数器                                                                         减1,退出(tuìchū)中断            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第28页/共83页第二十八页,共84页。

      29Next:            POPM  ST0            RETE           end 第29页/共83页第二十九页,共84页 30三、C54x的串行口          C54x 具有功能强、且使用灵活(línɡ huó)的高速、全双工串行口,可实现多种标准通讯形式;可提供丰富的多路及时分复用功能,高效地实现和双向串口器件的通讯或多微处理器之间的通讯n标准同步串行口(SP)n缓冲(huǎnchōng)同步串行口(BSP)n多通道缓冲(huǎnchōng)串行口(McBSP)n时分多路同步串行口(TDM)串串行行口口分分类当缓冲串行口和时分多路串行口工作在标准方式时,它们的功能(gōngnéng)(gōngnéng)与标准串行口相同 第30页/共83页第三十页,共84页 31配置:  DSP芯片不同串口配置也不尽相同访问:  串行接口一般通过(tōngguò)中断来实现与核心CPU的同步功能:  串行接口可以用来与串行外部器件相连,如编码解              码器、串行A/D或D/A以及其他串行设备 第31页/共83页第三十一页,共84页 32芯片型号芯片型号SPBSPMcBSPTDMC5412000C5420101C5430101C5451100C5461100C5480201C5490201C54020020C54100030C54200060部分C54x系列(xìliè)DSP芯片串行口配置第32页/共83页第三十二页,共84页。

      331)、标准(biāozhǔn)同步串行口 SP 第33页/共83页第三十三页,共84页 34组成(zǔ￿chénɡ):￿•16位数据(shùjù)接收寄存器(DRR)•16位数据(shùjù)发送寄存器(DXR)•接收移位寄存器(RSR)•发送移位寄存器(XSR)•接收时钟和发送时钟•接收帧同步和发送帧同步•控制电路第34页/共83页第三十四页,共84页 35标准(biāozhǔn)(biāozhǔn)串口SPSP特点: •可有多个相互独立的标准同步串口•发送(fā sònɡ)和接收是双向缓冲的•3个存储器映像寄存器用于传送数据•每个口有时钟、帧同步脉冲以及串行移位寄存器•可以按8位字节或16位字节转换•可以产生自己的可屏蔽收发中断•可以工作在多种时钟频率上•标准串行口的最高工作频率是CLKOUT的1/4第35页/共83页第三十五页,共84页 36串行口控制(kòngzhì)寄存器 SPC 功能(gōngnéng)(gōngnéng):控制串行口的操作 第36页/共83页第三十六页,共84页 37标准(biāozhǔn)(biāozhǔn)串口SPSP的使用 •STM  #0038H ,SPC    ;串口初始化•STM  #00C0H ,IFR    ;清除挂起的串口中断•AND  #00C0H ,IMR   ;使能中断 •RSBX INTM                   ;使能全局中断•STM  #00F8H ,SPC    ;开始(kāishǐ)串口传输•STM  DATA1 ,DXR     ;写第一个数据到DXR• 第37页/共83页第三十七页,共84页。

      38  操作过程:发送(fā sònɡ)数据时,数写到DXR→XSR → DX引脚输出发送(fā sònɡ)期间,DXR中的数据复制到XSR后,串行口控制寄存器(SPC)中的发送(fā sònɡ)准备好(XRDY)位由0变为1,随后产生一个串行口发送(fā sònɡ)中断(XINT)信号,通知CPU可以对DXR重新加载接收数据时,来自DR引脚的数据→ RSR → DRR,CPU从DRR中读出数据当RSR的数据复制到DRR后,SPC中的接收数据准备好(RRDY)位由0变为l,随后产生一个串行口接收中断(RINT)信号,通知CPU可以从DRR中读取数据串行口是双缓冲的,发送(fā sònɡ)和接收都是自动完成,用户只需检测RRDY或XRDY位来判断可否继续发送(fā sònɡ)或接收数据第38页/共83页第三十八页,共84页 39连接(liánjiē)(liánjiē)方法之一: 数据发送工作(gōngzu(gōngzuò ò) )过程 数据接收工作(gōngzu(gōngzuò ò) )过程 第39页/共83页第三十九页,共84页 40实例: (操作以中断的方式完成)1) 串口的初始化(1) 复位(fù wèi),并将0x0038写入SPC,初始化串口。

      2) 将0x00C0h写入IMR,清除任何挂起的串行接口中断3) 将0x00C0h和IMR求或逻辑运算,使能串行接口中断4) 清除ST1的INTM位,使能全局中断5) 将0x00F8h写入SPC,启动串行接口6) 将第一个数据写入DXR第40页/共83页第四十页,共84页 41——串行口 2) 串口中断服务程序(1) 保存当前工作状态到堆栈中2) 读DRR或写DXR或同时操作,从DRR读出的数据写入存储器中,将要发送的数据从存储器中取出写入DXR3) 恢复(huīfù)现场4) 用RETE从中断子程序返回第41页/共83页第四十一页,共84页 42结构和特点:   缓冲串行口在标准同步串行口基础上增加了一个自动       缓冲单元(ABU),并以CLKOUT频率计时  ABU利用独立于CPU的专用总线,让串行口直接读/写    C54x内部存储(cún chǔ)器这样可使串行口处理事务的开销最    省,并能达到较快的数据率  BSP有两种工作方式:非缓冲方式和自动缓冲方式  ABU具有自身的循环寻址寄存器组,每个都与地址产生   单元相关发送和接收缓冲存储(cún chǔ)器位于一个指定的C54x     DSP内部存储(cún chǔ)器的2K字块中。

      该块可作为通用的存储(cún chǔ)    器,但却是唯一的自动缓冲能使用的存储(cún chǔ)块2)、缓冲(huǎnchōng)同步串行口(BSP) 第42页/共83页第四十二页,共84页 43BDRBDRBCLKRBCLKRBFSRBFSRBCLKXBCLKXBFSXBFSXBDXBDXBRINTBRINTBMINTBMINTBXINTBXINTC54xC54x内存界面自动缓冲单元 ABUABU控制XRDY RRDY BXINT BMINT BRINTXRDY RRDY BXINT BMINT BRINTBDXRBDXRBSPCEBSPCEBXSRBXSRBRSRBRSR串口控制逻辑BSPCBSPCBDRRBDRR中断控制C54xC54xCPUCPU界面中断逻辑1611第43页/共83页第四十三页,共84页 44组成(zǔ chénɡ)(zǔ chénɡ):数据(shùjù)接收寄存器BDRR数据(shùjù)发送寄存器BDXR控制寄存器BSPC 控制扩展寄存器BSPCE数据(shùjù)接收移位寄存器BRSR数据(shùjù)发送移位寄存器BXSR 串口控制逻辑中断控制逻辑自动缓冲单元ABU第44页/共83页第四十四页,共84页。

      45缓冲(huǎnchōng)(huǎnchōng)串行口的工作模式 (1 1)缓冲串行口标准(biāozhǔn)(biāozhǔn)模式(2 2)缓冲串行口增强模式 可编程串口时钟频率(pínlǜ)(pínlǜ)时钟和帧同步信号的极性可选除8 8、1616位字长外,1010、1212位字长数据转换可选新增功能 第45页/共83页第四十五页,共84页 46自动(zìdòng)缓冲单元 ABU可独立于CPU自动(zìdòng)完成控制串口与固定缓冲内存区中的直接数据交换,实现串行口与CPU并行操作功能(gōn(gōngnénggnéng) )组成地址寄存器AXR块长度发送寄存器BKX地址接收寄存器ARR块长度接收寄存器BKR串口控制寄存器BSPCE 5个存储器映射寄存器第46页/共83页第四十六页,共84页 47自动缓冲(huǎnchōng)过程可归纳为:①① ABU完成对缓冲(huǎnchōng)存储器的存取②② 工作过程中地址寄存器自动增加,直至缓冲(huǎnchōng)区的底部到底部后,地址寄存器内容恢复到缓冲(huǎnchōng)存储器区顶部③③ 如果数据到了缓冲(huǎnchōng)区的一半或底部,就会产生中断,并更新BSPEC中的XH/RH,以表明那一部分数据已经被发送或接收。

      ④④ 如果选择禁止自动缓冲(huǎnchōng)功能,当数据过半或到达缓冲(huǎnchōng)区底部时,ABU会自动停止缓冲(huǎnchōng)功能第47页/共83页第四十七页,共84页 48循环(xúnhuán)(xúnhuán)寻址原理       装载BKX/R确定缓冲区长度,装载ARX/R给出2K字缓冲区基地址和缓冲区数据起始地址实现(shíxiàn)初始化BKX/R从高位至低位方向第一个1的位置N位将ARX/R分为ARH和ARL两部分,缓冲区顶部地址(TBA)由高位为ARH,而低位为N+1个0组成的数定义缓冲区底部地址(BBA)由ARH和BKL-1决定而当前数据缓冲区的位置由ARX/R的内容决定ARX/R的内容会随着每一次访问继续增加直至到下一个允许的缓冲区开始地址然后在后续的存取操作中,作为更新的循环缓冲开始地址,新的ARX/R内容用来进行正确的循环缓冲地址计算 第48页/共83页第四十八页,共84页 49循环(xúnhuán)(xúnhuán)寻址原理示意图 BKX/RBKX/RARX/RARX/RARHARHARLARL0…00…01…1…BBABBATBATBA缓冲区当前位置 ARHARHBKLBKLARHARHBKL>>1BKL>>1ARHARH0…00…0下半部开始 缓冲区顶部 上半部分 缓冲区底部下半部分 第49页/共83页第四十九页,共84页。

      503)、时分(shífèn)多路串行口 TDM  时分多路串行口允许C54x可以与最多 8个其它器件进行时分复用串行通信,从而提供了简单有效的多处理器应用接口 时分复用:是将与不同(bù tónɡ)器件的通信接口时间依次划分为不同(bù tónɡ)的时间段,周期性地分别按时间顺序与不同(bù tónɡ)器件通信的工作方式第50页/共83页第五十页,共84页 51非TDM方式(fāngshì) =标准串口 TDM方式(fāngshì) 当TSPC的TDM=1 工作(gōngz(gōngzuò)uò)方式相关寄存器TDM数据(shùjù)接收寄存器TRCVTDM数据(shùjù)发送寄存器TDXRTDM串口控制发送寄存器TSPCTDM通道选择寄存器TCSRTDM发送/接收地址寄存器TRTATDM接收地址寄存器TRADTDM数据(shùjù)接收移位寄存器TRSRTDM数据(shùjù)发送移位寄存器TXSR 第51页/共83页第五十一页,共84页 52C54xTDX TDR TFSX TFSR TCLKX TCLKR器件0 0器件1 1器件7 7……TDM时分(shífèn)多路串口连接第52页/共83页第五十二页,共84页。

      534)、多通道缓冲(huǎnchōng)同步串行口(McBSP) 特点(tèdiǎn)(tèdiǎn):l 全双工通信l双倍的发送缓冲和3倍的接收缓冲数据寄存器,允许连续的数据流传输l独立的接收、发送帧和时钟信、极性可编程l具有外部移位时钟发生器和内部频率可编程移位时钟l可直接利用多种串行协议接口通讯l发送和接收通道数最多可达128路l数据传输格式可选择8、12、16、20、24、32位字长l内置u律和A律硬件压缩扩展通信l8位数据传输可选择LSB或MSB先传l可以直接与工业标准(biāozhǔn)的编解码器、模拟接口芯片及串行A/D D/A器件接口第53页/共83页第五十三页,共84页 54第54页/共83页第五十四页,共84页 55McBSP的结构  一个McBSP串口有7个引脚   DSP核通过片内外设总线访问和控制McBSP的内部控制     寄存器和数据接收/发送寄存器  寄存器的子寻址的工作方式(fāngshì),指的是多路复用技术,可    以实现一组寄存器共享存储器中的一个单元可以使用    少量的寄存器映射存储器空间来访问McBSP的20多个寄     存器 第55页/共83页第五十五页,共84页。

      56McBSP控制寄存器       McBSP通过两个16比特串口控制寄存器1和2(SPCR[1,2])和管脚控制寄存器(PCR)进行配置,这些寄存器包含McBSP的状态(zhuàngtài)信息和控制信息      串行接口接收控制寄存器SPCR1 、SPCR2      引脚控制寄存器PCR       接收控制寄存器RCR1 、RCR2       发送控制寄存器XCR1 、XCR2       除SPCR[1,2]和PCR之外,McBSP还配置了接收控制寄存器RCR[1,2]和发送控制寄存器XCR[1,2]来确定接收和发送操作的参数 第56页/共83页第五十六页,共84页 57McBSP的数据发送和接收(jiēshōu)的操作流程3个阶段:串口的复位、串口的初始化、数据发送和接收(jiēshōu) ①① 串口的复位  芯片复位             引发的串行复位使整个串行口复位,包括接口发送器、接收(jiēshōu)器、采样率发生器的复位     串行接口的发送器和接收(jiēshōu)器可以利用串行接口控制寄存器(SPCR1和SPCR2)中的              和               位分别独自复位。

       第57页/共83页第五十七页,共84页 58②②串口的初始化(1) 设定串口控制寄存器SPCR[1,2]中的                                 如果刚刚复位完毕,不必进行这一步操作2) 编程配置特定的McBSP的寄存器3) 等待2个时钟周期,以保证适当的内部同步4) 按照(ànzhào)写DXR的要求,给出数据5) 设置                          ,以使能串行接口6) 如果要求内部帧同步信号,设置                 7) 等待2个时钟周期后,激活接收器和发送器第58页/共83页第五十八页,共84页 59③③数据发送和接收(jiēshōu)的操作 接收(jiēshōu)操作是三缓冲的  接收(jiēshōu)数据→数据接收(jiēshōu)引脚DR→ 接收(jiēshōu)移位寄存器RSR[1,2]                                                     → 接收(jiēshōu)缓冲寄存器RBR[1,2]                                                      → 数据接收(jiēshōu)寄存器DRR[1,2]。

      发送操作是双缓冲的CPU或DMA将发送数据→数据发送寄存器DXR[1,2]中                                          →发送移位寄存器XSR[1,2];                                          →从DX移出发送数据  第59页/共83页第五十九页,共84页 60     McBSP串口应用举例(jǔ lì)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中第60页/共83页第六十页,共84页。

      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    ;发送(fā sònɡ)为单相,每帧16位STM PCR, McBSP1_SPSA       ;将PCR对应的子地址放到子地                                                       址寄存器SPSA中STM #000eh, McBSP1_SPSD    ;工作于从模式第61页/共83页第六十一页,共84页。

      62中断:中断:CPUCPU终止正在执行的程序,转去执行一个请求中断的终止正在执行的程序,转去执行一个请求中断的内部或外部的中断服务程序,待处理完毕后,又返回内部或外部的中断服务程序,待处理完毕后,又返回(fǎnhuí)(fǎnhuí)到被终止的源程序处继续执行这一过程称为中到被终止的源程序处继续执行这一过程称为中断;断;中断系统:为实现中断功能而设置的各种硬件和软件中断系统:为实现中断功能而设置的各种硬件和软件                                C54x DSP        C54x DSP既支持软件中断,也支持硬件中断当同时既支持软件中断,也支持硬件中断当同时有多个硬件中断出现时,有多个硬件中断出现时,C54x DSPC54x DSP按照中断优先级别的高按照中断优先级别的高低对它们进行服务低对它们进行服务     四、C54x的中断(zhōngduàn)系统第62页/共83页第六十二页,共84页 63•受外部中断口信号触发(chùfā)(chùfā)的 外部硬件中断•受片内外围电路信号触发(chùfā)(chùfā)的内部硬件中断 程序(chéngxù)指令INTR TRAP RESET 中断中断(zhōngduàn)来源来源软件驱动硬件驱动第63页/共83页第六十三页,共84页。

      64C54x DSP的中断可以分成两大类:的中断可以分成两大类:第一类是可屏蔽中断这些都是可以用软件来屏蔽或开放的硬件第一类是可屏蔽中断这些都是可以用软件来屏蔽或开放的硬件和软件中断和软件中断C5402只使用只使用14个可屏蔽中断个可屏蔽中断     ①①             ~~             ;;     ②② RINT0、、XINT0、、RINT1和和XINT2(串行口中断串行口中断)     ③③ TINT0、、TINT1(定时器中断定时器中断)     ④④ HPINT(主机接口中断主机接口中断)DMAC0~~DMAC52) 第二类是非屏蔽中断这些中断是不能够屏蔽的,第二类是非屏蔽中断这些中断是不能够屏蔽的,C54x对这对这一类中断总是响应,并从主程序转移到中断服务程序一类中断总是响应,并从主程序转移到中断服务程序C54x DSP的非屏蔽中断包括所有的软件中断,以及两个外部的非屏蔽中断包括所有的软件中断,以及两个外部(wàibù)硬件中断:硬件中断:      (复位复位)和和             第64页/共83页第六十四页,共84页 65可屏蔽中断非屏蔽中断中断可以用软件屏蔽(píngbì)(píngbì)中断或开放中断C54xC54x总是响应所有软件中断和两个(liǎnɡ ɡè)(liǎnɡ ɡè)外部硬件中断  、 (非屏蔽中断)第65页/共83页第六十五页,共84页。

      66非屏蔽中断:不能由用户用软件来屏蔽的中断特点:一旦有非屏蔽中断请求,CPU必须予以响应用途:用于某些十分重要的事件发生(fāshēng),如:掉电;可屏蔽中断:用户根据需要可用软件开放或禁止中断特点:软件指令控制,灵活方便用途:一般事件处理   第66页/共83页第六十六页,共84页 67中断处理一般过程:             • 中断源请求中断;中断标志寄存器(IFR)              • CPU响应中断;预定义条件的满足              • 保护现场;             • 转中断服务(fúwù);             • 恢复现场;             • 中断返回; 第67页/共83页第六十七页,共84页 681. 中断(zhōngduàn)标志寄存器(IFR)         当一个中断(zhōngduàn)出现的时候,IFR中相应的中断(zhōngduàn)标志位置1,直到中断(zhōngduàn)得到处理为止 共14个有效标志位(可屏蔽中断(zhōngduàn)): 外部中断(zhōngduàn)4个(INT0--INT3) 定时器中断(zhōngduàn)2个(TINT0--TINT1) 串口定时器4个(两发/两收) DMA中断(zhōngduàn)3个(DMAC0. 4. 5) HPI中断(zhōngduàn)1个 ;第68页/共83页第六十八页,共84页。

      69 2.  中断屏蔽(píngbì)寄存器(IMR)        是一个存储器映像的CPU寄存器,主要用来屏蔽(píngbì)外部和内部中断说明(说明(1 1)) 共共1414个有效位(与个有效位(与IFRIFR对应对应(duìyìng)(duìyìng))) ((2 2)) 当当IMRi=0 IMRi=0 屏蔽该中断;屏蔽该中断; IMRi =1 IMRi =1 不屏蔽该中断不屏蔽该中断 第69页/共83页第六十九页,共84页 70 3. 中断方式(fāngshì)控制位(INTM)说明:a) INTM是CPU状态寄存器ST1中的1位(第11位) b) 功能(gōngnéng): c) 操作(cāozuò): d) 该控制位不影响不可屏蔽中断 RS , NMI e) 该控制位不能用存储操作命令设置 第70页/共83页第七十页,共84页 71接收、应答及处理(chǔlǐ)中断1. 接收中断请求         产生一个中断请求时,IFR中相应的中断标志位被置位。

      不管中断是否被处理(chǔlǐ)器应答,该标志位都会被置位当相应的中断响应后,该标志位自动被清除一个中断由硬件器件或软件指令请求 (1) 硬件中断请求    硬件中断有外部和内部两种   第71页/共83页第七十一页,共84页 72 (2) 软件(ruǎn jiàn)中断请求    软件(ruǎn jiàn)中断由程序中的指令INTR、TRAP和 RESET产生注:• PC=中断向量地址指针+中断向量号 • 该指令允许执行任何可屏蔽中断 • 该指令不影响(yǐngxiǎng)IFR标志位 • 不允许中断嵌套a) INTR KINTR K;第72页/共83页第七十二页,共84页 73 b) TRAP K;除INTM不变外,其它同上 注:• 可实现中断嵌套 • 可用软件指令在TRAP中服中置位INTM c) RESET 注:• 功能(gōngnéng):使处理器返回一个预定状态 • 复位指令:可在程序的任何时候产生; • 该指令影响ST0, ST1,不影响PMST < CPU方式控制R > 第73页/共83页第七十三页,共84页。

      74 2. 应答中断 硬件或软件中断发送了一个中断请求后,CPU必须决定是否应答中断请求 软件中断和非屏蔽硬件中断会立刻被应答; 屏蔽中断仅仅在如下条件被满足后才被应答 (1) 优先级别最高(当同时出现一个以上中断时) (2) 状态寄存器 ST1中的INTM位为0 (3) 中断屏蔽寄存器IMR中的相应位为1 CPU响应中断时,让PC转到适当的地址取出中断向量,并发出中断响应信号(xìnhào),清除相应的中断标志位第74页/共83页第七十四页,共84页 753. 执行中断服务程序(ISR) (1) 将PC值(返回地址)存到数据(shùjù)存储器堆栈的栈顶; (2) 将中断向量的地址加载到PC; (3) 在中断向量地址上取指; (4) 执行分支转移指令,转至中断服务程序(如果延迟分支转移,则在转移前先执行附加的指令); (5) 执行中断服务程序; (6) 中断返回,从堆栈弹出返回地址加到PC中; (7) 继续执行被中断了的程序 第75页/共83页第七十五页,共84页 76中断( (z zh hō ōn ng gd du uà àn n) )操作流程第76页/共83页第七十六页,共84页。

      77中断向量地址(dìzhǐ)(dìzhǐ)计算:复位后的初始地址(dìzhǐ)(dìzhǐ)计算(1 1)取中断向量指针IPTRIPTR(PMST15-7PMST15-7)的值 (2 2)查表得中断向量序号(3 3)将十进制的中断向量序号左移2 2位 ( 4 4) 将 ( 1 1) 与 ( 3 3) 相 加 即 得 中 断 向 量 地 址(dìzhǐ)(dìzhǐ)第77页/共83页第七十七页,共84页 78中断号中断号优先权优先权中断名称中断名称中断地址中断地址功能功能01RS/SINTR0复位(硬件复位(硬件/软件)软件)12NMI/SINTR4不可屏蔽中断不可屏蔽中断2-SINT178软件中断软件中断#173-SINT18C软件中断软件中断#184-SINT1910软件中断软件中断#195-SINT2014软件中断软件中断#206-SINT2118软件中断软件中断#217-SINT221C软件中断软件中断#228-SINT2320软件中断软件中断#239-SINT2424软件中断软件中断#2410-SINT2528软件中断软件中断#2511-SINT262C软件中断软件中断#2612-SINT2730软件中断软件中断#2713-SINT2834软件中断软件中断#2814-SIN2938软件中断软件中断#2915-SIN303C软件中断软件中断#30163INT0/SINT040外部中断外部中断 0174INT1/SINT144外部中断外部中断 1185INT2/SINT248外部中断外部中断 2196TINT/SINT34C内部定时中断内部定时中断207RINT0/SINT450串口串口 0 接收中断接收中断218XINT0/SINT554串口串口 0 发送中断发送中断229RINT0/SINT658串口串口 1 接收中断接收中断2310RINT1/SINT75C串口串口 0 发送中断发送中断2411XINT1/SINT860外部中断外部中断 32512HPINT/SINT964HPI 中断中断2613BRINT1/SINT1068缓冲串口接收中断缓冲串口接收中断2714BINT1/SINT116C缓冲串口发送中断缓冲串口发送中断28~3170~7F保留保留第78页/共83页第七十八页,共84页。

      79例:若IPTR=0 0000 0001,试给出外部中断(zhōngduàn)INT0的中断(zhōngduàn)向量地址解:查表得INT0的中断(zhōngduàn)序号为16,则INT0的中断(zhōngduàn)向量地址为00C0H第79页/共83页第七十九页,共84页 80IPTR=1 1 1 1 1 1 1 1 1IPTR=1 1 1 1 1 1 1 1 1 + + = = 0 0 0 0 0 0 0 0 0 0 0 0 0 0  1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0    F F F F 8 8 0 0 h h例:若IPTR=1 1111 1111,求软硬件复位的中断向量地址解:查表得RS的中断序号为0,则中断向量地址为:故软硬件复位后的开始地址为0FF80h0FF80h,中断服务程序:从FF80HFF80H单元开始存放(通常放一条转移(zhuǎnyí)(zhuǎnyí)指令,转到应用程序的入口处) 第80页/共83页第八十页,共84页。

      81例:已知外部中断例:已知外部中断1 1 1 1的中断服务的中断服务(fúwù)(fúwù)(fúwù)(fúwù)入口地址为入口地址为2500H2500H2500H2500H,中断向,中断向 量地址指针为量地址指针为1F0H,1F0H,1F0H,1F0H,试述中断实现过程试述中断实现过程解:解:INT1INT1INT1INT1中断向量序号为中断向量序号为17171717((11H11H11H11H)) 第81页/共83页第八十一页,共84页     TMS320C54X    TMS320C54X的中断系统(小结)的中断系统(小结)       •     • 中断源:最多中断源:最多3232个(个(4 4个保留个保留(bǎoliú)(bǎoliú))其中)其中:  : 硬件硬件1414个个 /  / 软件软件1616    •     • 非屏蔽(不可)中断非屏蔽(不可)中断1616个个 /  / 可屏蔽中断可屏蔽中断1616个个    •     • 优先级:最多优先级:最多1414级级// //复位中断:复位中断:1 1级(最高),级(最高),NMI NMI ::2 2级级……    •     • 可实现多级嵌套可实现多级嵌套    •     • 软件和非屏蔽中断:软件和非屏蔽中断: CPU CPU立即响应,并进入中断服务程序。

      立即响应,并进入中断服务程序    •     • 硬件可屏蔽中断硬件可屏蔽中断:  : 满足以下满足以下3 3个条件后在个条件后在3-83-8机器周期之间响应机器周期之间响应              ①①①①   当前的中断源相应当前的中断源相应IFRIFR标志为标志为=1=1,且优先级为最高;,且优先级为最高;              ②②②② IMR=1 IMR=1(不屏蔽);(不屏蔽);              ③③③③ INTM=0( INTM=0(中断允许中断允许) );;    •      •  中断向量(地址):中断向量(地址):IPTR + IPTR + 中断向量序号中断向量序号 <<2 <<2第82页/共83页第八十二页,共84页 83感谢您的欣赏(xīnshǎng)!第83页/共83页第八十三页,共84页 内容(nèiróng)总结1优点(yōudiǎn):HPI不需要或只需要很少外部逻辑就能和很多不同BOB :字节选择位,BOB会影响数据和地址传输DSP1两个单元中分别为两个8位数——串行口BKL>>1将XCR1 对应的子地址放到子将XCR2对应的子地址放到子。

      程序指令INTR TRAP RESET硬件或软件中断发送了一个中断请求后,CPU必须决定是否应答中断请求6) 中断返回,从堆栈弹出返回地址加到PC中感谢您的欣赏第八十四页,共84页。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.