淺談FPGA與音頻處理器的結合
FPGA通常是面向通信行業,盡管其主要開發者仍然專注于通信應用, 但他們越來越關注存儲和服務器市場。
但是, 廣闊的工業市場又如何呢?
通常, 工業市場的要求并不像存儲、服務器或通信應用程序所要求的那樣復雜。盡管圍繞工業物聯網(IoT)市場的大肆宣傳, 目前尚不清楚工程師如何利用現有技術使其潛力成為現實。有一種技術在工業市場日益普及, 那就是音頻處理技術。通過將音頻處理器的功能與 FPGA 的靈活性結合起來, 可以支持許多創新應用程序。
音頻處理器正如其名字那樣, 它是一個優化處理聲音的處理器。它經常利用基于 ARM 或者 RTOS的處理器架構, 有硬件, 如數字到模擬轉換器(AD/DA) , 多個數字麥克風輸入, 為可聽頻譜優化的硬件加速器, 以及 I2S 或 SPI 接口。音頻處理器常常與軟件或固件捆綁在一起, 這些軟件或固件被設計用來執行某些回音消除或降噪功能。
FPGA 使用一種基于門的體系結構, 它是以并行方式處理信號的理想結構。它還有內存、硬件乘法器和累加器, 以及充足的 I / O 靈活性。一些 FPGA 被認為是 SoC, 因為它們有四核A級 ARM 處理器, 但當 FPGA 與音頻處理器配對時, 這種水平的馬力是不必要的。音頻處理器的理想配對是一個通用的, 靈活的 FPGA, 或者一個 FPGA包含了 ARM Cortex-M3這樣的微控制器。結合這種類型的 FPGA 音頻處理器, 無論是否有 Cortex-M3, 都可以在獨特的工業通信和控制應用程序中為許多任務創建了理想的分工。
智能攝像機的音頻監聽
音頻處理器可以執行的一個有趣的功能是在使用兩個麥克風時進行音頻檢測。例如, 在音頻處理器中使用適當的固件, 設備可以確定與聲音位置相關的程度信息。如果在設備前聽到聲音(例如在正北方向) , 這將被處理為"90度" 。如果聲音來源于東北方位的右側, 音頻處理器將輸出"45度" 此外, 固件可以在兩個麥克風前面創建一個波束來減弱波束外的噪音源。利用 FPGA, 波束可以被引導到感興趣的聲源方向。
圖1
如圖1所示,這種類型的監視攝像機包括以下主要部件 :
1. 用來捕捉圖片的圖像傳感器
2. Animage signal processor (ISP) to handle the video data 一個圖像信號處理器(ISP)來處理視頻數據
3. 一個音頻處理器來清理聲音路徑和確定音頻源的位置
4. 一個FPGA 可以連接到音頻處理器, 并實現一個電機控制算法, 將相機轉向聲音
這種類型的智能相機可以更密切地關注聲音來源的圖像。 FPGA 還可以用來連接一個基于 PCI的高速 Wi-Fi 模塊來傳輸圖像, 或者可以觸發一些警告或報警功能。這種方法也可以用來引導攝像機和收聽麥克風來優化視頻會議的性能。在這個應用程序中, 音頻處理器將被用來檢測聲音的發源地, 通過使用 beamform來聽誰在說話。在 FPGA 的控制下, beamform 不會將攝像頭對準聲音, 而是直接對準說話的人。
工業 IoT 聲音檢測應用
另一個由 FPGA 啟用的工業 IoT 應用是維護、診斷和故障預防(圖2)。想象一下, 有足夠敏感的聽覺, 能夠知道電動機或其他運動部件什么時候會變得虛弱, 什么時候會失敗。工業物聯網的相關例子包括電梯發動機或地面鉆頭。通過使用音頻處理器和 FPGA 對弱化電機或鉆頭的聲音分布和監測, 可以防止產品故障和下降時間。
圖2
為了實現這種解決方案, 音頻處理器中插入聲音配置固件, 以便監視與即將發生故障有關的音頻簽名。對于電動機應用程序, 這個簽名可能是一個軸承發出的聲音,例如,開始崩潰或者一個鉆頭的聲音變得更高的音調, 因為它變得更加遲鈍和工作更加努力。通過音頻處理器中的聲音輪廓, 解決方案接著聽, 并不斷匹配聲音與存儲的故障配置文件。與此同時, FPGA 與音頻處理器進行通信, 并與網絡或其他外圍設備進行通信, 以繼承這個狀態。如果 FPGA 包含 ARM Cortex-M3, 它可以運行一個輕量級 TCP / IP 協議棧, 并通過以太網或無線標準發送信息。當然, 其他的通信功能也可使用, 比如 CAN 總線, USB, 或者專有協議。
當音頻處理器檢測到弱化條件的聲音輪廓特性時, 它會向 FPGA 發出信號, 然后立即通過網絡傳遞這些信息。通過早期捕捉失敗的條件, FPGA 也可以被編程, 以觸發系統覆蓋的響應。以電梯為例, FPGA 可以等到確認電梯已經到達一樓, 所有人都出去了, 然后通知中央控制系統電梯已經停止運行。其他可以使用的例子包括汽車電動機、流體管道和其他物聯網應用。如果聲音剖面被很好的理解, 這種方法甚至可以用來觸發維護的呼叫, 因此停機時間將被大大減少。
本地音頻存儲和播放
配對音頻處理器和 FPGA 的解決方案對于最有效地在本地實現音頻存儲和檢索的應用程序也很有用。這包括家庭自動化應用程序或加密音頻的安全保護。
在這些例子中, 音頻處理器接收聲音或聲音, 并通過 I2S 總線將其傳遞到 FPGA。然后, FPGA 將數據格式化, 存儲在 SPI Flash 或其他存儲中。這個設計也允許從 SPI Flash 通過 FPGA 回放到音頻處理器上。此類設計的其他選項包括為安全應用程序加密和解密音頻。另外, FPGA 還可以方便通信, 以便遠程提供音頻。
參考方案
最近, Arrow Electronics公司創建了一個硬件工具包來展示音頻處理器和 ARM Cortex-M3 FPGA 所能提供的靈活性(圖3)。 Microsemi SmartFusion2(SF2)評估工具包有一個音頻處理器和PGA。該工具包具有機載閃存和 DDR 存儲器, 以及 USB 和以太網接口。此外, 通過利用 Arduino 連接器集和 PMOD 接口, 可以添加一些外圍選項。
圖3
這個工具包創建了一個完整的 HDL 和 C代碼參考設計, 允許存儲多達四種不同的音頻記錄, 并支持播放控制。
有許多獨特而引人注目的應用程序可以通過音頻處理器和 FPGA 的組合來實現。音頻處理器執行檢測或監聽事件的任務, 而 FPGA 則用于提供自定義響應。當然, 額外的 FPGA 邏輯還允許定制函數或者其他邏輯要求, 例如橋接、硬件加速或協議通信, 所有這些都可以通過硬件解決方案、參考設計和音頻軟件來探索實現。
【本文來自51CTO專欄作者“老曹”的原創文章,作者微信公眾號:喔家ArchiSelf,id:wrieless-com】