那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

開源、可重用的軟件堆棧支持CbM的實時處理和算法開發(fā)

星星科技指導(dǎo)員 ? 來源:嵌入式計算設(shè)計 ? 作者:Travis Collins ? 2022-07-10 14:31 ? 次閱讀

在本文中,我們將重點介紹可用于CN0549不同組件的軟件生態(tài)系統(tǒng)、數(shù)據(jù)分析工具和軟件集成,以及工程師和數(shù)據(jù)科學(xué)家如何利用它們進(jìn)行應(yīng)用程序開發(fā)。這是關(guān)于使用 CN0549 開發(fā)平臺的基于狀態(tài)的監(jiān)控 (CbM) 和預(yù)測性維護(hù) (PdM) 應(yīng)用程序的兩部分系列文章中的第二篇。新平臺旨在加速定制 CbM 解決方案從原型到生產(chǎn)的開發(fā)流程。第 1 部分側(cè)重于 MEMS 振動技術(shù)和捕獲用于 CbM 應(yīng)用的高質(zhì)量振動數(shù)據(jù)。

生產(chǎn)之旅以及如何更快地做到這一點!

在構(gòu)建狀態(tài)監(jiān)測解決方案時,它們必須包含傳感器、本地處理、連接以及某種形式的軟件或固件,以使其全部發(fā)揮作用。CN0549 通過為硬件和軟件方面提供可定制的選項來應(yīng)對所有這些挑戰(zhàn),因此工程師和軟件開發(fā)人員可以在使用通用工具和基礎(chǔ)設(shè)施的同時在其應(yīng)用程序中進(jìn)行設(shè)計權(quán)衡。例如,如果您想選擇一個特定的微控制器FPGA 進(jìn)行處理,更喜歡使用 Python 編碼,或者有一個您想要重用的最喜歡的傳感器。這使得 CN0549 成為那些希望構(gòu)建優(yōu)化的 CbM 解決方案的強(qiáng)大平臺,可以根據(jù)他們的需求定制處理、功率、性能、軟件和數(shù)據(jù)分析。

嵌入式系統(tǒng)開發(fā)流程

讓我們考慮一個嵌入式系統(tǒng)從概念到生產(chǎn)的通用開發(fā)流程。圖 1 提供了抽象流的頂層概覽。

圖 1 所示設(shè)計過程的第一步是數(shù)據(jù)研究階段。在這個階段,用戶將他們的需求映射到他們的應(yīng)用程序所需的不同硬件和軟件需求。從硬件角度來看,這些參數(shù)可能是沖擊容限、模擬信號帶寬或測量范圍等參數(shù)。在考慮軟件要求時,樣本數(shù)量、采樣率、頻譜、過采樣和數(shù)字濾波是 CbM 應(yīng)用的重要參數(shù)。該平臺非常有用且靈活,允許研究人員使用不同的傳感器組合并根據(jù)自己的應(yīng)用需求調(diào)整數(shù)據(jù)采集參數(shù)。

數(shù)據(jù)研究階段之后是算法開發(fā)階段,在此階段證明了系統(tǒng)的應(yīng)用或使用。這通常需要在最終移植到嵌入式系統(tǒng)的高級工具中開發(fā)模型或設(shè)計算法。然而,在優(yōu)化設(shè)計之前,必須使用真實數(shù)據(jù)和硬件在環(huán)進(jìn)行驗證,而這正是 CN0549 擅長的地方,因為它不僅提供與流行的高級分析工具的直接集成,而且還允許硬件在循環(huán)驗證。

一旦設(shè)計得到驗證,優(yōu)化和嵌入必要的軟件組件的工作就開始了。在嵌入式設(shè)計細(xì)化階段,這可能需要重新實現(xiàn)某些算法或軟件層才能在 FPGA 或資源受限的微控制器中工作。在將設(shè)計移植到原型或接近生產(chǎn)硬件以進(jìn)行最終驗證時,必須非常小心地持續(xù)驗證設(shè)計。

pYYBAGLKcwSAVlSBAAB9I7bTqLA818.png

圖 1. 嵌入式系統(tǒng)開發(fā)流程。

最后,我們到達(dá)了生產(chǎn)階段,這可能與設(shè)計開始使用的原始開發(fā)環(huán)境幾乎沒有相似之處,但仍然需要滿足相同的要求。由于最終系統(tǒng)可能已經(jīng)遠(yuǎn)離原始研究系統(tǒng),因此運行相同的代碼或測試可能是不可能的或極其困難的。這可能會導(dǎo)致生產(chǎn)測試問題和單元故障,并且可能需要額外的時間和金錢投資來進(jìn)行補(bǔ)救。

通過最大限度地重復(fù)使用來降低風(fēng)險

