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