《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于IQmath庫的定點DSP算法設(shè)計
基于IQmath庫的定點DSP算法設(shè)計
現(xiàn)代電子技術(shù)
彭志明,李 琳 華南理工大學(xué)
摘要: 基于IQmath庫的定點DSP算法設(shè)計,基于IQmath庫的定點DSP算法設(shè)計彭志明,李琳(華南理工大學(xué)工業(yè)機器人研究室,,廣州510640)摘要:基于TI公司提供的IQmath庫實現(xiàn)在定點DSP芯片TMS320F28xx上進行精確的浮點運算,方便開發(fā)人員采用C/C++編寫浮點
關(guān)鍵詞: DSP 定點DSP IQmath TMS320F28xx
Abstract:
Key words :

摘要:基于TI公司提供的IQmath庫實現(xiàn)在定點DSP芯片TMS320F28xx上進行精確的浮點運算,,方便開發(fā)人員采用C/C++編寫浮點運算程序,可以節(jié)省設(shè)計和調(diào)試時間,。IQmath庫主要應(yīng)用于高速度和高精度的實時計算,,與直接采用ANSI C語言相比效率更高,這對設(shè)計實時性要求很高的控制系統(tǒng)尤其重要,。
關(guān)鍵詞:IQmath庫,;TMS320F28xx;浮點運算,;實時性

引言
    DSP數(shù)字信號處理器分為定點和浮點兩種基本類型,,它們之間最大差異在于浮點DSP比定點DSP具有更強大的計算能力和更大范圍的動態(tài)精度,。浮點DSP內(nèi)部設(shè)有專門支持浮點運算的硬件單元,對浮點格式的數(shù)據(jù)可以直接通過代碼加入硬件運算中,,因此運算速度很高,。而定點DSP沒有定點運算單元,它對浮點格式的實數(shù)必須通過軟件才能實現(xiàn),,這樣就增加了指令代碼,,間接地使得定點DSP運算速度低于浮點DSP,典型的浮點處理器,,如TI公司的C6000系列,,幾乎所有的嵌入式微控制器都為定點處理器,如TI公司的C2000系列,。因為浮點DSP的價格更加昂貴,,因此定點DSP仍然有其巨大的優(yōu)勢。但是任何算法都需要進行浮點運算,,因此如何提高在定點DSP上進行的浮點運算的速度和精度,,就成為了用戶開發(fā)時必須要考慮的關(guān)鍵問題。TI公司專門為定點處理器TMS320C2000系列提供的IQmath庫為解決上述問題提供了良好的實現(xiàn)方法,。

1 數(shù)的定標:Q格式
    定點DSP不能直接處理小數(shù),,編程時處理小數(shù)有3種方法:
    ①把變量定義成float類型。該方法編程量最小,,但編譯出來的代碼最大,。
    ②把整數(shù)變量放大來表示小數(shù)。這是許多開發(fā)定點DSP的程序員經(jīng)常使用的方法,,但程序不具有可移植性,。
    ③采用整數(shù)定標的方法來確定小數(shù),即采用Q格式來表示小數(shù),。對于定點處理器而言,,不管定義哪種類型的數(shù)據(jù)最終都采用整型數(shù)據(jù)進行具體的運算,。
    整數(shù)定標的實質(zhì)就是通過確定小數(shù)點位于哪一位,,從而確定小數(shù)的精度,通常用Q格式表示,。一個32位有符號定點數(shù)的Q格式如下:
    a.JPG
    其中,,S是符號位,I是整數(shù)部分,,f是小數(shù)部分,。定點數(shù)的大小按下式計算:
    b.JPG
    比如Q15定點數(shù)的小數(shù)點位于第15位的右側(cè),小數(shù)0.25用Q15表示則為2000H,。這樣很簡單地用一個整數(shù)格式表示了一個小數(shù),,對于定點DSP來說處理小數(shù)就與處理整數(shù)完全相同了,。需要注意的是,采用Q格式數(shù)據(jù)進行算法設(shè)計的時候必須考慮溢出,,各種Q格式數(shù)據(jù)表示的范圍和精度參考文獻,。

2 TMS320F2812定點DSP處理器
    作為TI公司C2000系列DSP典型產(chǎn)品,定點處理器TMS320F2812具有很高的性價比,,廣泛應(yīng)用于工業(yè)控制,,特別是應(yīng)用于處理速度、處理精度方面要求較高的領(lǐng)域,。TMS320F2812整合了Flash存儲器,、A/D轉(zhuǎn)換器、事件管理器,、QEP以及多種通信模塊,,具有強大的控制和信號處理能力,便于用戶開發(fā)高性能的數(shù)字控制系統(tǒng),。特別是TI公司為C28xx內(nèi)核專門設(shè)計的IQmath庫能夠?qū)崿F(xiàn)在定點DSP處理器上進行精確的浮點運算和復(fù)雜的控制算法,。