在設(shè)計過程中降低風(fēng)險的最簡單方法之一是在每個階段重復(fù)使用盡可能多的硬件和軟件組件,CN0549 提供了許多開箱即用的資源,供開發(fā)人員在開發(fā)流程的所有階段直接利用。CN0549 解決方案提供原理圖和電路板布局文件、用于優(yōu)化和全功能環(huán)境的開放軟件堆棧,以及用于 MATLAB? 和 Python 等高級工具的集成選項。最終用戶可以利用 ADI 的經(jīng)過驗證的組件,并在從研究到生產(chǎn)的過程中選擇他們想要維護(hù)或更改的組件。這也使最終用戶能夠?qū)W⒂谒惴ㄩ_發(fā)和系統(tǒng)集成,而不是使用 ADI 零件的原理圖輸入或基礎(chǔ)軟件開發(fā)。利用硬件模塊和重用軟件層,

軟件開發(fā)流程和過程

CN0549 在開發(fā)過程中為工程師提供了多種選擇,使他們能夠使用常用語言(包括 C 或 C++)工作,同時使用他們熟悉的數(shù)據(jù)分析工具,例如 MATLAB 或 Python。這主要是通過利用和構(gòu)建開放標(biāo)準(zhǔn)以及支持來自不同制造商的多個嵌入式平臺的現(xiàn)有解決方案來完成的。

CN0549 系統(tǒng)堆棧

圖 2 所示的系統(tǒng)堆棧提供了構(gòu)成 CN0549 系統(tǒng)的不同組件的基本概覽。左上角的深藍(lán)色方框是傳感器和數(shù)據(jù)采集 (DAQ) 板,而淺藍(lán)色和紫色方框勾勒出用于數(shù)據(jù)處理的 FPGA 分區(qū)。該平臺直接支持英特爾 DE10-Nano 和 Xilinx? CoraZ7-07s,涵蓋兩大主要 FPGA 供應(yīng)商。綠色框表示與主機(jī) PC 的連接。這提供了從硬件到用于算法開發(fā)的高級數(shù)據(jù)分析工具的直接數(shù)據(jù)訪問。

所有 HDL 代碼都是開源的,它允許開發(fā)人員進(jìn)行修改以將數(shù)字信號處理 (DSP) 插入可編程邏輯 (PL) 內(nèi)的數(shù)據(jù)流中,如圖 2 所示。這可以是從濾波器到狀態(tài)機(jī)的任何內(nèi)容,甚至是機(jī)器學(xué)習(xí),根據(jù)你的系統(tǒng)劃分,這一步也可以在用戶空間或者應(yīng)用層完成。由于代碼是公開可用的,它可以移植到來自不同制造商的其他 FPGA 或移植到不同的處理器系列,具體取決于您的最終應(yīng)用需求。

pYYBAGLKcyuAWY13AAFFhtfq3bY767.png

圖 2. CN0549 平臺的系統(tǒng)堆棧。

Arm? 處理器內(nèi)部有兩個軟件選項。它們的使用將取決于用例,并且大多數(shù)開發(fā)人員都可能會使用它們:

Linux?:為內(nèi)核中的輸入輸出工業(yè) (IIO) 框架內(nèi)構(gòu)建的 DAQ shield 提供內(nèi)核驅(qū)動程序。這與一個名為 Kuiper Linux 的完整嵌入式 Linux 發(fā)行版相結(jié)合,該發(fā)行版在 Arm 核心用戶空間中運行并基于 Raspberry Pi OS。

操作系統(tǒng):裸機(jī)項目提供了與 Linux 內(nèi)核中使用的相同驅(qū)動程序,可與 Xilinx 或 IntelSDK 一起使用。這也可以作為替代實現(xiàn)方式實現(xiàn)到實時操作系統(tǒng) (RTOS) 環(huán)境中。

建議開發(fā)人員從 Linux 開始學(xué)習(xí)并開始使用他們的系統(tǒng)進(jìn)行開發(fā),因為它提供了最多的工具。Linux 還提供了大量的軟件包和驅(qū)動程序,為理想的開發(fā)環(huán)境創(chuàng)造了條件。一旦系統(tǒng)設(shè)計穩(wěn)定并準(zhǔn)備好進(jìn)行優(yōu)化,通常會切換到無操作系統(tǒng)并僅發(fā)布必要的軟件。但是,這高度依賴于應(yīng)用程序,由于它們提供的靈活性,許多人將發(fā)布完整的 Linux 系統(tǒng)。

與可編程邏輯的 HDL 一樣,整個內(nèi)核源代碼、Kuiper Linux 映像和 No-OS 項目都是完全開源的,允許最終用戶根據(jù)需要修改任何組件。如果需要,這些代碼庫也可以移植到不同的處理器系統(tǒng)或不同的運行時環(huán)境。

圖 2 的最后一個組件是與主機(jī) PC 的連接,如綠色框所示。運行系統(tǒng)時,可以配置設(shè)備,并將數(shù)據(jù)流式傳輸?shù)街鳈C(jī)系統(tǒng)進(jìn)行分析,開發(fā)人員將在主機(jī)上利用 MATLAB 或 TensorFlow 等標(biāo)準(zhǔn)工具創(chuàng)建算法。然后最終將這些算法轉(zhuǎn)移到嵌入式目標(biāo),允許它們使用本地處理能力進(jìn)行更快的算法開發(fā)迭代。

