利用低功耗微控制器開發FFT應用

2020-12-06 電子產品世界

  1 概述

本文引用地址:http://www.eepw.com.cn/article/79625.htm

  如今的低功耗微控制器(μC)也開始集成原先只存在於大型微處理器、ASIC和DSP中的外設功能,使我們有可能以很低的功耗實現複雜的算術運算。本文討論一種快速傅立葉變換(FFT)應用,並在一個含有單周期硬體乘法器的低功耗μC上實現該應用。這個FFT應用實時計算一路輸入電壓(圖l中VIN)的頻譜。為完成該任務,用一片模數轉換器(ADC)對VIN進行採樣,獲得的採樣傳送給μC。然後,μC對這些採樣執行256點FFT運算,獲得輸入電壓的頻譜。為便於檢測,μC將計算出的頻譜數據傳送給PC,由PC實時顯示出來。

  該FFT應用的固件針對MAXQ2000系列中的一款16位、低功耗μC用C語言編寫。有興趣的讀者可以下載該項目的固件和電路原理圖(http:∥www.maxim -ic.corn.cn/images/appnotes/3722/3722Firm -ware.zip)。編寫FFT代碼絕非易事。低功耗μC的一些局限又進一步使該任務複雜化。

  存儲器:我們所選的μC有2 kB的RAM。已經知道該算法需要用到2N個16位變量來存儲FFT數據,這樣,μC可以執行N最高為512的FFT。然而,固件的其他部分也要用到一些RAM。因此,在此項目中,限制N於256。若採用16位變量來表示每個值的實部和虛部,FFT數據總共需要1 024位元組的RAM。

  

  速度:低功耗μC儘管具有高MI/s/mA性能,仍然需要一些優化手段來使運行FFT的指令數儘可能少。好在本應用所用的C編譯器(IAR的Em-bedded Workbeneh for MAXQ,見www.iar.com)可提供多種級別的優化和設置。高效地使用硬體乘法器可使代碼優化到可以接受的水平。

  無浮點能力:所選的μC不具備浮點能力(低功耗產品一般都不具備浮點能力)。因此,所有運算都必須採用定點算法。為了表示小數,固件採用帶符號的Q 8.7表示法。這樣,在固件中假定:

  ●第O位至第6位代表小數部分;

  ●第7位至第14位代表整數部分;

  ●第15位代表符號位(二的補碼)。

  這樣的安排對於加法和減法沒有影響,但在做乘法時必須注意將數據按照Q8.7格式對齊。

  

  所選的數據表示法還要適應FFT算法可能遇到的最大數值,同時又要提供足夠的精度。例如,我們的ADC可提供帶符號的8位採樣,以二的補碼表示。如果輸入為最大幅度(對於帶符號8位採樣為127)的直流電壓,則其能譜全部包含於X(0)中,用Q8.7表示為32 512。這個數值能夠用單個帶符號的16位數據表示。

  2 固件

  以下部分討論在低功耗μC上執行Radix-2FFT的固件實現。信號採樣由ADC讀出後被存儲在x_n_re數組中。這個數組代表X(n)的實部。虛部存儲在x_n_im數組中,在開始運行FFT前初始化為零。完成FFT後,計算結果取代原始採樣數據,被存儲在x_n_re和x_n_im中。

  2.1 獲取採樣

  FFT算法假定採樣是以固定的取樣頻率獲得的。在為FFT獲取採樣時如果不加小心將會產生一些問題。例如,採樣間隔的抖動就會給FFT結果引入誤差,應盡力減小。

  

  清單1.兩種ADC採樣偽碼算法

  ADC採樣循環中的判決語句會造成採樣間隔的抖動。例如,系統從ADC讀取帶符號的8位採樣,並將其存儲在一組16位變量中。程序清單1中給出了兩種偽碼算法,執行ADC讀取-存儲功能。算法l給出的方法會造成採樣間隔的抖動,因為負採樣比正採樣需要更多的時間來讀取並存儲。

  2.2 三角函數表

  本FFT算法通過查表(LUT)而非計算得到正弦或餘弦函數值。程序清單2給出了對於正弦和餘弦LUT的聲明。實際固件的注釋中包含了自動生成這些LUT的原始碼,可由程序調用。兩個LUT均含有N/2分量,因為旋轉因子的索引號變化範圍為0至N/2-1(見圖2)。

  

  

  這些LUT中的數組被聲明為const,強制編譯器將它們存儲於代碼空間而非數據空間。由於LUT數值須採用Q8.7表示法,它們由正弦和餘弦的實際值乘以27後得到。

  2.3 位反轉

  位反轉排序(N已知)可在運行時通過計算、查表或直接利用展開循環編寫。所有這些方法都需要在原始碼的尺寸和運行速度間進行折衷。本FFT應用利用展開循環進行位反轉,其原始碼較長,但運行速度快。程序清單3顯示了該展開循環的實現。本應用固件的注釋中包含了用於程序自動生成展開循環的原始碼。

  

  清單3.用於實現N=256的位反轉的展開循環

  2.4 Radix-2 FFT算法

  採樣按照位反轉方式重新排序後就可進行FFT運算了。本Radix-2 FFT應用的固件通過三個主循環執行圖2所示的蝶型運算。外循環計數log2(N)級FFT運算。內循環執行每一級的蝶型運算。

  

  FFT算法的核心部分是執行蝶型運算的一小塊代碼。程序清單4給出了這一塊代碼,遺憾的是,它是本應用中唯一「不可移植」的固件。宏MUL_1和MUL_2利用C的硬體乘法器執行單指令周期乘法運算。這些宏的內容專用於MAXQ2000,可在實際固件中全部看到。

  2.5 複數的極坐標轉換

  為了便於確定VIN頻譜的幅度,必須將複數形式的X(K)轉換為極坐標形式。實現該轉換的固件示於程序清單5。幅度值取代了原始的FFT結果,因為固件不再需要這些數據。

  

  頻譜幅度通過一個二維LUT查表得到。第一索引為頻譜實部的高4位(MSB),第二索引為頻譜虛部的高4位。為得到這些數據,可將帶符號的16位數據右移11次。在從頻譜的實部和虛部取得索引號前,需首先將它們轉換為絕對值。因此,符號位為零。

  頻譜的幅度是關於X(N/2)對稱的,因此只需將前(N/2)+1個頻譜數據轉換為極坐標形式。還有,我們可以看到,對於實數輸入採樣,X(0)和X(N/2)的虛部總為零,因此這兩條譜線的幅度被單獨計算。本項目實際固件的注釋中包含了用於自動生成該LUT的原始碼,可由程序調用來計算X(k)的幅度。

  2.6 Hamming或Hann窗

  此項目固件還包括了對輸入採樣加Hamming或Hann窗的LUT(Q8.7格式)。加窗函數可有效降低對時域採樣X(n)的捨入操作所引起的頻譜洩漏。Hamming和Hann窗函數分別如式l和2所示。

  

  程序清單6給出了實現這些函數的代碼。同樣,本項目實際固件的注釋中包含了用於自動生成這些LUT的原始碼,可由程序調用來實現這些窗函數。

  

  

  

  3 測試結果

  為了測試該FFT應用的性能,固件將X(K)幅度通過μC的UART埠上傳給PC。專門編寫的FFTGraph軟體(隨該項目固件一起提供)用於從PC串口讀取這些幅值,並以圖形方式實時顯示頻譜。圖3顯示了μC以200 kS/s採樣四種不同輸入信號並處理後,由FFT Graph所顯示出來的結果。

