浮點(diǎn)DSC使控制系統(tǒng)如虎添翼
掃描二維碼
隨時(shí)隨地手機(jī)看文章
DSC(Digitalsignalcontroller,數(shù)字信號(hào)控制器)是一種面向高端嵌入式系統(tǒng)的最先進(jìn)的單片控制處理器?;诟↑c(diǎn)架構(gòu)的DSC具有更快的處理速度,所需的程序儲(chǔ)存容量更少,支持更高級(jí)的有助于節(jié)省功耗的計(jì)算算法,同時(shí)進(jìn)一步擴(kuò)展了系統(tǒng)的性能。浮點(diǎn)編程比定點(diǎn)編程的速度更快,SoC(system-on-a-chip,片上系統(tǒng))的集成方式能夠有效控制板級(jí)空間、元件數(shù)量和整體系統(tǒng)開銷。
隨著嵌入式系統(tǒng)承擔(dān)的任務(wù)越來(lái)越復(fù)雜,不論是降低功耗還是實(shí)現(xiàn)諸如汽車導(dǎo)航之類的新功能,它們都需要具有更高性能的控制處理器。降低能耗的迫切需求影響到了我們使用的各種設(shè)備,包括一些用戶不常見的設(shè)備。例如,根據(jù)著名的能源與自動(dòng)化技術(shù)供應(yīng)商ABB集團(tuán)的分析,工業(yè)電機(jī)消耗的電能已經(jīng)達(dá)到了整個(gè)行業(yè)所用電力的三分之二。雖然可以采用變速控制技術(shù)進(jìn)一步提高電機(jī)的運(yùn)行效率,但是目前只有二十分之一的電機(jī)真正采用了支持這一功能的數(shù)控電子技術(shù)。盡管如此,變速電機(jī)相比同類的定速電機(jī)每年節(jié)省的電能相當(dāng)于10座電廠的產(chǎn)量,而這10座電廠會(huì)排放約6800萬(wàn)噸二氧化碳?xì)怏w。顯然,高級(jí)電機(jī)控制技術(shù)在降低能耗和保護(hù)環(huán)境方面具有
更大的優(yōu)勢(shì)。
引入高級(jí)控制技術(shù)降低能耗
可再生能源,例如太陽(yáng)能電池和風(fēng)力渦輪機(jī),也是需要采用高級(jí)控制技術(shù)的“綠色”能源。與電機(jī)一樣,這些能量收集裝置也需要采用高級(jí)數(shù)控技術(shù)以提高效率。為了將電池板或渦輪機(jī)產(chǎn)生的原始電能實(shí)時(shí)轉(zhuǎn)換成用于電池儲(chǔ)存或設(shè)備運(yùn)行所需的合適電能,我們必須采用一定的控制技術(shù)。由于太陽(yáng)光和風(fēng)力強(qiáng)度會(huì)不斷變化,因此需要采用復(fù)雜的算法確保它們始終能夠輸出最大的能量;由于很多可再生能源系統(tǒng)都會(huì)同時(shí)接入電網(wǎng),所以采用實(shí)時(shí)控制技術(shù)對(duì)于保護(hù)設(shè)備也是必需的。
圖1F28335浮點(diǎn)DSC內(nèi)含一個(gè)用于處理數(shù)據(jù)傳輸?shù)?通道DMA控制器
例如,TI公司推出的F283x浮點(diǎn)DSC(如圖1所示)具有性能高、軟件開發(fā)方便等特性,適用于電機(jī)與運(yùn)轉(zhuǎn)控制、車載雷達(dá)系統(tǒng)和以太陽(yáng)能電池陣列和風(fēng)力渦輪為來(lái)源的可再生能源生成系統(tǒng)。這款32位的DSC系列處理器最高工作頻率可達(dá)150MHz,峰值運(yùn)算速度可達(dá)每秒3億次浮點(diǎn)操作(MFLOPS)。
相比定點(diǎn)DSCTMS320F28x而言,采用浮點(diǎn)架構(gòu)之后DSC性能提升了50%。這一系列DSC內(nèi)含一個(gè)6通道DMA控制器,能夠大大減輕處理器核的數(shù)據(jù)傳輸管理工作,其軟件更新功能有助于用戶更方便地開發(fā)同一來(lái)源的浮點(diǎn)和定點(diǎn)代碼。
浮點(diǎn)運(yùn)算
F283x系列DSC的主要性能優(yōu)勢(shì)歸因于它的數(shù)值計(jì)算格式,這種格式大大簡(jiǎn)化了編程,減少了代碼執(zhí)行時(shí)間,縮短了代碼長(zhǎng)度。在其他一些DSC和DSP芯片中普遍的采用定點(diǎn)格式只能夠表示整數(shù)(沒有小數(shù)點(diǎn)的正數(shù)和負(fù)數(shù)),因此涉及小數(shù)計(jì)算時(shí)必須采用其他表示方法。相反,浮點(diǎn)格式能夠表示更大范圍內(nèi)的實(shí)數(shù)(帶小數(shù)點(diǎn)的數(shù))。內(nèi)部表示小數(shù)以及較寬的數(shù)值范圍意味著處理器能夠更高效地執(zhí)行定標(biāo)運(yùn)算(例如控制算法中常見的乘法、除法和三角函數(shù)運(yùn)算)。
圖2F283x的32位字長(zhǎng)的前8位用于表示指數(shù)
對(duì)于32位的定點(diǎn)架構(gòu),其表示整數(shù)的范圍為-231~231,帶一個(gè)符號(hào)位。盡管這個(gè)范圍很大,但是當(dāng)系統(tǒng)執(zhí)行大量定標(biāo)運(yùn)算時(shí),這一數(shù)值范圍會(huì)很快用光,造成數(shù)值超過(guò)32位,從而發(fā)生寄存器溢出。程序通過(guò)對(duì)這種數(shù)值進(jìn)行舍入或截取,能夠處理這種稱為飽和的問題,但是犧牲了計(jì)算的精度。另外,程序可以將較長(zhǎng)的數(shù)劃分成多個(gè)較短的能夠逐段計(jì)算的數(shù),每次處理32位。后面這種實(shí)現(xiàn)方法能夠保持全精度,但是由于處理器忙于移動(dòng)和存儲(chǔ)數(shù)值段,計(jì)算性能降低了。同時(shí),程序規(guī)模也會(huì)由于所需的額外指令而增大了。
在這種情況下,浮點(diǎn)架構(gòu)就顯示出了其性能價(jià)值。如圖2所示,在F283x中,32位字長(zhǎng)的前8位用于表示指數(shù),其余23位用于表示尾數(shù),1位用作符號(hào)位。盡管指數(shù)沒有符號(hào)位,但是在操作上對(duì)保存的指數(shù)進(jìn)行規(guī)格化偏移處理,使得指數(shù)最終能夠覆蓋負(fù)數(shù)和正數(shù)的范圍。
這樣,存儲(chǔ)在32位浮點(diǎn)字中的數(shù)的規(guī)格化范圍為±1.738~±3.438,大大超過(guò)32位定點(diǎn)數(shù)的范圍。由于負(fù)指數(shù)表示分?jǐn)?shù),所以這一范圍涵蓋了極小的數(shù)到極大的數(shù)。這樣大的范圍很難再出現(xiàn)飽和的問題,因此,程序就避免了要么通過(guò)舍入或截取犧牲精度,要么通過(guò)使用附加周期和指令對(duì)大數(shù)值進(jìn)行分段處理而犧牲性能和存儲(chǔ)的兩難問題。
處理器性能增強(qiáng)
表1中列出的運(yùn)算說(shuō)明了浮點(diǎn)架構(gòu)為DSC性能帶來(lái)的好處。第一列是控制系統(tǒng)常用的四種算術(shù)運(yùn)算、三角函數(shù)運(yùn)算和兩種算法(快速傅里葉變換和無(wú)限沖擊響應(yīng))。
表1定點(diǎn)及浮點(diǎn)架構(gòu)性能基準(zhǔn)測(cè)試比較
第二列是在定點(diǎn)DSC上執(zhí)行相應(yīng)運(yùn)算所需的周期數(shù),第三列是在浮點(diǎn)DSC上執(zhí)行所需的周期數(shù)。最后一列是第二列與第三列結(jié)果的比值,表示二者的相對(duì)性能。浮點(diǎn)處理器執(zhí)行所列數(shù)學(xué)運(yùn)算的速度比定點(diǎn)處理器快2~3倍,執(zhí)行FFT算法的加速性能也在該范圍內(nèi),IIR的加速性能稍低,但仍比定點(diǎn)處理器快。
一般來(lái)說(shuō),控制算法比信號(hào)處理算法能夠獲得更高的性能提升,因?yàn)榭刂拼a執(zhí)行的基本數(shù)學(xué)運(yùn)算較多,需要進(jìn)行定點(diǎn)換算和飽和處理。即便如此,浮點(diǎn)架構(gòu)得到的周期數(shù)也低得多,對(duì)所有信號(hào)處理測(cè)試程序平均獲得了50%的性能提升。
在各種應(yīng)用中,這些基準(zhǔn)測(cè)試程序變換成很多具體的應(yīng)用程序。精細(xì)、多維控制技術(shù)可應(yīng)用于機(jī)器人的和CNC(計(jì)算機(jī)數(shù)控)類的設(shè)備。伺服電機(jī)驅(qū)動(dòng)器的效率將會(huì)得到進(jìn)一步提高,能夠?qū)崿F(xiàn)PLC(電力線控制)和其他一些高級(jí)算法。太陽(yáng)能與風(fēng)能逆變器和不間斷電源能夠獲得更高的能量轉(zhuǎn)換效率,進(jìn)一步降低每千瓦電能的生產(chǎn)成本,并且能夠控制不同配置的太陽(yáng)能板陣或風(fēng)力渦輪機(jī)。
軟件開發(fā)的優(yōu)勢(shì)
浮點(diǎn)格式也有利于簡(jiǎn)化代碼的編寫和調(diào)試。浮點(diǎn)數(shù)字表示法對(duì)于數(shù)學(xué)運(yùn)算相比定點(diǎn)表示法更加自然,因此對(duì)高級(jí)語(yǔ)言的支持更加直接。當(dāng)代碼經(jīng)過(guò)編寫和驗(yàn)證調(diào)試之后,可以直接導(dǎo)入浮點(diǎn)DSC進(jìn)行進(jìn)一步的測(cè)試和最終的生產(chǎn)。
相比之下,在針對(duì)定點(diǎn)控制器開發(fā)代碼的時(shí)候,必須在PC上編寫和調(diào)試程序進(jìn)行驗(yàn)證,然后還要根據(jù)更嚴(yán)格的硬件定點(diǎn)表示方法重新編寫代碼。這大大增加了代碼的開發(fā)周期,而且一旦對(duì)代碼進(jìn)行轉(zhuǎn)換之后無(wú)法進(jìn)行回退。
一般地,開發(fā)人員不得不同時(shí)編寫定點(diǎn)的代碼和浮點(diǎn)的代碼,這就存在可能相互混淆的危險(xiǎn)。F283x控制器只需要開發(fā)浮點(diǎn)代碼,從而大大簡(jiǎn)化了代碼開發(fā)過(guò)程,節(jié)省了開發(fā)時(shí)間,提高了軟件可靠性。
在存在成本約束的情況下,可以先以浮點(diǎn)控制器為開發(fā)平臺(tái)進(jìn)行原型和早期版本的設(shè)計(jì),然后改用定點(diǎn)控制器進(jìn)行量產(chǎn)制造,采用這一開發(fā)策略具有明顯的優(yōu)勢(shì)。采用C編譯器和IQMath工具能夠很方便地編譯浮點(diǎn)和定點(diǎn)兩種方式下同樣的源碼,從而支持這一策略。F283xDSC是一種經(jīng)濟(jì)的控制器解決方案,它是業(yè)界第一款采用SoC集成的浮點(diǎn)控制器。隨著浮點(diǎn)架構(gòu)與定點(diǎn)架構(gòu)的成本交叉點(diǎn)上升到越來(lái)越高的水平,很多高級(jí)系統(tǒng)為了節(jié)省成本不必進(jìn)行改動(dòng)。性能更高、開發(fā)更容易的浮點(diǎn)架構(gòu)成本已經(jīng)能夠?yàn)樵絹?lái)越多的應(yīng)用所接受,促使人們?cè)谇度胧较到y(tǒng)控制領(lǐng)域不斷進(jìn)行創(chuàng)新研發(fā)。