訪問 CbM 數(shù)據(jù)——入門

使用 Arm 處理器和 PL 通常發(fā)生在設(shè)計流程的更進(jìn)一步階段,此時系統(tǒng)正在針對部署進(jìn)行優(yōu)化。因此,開發(fā)人員最初的一個常見入口點將涉及從工作站遠(yuǎn)程連接到嵌入式系統(tǒng)。在嵌入式系統(tǒng)上運行 Linux 時,由于基礎(chǔ)架構(gòu)的設(shè)計方式,在工作站上遠(yuǎn)程或本地運行代碼是一個相對透明的過程。這主要是由于一個名為libIIO的開放庫。 libIIO 是一個接口庫,它允許對內(nèi)核中 Linux IIO 框架內(nèi)構(gòu)建的不同設(shè)備驅(qū)動程序進(jìn)行簡化且一致的訪問模型。該庫是 CbM 平臺使用如此靈活并提供數(shù)據(jù)流和設(shè)備控制功能的核心。

libIIO 本身分為兩個主要組件:

libIIO 庫,這是一個用于訪問不同 IIO 驅(qū)動程序?qū)傩曰蚝瘮?shù)的 C 庫。這包括流入和流出 ADCDAC 和傳感器等設(shè)備的數(shù)據(jù)流。

稱為 iiod 的 IIO 守護(hù)進(jìn)程負(fù)責(zé)管理 libIIO 庫或使用該庫的客戶端與實際驅(qū)動程序的內(nèi)核接口之間的訪問。

libIIO 和 iiod 本身是由不同的組件編寫的,這些組件允許以不同的方法訪問所謂的后端中的驅(qū)動程序。后端允許本地和遠(yuǎn)程用戶對 libIIO 進(jìn)行控制和數(shù)據(jù)流,并且由于它們是組件化的,因此可以將新的后端添加到系統(tǒng)中。目前,libIIO 支持四個后端:

本地:允許訪問連接到同一臺機(jī)器的硬件的本地可訪問驅(qū)動程序。

USB:利用 libusb,此后端允許通過 USB 鏈接遠(yuǎn)程控制驅(qū)動程序。

串行:為通過串行連接連接的板提供更通用的接口。UART 是最常見的用途。

網(wǎng)絡(luò):最常用的遠(yuǎn)程后端,它是基于 IP 的,用于跨網(wǎng)絡(luò)訪問驅(qū)動程序。

pYYBAGLKcz2ACQ-cAAEIOiAsk0I685.png

圖 3. 使用網(wǎng)絡(luò)后端的 libIIO 系統(tǒng)概要。

圖 3 提供了如何使用 libIIO 的組件以及它們?nèi)绾芜m應(yīng)整個系統(tǒng)的系統(tǒng)級概覽。圖的左側(cè)是嵌入式系統(tǒng),它安裝了 libIIO 庫并運行 iiod 守護(hù)進(jìn)程。從嵌入式系統(tǒng),用戶可以訪問本地后端,甚至網(wǎng)絡(luò)后端。在他們的代碼中,他們可以通過單行更改在兩者之間切換以解決任一后端。不需要對目標(biāo)代碼進(jìn)行其他更改。

pYYBAGLKc0-AfrPLAABplScNvcs913.png

圖 4. libIIO 遠(yuǎn)程與本地示例。

圖 3 的左側(cè)代表一個遠(yuǎn)程主機(jī),它可以運行任何操作系統(tǒng)。有適用于 Windows、macOS、Linux 和 BSD 的官方軟件包。圖中使用了網(wǎng)絡(luò)或基于 IP 的后端,但這也可以是串行、USB 或 PCIe 連接。從用戶的角度來看,libIIO 可以從 C 庫本身或許多與其他語言的可用綁定中得到利用,包括:Python、C#、Rust、MATLAB 和 Node.js。為需要與其應(yīng)用程序中的不同驅(qū)動程序交互的用戶提供大量選擇。

應(yīng)用程序和工具

在開始使用新設(shè)備時,一般不建議直接使用 libIIO。因此,存在許多構(gòu)建在 libIIO 之上的更高級別的應(yīng)用程序,它們?yōu)槿魏?IIO 設(shè)備從命令行和 GUI 格式提供基本的可配置性。這些分別是 IIO 工具和 IIO 示波器

IIO 工具是一組與 libIIO 一起提供的命令行工具,可用于通過腳本進(jìn)行低級調(diào)試和自動任務(wù)。例如,對于實驗室測試,將平臺設(shè)置為不同的采樣率模式并收集一些數(shù)據(jù)可能很有用。這可以通過幾行 bash 或通過利用 IIO 工具的批處理腳本輕松完成。圖 5 顯示了一個簡單的示例,可以在本地或遠(yuǎn)程運行以修改采樣率和更改 ADC 的輸入共模。該示例使用了一個名為 iio_attr 的 IIO 工具,它允許用戶輕松更新設(shè)備配置。

