会计实操网 加入收藏  -  设为首页
您的位置:会计实操网 > 会计问答 > 正文
TMS320F2812
TMS320F2812
提示:

TMS320F2812

亲,你好~很高兴为你解答!我是您的专属老师,感谢您的耐心等候!TMS320F2812是TI公司推出的低价钱、高性能的32位定点DSP数字信号处置器,是到目前为止用于数字控制领域性能最好的DSP芯片。它是在TMS320C28x为内核的基础上扩展了相应的存储器并集成了大量的片内外设而成的新一代适用于工业控制的DSP芯片。希望本次服务能帮到您[鲜花][鲜花][鲜花],您可以点击我的头像关注我,后续有问题方便再次向我咨询,期待能再次为您服务。祝您;生活愉快,一切顺利!如果对我的服务满意,请给个赞哦[开心],【摘要】 TMS320F2812【提问】 亲,你好~很高兴为你解答!我是您的专属老师,感谢您的耐心等候!TMS320F2812是TI公司推出的低价钱、高性能的32位定点DSP数字信号处置器,是到目前为止用于数字控制领域性能最好的DSP芯片。它是在TMS320C28x为内核的基础上扩展了相应的存储器并集成了大量的片内外设而成的新一代适用于工业控制的DSP芯片。希望本次服务能帮到您[鲜花][鲜花][鲜花],您可以点击我的头像关注我,后续有问题方便再次向我咨询,期待能再次为您服务。祝您;生活愉快,一切顺利!如果对我的服务满意,请给个赞哦[开心],【回答】 有这个芯片使用说明和管脚图吗【提问】 【回答】 【回答】 亲,芯片使用说明和管脚图如上【回答】

TMS320F28027的亮点
提示:

TMS320F28027的亮点

高效 32 位中央处理单元 (CPU) (TMS320C28027)60MHz,50MHz,和 40MHz 器件3.3V 单电源集成型加电和欠压复位两个内部零引脚振荡器多达 22 个复用通用输入输出 (GPIO) 引脚三个 32 位 CPU 定时器片载闪存、SRAM、一次性可编程 (OTP) 内存代码安全模块串行端口外设 (SCI/SPI/I2C)增强型控制外设增强型脉宽调制器 (ePWM)高分辨率 PWM (HRPWM)增强型捕捉 (eCAP)模数转换器 (ADC)片上温度传感器比较器38 引脚和 48 引脚封装高效32位CPU60MHz(16.67ns 周期时间)50MHz(20ns 周期时间)40MHz(25ns 周期时间)16 x 16 和 32 x 32 媒介访问控制 (MAC) 运算16 x 16 双 MAC哈佛 (Harvard) 总线架构连动运算快速中断响应和处理统一存储器编程模型高效代码(使用 C/C++ 和汇编语言)2低器件和系统成本3.3V 单电源无需电源排序集成型加电和欠压复位可采用低至 38 引脚小型封装低功率无模拟支持引脚计时两个内部零引脚振荡器片载晶振振荡器/外部时钟输入支持动态锁相环路 (PLL) 比率变化安全装置定时器模块丢失时钟检测电路多达22个具有输入滤波功能可单独编程的多路复用GPIO引脚可支持所有外设中断的外设中断扩展 (PIE) 模块三个32位CPU定时器每个ePWM模块中的独立16位定时器128 位安全密钥/锁保护安全内存块防止固件逆向工程串行端口外设一个 SCI(UART) 模块一个 SPI 模块一个内部集成电路 (I2C) 总线

stm32f407和tms320f28335的区别是什么?
提示:

stm32f407和tms320f28335的区别是什么?

论坛上看到的比较。
这几天刚拿到STM32F4的评估板,STM32F4这次的卖点就是FPU和DSP指令集,关注了挺长时间,这次就想测试一下STM32F4的浮点性能,如果满足就升级自己飞控的架构。本来用STM32F103+28335双核架构,F28335当浮点处理器用,调试起来比较麻烦,所以一直想换了。

测试代码就是用的我飞控的算法,全部使用浮点运算,包含姿态和位置两个7阶和9阶的卡尔曼滤波器,包含大量的矩阵运算以及部分导航算法和PID控制器等,还有部分IF和SWITCH包含跳转的判定语句,相比纯算法算是一个比较综合的运算。

测试环境:
F28335:CCS V3.3,使用TI优化的数学库,不开优化,程序在RAM里执行。
STM32F4:KEIL V4.7,使用ARM优化的数学库,不开优化。

测试方法:
F28335:在飞控算法入口设置断点,清零CCS的CPU计数器(profile->clock),然后STEP OVER,记录下CPU的计数
STM32F4:在飞控算法入口设置断点,记录下Register窗口内算states计数器,然后STEP OVER,记录下新的计数器数值,与之前的数值相减得到CPU计数

测试结果:
F28335:253359个CPU周期,除以150MHZ,大约是1.69ms
STM32F4:一共285964个周期,除以168MHZ,大约是1.7ms,比F28335略慢

结论就是,对于包含相对较多跳转的综合浮点算法而言,STM32F4似乎并不慢多少。

抛开架构因素,从纯浮点运算方面来看的话。STM32F4的FPU加减乘指令VADD.F32、VSUB.F32、VMUL.F32都是单周期指令,而除法VDIV.F32耗费14个周期。
例如:a = a / b;产生的汇编为:
0x08000220 ED900A00 VLDR s0,[r0,#0x00]

0x08000224 4804 LDR r0,[pc,#16] ; @0x08000238

0x08000226 EDD00A00 VLDR s1,[r0,#0x00]

0x0800022A EE801A20 VDIV.F32 s2,s0,s1

0x0800022E 4803 LDR r0,[pc,#12] ; @0x0800023C

0x08000230 ED801A00 VSTR s2,[r0,#0x00]
复制代码 F28335: F28335的FPU有加减乘法指令,都是双周期的,由于没有硬件除法指令,F28335这里是用软件模拟的浮点除法,汇编可以看到 LCR $div_f32.asm字样,需要19个时钟周期。
例如:a = a * b,产生的汇编为:
0087B2 E203 MOV32 *-SP[4], R0H

0087B4 E2AF MOV32 R1H, *-SP[6], UNCF

0087B6 E700 MPYF32 R0H, R1H, R0H

0087B8 7700 NOP //需要让流水线等待FPU运算完毕,所以需要NOP

0087B9 E203 MOV32 *-SP[4], R0H

复制代码 除法:
0087BD E203 MOV32 *-SP[4], R0H

0087BF E2AF MOV32 R1H, *-SP[6], UNCF

0087C1 7640 LCR $div_f32.asm:52:71$

0087C3 E203 MOV32 *-SP[4], R0H
复制代码 结论:
可见单从浮点处理器来说,F28335是不如F4的FPU的。但是由于F28335是哈佛架构,有较长的流水线,可以在一个时钟周期里完成读取,运算和存储,所以程序连续运行的话,就比ARM快上许多许多,比如执行一次a = a + b只需要5个时钟周期,但是缺点就是一旦要跳转,就必须清空流水线,如果是
for(i = 0;i < 1000; i ++)

a = a + b;
复制代码 这样的运算,速度反而要比ARM慢(测试下来单次是17周期,ARM是14).所以说这就是ARM和DSP不同的地方了。

看看这次测试比较,感觉环境还是有一定的问题:
1、F28335是在RAM中运行,并且两者都是在仿真器环境中进行运算,还是离线在Flash中跑比较靠谱。
2、两者编译平台一个是CCS,一个是KEIL,对通用语句的优化,有待商榷。
3、ARM和TI的数学库中,各自支持的运算种类不一样。