3 IQmath庫及其應(yīng)用
    IQmath庫是高度優(yōu)化和具有高精度的數(shù)學(xué)函數(shù)庫集合。IQmath庫里面包含的函數(shù)都是采用Q格式定點數(shù)作為輸入/輸出,,允許程序設(shè)計人員在定點TMS320F281xx處理器上進行浮點算法設(shè)計,,從而提高運算速度。
3.1 IQmath庫組成
    IQmath庫可以在c/C++程序設(shè)計中使用,,它包含4個部分:
    ◆IQmath頭文件IQmathLib.h
    ◆包含所有函數(shù)和數(shù)值表的目標文件IQmath.lib
    ◆命令連接文件IQmath.cmd
    ◆調(diào)試用的GEL文件IQmath.gel
3.2 IQmath庫函數(shù)
    IQmath庫中主要包括以下函數(shù)(用戶在程序設(shè)計開發(fā)時可以直接調(diào)用):
    ◆格式轉(zhuǎn)換函數(shù)IQ(),、IQN()、IQtoF(),、IQtoIQN()等
    ◆算術(shù)運算函數(shù)IQmpy(),、IQdiv()等
    ◆三角運算函數(shù)IQsin()、IQcos(),、IQatan2()等
    IQmath庫中的各個函數(shù)及其含義參考文獻,。
3.3 IQmath庫函數(shù)應(yīng)用
    下面說明如何在一個C程序中使用IQmath庫。首先要安裝IQmath庫,,可以從TI公司的網(wǎng)站http://WWW.dspvillage.ti.com免費下載得到,。然后新建一個工程,將IQmath.lib,,IQmath.cmd添加到工程,。同時,還要把IQmath.gel添加到工程中,,因為IQ變量的變換和調(diào)整都是通過GEL函數(shù)來實現(xiàn)的,。按以上步驟設(shè)置完以后,就可以在C語言程序中利用IQmath庫里面的函數(shù)了,。需要注意的是,,IQmath.cmd必須包含以下內(nèi)容:
c.JPG
d.JPG

4 PARK變換浮點算法的定點數(shù)實現(xiàn)
    在現(xiàn)代交流電機控制領(lǐng)域,,空間矢量控制法(SVPWM)使得交流電機的控制策略能像直流電機的控制策略一樣,可以實現(xiàn)轉(zhuǎn)矩電流和磁通的單獨控制,,因此成為主流的交流伺服驅(qū)動控制策略,。利用DSP強大的計算能力和信號處理能力,SVPWM的電流和磁通控制均可以采用軟件實現(xiàn),。TMS320F2812處理器專門為電機控制設(shè)有兩個事件管理器(EVA/EVB)和編碼器電路(QEP),,因此成為運動控制的最佳選擇之一。圖1是采用
TMS320F2812實現(xiàn)SVPWM控制算法的系統(tǒng)結(jié)構(gòu)框圖,。

e.JPG

    從圖1可以看出,,PARK變換是SVPWM控制算法中最為復(fù)雜的變換之一,是一個旋轉(zhuǎn)矢量is從靜止二相坐標系(α-β)變換到同步旋轉(zhuǎn)的二相坐標系(d-q),。PARK變換坐標映射如圖2所示,。

f.JPG


    由圖2可以得到PARK變換的方程式:
    g.JPG
    因為PARK變換是一個浮點算法,如果在定點處理器TMS320F2812上采用浮點運算來實現(xiàn),,代價很高,。采用浮點類型進行編程將產(chǎn)生十分龐大的代碼,而且在循環(huán)計算中勢必影響系統(tǒng)的效率和性能,。采用IQmath庫可以將浮點算法轉(zhuǎn)換為定點數(shù)算法,,這樣運算速度可以明顯提高,這對實時性要求很好的運動控制系統(tǒng)的設(shè)計十分有效,。利用IQmath庫實現(xiàn)PARK變換的程序段如下:
h.JPG
    圖3是利用Embedded Target for TI C2000 DSP集成開發(fā)工具對IQmath庫編寫的SVPWM程序計算PWM占空比的波形圖,。

5-1.JPG



5 結(jié)論
    利用IQmath庫可以在32位定點處理器TMS320F2812上實現(xiàn)浮點算法與定點算法之間的無縫連接,能夠極大地增強定點DSP的運算能力,;在不犧牲時間周期的情況下可以實現(xiàn)高精度計算,,能夠快速地完成對浮點算法的轉(zhuǎn)換、植入和執(zhí)行,;還可以根據(jù)應(yīng)用系統(tǒng)不同要求相應(yīng)地調(diào)整運算精度,,與直接采用ANSI C語言相比效率更高。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。