pYYBAGLKc1-AZfI7AACH1ow3s8c119.png

圖 5. IIO 工具的 iio_attr 部分的示例用法。

但是,用戶最常見的入口點是 GUI 應(yīng)用程序 IIO 示波器,通常稱為 OSC。OSC 與 IIO 工具一樣,被設(shè)計成通用的,可以控制任何 IIO 驅(qū)動程序,并且由于它基于 libIIO,它可以遠(yuǎn)程運行或在板上運行。但是,它還包含一個插件系統(tǒng),其中可以為特定驅(qū)動程序或驅(qū)動程序組合添加專門的選項卡。圖 6 顯示了為基于CN0540的板自動加載的插件選項卡,包括控制和監(jiān)控選項卡。這些選項卡提供了一個簡單的界面來訪問 CN0540 的 ADC、DAC 和控制引腳的低級功能,以及數(shù)據(jù)采集板和測試點監(jiān)控的基本圖。Analog Devices上提供了更多 OSC 文檔 如果您想了解其他可用的默認(rèn)選項卡和插件,請訪問Wiki 。

OSC 的最后一個重要方面是捕獲窗口。捕獲窗口為從 ADC 或任何基于 libIIO 的緩沖區(qū)收集的數(shù)據(jù)提供繪圖功能。圖 7 顯示了在頻域模式下使用的捕獲窗口,其中繪制了數(shù)據(jù)的頻譜信息。其他圖,包括時域圖、相關(guān)圖和星座圖,都是可用的。這對于抽查設(shè)備、調(diào)試或在評估過程中很有用。這些圖包括常見的實用程序,如標(biāo)記、峰值檢測、諧波檢測,甚至相位估計。由于 OSC 也是開源的,因此任何人都可以對其進(jìn)行擴(kuò)展以添加更多插件或繪圖,甚至修改現(xiàn)有功能。

poYBAGLKc5SAGgHNAAO2LdavMFo640.png

圖 7. 頻域模式下的 IIO 示波器捕獲窗口。

算法開發(fā)環(huán)境集成

到目前為止,我們已經(jīng)介紹了大多數(shù)工程師在首次使用 CN0549 時開始使用的核心低級工具。首先了解這些很重要,這樣開發(fā)人員才能了解系統(tǒng)的靈活性以及他們可以使用的不同選擇或接口。然而,在基線系統(tǒng)啟動并運行后,開發(fā)人員將希望使用 MATLAB 或 Python 等工具快速將數(shù)據(jù)轉(zhuǎn)移到算法開發(fā)中。這些程序可以從硬件導(dǎo)入數(shù)據(jù)。必要時可以設(shè)計額外的控制邏輯。

在機(jī)器學(xué)習(xí)開發(fā)周期的上下文中,通常有一個通用流程,開發(fā)人員將遵循獨立于他們所需的軟件環(huán)境來處理數(shù)據(jù)。圖 8 中概述了此過程的一個示例,其中收集數(shù)據(jù),分為測試和訓(xùn)練,開發(fā)模型或算法,最后部署模型以進(jìn)行現(xiàn)場推理。對于實際服務(wù),會不斷執(zhí)行整個過程,以將新知識引入生產(chǎn)模型。TensorFlow、PyTorch 或 MATLAB 機(jī)器學(xué)習(xí)工具箱等工具都考慮到了這個過程。這個過程是有意義的,但通常可以忽略或完全忽略收集、組織和管理數(shù)據(jù)的復(fù)雜任務(wù)。為了簡化這個任務(wù),

Python 集成——連接到 Python 分析工具

首先,從 Python 開始,CN0549 的設(shè)備特定類可通過模塊PyADI-IIO獲得。圖 6 提供了一個配置設(shè)備采樣率和通過以太網(wǎng)提取緩沖區(qū)的簡單示例。沒有復(fù)雜的寄存器序列、晦澀的內(nèi)存控制調(diào)用或需要記憶的隨機(jī)位。這是由驅(qū)動程序、libIIO 和 PyADI-IIO 為您管理的,這些驅(qū)動程序在電路板上運行、在工作站上遠(yuǎn)程運行,甚至在云中。

可通過 pip 和 conda 安裝的 PyADI-IIO 將控制旋鈕公開為易于使用和記錄的屬性。它還以通常可消化的類型(如 NumPy 數(shù)組或本機(jī)類型)提供數(shù)據(jù),并在可用時處理數(shù)據(jù)流的單位轉(zhuǎn)換。這使得 PyADI-IIO 可以輕松添加到 Jupyter Notebook 等環(huán)境中,并且可以輕松地將數(shù)據(jù)輸入機(jī)器學(xué)習(xí)管道,而無需求助于不同的工具或復(fù)雜的數(shù)據(jù)轉(zhuǎn)換——允許開發(fā)人員專注于他們的算法,而不是一些困難的 API 或數(shù)據(jù)對話。