相關焦點

  • 基於MSP430系列微控制器的FFT算法實現
    TI公司的MSP430系統微控制器具有功耗低、供電範圍寬及外圍模塊齊全等特點,適合實現各種監測設備。本文引用地址:http://www.eepw.com.cn/article/201610/307878.htm關鍵詞:MSP430;快速傅立葉變換;存儲器;微控制器隨著各種電力電子裝置在電力系統越來越廣泛的應用,其非線性的特點使得供電中的諧波失真問題日益嚴重。
  • 利用精密模擬微控制器ADuC7024 和 數字加速度計ADXL345 檢測低g...
    電路功能與優勢 ADXL345 是一款小巧纖薄的低功耗三軸加速度計,可以對高達±16 g的加速度進行高解析度(13 位)測量。
  • 微控制器降低掩膜ROM功耗 縮短快閃記憶體周轉時間
    瑞薩所有未來推出的4位和8位微控制器都將是配備片上QzROM的器件。本文引用地址:http://www.eepw.com.cn/article/80566.htm  新型片上存儲器有助於降低成本並可快速交付定製編程的微控制器  嵌入式系統市場的擴大增加了對能夠降低成本而且有助於產品迅速投入量產的微控制器的需求。
  • 超低功耗浮點DSP TMS320C6745/47的特點性能及應用範圍
    德州儀器(TI)日前發布的兩款超低功耗浮點DSP──TMS320C6745、TMS320C6747,以及一款結合ARM應用處理器與浮點DSP的OMAP-L137。三款組件均以TI C674x DSP核心為基礎,具備浮點優勢與過去定點裝置獨具的聯機外圍、低功耗及低成本等特性。 新的C6745、C6747 DSP及OMAP-L137應用處理器包含USB 2.0/1.1、10/100乙太網絡及多媒體適配卡/安全數字(MMC/SD)外圍,開發人員可輕鬆地在設計中加入聯機功能選項。
  • 低功耗、小尺寸電子紙顯示解決方案
    目前在開發中的電子紙顯示技術主要分為四種:首先是電泳顯示技術(EPD);其次是電子粉流體顯示技術(QR-LPD);再次是膽固醇液晶顯示技術(Ch-LCD);最後是雙穩態向列液晶顯示技術(Bi TNLCD)。而商業化程度最好的技術主要是電泳顯示技術(EPD)。
  • 採用EFM32微控制器設計主動快門式3D眼鏡
    打開APP 採用EFM32微控制器設計主動快門式3D眼鏡 電子設計 發表於 2018-09-11 07:33:00 系統結構 EFM32是由挪威Energymicro公司採用ARM Cortex-M3內核設計而來的高性能低功耗32位微控制器。它具有突出的低功耗特性,適用於"三表"(電錶、水/熱表、氣表)、工業控制、警報安全系統、健康與運動應用系統、手持式醫療設備、智能家居控制以及對功耗有非常苛刻要求的領域。
  • ...憑業界領先能力推出適用於微控制器和多核應用的Nucleus RTOS
    軟體開發人員首次可以使用單一的嵌入式作業系統,通過整個ARM內核的內存分區來提高系統可靠性,促進整個產品系列(包括高低端設備)的代碼復用。新版本增加了一個多核框架,可管理進程間通信(IPC)和複雜異構片上系統(SoC)的處理器生命周期,並增加了利用Imagination和Vivante GPU 的支持的加強型Nucleus RTOS圖形功能。
  • 一種基於MSP430的超低功耗電子溫度計的設計
    該溫度計帶電子時鐘,其檢測範圍為l0℃~30℃,檢測解析度為1℃,採用LCD液晶顯示,整機靜態功耗為0.5μA。其系統設計思想對其它類型的超低功耗微型可攜式智能化檢測儀表的研究和開發,也具有一定的參考價值。1元器件選擇  本系統的溫度傳感器可選用熱敏電阻。
  • 瑞薩電子RA產品家族新增超低功耗RA2L1 MCU產品群
    瑞薩電子RA產品家族新增超低功耗RA2L1 MCU產品群,具有高級電容式觸摸感應功能,打造經濟節能的IoT節點HMI應用 基於32位Arm Cortex-M23的MCU,通過靈活的電源配置,提供同類產品中一流的低功耗,可在多種應用中降低平均功耗。
  • Dialog半導體推出超小藍牙低功耗SoC及模塊,連接未來十億IoT設備
    Dialog半導體公司(德國證券交易所交易代碼:DLG)今日宣布,推出全球尺寸最小、功率效率最高的最新藍牙5.1 SoC DA14531及其模塊,簡化了藍牙產品的開發,推動藍牙低功耗(BLE)連接技術實現更廣泛的應用。
  • Solarflare 推出低延遲、低功耗10-GbE控制器SFL9022、SFL9021和...
    Solarflare 推出低延遲、低功耗10-GbE控制器SFL9022、SFL9021和SFC9020      SFL9022、SFL9021和SFC9020 10-GbE控制器提供晶片上完整
  • 電池美國大學利用超低功耗電壓檢測晶片延長電池壽命,減小電池尺寸
    還可用於消除待機功耗,如研究人員將該電壓檢測器用於電視機,結果顯示電視機待機期間沒有連續的輸出功率。此實驗中,電壓檢測器直接利用標準電視控制器的紅外信號進行遠距離供電。圖 超低功耗UB20M電壓檢測晶片   電子傳感器需要能量來檢測和反映。而當前的一些安全警報、行動監測、物聯網設備等中,用於維持設備活躍和監測的耗能非常大。
  • 無線充電qi協議的主控制器的低功耗設計
    針對Qi wirelesspower transfer version 1.1.2,採用格雷碼的編碼方式,二級門控時鐘,多閾值電壓以及低功耗計數器等功耗優化技術,使得該協議中主控制器的功耗降低了30%。
  • 關於寬帶電力線通信晶片的低功耗設計
    關於寬帶電力線通信晶片的低功耗設計 工程師吳畏 發表於 2018-07-05 11:37:00 0 引言 電力線通信(PLC)是指利用電力線傳輸數據和媒體信號的一種通信方式,主要應用場景有3種:寬帶網絡接入、
  • 瑞薩電子RA產品家族新增超低功耗RA2L1 MCU產品群,具有高級電容式...
    原標題:瑞薩電子RA產品家族新增超低功耗RA2L1 MCU產品群,具有高級電容式觸摸感應功能   全球半導體解決方案
  • 剖析風扇速度控制器原理
    在很多應用中使用風扇來降溫,但風扇會帶來機械故障,增加功耗和噪聲。因此,應當對風扇速度進行監測和控制以解決這些問題,從而使風扇工作更可靠,功耗和噪聲更低。 由於直流無刷風扇易用、可靠,因此是大部分電子產品的首選方案。它是一個兩端器件,加上直流電壓即可工作。其直流電壓電壓有5V,12V,24V和48V,目前選和的12V風扇較多。隨著12V電源的減少,5V風扇的用量將會增加。
  • 信號和電源隔離RS-485現場總線的高速或低功耗解決方案
    ADI公司的iCoupler®數字隔離器和RS-485收發器產品系列解決了工業應用中的兩大需求:更高的數據速率和更低功耗的工作模式。DiDednc對於高性能電機控制編碼器應用而言,通常需要更高的數據速率、更小的RS-485收發器封裝和IEC 61000-4-2 ESD保護。
  • 基於ARM Cortex3的低功耗無源USB-CAN透明傳輸的實現
    2.2 開發需求概述本項目開發的上位機平臺是WINDOWS系統下的MDK開發編譯環境。硬體平臺為具有很強低功耗和處理能力的ARM Cortex3內核LM3S5956微處理器。為方便通信測試,上位機需要安裝相關數據監測軟體。
  • ADI:4-20mA低功耗、14位、過程控制電流環路發送器
    打開APP ADI:4-20mA低功耗、14位、過程控制電流環路發送器 亞德諾半導體公司 發表於 2014-04-28 10:40:31
  • 第六講 DSP在雷達信號處理中的應用
    本文重點介紹通用dsp在雷達信號處理系統中的典型應用,以及研製基於dsp的雷達信號處理系統的關鍵技術。本文引用地址:http://www.eepw.com.cn/article/20739.htm dsp在雷達信號處理中的典型應用 作為面向數位訊號處理的可編程嵌入式處理器,dsp具有高速、靈活、可靠、可編程、低功耗、接口豐富、處理速度快、實時性好等特點。