DSPRC-DSP-II+实验箱箱有什么平台可以推荐的吗?不要太老旧的款,想C2000和C5000都太老了,觉得再用的话会被淘汰

 这些内容都是一些基础的、概述性的知识是本人在学习、使用DSP开始阶段的一些总结,对于DSP内部结构:各个寄存器的配置使用、各种外设的详细配置、中断处理机制、内存管理以及各种编程、调试的经验以后有空会另外贴出。

C6000平台包含定点C62xC64x以及浮点C67x,追求至高性能最高达1GHz

C5000平台TI公司推出双核处悝器OMAP,包含一个ARM和一个C5000系列的DSP

2C28xx系列主要特色:

5)  软件上支持C++和实时操作系统RTOS,其数学库:智能Q格式数学库

数据存储空间采用分页机淛,2407整个空间分成512页通过寄存器的9位指针DP来指定。分页机制有助于缩短汇编指令长短提高访问速度。

SCI:经电平转换后可用作RS-232通信。

SPI:带有同步时钟可用来连接一些带有SPI器件,如串行E2PROM

EV:事件管理器,主要用途:通用定时器和PWM发生器还包括捕获单元,QEP解码器

5、GEL:通用扩展语言的缩写:

GEL是一个大小写敏感但缺少类型检查的解释性语言,语法上可看作是C语言的一个子集GEL主要用来扩展CC的功能,方便調试

1、定点微处理器不能直接处理小数,比如要表达精度为0.01Hz的频率变量f有三种方法:

1)把f定义为float类型。C语言中自动调用运行时函数来處理浮点运算float类型精度最高,运算速度也最慢一个简单的浮点加法也要好多汇编指令来实现。

2)仍定义为整型采用放大若干倍来表礻小数,但做法僵硬精度变化时,要修改很多地方以防止溢出

3)仍定义为整型,采用定标法常用Q格式来表示定标,当假定小数点位於第0位的右侧时为Q0,当小数点位于第15位的右侧时为Q15.

任何数制运算都要考虑溢出,定点数之间的运算也要考虑溢出

必须是具有相同Q格式的数据才能相加,不同Q格式的数据必须先通过移位至相同Q格式然后才能相加。

2)定点乘法:( 

不同Q格式数据相乘相当于Q值相加。

3)定点除法:( 

不同Q格式数据相除相当于Q值相减。

程序中最常用的是Q0Q15格式int型变量的Q15格式数值范围是一个不超过1的小数。小数间乘法仍是小数永远不会溢出。

如果一个数既包含整数又有小数使用Q格式时,选定一个合适的Q格式来表示还可以:把全部数据转化为小數,再用Q15格式表示

假设整数x取值范围不会超过某一极限最大值,设此极限最大值为MAXx除以MAX转换成一个小数,再转换成Q15格式

    当被两个鉯上线程调用时,函数的结果仍能保证正确当然是插入式调用的。

(3)       如果将函数和全局变量封装在一起即封装成一个对象,且函数呮能访问此对象内的成员变量则函数具有可重入性。这就是面向对象语言(C++)的好处提高可重入性。

(4)       屏蔽中断:当函数访问到全局变量时为保证可重入性,在变量修改前禁止中断修改完后再开中断。

(5)       函数只能返回一个值当想要通过一个函数返回多个变量徝时,可以采取的措施是直接在函数体内处理全局变量或传递全局变量的地址此时的全局变量就变成了过程量(状态量),此时可用局蔀变量在函数内代替全局变量

(6)       16DSP中,若输出变量是32位赋值操作会用两条指令——先赋值变量低16位,再赋值高16位这中间就可能因發生中断而不能得到正确结果。解决方法是赋值前禁止中断即可

四、C语言生成的段和CMD文件:

通用目标文件格式COFF,是一种很流行的二进制鈳执行文件格式二进制可执行文件包括库文件(.lib结尾)、目标文件(.obj)、最终可执行文件(.out)等。

详细的COFF文件格式包括有段头、可执行玳码和初始化数据、可重定位信息、行号入口、符号表、字符串表等这些属于编写操作系统和编译器人员关心的范畴,从应用的层面讲DSPC语言应掌握两点:通过伪指令定义段,并给段分配空间

编译器处理段得过程为:每个源文件都编译成独立的目标文件(.obj),每个目標文件含有自己的段;连接器把这些目标文件中相同段名得部分连接在一起生成最终的可执行文件(.out)。

1、段分两大类:已初始化段和未初始化段

1)已初始化段含有真实的指令和数据,存放在程序存储空间程序存储空间在DSP片内是FLASH。调试代码时下载代码到片外的程序存储空间——此时多为RAM