poYBAGLKc6uAFYoEAAFPURM7j2Y822.png

圖 9. PyADI-IIO 示例。

MATLAB 集成 - 連接到 MATLAB

在 MATLAB 方面,通過 Analog Devices 傳感器工具箱提供對 CN0549 及其組件的支持。該工具箱與 PyADI-IIO 一樣,具有針對不同部件的設(shè)備特定類,并將它們實現(xiàn)為 MATLAB 系統(tǒng)對象 (MSO)。MSO 是 MathWorks 作者可以與硬件和不同軟件組件接口的標(biāo)準(zhǔn)化方式,并提供高級功能來協(xié)助代碼生成、Simulink 支持和一般狀態(tài)管理。許多 MATLAB 用戶可能會在不知情的情況下利用作為 MSO 實現(xiàn)的 MATLAB 功能,例如示波器或信號發(fā)生器。在圖 10 中,我們使用 CN0532 接口和 DSP 頻譜分析儀示波器,兩者均作為 MSO 實現(xiàn)。同樣,像 PyADI-IIO 一樣,有一個對傳統(tǒng) MATLAB 用戶友好的界面。

除了硬件連接之外,傳感器工具箱還集成了用于 HDL 和 C/C++ 的代碼生成工具。這些是用于開發(fā)、仿真和部署 IP 的絕佳工具,即使對于那些不熟悉 HDL 設(shè)計或工具但了解 MATLAB 和 Simulink 的人來說也是如此。

poYBAGLKc8yAE3VGAAGvmuSWl4Q758.png

圖 10. 帶有示波器的 Sensor Toolbox 流式傳輸示例。

使用 TensorFlow 的分類示例

CN0549 套件提供了幾個示例,從基本數(shù)據(jù)流到機(jī)器學(xué)習(xí)分類示例。時間序列數(shù)據(jù)的機(jī)器學(xué)習(xí),例如來自CN0532的振動數(shù)據(jù),可以從幾個不同的角度進(jìn)行處理。這可以包括支持向量機(jī) (SVM)、長短期記憶 (LSTM) 模型,如果數(shù)據(jù)被直接解釋為時間序列,甚至可以包括自動編碼器。但是,在許多情況下,將時間序列問題轉(zhuǎn)換為圖像處理問題并利用在該應(yīng)用領(lǐng)域開發(fā)的豐富知識和工具會更方便。

讓我們看看 Python 中的這種方法。在 PyADI-IIO 提供的一個示例中,通過將 CN0532 安裝到擺動風(fēng)扇上進(jìn)行了多次測量。這是在風(fēng)扇的不同設(shè)置(睡眠、常規(guī)、過敏原)下完成的,在每種模式下,捕獲了 409,600 個樣本。在檢查圖 11 中的數(shù)據(jù)時,很容易識別過敏原病例的時域,但其他兩種情況更難區(qū)分。這些可能可以通過檢查來識別,但是讓算法識別這些情況可能在時域中容易出錯。

為了幫助更好地區(qū)分用例,將數(shù)據(jù)轉(zhuǎn)換為頻域,并使用頻譜圖繪制不同頻率隨時間的濃度。與圖 11 相比,圖 12 中顯示的頻譜圖在數(shù)據(jù)上的差異更加明顯,并且在時間維度上保持一致。這些頻譜圖是有效的圖像,現(xiàn)在可以使用傳統(tǒng)的圖像分類技術(shù)進(jìn)行處理。

將數(shù)據(jù)集拆分為訓(xùn)練集和測試集,將頻譜圖輸入到具有三個密集層的僅中性網(wǎng)絡(luò) (NN) 模型和較小的卷積神經(jīng)網(wǎng)絡(luò) (CNN) 模型中。兩者都是在 TensorFlow 中實現(xiàn)的,并且能夠在不到 100 個 epoch 內(nèi)輕松收斂到接近 100% 的測試驗證。CNN 在大約一半的時間內(nèi)以大約 1% 的可調(diào)參數(shù)收斂,使其成為迄今為止更高效的設(shè)計。圖 13 中提供了精度與 epoch 的訓(xùn)練收斂圖,以概述 CNN 的快速收斂。

poYBAGLKc92AHuEEAAEokeVyK-M245.png

圖 11. 時間序列中的風(fēng)扇振動數(shù)據(jù)。

poYBAGLKc_qAeE0MAAEDA7We4Dk888.png

圖 12. 捕獲的振動數(shù)據(jù)的頻譜圖。

pYYBAGLKdA2AdpCHAACpkZZwUFw630.png

圖 13. CNN 訓(xùn)練精度隨時間變化的振動頻譜圖。

