讓微控制器性能發(fā)揮極限的方法
如何獲得更高的精度
下面以一個(gè)電源管理任務(wù)在驅動(dòng)電機等大負載時(shí)實(shí)現交流電源效率的最大化為例,來(lái)說(shuō)明固定性如何影響精度。因為大部分可用能量都在電壓處于峰值并與電流同相時(shí)供應,所以這時(shí)系統的電流消耗量應該最大。反之,電壓越接近零(即過(guò)零點(diǎn)),可用電能就越少,而效率也越低。利用功率因數校正(PFC),通過(guò)接入和斷開(kāi)大電容,調節負載保持交流電流和電壓同相,便可以提高功效。
比較器一般用于過(guò)零檢測,當電壓下降至設定閾值以下或上升至閾值以上時(shí),比較器便會(huì )接通。相對于使用比較器觸發(fā)中斷并驅使CPU開(kāi)關(guān)電容的情況,事件系統可以把比較器事件直接發(fā)送到定時(shí)器/計數器輸出,無(wú)需CPU干預即可控制開(kāi)關(guān)。
低優(yōu)先權任務(wù)(如PFC)的中斷延時(shí)可能需要數千個(gè)周期,而具體延時(shí)取決于有多少個(gè)優(yōu)先權更高的中斷同時(shí)發(fā)生。延時(shí)較大意味著(zhù)電容會(huì )晚于最佳時(shí)刻開(kāi)關(guān),這會(huì )顯著(zhù)降低總體效率。相比之下,事件路由的延時(shí)最多兩個(gè)周期。
當把上面的數字跟微控制器的時(shí)鐘頻率一同考慮時(shí),便會(huì )發(fā)現如果微控制器的時(shí)鐘頻率為32MHz,一個(gè)雙周期延時(shí)所引入的誤差其實(shí)微不足道(2/32M);而數千個(gè)周期的延時(shí)則可能大大影響高頻任務(wù)(它們本身也需要每隔數千周期才會(huì )被處理)的精度。值得注意的是,若中斷是由優(yōu)先權較高的任務(wù)發(fā)出的,該延時(shí)可能降至50個(gè)周期左右。不過(guò),這樣一來(lái)會(huì )導致根據精度要求而不是根據系統功能的重要性來(lái)分配優(yōu)先權,而且這只是把缺乏固定性引起的誤差轉移給了其它任務(wù)而已。
更高的精度在產(chǎn)生信號時(shí)也起著(zhù)關(guān)鍵的作用,這里所指的并非單純的信號采樣。以創(chuàng )建100kHz波形為例,利用中斷,波形的精度將受相對于信號速率的可變延時(shí)的影響,并根據任務(wù)切換和已堆積的其它中斷數量而變得稍慢或稍快。注意,當波形平均而言準確時(shí),在許多情況下,影響只來(lái)自是兩個(gè)連續樣本之間的相對差異。
高頻信號處理
在大量嵌入式應用中,信號產(chǎn)生成為了一個(gè)越來(lái)越普遍的任務(wù)。信號用于產(chǎn)生聲音、管理電壓轉換調節器、控制工業(yè)應用中的致動(dòng)器,以及實(shí)現無(wú)數其它功能。信號的頻率越高,采用中斷時(shí)CPU上的負荷就越大,其他任務(wù)延時(shí)增加的可能性也越高。
對于發(fā)生頻率較高的事件而言,CPU負荷是一大考慮因素。例如,高速傳感器必須在下一個(gè)樣本準備好之前進(jìn)行采樣,以防丟失數據。以一個(gè)流量計多軸定位系統或一個(gè)擁有每秒采集200萬(wàn)個(gè)樣本采樣速度的快速精確測量能力的儀表系統為例,單是采集樣本,每秒便消耗了數十到數億個(gè)周期。而若采用一個(gè)事件系統和DMA控制器,所有這些周期都可從CPU卸載,而且這些樣本還會(huì )被實(shí)際處理,而不是簡(jiǎn)單地緩存。即使只是一個(gè)僅需要50個(gè)周期來(lái)完成、需要任務(wù)切換支出的簡(jiǎn)單任務(wù),也能夠從CPU卸載一億個(gè)周期。鑒于這個(gè)原因,許多系統都使用獨立的微控制器來(lái)管理各個(gè)高頻傳感器或電機。
對于頻率較高的任務(wù),事件系統和DMA控制器還能夠實(shí)現以下事項:
• 精確的時(shí)間戳((time-stamping):為采樣加上時(shí)間戳讓開(kāi)發(fā)人員能夠使信號更好地與外部事件同步。在雙周期延時(shí)的情況下,時(shí)間戳遠比標注中斷更精確,并可省去后者達數千個(gè)周期的延時(shí)。
• 過(guò)度采樣:提高傳感器分辨率的其中一個(gè)方法是過(guò)度采樣。譬如,把計數器除以16,可以使采樣樣本數目增加到16倍,從而提高傳感器的總體精度。由于CPU沒(méi)有直接參與樣本的采集和存儲,故有可能出現過(guò)度采樣,而無(wú)太多懲罰。
• 動(dòng)態(tài)頻率:某些應用只在某些時(shí)間或特定工作條件下才需要較高的感測精度。例如,水表在水流速度快速變化時(shí),采樣頻率會(huì )較高;而在流量被切斷或流速穩定時(shí),又回復正常頻率。采樣頻率不但易于調節,而且還不會(huì )影響即時(shí)響應能力。
• 降低堆棧大?。簻p少并行中斷數目的另一個(gè)好處是能夠維持較小的堆棧。由于每一個(gè)中斷都必須通過(guò)在堆棧中增加數十個(gè)寄存器來(lái)執行環(huán)境信息保存,因此消除了好幾個(gè)環(huán)境保存層,顯著(zhù)減低所需堆棧的大小,這將讓?xiě)媚軌蚴褂酶俚腞AM存儲器。
• 抗擴展能力:鑒于不同微控制器支持的外設數目不同,同一應用的中斷數目可能隨產(chǎn)品價(jià)格而各有不同。即便使用同一個(gè)微控制器系列,支持更多功能的較高端系統會(huì )有更多的中斷,降低了總體固定性。因此,把設計移植到集成度更高的微控制器,可能會(huì )影響信號延時(shí)乃至采樣和輸出的精度。
• 實(shí)現簡(jiǎn)易軟件改變:由于事件處理減少了CPU干預,所以系統可在不會(huì )影響實(shí)時(shí)響應的情況下實(shí)現軟件改變。即便需要更多的CPU時(shí)間來(lái)處理額外的功能,事件處理和響應時(shí)間也將完全相同。否則,就很難在產(chǎn)品使用壽命期間為即時(shí)應用實(shí)現軟件的改變。
自主控制
一個(gè)嵌入式微控制器可能要執行無(wú)數個(gè)任務(wù)來(lái)降低功耗、提高精度以及改善用戶(hù)體驗,而許多這類(lèi)任務(wù)只不過(guò)是監控或是檢測單個(gè)數值。例如電池監控器進(jìn)行監測,直至電壓降至某個(gè)數值以下。然后,系統就觸發(fā)關(guān)斷操作,在仍有足夠電量時(shí)保存應用數據。
提升用戶(hù)體驗常常是許多消費類(lèi)產(chǎn)品的主要賣(mài)點(diǎn)。例如,事件系統能夠加快系統對喚醒按鍵或外設輸入的響應速度,在兩個(gè)周期內就可以做出反應。如果與采用中斷的響應性比較,由于中斷需要系統返回到工作模式,因此就降低了能效?;谶@個(gè)原因,開(kāi)發(fā)人員常常延長(cháng)定時(shí)器的時(shí)間間隔,以致降低了響應性。
若利用中斷,對于CPU處理能力而言,執行這類(lèi)任務(wù)的成本太高,而且會(huì )增加延時(shí),降低固定性。而采用事件系統和DMA控制器,開(kāi)發(fā)人員就能夠避免CPU執行這些功能。這不僅可減少系統必須管理的中斷數量,而且還能簡(jiǎn)化任務(wù)的實(shí)現和管理。
例如,在一個(gè)在特殊工作條件下向用戶(hù)發(fā)出警示信息的應用中,預先設置的聲音文件可以存儲在緩存中,再利用DMA通過(guò)適當的外設饋入到揚聲器,而利用定時(shí)器,事件系統就可以確保44,056KHz的準確數據率。此外還有一個(gè)額外的好處,因為頻率準確且穩定,聲音保真度也得以提高。從性能角度來(lái)看,只要配置了DMA和事件系統,CPU就完全不用干預播放任務(wù)了。
說(shuō)這些任務(wù)變得更“自由”可能顯得有點(diǎn)夸張。不過(guò),以這種方式執行這些任務(wù),的確使其能夠適用于更寬范圍的應用。協(xié)處理器、DMA控制器和事件系統的結合能夠釋放控制器,讓它只進(jìn)行信號處理,而不必把大部分資源消耗在信號的周期密集型采集工作上。因此,CPU得以保存大部分處理能力進(jìn)行信號處理。這樣一來(lái),就可以利用單個(gè)控制器管理多個(gè)高頻任務(wù)。這也簡(jiǎn)化了系統設計,使用戶(hù)能夠以更低的成本在單個(gè)微控制器上執行更多任務(wù),更容易實(shí)現多個(gè)信號之間的互連性,并提高能效。
對許多應用來(lái)說(shuō),能否支持多個(gè)任務(wù)可成為一項重要的產(chǎn)品差異化指標。例如,采用了DMA控制器和事件系統的電機控制應用,就能夠使微控制器釋放出足夠的資源,使開(kāi)發(fā)人員能夠以在不增加系統材料成本的條件下實(shí)現PFC等先進(jìn)功能。
除了通過(guò)卸載中斷來(lái)提高微控制器的性能和能力之外,事件系統還能夠把功耗最低降至1/7(具體數字取決于應用)。表2所示為一個(gè)需要每秒120萬(wàn)周期的應用的功率相關(guān)數據。在12MHz時(shí),微控制器只有10%的時(shí)間在工作模式下,其余時(shí)間都處于待機模式。執行DMA控制器和事件系統可以卸載大量CPU每秒必須執行的周期數,使微控制器進(jìn)入閑置或睡眠模式。鑒于工作模式下的耗電量遠大于閑置睡眠模式下的,就算工作模式只出現少許百分比變化,所能節省的功率也可以是相當可觀(guān)的。
表2 一個(gè)需要每秒120萬(wàn)周期的應用的功率相關(guān)數據

總結
架構方面的改進(jìn)提高了CPU的總體能力,使得嵌入式微控制器系統性能不斷提升。協(xié)處理器能夠從CPU卸載已詳細定義的計算密集型任務(wù),DMA控制器可把整個(gè)系統的數據移動(dòng)任務(wù)從CPU中解放出來(lái),而事件系統可解決有關(guān)多個(gè)由頻率觸發(fā)中斷的瓶頸問(wèn)題。通過(guò)減少系統必須處理的并行中斷的數目,開(kāi)發(fā)人員能夠提高系統固定性,從而降低延時(shí),提高信號的分辨率和精度,改善穩定性和可預測性,并增強系統可靠性。這樣一來(lái),設計人員不但使用單個(gè)微處理器就能夠執行以往需要多個(gè)微控制器才能完成的工作,而且還可降低系統的成本和功耗。本文引用地址:http://dyxdggzs.com/article/149822.htm
評論