DSP重点仅供参考Word文档格式.docx
- 文档编号:21545166
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:15
- 大小:26.14KB
DSP重点仅供参考Word文档格式.docx
《DSP重点仅供参考Word文档格式.docx》由会员分享,可在线阅读,更多相关《DSP重点仅供参考Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
定点DSP以定点数据格式工作,数据长度通常为16/32位,其特点:
成本较低,功耗小,数值表示范围较窄,编程难度大,有混合小数运算时,必须使用定点定标方法
浮点DSP以浮点数据格式工作,数据长度通常为32/64位,特点:
开发较容易,更适合大量数字信号处理运算的应用场合,硬件结构相对复杂,功耗较大,且比定点DSP价格高,通常浮点芯片使用在对数据动态范围和精度要求较高的系统中。
②按芯片用途分类分为通用型DSP和专用型DSP
通用型DSP可编程和处理能力强,适用于普通的数字信号处理应用。
专用型DSP为实现不同算法而专门设计的芯片,运算速度较高,编程能力有限,使用灵活性较差
第二章TMS320C54X硬件结构及原理
1.C54X的内部结构
C54XDSP的内部结构主要由C54XCPU内核、片内存储器、片内外围设备(简称片内外设)三大部分组成。
多总线的哈佛结构
C54X片内配置了8套16位的地址总线和数据总线,用以实现CPU与片内存储器的数据交换,片内还有一套外设总线,通过6通道的直接存储器访问(DMA)可以实现片内外设的数据传送。
CPU内核C54XCPU内含有一个40位算术逻辑运算单元(ALU)和两个40位的累加器(ACCA、ACCB)C54X片内存储空间:
C54X片内集成了3ROM和RAM
C54X的片内外设
包括带有片内锁相环(PLL)的时钟发生器;
带4位预定标器的16位可编程定时器,支持全双工操作的多缓冲串行口;
与主机通信的8/16位的并行主机接口(HPI);
6通道DMA控制器,软件可编程等待状态发生器和可编程分区转换逻辑电路;
多条通用的数字I/O接口,具有符合IEEE-1149.1标准的片内仿真接口等。
C54X的节电模式
提供可编程选择的节电模式:
IDLE1IDLE2IDLE3(最省电)
C54X的总线结构
C54X采用了多总线结构,由8套16位的内部总线组成
②2套程序存储器操作总线:
程序地址总线PAB、程序总线PB
②6套数据存储器操作总线:
数据地址总线CABDABEAB,数据数据总线CBDBEB
程序存储器操作总线
程序地址总线PAB为CPU提供取指令和写指令时所需的地址,CPU可以通过程序总线PB读取程序存储器的指令代码和立即数,或通过数据总线EB进行程序的写操作,程序存储器的数据会经过PB总线传至数据存储器
9.数据存储器操作总线
数据地址总线CABDABEAB负责传送指令执行时所需要的数据存储地址总线CBDBEB负责读/写数据的传送,内部总线使用情况:
①单数据操作数(Smem)的读使用DAB和DB,单数据的写操作使用EAB和EB
②读取长数据操作数(Lmem)时CAB和CB分别提供高16位数据的地址和数据,DAB和DB分别提供低16位数据的地址和数据
③读取双数据操作数(Xmem,Ymem)时,由DAB给出Xmen的地址从DB上读取数据,Ymem的地址及数据分别取自CAB和CB总线
④片内提供一套与片内外设通信的双向总线
10.累加器
C54XCPU内有两个40位的累加器A和B,每个累加器都有三个组成部分:
低15~0高16~31和8位保护位39~32.保护位的作用:
在数值计算中,当出现32位有符号运算溢出时,可以用来保存溢出结果,增大了计算结果的动态范围,提高了定点运算的精度。
11.指数编码器(计算)
指数编码器是用来求累加器中数据指数的专业硬件,浮点数据格式的数字信号处理中特别有用,它在计算要求精度高,需要采用
CPU的状态和控制寄存器
①C54XCPU有3个状态和控制寄存器,分别是状态寄存器ST0、ST1和处理器模式状态寄存器PMST。
②对ST0、ST1进行访问或修改的方法
-用指令SSBX或RSBX对ST0、ST1的某些位置位或清零
-用装载指令LD给ST0、ST1的某些位加载数据
-用存储指令STM等给ST0、ST1加载设定值
13.C54X的存储空间分为3个独立空间
程序空间、数据空间、I/O空间
程序存储器基本空间64K字,最大可扩展至8M字
数据存储器空间64K字,I/O空间64K字
14.程序存储器(第0页)P30
①程序空间用于存放指令代码和常系数表格
②程序存储器第0页的地址0000h~FFFFh
③当=0时,上电复位程序从片内ROM开始执行,第一条指令的地址FF80h
当=1时,上电复位后程序从片外扩展的程序存储芯片的地址FF80h开始执行
15.分页扩展P32
C5402有20条外部地址线A19~A0,16条外部数据线D15~D0,最大可扩展程序空间220=1M字,扩展后的程序空间分为16页,每页64K字节,在CPU内部有一个16位的专用寄存器—程序计数器扩展寄存器(XPC),用于指出页地址0~15
16.采用MMR方式访问寄存器的优点
简化了寻址方式,提高了访问效率,使得CPU对寄存器的读取以及寄存器之间、寄存器与存储器之间的数据交换更加灵活方便
17.C54X处于复位时,DSP进行的操作P35
①处理器模式状态寄存器PMST的位IPTR=1FFh,将中断矢量表的128个字置于程序存储器的FF80h~FFFh区域
②使程序计数器PC=FF80h,即复位程序从FF80h开始执行
③使ST1的位INTM=1,关断所有可屏蔽中断
④使中断标志寄存器IFR=0,指向程序存储器空间的第0页
18.C54X系列DSP提供了多种省电工作方式P36
主要有4种:
空闲方式1(复位或中断唤醒)、空闲方式2(外部中断源唤醒)、空闲方式3(外部中断源唤醒)和保持方式,其中IDLE3最省电
19.中断的分类P38
(1)根据C54X中断申请源的不同,可将中断划分为软件中断和硬件中断,软件中断通过执行指令INTR、TRAP或RESET而引发;
硬件中断则由来自外部引脚的触发信号或来自片内外设的中断申请而引发。
(2)从屏蔽的角度来看,可将中断划分为可屏蔽中断和非可屏蔽中断。
非屏蔽中断是指不能被禁止的中断。
C54X的非屏蔽中断包括所有的软件中断和两个外部硬件中断和,可屏蔽中断是指可以通过软件设置来禁止或允许的中断。
C54X有13~16个可屏蔽中断,分别为外部引脚和片内外设所对应的硬件中断
20.中断优先级P38
中断优先级由芯片本身确定的,用户不能通过软件来修改(硬件复位)
21.14个可屏蔽中断
①外部~(4个)
②定时器中断TINT(1个)
③串行口中断RINT0、XINT0、RINT1、XINT1、RINT2、XINT2(6个)
④主机接口中断(1个)
⑤直接存储器访问DMA中断DMAC4,DMAC5(2个)
22.中断矢量地址的计算P40
23.软件中断指令介绍
①指令RESET:
可在程序的任何位置使用,由RESET引起的软件复位与引起的硬件复位其初始状态是不同的
②INTRK0≤K≤31不管ST1中的中断屏蔽位INTM及中断屏蔽寄存器(IER)的状态如何,执行该指令都会强行使CPU跳转至K所指出的中断矢量地址。
当INTRK中断被确认时,位INTM被置1,禁止其他可屏蔽中断,但中断标志寄存器IFR的相应标志位不会置位,也不能清零该位。
③TRAPK0≤K≤31TRAP指令不影响位INTM,在CPU响应TRAP指令所引发的中断时,可以被其他高优先级的可屏蔽中断打断。
24.C54X有两个寄存器对中断进行管理,中断标志寄存器IFR,中断屏蔽寄存器IMR,都是16位的寄存器映像寄存器,地址分别为(IFR)0001H(IMR)0000H
25.当一个中断请求出现时,将把中断标志寄存器IFR中的相应位置1
26.IMR的各位可以看作是可屏蔽中断的分开关,给相位的标志位写1,允许该中断源产生中断,写0禁止该中断,而ST1中的INTM是总开关,INTM=0,使总开关闭合,令相应IMR某位=1使分开关闭合,该可屏蔽中断才能得到CPU响应,INTM、IMR对、不起作用。
27.中断响应及中断处理过程
(1)非屏蔽中断或软件中断的处理过程
① 产生一个中断应答信号
② 将INTM位置1,屏蔽其他可屏蔽中断(TRAPK指令除外)
③ 保存当前PC值,以便中断结束后,返回主程序
④ CPU进入相应中断服务程序ISR,执行ISR
⑤ 在ISR结束位置有一条返回指令,执行返回指令把返回地址从堆栈中弹给PC
⑥ CPU继续执行主程序
(2)可屏蔽中断的处理过程
首先判断:
1)INTM=0
2)IMR的相位位为1
3)当前中断优先级最高为真时进行处理:
① INTM位置1,屏蔽其他可屏蔽中断
② CPU开始对中断矢量表的相应位寻址
③ 当取出中断矢量的第一个字节指令后,DSP产生一个中断应答信号,并将IFR相应位清零
④ 保存当前PC值
⑤ CPU进入相应中断服务程序ISR,执行ISR
⑥ 在ISR结束位置有返回指令,执行返回指令将返回地址从堆栈中弹给PC
⑦ CPU继续执行主程序
28.C54X流水线操作由6个阶组成
预取指(P),取指(F)译码(D)寻址(A)读数(R)执行(X)
29.指令末尾加“D”为有延时操作,否则是无延时操作,有延时操作缩短了执行时间
30.流水线冲突(时序性、逻辑性)
当多个流水线上的指令同时访问DSP的同一资源时所造成的时序上的冲突或一条指令要使用前一条或前几条指令的运行结果,而这个结果还没有产生,此时就会产生逻辑性的错误
第三章汇编语言指令系统
.1在一些实时要求较高的场合仍需采用汇编编程
2.C54X指令集
包括汇编语言指令、汇编伪指令和宏指令。
汇编语言指令又称硬指令。
宏指令是由硬指令和伪指令组成的程序段,汇编伪指令在汇编和连接过程中提供信息。
3.寻址方式
① 立即寻址,有“#”例:
LD#4,DP4→DP
② 绝对寻址,指令中包含着操作数的地址*()有四种类型
1)数据存储器寻址
2)程序存储器寻址
3)I/O端口寻址,相关指令PORTRPA,Smem;
PORTWSmem,PA
4)*(lk)寻址,该指令不能与单循环指令RPT、RPTZ配合使用
③ 累加器寻址,有两条指令采用这种寻址方式
1)READASmem:
A中内容为程序存储器地址,将该地址中的数据送入Smem指定的数据存储器中
2)WRITASmem;
将Smem指定的数据存储器中的内容送入A所指出的程序存储器中
④ 直接寻址,有“@”符号,是一种相对寻址P66
⑤ 间接寻址,*ARXP67
⑥ 存储器映像寄存器寻址
存储器映像寄存器寻址是一种直接访问存储器映像寄存器MMR的方式,可以用来修改MMR的值,由于MMR全部映像至数据空间第0页,因此在直接寻址时,不管是SP或DP的值如何,都强制其高9位于0,在间接寻址时,仅使用辅助寄存器中的低7位,而使其高9位为0,另外对数据空间0页上的0060h~007Fh也可以采用存储器映像寄存器寻址方式去访问
⑦ 堆栈寻址(保护中断现场)入栈时地址值减小,出栈时地址值增大
4.C54X可以访问32位的长操作数,进行加载,存储及加减等运算
① 加载指令DLDLmem,dst;
在单周期内同时利用CAB、CB和DAB、DB总线,将32位Lmem读入累加器,是1字1周期指令
② 存储指令DSTsrcLmem;
两次使用EAB、EB总线将累加器的内容分别写入高16位和低16位存储器,是1字2周期指令
③ C54X的32位的长操作数有两种数据存放格式:
偶地址存放和奇地址存放。
偶地址存放是指数据的高有效字存放在偶地址且是较低的地址,低有效字存放在奇地址且较高的地址;
奇地址存放则是数据的高有效字存放在奇地址且是较高地址,低有效字存放在偶地址且是较低地址。
5.移位指令P86
6.跳转指令P90(近程无条件转移、远程无条件转移、近程条件转移)
跳转指令共6条,4个重要特点:
1)无条件转移和条件转移
2)无延时转移和有延时转移▲
3)通过Pmad或累加器获得转移地址
4)近程转移和远程转移▲
7.INTR和TRAP这两条指令的区别
执行INTR可使位INTM=1,关断所有可屏蔽中断,而执行TRAP不会关断可屏蔽中断
8.重复操作指令分为两种
单条指令重复(RPT、RPTZ)和程序块重复
单条指令重复的最大优点是:
由于只需要取址一次,因此可将多周期指令变成单周期指令,大大节省了执行时间。
注:
RPT#K重复执行(K+1)次
第四章汇编语言程序设计
1.C54X的软件开发过程可以分为文本编辑、编译、汇编、链接四个基本步骤
2.采用COFF文件格式的优点
是将指令和数据按段的概念进行组织和存储,这使得程序的可读性大大增强,更容易编写程序,更便于进行程序的移植,更利于模块化的设计,为管理代码段及系统存储器提供了灵活的方法和手段
3.所谓“段”就是在存储器映像中占据连续空间的代码或数据,有三个默认的段
① .text段,通常内含可执行代码
② .data,通常内含已初始化数据
③ .bss,是为没有初始化的数据保留空间
4.COFF目标文件的段又可以分为两大基本类型
已初始化段(.text.data.sect)未初始化段(.bss.usect)
5.汇编器中设置了不可寻址的段程序计数器SPC
6.汇编器通过迭代过程来建立段
7.链接器有两种定位的方法:
缺省定位、存储器映像定位
8.链接器对段的处理主要完成两个功能
① 把1个或多个目标文件(文件名.obj)链接起来,产生可执行的COFF输出文件(文件名.out)
② 按照目标系统的需要配置存储器,并将符号和段重新定位,确定输出文件的输出地址
9.链接器伪指令MEMORY.SECTIONMEMORY用来定义目标系统的存储器,SECTION用来告诉链接器怎样组合输入段以及存储器的何处存放输出段
10.伪指令带有前缀“.”且必须小写
11.汇编语言程序的格式
[标号][:
]助记符[操作数字段][:
注释]助记符不能顶格写
12.汇编语言程序具有三种结构形式
顺序结构、分支结构、循环结构
13.DSP的模块化程序设计及汇编链接过程
① 编写中断处理程序
② 编写主程序和头文件
③ 编写命令文件
④ 编辑、编译、汇编和链接生成各种文件
14.计算机有两种数据表示方法
定点表示法、浮点表示法,C54X是定点芯片
15.常用的定标方法是Q表示法,Q值越大,数值范围越小,精度越高,相反,Q值越小,数值范围越大,精度越低
16.Q值的确定
对于分布均匀的数据一般采用统计分析法来确定其动态范围,对于分布不均匀的数据可以用数据的3倍方差值作为参考。
为了防止异常或者溢出,应该将Q值取低,即数据式放大
17.流水线冲突及其解决方法
① 对MMR进行写操作时所引发的流水线冲突解决方法:
添加NOP指令
② 条件执行指令有可能发生流水线冲突解决方法:
③ 改变PMST可能引起的流水线冲突解决方法:
添加NOP指令延长流水线执行时间或选取适合指令避免产生逻辑错误
第五章C54X高级C语言程序设计
如果采用C/C++语言编程,经过C编译器产生的代码已经避免了资源争用和时序上的错误,因此不会产生流水线冲突
1.汇编语言和C语言比较
汇编语言的优点:
程序执行效率高,硬件定时准确。
缺点:
程序不够直观,设计周期相对较长,程序的可移植性和可维护性比较差。
C语言的优点:
可移植性好,可维护性好,配合一些优化编译器,能够生成代码执行效率较高的可执行程序。
缺:
执行效率较低
2.C54X与ANSIC的不同点
① 所处理数据的性质不同
② 数据的输入输出设备不同
③ “死循环”的对待不同
④ 语法及数据结构细节上的不同
3.使用地址变量时,往往需要用vocatile关键字进行说明
I/O端口变量的定义格式:
ioport数据类型porthex_num
AR6被赋给了第一个寄存器变量;
AR7被赋给了第二个寄存器变量
4.C54XC语言开发的段结构
① 已初始化的段
1).text段,包含了可执行代码
2).cinit段,包含明显初始化的全局变量和静态变量
3).const段,包含字符串常数和全局常量
4).switch段,包含大型switch语句的跳转表
② 未初始化的段
1).bss,包含了未初始化的全局变量和静态变量
2).stack,定义软件堆栈
3).sysmem,为动态存储器函数malloc、calloc、realloc分配存储器空间
5.自定义段:
用户可以用pragma伪指令来产生其他的自定义段
语法结构#pragmaCODE_SECTION(symbol,”sectionname”)
6.存储器模式
① 小存储器模式:
编译器默认的存储器模式,这要求.bss在128字范围内,不需要修改DP值,程序代码简单,运行效率高
② 大存储器模式:
对.bss没有大小限制,访问变量时首先确定DP值,这将增加指令访问周期
7.在C中使用内嵌汇编的格式:
asm(“汇编语句”)
8.C语言中断函数定义
c_intd函数(除c_intoo函数外,不建议使用)
Interrupt函数(较直观)
9.对C代码进行手工汇编优化有两种方法
① 对照C代码写出汇编代码(有效、慢、开发难度大、容易出错)
② 先用编译器产生汇编代码,然后改写汇编码(效率低、较容易,建议使用)
第六章TMS320C54X软件开发环境CCS
1.CCS是TI公司推出的用于开发DSP芯片集成开发环境
2.CCS有两种工作模式
① 软件仿真器模式。
可以脱离DSP芯片,在PC机上模拟DSP的指令和工作机制,主要用于前期的算法实现和调试
② 硬件在线编程模式,可以在DSP芯片上实时运行,与硬件开发板进行在线编程和调试应用程序
3.CCS的组成
① 代码生成工具
② 集成开发环境(IDE)
③ DSP/BIOS实时内核插件以及相应的程序接口API
④ 由TI公司以外的第三方提供的各种应用模块插件等
4.代码产生工具P194
① C编译器:
产生汇编语言源代码
② 汇编器:
把汇编语言源文件翻译成机器语言目标文件,机器语言格式为公共目标格式
③ 链接器:
把多个目标文件组合成单个可执行目标模块,它一边创建可执行模块,一边完成重定位以及决定外部参考
5.CCS基本操作
CCS集成开发环境(IDE)允许编程、编译和调试DSP目标程序
6.DSP的插件介绍P196
① TI开发了支持实时分析的DSP/BIOS插件,可用于探测、跟踪和监视
② DSP/BIOS可提供抢先式多线程的实时系统性能分析,可以说DSP/BIOS是一个小型的实时操作系统内核
③ 线程有4种类型硬件中断、软件中断、任务和后台线程
④ DSP/BIOS三种通信方式:
基于管道通信,基于流通道的通信,基于主机通道的通信
7.CCS提供对片上系统的嵌入式支持,RTDX可以通过主机和DSPAPI函数提供主机和DSP之间的双向实时数据交换。
RTDX由目标系统和主机两部分组成
8.RTDX系统组成P199
第七章TMS320C54X片内外设及其应用
1.片内外设包括
① 软件可编程的等待状态产生器
② 可编程的分区转换逻辑
③ 一个主机接口(HPI8/HPI16)
④ 3个多通道缓冲串行口(MCBSP)
⑤ 一个硬件定时器
⑥ 带有锁相环(PLL)的时钟产生器
⑦ 1个DMA控制器
⑧ 增强型的外部并行接口(XI02)
⑨ 26条通用i/o引脚(GPIO)
2.在C54X芯片中主要提供了两条通用i/o引脚
外部标志输出XF和跳转控制输入
① XF引脚XF是一个输出引脚,它的输出电平可通过对ST1的D13位(XF)进行控制,当令位XF=1时,XF引脚输出高电平,令XF=0时,XF引脚输出低电平,复位时XF引脚为高电平,XF引脚有一定的驱动能力。
② 引脚引脚是一个输入引脚,它可以作为查询引脚,用来检测外部链接器的工作状态,可一颗作为外部中断申请引脚,向CPU发出中断请求
3.多缓冲串行口(MCBSP)的引脚作为GPIO
① 令SPCR1.0位=0,使MCBSP的接受部分复位
② 令SPCR2.0位=0,使MCBSP的发送部分复位
③ 令PCR.13位XIONE=1,使DX作为通用输出引脚FSX和CLKX作为通用i/o
④ 令PCR.12位RIONE=1,使DR和CLKX作为通用输入引脚,FSR和CLKR作为通用i/o
4.主机接口(HPI)的数据引脚作为GPIO
当HPI被用作HPI16模式(HPI16=1)或是禁用HPI(HPIENA=0)时,HPI的数据线可以作为GPIO来使用
5.定时器的组成
定时器主要由定时寄存器(TIM)周期寄存器(PRD)预分频计数器(PSC)预分频系数(TDDR)及控制逻辑电路组成,可划
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 重点 仅供参考