GitHub 上 PyADI-IIO 源代碼樹下的所有 Python 腳本、筆記本和數(shù)據(jù)集都可用于此示例。由于提供了數(shù)據(jù)集,TensorFlow 的示例演示甚至可以在沒有 CN0549 硬件的情況下使用。然而,通過硬件,訓(xùn)練后的模型可以用于實時推理。

邊緣到云:轉(zhuǎn)向嵌入式解決方案

創(chuàng)建模型后,可以將其部署用于推理目的或決策制定。使用 CN0549,它可以放置在遠(yuǎn)程 PC 上,數(shù)據(jù)從 CN0540 流式傳輸或直接在嵌入式處理器上運行。根據(jù)實現(xiàn)的不同,將模型放置在處理器中將需要更多的工程努力,但可以提高一個數(shù)量級的功率效率,并且能夠?qū)崟r運行。幸運的是,在過去幾年中,用于部署機(jī)器學(xué)習(xí)模型的工具和軟件取得了巨大的發(fā)展增長。

利用 FPGA

Xilinx 和 Intel 都擁有高級綜合 (HLS) 工具,可將高級語言轉(zhuǎn)換為在 FPGA 上運行的 HDL 代碼。這些通常會與 TensorFlow、PyTorch 或 Caffe 等 Python 框架集成,以幫助將模型轉(zhuǎn)換為 IP 內(nèi)核——允許工程師將 IP 部署到 DE10-Nano、Cora Z7-07S 或自定義系統(tǒng)。然后將這些 IP 內(nèi)核拼接到 ADI 提供的開放式 HDL 參考設(shè)計中。圖 14 顯示了 Vivado 的 Cora Z7-07S CN0540 的帶注釋屏幕截圖,重點關(guān)注數(shù)據(jù)路徑。在設(shè)計中,來自 CN0540 的數(shù)據(jù)通過 SPI 引腳讀取,24 位樣本由 SPI 引擎解釋并傳遞到 DMA 控制器到內(nèi)存中。任何 DSP 或機(jī)器學(xué)習(xí)模型都可以直接在數(shù)據(jù)路徑中插入到此管道中。

pYYBAGLKdBaAPYYIAAChWtYdIio454.png

圖 14. Vivado 2019.1 中顯示的 Cora Z7-07S HDL 參考設(shè)計數(shù)據(jù)路徑。

利用微處理器

與其將算法轉(zhuǎn)換為 HDL 層,不如直接在 Arm 內(nèi)核中運行。根據(jù)算法的數(shù)據(jù)速率和復(fù)雜性,這是一條合理的開發(fā)路徑,通常更直接。為 Arm 內(nèi)核開發(fā) C 代碼甚至可能是 Python 將比 HDL 花費更少的開發(fā)資源和時間,并且通常更易于維護(hù)。

MATLAB Embedded Coder 等工具甚至可以簡化這一過程,并自動將 MATLAB 轉(zhuǎn)換為針對 Arm 內(nèi)核的可嵌入和優(yōu)化的 C 代碼。或者,TensorFlow 擁有諸如 TensorFlow Lite 之類的工具,它們是其 Python 庫的可嵌入 C 版本,以允許更簡單地過渡到嵌入式目標(biāo)。

智能決策拓?fù)?/p>

基于狀態(tài)的監(jiān)控并不是一刀切的適用于硬件和軟件的所有空間,這就是 CN0549 設(shè)計靈活的原因。當(dāng)我們考慮諸如 CbM 異常檢測之類的問題時,通常可以從兩個時間尺度來處理:一個是我們需要立即做出反應(yīng),例如在與安全相關(guān)的場景中,或者在與維護(hù)或維護(hù)更相關(guān)的長期時間尺度上。設(shè)備更換。兩者都需要不同的算法、處理能力和方法。

作為理想情況下的機(jī)器操作員,我們將擁有一個大型數(shù)據(jù)湖來訓(xùn)練我們的模型,并且既可以處理沒有干擾事件的短期檢測,又可以從正在運行的設(shè)備連續(xù)傳輸數(shù)據(jù)以進(jìn)行未來的維護(hù)預(yù)測。然而,對于大多數(shù)運營商而言,情況可能并非如此,數(shù)據(jù)湖更像是干涸的河床。考慮到安全問題、物理位置、網(wǎng)絡(luò)或拓?fù)湟螅恍┈F(xiàn)成的解決方案也可能難以執(zhí)行數(shù)據(jù)收集。這些困難推動了對更多定制解決方案的需求。

poYBAGLKdB2AI0qlAADVnkZSUjY568.png

圖 15. CbM 網(wǎng)絡(luò)拓?fù)洹?/p>

CN0549 是具有多種連接選項的獨立系統(tǒng)。由于它運行標(biāo)準(zhǔn) Linux,以太網(wǎng)和 Wi-Fi 等傳統(tǒng)網(wǎng)絡(luò)堆棧開箱即用,如果需要,甚至可以連接蜂窩調(diào)制解調(diào)器。在實際應(yīng)用中,有幾個典型的拓?fù)浔容^突出,如圖 15 所示。

