DSP复习资料1

合集下载

DSP复习资料

DSP复习资料

DSP复习资料1、DSP 芯⽚的结构?答:DSP 是改进的哈佛结构 (80C51是哈佛结构)。

冯.诺依曼结构与哈佛结构的区别是地址空间和数据空间分开与否。

冯诺依曼结构数据空间和地址空间不分开,哈佛结构数据空间和地址空间是分开的。

哈佛结构的特点:使⽤两个独⽴的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存;使⽤独⽴的两条总线,分别作为CPU 与每个存储器之间的专⽤通信路径,⽽这两条总线之间毫⽆关联。

改进的哈佛结构,其结构特点为:使⽤两个独⽴的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存,以便实现并⾏处理;具有⼀条独⽴的地址总线和⼀条独⽴的数据总线,利⽤公⽤地址总线访问两个存储模块(程序存储模块和数据存储模块),公⽤数据总线则被⽤来完成程序存储模块或数据存储模块与CPU 之间的数据传输,改进的哈佛结构在哈佛结构的基础上⼜加以改进,即使得程序代码和数据存储空间之间也可以进⾏数据的传送。

TMS320LF2407A 采⽤改进的哈佛结构,芯⽚内部具有六条16位总线,即程序地址总线(PAB )、数据读地址总线(DRAB )、数据写地址总线(DWAB )、程序读总线(PRDB )、数据读总线(DRDB )、数据写总线(DWEB ),其程序存储器总线和数据存储器总线相互独⽴,⽀持并⾏的程序和操作数寻址,因此CPU 的读/写可在同⼀周期内进⾏,这种⾼速运算能⼒使⾃适应控制、卡尔曼滤波、神经⽹络、遗传算法等复杂控制算法得以实现。

结构⽰意图如下:2、什么是流⽔线技术?DSP 是不是具有流⽔线技术(pipeline) ?答:流⽔线技术是将各指令的各个步骤重叠起来执⾏,⽽不是⼀条指令执⾏完成之后,才开始执⾏下⼀条指令。

计算机在执⾏⼀条指令时,总要经过取指、译码、取数、执⾏运算等步骤,需要若⼲个指令周期才能完成。

流⽔线技术是将各指令的各个步骤重叠起来执⾏,⽽不是⼀条指令执⾏完成之后,才开始执⾏下⼀条指令。

DSP复习资料

DSP复习资料

第一章1、DSP,DSP的两层含义:DSP(Digital Signal Processing)----数字信号处理的理论和方法。

DSP(Digital Signal Processor)----用于数字信号处理的可编程微处理器。

2、CPU、MCU、DSP区别与联系:CPU:微型计算机中央处理器。

(如:奔腾等)MCU:单片微型计算机(如MCS-51,MCS-96等)DSP:可编程的数字信号处理器。

3、掌握冯偌伊曼结构、哈佛结构以及改进的哈佛结构的区别及联系?DSP处理器则毫无例外地将程序代码和数据的存储空间分开,各有自己的地址总线与数据总线,这就是所谓的哈弗结构(同时取指令和取操作数,并行的进行指令和数据的处理,大大提高了运算速度)。

改进的哈弗结构,在哈弗结构基础上。

又加以改进,使得程序代码和数据存储空间之间也可以进行数据的传送。

冯·诺依曼体系结构模型:改进的哈弗结构:4、简述数字信号处理与模拟信号处理相比的优越性,(DSP系统的特点):DSP系统的特点(与模拟信号处理系统相比):1)、精度高,抗干扰能力强,稳定性好。

2)、编程方便,易于实现复杂算法(含自适应算法)。

3)、可程控。

4)、接口简单。

5)、集成方便。

5、DSP芯片的结构特点?1)、改进的哈弗结构2)、多总线结构3)、流水线技术4)、多处理单元5)、特殊的DSP 指令6)、指令周期短7)、运算精度高8)、丰富的外设9)、功耗低6、DSP芯片的分类?DSP芯片的分类(1)按用途分类1)、通用型DSP芯片(本课程主要讨论的芯片)2)、专用型DSP芯片(2)、按数据格式分1)、定点DSP 2)、浮点DSP7、了解做DSP方面公司:DSP主要厂商:美国TI、ADI、Motorola、Zilog等公司。

TI公司位居榜首,占全球DSP市场约60%左右。

TI、Lucent、AD、Motorola、ZSPh和NEC公司。

8、DSP应用系统的开发工具?常用的软硬件开发工具:Simulator软件仿真器、Emulator在线仿真器和C编译器等。

DSP复习资料

DSP复习资料

DSP复习资料DSP复习资料填空题:1、TL公司的DSP产品主要有TMS320C2000、TMS320C5000和TMS320C6000系列。

2、程序计数器的值可以通过复位操作、顺序执行指令、分支转移、累加器转移、块重复、子程序调用、从累加器调用子程序,中断操作来改变。

3、COFF目标文件都包含以下三种形式的段,分别是.text文本段、.data数据段、.bass保留空间。

4、DSP的寻址方式有七种分别是立即寻址、绝对寻址、累加器寻址、直接寻址、间接寻址、存储器映像寄存器寻址、堆栈寻址。

5、DSP芯片的开发工具可以分为代码生成工具和代码调试工具两类。

6、子段有两种,用.sect命令建立的是已初始化段,用.usect命令建立的是未初始化段。

7、DROM为1,片内ROM配置程序和存储空间,ST1的CPL为1表示选用堆栈指针SP的直接寻址方式;ST1的C16等于1表示ALU 工作在双精度算式(填0或1)8、DSP具有两个40 位的累加器A和B,累加器A的32-39位是保护位。

9、TMS320C54x DSP的内部总存储空间为192K字,分成了3个可选择的存储空间分别是64K程序存储空间、64K数据存储空间、64K的I/O存储空间。

10、TMS320C54x有4组地址总线分别是PAB、CAB、DAB和EAB总线。

11、链接器对段的处理主要头通过MEMORY 和SECTIONS的两个命令来完成。

12、DSP有3个16位寄存器作为状态控制寄存器,分别是ST0、ST1和PMST。

13、TMS320C54x的三类串行口分别是标准同步串行口、缓冲串行口、时分多路串行口。

14、DSP的内部存储器类型可分为RAM和ROM,其中RAM可以定义为两个类型单寻址RAM(SARAM)和双寻址RAM(DARAM)。

15、在数字信号处理器寻址指令系统中,D mad为16位立即数,表示数据存储器地址,P mad表示程序存储器地址。

最新DSP期末复习资料汇(含题)资料

最新DSP期末复习资料汇(含题)资料

最新DSP期末复习资料汇(含题)资料第⼀章绪论 DSP 与DSP 技术(1)DSP(Digital Signal Processing)---- 数字信号处理的理论和⽅法。

(2)DSP(Digital Signal Processor)----⽤于数字信号处理的可编程微处理器。

(3)DSP 技术(Digital Signal Process)---- 是利⽤专门或通⽤数字信号处理芯⽚,完成数字信号处理的⽅法和技术。

2. DSP 系统的特点(1)精度⾼、抗⼲扰能⼒强,稳定性好。

(2)编程⽅便、易于实现复杂算法(含⾃适应算法)。

(3)可程控。

(4)接⼝简单。

(5)集成⽅便。

3. DSP 芯⽚的结构特点(1)改进的哈佛结构①哈佛结构DSP 处理器将程序代码和数据的存储空间分开,各有⾃⼰的地址总线和数据总线。

(⽬的是为了同时取指令和取操作数,并进⾏指令和数据的处理,从⽽⼤⼤提⾼运算速度)②改进的哈佛结构在哈佛结构的基础上,使得程序代码和数据的存储空间之间也可以进⾏数据的传送。

(2)多总线结构多总线结构可以保证在⼀个机器周期内多次访问程序空间和数据空间。

TMS320C54x 内部有P、C、D、E 4 条总线P:传送取⾃ROM 的指令代码和⽴即数;C、D:传送从RAM 读出的操作数;E:传送写⼊到RAM 中的数据;(3)流⽔线技术将各指令的各个步骤重叠起来执⾏,⽽不是⼀条指令执⾏完成之后,才开始执⾏下⼀条指令。

即第⼀条指令取指后,在译码时,第⼆条指令就取指,第⼀条指令取数时,第⼆条指令译码,⽽第三条指令就开始取指,。

以此类推。

(4)多处理单元;(5)特殊的DSP 指令;(6)指令周期短、功能强;(7)运算精度⾼;(8)丰富的外设;(9)功耗低。

DSP 最重要的特点:特殊的内部结构、强⼤的信息处理能⼒及较⾼的运⾏速度。

4.DSP 芯⽚可以归纳为三⼤系列:①TMS320C2000 系列:适⽤于控制领域②TMS320C5000 系列:应⽤于通信领域③TMS320C6000 系列:应⽤于图像处理第⼆章TMS320C54x 的硬件结构1. TMS320C54x 内部结构( 3 ⼤块)(1)CPU (2)存储器系统(3) ⽚内外设与专⽤硬件电路CPU 部分①先进的多总线结构(1 条程序总线、 3 条数据总线和 4 条地址总线)。

DSP复习资料

DSP复习资料
应用。 2. 什么是流水线作业?P1
答:流水线作业就是使取址、译码、取操作数和执行指令等操作重叠执行。 3. 什么是哈佛总线?P1
答:哈佛总线就是程序空间和数据空间分开,分别由各自的地址总线和数据总线; 它可以同时完成获取指令和数据读取操作。 4. 2812 的 SPI 和 SCI 接口的主要异同?
EALLOW; PieVectTable.TINT0=&cpu_timer0_isr; GpioMuxRegs.GPAMUX.all=0x0000; GpioMuxRegs.GPADIR.all|=0x0001; EDIS; InitCpuTimers(); ConfigCpuTIMER(&CpuTimer0,100,2000000); StartCpuTimer0; IER|=M_INT1; PieCtrlRegs.PIEIER1.bit.INTx7=1; EINT; ERTM; for(;;) { GpioDataRegs,GPATOGGLE.bit.GPIOA0=1; CpuTimer0.InterruptCount==CpuTimer0.InterruptCount ; } } interrupt void cpu_timer0_isr(void) { CpuTimer0.InterruptCount++; PieCtrlRegs.PIEACK.all= PIEACK_GROUP1; } 15. 拨码键盘地址 0x88000,LED 显示器地址 0x88001,编程实现:拨码为 1,相应灯亮;反 之则灭。 答:#include “DSP2812x_Device.h” #include “DSP2812x_Examples.h” void InitsysCtrl(void); void main(void) { InitsysCtrl(); DINT; IER=0x0000; IFR=0x0000; unsigned int temp; while(1) { temp=*(int*)0x88000; *(int*)0x88001=temp; } } void InitsysCtrl(void) { EALLOW;

