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