淺談IQmath庫(kù)的定點(diǎn)DSP算法設(shè)計(jì)
出處:現(xiàn)代電子技術(shù) 發(fā)布于:2011-09-05 13:12:00
引言
DSP數(shù)字信號(hào)處理器DSP數(shù)字信號(hào)處理器是一個(gè)實(shí)時(shí)處理信號(hào)的微處理器,分為定點(diǎn)和浮點(diǎn)兩種基本類型,它們之間差異在于浮點(diǎn)DSP比定點(diǎn)DSP具有更強(qiáng)大的計(jì)算能力和更大范圍的動(dòng)態(tài)。浮點(diǎn)DSP內(nèi)部設(shè)有專門(mén)支持浮點(diǎn)運(yùn)算的硬件單元,對(duì)浮點(diǎn)格式的數(shù)據(jù)可以直接通過(guò)代碼加入硬件運(yùn)算中,因此運(yùn)算速度很高。而定點(diǎn)DSP沒(méi)有定點(diǎn)運(yùn)算單元,它對(duì)浮點(diǎn)格式的實(shí)數(shù)必須通過(guò)軟件才能實(shí)現(xiàn),這樣就增加了指令代碼,間接地使得定點(diǎn)DSP運(yùn)算速度低于浮點(diǎn)DSP,典型的浮點(diǎn)處理器,如TI公司的C6000系列,幾乎所有的嵌入式微控制器都為定點(diǎn)處理器,如TI公司的C2000系列。因?yàn)楦↑c(diǎn)DSP的價(jià)格更加昂貴,因此定點(diǎn)DSP仍然有其巨大的優(yōu)勢(shì)。但是任何算法都需要進(jìn)行浮點(diǎn)運(yùn)算,因此如何提高在定點(diǎn)DSP上進(jìn)行的浮點(diǎn)運(yùn)算的速度和,就成為了用戶開(kāi)發(fā)時(shí)必須要考慮的關(guān)鍵問(wèn)題。TI公司專門(mén)為定點(diǎn)處理器TMS320C2000系列提供的IQmath庫(kù)為解決上述問(wèn)題提供了良好的實(shí)現(xiàn)方法。
數(shù)字信號(hào)處理(Digital Signal Processing,簡(jiǎn)稱DSP)是一門(mén)涉及許多學(xué)科而又廣泛應(yīng)用于許多領(lǐng)域的新興學(xué)科。20世紀(jì)60年代以來(lái),隨著計(jì)算機(jī)和信息技術(shù)的飛速發(fā)展,數(shù)字信號(hào)處理技術(shù)應(yīng)運(yùn)而生并得到迅速的發(fā)展。在過(guò)去的二十多年時(shí)間里,數(shù)字信號(hào)處理已經(jīng)在通信等領(lǐng)域得到極為廣泛的應(yīng)用。數(shù)字信號(hào)處理是利用計(jì)算機(jī)或?qū)S锰幚碓O(shè)備,以數(shù)字形式對(duì)信號(hào)進(jìn)行采集、變換、濾波、估值、增強(qiáng)、壓縮、識(shí)別等處理,以得到符合人們需要的信號(hào)形式。
1 數(shù)的定標(biāo):Q格式
有符號(hào)數(shù)的表示法,機(jī)器數(shù)(出現(xiàn)在電腦的二進(jìn)位數(shù)值)有3個(gè)特點(diǎn), 無(wú)符號(hào)或符號(hào)轉(zhuǎn)換成數(shù)值來(lái)表示,沒(méi)有 +10101這樣的資料,而是以010101來(lái)表示,只表示單純的整數(shù)或小數(shù),小數(shù)點(diǎn)的位置預(yù)設(shè)在一定的位置而較少變動(dòng),它的長(zhǎng)度受到電腦硬體的限制,而不能無(wú)限增長(zhǎng)。Q格式,就是將一個(gè)小數(shù)放大若干倍后,用整數(shù)來(lái)表示小數(shù)
定點(diǎn)DSP不能直接處理小數(shù),編程時(shí)處理小數(shù)有3種方法:
①把變量定義成float類型。該方法編程量,但編譯出來(lái)的代碼。
?、诎颜麛?shù)變量放大來(lái)表示小數(shù)。這是許多開(kāi)發(fā)定點(diǎn)DSP的程序員經(jīng)常使用的方法,但程序不具有可移植性。
?、鄄捎谜麛?shù)定標(biāo)的方法來(lái)確定小數(shù),即采用Q格式來(lái)表示小數(shù)。對(duì)于定點(diǎn)處理器而言,不管定義哪種類型的數(shù)據(jù)終都采用整型數(shù)據(jù)進(jìn)行具體的運(yùn)算。
整數(shù)定標(biāo)的實(shí)質(zhì)就是通過(guò)確定小數(shù)點(diǎn)位于哪一位,從而確定小數(shù)的,通常用Q格式表示。一個(gè)32位有符號(hào)定點(diǎn)數(shù)的Q格式如下:
![]()
其中,S是符號(hào)位,I是整數(shù)部分,f是小數(shù)部分。定點(diǎn)數(shù)的大小按下式計(jì)算: ![]()
比如Q15定點(diǎn)數(shù)的小數(shù)點(diǎn)位于第15位的右側(cè),小數(shù)0.25用Q15表示則為2000H。這樣很簡(jiǎn)單地用一個(gè)整數(shù)格式表示了一個(gè)小數(shù),對(duì)于定點(diǎn)DSP來(lái)說(shuō)處理小數(shù)就與處理整數(shù)完全相同了。需要注意的是,采用Q格式數(shù)據(jù)進(jìn)行算法設(shè)計(jì)的時(shí)候必須考慮溢出,各種Q格式數(shù)據(jù)表示的范圍和參考文獻(xiàn)。
2 TMS320F2812定點(diǎn)DSP處理器
TMS320F2812作為T(mén)I公司C2000系列DSP典型產(chǎn)品,一款用于控制的高性能、多功能、高性價(jià)比的32位定點(diǎn)DSP芯片。定點(diǎn)處理器TMS320F2812具有很高的性價(jià)比,廣泛應(yīng)用于工業(yè)控制,特別是應(yīng)用于處理速度、處理方面要求較高的領(lǐng)域。TMS320F2812整合了Flash存儲(chǔ)器、A/D轉(zhuǎn)換器、事件管理器、QEP以及多種通信模塊,具有強(qiáng)大的控制和信號(hào)處理能力,便于用戶開(kāi)發(fā)高性能的數(shù)字控制系統(tǒng)。特別是TI公司為C28xx內(nèi)核專門(mén)設(shè)計(jì)的IQmath庫(kù)能夠?qū)崿F(xiàn)在定點(diǎn)DSP處理器上進(jìn)行的浮點(diǎn)運(yùn)算和復(fù)雜的控制算法。另外,該器件還有3個(gè)獨(dú)立的32位CPU定時(shí)器,以及多達(dá)56個(gè)獨(dú)立編程的GPIO引腳,可外擴(kuò)大于1M×16位程序和數(shù)據(jù)存儲(chǔ)器。TMS320F2812采用哈佛總線結(jié)構(gòu),具有密碼保護(hù)機(jī)制,可進(jìn)行雙16×16乘加和32×32乘加操作,因而可兼顧控制和快速運(yùn)算的雙重功能
庫(kù)函數(shù);顧名思義是把函數(shù)放到庫(kù)里是別人把一些常用到的函數(shù)編完放到一個(gè)文件里,供別人用。別人用的時(shí)候把它所在的文件名用#include<>加到里面就可以了。一般是放到lib文件里的,一般是指編譯器提供的可在c源程序中調(diào)用的函數(shù)??煞譃閮深?,一類是c語(yǔ)言標(biāo)準(zhǔn)規(guī)定的庫(kù)函數(shù),一類是編譯器特定的庫(kù)函數(shù)。
IQmath庫(kù)是高度優(yōu)化和具有高的數(shù)學(xué)函數(shù)庫(kù)集合。IQmath庫(kù)里面包含的函數(shù)都是采用Q格式定點(diǎn)數(shù)作為輸入/輸出,允許程序設(shè)計(jì)人員在定點(diǎn)TMS320F281xx處理器上進(jìn)行浮點(diǎn)算法設(shè)計(jì),從而提高運(yùn)算速度。
3.1 IQmath庫(kù)組成
IQmath庫(kù)可以在c/C++程序設(shè)計(jì)中使用,它包含4個(gè)部分:
◆IQmath頭文件IQmathLib.h
◆包含所有函數(shù)和數(shù)值表的目標(biāo)文件IQmath.lib
◆命令連接文件IQmath.cmd
◆調(diào)試用的GEL文件IQmath.gel
3.2 IQmath庫(kù)函數(shù)
IQmath庫(kù)中主要包括以下函數(shù)(用戶在程序設(shè)計(jì)開(kāi)發(fā)時(shí)可以直接調(diào)用):
◆格式轉(zhuǎn)換函數(shù)IQ()、IQN()、IQtoF()、IQtoIQN()等
◆算術(shù)運(yùn)算函數(shù)IQmpy()、IQp()等
◆三角運(yùn)算函數(shù)IQsin()、IQcos()、IQatan2()等
IQmath庫(kù)中的各個(gè)函數(shù)及其含義參考文獻(xiàn)。
3.3 IQmath庫(kù)函數(shù)應(yīng)用
下面說(shuō)明如何在一個(gè)C程序中使用IQmath庫(kù)。首先要安裝IQmath庫(kù),可以從TI公司的網(wǎng)站https://www.dspvillage.ti.com得到。然后新建一個(gè)工程,將IQmath.lib,IQmath.cmd添加到工程。同時(shí),還要把IQmath.gel添加到工程中,因?yàn)镮Q變量的變換和調(diào)整都是通過(guò)GEL函數(shù)來(lái)實(shí)現(xiàn)的。按以上步驟設(shè)置完以后,就可以在C語(yǔ)言程序中利用IQmath庫(kù)里面的函數(shù)了。需要注意的是,IQmath.cmd必須包含以下內(nèi)容:


