數字信號處理 (DSP) 為開發人員提供了以靈活且經濟高效的方式清理和分析復雜信號的能力,這一切都來自軟件。當開發人員通常考慮 DSP 時,他們通常會想到昂貴的專用處理器,但現代微控制器(例如 Arm Cortex-M 處理器)現在包含 DSP 擴展,允許 DSP 算法在資源受限的環境中高效執行。在本文中,我們將探討嵌入式開發人員在開始使用 Arm Cortex-M 處理器的 DSP 時可以遵循的幾個技巧。
技巧1 – 了解問題域
在深入了解 DSP 之前,開發人員了解可以應用 DSP 的問題領域是很有用的。通常,DSP 應用于實時流式傳輸的數據信號,例如音頻和語音處理,或靜態信號,例如圖像處理。DSP 應用范圍廣泛,例如聲納、雷達、語音識別、電信和控制系統等。
DSP 在嵌入式系統中有幾個非常常見的應用。首先,DSP 可用于將傳統模擬電路轉換為軟件,這有很多好處。接下來,DSP 可用于創建數字濾波器,例如無限脈沖響應 (IIR) 和有限脈沖響應 (FIR) 濾波器。這些濾波器經常用于控制系統,例如電機控制系統,以消除傳感器信號中的噪聲。最后,開發人員可以使用 DSP 使用Fast Fourier Transform (FFT) 將時域中的信號轉換為頻域,從而分析信號的頻率分量。
技巧2 – 探索最新的 DSP 技術
了解 DSP 為當今設計人員提供的功能的一個好方法是檢查 DSP 技術的使用位置和方式。讓我們先看看一些工具,然后是尖端應用程序。
首先,有允許開發人員模擬、測試和部署 DSP 算法的高級工具,例如 MATLAB。MATLAB 為設計人員提供了一組 DSP 庫,這些庫可以組合在一個易于使用的界面中,以便在將算法部署到目標設備之前測試其行為方式。該工具還允許嵌入式開發人員生成在目標設備上執行的低級微控制器代碼。MATLAB 功能廣泛,可用于解決任意數量的 DSP 相關問題。
其次,還有一些工具,例如 ASN 濾波器設計器,允許開發人員輕松創建數字濾波器。開發人員可以選擇他們想要創建的濾波器類型,例如 IIR 或 FIR,然后在濾波器圖上的點周圍拖動以獲得他們需要的濾波器響應。一旦實現了濾波器響應,設計人員就可以生成以多種不同格式實現濾波器的代碼,包括與 Cortex-M CMSIS 兼容的代碼。
除了這些工具,開發人員還可以檢查應用程序的用途,以深入了解如何使用 DSP。使用 DSP 的真正獨特的解決方案是 Chirp。Chirp 使用音頻將憑證信息從移動設備傳輸到邊緣設備以進行配置。這消除了配置物聯網邊緣節點所需的所有額外步驟,這些步驟通常需要按住按鈕一段時間,將其轉換為接入點,連接到它,然后告訴它應該連接到哪個網絡。Chirp 創新性地使用 DSP 將配置信息轉換為音頻流,所有這些都通過 DSP 算法進行處理,大大簡化了設備設置。
這些只是可用于 DSP 的工具和技術的幾個示例,但嵌入式開發人員可以探索數百種工具和技術。
技巧3 – 選擇一個低成本的開發板進行試驗
開始使用DSP的最佳方式是親自動手。這可以通過選擇具有支持DSP擴展的 Cortex-M4處理器的開發板來完成。有很多板可供選擇,比如基于S6E2CC系列微控制器的Cypress FM4入門套件和ST Microelectronics STM32F4-Discovery板。
FM4入門套件非常適用于Donald S. Reay的示例,也可用于Arm的大學計劃。STM32F4-Discovery板還有一個很棒的應用筆記,演示了Arm CMSIS 庫。開發板還帶有一個 LCD,可以讓開發人員輕松顯示轉換和信號。
無論選擇哪種開發板,重要的是獲得實踐經驗,而不僅僅是書本知識,才能成為精通的DSP開發人員。
技巧4 – Arm CMSIS-DSP 庫
開發人員在開始使用 DSP 時可以利用的最佳資源之一是使用Arm CMSIS-DSP 庫。CMSIS-DSP 庫可以免費下載,包含 60 多種不同的 DSP 相關函數。這些函數旨在為嵌入式開發人員提供在 Cortex-M 處理器上開發快速高效的 DSP 算法所需的構建塊。該庫包含十種不同類別的函數,其中包括:
基本數學函數,例如向量點積、向量乘法、向量加法
快速數學函數,例如平方根、正弦和余弦
復雜的數學函數,例如復雜點積、復數乘實乘法
濾波器,例如 FIR、IIR、Biquad 和 Convolution
矩陣函數,如矩陣乘法、復矩陣乘法
變換,例如復雜 FFT 函數
電機控制功能,包括矢量克拉克變換、矢量帕克變換、PID 電機控制
統計函數,包括均方根 (RMS)、標準偏差、最大值和功率
支持功能,例如將數據類型從浮點數轉換為定點數
插值函數。
選擇開發板進行試驗后,下載 CMSIS-DSP 庫是很好的第二步。
技巧5 – 參與DSP社區
開始使用DSP時,有許多在線資源可供選擇,但嵌入式開發人員可用的最佳資源之一是在線社區。社區為開發人員提供了提問的機會,并讓更有經驗的開發人員分享他們的DSP知識。網上有幾個不錯的DSP社區,比如Arm Community和DSP相關的,這些社區是免費的,并且在他們的論壇上擁有一些知識最淵博的DSP專家,此外還有大量以前提出的問題 DSP資源。
DSP 對于下一波嵌入式設備至關重要——但比以往任何時候都更容易實現
DSP已成為嵌入式系統開發人員必不可少的工具。物聯網、自動駕駛汽車(包括無人機)和人工智能等行業的快速增長正在推動對傳感器的需求不斷增長。為了以靈活、快速的方式處理來自這些傳感器的數據,它們需要在軟件中進行數字化處理。越來越不需要在昂貴的 DSP 處理器上執行此處理,因為它通常可以在 Arm Cortex-M 等微控制器上完成,尤其是在它具有 DSP 擴展的情況下。遵循本文中提供的技巧將幫助嵌入式開發人員快速有效地掌握 DSP。