




免费预览已结束,剩余138页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,dsp技术及应用系统设计,胡景春 叶水生,2,第二章 定点dsp芯片tms320f2812,2.1 tms320f2812性能特点 2.2 tms320f2812硬件结构 2.3 tms320f2812指令系统简介,3,2.1 tms320f2812性能特点,(1)采用了高性能的静态cmos技术,时钟频率可达150mhz(6.67ns),其核心电压为1.8v,i/o口电压3.3v,flash编程电压也为3.3v。 (2)高性能的32位cpu。能够实现16x16和32x32乘法操作,哈佛总线结构,快速的中断操作,寻址程序空间可达4m,寻址数据空间可达4g,在c/c+和汇编语言中代码可得到优化,另外还可向下兼容tms320f24x/lf240x处理器的代码; (3)片上存储器:闪存128k字,单访问双口ram(saram)18k字; (4)引导(boot)rom4k字,具有软件启动模式并包含标准的数学表; (5)时钟和系统控制采用锁相环技术pll来控制系统各模块所需要的频率;,4,(6)具有3个外部中断和外围中断扩展模块pie(peripheral interruptexpansion),pie可支持多达45个外部中断; (7)128位的代码安全模块csm(code security module),更好地保护了开发者的知识产权; (8)具有3个32位的cpu定时器和适合电机控制的事件管理模块eva和evb; (9)具有很强的外围通讯功能:包括同步串行口spi,通用异步串行口sci,增强的ecan和多通道缓存串行口mcbsp; (10)16个通道、12位精度的a/d转换器。 (11)56个独立可编程的多路通用输入/输出(gpio)引脚。,5,2.2 tms320f2812硬件结构,2.2.1 tms320f2812内部结构及总线 tms320f2812主要由c28x核的cpu(c28x cpu)、系统时钟控制模块(系统控制部分)、事件和外设管理模块(eva、evb和外设中断控制等),片内存储模块(flash、rom、ram等)、cpu定时器模块(cpu定时器)、12位a/d转换模块(12bit adc)、扩展接口模块(扩展接口)、以及内部总线等构成。,6,7,总线包括外部扩展总线和内部总线. 扩展接口:a18-a0和d15-d0是表示2812外部扩存储器的能力,2812外扩的存储空间最大是219*16 bit(512k字)。 812的内部存储器空间被分成了2块,一块是程序空间,一块是数据空间,对它们的访问通过地址总线和数据总线进行。2812的存储器接口具有3条地址总线和3条数据总线。,8,(1) pab (program address bus)22位程序地址总线,用于传送程序空间的读写地址。 (2) drab(data-read address bus)32位数据读地址总线,用于传送数据空间的读地址。 (3) dwab(data-write address bus)32位数据写地址总线,用于传送数据空间写地址。 (4) prdw(program-read data bus)32位程序读数据总线,用于传送读取程序空间时的指令或者数据。 (5) drdb(data-read data bus)32位数据读数据总线,用来读取数据空间的数据。 (6) dwdb(data/program-write data bus)32位数据/程序写数据总线,向数据空间/程序空间写相应的数据。,9,2.2.2 tms320f2812引脚,10,1、xintf信号 2、jtag和其他信号 3、adc模拟输入信号 4、电源信号 5、gpioa或eva信号 6、gpiod或eva信号 7、gpioe或中断信号 8、gpiof或串行通信接口a(scia)信号 9、gpiof或多通道缓冲串行口(mcbsp)信号 10、gpiof或xfcpu输出信号 11、gpiog或串行通信接口b(sci-b)信号,了解引脚信号名称、功能、特性、状态,11,2.2.3 中央处理单元(c28x cpu),1. cpu结构,12,(1)算术逻辑单元(alu):32位alu完成2的补码的算术运算和布尔运算。通常情况下,中央处理单元对于用户是透明的。例如,完成一个算术运算,用户只需要写一个命令和相应的操作数据,读取相应的结果寄存器的数据就可以了。 (2)乘法器:乘法器完成32x32位的2的补码的乘法运算,产生64位的补码结果。乘法器能够完成两个符号数,两个无符号数或一个符号数和一个无符号数的乘法运算。 (3)移位器:完成数据的左移或右移操作,最大可移16位。在c28lx的内核中,总计有3个移位寄存器:输入数据定标移位寄存器,输出数据定标移位寄存器和乘积定标移位寄存器。,13,(4)寻址运算单元(arau):主要完成数据存储器的寻址运算以及地址的产生。 (5)独立的寄存器空间:cpu内的寄存器,并不映射到数据存储空间。寄存器主要包括系统控制寄存器,算术寄存器和数据指针。系统控制寄存器可以通过专用的指令访问,其他的寄存器可以采用专用的指令和特定的寻址模式来访问。 (6)带保护流水线:带保护流水线能够防止同时对一个地址空间的数据进行读/写,14,2 cpu的寄存器,15,2.2.5 存储器及扩展接口,1、 tms320f2812存贮空间的配置 tms32of2812为哈佛结构的dsp,在逻辑上有4m*l6位程序空间和4g*l6位数据空间,但物理上已将程序空间和数据空间统一为一个4m*16位的存储空间。 (1) f2812片上有128k*16位flash、18k*l6位sram、4k*16位bootrom和1kx16位的otp rom。 (2)18k*16位单周期单次访问随机存储器saram,分成5个块,它们分别称为m0、m1、l0、l1i和h0。 mo和m1块均为1k*16位,都可以映射到程序区和数据区。 l0和l1块均为4k*16位,可映射到f2812的程序存储空间和数据存储空间,而且lo和l1受片上flash中的密码保护,以免存放在lo和l1中的程序或数据被非法拷贝。 ho块为8k*16位,可映射到f2812的程序存储空间和数据存储空间。,16,17,(3)片上128k*16位嵌入式flash存储器和1k*16位一次可编程eprom(otp)存储器,它们均受片上flash中的密码保护。flash存储器由4个8k*16位的扇区和6个16k*16位的扇区组成,用户可以对其中任何一个扇区进行擦除、编程和校验,而其它扇区不变。但是,不能在其中1个扇区上执行程序来擦除和编程其他的扇区 (4)boot rom存储器是掩模型片内存储器,在出厂时固化了boot loader软件,根据引导模式信号(boot mode)确定上电引导装载方式,可以从内部flash引导装载程序,也可以从外部存储器引导程序。此外,boot rom中还包括一些标准的数学运算表。boot rom的空间分配如图2-10 所示。,图2-10 boot rom的空间分配,18,(5)f2812的外部存储器接口包括:19位地址线,16位数据线、3个片选线及读/写控制线。这3个片选线映射到5个外部存储区域,zone0、1、2、6和7。其中,zone0和zone1共用1个片选线xzcsoand1,zone6和zone7共用一个片选线xzcs6and7。 这5个存储区域可以分别设置为不同的等待周期。 zone0存储区域:0x002000-0x003fff,8k*16位 zone1存储区域:0x004000-0x005fff,8k*16位 zone2存储区域:0x080000-0x0fffff,512k*16位 zone6存储区域:0x100000-0xl7ffff,512k*16位 zone7存储区域:0x3fc000-0x3fffff,16k*l6位,19,(6)外设帧(peripheral frames0、1、2)。f2812把片上外设分在三个空间,称为外设帧,3个外设帧映射空间及其包含有关外设的相关寄存器如下: pf0:0x000800 0x000cff,4k*16位,包含xintf、pie、flash、timers、csm的相关寄存器; pf1:0x006000 0x006fff,4k*16位,包含ecan的相关寄存器; pf2:0x007000 - 0x007fff,4k*16位,包含sys、gpio、ev、mcbsp、sci、spi、adc的相关寄存器; (7)cpu中断向量(vector)。在程序空间里也保留了64个地址作为cpu的32个中断向量。通过cpu的st1寄存器中的vmap位来将这一段地址映射到程序空间的底部或者顶部。 (8) f2812的reserved(保留)空间,可以用来进行外部存储器扩展。其中数据空间里面某些地址被保留作为cpu的仿真寄存器使用,这些地址是不向用户开放的。,20,2、tms320f2812的片内外设简介,由于28lx数字信号处理器集成了很多内核可以访问和控制的外部设备,28lx内核需要通过某种方式来读/写外设。为此,处理器将所有的外设都映射到了数据存储器空间,主要包括配置寄存器、输入寄存器、输出寄存器和状态寄存器。每个外设只要通过简单的访问存储器中的寄存器就可以使用该设备。外设通过外设总线(pbus)连接到cpu的内部存储器接口上,如图2-12 所示。所有的外设(包括看门狗和cpu时钟)在使用前必须配置相应的控制寄存器。,21,图2-12 f2812片内外设连接框图,22,2.2.6 tms320f2812的时钟及系统控制,tms320f2812的时钟 tms320f2812上有多个片上外设部件需要时钟: 看门狗电路watchdog、cpu定时器(3个32一位定时器)、ecan总线控制器;sci(2个异步串行通信控制器)、spi(l个4线制同步串口)、mcbsp(1个多通道缓冲型同步串口);ev(2个事件管理器,每个事件管理器包括:2个通用定时器、3个全比较器/pwm单元、3个事件捕捉单元、qep正交编码脉冲quadrature一encoderpulse、外部时钟输入、外部比较输入和外部触发输入)、adc(16通道、12位、0-3v输入范围)。片上外设按输入时钟分为4个组: sysoutclk组:cpu定时器、ecan总线 oscclk组:看门狗电路 低速组:sci、spi、mcbsp,其输入时钟由sysoutclk经低速外设分频器分频得到。 高速组:eva、evb、adc,其输入时钟由sysoutclk经高速外设分频器分频得到。,23,f281x的锁相环、时钟、看门狗、以及低功耗模式都是通过相应的寄存器控制,各寄存器如表2-7 所示,24,2812基于pll的时钟模块可以采用两种模式,即pll未被禁止(旁路或使能)和pll禁止。,2 、 晶体振荡器和锁相环,25,3 低功率模式 f2812的低功率模式如表2-10 所示。 idle模式:低功耗模块(lpm)不完成任何工作。 standby模式:所有外设被关闭,只有看门狗起作用。 halt模式:所有外设被关闭,晶振、锁相环、看门狗均不工作。 低功耗模式由设置lpmcr0、lpmcr1寄存器 进行控制,26,4 看门狗模块,1) 看门狗功能结构 看门狗电路有一个8位的看门狗加法计数器wdcntr,如果wdcntr计数到最大值时,看门狗模块就会产生一个输出脉冲(宽度为512个振荡器时钟)。为了防止wdcntr溢出,通常可以采用两种方法:一种是禁止看门狗;另一种就是定期的通过软件向看门狗复位控制寄存器(8位的wdkey)写入0x55+0xaa,能够清除wdcntr。,27,2. 看门狗寄存器 为了实现看门狗的功能,需要使用其内部功能寄存器。 这些寄存器是: (1)看门狗计数器寄存器:看门狗时钟wdclk连续计数的当前的计数值 (2)看门狗复位器寄存器 :看门狗计数器清零或看门狗复位 (3)看门狗控制寄存器 :看门狗时钟wdclk的倍率设置、模块屏蔽等 (4)系统控制和状态寄存器 :看门狗中断控制和状态。,28,5 tms320f2812定时器,f2812有3个32位定时器,其中定时器1、定时器2预留给实时操作系统使用,定时器0用户可以使用。,图2-25 定时器功能框图,29,图2-26 3个定时器在系统中的的连接,30,(1) 定 时 器 的 寄 存 器,31,tms32of2812芯片提供了56个多功能引脚,用户可以通过将gpxmux设置为不同数值,从而可以将这些引脚作为片内外设的输入/输出引脚(片内外设i/0),或者在不使用片内外设时,也可以用作数字i/o口驱动外围电路。其逻辑如图2-31所示。 tms320f2812的gpio多路复用器在将有关引脚用作数字i/0口时,包括两个16位的i/0口gpioa、gpiob;一个4位的数字i/o口gpiod;一个3位的数字i/o口gpioe及一个2位的数字i/o口gpiof。在实际的使用中,可以使用gpio的有关寄存器选择和控制这些共享引脚的操作特性;当选择某个引脚用作i/0口时,可以通过gpxdir寄存器来设置引脚的信号,去除噪声对信号的干扰。f812的通用i/o 引脚绝大部分是复用功能引脚,通过gpio的寄存器可以配置和改变引脚功能。gpio寄存器如表2-14所示。,6 tms320f812的通用i/o,32,图2-31 多功能gpio选择框图,33,34,如果多功能引脚配置为数字量i/o模式,又可以通过gpio数据寄存器来对相应的引脚进行操作。gpio数据寄存器如表2-15所示。,35,2.2.7 tms320f2812的中断系统,1 tms320f2812中断概述 f2812的cpu能够支持一个不可屏蔽中断nmi和16个可屏蔽的中断int1-int14、rtosint和dlogint,其中可屏蔽中断中的int1-int12,是平时经常使用的中断。 f2812中设计了一个专门处理外设中断的扩展模块中断控制器pie(the peripheral interrupt expansion block),它能够对各种中断请求源f2812的中断系统框图如图2-32所示。 pie可以支持96个不同的中断,这些中断分成了12个组,每个组有8个中断,而且每个组都被反馈到cpu内核的12条中断线中的某一条上(int1-int12),这里其实也是用到了多路复用的原理。值得一提的是,pie目前只使用了96个终端中的45个,其他的等待将来的功能扩展。f2812的中断分组如表2-16所示。,36,图2-32 f2812的中断系统框图,37,2812的中断是3级中断机制,分别是外设级,pie级以及cpu级,其结构如图2-33 所示。一个外设中断请求,任意一级的不许可,cpu最终都不会执行该外设中断。,图2-33 f2812的3级中断结构,38,(1)外设级。程序执行过程中,某个外设产生了中断事件,那么这个外设的某个寄存器中与该中断事件相关的中断标志位if被置为1。此时,如果该中断相应的中断使能位ie=1,外设就向pie控制器发出中断请求。但是若ie=0,外设就不会向pie发出中断请求,相应的中断标志位会一直保持置位状态,一旦该中断被使能了,那么外设立刻会向pie发出中断申请。 需要注意的是,不管在什么情况下,外设寄存器中的中断标志位都必须人工清除。,39,(2)pie级。 当外设产生中断事件,相关中断标志位置位,中断使能位使能之后,外设中断请求提交给pie模块。pie模块将96个外设和外部引脚的中断分成12组,分别是pie1-pie12。每个组的中断被多路汇集进入1个cpu中断,pie1组中断都汇集到cpu中断的int1,同样的,pie2的中断都被汇集到cpu中断的int2,int12组的中断都被汇集到了cpu中端的int12。 和外设级类似,pie控制器中的每个组都会有一个中断标志寄存器pieifrx和和中断使能寄存器pieierx(x=1,2,12)。每个寄存器的低8位对应于8个外设中断,高8位保留。为了使每一组同一时间只能是一个中断被响应,pie除了每组具有pieierx,pieifrx寄存器之外,还有一个pieack寄存器,它的低12位分别对应着12个组,即int1-int12。假如t1的周期中断被响应了,则该组(对应于int2)的pieack寄存器的第2位就会被置位,并且一直保持直到手动清除这个标志位。当cpu在响应t1pnt的时候,pieack的第2位一直是1,这时候如果pie2组内发生其他的外设中断,则暂时不会被pie响应,必须等到pieack的第2位被复位之后,则立刻由pie控制块将中断请求送至cpu。所以,每个外设中断被响应之后,一定要对pieack的相关位进行手动复位,否则同组内的其他中断都不会被响应。,40,(3)cpu级。cpu也有标志寄存器ifr和使能寄存器ier。当某外设中断请求通过pie发送到cpu时,cpu级中与intx相关的中断标志位就会被置位。例如,t1的周期中断t1pint的请求到达cpu时,与其相关的int2的标志位被置位,该标志位被保存在ifr中。这时,cpu不会马上去执行相应的中断,而是等待cpu使能ier寄存器的相关位,并且对cpu寄存器st1中的全局中断屏蔽位使能。如果ier相关位被置位,并且intm的值为0,则中断就会被cpu响应。cpu接到了中断的请求,会暂停正在执行的程序,将相应的ier和ifr位进行清除,eallow也被清除,intm被置位,并存储返回地址和自动保存相关的信息,从pie块中取出对应的中断向量isr,转而去执行中断服务程序。cpu级对中断标志位、中断使能位的操作都是自动的。,41,tms320f2812 pie中断向量表及映射 f2812有5个可用的中断向量表,使用哪个取决于中断向量表映射模式的选择。控制中断向量表映射的比特位有vmap、m0m1map、mp/mc、enpie,它们对模式选择的影响如表2-17所示。其中m1、m0模式保留,只供ti测试使用。每个中断向量占用2个单元(16位2)。,42,3 tms320f2812中断处理过程,(1)接收中断请求。当有中断源发出中断申请后,f2812在处理完必要的指令后会立即对中断申请进行响应。 (2)响应中断。f2812接收中断申请后,要对中断源进行识别。如果是可屏蔽中断,则首先要检查中断源对应的屏蔽位是否屏蔽了该中断;对于外设复用的中断,要接着检查pie模块对应的屏蔽位是否被屏蔽(pie-ier寄存器),响应标志位是否被清除(pieack寄存器);最后还要检查该中断对应的cpu级中断是否被屏蔽了(imr寄存器),f2812是否开放了可屏蔽中断(intm=0?)。如果是nmi(不可屏蔽中断)或是软件中断,则f2812立即进行响应。 (3)执行中断服务程序。中断响应后,f281根据中断向量表取出中断服务程序(isr)的入口地址,然后转入isr中执行。 可见,1个外设复用的中断有5个开关控制:外设本身的中断使能控制位、对应的pie中断使能控制位、pieack响应控制位、imr寄存器中的使能位和总的使能控制位。,43,4 、 pie 寄存器,44,中断程序的编写 ti自带的例程结构作为编写程序的框架,其例程框架中已经将所有与2812相关的外设函数及其地址都定义好了,只需根据中断处理的要求,向相应的中断函数里填写相应的内容。以下以t1的周期中断为例介绍中断程序的编程结构。,45,(1)主函数中的处理 void main(void) . /禁止和清除所有cpu中断 dint; ier=0x0000; ifr=0x0000; /初始化中断向量 initpiectrl(); /初始化中断向量表 initpievecttable(); /使能pie中断 piectrlregs.pieier2.bit.intx4=1; /使能t1周期中断 /开cpu中断 ier |=m_int2; /开中断2 eint; /使能全局中断 ertm; /使能实时中断 ,46,(2)在ti的例程dsp28_defaultisr中断函数中根据中断服务要求填写中断处理程序。 interrupt void t1pint_isr(void) . . evaregs.evaifra.bit.t1pint=1; /清除中断标志位 piectrlregs.pieack.bit.ack2=1; /响应同组中断 eint; /开全局中断 ,47,1. sci特点 (1)2个外部引脚:scitxd:sci输出引脚;scirxd:sci输入引脚。如果不用sci功能,这两个引脚可设置成通用i/o。 (2)64k种可编程的通信速率: 当brro时:波特率=lsrclk(brr+1)8) 当brr=0 时:波特率=lsrclk16。 (3) 数据格式:一位起始位;1-8位数据长度位,可编程;可选择奇校验、偶校验或无校验;1或2个停止位。 (4)4种错误检测标志:奇偶校验错误、超时错误、帧错误和间断检测错误。 (5)全/半双工通信模式。 (6)接收和发送双缓冲。 (7)串口数据发送和接收过程可以通过中断方式或查询方式完成。 (8)2种多处理器唤醒方式:空闲线唤醒和地址位唤醒。 (9)13个sci模块控制寄存器。 (10)16级发送/接收fifo。,2.2.8 sci串行通信接口,48,2、sci与cpu连接 图2-37是sci模块与cpu的连接示意图。,图2-37 sci模块与cpu的连接,49,4 sci模块结构,图2-38 sci模块框图,50,1)多处理器异步通信模式 sci支持多处理器异步通信,有2种通信模式:空闲线多处理器模式和地址位模式。 地址位模式中的“add/data”位用来进行多处理器之间的通信联络,对于发送方,该位为“1”表示本帧发送的数据是表示将要通信方处理器的地址,为“0”表示本帧发送的是数据,接收方与本身地址相比较,发送方和接收方地址一致,才能建立通信关系。 空闲线模式下处理多处理器通信,是以数据块的形式传送。通常一个数据块中可以有若干帧,其中第一帧固定为地址帧,用来发送或接收地址,其后是数据帧,地址帧和数据帧之间的空闲位要求10位以上,而数据帧之间的空闲位10位。数据块之间的空闲位必须10位以上。,51,图2-39 sci数据帧格式,52,2)sci 发送/接收中断控制 sci 发送/接收都是通过一个16级fifo ,当发送/接收数据进入fifo 0,将产生rxint或txint中断。,图2-40 sci中断控制逻辑,53,54,3) sci的寄存器 sci通信的操作主要通过对其内部的寄存器来设置和控制来实现。,55,2.2.9 spi串行外设接口,spi(serial peripheral interface)是一个高速同步的串行输入/输出口。 1、 spi特点 (1)可编程主、从两种工作方式。 (2)2种传输方式:2线制(半工)和3线制(全双工)。 (3)波特率可编程:有125种不同的设置。 当 spibrr = 3 -127时,波特率=lspclk/(spibrr+l); 当spibrr = 0, 1, 或2时,波特率=lspclk/4。 (4)数据字长:可编程的1-16个数据长度。 (5)4种时钟模式(由时钟极性和时钟相位控制); (6)接收和发送可同时操作(可以通过软件屏蔽发送功能)。 (7)通过中断或查询方式实现发送和接收操作。 (8)9个spi模块控制寄存器(spi模块的寄存器都是16位,当访问这些寄存器时,低字节(位7-0)是寄存器的数据,对高字节(位15-8)进行读操作返回0,写操作没有影响)。 (9)16级发送/接收fifo。 (10)延时发送控制。,56,2 pci功能框图及连接信号 pci模块主要由主/从控制单元、速率控制单元、rx fifo缓冲寄存器、tx fifo缓冲寄存器、发送/接收中断控制单元等组成。pci模块对外的连接信号主要有4个外部引脚连接信号,2个和cpu连接的中断信号和1个时钟控制信号,spi信号如表2-33 所示。,图2-53 spi与cpu连接,57,图2-54 spi模块功能框图,58,3 spi的操作 spi有3种发送数据方式: (1)主控制器发送数据,从控制器发送伪数据; (2)主控制器发送数据,从控制器发送数据; (3)主控制器发送伪数据,从控制器发送数据,59,图2-55 spi主-从控制器的连接,60,1) 主从操作模式 spi接口有主和从2种操作方式。 主模式:master/slave=1, spi产生串行时钟由spiclk引脚输出,系统从spisimo输出数据(最高位msb开始),由spisomi引脚输入数据并锁存(移入spidat的最低有效位lsb),/spiste为spi的片选信号。通过spibrr寄存器可以设置spi的126种不同的数据传输率。 从模式:master/slave=0,串行时钟由spiclk引脚输入,系统从spisimo输入数据,由spisomi引脚输出数据,/spiste为spi的片选信号。,61,2) spi中断 (1)五个控制位(spictl.0、spist.6、spictl.4、spist.7、spipri.6)可以用于初始化spi中断,这些控制位的应用见于“spi的寄存器”。 (2) spi数据格式 当数据少于16位时,spi操作按以下规则处理: 当数据写入spidat和spitxbuf寄存器时,必须左对齐; 当数据从spirxbuf寄存器读取时,必须右对齐; spirxbuf寄存器中包含了最新接收到的右对齐的数据,再加上已移位到左边的上次留下的位。,62,3) 波特率和时钟设置 spi波特率通过波特率控制寄存器spibrr进行设置,spi的时钟模式通过spi 配置控制寄存器和spi 操作控制寄存器进行控制。spi有以下4种时钟模式:,63,(1)无相位延时的下降沿:spiclk为高电平有效。在spiclk信号的下降沿发送数据,在spiclk信号的上升沿接收数据。 (2)有相位延时的下降沿:spiclk为高电平有效。在spiclk信号的下降沿之前的半个周期发送数据,在spiclk信号的下降沿接收数据。 (3)无相位延迟的上升沿:spiclk为低电平有效。在spiclk信号的上升沿发送数据,在spiclk信号的下降沿接收数据。 (4)有相位延迟的上升沿:spiclk为低电平有效。在spiclk信号的下降沿之前的半个周期发送数据,而在spiclk信号的上升沿接收数据。,64,4) spi fifo spi有2个1616位的fifo,rxfifo用于数据接收,txfifo用于数据发送,如图2-56所示。 发送缓冲区txbuf和接收缓冲区rxbuf作为fifo和移位寄存器之间的缓冲器。对于发送,只有当移位寄存器最后一位移出后,txbuf才能由txfifo中装载新的数据。 txbuf数据装载到txfifo中的速度是可编程的,即发送2个数据之间的延时是可以对spiffct寄存器设置来控制,可以选择0255个串行时钟周期,以适合不同速度设备的串行通信。 spi中断有spi接收中断(spirxint)和spi发送中断(spitxint),都具有可编程中断触发的功能,当fifo状态位(rxffst、txffst)和中断级别触发位(rxffil、txffil)匹配,就会产生中断。接收fifo中断级别触发位默认值是0x11111,发送fifo中断级别触发位默认值是0x00000。,65,图2-56 spi fifo结构图,66,5) spi的寄存器 spi模块的操作和控制主要通过对其内部的寄存器控制来实现。表2-35中给出的是与spi有关的寄存器。这些寄存器被映射到f2812定义的第2个外设帧空间(peripheral frames2)。该空间只允许16位的访问,所有寄存器都是16位格式。,67,2.2.10 事件管理器,1 事件管理器概述 tms320f2812包含两个事件管理器(ev)模块eva和evb,这两个ev模块具有相同的功能,每个事件管理器模块包括2个16位通用定时器 (gp)、 3个全比较pwm单元、 1个正交编码电路以及3个捕获单元。事件管理器接口如图2-69所示,事件管理器的信号名称如表2-44所示。,68,图2-69 事件管理器接口,69,70,图2-70 事件管理器a功能框图,71,(1)可编程通用定时器。 可用于产生采样周期,作为比较单元产生pwm输出以及软件定时的时基。在向上或向下记数操作中,每个通用定时器有3种连续工作方式,具有可编程预定标器的内部或外部输入时钟。通用定时器也可为其他事件管理器子模块提供时基;周期和比较寄存器的双缓冲允许定时器(pwm)周期和比较/pwm脉冲宽度被高速编程改变。通用定时器可独立工作或互相同步工作,与通用定时器有关的比较寄存器可用作比较功能和pwm波形的产生。 (2)比较单元。主要用来生成pwm波形,每个比较单元可以生成一对(两路)互补的pwm波形,生成的6路pwm波形正好可以驱动一个三相桥电路。f2812的两个事件管理器可产生16路独立pwm信号。由3个具有可编程死区的全比较单元产生独立的3对pwm信号,由通用定时器比较单元产生独立的两路pwm信号。对每一个比较单元输出,死区的产生可单独被使用/禁止。利用双缓冲的actrx寄存器,死区产生器的输出状态可以被高速配置及改变。 (3)正交解码电路。 正交编码脉冲(qep)电路可以对引脚cap1/qep1和cap2/qep2上的正交编码脉冲进行解码和计数,可以直接处理光电码盘的2路正交编码脉冲进行鉴相和4倍频。另外,f2812允许引脚cap-qepi(eva的cap3-qepi1和evb的cap6-qepi2)复位定时器2。 (4)捕获单元。用于捕获输入引脚上信号的跳变,两个事件管理器模块共有6个捕获单元。每个单元各有一个两级的fifo缓冲堆栈。当捕获发生时,相应的中断标志被置位,并向cpu发中断请求。,72,2 事件管理的通用定时器,图2-71 通用定时器功能框图,73,(1) 通用定时器功能 定时器具有以下功能: 一个可读写的16位递增/递减定时器计数器txcnt; 一个可读写的16位定时器比较寄存器txcmpr; 一个可读写的16位定时器周期寄存器txpr; 一个可读写的16位定时器控制寄存器txcon; 定时器时钟可以选择内部时钟或外部时钟,可对内部时钟或外部时钟输入预倍频和分频; 四个可屏蔽中断:下溢(txcnt=0x0000)、上溢(txcnt=0xffff)、定时器比较(txcnt=tccmpr)、周期性中断(txcnt=txpr)的控制逻辑; 可选择方向或增/减计数方式的输入引脚tdirx。 由图2-70 和图2-71 可见,通用定时器的输入/输出信号包括: 输入信号:来自于cpu的内部时钟;外部时钟输入tclkina/b,最大频率为器件自身时钟的1/4;用于定时器的增/减计数模式;复位信号reset。 输出信号:定时器的比较输出t1pwm_t1cmp;送给adc模块的ad转换启动信号;下溢、上溢、比较匹配和周期匹配信号; 计数方向指示。,74,(2)通用定时器的寄存器 事件管理器的各个功能模块是通过与该模块对应的寄存器进行配置和使用,表2-45 给出的是按照事件管理器a的各个功能模块有关的寄存器,事件管理器b的寄存器和a类似,只是地址从0x7500开始,此外,事件a的定时器为定时器1、定时器2,事件b的定时器为定时器3、定时器4;事件a的比较寄存器为比较寄存器1、比较寄存器2,事件b的比较寄存器为比较寄存器3、比较寄存器4。,75,76,(3)定时器计数模式 对于计数模式选择“连续增/减计数模式”、“连续增计数模式”、“定向增/减计数模式”分别由图(a)、(b)、(c)表示。,77,由图可见: 连续增/减计数模式计数:txcnt先从0开始递增计数,直至等于txpr的设定值,再递减计数,如此不断循环计数; 连续增计数模式:txcnt先从0开始递增计数,直至等于txpr的设定值,直降到0,重新递增计数; 定向增/减计数模式:根据引脚tdira的电平自动进行递增(tdira为高电平)或递减(tdira为低电平)计数。 以上3种方式中,当txcnt等于txpr设定值的下一个时钟周期,周期中断标志置位;当txcnt等于0xffff的下一个时钟周期,上溢中断标志置位;当txcnt等于0x0000的下一个时钟周期,下溢中断标志置位。如果对应中断没有被屏蔽,则产生一个中断请求。,78,3 pwm电路 每个事件管理器可以同时产生8路脉宽调制信号(pwmp,pulse width modulation)。eva的两个通用定时器能够产生2路独立的pwm波形t1pwm和t2pwm,三个比较单元每一个都能产生一对互补的pwm波形,比较单元1产生pwm1和pwm2,比较单元2产生pwm3和pwm4,比较单元3产生pwm5和pwm6。这样,eva一共能产生8路pwm波形。evb和eva一样,同样能够产生8路pwm波形。事件管理器模块功能框图如图2-75 所示。,图2-75 eva事件管理器模块功能框图,79,(1) pwm波形的产生 以t1为例介绍ev产生pwm的机制。当t1计数寄存器t1cnt的值和t1cmpr的值相等时,就会发生比较匹配事件,这时如果pwm的功能使能,则t1pwm引脚便可以输出pwm波形。t1能够产生两种类型的pwm,一种是不对称的pwm波形,一种是对称的pwm波形,究竟产生哪种类型的pwm波形取决于t1cnt的计数方式。 当t1cnt的计数方式为连续增计数时,t1pwm引脚输出不对称的pwm波形。 当t1cnt的计数方式为连续增/减计数时,t1pwm引脚输出对称的pwm波形。,80, 比较单元产生的可带有死区的pwm波形。在电机控制、开关电源、变频器、逆变器等电力电子电路中,经常会遇到如图2-76(a)所示的三相全桥控制电路,该电路由6个开关管组成,上下两个开关管组成1个桥壁。同一桥壁上的上下两个开关管不能同时导通,如果同时导通就会发生短路。因此,pha1和pha2,phb1和phb2,phc1和phc2必须都是互补的,以pha1和pha2为例,理想情况下当pha1为高电平时,pha2为低电平;当pha1为低电平时,pha2为高电平。但实际上会有下面的问题,实际上开关管从导通转为关断的时候,总会有延时,这样,就会有一小段时间里面q1和q2其实都处于导通状态,这样是非常危险的。为了解决这个问题,通常要求上下管输出的驱动波形要具有一定的死区时间,如图(b)所示。上下桥壁中任何一个开关管从关断到导通都要经过1个死区时间的延时,也就是等到q1完全关断的时候,q2才会导通,反过来也是一样。ev提供了3个全比较单元,这3个全比较单元都可以通过相应的寄存器设置死区时间。,81,82,比较单元的死区电路模块图如图2-77所示,当比较单元的比较操作被使能,就会产生波形phx。phx经过死区单元,就会输出两路互补的带有死区的pwm波形dtphx和dtphx_。dtphx的导通时刻是在phx的基础上延时了1个死区时间,而关闭时刻未变。dtphx_是在phx取反的基础上,也将导通时间延迟了1个死区时间,而关断的时间没有发生改变。具体的波形的死区时间可以通过死区控制寄存器dbtconx的死区定时器周期和死区定时器预定标因子进行控制。如果死区定时器周期为m,死区定时器预定标因子x/p,则死区的值就为(pm)个cpu时钟周期。,83,图2-77 比较单元的死区电路模块,84,4 捕获单元 (1) 捕获单元的捕获过程 2812的eva和evb分别有3个相同的捕获单元,即eva的cap1、cap2、cap3和evb的cap4、cap5、cap6,每一个捕获单元都会有一个捕捉引脚。每一个捕获单元通过相关寄存器的设置能够捕捉输入波形的上升沿,下降沿或者同时捕捉上升沿和下降沿,以eva为例,捕获单元的简单框图如图2-81所示。与eva中的捕获单元相关的寄存器有:捕捉控制寄存器capcona,捕捉fifo状态寄存器capfifoa,2级深度fifo堆栈capfifo13,cap1fbot,cap2fbot,cap3fbot。,85,eva中的每个捕获单元都能选择定时器1或者定时器2作为自己的时基,但是cap1和cap2必须选择相同的定时器来作为自己的时基,而定时器3可以根据需求随意进行选择。捕捉引脚在捕捉波形的边沿变化情况时,从引脚变化发生到定时器的计数器锁存需要2个时钟周期,因此,为了能够捕捉到变化,输入信号应该要至少保持当前状态2个时钟周期。捕获单元的捕捉操作不会影响到定时器的任何操作以及与定时器相关的比较/pwm操作。每个捕获单元都有一个专用的2级深度的fifo堆栈,顶层堆栈由capfifo1、capfifo2、capfifo3组成,底层堆栈由cap1fbot、cap2fbot、cap3fbot组成。堆栈的顶层寄存器是只读寄存器,通常存储捕获单元捕捉到的旧值,对fifo堆栈进行读操作的时候,读到的是顶层堆栈中的旧值。当fifo堆栈上层寄存器中的旧值被读取后,堆栈底层寄存器中的新值就会被推入顶层寄存器。,86,图2-81 eva捕获单元框图,87,下面以eva下的cap1捕获单元为例,并选用定时器t1作为时基,分析捕捉的过程。 第一次捕捉。 此时堆栈应该为空。当捕捉引脚cap1捕捉到指定的变化时,捕获单元就会捕捉定时器t1的计数寄存器t1cnt中的值,并将其写入fifo堆栈的上层寄存器capfifo1中,同时捕捉fifo状态寄存器capfifoa中的cap1fifo状态位变为01。如果在另一次捕捉发生前读取fifo堆栈的值,则状态位cap1fifo变为00。 第二次捕捉 如果在第一次捕捉的值被读取之前发生第二次捕捉,则新的捕捉值就会被送入底层寄存器cap1fbot中,这时候,捕捉fifo状态器capfifoa中的cap1fifo状态位变为10,说明现在堆栈中有2个数据。如果在另一次捕捉发生前,上层寄存器capfifo1中的值被读出,则cap1fbot中的新值就会被推入capfifo1,同时状态位cap1fifo变为01。 第三次捕捉 如果fifo堆栈中已经存储了两个值时,又发生了一次捕捉,上层寄存器capfifo1的值就会丢失,底层寄存器的值被推入上层寄存器中,新的捕捉值将写入底层寄存器,同时状态位cap1fifo会变为11,说明有捕捉旧值已经丢失。如果在第3次捕捉之前已经读取了第一次捕捉的旧值,那么底层寄存器的值被送入顶层寄存器,新的值被写入底层寄存器,状态位为10,和第二次捕捉的情况相同。,88,5 事件管理器中断 事件管理器中断模块分成a、b、c三组,每组都有相应的中断标志和中断使能寄存器,如表2-53所示。 事件管理器的所有中断如表2-54所示。,89,90,2.2.11 f2812内嵌ecan总线模块,can协议主要用于多节点的网络通信,实际应用中,根据can协议由can协议核cpk (can protocol kernel)完成数据的收发。接收数据时,由cpk对接收到的数据按can的帧结构进行解码,包括确定开始位、结束位和crc校验,最后提取仲裁字段、控制位和数据字段,存放在接收缓冲器中,等待后续处理。发送数据时, cpk从发送缓冲器中读入数据,并根据相应的帧结构完成数据的封装,最后将封装生成的帧结构传送到总线上。,91,1 ecan总线模块结构 (1)ecan结构及特点 1) ecan总线通信接口具有can2.ob接口的特点,并具有以下特性: 带有32个完全可配置邮箱和定时邮递功能的增强型can总线模块,它的32个邮箱,提供了数字回路自测模式; 所有邮箱都具有独立的接收屏蔽寄存器,邮箱均可配置为发送或接收邮箱; 寄存器有两种不同的地址映射方式,访问方式更灵活; 超时功能。为了确保所有的消息都在预定的时间里收发,每个邮箱都有它自己的超时寄存器(moto) ; 时间标志。ecan模块模式内所有接收和发送的消息都可设置时间标志,监视收发消息的操作时间,在允许的时间间隔内,若某消息没有被接收或发送出去,则将产生一个中断; 覆盖保护。新消息是否覆盖旧消息取决于覆盖保护控制寄存器canopc,若设置canopc相应的位,旧消息会对消息写保护而阻止被覆盖; 两类中断cangifo/cangifi。一类与邮箱有关,如收发、失败响应、接收消息丢失、超时等中断;一类与错误或系统有关,如禁止写入、唤醒、总线关闭、被动错误、警告级别、时间标志计数器溢出等中断。一般用高优先级处理所有系统中断,较低优先级处理邮箱中断; 控制器独立于cpu,具有自我管理和控制的能力,最小化通信时cpu的负担。,92,2) ecan总线模块主要由can协议内核和消息管理器构成。,图2-88 ecan原理框图,93,can协议核(cpk)。包括接收缓存器、发送缓存器、控制缓存器和状态缓存器。数据按照can协议的帧结构,通过外部can收发器进入cpk,cpk根据can的帧结构对接收到的数据进行解码,提取出的消息数据送入接收缓冲器,等待消息控制器进一步处理。数据发送时,消息控制器将消息数据送入发送缓冲器, cpk根据can的帧结构完成消息数据的封装,并将生成的数据帧传送到can总线上。 消息管理器。消息管理器对can协议内核接收到的进行判定,决定留给cpu使用还是丢弃。消息管理器还根据消息的极性将下一个消息发送到can协议内核。消息管理器包括存储管理单元(mmu)、可以存储32个消息的邮箱存储器、控制寄存器和状态寄存器。,94,存储管理单元(mmu)。包括cpu接口、接收控制单元和时间管理单元。cpu接口是ecan控制器模块与cpu相连的内部接口,主要用于ecan与cpu之间的信息交互, cpu通过该接口实现对邮箱存储器、控制状态寄存器进行数据的读写。接收控制单元是c28x ecan模块的新增功能之一,用于设置并存储邮箱各自独立的屏蔽码,进行接收消息的匹配检测,即在邮箱存储器中搜索一个邮箱,使该邮箱对应的消息标识符,和经屏蔽码处理后的接收标识符相一致。ecan模块根据搜索结果,判断是否将接收的消息存放到邮箱存储器中。时间管理单元是ecan模块的另一个新增功能,配合状态控制寄存器中相应寄存器的设置,完成对can总线上消息数据接收或发送时间的监控。,95,邮箱存储器。主要用于消息数据的存储,参照can协议的帧结构,邮箱存储器中存放的内容包括仲裁字段中的标识符、控制位和数据字段。邮箱存储器映射在c28x片内ram中,可由cpu或can控制器进行读写操作,也可配置为中断模式,当发送或接收一条消息数据后,触发中断,由cpu进行后续处理。 控制状态寄存器。用于存放ecan模块的控制信息,实现对ecan模块的配置和控制功能。控制状态寄存器由26个32位的独立寄存器组成,功能包括消息收发控制、网络时间同步控制、错误检测控制、中断控制和时间管理控制等,支持32位的读写操作,可由cpu直接进行读写操作。 由此可见,ecan
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 萌宝心理测试题及答案
- 武术兵道考试试题及答案
- 2025年甘肃省临夏州临夏现代职业学院招聘考试笔试试题(含答案)
- 2024年事业单位考试大A类《职业能力倾向测验》临考冲刺试题含解析
- 2024年国家公务员考试申论真题答案(省部级)
- 细菌性菌痢考核试题及答案
- 2025年中式烹调师中级理论知识考试题库及答案
- 数字化物流商业运营 课件 模块二 数字化技术与商业应用
- 2024年北京市昌平区林业系统事业单位招聘考试《林业基础知识》试题及答案解析
- 2024年安全培训考试题及参考答案【典型题】
- 云计算环境下的数据安全与隐私保护研究
- 松毛岭战役课件
- 北京市东城区2024-2025学年高一上学期期末统一检测 化学试卷(解析版)
- 劳务合同完整版(2025年版)
- 燃气管道巡线人员管理制度
- 采购主管试用期转正工作总结
- 江苏保安考试题纲及答案
- 厂房物业服务合同(合同范本)6篇
- 《镁铝合金的腐蚀与防护》课件
- 初中数学+认识方程+课件++鲁教版(五四制)数学六年级下册
- 初高中一体化贯通培养教育管理探索与思考
评论
0/150
提交评论