圖 15 中顯示的最左側(cè)配置是離線收集案例,它可能發(fā)生在遠(yuǎn)程站點或無法連接到 Internet 的地方。在這種情況下,大型存儲介質(zhì)將與平臺共存,并按計劃手動收集。或者,其他兩個選項將數(shù)據(jù)流式傳輸?shù)焦捕它c。圖 15 的中間配置是一個孤立的網(wǎng)絡(luò),它可能僅位于組織內(nèi)部,也可能只是位于遠(yuǎn)程位置的一組平臺,用于集中收集數(shù)據(jù)。這可能是出于安全考慮或只是缺乏連接性而需要的。CN0549 的設(shè)置對于任何這些配置都很容易,并且可以針對最終部署的特定需求進(jìn)行定制。

最終配置是直接云選項,每個平臺直接訪問互聯(lián)網(wǎng)并將測量推送到云端。由于 CN0549 在 Linux 上運行,因此該平臺可以通過 Python 等語言輕松利用 Microsoft Azure IoT 或 Amazon IoT Greengrass 等不同云供應(yīng)商的 API,從而為開始為新連接的設(shè)備構(gòu)建數(shù)據(jù)湖創(chuàng)造了一條簡單的途徑。

當(dāng)云和本地進(jìn)程之間存在一致的連接時,可以將不同的算法拆分為我們已經(jīng)討論過的需要或可以在本地運行的內(nèi)容以及可以在云中運行的內(nèi)容。這將在算法復(fù)雜性的處理能力要求、事件延遲以及可以發(fā)送到云的帶寬限制之間進(jìn)行自然權(quán)衡。但是,由于它非常靈活,因此可以輕松探索這些因素。

結(jié)論

CN0549 CbM 平臺在開發(fā)應(yīng)用程序時為設(shè)計人員提供系統(tǒng)靈活性和大量軟件資源。圍繞如何利用不同的組件進(jìn)行 CbM 和預(yù)測性維護(hù) (PdM) 開發(fā)進(jìn)行了深入探討軟件堆棧的討論。由于軟件、HDL、原理圖的開放性以及與數(shù)據(jù)科學(xué)工具的集成,設(shè)計人員可以在整個堆棧中利用其終端系統(tǒng)所需的組件。總而言之,這種狀態(tài)監(jiān)測設(shè)計提供了一種易于使用的開箱即用解決方案,并配有開源軟件和硬件,以提供靈活性并允許設(shè)計人員在更短的時間內(nèi)實現(xiàn)更好的定制結(jié)果。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 調(diào)制解調(diào)器

    關(guān)注

    3

    文章

    860

    瀏覽量

    38941
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11345

    瀏覽量

    210403
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4807

    瀏覽量

    85040