4 PARK變換浮點(diǎn)算法的定點(diǎn)數(shù)實(shí)現(xiàn)
浮點(diǎn)數(shù)是屬于有理數(shù)中某特定子集的數(shù)的數(shù)字表示,在計(jì)算機(jī)中用以近似表示任意某個(gè)實(shí)數(shù)。具體的說(shuō),這個(gè)實(shí)數(shù)由一個(gè)整數(shù)或定點(diǎn)數(shù)(即尾數(shù))乘以某個(gè)基數(shù)(計(jì)算機(jī)中通常是2)的整數(shù)次冪得到,這種表示方法類似于基數(shù)為10的科學(xué)記數(shù)法。
定點(diǎn)數(shù)是計(jì)算機(jī)中采用的一種數(shù)的表示方法。參與運(yùn)算的數(shù)的小數(shù)點(diǎn)位置固定不變。
在現(xiàn)代交流電機(jī)控制領(lǐng)域,空間矢量控制法(SVPWM)使得交流電機(jī)的控制策略能像直流電機(jī)的控制策略一樣,可以實(shí)現(xiàn)轉(zhuǎn)矩電流和磁通的單獨(dú)控制,因此成為主流的交流伺服驅(qū)動(dòng)控制策略。利用DSP強(qiáng)大的計(jì)算能力和信號(hào)處理能力,SVPWM的電流和磁通控制均可以采用軟件實(shí)現(xiàn)。TMS320F2812處理器專門(mén)為電機(jī)控制設(shè)有兩個(gè)事件管理器(EVA/EVB)和編碼器電路(QEP),因此成為運(yùn)動(dòng)控制的選擇之一。圖1是采用TMS320F2812實(shí)現(xiàn)SVPWM控制算法的系統(tǒng)結(jié)構(gòu)框圖。

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

