為了兼容基于IQmath的程序的移植,本文給出了基于TMS320F2807x的IQmath的移植方法。
一.測試相關(guān)環(huán)境
測試相關(guān)的軟硬件環(huán)境如下表所列:
CCS Version |
7.2.0.00013 |
Compiler Version |
TI v16.9.3.LTS |
IQmath Version |
V1.6.0 |
測試芯片型號 |
TMS320F28075 |
您可以選擇任意示例工程,這里選擇的工程為 adc_soc_epwm_cpu01,它的工程文件的目錄為:
C:\ti\controlSUITE\device_support\F2807x\v210\F2807x_examples_Cpu1\adc_soc_epwm\cpu01
在CCS中import該工程后,右擊工程,選擇Properties,并打開Build Configuration下的Set Active,選擇CPU1_FLASH,使程序在flash下運(yùn)行。
二. 工程修改步驟
1.在新的工程中添加IQmath庫文件,由于TMS320F2807x為浮點(diǎn)運(yùn)算的芯片,所以選擇IQmath_fpu32.lib這個庫。
2.在新的工程中添加IQmath函數(shù)庫的頭文件IQmathLib.h,并在原有工程中添加以下語句:
#include "IQmathLib.h";
以上兩均添加好的工程的文件列表如下:
3.由于IQmathTables不再固化在芯片的ROM中,需要將這一部分的程序拷貝到FLASH中,則要修改CMD文件,增加了IQmath和IQmathTables的內(nèi)存分配。這個CMD文件在TI官方的軟件包c(diǎn)ontrolSUITE中已經(jīng)提供,地址如下:
C:\ti\controlSUITE\device_support\F2807x\v210\F2807x_common\cmd
選擇2807x_FLASH_IQMATH_lnk_cpu1.cmd,
在FLASHB和FLASHC中專門給IQmath和IQmathTables分配了空間:
4.為了保持一個工程中僅有一個CMD文件,將工程中自帶的Flash_lnk.cmd刪除。
右鍵工程文件,選擇properties,在CCS Build下選擇C2000 Linker,刪除2807x_Generic_FLASH_lnk.cmd文件。
當(dāng)然,您也可以選擇修改原有的CMD文件,只要在FLASH中給IQmath和IQmathTables分配足夠的空間即可。
5.移植完成以后,在程序中添加IQmath函數(shù)的測試代碼。
首先在main函數(shù)前增加IQ格式的變量定義:
_iq IQresult =_IQ(1.0);
_iq IQsource;
在main函數(shù)調(diào)用IQmath庫中的任意函數(shù),這里我調(diào)用了IQsin()函數(shù)進(jìn)行測試:
IQresult =_IQsin(IQsource);
通過實(shí)際debug,計算結(jié)果與預(yù)期相符。
三. TMS320F2807x Piccolo系列芯片在運(yùn)算能力上的提升
1. 浮點(diǎn)運(yùn)算單元FPU
FPU全稱Float Point Unit,即浮點(diǎn)運(yùn)算單元,是專用于浮點(diǎn)運(yùn)算的處理器。在大多數(shù)現(xiàn)在的通用計算機(jī)架構(gòu)中,會在CPU中集成一個或多個浮點(diǎn)運(yùn)算器,但許多嵌入式處理器沒有在硬件上支持浮點(diǎn)數(shù)運(yùn)算。
TMS320F2807x Piccolo系列芯片使用C28x+FPU的架構(gòu),在原有的C28x定點(diǎn)CPU的基礎(chǔ)上加入了一些寄存器和指令,來支持IEEE 單精度浮點(diǎn)數(shù)的運(yùn)算。對于在定點(diǎn)微處理器上編寫的程序,浮點(diǎn)C2000也完全兼容,不需要對程序做出改動。
下表給出了與定點(diǎn)處理器相比,浮點(diǎn)處理器在計算能力上的提升:
可見,與定點(diǎn)處理器相比,浮點(diǎn)處理器不但在程序編寫上更加簡潔,性能上也有了很大的提升,在進(jìn)行除法,開方,F(xiàn)FT和IIR濾波等算法等指令中效率更高。
2. 三角函數(shù)運(yùn)算單元TMU
與此同時,該系列芯片內(nèi)部還集成了浮點(diǎn)三角函數(shù)運(yùn)算單元TMU,它增強(qiáng)了C28-FPU的指令集。通過提供以單周期高效方式執(zhí)行某些三角函數(shù)和算術(shù)函數(shù)的指令,減少了常見復(fù)雜函數(shù)運(yùn)算的處理延遲,進(jìn)一步提高了實(shí)時控制算法的性能。
帶有TMU單元和沒有TMU單元的CPU在一些常見函數(shù)的執(zhí)行周期的對比情況如下表:
TMU可以對許多常用的實(shí)時控制算法有極大的優(yōu)化,常見的有以下幾種:
1.Park和Inverse Park變換;
2.空間矢量控制;
3.dq0和Inverse dq0變換;
4.FFT幅度和相位計算。
以Park變換為例,使用FPU來執(zhí)行,通常需要80到100多個周期來,而集成了TMU單元的CPU僅需13個指令周期即可完成,與沒有TMU相比,性能提高了85%。
因此,針對復(fù)雜且對實(shí)時控制要求高的控制算法中,相信集成了FPU和TMU的TMS320F2807x Piccolo系列芯片是您非常合適的選擇。
審核編輯:何安
-
嵌入式處理
+關(guān)注
關(guān)注
0文章
341瀏覽量
10250
發(fā)布評論請先 登錄
AMC1306和tms320f28035之間如何連接?tms320f28035如何提取位流?
TMS320F2802x、TMS320F2802xx微控制器TRM

TMS320F28002x、TMS320F280015x和TMS320F280013x之間的遷移指南

TMS320F2807x實(shí)時微控制器技術(shù)參考手冊

在TMS320F2838x和TMS320F28P65x之間進(jìn)行遷移

在TMS320F2837x和TMS320F28P65x之間進(jìn)行遷移

TMS320F2810、TMS320F2811、TMS320F2812 ADC校準(zhǔn)

TMS320F2837x與TMS320F2838x之間的移植應(yīng)用說明

TMS320F28x引導(dǎo)特性和配置

TMS320F2833x/2823x至TMS320F2837xD/2837xS/2807x的遷移概述

TMS320F2833x、TMS320F2823x數(shù)字信號控制器(DSC)TMS320C2834x Delfino微控制器數(shù)據(jù)表

TMS320F280x、TMS320C280x、TMS320F2801x數(shù)字信號處理器數(shù)據(jù)表

TMS320F280x、TMS320C280x、TMS320F2801x數(shù)字信號處理器數(shù)據(jù)表

TMS320F2833x、TMS320F2823x實(shí)時微控制器數(shù)據(jù)表

TMS320F2807x微控制器數(shù)據(jù)表

評論