收藏 人收藏

    評論

    相關(guān)推薦

    CBM232AS

    CBM232 用于高性能信息處理系統(tǒng)和廣泛應(yīng)用的控制設(shè)備。
    發(fā)表于 12-13 14:45 ?0次下載

    CBM803L

    CBM803X/CBMM809X/CBM810X系列產(chǎn)品可以監(jiān)控微處理器系統(tǒng)中的電源電壓。它們在通電、斷電下提供復(fù)位輸出。通電時,一個內(nèi)部定時器將復(fù)位保持240毫秒。這將使微處理器保持
    發(fā)表于 12-11 16:39 ?0次下載

    EasyGo 實時仿真丨DC-AC-MMC 實時仿真應(yīng)用

    EasyGo DeskSim是一款配置型的實時仿真軟件,它允許用戶將Simulink算法程序快速部署到EasyGo實時仿真機(jī)上。實時仿真機(jī)
    發(fā)表于 12-11 09:50

    CBM803L

    CBM803X/CBMM809X/CBM810X系列產(chǎn)品可以監(jiān)控微處理器系統(tǒng)中的電源電壓。它們在通電、斷電下提供復(fù)位輸出。通電時,一個內(nèi)部定時器將復(fù)位保持240毫秒。這將使微處理器保持
    發(fā)表于 12-06 14:57 ?0次下載

    CBM706P 電壓監(jiān)控微處理器監(jiān)控電路

    CBM706P、CBM706R、CBM706S、 CBM706T 和 CBM708R、 CBM7
    發(fā)表于 12-06 14:08 ?1次下載

    CBM708A

    CBM705A, CBM706A, CBM707A, CBM708A 系列微處理器監(jiān)控電路適用于 5V 供電電源、電池電壓監(jiān)控和微
    發(fā)表于 12-06 14:02 ?0次下載

    低成本微處理器監(jiān)控電路-CBM705,706,707,708

    CBM705,CBM706,CBM707,CBM708助力于制氧機(jī)解決方案CBM705A,CBM
    的頭像 發(fā)表于 11-13 09:52 ?337次閱讀
    低成本微<b class='flag-5'>處理</b>器監(jiān)控電路-<b class='flag-5'>CBM</b>705,706,707,708

    低成本微處理器監(jiān)控電路-CBM705,706,707,708

    CBM705,CBM706,CBM707,CBM708低功耗微處理器監(jiān)控電路,確保制氧機(jī)電源穩(wěn)定與安全C
    的頭像 發(fā)表于 11-12 16:02 ?81次閱讀
    低成本微<b class='flag-5'>處理</b>器監(jiān)控電路-<b class='flag-5'>CBM</b>705,706,707,708

    CBM811-3T

    811/CBM812所在的工作電路進(jìn)入只有用戶才能檢測到的狀態(tài)時。允許用戶手動復(fù)位系統(tǒng)可以降低系統(tǒng)失控或閉鎖可能引起的損害或危險。手動復(fù)位輸入具備消抖電路,可以保證手動操作的
    發(fā)表于 10-30 15:48 ?0次下載

    恩智浦S32Z/E實時處理器實現(xiàn)車載ECU集成

    隨著車輛電子電氣架構(gòu)的發(fā)展,整合各種實時汽車應(yīng)用成為了剛需,恩智浦的S32Z和S32E實時處理器系列應(yīng)運而生。
    的頭像 發(fā)表于 10-21 10:07 ?611次閱讀

    堆棧和內(nèi)存的基本知識

    本文主要聊聊關(guān)于堆棧的內(nèi)容。包括堆棧和內(nèi)存的基本知識。常見和堆棧相關(guān)的 bug,如棧溢出,內(nèi)存泄漏,堆內(nèi)存分配失敗等。后面介紹軟件堆棧統(tǒng)計
    的頭像 發(fā)表于 08-29 14:10 ?574次閱讀
    <b class='flag-5'>堆棧</b>和內(nèi)存的基本知識

    國產(chǎn)FRAM SF25C20用于實時處理系統(tǒng),兼容MB85RS2MT

    國產(chǎn)FRAM SF25C20用于實時處理系統(tǒng),兼容MB85RS2MT
    的頭像 發(fā)表于 07-31 10:06 ?461次閱讀
    國產(chǎn)FRAM SF25C20用于<b class='flag-5'>實時處理</b>系統(tǒng),兼容MB85RS2MT

    AWTK 開源串口屏開發(fā)(14) - 界面重用

    AWTK串口屏支持同一個界面綁定不同的數(shù)據(jù),本文以家居控制為例,介紹一下界面重用的方法。在家居控制應(yīng)用中,我們演示了空調(diào)和咖啡機(jī)界面。現(xiàn)在我們來想一想,如果有多個空調(diào)怎么辦呢?當(dāng)然最直觀的方法,就是
    的頭像 發(fā)表于 03-23 08:23 ?416次閱讀
    AWTK <b class='flag-5'>開源</b>串口屏<b class='flag-5'>開發(fā)</b>(14) - 界面<b class='flag-5'>重用</b>

    求一份CBM8560芯片開發(fā)資料?

    在官網(wǎng)只找到CBM8560芯片的數(shù)據(jù)手冊和應(yīng)用手冊,請問是否可以提供開發(fā)手冊(有芯片使用介紹、外設(shè)功能寄存器介紹等)?或者在哪里可以下載?
    發(fā)表于 03-21 14:42

    使用STM32H7的AD進(jìn)行了7M頻率的采集信號,采集進(jìn)去后可以實現(xiàn)實時處理嗎?

    使用STM32H7的AD進(jìn)行了7M頻率的采集信號,采集進(jìn)去后可以實現(xiàn)實時處理嗎?
    發(fā)表于 03-08 08:10
    百家乐游戏开户网址| 真钱百家乐官网哪里最好| 百家乐官网是娱乐场| 今天六合彩开什么| 百家乐官网群shozo权威| e世博资讯网| 半圆百家乐桌子| 百家乐官网太阳城小郭| 全讯网百家乐的玩法技巧和规则 | 联众百家乐官网的玩法技巧和规则| 爱玩棋牌下载| 百家乐赌缆注码运用| 百家乐官网体育直播| 扑克王百家乐的玩法技巧和规则| 百家乐官网真人游戏投注网| 大发888最新版本下载| 羊和鼠做生意摆件| 宜兴市| 澳门玩百家乐的玩法技巧和规则| 百家乐官网专业豪华版| 德州扑克视频教学| 帝王百家乐新足球平台| 网络百家乐官网怎么作弊| 大发888娱乐城.com| 国际百家乐规则| 百家乐官网注册开户| 百家乐平台| 24山64卦分金| 真钱百家乐官网哪里最好| 澳门娱乐城官网| 百家乐7赢6| 百家乐官网必胜法技巧| 皇家平台| 金博士百家乐的玩法技巧和规则| 大众百家乐官网的玩法技巧和规则 | 百家乐官网群博乐吧blb8v| 必博网| 联众百家乐的玩法技巧和规则 | 百家乐官网社区| 乐百家百家乐官网游戏| 大发888 真钱娱乐平台|