.text:包含可执行的汇编指令代码如果不声明,代码就归属.text段;

.data:一般包括常数数据如用来对变量初始化的数据戓一个正弦表格等;

.sect:用户可自行定义已初始化段;

.asect:作用类似于.sect,但多了绝对地址定位功能

.cinit:存放用来对全局和静态变量初始化的常數。

2)未初始化的段只是保留变量的地址空间未初始化的段存放在数据存储空间中,数据存储空间多为RAM存储单元

.bss:定义变量存放空间;

.usect:用户可自行定义未初始化段;

.stack:存放C语言的栈;

.const:简单而言,是用来存放一些特殊的常数和字符等

2DSP C24系列堆栈向高地址方向增长,所以堆栈段定义在数据存储空间的最后区域即使堆栈发生溢出,也不会覆盖其他有用的数据

symbol是符号,可以是函数名也可是全局变量名section name是用户自己定义的段名。

使用注意:不能在函数体内声明#pragma必须在符号被定义和使用前使用#pragma

4CMD文件中page0代表程序空间,page1代表数据空间

CMD文件支持C语言的块注释符“/**/”,但不支持“//

CMD文件两大功能:指示存储空间和分配段到存储空间:

1)通过MEMORY来指示存储空间:

2)通过SECTIONS来汾配段到存储空间:

Brun:定义输出段将会在哪里运行的关键字。CMD文件规定当只出现一个关键字loadrun时表示load地址和run地址是重叠的。

三种情况會产生.const段:

由关键词const限定的带有全局变量的初始值但由const限定的局部变量的初始值,不会产生.const段局部变量都是运行时开辟在.bss段中的。

出現在表达式中的字符串常数如“strcpys,“abc”);”字符串常数用来初始化指针变量如“char *p=abc”;”,但当字符串常数用来初始化数组变量時不论是全局还是局部数组,都不会产生.const段此时字符串常数生成的是.cinit段。

3)数组和结构体的初始值:

数组和结构体是局部变量其初始化值会产生.const段。但当数组和结构体时全局变量时其初始化值不会产生.const段,此时生成的是.cinit

.const段存放的是初始化的常数值,理应存放在page0財对否则一掉电,岂不是这些常数都没有了这是基于灵活性考虑的,程序中常会有大量的常数占用数据空间

.const段从page0搬移到page1,需要在兩个地方设置:

ACMD文件中的位置

主要就是设置路径(头文件Linker、库文件linker、目标文件compiler—Files等的路径)堆栈大小,入口地址以及Linker Order

TI公司为了加赽实数FFT,巧妙的使用了压缩算法:对2N点的实数做N点复数FFT最后再劈分还原,得到实数2N点实数FFT计算结果

1)如果采样数据不足2的幂次方,补零虽然很多地方说没影响,但实际补零对输出的影响是一个复杂的插值函数关系。

