DSP原理及应用PPT教程-第二章 DSP芯片结构和CPU外围电路.ppt_第1页
DSP原理及应用PPT教程-第二章 DSP芯片结构和CPU外围电路.ppt_第2页
DSP原理及应用PPT教程-第二章 DSP芯片结构和CPU外围电路.ppt_第3页
DSP原理及应用PPT教程-第二章 DSP芯片结构和CPU外围电路.ppt_第4页
DSP原理及应用PPT教程-第二章 DSP芯片结构和CPU外围电路.ppt_第5页
免费预览已结束,剩余118页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章 dsp芯片结构和cpu外围电路,讲课内容: 1)tms320c55x处理器的特点 2)tms320c55x处理器的cpu结构 3)tms320c55x处理器的cpu外围电路,2.1 dsp芯片结构,第二章 dsp芯片结构和cpu外围电路,第二章 dsp芯片结构和cpu外围电路,2.1 dsp芯片结构 2.1.1 tms320c55x处理器的特点 采用改进的哈佛结构。1条读程序数据总线(pb),5条数据总线(bb,cb,db,eb,fb),和他们对应的6条地址总线(pab,bab,cab, dab,eab,fab) 40位和16位的算术逻辑单元(alu)各1个, 1个40位的移位器 4个40位的累加器(ac0,ac1,ac2,ac3)和(t0,t1,t2,t3) 1717比特的硬件乘法器和一个40比特专用加法器的组合(mac) 比较、选择和存储单元 数据地址产生单元(dagen)和程序地址产生单元(pagen) 数据空间和和程序空间位同一物理空间,采用统一编址,第二章 dsp芯片结构和cpu外围电路,2.1.2 tms320c55x cpu cpu有4个功能单元:指令缓冲单元(i单元),程序流程单元(p单元) ,地址数据流程单元(a单元)和数据计算单元(d单元) cpu结构示意图,第二章 dsp芯片结构和cpu外围电路,1、指令缓冲单元(i unit),由指令缓冲队列(ibq)和指令译码器构成。 i单元从程序数据总线接收程序指令代码(每次接收32比特程序代码)放到ibq(最多可存放64字节的未译码指令)中。 指令译码器从指令缓冲队列中取指令(每次取6字节的程序代码)进行变长8/16/24/32/48位)指令译码。 译码后的数据分别送到p单元,a单元,d单元处理。,指令缓冲单元(i单元)图,第二章 dsp芯片结构和cpu外围电路,2、 程序流程单元(p unit) 组成:p单元由程序地址产生逻辑电路和一组寄存器组构成。 主要功能产生所有i单元读取指令所需的24比特程序地址、控制指令读取顺序。 一般情况下,产生的都是(连续)顺序地址。在遇到指令要求读取非连续地址程序代码时,也可以根据来自 i单元的立即数和d单元的寄 存器值产生所需的地址,并将产生地址送到pab。,程序流程p单元结构图,第二章 dsp芯片结构和cpu外围电路,在程序流程单元中,控制和影响程序地址的寄存器有5类: 1)程序流程寄存器,包括:pc程序计数器,reta返回地址寄存器,cfct控制流程关系寄存器; 2)块重复寄存器,包括:brc0、brc1块重复寄存器0和1、rsa0、rsa1块重复起始地址寄存器, rea0、rea1块重复结束地址寄存器0和1; 3)单重复寄存器,包括:rptc单重复计数器,csr计算单重复寄存器; 4)中断寄存器,包括:ifr0、ifr1(标志),ier0、ier1(使能),dbier0、dbier1(调试中断使能); 5)状态寄存器:st0_55、 st1_55、 st2_55、 st3_55,第二章 dsp芯片结构和cpu外围电路,3、地址流程单元(a unit) 功能和组成: 产生读写数据空间的地址。 由数据地址产生电路(dagen),16比特的算术逻辑alu电路和一组寄存器构成。 dagen 可以根据i单元的立即数和本a单元的寄存器数据产生读写数据空间的所有地址。在间接寻址中,还需要有p单元来指示采用那种寻址模式。,地址流程单元结构图,第二章 dsp芯片结构和cpu外围电路,a单元16位alu的功能 能接收i单元数据,又能够和存储器、i/o空间、a单元寄存器、d单元寄存器和p单元寄存器进行数据交换,完成算术、逻辑、位操作、移位、测试、旋转等操作。a单元包括的寄存器有下列4种类型: 1)数据页寄存器(data page register):dph、dp、(接口数据页)pdp 2)指针寄存器(pointers):cdph、cdp系数数据、sph、sp、ssp栈、xar0xar7辅助 3)循环缓冲寄存器(circular buffer registers):bk03、 bk47、bkc大小,bsa01、 bsa23、bsa45、bsa67、 bsac起始地址 4)临时寄存器(temporary registers):t0t3,第二章 dsp芯片结构和cpu外围电路,4、数据计算单元(d unit) d单元包括了cpu的主要计算部件,能够完成高效的计算功能。 组成:移位器、40比特算术逻辑alu电路、两个乘累加器(mac)和若干寄存器组构成。 移位器 d单元移位器能够接收来自i单元的立即数,与存储器、i/o空间、a单元寄存器、d单元寄存器和p单元寄存器进行双向通信。此外,还向d单元的alu和a单元的alu提供移位后的数据。,数据计算单元结构图,第二章 dsp芯片结构和cpu外围电路,2.1.3 cpu外围电路:除cpu以外的一些功能单元和外部接口。 时钟发生器(clock) 定时器(timer) 多通道缓冲串口(mcbsp) 主机接口(ehpi) 外部存储器接口(emif) 通用输入/输出口(gpio) 片内存储区(momery) dma控制器 高速指令缓冲存储器 (instruction cache),第二章 dsp芯片结构和cpu外围电路,2.2时钟发生器 1、工作模式 (1) 功能 将输入时钟clkin变为cpu及外围电路所需要的工作时钟。 通过时钟输出脚clkout输出,供其它器件使用。 (2) 组成 时钟发生器由一个数字锁相环(dpll)和一个模式控制寄存器(clkmd)组成。,第二章 dsp芯片结构和cpu外围电路,(3) 两种工作模式(模式控制寄存器标志位的定义),若pll_enable0,dpll工作于旁路(bypass)模式。 若pll_enable1,dpll工作于锁定(lock)模式。,旁路模式中:dpll只对输入时钟clkin作简单的分频,分频次数由bypass_div字段确定。 若bypass_div00,为一分频,即clkout等于clkin。 若bypass_div01,为二分频,即clkout等于clkin的一半。 若bypass_div1x,为四分频,即clkout等于clkin的四分之一。,第二章 dsp芯片结构和cpu外围电路,锁定模式中 dpll锁相环对输入时钟cklin进行跟踪锁定,可得到如下输出的时钟频率: pll_mult:锁定模式下的倍频次数,取值0到31 pll_div: 锁定模式下的分频次数,取值0到3。,5比特,2比特,第二章 dsp芯片结构和cpu外围电路,4、使用方法 (1) dsp复位对时钟发生器的影响 在dsp复位期间和复位后,dpll工作于旁路模式,此时的分频次数(bypass_div)由clkmd管脚上的电平确定,从而确定了它的输出时钟频率。 若clkmd管脚为低电平,则bypass_div00,clkout等于clkin。 若clkmd管脚为高电平,则bypass_div01,clkout等于clkin的一半。,第二章 dsp芯片结构和cpu外围电路,(2)失锁对时钟发生器的影响 锁相环是通过对输入基准时钟进行跟踪锁定来稳定其输出时钟的,在锁定之后,由于某些因素使其输出时钟发生偏移,即失锁。发生失锁时,dpll的动作由iob字段控制: 若iob1,时钟电路会自动切换到旁路模式,并重新开始跟踪锁定过程,在锁定后又自动切换回锁定模式。 若iob=0,dpll会继续输出时钟,而不管锁相环是否失锁,第二章 dsp芯片结构和cpu外围电路,(3) 省电状态对时钟发生器的影响 当时钟发生器退出省电(idle)状态时,不管进入省电状态之前工作于什么模式,dpll都会切换到旁路模式,并由iai字段确定进一步操作: 若iai1,dpll将重新开始整个跟踪锁定过程。 若iai=0,dpll将使用与进入省电模式之前相同的设置进行跟踪锁定,第二章 dsp芯片结构和cpu外围电路,5、dpll模式控制寄存器clkmd (1) breakln为失锁指示(只读) 0:表示由于某种原因引起pll失锁; 1:表示处于锁定状态,或发生对clkmd寄存器的写操作。 (2) lock为锁定模式指示(只读) 0:表示dpll处于旁路模式 1:表示dpll处于锁定模式,第二章 dsp芯片结构和cpu外围电路,6、时钟发生器应用举例 问题:假定输入时钟频率clkin为20mhz,而dsp需要的工作时钟为160mhz。 解: (1)需要将时钟发生电路设为锁定模式; (2)根据倍频次数pll_mult与分频次数pll_div的关系,pll_mult =8(pll_div+1),pll_div和pll_mult为(0,8),(1,16),(2,24)或(3,32),第二章 dsp芯片结构和cpu外围电路,(3) 取pll_div和pll_mult为(0,8),要求dpll失锁或退出省电状态后重新锁定,即iob=iai=1。 例程如下: mov #0x6413,port(#clkmd) 0110 0100 0001 0011,第二章 dsp芯片结构和cpu外围电路,2.3通用定时器 一、组成和框图 c5509 dsp片内有两个定时器:timer0,timer1; 具有定时或计数功能。计数器在每个时钟周期减1,当减到0就产生一个输出信号。该输出信号可用于中断cpu或触发dma传输(称为定时器事件)。 定时器由时钟、控制寄存器、计数器和定时器事件等部分构成。,第二章 dsp芯片结构和cpu外围电路,1、时钟部分 可采用内部cpu时钟; 也可采用来自tin/tout管脚的外部输入时钟。 2、两个定时器 一个用于定时器工作(递减方式) 一个用于cpu读写(设置定时长度),3、定时器事件 产生三个输出信号:cpu中断、dma同步事件、tin/tout管脚输出信号。,第六章 dsp芯片内的cpu外围电路,二、时钟部分 定时器的工作时钟可来自dsp内部的cpu时钟,也可来自tin/tout管脚输入的外部时钟。具体时钟源的选择和tin/out管脚的功能由控制寄存器tcr中的func字段确定。 func00时,tin/tout为高阻态,时钟源为cpu时钟。该模式为复位后的缺省模式。 func=01时,tin/tout为定时器输出,时钟源为cpu时钟,可以输出时钟信号或脉冲信号。 func=10时,tin/tout为通用输出,时钟源为cpu时钟。此时,tin/out作为通用输出,其电平由控制寄存器tcr中的datout字段确定。 func=11时,tin/tout为时钟源输入,定时计数器将在其上升沿递减。,第二章 dsp芯片结构和cpu外围电路,三、计数器部分 c5509定时器的计数器分为两类: 一类用于定时器工作, 一类用于cpu设置定时长度。 定时长度为20比特:4比特的预定标器和16比特的主计数器。其中,4比特的预定标值由预定标寄存器prsc定义:16比特主定时器的值由定时周期寄存器prd定义。,第二章 dsp芯片结构和cpu外围电路,定时器的工作方式 设定时器的工作时钟周期为tclock,则定时长度t可用下式计算: 定时器的设置步骤 cpu将定时长度的预定标值和周期值分别写入tddr和prd 将控制寄存器tcr中的tlb设为1,使定时器把prd值和 tddr值分别拷贝到它的工作寄存器tim和psc中。 把控制寄存器tcr中的tss字段设为0启动定时器。,ttclock(prd+1)(tddr+1),第二章 dsp芯片结构和cpu外围电路,四、定时器控制寄存器tcr idle_en:省电控制使能位,0:禁止省电模式,1:允许省电模式 int/ext:时钟源从内部切换到外部的指示标志,当时钟源从内部切换到外部要检测此位来决定是否准备好使用外部时钟。 0:定时器没准备好使用外部时钟, 1:定时器准备好使用外部时钟。 err_tim:定时器错误标志,0:正常,1:错误,第二章 dsp芯片结构和cpu外围电路,func:定时器工作模式选择; tlb:定时长度拷贝控制,0:停止拷贝,1:拷贝 soft和free:在仿真时遇到高级语言调试器断点时的处理方式 00:定时器立刻停止 01和11:定时器继续运行 10:在主计数器tim减为0时停止。 pwid:tin/tout管脚输出脉冲的宽度。 当pwid00时,tin/tout输出脉宽为1个clkout周期 当pwid01时,tin/tout输出脉宽为2个clkout周期 当pwid10时,tin/tout输出脉宽为4个clkout周期 当pwid11时,tin/tout输出脉宽为8个clkout周期,第二章 dsp芯片结构和cpu外围电路,arb:自动重装控制。 0:不自动重装, 1:自动重装, 即每次tim减为0时,定时器又会把prd值和tddr值分别拷到tim和psc,继续定时。 tss:定时器停止控制,0:启动,1:停止 c/p:tin/tout引脚输出脉冲/时钟选择,0:输出脉冲,1:输出时钟。 polar:tin/tout引脚输出信号的极性,0:正极性,1:负极性 datout:tin/tout引脚作通用输出时的电平,0:低电平,1:高电平,第二章 dsp芯片结构和cpu外围电路,五、应用举例 假定定时器0的工作时钟为160mhz,请配置定时长度为5ms的定时器。 解:根据定时器公式: 即(prd+1)(tddr+1)800000 取tddr=15(0x0f)、prd=49999(0xc34f)。完成这一定时长度的程序如下: mov #0x000f,port(#prsc0) ;写入预定标值。 mov #0xc34f, port(#prd0) ;写入周期值 mov #0x0fd0,port(#tcr0) ;将prd0和tddr0分别拷贝到 tim0和psc0 mov #0x0bc0,port(#tcr0);tlb=tss=0,停止拷贝,开始定时,第二章 dsp芯片结构和cpu外围电路,2.4 外部存储器接口emif,tms320c5509 dsp的外部存储器接口emif有: 16位的数据总线d15:0 ; 4个片选输出ce3:0和其它多种控制信号。 能支持多种不同类型的外部存储器件。,片选空间 emif接口的4个片选空间对应的地址如图所示。,st3_55中的mpnmc字段控制片内rom的使用 1:ce3空间长度为4mb 0:后32kb空间被片上rom占用。,第二章 dsp芯片结构和cpu外围电路,一、与外部存储器接口方法 c5510 dsp的外部存储器接口emif可以提供高度灵活的接口方式,每个片选都可以连接不同类型的存储器件,单独设置读写时序参数等。 支持的接口有: 包括异步 sram、rom、flash(闪速存储器) 、eprom等,emif能够提供可配置的定时参数,提供高度灵活的存储器时序。每个接口都可以支持 程序代码访问 32bit数据访问、16bit数据访问、8bit数据访问。,第二章 dsp芯片结构和cpu外围电路,1、片选控制寄存器cex_1 (x=03) 根据片选控制寄存器中的mtype段来设置访问类型。 mtype 000:异步,8比特宽 mtype 001:异步,16比特宽 mtype 010:保留 mtype 011:16比特宽的sdram,第二章 dsp芯片结构和cpu外围电路,2、异步存储器接口方案,ardy:异步访问就绪指示,使emif可以延缓异步访问速度。,a13:0:14位地址数据总线。,d15:0: 16位数据总线,第二章 dsp芯片结构和cpu外围电路,emif的异步读操作时序,地址有效,读选通有效,外部器件没准备好,第二章 dsp芯片结构和cpu外围电路,emif的异步写操作时序,第二章 dsp芯片结构和cpu外围电路,与emif的异步接口有关的寄存器 全局控制寄存器egcr 全局复位寄存器emi_rst 总线错误状态寄存器emi_be 片选0空间控制寄存器1/2/3 ce0_1/ce0_2/ce0_3 片选1空间控制寄存器1/2/3 ce1_1/ce1_2/ce1_3 片选2空间控制寄存器1/2/3 ce2_1/ce2_2/ce2_3 片选3空间控制寄存器1/2/3 ce3_1/ce3_2/ce3_3,第二章 dsp芯片结构和cpu外围电路,全局控制寄存器egcr(控制4个片选空间的公共参数),memfreq:同步存储器的时钟频率,00:clkem是dsp cpu时钟 01:dsp 时钟的2分频。 wpe:后写使能,0:禁止,1:使能 memcen:同步存储器时钟输出使能,决定clkmem是否使用 ardy:ardy管脚上的输入电平,0:外部器件没有准备好,1:表示准备好。 hold_:hold_管脚上的输入电平。 holda_:holda_管脚上的输出电平。表示dsp对外部总线征用的响应。 nohold:外部总线征用使能。,第二章 dsp芯片结构和cpu外围电路,总线错误状态寄存器emi_be(标志总线错误的类型和位置),如果访问出错,置位寄存器中相应的标志位,表示出错的原因 time:超时错误 ce3/ce2/ce1/ce0:表示访问ce3/ce2/ce1/ce0出错。 dma:dma出错 fbus/ebus/dbus/cbus:表示cpu读或写这些总线出错。 pbus :程序总线出错。,第二章 dsp芯片结构和cpu外围电路,emif 全局复位寄存器emi_rst 任何对emi_rst寄存器的写操作都会复位emif状态机,但是不改变当前的配置,此寄存器不可读。,第二章 dsp芯片结构和cpu外围电路,片选控制寄存器cex_1 (x=03) mtype:存储器的类型 read setup:读建立时间,115个dsp时钟周期 read strobe:读选通时间,115个dsp时钟周期 read hold:读保持时间,03个dsp时钟周期,第二章 dsp芯片结构和cpu外围电路,片选控制寄存器cex_2(x=03) read extended read:读延长保持时间, 13个dsp时钟周期 write extended read:写延长保持时间, 13个dsp时钟周期 write setup:写建立时间, 115个dsp时钟周期 write strobe :写选通时间,115个dsp时钟周期 write hold :写保持时间,03个dsp时钟周期,第二章 dsp芯片结构和cpu外围电路,片选控制寄存器cex_3(x=03) timeout:从选通strobe的第三个周期开始,若在timeout个周期后,仍没有响应,视为访问超时错误。0表示不允许超时,仅对异步存储器起作用。 注意:三个片选控制寄存器中除mtpye外,其它仅对异步存储器的时序阶段设置,对同步存储器不影响。,第二章 dsp芯片结构和cpu外围电路,3、同步动态ram接口 sdram是一种高密度,高速率的同步动态ram,它按行列的方式来组织存储阵列,并通过行列地址对数据读写。 c5509的emif能支持容量为64mbit或128mbit宽度为16位的sdram。,5、应用举例,问题:假定有一个16位宽的异步sram接在emif的片选空间1(ce1)上,要求将c5509片内daram中从地址000060h开始的200个16位的数,写入该sram中从地址208800h开始的数据区域中。 解:mov #0x0000,port(#emi_rst) ;复位emif状态机等待100个周期 rpt #99 ;单指令无条件重复,下条指令重复991100次 nop ;空操作指令,需要的周期数为1 mov #0x000f,port(#egcr) ;禁止同步时钟和总线占用请求 mov #0x121d,port(#ce1_1) ;mtype001,16位异步存储器, ;rsetup2, rstrobe7,rhold1 mov #0319,port(#ce1_2) ;没有延长保持时间,; ;wsetup=3,wstrobe=6,whold=1 mov #0x001f,port(#ce1_3) ;timeout31,第二章 dsp芯片结构和cpu外围电路,amov #000060h,xar0 amov #208800h,xar2 rpt #199 mov dbl(*ar0+),dbl(*ar2+) ;利用ar间接寻址,生存地址之后1 nop,第二章 dsp芯片结构和cpu外围电路,作业: 假定有一个16位宽的异步sram接在emif的片选空间1(ce1)上,要求如下: 将c5510片内daram中从地址000060h开始的100个16位的数,写入该sram中从地址208800h开始的数据区域中。 读/写建立、读/写选通、读/写保持时间均为3个dsp时钟周期。 读/写延长保持时间为2个dsp时钟周期 设计任务: (1) 画出emif与该sram接口连接图 (2) 试编写完成设计要求的程序,第二章 dsp芯片结构和cpu外围电路,2.5 增强型主机接口ehpi c5509dsp有一个16位的增强型主机接口ehpi,可与外部主机相连,使dsp系统受控于外部主机。 ehpi主要有:地址寄存器hpia,数据寄存器hpid,控制寄存器hpic和控制逻辑构成。 通过专门的ehpi通道与dsp内的dma控制器相连,使主机能够访问dsp的片内存储空间和部分外部存储空间。,第二章 dsp芯片结构和cpu外围电路,一、地址/数据 14位的地址总线ha13:0:可以访问16k16的存储空间 数据总线hd 15:0:用于连接外部主机和内部的数据寄存器hpid,支持8比特、16比特的数据访问。 字节选择信号hbe1:0:用于选择访问的字节 hbe1:000:按字的方式访问,使用16位数据总线hd 15:0 hbe1:001:访问字的高8位,使用数据总线的高8位hd 15:8 hbe1:010:访问字的低8位,使用数据总线的低8位hd 7:0,第二章 dsp芯片结构和cpu外围电路,二、选通信号 ehpi的选通信号包括 片选信号hcs_:低电平有效,表示地址线和控制线上的输入为有效输入。 数据选通hds1_和hds2_:用于控制主机访问期间的数据传递。以两个信号的异或非为准,低电平有效,脉冲宽度至少为2个dsp时钟周期。 地址选通has_:只是在复用模式下使用(与地址线ha2共用一个管脚),ehpi在其上升沿有效,将数据总线上的信号锁存到地址寄存器hpia中。,第二章 dsp芯片结构和cpu外围电路,三、控制信号 1、就绪信号hrdy hrdy为低电平:表示ehpi忙,主机需要插入等待时间 hrdy为高电平:表示ehpi已完成本次数据传输,主机可以再次发起访问。 2、读写信号hr/w_ hr/w_为高电平:主机读ehpi 。 hr/w_为低电平:主机写ehpi 。 3、主机中断信号hint_ 用于dsp向主机发送负脉冲形式的中断信号。,第二章 dsp芯片结构和cpu外围电路,4、寄存器访问选择hcntl0和hcntl1(用于选择访问的寄存器) 在非复用模式下只使用hcntl0 hcntl0为低电平:访问ehpi控制寄存器hpic 。 hcntl0为高电平:访问ehpi数据寄存器hpid。 在复用模式下,使用hcntl0和hcntl1来选择要访问的寄存器 hcntl1:0=00:访问ehpi控制寄存器hpic 。 hcntl1:0=01:按地址递增的方式访问数据寄存器hpid。 hcntl1:0=10:访问地址寄存器hpia。 hcntl1:0=11:按随机地址方式访问数据寄存器hpid。,第二章 dsp芯片结构和cpu外围电路,四、ehpi的寄存器 16位的地址寄存器hpia:用于在复用模式下存放地址。工作于自动递增模式时,hpia的值在每次访问后自动加1,因此,只需要设置数据块的起始地址,就可以访问一连续存放的数据。 16位的数据寄存器hpid:用于存放读写的数据。 16位的控制寄存器hpic,152:reserved:保留 1:dspint:主机对dsp的中断,0:清除中断;1:向dsp发送中断请求。 0:reserved:保留,第二章 dsp芯片结构和cpu外围电路,五、ehpi对dsp的复位 dsp的复位信号来自reset管脚,当复位信号为低电平时,dsp复位。 六、接口时序 主机和dsp有两种接口时序方式:非复用方式和复用方式。,第二章 dsp芯片结构和cpu外围电路,非复用模式 hpid用于临时存放要通过ehpi传送的数据。如果是读操作,则hpid中装有在dsp存储区中读到的数据;如果是写操作则hpid中装有要写入dsp存储区的数据。 通过配置控制寄存器hpic可以向dsp发中断,并且可以控制dsp的复位。要访问hpic必须使hcntl0信号为低。,第二章 dsp芯片结构和cpu外围电路,复用模式 (a)为信号被使用时的连接 (b)为高电平(不被使用)时的连接,第二章 dsp芯片结构和cpu外围电路,七、应用举例 用一片c5509(dsp1)的emif与另一片c5509(dsp2)的ehpi相连,dsp1为主机,采用非复用模式于dsp2通信,并由gpio来选择要访问的对象(hpic或数据空间)。 要求dsp1向dsp2中的缓冲区写入一段数据后用中断方式通知dsp2对该段数据进行处理。假定dsp1中的数据缓冲区起始地址为000100h,长度为100个字;dsp2中的数据缓冲区的起始地址为000060,长度为200个字。(连接方式如教材32页所示),第二章 dsp芯片结构和cpu外围电路,dsp1中完成该任务的程序如下: mov #0x000100,xar0 ;源地址 mov #0x200060,xar1 ;目标地址,采用ce1,起始地址为20000h mov #0x0001,port(#iodir) ;配置gpio0为输出 mov #0x0001,port(#iodata) ;gpio0输出高电平 rpt #99 mov *ar0+, *ar1+ mov #0x0000, port(#iodata) ;gpio输出低电平,要访问dsp2的hpic mov #0x0003,*ar1 ; dspint=1,向dsp2发中断。 rpt #3 nop mov #0x0001,*ar1 ; dspint=0,停止向dsp2发中断,gpio0和hcntl0相连, hcntl01,访问数据区,第二章 dsp芯片结构和cpu外围电路,2.6 多通道缓冲串口mcbsp 一、概述 1、mcbsp的功能 全双工通信 双缓冲数据寄存器,允许连续的数据流。 收发独立的帧信号和时钟信号 可以与工业标准的编/解码器,以及其它串行a/d、d/a接口 数据传输可以利用外部时钟、或是片内的可编程时钟。 利用dma为mcbsp服务时,串口数据读写具有自动缓冲能力。,第二章 dsp芯片结构和cpu外围电路,2、其它的特点 可与多达128个通道进行收发; 支持传输的数据字长可以是8bit、12bit、16bit、 20bit、24bit、32bit 内置u律和a律压扩硬件。 对8bit数据的传输,可选择lsb先传,还是msb先传。 可设置帧同步信号和数据时钟信号的极性。 内部传输时钟和帧同步信号可编程程度高。,u律(m-law)压扩主要用在北美和日本等地区的数字电话通信中。m为确定压缩量的参数,它反映最大量化间隔和最小量化间隔之比。a律(a-law)压扩主要用在欧洲和中国大陆等地区的数字电话通信中。a为确定压缩量的参数,它反映最大量化间隔和最小量化间隔之比。,第二章 dsp芯片结构和cpu外围电路,一、基本结构 c5509有三个多通道缓冲串口mcbsp,每个mcbsp可以分为收发通道、时钟与帧同步、多通道选择和串口事件等4部分。mcbsp在外部通过若干管脚与其它串行器件相连,在内部通过16位的外设总线与cpu和dma控制器相连。,外时钟,第二章 dsp芯片结构和cpu外围电路,1、收发通道 接收通道由接收数据管脚dr、接收时钟clkr、接收帧同步fsr、接收移位寄存器rsr、接收缓冲寄存器rbr和数据接收寄存器drr组成。 发送通道由发送数据管脚dx、发送时钟clkx、发送帧同步fsx、发送移位寄存器xsr和数据发送寄存器dxr组成。 数据压扩器,对发送的数据按律或a律压缩再发送,对接收的数据进行扩展。是个可选项,可通过控制寄存器进行选择。 mcbsp的收发通道是相对独立的,可单独使用,也可同时使用。可根据要求对相应的寄存器进行配置。,第二章 dsp芯片结构和cpu外围电路,2、接收通道 接收的数据到达管脚dr,在接收时钟clkr的上升沿(或下降沿)被逐位依次移入rsr。收满一个字后,被拷贝到缓冲寄存器rbr,再拷贝到数据接收寄存器drr,同时设置接收标志位rrdy,并通过串口事件通知cpu或dma已经接到数据。cpu或dma可以通过外设总线从drr读取接收到的数据。,第二章 dsp芯片结构和cpu外围电路,3、发送通道 cpu或dma将数据写入数据发送寄存器dxr,接着拷贝到发送移位寄存器xsr,在发送帧同步fsx后,clkr的上升沿(或下降沿)到来时,xsr的内容被逐位依次移到发送管脚dx上。同时,mcbsp也会设置发完标志xrdy,并通过串口事件通知cpu或dma数据已发出去。 这种多级缓冲方式使得片内的数据搬移和外部数据的通信可以同时进行。,第二章 dsp芯片结构和cpu外围电路,4、时钟与帧同步(时钟和帧同步具有灵活的信号形式和设置手段) mcbsp的时钟与帧同步由一组寄存器和一个采样速率发生器srg组成。用户可以通过寄存器设定相应的参数,采样速率发生器srg就会根据这些参数将输入参考时钟变为所需要的串口时钟和帧同步信号。 (1)采样速率发生器的输入参考时钟 srg的工作原理:通过对输入参考时钟进行分频得到所需要串口时钟和帧同步信号。可供选择的输入参考时钟有4个。 来自clkx脚的发送时钟 来自clkr脚的接收时钟 来自clks脚的输入时钟(外时钟) 来自时钟发生器的cpu时钟,第二章 dsp芯片结构和cpu外围电路,究竟选用哪个时钟,由采样速率发生寄存器2(srgr2)中的clksm字段和管脚控制寄存器(pcr)中的sclkme字段来确定。 当 sclkme0,clksm0时,选择clks脚上的输入信号为输入参考时钟; 当 sclkme 0,clksm1时,选择cpu时钟作为参考时钟; 当 sclkme 1,clksm0时,选择clkr脚上的时钟为参考时钟; 当 sclkme 1,clksm1时,选择clkx脚上的时钟为参考时钟。 (2)采样速率发生器的输出时钟和帧同步 输入的参考时钟经过分频产生srg输出时钟clkg。分频次数由采样速率发生寄存器1(srgr1)中的clkdv字段(8bit)根据如下公式决定:,fclkg =fclocksource /(clkdv+1), 1 clkgdv255,串口的最高时钟速率为cpu时钟的一半,第二章 dsp芯片结构和cpu外围电路,帧同步信号fsg由clkg进一步分频而来,分频次数由采样速率发生寄存器2(srgr2)中的fper(12bit)字段根据如下公式确定: 帧同步脉冲的宽度由抽样速率发生寄存器1(srgr1)中的fwid字段确定: 抽样速率发生器产生的时钟和帧同步信号既可以用来驱动接收通道的时钟和帧同步,也可以用来驱动发送通道的时钟和帧同步。,ffsg= fclkg /(fper+1 ) = fclocksource /(clkdv+1) (fper+1 ) 0 fper4095,wfsg= (fwid+1)tclkg,0fwid255,tclkg为clkg的周期,第二章 dsp芯片结构和cpu外围电路,(3)时钟信号的方向性和极性 时钟管脚clkx和clkr的方向分别由管脚控制寄存器(pcr)中的clkxm和clkrm字段控制,而clks管脚则只能是输入。 当clkx(r)m1时,clkx(r)由clkg驱动,为输出; 当clkx(r)m0时,clkx(r)由外部管脚驱动,为输入。,第二章 dsp芯片结构和cpu外围电路,clkx管脚和clkr管脚上信号的极性分别由管脚控制寄存器(pcr)中的clkxp和clkrp字段控制,clks管脚上信号的极性由采样速率发生器2 (srgr2)中的clksp字段确定。 clkxp=clkrp=clksp=0时,clkx、clkr和clks为正极性,以上升沿开始。 clkxp=clkrp=clksp=1时,clkx、clkr和clks为负极性,以下降沿开始。,第二章 dsp芯片结构和cpu外围电路,(4)帧同步信号的方向和极性 发送帧同步fsx的方向由管脚控制寄存器(pcr)中的fsxm字段和采样速率发生寄存器2(srgr2)中的fsgm字段共同确定。 当fsxm=0,fsgm=x时,fsx为输入,由外部信号源驱动; 当fsxm=1,fsgm=0时,fsx为输出,由dxr到xsr的拷贝动作驱动; 当fsxm=1,fsgm=1时,fsx为输出,由fsg驱动。 发送帧同步fsx的极性由管脚控制寄存器(pcr)中的fsxp字段确定。 当fsxp0时,fsx为正极性,即高电平有效; 当fsxp1时,fsx为负极性,即低电平有效。,第二章 dsp芯片结构和cpu外围电路,接收帧同步fsr的方向由管脚控制寄存器(pcr)中的fsrm字段确定。 当fsrm=0时,fsr为输入,由外部信号源驱动; 当fsrm=0时,fsr由内部fsg驱动。 接收帧同步fsr的极性由管脚控制寄存器(pcr)中的fsrp字段确定。 当fsrp0时,fsr为正极性,即高电平有效; 当fsrp1时,fsr为负极性,即低电平有效.,第二章 dsp芯片结构和cpu外围电路,(5) 同步 srg的输入参考时钟可以是内部时钟(cpu时钟),也可以是外部输入时钟(来自clkx、clkr或clks管脚)。当采用外部时钟源时,一般需要同步。同步与否由采样速率发生器2(srgr2)中的gsync字段控制。 当gsync=0时,srg将自由运行,并按clkgdv、fper和fwid等参数的配置产生输出时钟; 当gsync=1时,clkg和fsg将同步到外部输入时钟。,第二章 dsp芯片结构和cpu外围电路,5、多通道选择 (在一帧数据中,最多可包含128个数据单元,每个数据单元对应一个通道) mcbsp属于多通道串口,最多可以有128个通道,其多通道选择部分由多通道控制寄存器mcr、接收通道使能寄存器rcer和发送通道使能寄存器xcer构成。 多通道控制寄存器mcr作为总控制,可以禁止或使能全部128个通道。 rcer和xcer可以分别禁止或使能某个接收和发送通道。每个寄存器控制16个通道。因此,128个通道需要8个通道使能寄存器。,第二章 dsp芯片结构和cpu外围电路,第二章 dsp芯片结构和cpu外围电路,6、串口事件 mcbsp可以发起6个串口事件 接收中断rint 发送中断xint 接收同步事件revt a_bis模式的接收同步事件revta 发送同步事件xevt a_bis模式的发送同步事件xevta rint和xint与cpu相连,可以中断cpu revt、revta、xevt和xint则与dma控制器相连,可以用于dma同步事件,触发dma传输,第二章 dsp芯片结构和cpu外围电路,收发中断的产生分别由串口控制寄存器1(spcr1)中的rintm字段和串口控制寄存器2(spcr2)中的xintm字段控制。,第二章 dsp芯片结构和cpu外围电路,用于dma接收事件和发送事件的revt、revta、xevt和xevta则分别由接收标志rrdy和发送标志xrdy两个标志触发。其中: revt和xevt为mcbsp工作于常规模式时的dma同步事件 revta和xevta为mcbsp工作于a_bis模式时的dma同步事件。,第二章 dsp芯片结构和cpu外围电路,二、工作模式 根据mcbsp在通信中所处的地位和功能,工作模式可分为: 多通道缓冲模式 spi模式 a-bis模式 数字回环模式 gpio模式 省电模式,第二章 dsp芯片结构和cpu外围电路,1、多通道缓冲模式 是mcbsp的一种常规模式。在此模式下,根据其所处的地位有可分为主方和从方。 主方提供通信所需的时钟和帧同步,所以其时钟和帧同步都由内部srg驱动,为输出; 从方所需的时钟和帧同步来自主方,其时钟和帧同步由外部器件驱动,为输入。 在多通道缓冲模式下,传输由帧同步上升沿(或下降沿)触发,并在时钟上升沿(或下降沿)收(发)一个数据比特,支持1到128个传输通道的多通道传输。,第二章 dsp芯片结构和cpu外围电路,2、 spi模式 spi协议是一种主从配置的,支持一个主方,一个或多个从方的串行通信协议。 由4个信号构成:串行数据输入miso(主设备输入、从设备输出)、串行数据输出mosi (主设备输出、从设备输入) 、移位时钟sck和从方使能ss。,mcbsp的时钟停止模式:指其时钟会在每次数据传输结束时停止,并在下次数据传输时立即启动或延时半个周期后再启动。,第二章 dsp芯片结构和cpu外围电路,3、a-bis 模式 a-bis 模式是mcbsp提供的一种比特域抽取扩展的工作模式。 此模式下,mcbsp能从一条pcm链路上接收或发送1024个比特。发送时,它将1024个有效数据比特按给定的发送图案扩展到pcm链路上;接收时,则从pcm帧中按给定的接收图案抽取出1024个有效比特。 4、数字回环模式 用于在只有一个dsp时,测试其 mcbsp的情况。 数字回环dlb模式能在 mcbsp内部将收发部分连在一起,即dr与dx、fsr、fsx、clkx与clkr,,第二章 dsp芯片结构和cpu外围电路,在 mcbsp中有两种回环 在复位时,mcbsp内部将从图中(1)的位置进行回环,此时若向dxr写一个数,4个周期以后就能从drr收到该数据。 在复位以后,通过串口控制寄存器1(spcr1)中的dlb的控制使mcbsp内部从图中(2)的位置进行回环。 当dlb=0时,不回环; 当dlb=1时,从位置(2)进行回环。,第二章 dsp芯片结构和cpu外围电路,5、gpio 模式 mcbsp处于复位状态时,它的7个管脚(书表622)在管脚控制寄存器pcr和串口控制寄存器spcr的控制下可以用作通用输入输出(gpio)。 其中clkx、clkr、fsx和fsr既可设为输入又可设为输出,输入/输出电平值由相应的极性控制位确定; dx只能为输出; dr和clks则只能为输入。,第二章 dsp芯片结构和cpu外围电路,6、省电模式 在c5509 dsp 总的省电控制和管脚控制寄存器pcr中idle_en的控制下,可以使mcbsp进入省电模式,以降低功耗。,第二章 dsp芯片结构和cpu外围电路,三、收发格式与参数设置 帧同步有效表示一帧串行数据传输的开始。 每次收发数据传输都从帧同步开始,每个数据帧可以有两个阶段,即阶段1和阶段2,每个阶段可有1到128个字,每个字可以是8、12、16、20、24、或32比特。每一帧最多传送4096bit的数据,因为fper控制字段只有12bit。,(字段设置参见教材38页,表2-21),第二章 dsp芯片结构和cpu外围电路,数据比特的延迟:当帧同步有效后,一般在其后的第一个时钟周期启动该帧的传输,如果需要,数据的发送/接收的起始时刻相对于帧信号的起始点可以存在一定的延时。延时范围可以从0到2个周期的传输时钟。 对收发数据还可按律或a律进行压扩,选择是msb先还是lsb先 由于收发通道寄存器都是16位的,所以对字长不足或超过16比特的数据可以进行左对齐或右对齐调整。选择左对齐时,mcbsp将用0填充lsb;选择右对齐时,mcbsp可以用0填充msb,也可用符号扩展方式填充msb 。,第二章 dsp芯片结构和cpu外围电路,四、异常处理 每个多通道缓冲串口mcbsp有下列5个事件会导致错误: 接收过速,由标志rfull=1表示; 接受帧同步错误,由标志rsyncerr1表示; 发送数据重写; 发送寄存器空,由标志=0表示; 发送帧同步错误,由标志xsyncerr=1表示。,第二章 dsp芯片结构和cpu外围电路,1、接收过速 是指在接收通道上的3个寄存器已满时造成的数据丢失,通过标志rfull=1来表示。因为rsr、rbr和drr中都有数据,所以当下一个数据到来时就会覆盖rsr使rsr中的数据丢失。 2、发送数据重写 发送数据重写是指cpu或dma在dxr中的数据被拷贝到xsr之前又对dxr写入新的数据,使dxr中的数据被覆盖而丢失。,第二章 dsp芯片结构和cpu外围电路,3、发送寄存器空 与发送数据重写相对应,发送寄存器空则是由于cpu或dma写入太慢,使得发送帧同步出现时,dxr还未写入新值,这样xsr中的值就会不断重发,直到dxr写入新值为止。,第二章 dsp芯片结构和cpu外围电路,4、接受帧同步错误 接受帧同步错误是指在当前数据帧的所有数据比特还未收完时出现了帧同步信号。由于帧同步表示一帧的开始,所以出现帧同步时,接收器就会停止当前帧的接收并重新开始下一帧的接收,从而造成当前帧数据的丢失。 5、发送帧同步错误 与接收帧同步错误相对应,发送帧同步错误是指当前帧的所有数据比特未发送完之前出现了发送帧同步信号。此时,发送器将终止当前帧的传送,并重新开始下一帧的传送。,第二章 dsp芯片结构和cpu外围电路,应用举例:利用mcbsp0来发送一段数据,要求如下: (1) 采用多通道缓冲模式; (2) 发送时钟和帧同步由内部采样速率发生器驱动,接收时钟和帧同步由外部 输入驱动; (3) 发送时钟速率为cpu时钟速率的1/4,帧同步周期为18个clkg,脉冲宽度 为2个clkg; (4) 收发都是每帧1个阶段,每阶段1个字,字长16比特,不压扩,1比特延迟; (5) 采用查询发送标志xrdy和接收标志rrdy的方式进行收发。,第二章 dsp芯片结构和cpu外围电路,程序实现分析: mov #0x0000,port(#spcr1_1) ; ;设置串口控制寄存器1,要求(1),rrst_=0:复位mcbsp接收机 mov #0x0a00,port(#pcr_1) ;设置串口管脚控制寄存器,要求(2)。 ;设置接收引脚,;fsxmclkxm1,发送时钟和帧同步由内部驱动; ;fsrmclkrm0,接收时钟和帧同步由外部驱动 mov #0x0103,port(#srgr1_1)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论