| | 网站首页 | 新闻 | SOPC | FPGA | DSP | ARM | 嵌入式操作系统 | 下载 | 所有产品 | 留言 | 论坛 | 购买指南 | 网络协议 | 驱动设计 | | |
![]() |
![]() |
| 您现在的位置: 21嵌入式控制研究室 >> DSP >> DSP应用 >> 文章正文 |
|
|||||
| 定点DSP芯片TMS320F2812实现快速算法应用 | |||||
| 作者:佚名 文章来源:本站原创 点击数: 更新时间:2005-11-29 | |||||
|
来源:国外电子元器件 作者:李佳武 张景森 滕 峰 摘要:论述了以DSP芯片TMS320F2812为核心的一种测量仪器的组成原理、设计思想以及快速定点算法的实现方法,同时对定点和浮点算法结果进行了比较。 关键词:定点芯片;浮点运算;快速算法;系统配置;TMS320F2812 1 TMS320F2812简介 TMS320F2812是TI公司的一款用于控制的高性能、多功能、高性价比的32位定点DSP芯片。该芯片兼容TMS320LF2407指令系统最高可在150MHz主频下工作,并带有18k×16位0等待周期片上SRAM和128k×16位片上FLASH(存取时间36ns)。其片上外设主要包括2×8路12位ADC(最快80ns转换时间)、2路SCI、1路SPI、1路McBSP、1路eCAN等,并带有两个事件管理模块(EVA、EVB),分别包括6路PWM/CMP、2路QEP、3路CAP、2路16位定时器(或TxPWM/TxCMP)。另外,该器件还有3个独立的32位CPU定时器,以及多达56个独立编程的GPIO引脚,可外扩大于1M×16位程序和数据存储器。TMS320F2812采用哈佛总线结构,具有密码保护机制,可进行双16×16乘加和32×32乘加操作,因而可兼顾控制和快速运算的双重功能。 通过对TMS320F2812定点DSP芯片合理的系统配置和编程可实现快速运算,本文着重对此加以说明。 2 TMS320F2812基本系统配置 2.1 TMS320F2812时钟 TMS320F2812的片上外设按输入时钟可分为如下4个组: (1)SYSOUTCLK组:包括CPU定时器和eCAN总线,可由PLLCR寄存器动态地修改; (2)OSCCLK组:主要是看门狗电路,由WDCR寄存器设置分频系数; (3)低速组:有SCI、SPI、McBSP,可由LOSPCP寄存器设置分频系数; (4)高速组:包括EVA/B、ADC,可由HISPCP寄存器设置分频系数。 为了使系统具有较快的工作速度,除了定时器和SCI等少数需要低速时钟的地方,其它外设均可以150MHz时钟工作。
2.2 存储空间 图1所示是TMS320F2812的内部存储空间映射图。TMS320F2812为哈佛(Harvard)结构的DSP,即在同一个时钟周期内可同时进行一次取指令、读数据和写数据的操作。在逻辑上有4M×16位程序空间和4M×16位数据空间,但物理上已将程序空间和数据空间统一为一个4M×16位的存储空间,各总线按优先级由高到低的顺序为:数据写、程序写、数据读、程序读。其中由CY7C1041扩展的256k×16位SARAM位于Zone 6(0x100000~0x13FFFF),存取时间不小于12ns;128k×16位FLASH空间(0x3D8000~ 0x3F7FFF)取指时间不小于36ns。为了尽可能提高器件的工作速度,在对FLASH寄存器编程使其在较高速度下工作的同时,可将时间要求比较严格的程序(如时延计算子程序、FIR滤波子程序等)、变量(如FIR滤波器系数、自适应算法的权向量等)各堆栈空间搬移到H0、L0、L1、M0、M1空间来运行。 2.3 中断 TMS320F28x系列DSP片上都有非常丰富的外设,每个片上外设均可产生1个或多个中断请求。中断由两级组成,其中一级是PIE中断,另一级是CPU中断。CPU中断有32个中断源,包括RESET、NMI、EMUINT、ILLEGAL、12个用户定义的软件中断USER1~USER12和16个可屏蔽中断(INT1~INT14、RTOSINT和DLOGINT)。所有软件中断均属于非屏蔽中断。由于CPU没有足够的中断源来管理所有的片上外设中断请求,所以在TMS320F28x系列DSP中设置了一个外设中断扩展控制器(PIE)来管理片上外设和外部引脚引起的中断请求。 PIE中断共有96个,被分为12个组,每组内有8个片上外设中断请求,96个片上外设中断请求信号可记为INTx.y(x=1,2,…,12;y=1,2,…,8)。每个组输出一个中断请求信号给CPU,即PIE的输出INTx(x=1,2,…,…12)对应CPU中断输入的INT1~INT12。TMS320F28x系列DSP的96个可能的PIE中断源中有45个被TMS320F2812使用,其余的被保留作以后的DSP器件使用。 ADC、定时器、SCI编程等均以中断方式进行,可提高CPU的利用率。 2.4 复位引导 图2所示是TMS320F2812的片上引导ROM空间映射。其此导程序配置在图2中的0x3FFC00~0x3FFFBF,根据图1,设置VMAP=1,MP/MC=0,ENPIE=0,复位向量指向片上0x3FFFC0,而片上0x3FFFC0中内容为0x3FFC00,即指向图2中的引导程序。配置表2中的GPIOF4(SCITXDA)=1,则转向FLASH中的0x3F7FF6开始执行程序,最后在0x3F7FF6片设置跳转指令指向用户程序的开始处,以开始运行用户程序。由于在实际应用中使用了PIE中断,因此,在用户应用程序中,应首先初始化PIE中断向量表,然后使能PIE。 3 编程设计 编程是实现系统正常工作和快速运算必不可少的重要环节。在系统配置合理的条件下,用定点芯片实现快速运算的关键用整数取代浮点数进行计算处理。用C编译器时,为产生最优代码,应遵循以下原则: (1)将除法转换为乘法,尽量使编译器产生MAC指令,以充分利用DSP的硬件乘法器资源进行快速运算,且应使MAC的操作数为局部变量以分配到寄存器中(或到一个累加器中)。 (2)尽可能使用静态直接插入函数,以节省函数调用的额外开销。 (3)对FOR循环的上限,使用常数或具有常数属性的变量可产生重复指令RPT。 3.1 ADC编程 TMS20F2812带有两个8选1多路切换器和双采样/保持器的12位ADC,模拟量输入范围为0~3V,最快转换速率为80ns,选用10kSPS采样率,并采用EVA的定时器(0.1ms)自动触发方式,可同时采样4个通道,并采用每次转换结束的中断方式来纪录采样结果(右移4位)。 转换结果=(212-1)×(输入的模拟信号-ADCLO)/3 ADC转换时,首先初始化DSP系统,然后设置PIE中断矢量表,再初始化ADC模块,接着将ADC中断的入口地址装入中断矢量表并开中断,然后再启动0.1ms定时器,同时等待ADC中断,最后在ADC中断中读取ADC转换结果,并用软件启动下一次中断。
|
|||||
| 文章录入:fengfeiyi 责任编辑:fengfeiyi | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 | | |
![]() |
站长:康草科技 |