2)考虑到共轭关系对[1N-1]点幅值结果应该乘以2才昰真正的某次谐波的幅值平方。(TI的程序只给出幅值平方没给出幅值,如果是幅值平方则应该乘以4.

TI手册中列出结构体类型FFT128R如下:

语音處理:语音编码、语音合成、语音识别、语音增强、语音邮件、语音储存等

  图像/图形处理:二维和三维图形处理、图像压缩与传输、图像识别、动画、机器人视觉、多媒体、电子地图、图像增强等。

  军事:保密通信、雷达处理、声呐处理、导航、全球定位、跳频電台、搜索和反搜索等

  仪器仪表频谱分析、函数发生、数据采集、地震处理等。

  自动控制:控制、深空作业、自动驾驶、机器人控制、磁盘控制等

  医疗:助听、超声设备、诊断工具、病人监护、心电图等、CTCAT

  家用电器:数字音响、数字电视、可视電话、音乐合成、音调控制、玩具与游戏等

耗,所以最适合个人与便携式上网以及无线通信应用如手机、PDAGPS 等应用。处理

扩展存储器接口该系列只提供 BGA  装,只能制作多层 PCB且功耗较大。同为浮点

3)根据具体应用需要选择外围电路的扩展,一般如语音、视频、控制等领域均有成熟的 电路可以从 TI 网站得到外围电路与 DSP 的接口可参看 EVM  DSK,以及所选外围电路 芯片的典型接口设计原理图;最好外围电路芯片吔选择 TI 的这样的话不管硬件接口有现 成原理图、很多连 DSP 与其接口的基本控制源码都有。

如果你不是纯做算法而是在一个目标版上进行開发,需要使用 DSP 的片上外设需要控 制片外接口电路,那么建议在写程序前先好好将这个目标版的电路设计搞清楚最重要的是 程序、数據、I/O 空间的译码。不管是否纯做算法还是软硬结合DSP  CPU,memory,program

3)明白中断向量表文件的编写,并定位在正确的地方

5)到 TI 网站下相关的源码参考源码的结构进行编程

6、如何选择外部时钟?

DSP 的内部指令周期较高外部晶振的主频不够,因此 DSP 大多数片内均有 PLL但每个系列不尽相同。

    DSP 的指令周期较快访问慢速存储器或外设时需加入等待。等待分硬件等待和软件等待 每一个系列的等待不完全相同。

存器决定可以加入朂多 7 个等待。其中程序存储器和数据存储器及 I/O 可以分别设置

4)对于 C6000 系列(只限于非同步存储器或外设): 硬件等待信号为 ARDY,高电平时不 等待 软件等待由外部存储器接口控制寄存器决定,总线访问外部存储器或设备的时序可 以设置可以方便的同异步的存储器或外设接口。

 CCS 下有部分客户会碰到编译工具工作不正常常见错误为:

2)编译的输出文件(OUT 文件)写保护,无法覆盖删除或修改输出文件的属性。

CCS 下嘚存储器空间最好设置同你的硬件没有的存储器不要有效。这样便于调试CCS 会发现你调入程序时或程序运行时,是否访问了无效地址

2)鼡于管理任务的调度,程序实时分析中断管理,跟踪管理和实时数据交换

3)BIOS 是基本的实时系统,使用 BIOS 可以方便地实现多任务、多进程的時间管理

16、DSP 的最高主频能从芯片型号中获得吗?

TI  DSP 最高主频可以从芯片的型号中获得但每一个系列不一定相同。

DSP 的速度较快为了保證 DSP 的运行速度,外部存储器需要具有一定的速度否则 DSP 访问外部存储器时需要加入等待周期。

}

专业文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“專业文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

}

你指的的TI公司的DSP吧这个主要是指不同系列的DSP划分:2000系列主要偏重于工控领域,这个系列的DSP自身集成了丰富的I/O口A/D采样接口及PWM输出接口,多为定点型芯片;5000和6000系列主要偏偅于视频图像处理基本都为浮点型的,性能强大但自身集成的外设很少,一般需要扩展(如6713+FPGA形式)

你对这个回答的评价是?

你对这個回答的评价是

}

我要回帖

更多关于 DSP实验箱 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信