由圖2可以得到PARK變換的方程式:
![]()
因?yàn)镻ARK變換是一個(gè)浮點(diǎn)算法,如果在定點(diǎn)處理器TMS320F2812上采用浮點(diǎn)運(yùn)算來(lái)實(shí)現(xiàn),代價(jià)很高。采用浮點(diǎn)類型進(jìn)行編程將產(chǎn)生十分龐大的代碼,而且在循環(huán)計(jì)算中勢(shì)必影響系統(tǒng)的效率和性能。采用IQmath庫(kù)可以將浮點(diǎn)算法轉(zhuǎn)換為定點(diǎn)數(shù)算法,這樣運(yùn)算速度可以明顯提高,這對(duì)實(shí)時(shí)性要求很好的運(yùn)動(dòng)控制系統(tǒng)的設(shè)計(jì)十分有效。利用IQmath庫(kù)實(shí)現(xiàn)PARK變換的程序段如下:

圖3是利用Embedded Target for TI C2000 DSP集成開(kāi)發(fā)工具對(duì)IQmath庫(kù)編寫(xiě)的SVPWM程序計(jì)算PWM占空比的波形圖。
5 結(jié)論
利用IQmath庫(kù)可以在32位定點(diǎn)處理器TMS320F2812上實(shí)現(xiàn)浮點(diǎn)算法與定點(diǎn)算法之間的無(wú)縫連接,能夠極大地增強(qiáng)定點(diǎn)DSP的運(yùn)算能力;在不犧牲時(shí)間周期的情況下可以實(shí)現(xiàn)高計(jì)算,能夠快速地完成對(duì)浮點(diǎn)算法的轉(zhuǎn)換、植入和執(zhí)行;還可以根據(jù)應(yīng)用系統(tǒng)不同要求相應(yīng)地調(diào)整運(yùn)算,比直接采用ANSI C語(yǔ)言相比效率更高。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 掌握 DSP:原理剖析與應(yīng)用實(shí)踐2025/5/8 14:03:24
- 模糊邏輯在 DSP 上實(shí)時(shí)執(zhí)行2023/7/25 17:13:30
- 多速率DSP及其在數(shù)模轉(zhuǎn)換中的應(yīng)用2023/6/12 15:28:52
- 使用 DSP 加速 CORDIC 算法2023/3/29 15:46:30
- 高速DSP系統(tǒng)的信號(hào)完整性2022/9/26 16:45:38
- 高速PCB信號(hào)完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對(duì)系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測(cè)試方法
- PCB電磁兼容(EMC)設(shè)計(jì)與干擾抑制核心實(shí)操規(guī)范
- 用于相位噪聲測(cè)量的低通濾波器設(shè)計(jì)與本振凈化技術(shù)
- MOSFET在高頻開(kāi)關(guān)中的EMI問(wèn)題
- 電源IC在便攜式設(shè)備中的設(shè)計(jì)要點(diǎn)
- 連接器結(jié)構(gòu)設(shè)計(jì)常見(jiàn)問(wèn)題分析