DSP复习资料

DSP复习资料

第一章概述、第三章存储空间第四章DSP系统设计入门第五章DSP的时钟与系统控制Chap 6 中断与中断控制第7章通用输入输出GPIO总结第8章DSP的捕获单元第9章:增强型脉宽调制器ePWM第10章模数转换器(ADC实验代码:实验一:#include"DSP28x_Project.h"#include"LED_TM1638.h"interrupt void cpu_timer0_isr(void); //timer0 interrupt void myXint1_isr(void); //xint1// interrupt void EPWM4Int_isr(void); //EPWM4 // interrupt void Ecap1Int_isr(void); //ECAP1 // interrupt void MyAdcInt1_isr(void); //ADCINT1//初始化变量int hourH =0 ;int hourL =0;int minH = 0;int minL = 0;int secH = 0;int secL =0; int TenmS =0;int HorseType = 0;//跑马灯的类型int keyDLTime = 0;//设置去抖动int LedFlashCtr = 0 ;//用于数码管的显示int NewLedEn = 0;int Begin =1;void HorseRunning(int16 no);#define Led0Blink() GpioDataRegs.GPACLEAR.bit.GPIO0 = 1 #define Led1Blink() GpioDataRegs.GPACLEAR.bit.GPIO1 = 1 #define Led2Blink() GpioDataRegs.GPACLEAR.bit.GPIO2 = 1 #define Led3Blink() GpioDataRegs.GPACLEAR.bit.GPIO3 = 1 #define Led0Blank() GpioDataRegs.GPASET.bit.GPIO0 = 1 #define Led1Blank() GpioDataRegs.GPASET.bit.GPIO1 = 1 #define Led2Blank() GpioDataRegs.GPASET.bit.GPIO2 = 1 #define Led3Blank() GpioDataRegs.GPASET.bit.GPIO3 = 1void Xint1_Init(){EALLOW;GpioCtrlRegs.GPAPUD.bit.GPIO12 = 0;GpioCtrlRegs.GPAMUX1.bit.GPIO12 = 0;GpioCtrlRegs.GPADIR.bit.GPIO12 = 0;GpioIntRegs.GPIOXINT1SEL.bit.GPIOSEL = 12;XIntruptRegs.XINT1CR.bit.POLARITY = 0;//下降沿XIntruptRegs.XINT1CR.bit.ENABLE = 1;EDIS;}void HorseIO_Init(){EALLOW;GpioDataRegs.GPASET.bit.GPIO0 = 1;GpioDataRegs.GPASET.bit.GPIO1 = 1;GpioDataRegs.GPASET.bit.GPIO2 = 1;GpioDataRegs.GPASET.bit.GPIO3 = 1;GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0;GpioCtrlRegs.GPADIR.bit.GPIO0 = 1;GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 0;GpioCtrlRegs.GPADIR.bit.GPIO1 = 1;GpioCtrlRegs.GPAMUX1.bit.GPIO2 = 0;GpioCtrlRegs.GPADIR.bit.GPIO2 = 1;GpioCtrlRegs.GPAMUX1.bit.GPIO3 = 0;GpioCtrlRegs.GPADIR.bit.GPIO3 = 1;EDIS;}void DelaymS(int tm){int i;unsigned int j;for(i = 0;i < tm ;i++){j = 60000;while(j != 0)j--;}}void main(void){InitSysCtrl(); //初始化系统时钟,选择内部晶振1,10MHZ,12倍频,2分频,初始化外设时钟,低速外设,4分频DINT; //关总中断IER = 0x0000; //关CPU中断使能IFR = 0x0000; //清CPU中断标志InitPieCtrl(); //关pie中断InitPieVectTable(); //清中断向量表EALLOW; //配置中断向量表PieVectTable.TINT0 = &cpu_timer0_isr;PieVectTable.XINT1 = &myXint1_isr;// PieVectTable.ECAP1_INT = &Ecap1Int_isr;// PieVectTable.EPWM4_INT = &EPWM4Int_isr;// PieVectTable.ADCINT1 = &MyAdcInt1_isr;PieCtrlRegs.PIEIER1.bit.INTx7 = 1;PieCtrlRegs.PIEIER1.bit.INTx4 = 1;IER |= 1;EDIS;// MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);InitFlash();HorseIO_Init();Xint1_Init();TM1638_Init(); //初始化LEDInitCpuTimers(); // 初始化定时器ConfigCpuTimer(&CpuTimer0, 60, 10000);//设置时钟的响应时间为0.01sEALLOW;CpuTimer0Regs.TCR.bit.TRB = 1;CpuTimer0Regs.TCR.bit.TSS = 0;EDIS;EINT;//中断总使能ERTM;while(1){//if(NewLedEn == 0){LED_Show(1,(TenmS % 10),0); LED_Show(2,(TenmS / 10),0); LED_Show(3,secL,1);LED_Show(4,secH,0);LED_Show(5,minL,1);LED_Show(6,minH,0);LED_Show(7,hourL,1);LED_Show(8,hourH,0);NewLedEn = 1;}}}void HorseRunning(int no){if(no & 0x1)Led0Blink();else Led0Blank();if(no & 0x2)Led1Blink();else Led1Blank();if(no & 0x4)Led2Blink();else Led2Blank();if(no & 0x8)Led3Blink();else Led3Blank();}void HorseRunning1(int no){if(no & 0x1) Led0Blink();else Led0Blank();if(no & 0x2){Led0Blink();Led1Blink();} else{Led0Blank();Led1Blank();} if(no & 0x4){Led2Blink();Led1Blink();}else{Led2Blank();Led1Blank();}if(no & 0x8){Led3Blink();Led2Blink();}else{Led3Blank();Led2Blank();}}interrupt void myXint1_isr(void){Begin = 1;if((HorseType == 0)&&(keyDLTime>20)){HorseType = 1; keyDLTime = 0;}else if((HorseType == 1)&&(keyDLTime>20)){HorseType = 0; keyDLTime = 0;}PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;//手动清楚这里的中断标志 all=0x0001也行EALLOW;CpuTimer0Regs.TCR.bit.TRB = 1;CpuTimer0Regs.TCR.bit.TSS = 0;EDIS;}interrupt void cpu_timer0_isr(void) {keyDLTime++;LedFlashCtr++;if((LedFlashCtr & 0xf)==0) NewLedEn = 0;if(Begin == 1){TenmS ++;if(TenmS == 100){TenmS = 0; secL++;}if(secL == 10){secL = 0; secH++;}if(secH == 6){secH = 0; minL++;}if(minL == 10){minL = 0; minH++;}if(minH == 6){minH = 0; hourL++;}if(hourH == 2 && hourL ==4){hourH = 0; hourL =0;}else if(hourL == 10){hourL = 0; hourH++;}}if(HorseType == 0 && Begin == 1){HorseRunning((LedFlashCtr&0xf0)>>4);}else if(HorseType == 1 && Begin ==1){HorseRunning1((LedFlashCtr&0xf0)>>4);}PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;}实验二:#include"DSP28x_Project.h"#include"LED_TM1638.h"#include"DSP2802x_ECap.h"// interrupt void EPWM4Int_isr(void); //EPWM4 interrupt void Ecap1Int_isr(void); //ECAP1//初始化变量int t1 = 0; int t2 = 0;int t3 = 0;int t4 = 0;int DutyOnTime = 0;int DutyOffTime = 0;int Period = 0;float rate = 0;void Gpio_Init(void);void InitPWM4(void);void InitCap1(void);void DelaymS(int tm);void DelaymS(int tm){int i;unsigned int j;for(i = 0;i < tm ;i++){j = 60000;while(j != 0)j--;}}void InitCap1(void){ECap1Regs.ECEINT.all = 0x0000;//中断向量初始化 ECap1Regs.ECCLR.all = 0xFFFF;ECap1Regs.ECCTL1.bit.PRESCALE = 0;//1分频ECap1Regs.ECCTL1.bit.CAP1POL = 0;//上下沿均触发 ECap1Regs.ECCTL1.bit.CAP2POL = 1;ECap1Regs.ECCTL1.bit.CAP3POL = 0;ECap1Regs.ECCTL1.bit.CAP4POL = 1;ECap1Regs.ECCTL1.bit.CTRRST1 = 1;//差分模式ECap1Regs.ECCTL1.bit.CTRRST2 = 1;ECap1Regs.ECCTL1.bit.CTRRST3 = 1;ECap1Regs.ECCTL1.bit.CTRRST4 = 1;ECap1Regs.ECCTL1.bit.CAPLDEN = 1;//允许装载ECap1Regs.ECCTL2.bit.CAP_APWM = 0;//用于捕获ECap1Regs.ECCTL2.bit.CONT_ONESHT = 0;//连续ECap1Regs.ECCTL2.bit.SYNCI_EN = 0;ECap1Regs.ECCTL2.bit.SYNCO_SEL = 0;ECap1Regs.ECCTL2.bit.TSCTRSTOP = 1;//自由运行ECap1Regs.ECEINT.bit.CEVT4 = 1;//设置中断}void InitPWM4(void){int PWMPRD,DeadTime;//周期和死区时间EALLOW;SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;//设置epwm同步暂停 EDIS;PWMPRD = 3750;DeadTime = 180;EPwm4Regs.TBPRD = PWMPRD;EPwm4Regs.TBPHS.half.TBPHS = 0;//忽略同步事件EPwm4Regs.TBCTL.bit.CLKDIV = 0;//预分频为1EPwm4Regs.TBCTL.bit.HSPCLKDIV = 0;EPwm4Regs.TBCTL.bit.PRDLD = 0;//使用映射寄存器EPwm4Regs.TBCTL.bit.CTRMODE = 2;//对称模式EPwm4Regs.TBCTL.bit.PHSEN = 0;//不从时基相位寄存器进行装载 EPwm4Regs.TBCTL.bit.SYNCOSEL = 1;//EPwm4Regs.CMPCTL.bit.SHDWAMODE = 0;//使用映射寄存器EPwm4Regs.CMPCTL.bit.SHDWBMODE = 0;EPwm4Regs.CMPCTL.bit.LOADAMODE = 2;//计数器=0或T时候装载 EPwm4Regs.CMPCTL.bit.LOADBMODE = 2;EPwm4Regs.CMPA.half.CMPA = (PWMPRD / 2);//脉冲占比50%EPwm4Regs.CMPB = (PWMPRD / 2);EPwm4Regs.AQCTLA.bit.CAU = 2;//配置动作EPwm4Regs.AQCTLA.bit.CAD = 1;EPwm4Regs.AQCTLA.bit.CBU = 0;EPwm4Regs.AQCTLA.bit.CBD = 0;EPwm4Regs.DBCTL.bit.HALFCYCLE = 0;//全周期EPwm4Regs.DBCTL.bit.IN_MODE = 0;//A是源EPwm4Regs.DBCTL.bit.POLSEL = 2;EPwm4Regs.DBCTL.bit.OUT_MODE = 3;EPwm4Regs.DBFED = DeadTime;EPwm4Regs.DBRED = DeadTime;EALLOW;SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;//设置epwm同步暂停EDIS;}void Gpio_Init(){EALLOW;GpioCtrlRegs.GPADIR.bit.GPIO6 = 1; //设置为输出GpioCtrlRegs.GPADIR.bit.GPIO7 = 1;GpioCtrlRegs.GPAPUD.bit.GPIO5 = 0;//上拉GpioCtrlRegs.GPAPUD.bit.GPIO6 = 1;GpioCtrlRegs.GPAPUD.bit.GPIO7 = 1;GpioCtrlRegs.GPAMUX1.bit.GPIO5 = 3;//设置外设功能GpioCtrlRegs.GPAMUX1.bit.GPIO6 = 1;GpioCtrlRegs.GPAMUX1.bit.GPIO7 = 1;GpioDataRegs.GPACLEAR.bit.GPIO5 =1;//初始化数值GpioDataRegs.GPACLEAR.bit.GPIO6 =1;GpioDataRegs.GPACLEAR.bit.GPIO7 =1;EDIS;}void main(void){InitSysCtrl(); //初始化系统时钟,选择内部晶振1,10MHZ,12倍频,2分频,初始化外设时钟,低速外设,4分频DINT; //关总中断IER = 0x0000; //关CPU中断使能IFR = 0x0000; //清CPU中断标志InitPieCtrl(); //关pie中断InitPieVectTable(); //清中断向量表EALLOW; //配置中断向量表PieVectTable.ECAP1_INT = &Ecap1Int_isr;PieCtrlRegs.PIEIER4.bit.INTx1 = 1;IER |= 8;EDIS;// MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);InitFlash();Gpio_Init();InitPWM4();InitCap1();TM1638_Init(); //初始化LEDEINT;//中断总使能ERTM;while(1){DelaymS(2000);LED_Show(1,(DutyOnTime % 10),0);LED_Show(2,((DutyOnTime / 10) % 10),0);LED_Show(3,((DutyOnTime / 100) % 10),1);LED_Show(4,((DutyOnTime / 1000) ),0);LED_Show(5,(Period % 10),0);LED_Show(6,((Period / 10) % 10),0);LED_Show(7,((Period / 100) % 10),1);LED_Show(8,((Period / 1000) ),0);DelaymS(2000);}}interrupt void Ecap1Int_isr(void){t1 = ECap1Regs.CAP2;t2 = ECap1Regs.CAP3;t3 = ECap1Regs.CAP4;t4 = ECap1Regs.CAP1;Period = t1 + t2;DutyOnTime = t1;DutyOffTime = t2;rate = DutyOnTime/DutyOffTime;ECap1Regs.ECCLR.bit.CEVT4 = 1;ECap1Regs.ECCLR.bit.INT = 1;PieCtrlRegs.PIEACK.all = 8;实验三#include"DSP28x_Project.h"#include"LED_TM1638.h"#include"DSP2802x_Adc.h"#define ADC_usDELAY 1000Linterrupt void MyAdcInt1_isr(void); //ADCINT1void Init_Adc(void);void InitPWM4(void);void DelaymS(int tm);//初始化变量int High = 0;int Low = 0;int Derta = 0;float high = 0; float low = 0;float derta = 0;int ADCSampT = 12;void Init_Adc(void){extern void DSP28x_usDelay(Uint32 Count);EALLOW;SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1;(*Device_cal)();EDIS;DELAY_US(ADC_usDELAY);EALLOW;AdcRegs.ADCCTL1.bit.ADCBGPWD = 1; // Power ADC BGAdcRegs.ADCCTL1.bit.ADCREFPWD = 1; // Power referenceAdcRegs.ADCCTL1.bit.ADCPWDN = 1; // Power ADCAdcRegs.ADCCTL1.bit.ADCENABLE = 1; // Enable ADCAdcRegs.ADCCTL1.bit.ADCREFSEL = 0; // Select interal BG使用内部参考电压EDIS;DELAY_US(ADC_usDELAY);AdcOffsetSelfCal();//自矫正DELAY_US(ADC_usDELAY);EALLOW;AdcRegs.ADCCTL1.bit.INTPULSEPOS = 1;AdcRegs.INTSEL1N2.bit.INT1CONT = 0;//不连续中断AdcRegs.INTSEL1N2.bit.INT1E = 1;//中断使能AdcRegs.INTSEL1N2.bit.INT1SEL = 7;//7次转换后结束AdcRegs.ADCSAMPLEMODE.all = 0;//顺序采样AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 11;AdcRegs.ADCSOC1CTL.bit.TRIGSEL = 11;AdcRegs.ADCSOC2CTL.bit.TRIGSEL = 11;AdcRegs.ADCSOC3CTL.bit.TRIGSEL = 11;AdcRegs.ADCSOC4CTL.bit.TRIGSEL = 11;AdcRegs.ADCSOC5CTL.bit.TRIGSEL = 11;AdcRegs.ADCSOC6CTL.bit.TRIGSEL = 11;AdcRegs.ADCSOC7CTL.bit.TRIGSEL = 11;AdcRegs.ADCSOC0CTL.bit.CHSEL = 1;//前四个通道实现对ADA1过采样 AdcRegs.ADCSOC1CTL.bit.CHSEL = 1;AdcRegs.ADCSOC2CTL.bit.CHSEL = 1;AdcRegs.ADCSOC3CTL.bit.CHSEL = 1;AdcRegs.ADCSOC4CTL.bit.CHSEL = 9;//后四个通道实现对ADB1过采样 AdcRegs.ADCSOC5CTL.bit.CHSEL = 9;AdcRegs.ADCSOC6CTL.bit.CHSEL = 9;AdcRegs.ADCSOC7CTL.bit.CHSEL = 9;AdcRegs.ADCSOC0CTL.bit.ACQPS = ADCSampT;//设置采样周期AdcRegs.ADCSOC1CTL.bit.ACQPS = ADCSampT;AdcRegs.ADCSOC2CTL.bit.ACQPS = ADCSampT;AdcRegs.ADCSOC3CTL.bit.ACQPS = ADCSampT;AdcRegs.ADCSOC4CTL.bit.ACQPS = ADCSampT;AdcRegs.ADCSOC5CTL.bit.ACQPS = ADCSampT;AdcRegs.ADCSOC6CTL.bit.ACQPS = ADCSampT;AdcRegs.ADCSOC7CTL.bit.ACQPS = ADCSampT;EDIS;}void InitPWM4(void){int PWMPRD,DeadTime;//周期和死区时间EALLOW;SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;//设置epwm同步暂停EDIS;PWMPRD = 3000;DeadTime = 120;EPwm4Regs.TBPRD = PWMPRD;EPwm4Regs.TBPHS.half.TBPHS = 0;//忽略同步事件EPwm4Regs.TBCTL.bit.CLKDIV = 0;//预分频为1EPwm4Regs.TBCTL.bit.HSPCLKDIV = 0;EPwm4Regs.TBCTL.bit.PRDLD = 0;//使用映射寄存器EPwm4Regs.TBCTL.bit.CTRMODE = 2;//对称模式EPwm4Regs.TBCTL.bit.PHSEN = 0;//不从时基相位寄存器进行装载 EPwm4Regs.TBCTL.bit.SYNCOSEL = 1;//EPwm4Regs.CMPCTL.bit.SHDWAMODE = 0;//使用映射寄存器EPwm4Regs.CMPCTL.bit.SHDWBMODE = 0;EPwm4Regs.CMPCTL.bit.LOADAMODE = 2;//计数器=0或T时候装载 EPwm4Regs.CMPCTL.bit.LOADBMODE = 2;EPwm4Regs.CMPA.half.CMPA = (PWMPRD / 2);//脉冲占比50%EPwm4Regs.CMPB = (PWMPRD / 2);EPwm4Regs.AQCTLA.bit.CAU = 2;//配置动作EPwm4Regs.AQCTLA.bit.CAD = 1;EPwm4Regs.AQCTLA.bit.CBU = 0;EPwm4Regs.AQCTLA.bit.CBD = 0;EPwm4Regs.DBCTL.bit.HALFCYCLE = 0;//全周期EPwm4Regs.DBCTL.bit.IN_MODE = 0;//A是源EPwm4Regs.DBCTL.bit.POLSEL = 2;EPwm4Regs.DBCTL.bit.OUT_MODE = 3;EPwm4Regs.DBFED = DeadTime;EPwm4Regs.DBRED = DeadTime;EPwm4Regs.ETSEL.bit.SOCAEN = 1;EPwm4Regs.ETSEL.bit.SOCASEL = 1;EPwm4Regs.ETPS.bit.SOCAPRD = 1;EPwm4Regs.ETCLR.bit.SOCA = 1;EALLOW;SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;//设置epwm同步暂停 EDIS;}void DelaymS(int tm){int i;unsigned int j;for(i = 0;i < tm ;i++){j = 60000;while(j != 0)j--;}}void main(void){High = AdcResult.ADCRESULT0 + AdcResult.ADCRESULT1;High += AdcResult.ADCRESULT2;InitSysCtrl(); //初始化系统时钟,选择内部晶振1,10MHZ,12倍频,2分频,初始化外设时钟,低速外设,4分频DINT; //关总中断IER = 0x0000; //关CPU中断使能IFR = 0x0000; //清CPU中断标志InitPieCtrl(); //关pie中断InitPieVectTable(); //清中断向量表EALLOW; //配置中断向量表PieVectTable.rsvd10_1 = &MyAdcInt1_isr;PieCtrlRegs.PIEIER10.bit.INTx1 = 1;IER |= 0x0200;EDIS;// MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart); InitFlash();TM1638_Init(); //初始化LEDInit_Adc();InitPWM4();EINT;//中断总使能ERTM;while(1){}}interrupt void MyAdcInt1_isr(void) {High = AdcResult.ADCRESULT0 + AdcResult.ADCRESULT1;High += AdcResult.ADCRESULT2 + AdcResult.ADCRESULT3;Low = AdcResult.ADCRESULT4 + AdcResult.ADCRESULT5;Low += AdcResult.ADCRESULT6 + AdcResult.ADCRESULT7;Derta = High - Low;high = High/(4*4096*1.0) * 3.30;low = Low/(4*4096*1.0) * 3.30;derta = Derta/(4*4096*1.0) * 3.30;if (derta < 0){derta = -derta;}AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;PieCtrlRegs.PIEACK.all = PIEACK_GROUP10;//EPwm4Regs.ETCLR.bit.SOCA = 1;LED_Show(1,(int)(high*100)%10,0);//high即为0.037 LED_Show(2,(int)(high*10)%10,0);LED_Show(3,(int)(high*1)%10,0);LED_Show(4,(int)(low*100)%10,0);LED_Show(5,(int)(low*10)%10,0);LED_Show(6,(int)(low)%10,0);LED_Show(7,(int)(derta*10) % 10,0);LED_Show(8,(int)(derta*1) % 10,0);DelaymS(300);}实验四://homework4#include"DSP28x_Project.h"#include"LED_TM1638.h"#include"DSP2802x_Adc.h"#define ADC_usDELAY 1000Linterrupt void MyAdcInt1_isr(void); //ADCINT1void Init_Adc(void);void InitPWM4(void);void DelaymS(int tm);//初始化变量int Target = 0;int Now = 0;float target = 0; float now = 0;int ADCSampT = 12;int Derta = 0;//记录偏差int CMPA;void Init_Adc(void){extern void DSP28x_usDelay(Uint32 Count);EALLOW;SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1;(*Device_cal)();EDIS;DELAY_US(ADC_usDELAY);EALLOW;AdcRegs.ADCCTL1.bit.ADCBGPWD = 1; // Power ADC BGAdcRegs.ADCCTL1.bit.ADCREFPWD = 1; // Power referenceAdcRegs.ADCCTL1.bit.ADCPWDN = 1; // Power ADCAdcRegs.ADCCTL1.bit.ADCENABLE = 1; // Enable ADCAdcRegs.ADCCTL1.bit.ADCREFSEL = 0; // Select interal BG使用内部参考电压EDIS;DELAY_US(ADC_usDELAY);AdcOffsetSelfCal();//自矫正DELAY_US(ADC_usDELAY);EALLOW;AdcRegs.ADCCTL1.bit.INTPULSEPOS = 1;AdcRegs.INTSEL1N2.bit.INT1CONT = 0;//不连续中断AdcRegs.INTSEL1N2.bit.INT1E = 1;//中断使能AdcRegs.INTSEL1N2.bit.INT1SEL = 7;//7次转换后结束AdcRegs.ADCSAMPLEMODE.all = 0;//顺序采样AdcRegs.ADCSOC0CTL.bit.TRIGSEL = 11;AdcRegs.ADCSOC1CTL.bit.TRIGSEL = 11;AdcRegs.ADCSOC2CTL.bit.TRIGSEL = 11;AdcRegs.ADCSOC3CTL.bit.TRIGSEL = 11;AdcRegs.ADCSOC4CTL.bit.TRIGSEL = 11;AdcRegs.ADCSOC5CTL.bit.TRIGSEL = 11;AdcRegs.ADCSOC6CTL.bit.TRIGSEL = 11;AdcRegs.ADCSOC7CTL.bit.TRIGSEL = 11;AdcRegs.ADCSOC0CTL.bit.CHSEL = 1;//前四个通道实现对ADA1过采样AdcRegs.ADCSOC1CTL.bit.CHSEL = 1;AdcRegs.ADCSOC2CTL.bit.CHSEL = 1;AdcRegs.ADCSOC3CTL.bit.CHSEL = 1;AdcRegs.ADCSOC4CTL.bit.CHSEL = 9;//后四个通道实现对ADB1过采样AdcRegs.ADCSOC5CTL.bit.CHSEL = 9;AdcRegs.ADCSOC6CTL.bit.CHSEL = 9;AdcRegs.ADCSOC7CTL.bit.CHSEL = 9;AdcRegs.ADCSOC0CTL.bit.ACQPS = ADCSampT;//设置采样周期AdcRegs.ADCSOC1CTL.bit.ACQPS = ADCSampT;AdcRegs.ADCSOC2CTL.bit.ACQPS = ADCSampT;AdcRegs.ADCSOC3CTL.bit.ACQPS = ADCSampT;AdcRegs.ADCSOC4CTL.bit.ACQPS = ADCSampT;AdcRegs.ADCSOC5CTL.bit.ACQPS = ADCSampT;AdcRegs.ADCSOC6CTL.bit.ACQPS = ADCSampT;AdcRegs.ADCSOC7CTL.bit.ACQPS = ADCSampT;EDIS;}//Epwm4产生ADC触发信号void InitPWM4(void){int PWMPRD,DeadTime;//周期和死区时间EALLOW;SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;//设置epwm同步暂停 EDIS;PWMPRD = 3000;DeadTime = 120;EPwm4Regs.TBPRD = PWMPRD;EPwm4Regs.TBPHS.half.TBPHS = 0;//忽略同步事件EPwm4Regs.TBCTL.bit.CLKDIV = 0;//预分频为1EPwm4Regs.TBCTL.bit.HSPCLKDIV = 0;EPwm4Regs.TBCTL.bit.PRDLD = 0;//使用映射寄存器EPwm4Regs.TBCTL.bit.CTRMODE = 2;//对称模式EPwm4Regs.TBCTL.bit.PHSEN = 0;//不从时基相位寄存器进行装载 EPwm4Regs.TBCTL.bit.SYNCOSEL = 1;//EPwm4Regs.CMPCTL.bit.SHDWAMODE = 0;//使用映射寄存器EPwm4Regs.CMPCTL.bit.SHDWBMODE = 0;EPwm4Regs.CMPCTL.bit.LOADAMODE = 2;//计数器=0或T时候装载 EPwm4Regs.CMPCTL.bit.LOADBMODE = 2;EPwm4Regs.CMPA.half.CMPA = (PWMPRD / 2);//脉冲占比50%EPwm4Regs.CMPB = (PWMPRD / 2);EPwm4Regs.AQCTLA.bit.CAU = 2;//配置动作EPwm4Regs.AQCTLA.bit.CAD = 1;EPwm4Regs.AQCTLA.bit.CBU = 0;EPwm4Regs.AQCTLA.bit.CBD = 0;EPwm4Regs.DBCTL.bit.HALFCYCLE = 0;//全周期EPwm4Regs.DBCTL.bit.IN_MODE = 0;//A是源EPwm4Regs.DBCTL.bit.POLSEL = 2;EPwm4Regs.DBCTL.bit.OUT_MODE = 3;EPwm4Regs.DBFED = DeadTime;EPwm4Regs.DBRED = DeadTime;EPwm4Regs.ETSEL.bit.SOCAEN = 1;EPwm4Regs.ETSEL.bit.SOCASEL = 1;EPwm4Regs.ETPS.bit.SOCAPRD = 1;EPwm4Regs.ETCLR.bit.SOCA = 1;EALLOW;SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;//设置epwm同步暂停 EDIS;}//Epwm1产生DAC 生成和target差不多的模拟信号并且void InitPWM1(void){//配置PWM输出 GPIO0EALLOW;GpioCtrlRegs.GPADIR.bit.GPIO0 = 1; //设置为输出GpioCtrlRegs.GPAPUD.bit.GPIO0 = 1;//上拉GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 1;//设置外设功能GpioDataRegs.GPACLEAR.bit.GPIO0 =1;//初始化数值EDIS;int PWMPRD;//周期和死区时间EALLOW;SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;//设置epwm同步暂停 EDIS;PWMPRD = 3000;EPwm1Regs.TBPRD = PWMPRD;EPwm1Regs.TBPHS.half.TBPHS = 0;//忽略同步事件EPwm1Regs.TBCTL.bit.CLKDIV = 0;//预分频为1EPwm1Regs.TBCTL.bit.HSPCLKDIV = 0;EPwm1Regs.TBCTL.bit.PRDLD = 0;//使用映射寄存器EPwm1Regs.TBCTL.bit.CTRMODE = 2;//对称模式EPwm1Regs.TBCTL.bit.PHSEN = 0;//不从时基相位寄存器进行装载 EPwm1Regs.TBCTL.bit.SYNCOSEL = 1;//EPwm1Regs.CMPCTL.bit.SHDWAMODE = 0;//使用映射寄存器EPwm1Regs.CMPCTL.bit.SHDWBMODE = 0;EPwm1Regs.CMPCTL.bit.LOADAMODE = 2;//计数器=0或T时候装载EPwm1Regs.CMPCTL.bit.LOADBMODE = 2;EPwm1Regs.CMPA.half.CMPA = (int)((1-(target/3.3))*3000);//脉冲占比50% EPwm1Regs.CMPB = (int)((1-(target/3.3))*3000);;EPwm1Regs.AQCTLA.bit.CAU = 1;//配置动作EPwm1Regs.AQCTLA.bit.CAD = 2;EPwm1Regs.AQCTLA.bit.CBU = 0;EPwm1Regs.AQCTLA.bit.CBD = 0;EPwm1Regs.DBCTL.bit.HALFCYCLE = 0;//全周期EPwm1Regs.DBCTL.bit.IN_MODE = 0;//A是源EPwm1Regs.DBCTL.bit.POLSEL = 0;EPwm1Regs.DBCTL.bit.OUT_MODE = 0;//直接生成需要的模拟信号// EPwm1Regs.ETSEL.bit.INTEN = 1;// EPwm1Regs.ETSEL.bit.INTSEL = 1;// EPwm1Regs.ETPS.bit.INTPRD = 1;// EPwm1Regs.ETCLR.bit.INT = 1;EALLOW;SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;//设置epwm同步暂停EDIS;}void DelaymS(int tm){int i;unsigned int j;for(i = 0;i < tm ;i++){j = 60000;while(j != 0)j--;}}void main(void){InitSysCtrl(); //初始化系统时钟,选择内部晶振1,10MHZ,12倍频,2分频,初始化外设时钟,低速外设,4分频DINT; //关总中断IER = 0x0000; //关CPU中断使能IFR = 0x0000; //清CPU中断标志InitPieCtrl(); //关pie中断InitPieVectTable(); //清中断向量表EALLOW; //配置中断向量表PieVectTable.rsvd10_1 = &MyAdcInt1_isr;PieCtrlRegs.PIEIER10.bit.INTx1 = 1;IER |= 0x0200;EDIS;// MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);InitFlash();TM1638_Init(); //初始化LEDInit_Adc();InitPWM4();InitPWM1();EINT;//中断总使能ERTM;while(1){{// LED_Show(1,(int)(high*100)%10,0);// LED_Show(2,(int)(high*10)%10,0);// LED_Show(3,(int)(high)%10,0);//// LED_Show(4,(int)(low*100)%10,0);// LED_Show(5,(int)(low*10)%10,0);// LED_Show(6,(int)(low)%10,0);//// LED_Show(7,(int)(derta*10) % 10,0);// LED_Show(8,(int)(derta) % 10,0);}}}interrupt void MyAdcInt1_isr(void) {Target = AdcResult.ADCRESULT0 + AdcResult.ADCRESULT1;Target += AdcResult.ADCRESULT2 + AdcResult.ADCRESULT3;target = Target/(4*4096*1.0) * 3.30;Now = AdcResult.ADCRESULT4 + AdcResult.ADCRESULT5;Now += AdcResult.ADCRESULT6 + AdcResult.ADCRESULT7;now = Now/(4*4096*1.0) * 3.30;// EALLOW;// SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;//设置epwm同步暂停// EDIS;Derta += (int)((((target - now) /3.3))*3000);CMPA += ((int)(0*Derta) + (int)((((target - now) /3.3))*3000));if (CMPA < 0){CMPA = 0;}else if (CMPA > 3000){CMPA = 3000;}EPwm1Regs.CMPA.half.CMPA = CMPA;//根据差值进行改变//EPwm1Regs.CMPA.half.CMPA += (int)((((target - now) /3.3))*3000);//根据差值进行改变// EALLOW;// SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;//设置epwm同步暂停// EDIS;AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;PieCtrlRegs.PIEACK.all = PIEACK_GROUP10;//EPwm4Regs.ETCLR.bit.SOCA = 1;LED_Show(1,(int)(target*1000)%10,0);//LED_Show(2,(int)(target*100)%10,0);LED_Show(3,(int)(target*10)%10,0);LED_Show(4,(int)(target)%10,0);LED_Show(5,(int)(now*1000)%10,0);//LED_Show(6,(int)(now*100)%10,0);LED_Show(7,(int)(now*10)%10,0);LED_Show(8,(int)(now)%10,0);DelaymS(200);}。

dsp复习资料

dsp复习资料

一,Dsp 的硬件结构:⑴1组程序总线(PB),3组数据总线(CB,DB,EB),4组地址总线(PAB,CAB,DAB,EAB).⑵40位算术逻辑单元alu{C16=0工作在双精度算术运算方式,C16=1工作在双16位方式}ALU 溢出后状态寄存器ST0的OVM=1时,用32位最大正数007FFFFFFFH 或最大负数FF80000000H 加载累加器,溢出后溢出标志位OVA 或OVB=1直到复位!⑶1个40位桶行移位寄存器,⑷2个独立40位ACCA 和ACCB{ACCA 和ACCB 差别在于A 的31~16位可以用途乘法器的一个输入}.⑸17X17并行乘法器与40位的专用加法器相连,用于MAC 运算.⑹比较/选择/存储单元(CSSU)用于加法比较运算,⑺指数单元EXP(40位),⑻有16bit 状态寄存器ST0,ST1和工作方式状态寄存器PMST.二,存储结构:①哈佛结构(ROM 和RAM 分开),②三个独立64kb,ROM,RAM,I/O 空间,程序空间通过PMST 的MP/MC\和OVLY 控制,MP 控制使用内部存储器,MP=0,4000H-EFFFH 程序存储空间定义为外部存储器,FF00H-FEFFH 为内部,FF00H-FFFFH 为内部ROM 存储器,工作方式为微型计算机,MP=1,4000H-FFFFH 全部定义为外部存储器,工作方式为处理器模式.当OVLY=0时,0000H~3FFFH 全部定义为外部程序存储空间,程序空间不使用内部RAM,此时内部RAM 只作为数据存储器使用,OVLY=10000H~007FH 保留,程序无法使用,0080H~3FFFH 定义为内部DARAM,即内部RAM 被映射到程序存储空间和数据存储空间.③片上外设:2个通用I/O,XF(外部标志输出信号.控制外设工作)和BIO(控制分支转移信号,监测外部状态).BIO=0时执行转移指令.④定时器:4位预分频器和16位减法计数器组成,定时设定寄存器TIM(16bit)→0024H,复位/定时TIM 装入PRD(定时寄存器→0025H,存放定时常数)寄存器的值,然后减1计数,TIM 减到0后产生TINT 中断,TCR(定时控制寄存器→0026H)用来控制定时器的控制位和状态位,包括定时分频TDDR,预标定时计数器PSC,控制位TRB 和TSS 等.周期=时钟T*(TDDR+1)*(PRD+1).⑤时钟发生器:内部振荡器和锁相环PLL{⑴硬件配置PLL,通过[CLKMD1,CLKMD2,CLKMD3R 的状态,]⑵软件设置[通过16位的CLKMD →58H 控制]},⑥主机接口HPI:{控制寄存器HPIC,地址寄存器HPIA,数据锁存器HPID,HPI 内存},三,外设接口:软件等待状态寄存器SWWSR →0028H,复位时SWWSR →7FFFH,四,中断:1,可屏蔽中断{INT0-3,串行口中断,定时器中断TINT0-1,DMA 中断(DMAC4,DMAC5).HPINT(HPI 中断)}.2,非可屏蔽中断{外部中断投复位和‾NMI ‾(可用软件中断)}中断标志寄存器IFR 和中断屏蔽寄存器IMR{中断向量地址的计算[中断向量地址是由PMST 寄存器中的IPTR(中断向量指针,9bits)和左移2位后的中断向量序号(中断向量序号为0~31,左移两位后变成7位)所组成]例如INT0的中断序号为16(10H)左移两位后成40H 若IPTR=0001H,则中断地址为00C0H,复位时IPTR 全为1,所以硬件复位后程序总是从0FF80H 执行}.五,指令系统:1,寻址方式{i.立即寻址.[用于初始化(LD#80H,A)].ii.绝对寻址[①数据存储器(dmad)寻址(mvkd exam1,*ar5)②程序存储器(pmad)寻址(mvpd table,*ar2)③端口(pa)寻址(PORTR FIFO,*AR5)④*(1K)寻址(LD *(PN),A))].iii.累加器寻址{是用累加器中的数值作为地址来读写程序存储器,READA Smem,WRITASmen}.iv.直接寻址{ADD @x,A}.v.间接寻址[(寻址范围0~64kb)利用辅助寄存器内容作为地址访问存储器(C54x 有8个16bits 辅助寄存器AR0-AR7)]vi.存储器映像寄存器(MMR))寻址{LDM,MVDM,MVMD,MVMM,POPM,PSHM,STLM,STM}vii.堆栈寻址{PSHD,PSHM,POPD,POPD}.常用缩写{Smem:16位的单寻址操作数,Xmem:16位双寻址操作数,Ymem:16位双寻址操作数,PA:16位立即数,src:源累加器,dst:目的累加器,lk:16位长立即数},六,软件开发过程:.text 文本段,.data 数据段,.bss 保留空间,通常对未初始化变量保存,.sect 建立包含代码和数据的自定义段,.usect 为未初始化变量保留存储空间的自定义段,.word 用来设置一个或多个16位带符号整型常数,.int 设置无符号整型常数.title 后面是双引号的程序名,.end 结束汇编命令,汇编程序举例:㈠堆栈的使用:100单元的堆栈,size .set 100 \stack .usect “stk ”,size\STM #stack+size SP.㈡加减乘,①Z=X+Y-W,SUM:LD @x,A\ADD @y,A\SUB @w,A\STL A,@z.②y=mx+b,ld @m,t\mpy @x,A\add @b,A\stlA,@y.③y=x1*a1+x2*a2,ld @x1,t\mpy @a1,B\ld @a2,t\mpy @x2,b\stlB,@y\sth B,@y+1④y= a i 4i =1x i stm #a,ar1\stm #x,ar2\stm #2,ar3/ld *ar1+,t\mpy *ar2+,A\loopl:ld *ar1+,tMpy *ar2+,b/max A/banz loop,*ar3-㈢数组初始化x[5]=[1,2,3,4,5].data\tbl:.word 1,2,3,4,5\.sect “.vector ”\B START\.bss x,5\.text\START:stm #x,ar5\rpt #4\MVPD TBL,*AR5.㈣设计对称FIR 滤波器(N=8).title “firs5”\.mmregs\.def start\.bss y,1\x_old .usect “data1”,4\x_new .uscet “data2”,A\size .set 4\PA0 .set 0\PA1 .set 1\.data/COEF .word 1*32768/10,2*32768/10\.text/start:ld #y,dp\ssbxfrct\stm #x_new,ar2\stm #x_old+(size-1),ar3\stm #size,bk\stm #-1,ar0\POPTR PA1,#x_new\FIR5: ADD *AR2+0%,*AR3+0%,A\RPTZ B,#(size-1)\FIRS *AR2+0%,*AR3+0%,COEF\STH B,@y\MAR *+AR2(2)%\MAR *AR3+%\MVDD *AR2,*AR3+0%\BD FIR5\POPRTR PA1,*AR2\.end 用线性缓冲法和直接寻址法实现FIR 滤波器:N=5,Y(n)=a0x(n)+a1x(n-1)+a2x(n-2)+a3x(n-3)+a4x(n-4)程序:.title “fir1.asm ”\.mmrges\.def start\.bss y,1\XN .usect “XN ”,1\XNM1 .usect “XNM1”,1\XNM2 .usect “xnm2”,1\xnm3 .Usect “xnm3”,1\xnm4 .usect “xnm4”,1\a0 .usect “a0”,1\a1 .usect “a1”,1\a2 .usect “a2”,1\a3 .usect “a3”,1\a4 .usect “a4”,1\pa0 .set 0\pa1 .set 1\.data\table: .word1*32768/10\.word -3*32768/10\.word 5*32768/10\.word -3*32768/10\.word 1*32768/10\.text\start: ssbxfrct\stm #a0,ar1\rpt #4\mvpd table,ar1+\ld #xn,dp\portr pa1,@xn\fir1:ld @xnm4,t\Mpy @a4,a\ltd @xnm3\mac @a3,a\ltd @xnm2\mac @a2,a\ltd @xnm1,a\mac @a1,a\ltd @xn,a\mac @a0,a\ltha,@y\portw @y,pa0\bd fir1\portrpa1,@xn\.end 循环缓冲区和双操作数寻址方法实现:.title “firs ”\.mmregs\.def start\.bss new_data.1\.bss y,1\xn .usect “xn ”,5\a0 .usect “a0”,5\.data\tsble:.word 1*32768/10\.word 2*32768/10\.word 3*32768/10\.word 4*32768/10\.word 5*32768/10\.text\start:ssbxfrct\stm @a0,ar1\rpt #4\mvpd table,*ar1+\stm #xn+4,ar3\stm #a0+4,ar4\stm 5,bk\stm #-1,ar0\ld ##new_data\fir4:rptz a,#4\mac *ar3+0%,*ar4+0%,a\stha,@y\bd fir4\ldnew_data,bstl b,*ar3+0%\.end。

DSP基础知识专业复习资料(ppt 150页)_252

DSP基础知识专业复习资料(ppt 150页)_252
19
程序总线PB 传送取自程序存储器的指令代码 和立即操作数。
数据总线CB、DB和EB这3条数据总线将内部 各单元(如CPU、数据地址生成电路、程
序地址产生逻辑、在片外围电路以及数据 存储器)连接在一起,其中CB和DB传送读 自数据存储器的操作数,EB传送写到存储 器的数据。 *为什么要用2条数据线(CB、DB)读数?
3
二、选择芯片考虑的因素
1.DSP芯片的运算速度
MAC 时 间 : 一 次 乘 法 和 一 次 加 法 的 时 间 。 大 部 分 DSP芯片可在一个指令周期内完成一次乘法和一次加 法操作。
FFT执行时间:运行一个N点FFT程序所需时间。由
于FFT运算在数字信号处理中很有代表性,因此FFT运 算时间常作为衡量DSP芯片运算能力的一个指标。
MIPS:每秒执行百万条指令。 MOPS:每秒执行百万次操作。 MFLOPS:每秒执行百万次浮点操作。 BOPS:每秒执行十亿次操作。
4
三、系统调试和评价工具 : TMS320有一系 列系统调试工具用于代替或协助目标系统进行 软件评价和开发。
现有的产品有: DSK初学者开发套件(DSP Starter Kit) EVM软件评估模块(Evaluation Module) XDS510硬件仿真器(Extend Development Support Emulators)。 TI公司还提供集成开发工具CCS(Code Composer Studio),CCS可从网上下载,可进 行软、硬件仿真和系统分析,受到广泛应用。
14
2乘法器/加法器
17X17乘法 40位加法
检零 饱和 取整
15
为了使修正系数的量化误差最小,要 进行舍入处理。 C54X的CPU中是一个17×17位的硬件乘 法器,它与一个40位的专用加法器相连。 因此,乘法器可以在一个时钟周期内完成 一次乘法累加(MAC)运算。

DSP期末复习资料

DSP期末复习资料

DSP期末复习资料第一章一、习题1.1什么是数字信号处理器(DSP)?答:DSP是专为实时数字信号处理而设计的大规模集成可编程微处理器。

1.2哈佛总线结构和冯-诺依曼总线结构的区别是什么?答:哈佛总线结构:程序存储器和数据存储器分开,有多条独立的程序总线和数据总线,它们可同时对程序和数据进行寻址和读写,使指令的执行和对数据的访问能够并行进行,使CPU的运行速度和处理能力都得以大幅度提高。

冯-诺依曼结构:这种结构中只含一条内部地址总线和数据总线,当进行高速运算时,不但不能同时进行取指令和取操作数,而且还会造成数据传输通道的瓶颈现象,其工作速度较慢。

1.3改进型的哈佛总线结构有哪些改进之处?答:<1>片内RAM可以映像至数据空间,也可以映像至程序空间。

<2>片内ROM可以映像至程序空间,也可以映像至数据空间。

<3>具有根装载功能,允许将片外的指令代码调至片内数据存储器,供CPU零等待运行。

1.9DSP的主要用途是什么?答:主要用于工业控制、汽车电子、仪器仪表、军事、医疗、通信等。

二、其他1.TMS320系列DSP可分为:C2000(16位/32位定点DSP,主要运用控制领域,如点击)、C5000(16位定点DSP,用于高性能、低功耗的中高档应用场合,如便携移动设备)、C6000(32位DSP,高性能,如适合宽带网络和数字音响)系列。

第二章一、习题2.1TMS320C54某DSP有那些部分组成?答:主要由C54某CPU内核、片内存储器和片内外设三大部分组成。

2.2TMS320C54某DSP的CPU包含那些主要功能部件?他们各完成什么任务?答:其CPU主要由:<1>40位的算术逻辑单元<2>2个40位的累加器<3>桶形移位器<4>乘法-累加器单元<5>比较、选择和存储单元<6>指数编码器<7>CPU状态和控制寄存器2.4填写下列括号。

DSP原理及应用总复习资料(1)

DSP原理及应用总复习资料(1)

DSP复习资料一、填空题1、TMS320C54x的CPU状态控制寄存器应包括处理器工作方式控制及寄存器PMST、状态寄存器ST0和状态寄存器ST1。

P15-162、TMS320C54x系列DSP芯片的总线结构包括1条程序总线、3条数据总线和4条地址总线。

P103、试写出两种存储器映像寄存器寻址指令:POP 、LDM 。

P332-。

4、TMS320C54xDSP的Q12.3定标的最大数据精度是35、54x系列的存储空间在不扩展的情况下共可提供192kW的可寻址存储空间。

6、54X系列DSP的CPU结构单元中专用于通信Viterbi编码的是比较、选择和存储单元(CSSU)。

P147、编写命令链接文件时所用的两个命令分别是MEMORY和SECTIONS。

P1028、通用DSP芯片使用SUBC完成除法运算的限制条件是两个操作数必须为正数。

9、TMS320C54x系列芯片的存储空间在不扩展的情况下应包括64K字程序存储空间、64K字数据存储空间和64K字I/O存储空间,总共192K字可寻址存储空间。

P1710、负小数0.05在16位定点DSP的汇编语言中的正确描述是.word -5*32768/100。

P1642-。

11、TMS320C54xDSP的Q.15定标的数据范围是+1~-1,其最大数据精度是1512、TMS320C54x的地址总线访问方式中,程序读、写访问的是PAB总线。

P1013、54x系列DSP的6条独立流水线操作分别是预取指、取指、取操作数和执行指令。

P214、DSP的中断处理包括接收中断请求、中断确认和执行中断服务程序三个流程。

P237-23815、DSP芯片根据数据运算方式分为定点和浮点DSP,54x系列属于16位定点DSP。

P416、TMS320C54x系列芯片的存储空间在不扩展的情况下应包括64K字程序存储空间、64K字数据存储空间和64K字I/O存储空间。

同9题17、试写出两种寻址32位数的指令:DADD、DSUB。

DSP复习资料

DSP复习资料

1.DSP芯片的特点:采用数据总线和程序总线分离的哈佛结构; 采用多总线结构,可同时进行取指令和多个数据存取操作; 采用流水线技术; 配有专用的硬件乘法-累加器; 具有特殊的DSP指令; 快速的指令周期; 硬件配置强; 支持多处理器结构; 省电管理和低功耗DSP芯片的分类:按基础特性:静态DSP芯片和一致性DSP芯片;按用途通用型DSP芯片和专用型DSP芯片;按数据格式定点DSP和浮点DSP;发展趋势DSP内核结构进一步改善; 存储器构架; SOC; 实时; 嵌入式的趋势2.流水线操作:概念指各条指令以机器周期为单位,相差一个时间周期而连续并行工作的情况。

六个操作阶段预取指P; 取指F;译码D;寻址A;读数R;执行X;引入的好处:减少指令执行时间,增加处理器的处理能力;产生冲突原因及解决方法:一.CPU访问DARAM会发生流水冲突的情况:同时从同一存储块中取指令和读操作数;同时对同一存储块进行写操作和读第二操作数。

CPU可通过写操作延迟一个周期,或通过插入一个空操作来解决流水线冲突;二.流水线允许CPU多条指令同时寻址CPU资源,当一个CPU资源同时被一个以上流水线级访问时,可能导致时序上的冲突,其中,有些冲突可以由CPU通过延迟寻址的方法自动解决,由些需要安排指令或者插入空操作NOP指令加以解决。

利用保护性MMR的指令,自动插入等待周期,也可以避免发生冲突。

3.程序存存储空间的划分和配置:192K字的存储空间: 程序、数据、I/O存储空间;( 1 ) 程序存储空间定义在片内还是片外是由MP\MC和OVL Y决定的。

MP\MC=1称为微处理器模式4000~FFFFH片外存贮器MP\MC=0,称为微计算机模式4000~EFFFH片外存贮器FF00~FFFFH片上存贮器OVL Y为决定0000H~3FFFH程序存贮空间的片外、片外分配控制。

OVL Y=1,0000H~007FH保留,程序无法占用,0080H~3FFFH片内DARAM.OVL Y=0,0000H~3FFFFH片外程序存贮空间。

DSP技术复习资料-完整版

DSP技术复习资料-完整版

DSP(数字信号处理)技术复习资料1.简述数字信号处理器的主要特点(P4)。

数字信号处理(Digital Signal Processing)简称DSP。

主要特点:(1)采用哈佛结构;(2)采用多总线结构;(3)采用流水线结构;(4)配有专用的硬件乘法器-累加器;(5)具有特殊的寻址方式和指令;(6)支持并行指令操作;(7)硬件配置强,具有较强的接口功能;(8)支持多处理器结构。

2. 请给出数字信号处理器的运算速度指标(P6)。

(1)MAC时间:一次乘法和一次加法的时间;(2)FFT执行时间:运行一个N点FFT程序所需的时间;(3)MIPS:每秒执行百万条指令;(4)MOPS:每秒执行百万次操作;(5)MFLOPS:每秒执行百万次浮点操作;(6)BOPS:每秒执行十亿次操作。

(7)指令周期:执行一条指令所需的最短时间,数值等于主频的倒数;常用ns(纳秒)。

3.简述C55x的存储器配置情况(P11~12)。

(1)C55x采用统一的存储空间和I/O空间;(2)C55x的片内存储空间共有352KB(146K字),外部存储空间共有16MB(8M字);(3)存储区支持的存储器类型有异步SRAM,异步EPROM、同步DRAM和同步突发SRAM;(4)C55x的I/O空间与程序/地址空间分开;(5)I/O空间的字地址为16位,能访问64K字地址;(6)当CPU读/写I/O空间时,在16位地址前补0来扩展成24位地址。

4.TMS320C55x的寻址空间是多少当CPU访问程序空间和数据空间时,使用的地址是多少位(P51、P53~54)。

(1)C55x的寻址空间为16MB(24位地址,2^24 = B = 16MB)(2)CPU访问程序空间时,使用24位的地址;(3)访问数据空间时,使用23位地址,使用时23位地址左移一位将地址总线上的最低有效位(LSB)置0。

5.VC5509A的PGE LQFP封装芯片共有多少个引脚其中GPIO引脚有多少个并行地址总线引脚有多少个并行双向数据总线引脚有多少个(P13~15)(1)引脚:144个;(2)GPIO引脚:7个;(注:GPIO[7:6,4:0])(3)并行总线引脚:14个;(注:A[13:0])(4)并行双向数据引脚:16个;(注:D[15:0])6.C55x的指令分为两个阶段,第一阶段为取指阶段,第二阶段为执行阶段;7.C55x的CPU包含4个40位的累加器,辅助寄存器ARn有16位,XARn有 23 位;(P29、P31)8.XF位是寄存器ST1_55中的第13位,它是一通用的输出位,能用软件处理且可输出至DSP引脚。

DSP技术复习资料-完整版

DSP技术复习资料-完整版
答:所使用的寄存器分别为:AC0, AC1, AC2, AR0, AR1, AR2, AR3, AR4, T0, T1
即是longl1存放在AC0,……对应下去。
33.以下的汇编语句实现两个整型数的饱和加法,请编写C语言程序调用该汇编函数,实现整数20000和30000的饱和加法,并在CCS中输出和的值;(相关P209)
18.C55x支持3种类型的寻址方式,分别是绝对寻址模式、直接寻址模式和间接寻址模式;(P69)
19.什么是绝对寻址方式?C55x有几种绝对寻址方式,分别是什么?(P70)
绝对寻址方式:通过在指令中指定一个常数地址完成寻址;
有三种绝对寻址方式:(1)K16绝对寻址方式;(2)K23绝对寻址方式;
(3)I/O绝对寻址方式。
有四种间接寻址方式:(1)AR间接寻址;(2)双AR间接寻址;(3)CDP间接寻址;
(4)系数间接寻址。
22.指令MOV *abs16(#2002h), T2采用的是K16绝对寻址方式。设DPH=03h,该指令的功能是#k16=2002H,CPU从032002H处读取数据装入T2;(P81)
23.指令MOV port(@0), T2采用的是PDP直接寻址方式。设PDP=511,该指令的功能是PDP:Poffset=FF80H,CPU从FF80H读取数据进T2;
11.SATA位是寄存器ST3_55中的第5位,如果SATA=1,则执行A单元ALU的饱和模式;(P50)
12.MPNMC位是寄存器ST3_55中的第6位,该位使能或禁止片上ROM,如果MPNMC=0,则为微计算机模式,使能片上ROM;(P50)
13.VC5509A拥有160K字的片内存储器资源,其中有128K字RAM和32K字ROM。外部扩展存储空间由CE[3:0]组成,其中CE0的首字地址为0000 2000H,CE1的首字地址为00200000 H(P51~52)(P58~59)

dsp复习资料1

dsp复习资料1

dsp复习资料11.简述dsp芯片的主要特点。

1.哈佛结构:将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址、独立访问。

2.多总线结构:可以保证在一个机器周期内可以多次访问程序空间和数据空间。

3.指令系统的流水线操作:DSP芯片广泛采用流水线以减少指令执行时间,从而增强了处理器的处理能力。

4.专用的硬件乘法器:DSP芯片中有专用的硬件乘法器,使得乘法累加运算能在单个周期内完成。

5:特殊的DSP指令:(例如)TMS320C54x中的FIRS和LMS指令专门用于系数对称的FIR滤波器和LMS算法。

6.快速的指令周期7.硬件配置强1.1什么是哈佛结构和冯.诺伊曼结构,有什么区别?冯.诺伊曼结构采用单一的地址和数据总线,取指令和取操作数都是通过一条总线分时进行的。

哈佛结构采用双存储空间,程序存储器和数据存储器分开,有各自独立的程序总线和数据总线,可独立编址和采访,可对程序和数据进行独立传输。

2.结合你的专业方向,试举出一个dsp具体应用实例,并说明为什么要采用dsp.DSP芯片的高速发展,得益于集成电路技术的进步,巨大的市场需求●信号处理:数字滤波、自适应滤波、FFT、频谱分析●通信:调制解调、数据压缩/解压缩、数据加密/解密,回声消除●语音:语音合成、语音识别●图形/图像:图像处理、机器人视觉●军事:雷达、声纳、导航、制导●仪器仪表:频谱分析仪●自动控制:机器人控制、电机控制●医疗:医学超声、监护系统●家用电器:IP电话、可视电话3. 请描述TMS320C54x的总线结构1个程序总线(PB) 传送从程序存储器来的指令代码和立即数3个数据总线(CB DB EB)连接各种元器件4个地址总线(PAB CAB DAB EAB) 传送执行指令所需的地址PB 用于装载指令代码和立即数CB DB 用于读取操作数EB 用于写入操作数地址总线负责其他地址总线的地址存储与装载4. TMS320C54x片内存储器一般包括哪些种类?如何配置TMS320C54x片内存储器。

DSP复习资料

DSP复习资料

DSP System Design Principle 数字信号处理系统设计原理Chapter 1Introduction of DSPWhat is DSP? What are the differences between or among DSP, the General Purpose Processors (GPP) and the Micro Controller Unit (MCU)? Where and how does DSP apply?This chapter introduces the conception, characteristics, and applications of DSP. There are some discussions in the distinction between or among DSP, GPP and MCU.The chapter describes how the DSP develops, gives a brief ‗picture‘ of description of the family TI (Texas Instruments) corporation's DSP, and summarizes TMS320x24xx Series of DSP . DSP 的介绍DSP 是什么?DSP 和通用处理器(GPP )和微控制器单元(MCU )的差异是什么?在哪里和如何DSP 应用?本章介绍的概念,特点,应用DSP 。

有在DSP 之间或区别讨论,GPP 和单片机。

本章介绍了如何在DSP 开发,给出了一个简短的“图片”家庭的说明(德克萨斯Instruments )公司的DSP ,并总结了tms320x24xx 系列DSP 。

A digital signal processing system is illustrated as Figure 1.1.ffFigure1-1 A digital signal processing systemThe fundamental digital signal processing system consists of the following parts :F —— the analog filter, which is filtering the noise in the analog signals . A/D —— the analog / digital converter, which is converting the analog signal tothe digital signal.DSPs ——the Digital Signal Processors, which is processing, optimizing,appraising, compressing, recognizing the digital signal.D/A ——the digital /analog converter, which is converting the digital signal to theanalog signal.GPP — general purpose processorsMCU —the Micro Controller Unit — is also called Single Chip Computer. DSP —the digital signal processorThe TMS320 family consists of fixed-point, floating-point, and multiprocessor digitalDSP F A/D FD/Asignal processors (DSPs).The following characteristics make the TMS320 family the ideal choice for a wide range of processing applications:(1)Very flexible instruction set. (2) Inherent operational flexibility. (3)nnovative parallel architecture. (4)Cost-effectiveness.(5) C-friendly architecture. DSP -----the Digital Signal Processor is a new subject concerning many kinds of fields, such as the digital signal processing, optimizing of the figure signal, converting, filtering, value appraising, enhancing, compressing and recognizing, etc.DSPs-----the Digital Signal Processors is a kind of super –fast computer, which has been optimized for the detection, processing and generation of real world signals, such as voice, video, music, etc. in real time.A digital signal processing system is illustrated as Figure 1.1.DSP 数字信号处理器-----涉及多种领域的一个新课题,如数字信号处理,优化的数字信号,转换,滤波,价值评价,增强,压缩和识别,等等。

DSP复习资料

DSP复习资料

DSP复习资料1、什么是数字信号处理器(DSP)?DSP 可以分为哪两类?a、数字信号处理器是⼀种专门⽤于实现各种数字信号处理算法的微处理器,通常可分为专⽤DSP和通⽤DSP两类。

b、⽤于实现某些特定数字信号处理功能的DSP 属于专⽤DSP。

什么是DSP?DSP:Digtal Signal Processing 数字信号处理技术典型的微处理器系统根据CPU特点,可以分为:1)通⽤单⽚机(Micro-controller) 8/16bit优点:成本低、体积⼩。

缺点:运算与扩展能⼒较弱。

编程:汇编、C语⾔。

2)PC及其兼容机(Micro-processor)缺点:成本⾼、体积⼤、实时性差。

优点:运算与扩展能⼒强,软件资源丰富。

编程:汇编及多种⾼级语⾔。

3)DSP(Digital Signal Processor)16/32bit特点:运算能⼒相当强、实时性、体积⼩、成本较低、功耗较低编程:汇编、C、C++。

4)专⽤微处理器特点:使⽤简单,灵活性差,主要⽤于⼀些批量⽣产的产品。

如家⽤电器的智能控制、⼯业控制。

DSP: Digtal Signal Processor 数字信号处理器TI公司从80代初推出了全球第⼀款“数字信号处理器”TMS320C010,从此引发了⼀场“数字信号处理”⾰命。

我们现在所说的DSP,如果没有特殊说明,⼀般均指“数字信号处理器”。

2、DSP 芯⽚的主要特点有哪些?DSP 从结构上进⾏了优化,使其更适合于哪类运算,从⽽可以⾼速实现多种不同的数字信号处理算法?DSP的特点:在⼀个指令周期内可完成⼀次乘法和⼀次加法运算程序和数据空间分开,可以同时访问指令空间和数据空间⽚内具有快速RAM,通常可通过独⽴的数据总线在两块中同时访问具有低开销或⽆开销循环及跳转的硬件⽀持快速的中断处理和硬件I/O⽀持具有在单周期内操作的多个硬件地址产⽣器可以并⾏执⾏多个操作⽀持流⽔线操作,使取指令、译码、取操作数和执⾏指令等可以重叠执⾏。

DSP复习资料

DSP复习资料

DSP原理与应用一、填空题1.按数据格式分类,DSP芯片可分为芯片和芯片。

2.TMS320C54X DSP中,TMS320C54X DSP有A和B两个累加器。

每个累加器的长度为位,分为、、和三部分。

3.为了达到快速进行数字信号处理的目的,DSP芯片一般具有程序和数据分开的总线结构,称为。

4.已知(80H)=10H,(81H)=40H,则先后执行指令LD 80H,16,B和ADD 81H,B两条指令后,B的内容是。

5. IMR为存储器映像寄存器,当要屏蔽某一个中断时,IMR中的相应标志位的值为。

6.HPI有和两种工作模式。

7.DSP芯片的电源分两种即为和,在无法同时加电的情况下,应先对加电。

8.直接寻址中,若CPL=0,则所寻址数据存储器的16位地址是由构成。

9.若缓冲器长度为BK=10,循环缓冲区的基地址为AR1=100h,则执行指令LD*+AR1(8)%,A;两次后,寻址的是地址单元。

二、简答题1.简述流水线操作的基本原理。

2.简述TMS320C54X DSP的堆栈的特点,并简述堆栈寻址入栈和出栈时的工作过程。

3. TMS320C54X DSP的定时器有哪几部分组成?各部分的作用是什么?4.在链接命令文件中,伪指令MEMORY和SECTIONS的作用是什么?5.右图为一个具有自动复位功能的电路,请简述其工作原理。

6. 在堆栈操作中,PC当前地址为4020h,SP当前地址为0013h后,运行PSHM AR7(1字指令)后,PC和SP的值分别是多少?并说明原因。

7. 若用DSP实现8点的FFT运算,采用*AR2+0B进行反向寻址,若初始AR2值为0000H,则AR0的低3位取值应为多少?请写出AR2值最后三位修改的顺序和修改后的AR2的值。

(填入表格的空格内)答:AR0的低3位取值应为二进制值。

8. TMS320C54X DSP的定时器中,若TDDR=0101B,PRD=0018H,试计算定时器的中断频率。

DSP复习资料

DSP复习资料

DSP复习资料1.美国德州仪器(TI)公司生产的TMS320系列芯片主推C2000系列,C5000系列,C6000系列,试分析这三种系列芯片的典型应用领域。

答:C2000系列面向工业产品控制,低价位;C5000系列面向通信类应用,性能好,低功耗,有利于便携式通信产品及其他仪器的推出;C6000系列面向高档次应用,如多媒体,图像处理及其他超高速处理场合。

2.数字信号处理的硬件实现可分为单片机实现和DSP实现,试对比分析两者各自主要的优点,缺点。

答:单片机:优点:接口性能好;缺点:总线结构是冯·诺依曼结构,系统复杂,特别是乘法运算速度慢;DSP:优点:哈佛总线结构,内部具有硬件乘法器等可以实现某些特定功能,具有很高的并行特性,专门的指令系统;缺点:灵活性差。

3.试分析冯·诺依曼结构与哈佛总线结构各自的特点。

答:冯·诺依曼结构:程序存储和数据存储共用一个存储空间。

编址依靠指令计数器提供的地址来区分是指向数据还是地址,只能串行执行,速度慢,数据吞吐量小;哈佛总线结构:程序与数据存储空间分开,各有独立的地址总线和数据总线,取指和读数可以同时进行,从而提高速度,允许直接在程序和数据之间进行信号传递,具有高速运算能力。

4.DSP区别于通用微处理器的重要标志?答:硬件乘法器。

5.简述定点DSP和浮点DSP的区别。

答:在定点DSP中,小数点的位置在一个数据字中是固定的。

而在浮点格式中,一个数据字被分成两部分,分别表示指数和底数,因此它所表示的数据的小数点随着指数的变化而浮动。

浮点格式所能表示的数据范围要比定点格式大得多,在大多数应用中都不需要特别考虑运算的溢出问题。

6. DSP中的地址产生单元-ARAU。

7.名词翻译:ARAU:辅助寄存器算术单元 Auxiliary Registers:辅助寄存器CALU:中央算术逻辑单元 Barrel shifter:桶型移位器Multiplier:硬件乘法器 Accumulator:累加器CSSU:比较、选择和存储单元8.TMS320C2000系列的内部总线结构?答:6条:其中是3条地址线,PAB程序地址总线,DRAB数据读地址总线,DWAB数据写地址总线;其他3条为PRDB程序读总线,DRDB数据读总线,DWEB数据写总线。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DSP复习资料
第一章:
数字信号处理系统组成:
X(t)x(n)y(n)y(t)
抗混叠A/D 微处理D/A 平滑滤波=
滤波器
DSP芯片的特(1)采用哈佛结构(2)采用多总线结构(3)
采用流水线结构(4)配有专用的硬件乘法--累加器(5)具有特殊的寻址方式和指令(6)支持并行指令操作(7)硬件配置强,具有较强的接口功能(8)支持多处理器结构
DSPD的分类:(1)按分类标准的不同,DSP分为定点DSP芯片和浮点DSP芯片(2)按照字长大小的不同,DSP芯片划分为16位,24位,32位(3)按照生产厂家的不同,有TI公司的TMS320系
列,ADI公司的Blackfin,SHARC,TigerSHAR系列,飞思卡尔公司的MSC系列
TMS320C55X芯片的组成:CPU,存储空间,片内外设
C55XCPU勺内部总线结构:(1)程序地址总线(PAB):1组,24位(2)程序数据总线(PB):1组,32位(3)数据读地址总线
(BAB,CAB,DAB):3
组,24位(4)数据读总线(BB,CB,DB):3组16位(5)数据写地址总线(EAB,FAB):2fi, 24位(6)数据写总线(EB,FB):2组,16位
C55X的CPU包含:指令缓冲单元(I单元),程序流单元(P单元),地址--数据流单元(A单元)数据运算单元(D单元),存储器接口单元
(M 单元)和内部数据总线和数据总线
C55X 的CPU 包含几个累加器:AC0--AC3每个累加器分为:低字节 (ACxL )高字节(ACxH 和8个保护位(ACxG )
C54的兼容模式:(1)C54x 兼容模式c54xcm_on 和c54cm_off 指 令来自C54x 的代码(2)CPL 模式影响直接寻址方式(3)ARMS 模式影响间接寻址模式
C55x 的寻址方式:(1)绝对寻址方式:通过在指令中指定一个常 数地址完成寻址。

(2)直接寻址方式;使用地址偏移量寻址(3) 间接寻址方式:使用指针完成寻址。

COFF 文件:COFF 文件的基本单位是段,COFF 目标文件有三个默 认段:(1).text 段,通常包括可执行代码(2) .data 段,通常包 括初始化数据(3).bss 段,通常包括未初始化的变量保留存储空 间。

COFF 为文件有两种基本类型的段:(1)初始化段:包括数据或代 码,.text 和.data 段是初始化段,以.sect 汇编指令创建的自定义初 始化段也是初始化段。

(2)给未初始化的数据保留存储空间。

.bss 段是为初始化段,以.uesct 汇编指令创建的自定义段也是为初始化
39~32 31~16 15~0 AC0 AC1 AC2 AC3
段。

伪指令:是汇编语言程序的重要组成部分,包括汇编指令和连接指令两部分,伪指令用于处理汇编和连接过程,最后产生的目标文件不包括它们宏指令:程序中常常包含执行多次的程序段,可以定义一个宏来代替它,而不必重复写代码,在需要该程序段时只需引用宏(p183)
C55x的指令流水线:(1)第一阶段为取指阶段(2)第二阶段为执行阶段
C55x的堆指针:⑴数据堆栈指针SP(2)系统堆栈指针SSP (3)一个相关的扩展寄存器SPH.
寄存器:(1)XSP扩展数据堆栈指针(2)SP数据堆栈指针(3)
XSSP扩展系统堆栈指针。

(4)SSP系统堆栈指针(5)SPH XSP 和XSSP的高位部分
连接器有两条伪指令:MEMOR丫和SECTION连接器对程序的重新定位P177(地址重新定位和运行时间重新定位)
COFF文件中的符号:外部符号是指在一个模块中定义,而在另一个模块中使用,它可以用.def,.ref,.global 来定义
1).def 在当前模块中定义,并可在别的模块中引用的符号。

2).ref 在当前模块中引用,但在别的模块中定义的符号。

3).global 可以是上面的任何一种情况。

TMS320C55X可以使用两种指令集:助记符指令集和代数集。

C55x指令集按操作类型可以分为6种:算术运算指令,位操作指
令,扩展辅助寄存器操作指令,逻辑运算指令,程序操作指令。

(1) 加法指令ADD(P121)
例题18:( 1)ADD*AR3+,T0 T1;AR3间接寻址得到的内容与 TO 的内 容想加,结果装入T1, 寄存器 执行前
T1CARR 0 数据存储器 0302
EFOO
(2) ADD*AR1,v<TO,AC,1AC0,将AR1寻址得到的内容左移 T0位与
AC1想加,结果装入AC0
寄存器 执行前
寄存器 执行后
ACO
00 0000 0000
AC0
00 2330 0000
AC1
00 2300 0000
AC1
00 2300 0000
T0
T0
000C 000C AR1
0200
AR1
0200
SXMD
SXMD
M40
M40
并将AR3增1 寄存器
T0 T1
数据存储器 0302
EFOO
执行后
AR3 CARR Y
(2)减法指令SUB(p123
例题 19: SUB uns(*AR1),BORROW,AQ0AC1 将 CARRY 位求反,AC0 减去由AR1寻址得到的内容以及 ;CARRY 勺内容,并将结果装入 AC1
(3) 乘法指令 MPYM(P125) 例题22 MPY AC1, AC0 ;AC0=AC0*AC1 执行前
ACOV0
ACOV0
CARR Y
CARR Y
1
0200
0200
0300
AC0 02 6000 3400
00 C000 0000
数据存储器 数据存储器 0300
寄存器 执行前
数据存储器
0302
F000 _____
寄存器
执行后
0302
F000
执行后
M40
FART
AC0V1 (4)乘加指令MACM(P127)
例题23: (1) MACMR *AR1,执行前
数据存储器*CDPAC2;AC2二
AC2+(*AR1)*(*CDP)
执行后
AC2 00EC3F 8000
AR1 0302
CDP 0202
ACOV2 ------------------
0302 FE00
数据存储器0302 FE00
0202 0040 0020
0040 (2)MACMR un s(*AR2+),u
ns(*AR3+),AC3;AC3=(*AR2)*(*AR3)+AC3 执行前
行前
AC3 AR2 AR3 00 2300 CE00
0302
;AC3=AR2+1,AR3=AR3+
1
执行后
执行后
AC3 00 9221 0000
AR2 0302
0202
AR3 0202
数据存储器
0020

(5)乘减指令 MASM(P128)
例题 24: MASR T1 AC0, AC1;AC1=AC1--AC0*T1
AC0 00 0000 EC00
AC0
00 0000 EC00
AC1
00 3400 0000
AC1
00 1680 0000
11
11
2000
2000 M40 0
M40
ACOV1
ACOV1
FRCT C55x 软件开发流程(程序转换成可执行的程序) C/C++源文件C/C++编译器(.c )
汇编源文件=汇编器=
ACOV -------
FR 「
0302
FE00
0302 FE00
数据存储器
0202 7000
FACT
COFF目标文件(.obj)链接器=>可执行的COFF文件(.out)
用户米用C/C++语言或汇编语言编写源文件(.C或.asm),经C或C++ 编辑器,汇编器生成COFF格式的目标文件(.obj),再用链接器进行链接,生成在C55x课执行的目标代码(.out)
程序阅读题
(1)mov *AR0+,AC0
add *AR0+,AC0
mov ACO, TO
(2)mppy *AR0+,*AR1,AC0
mpym *AR0+,*AR1+,AC1
add AC1,AC0
mpym *AR0+,*AR1+,AC1
add AC1, AC0
Mov AC0, T0
注释:(1)将AR0指向的数据方向放到累加器AC0中,AC0加1(2)将AR0指向的数据与累加器AC0相加,同时,AC0寄存器加1
(3)将累加器AC0的值写入T0寄存器
(4)将AR0和AR1指向的数据相乘放到AC0中,同时,AR0加1, AR1 加1
(5)将AR0和AR1指向的数据相乘放到AC1中,同时,AR0加1,
AR1 加1
(6)将AC1中的数据和AC0中的数据相加放到AC0中
(7)将ARO和AR1指向的数据相乘放到AC1中,同时,ARO加1, AR1 加1
(8)将AC1中的数据与AC0中的数据相加,放到AC0中
(9)将AC0中的数据放到寄存器TO中。

相关文档
最新文档