CN0549 基于條件的簡(jiǎn)介 監(jiān)控平臺(tái)
在本文中,我們將重點(diǎn)介紹軟件生態(tài)系統(tǒng)、數(shù)據(jù)分析工具和 軟件集成可用于CN0549的不同組件和 工程師和數(shù)據(jù)科學(xué)家如何利用它們進(jìn)行應(yīng)用程序開發(fā)。這是關(guān)于基于條件的兩部分系列文章中的第二篇 使用 CN0549開發(fā)平臺(tái)。新平臺(tái)旨在加速 定制CbM解決方案的開發(fā)流程,從原型到生產(chǎn)。第 1 部分重點(diǎn)介紹 MEMS 振動(dòng)技術(shù)和捕獲高質(zhì)量振動(dòng)數(shù)據(jù) 用于 CbM 應(yīng)用。
生產(chǎn)之旅和操作方法 它更快!
構(gòu)建狀態(tài)監(jiān)測(cè)解決方案時(shí),它們必須包含本地傳感器 處理、連接以及某種形式的軟件或固件來實(shí)現(xiàn)這一切 功能。CN0549通過提供可定制的產(chǎn)品來解決所有這些挑戰(zhàn) 硬件和軟件方面的選項(xiàng),因此工程師和軟件 開發(fā)人員可以在使用通用應(yīng)用程序的同時(shí)在其應(yīng)用程序中進(jìn)行設(shè)計(jì)權(quán)衡 工具和基礎(chǔ)設(shè)施。例如,如果您想選擇特定的微控制器或FPGA進(jìn)行處理,則更喜歡使用Python編碼,或者具有 您想要重復(fù)使用的常用傳感器。這使得CN0549成為一個(gè)功能強(qiáng)大的平臺(tái) 對(duì)于那些希望構(gòu)建優(yōu)化的CbM解決方案的人,其中處理,電源, 性能、軟件和數(shù)據(jù)分析可以根據(jù)他們的需求進(jìn)行定制。
嵌入式系統(tǒng)開發(fā)流程
讓我們考慮一個(gè)嵌入式系統(tǒng)從概念到生產(chǎn)的通用開發(fā)流程。圖 1 提供了抽象流的頂級(jí)概述。
圖1.嵌入式系統(tǒng)開發(fā)流程。
圖 1 所示設(shè)計(jì)過程的第一步是數(shù)據(jù)研究 階段。在此階段,用戶將其需求映射到不同的硬件 以及其應(yīng)用程序所需的軟件要求。從硬件的角度來看,這些可能是沖擊容限、模擬信號(hào)帶寬、 或測(cè)量范圍。在考慮軟件要求時(shí), 采樣數(shù)、采樣率、頻譜、過采樣和數(shù)字 過濾是 CbM 應(yīng)用的重要參數(shù)。該平臺(tái)非常 有用且靈活,允許研究人員使用不同的傳感器組合 并根據(jù)自己的應(yīng)用需求調(diào)整數(shù)據(jù)采集參數(shù)。
數(shù)據(jù)研究階段之后是算法開發(fā)階段,其中 該系統(tǒng)的應(yīng)用或使用已得到證明。這通常需要開發(fā) 在高級(jí)工具中建模或設(shè)計(jì)算法,最終將移植到 嵌入式系統(tǒng)。但是,在優(yōu)化設(shè)計(jì)之前,必須對(duì)其進(jìn)行驗(yàn)證 使用真實(shí)數(shù)據(jù)和硬件在循環(huán)中,這確實(shí)是CN0549 之所以出色,是因?yàn)樗粌H提供了與流行的高級(jí)的直接集成 分析工具,但它也允許硬件在環(huán)驗(yàn)證。
一旦設(shè)計(jì)得到證明,優(yōu)化和獲得必要的工作 開始嵌入軟件組件。在嵌入式設(shè)計(jì)闡述中 階段,這可能需要重新實(shí)現(xiàn)某些算法或軟件層才能在FPGA或資源受限的微控制器中工作。非常小心 在將設(shè)計(jì)移植到原型上時(shí),必須對(duì)其進(jìn)行持續(xù)驗(yàn)證,或者 接近生產(chǎn)硬件進(jìn)行最終驗(yàn)證。
最后,我們進(jìn)入生產(chǎn)階段,這可能與 設(shè)計(jì)開始使用的原始開發(fā)環(huán)境,但盡管如此 仍然需要滿足相同的要求。由于最終系統(tǒng)可能有 遠(yuǎn)離原始研究系統(tǒng)遷移,運(yùn)行相同的代碼或 測(cè)試可能是不可能的或極其困難的。這可能會(huì)導(dǎo)致生產(chǎn) 測(cè)試問題和單元故障,可能需要額外的時(shí)間和金錢 投資補(bǔ)救。
通過最大化重用來降低風(fēng)險(xiǎn)
在設(shè)計(jì)過程中降低風(fēng)險(xiǎn)的最簡(jiǎn)單方法之一是重用 每個(gè)階段都有盡可能多的硬件和軟件組件, CN0549提供了許多開箱即用的資源供開發(fā)人員利用 直接在開發(fā)流程的所有階段。CN0549解決方案提供 原理圖和電路板布局文件,一個(gè)開放的軟件堆棧,用于優(yōu)化 和功能齊全的環(huán)境,以及更高級(jí)別工具的集成選項(xiàng) 比如MATLAB和Python。最終用戶可以利用來自 ADI并選擇他們想要維護(hù)或更改的部分 從研究到生產(chǎn)。這也使最終用戶能夠?qū)W⒂谒惴ㄩ_發(fā)和系統(tǒng)集成,而不是使用ADI器件或接地進(jìn)行原理圖輸入。 向上軟件開發(fā)。利用硬件模塊和重用軟件 ADI的設(shè)備驅(qū)動(dòng)程序、HDL或應(yīng)用固件等層可降低 構(gòu)建系統(tǒng)所需的開發(fā)時(shí)間,可以大大加快時(shí)間 到市場(chǎng)。?
軟件開發(fā)流程和流程
CN0549在開發(fā)過程中為工程師提供了無數(shù)選擇,允許 他們使用通用語(yǔ)言工作,包括 C 或 C++,同時(shí)使用數(shù)據(jù)分析 他們有經(jīng)驗(yàn)的工具,如MATLAB或Python。這主要是 通過利用和構(gòu)建開放標(biāo)準(zhǔn)以及現(xiàn)有的 支持來自不同制造商的多個(gè)嵌入式平臺(tái)的解決方案。
CN0549 系統(tǒng)堆棧
圖 2 所示的系統(tǒng)堆棧提供了不同 組成CN0549系統(tǒng)的組件。在頂部的深藍(lán)色框中 左邊是傳感器和數(shù)據(jù)采集(DAQ)板,而淺藍(lán)色和 紫色框概述了用于數(shù)據(jù)處理的FPGA分區(qū)。該平臺(tái)直接支持英特爾DE10-Nano和Xilinx CoraZ7-07s,涵蓋 兩家主要的 FPGA 供應(yīng)商。綠色框表示連接回 主機(jī)電腦。這提供了從硬件到高級(jí)的直接數(shù)據(jù)訪問 用于算法開發(fā)的數(shù)據(jù)分析工具。?
圖2.CN0549平臺(tái)的系統(tǒng)堆棧。
所有硬件描述語(yǔ)言(HDL)代碼都是開源的,允許 開發(fā)人員進(jìn)行修改以將數(shù)字信號(hào)處理 (DSP) 插入 可編程邏輯(PL)內(nèi)的數(shù)據(jù)流,如圖2所示。這 可以是任何東西,從過濾器到狀態(tài)機(jī),甚至是機(jī)器學(xué)習(xí),以及 根據(jù)您的系統(tǒng)分區(qū),此步驟也可以在用戶中完成 空間或應(yīng)用層。由于代碼是公開可用的,因此可能是 移植到來自不同制造商或不同處理器的其他 FPGA 系列取決于您的最終應(yīng)用需求。
在 Arm 處理器內(nèi)部有兩個(gè)軟件選項(xiàng)。它們的使用將是 取決于用例,大多數(shù)開發(fā)人員都可能使用這兩種情況:?
Linux:為輸入中內(nèi)置的DAQ擴(kuò)展板提供內(nèi)核內(nèi)驅(qū)動(dòng)程序 內(nèi)核內(nèi)的輸出工業(yè) (IIO) 框架。這與完整的 嵌入式Linux發(fā)行版稱為Kuiper Linux,運(yùn)行在Arm核心中 用戶空間,基于樹莓派操作系統(tǒng)。?
X No-OS:裸機(jī)項(xiàng)目提供的驅(qū)動(dòng)程序與 Linux內(nèi)核,將與Xilinx或Intel的SDK一起使用。這也可以 在實(shí)時(shí)操作系統(tǒng) (RTOS) 環(huán)境中實(shí)現(xiàn)為 另一種實(shí)現(xiàn)。
建議開發(fā)人員從Linux開始學(xué)習(xí)并開始開發(fā) 使用他們的系統(tǒng),因?yàn)樗峁┝俗疃嗟墓ぞ摺inux也 提供了大量的軟件包和驅(qū)動(dòng)程序,從而營(yíng)造出理想的開發(fā)環(huán)境。一旦系統(tǒng)設(shè)計(jì)穩(wěn)定并準(zhǔn)備就緒 優(yōu)化,通常切換到No-OS并且僅提供以下軟件 必要。但是,這高度依賴于應(yīng)用程序,許多將滿載 Linux 系統(tǒng),因?yàn)樗鼈兲峁┝遂`活性。
就像用于可編程邏輯的HDL一樣,整個(gè)內(nèi)核源代碼Kuiper Linux 圖像和No-OS項(xiàng)目是完全開源的,允許最終用戶 根據(jù)需要修改任何組件。這些代碼庫(kù)也可以移植到 如果需要,不同的處理器系統(tǒng)或不同的運(yùn)行時(shí)環(huán)境。
圖 2 的最后一個(gè)組件是與主機(jī) PC 的連接,如 綠色框。運(yùn)行系統(tǒng)時(shí),可以配置設(shè)備,數(shù)據(jù) 流式傳輸?shù)街鳈C(jī)系統(tǒng)進(jìn)行分析,開發(fā)人員將利用 MATLAB 或 TensorFlow 等標(biāo)準(zhǔn)工具在其主機(jī)上創(chuàng)建算法。 然后將這些算法最終轉(zhuǎn)移到嵌入式目標(biāo)上,允許它們使用 它們的本地處理能力可實(shí)現(xiàn)更快的算法開發(fā)迭代。
訪問 CbM 數(shù)據(jù) — 入門
使用 Arm 處理器和 PL 通常發(fā)生在更進(jìn)一步的階段 針對(duì)部署優(yōu)化系統(tǒng)時(shí)的設(shè)計(jì)流程。因此 開發(fā)人員的常見入口點(diǎn)最初將涉及遠(yuǎn)程連接到 工作站中的嵌入式系統(tǒng)。在嵌入式系統(tǒng)上運(yùn)行Linux時(shí),在工作站上遠(yuǎn)程或本地運(yùn)行代碼是相對(duì)的 由于基礎(chǔ)設(shè)施的設(shè)計(jì)方式,流程透明。這主要是 由于一個(gè)名為libIIO的開放庫(kù)。libIIO 是一個(gè)接口庫(kù),允許 用于對(duì)構(gòu)建的不同設(shè)備驅(qū)動(dòng)程序的簡(jiǎn)化且一致的訪問模型 在內(nèi)核中的 Linux IIO 框架內(nèi)。這個(gè)庫(kù)是核心 使CbM平臺(tái)的使用如此靈活,并提供數(shù)據(jù)功能 流式傳輸和設(shè)備控制。
libIIO本身分為兩個(gè)主要部分:
libIIO 庫(kù),它是用于訪問不同 IIO 驅(qū)動(dòng)程序?qū)傩曰蚝瘮?shù)的 C 庫(kù)。這包括與ADC等設(shè)備之間的流數(shù)據(jù), DAC和傳感器。
稱為 iiod 的 IIO 守護(hù)進(jìn)程,負(fù)責(zé)管理之間的訪問 libIIO 庫(kù),或使用該庫(kù)和內(nèi)核接口的客戶端 實(shí)際驅(qū)動(dòng)程序。
libIIO 和 iiod 本身是由不同的組件編寫的,允許 訪問所謂的后端驅(qū)動(dòng)程序的不同方法。后端 允許來自本地和遠(yuǎn)程用戶的libIIO控制和數(shù)據(jù)流,并且由于它們是 組件化的新后端可以添加到系統(tǒng)中。目前有 libIIO 支持的四個(gè)后端:
本地:允許訪問本地可訪問的硬件驅(qū)動(dòng)程序 到同一臺(tái)機(jī)器上。
USB:利用libusb,該后端允許遠(yuǎn)程控制驅(qū)動(dòng)程序 通過 USB 鏈接。
串行:為通過串行連接的電路板提供更通用的接口 連接。UART是最常見的用途。
網(wǎng)絡(luò):最常用的遠(yuǎn)程后端,基于 IP 進(jìn)行訪問 跨網(wǎng)絡(luò)的驅(qū)動(dòng)程序。
圖 3 提供了 libIIO 組件的系統(tǒng)級(jí)概述 被使用以及它們?nèi)绾芜m應(yīng)整個(gè)系統(tǒng)。在圖表的左側(cè)是 嵌入式系統(tǒng),安裝了 libIIO 庫(kù)并運(yùn)行 IIOD 守護(hù)進(jìn)程。 從嵌入式系統(tǒng),用戶可以訪問本地后端,甚至 網(wǎng)絡(luò)后端。在他們的代碼中,他們可以通過 單行更改以解決任一后端。目標(biāo)無其他更改 代碼是必需的。
圖3.libIIO系統(tǒng)概述使用網(wǎng)絡(luò)后端。
圖 3 的左側(cè)表示可能正在運(yùn)行的遠(yuǎn)程主機(jī) 任何操作系統(tǒng)。有適用于Windows,macOS,Linux的官方軟件包, 和 BSD。在圖中使用了網(wǎng)絡(luò)或基于 IP 的后端,但這 也可以是串行、USB 或 PCIe 連接。從用戶的角度來看,libIIO 可以從 C 庫(kù)本身或許多可用的綁定中利用 其他語(yǔ)言包括:Python,C#,Rust,MATLAB和Node.js。提供 對(duì)于需要與不同接口的用戶來說,這是一個(gè)重要的選擇 來自其應(yīng)用程序的驅(qū)動(dòng)程序。
圖4.libIIO 遠(yuǎn)程與本地示例。
應(yīng)用程序和工具
開始使用新設(shè)備時(shí),通常不建議直接使用 libIIO。因此,存在許多構(gòu)建在 libIIO,通過命令為任何IIO設(shè)備提供基本可配置性 行和 GUI 格式。這些分別是IIO工具和IIO示波器。
IIO 工具是一組命令行工具,與 libIIO 一起提供,并且 對(duì)于通過腳本編寫的低級(jí)調(diào)試和自動(dòng)任務(wù)非常有用。例如 對(duì)于實(shí)驗(yàn)室測(cè)試,以不同的采樣率設(shè)置平臺(tái)可能很有用 模式并收集一些數(shù)據(jù)。這可以通過幾行 bash 或 通過利用IIO工具的批處理腳本。圖 5 顯示了一個(gè)簡(jiǎn)單的示例 可以在本地或遠(yuǎn)程運(yùn)行以修改采樣率并更改輸入 ADC的共模。該示例使用了一個(gè)名為 iio_attr 的 IIO 工具,該工具 允許用戶輕松更新設(shè)備配置。
圖5.IIO工具iio_attr部分的示例用法。
但是,用戶最常見的入口點(diǎn)是GUI應(yīng)用程序IIO 示波器,通常稱為 OSC。與IIO工具一樣,OSC旨在 是通用的,以允許控制任何IIO驅(qū)動(dòng)程序,并且由于它基于libIIO,因此它可以 可以遠(yuǎn)程運(yùn)行或在開發(fā)板本身上運(yùn)行。但是,它還包含一個(gè)插件系統(tǒng) 可以為特定驅(qū)動(dòng)程序或組合添加專用選項(xiàng)卡 司機(jī)。圖 6 顯示了基于 CN0540 的插件選項(xiàng)卡自動(dòng)加載 板,包括控件和監(jiān)視選項(xiàng)卡。這些選項(xiàng)卡提供了一個(gè)簡(jiǎn)單的 用于訪問CN0540的ADC、DAC和控制的低級(jí)功能的接口 引腳,以及數(shù)據(jù)采集板和測(cè)試點(diǎn)的基本圖 監(jiān)測(cè)。如果您想了解其他可用的默認(rèn)選項(xiàng)卡和插件,ADI公司W(wǎng)iki上提供了更多OSC文檔。
圖6.CN0540 IIO 示波器插件選項(xiàng)卡。
OSC 的最后一個(gè)重要方面是捕獲窗口。捕獲窗口 為從ADC或任何基于libIIO的緩沖器收集的數(shù)據(jù)提供繪圖功能。圖7顯示了在頻域模式下使用的捕獲窗口, 其中繪制了數(shù)據(jù)的光譜信息。其他情節(jié),包括時(shí)間 域圖、相關(guān)性圖和星座圖可用。這對(duì)于 抽查設(shè)備、調(diào)試或在評(píng)估過程中。劇情 包括標(biāo)記、峰值檢測(cè)、諧波檢測(cè)甚至相位估計(jì)等常見實(shí)用程序。由于 OSC 也是開源的,因此可以通過 任何人都可以添加更多插件或繪圖,甚至修改現(xiàn)有功能。
圖7.頻域模式下的IIO示波器捕獲窗口。
算法開發(fā)環(huán)境集成
到目前為止,我們已經(jīng)介紹了大多數(shù)工程師在以下情況下開始的核心低級(jí)工具 首先使用CN0549。首先了解這些很重要,以便開發(fā)人員可以了解系統(tǒng)的靈活性和不同的選擇或 他們可以使用的接口。但是,在建立基線系統(tǒng)并 運(yùn)行時(shí),開發(fā)人員將希望使用 MATLAB 或 Python 等工具將數(shù)據(jù)快速移動(dòng)到算法開發(fā)中。這些程序可以導(dǎo)入 來自硬件的數(shù)據(jù)。必要時(shí)可以設(shè)計(jì)額外的控制邏輯。
在機(jī)器學(xué)習(xí)開發(fā)周期的上下文中,通常有一個(gè) 開發(fā)人員將遵循的通用流程,獨(dú)立于他們所需的軟件 用于處理數(shù)據(jù)的環(huán)境。中概述了此過程的示例 圖 8,其中收集數(shù)據(jù),分為測(cè)試和訓(xùn)練,開發(fā)模型或算法,最后部署模型以在現(xiàn)場(chǎng)進(jìn)行推理。 對(duì)于實(shí)際服務(wù),此整個(gè)過程會(huì)不斷執(zhí)行以引入新的 學(xué)習(xí)生產(chǎn)模型。TensorFlow、PyTorch或MATLAB等工具。 機(jī)器學(xué)習(xí)工具箱在工作時(shí)考慮了此過程。這個(gè)過程使 感覺,但通常是收集、組織和復(fù)雜任務(wù)的努力 可以忽略或完全忽略數(shù)據(jù)的管理。為了簡(jiǎn)化 這項(xiàng)任務(wù),一個(gè)相關(guān)的軟件生態(tài)系統(tǒng)就是用這些工具設(shè)計(jì)的,并且 牢記包。
圖8.機(jī)器學(xué)習(xí)模型開發(fā)流程。
Python 集成 — 連接到 Python 分析工具
首先,從 Python 開始,可以使用 CN0549 的設(shè)備特定類 通過模塊PyADI-IIO。配置設(shè)備的簡(jiǎn)單示例 采樣速率和以太網(wǎng)拉取緩沖器如圖6所示。有 沒有復(fù)雜的寄存器序列、模糊的存儲(chǔ)器控制調(diào)用或隨機(jī)位 記住。這是由驅(qū)動(dòng)程序,libIIO和PyADI-IIO為您管理的。 電路板本身,遠(yuǎn)程在工作站上,甚至在云中。
圖9.PyADI-IIO示例。
PyADI-IIO可通過pip和conda安裝,將控制旋鈕公開為: 易于使用和記錄的屬性。它還提供通常可消化的類型(如 NumPy 數(shù)組或本機(jī)類型)的數(shù)據(jù),并將處理 數(shù)據(jù)流(如果可用)。這使得PyADI-IIO易于添加到諸如 Jupyter Notebook,并輕松地將數(shù)據(jù)輸入機(jī)器學(xué)習(xí)管道,而無需 不得不求助于不同的工具或復(fù)雜的數(shù)據(jù)轉(zhuǎn)換 - 允許開發(fā)人員 專注于他們的算法,而不是一些困難的 API 或數(shù)據(jù)對(duì)話。
MATLAB 集成 — 連接到 MATLAB
在MATLAB方面,提供了對(duì)CN0549及其組件的支持 通過ADI公司傳感器工具箱。這個(gè)工具箱,就像PyADI-IIO一樣,有 針對(duì)不同部件的設(shè)備特定類,并將它們實(shí)現(xiàn)為 MATLAB 系統(tǒng) 對(duì)象 (MSO)。MSO是MathWorks作者可以交互的標(biāo)準(zhǔn)化方式 到硬件和不同的軟件組件,并提供高級(jí)功能 協(xié)助代碼生成、Simulink 支持和常規(guī)狀態(tài)管理。許多 MATLAB 用戶可能會(huì)利用 MATLAB 的功能,這些功能被實(shí)現(xiàn)為 不知情的 MSO,例如示波器或信號(hào)發(fā)生器。在圖 10 中,我們 使用CN0532接口和DSP頻譜分析儀示波器,兩者都有 作為 MSO 實(shí)施。同樣,與PyADI-IIO一樣,有一個(gè)友好的界面用于 傳統(tǒng)的 MATLAB 用戶。
圖 10.帶示波器的傳感器工具箱流式處理示例。
除了硬件連接之外,傳感器工具箱還與 用于 HDL 和 C/C++的代碼生成工具。這些是開發(fā)的絕佳工具, 模擬和部署 IP,即使對(duì)于那些不熟悉 HDL 設(shè)計(jì)的人也是如此 或工具,但了解 MATLAB 和 Simulink。
使用TensorFlow的分類示例
CN0549套件提供了幾個(gè)來自基本數(shù)據(jù)流的示例 到機(jī)器學(xué)習(xí)分類示例。時(shí)序機(jī)器學(xué)習(xí) 數(shù)據(jù),如來自CN0532的振動(dòng)數(shù)據(jù),可以從幾個(gè)不同的數(shù)據(jù)中獲取 觀點(diǎn)。這可能包括支持向量機(jī) (SVM)、長(zhǎng)期短期 存儲(chǔ)器 (LSTM) 模型,甚至是自動(dòng)編碼器(如果數(shù)據(jù)直接解釋) 作為時(shí)間序列。但是,在許多情況下,轉(zhuǎn)換 時(shí)間序列問題轉(zhuǎn)化為圖像處理問題并利用豐富的 在該應(yīng)用領(lǐng)域開發(fā)的知識(shí)和工具。
讓我們看看 Python 中的這種方法。在提供的示例之一中 PyADI-IIO,通過將CN0532安裝到一個(gè) 擺動(dòng)風(fēng)扇。這是在風(fēng)扇的不同設(shè)置下完成的(睡眠、常規(guī)、 過敏原),在每種模式下,捕獲了 409,600 個(gè)樣本。檢查時(shí) 圖11中的這些數(shù)據(jù),過敏原病例的時(shí)域很容易識(shí)別 但另外兩種情況更難區(qū)分。這些可能可以通過檢查識(shí)別,但讓算法識(shí)別這些情況可能是錯(cuò)誤的 在時(shí)域中容易。
圖 11.時(shí)間序列中的風(fēng)扇振動(dòng)數(shù)據(jù)。
為了幫助更好地區(qū)分用例,數(shù)據(jù)被轉(zhuǎn)換為 頻域圖和頻譜圖用于繪制不同頻率隨時(shí)間變化的濃度。圖 12 所示的頻譜圖有很多 數(shù)據(jù)差異更明顯,并且在整個(gè)時(shí)間維度上保持一致 與圖 11 相比。這些頻譜圖實(shí)際上是圖像,現(xiàn)在 可以使用傳統(tǒng)的圖像分類技術(shù)進(jìn)行處理。
圖 12.捕獲的振動(dòng)數(shù)據(jù)的頻譜圖。
將數(shù)據(jù)集拆分為訓(xùn)練集和測(cè)試集,頻譜圖為 饋送到具有三個(gè)密集層的僅中性網(wǎng)絡(luò) (NN) 模型和 較小的卷積神經(jīng)網(wǎng)絡(luò) (CNN) 模型。兩者都是在 TensorFlow,能夠在100%的測(cè)試驗(yàn)證中輕松收斂到接近100% 時(shí)代。CNN在大約一半的時(shí)間內(nèi)收斂,大約1%的可調(diào)諧 參數(shù),使其成為迄今為止更高效的設(shè)計(jì)。培訓(xùn)趨同 圖 13 提供了精度與紀(jì)元的關(guān)系圖,以概述 CNN 的快速收斂。
圖 13.CNN 隨時(shí)間推移的振動(dòng)頻譜圖訓(xùn)練精度。
所有 Python 腳本、筆記本和數(shù)據(jù)集都可用于此示例 在 GitHub 上的 PyADI-IIO 源代碼樹下。由于提供了數(shù)據(jù)集,因此 甚至可以在沒有CN0549的情況下使用TensorFlow的示例演示 硬件。但是,使用硬件,訓(xùn)練好的模型可用于 實(shí)時(shí)推理。
邊緣到云:遷移到嵌入式解決方案
創(chuàng)建模型后,可以部署該模型以用于推理目的或決策 制作。使用CN0549,可以將其放置在數(shù)據(jù)所在的遠(yuǎn)程PC上 從CN0540流式傳輸或直接在嵌入式處理器上運(yùn)行。取決于 在實(shí)現(xiàn)中,將模型放置在處理器中將需要更多 工程工作,但能效可以提高一個(gè)數(shù)量級(jí),并且將 能夠?qū)崟r(shí)操作。幸運(yùn)的是,在過去的幾年里,有 用于部署的工具和軟件的巨大發(fā)展增長(zhǎng) 機(jī)器學(xué)習(xí)模型。
利用 FPGA
Xilinx 和英特爾都擁有高級(jí)綜合 (HLS) 工具來轉(zhuǎn)換高級(jí) 語(yǔ)言轉(zhuǎn)換為在 FPGA 上運(yùn)行的 HDL 代碼。這些通常會(huì)與 TensorFlow、PyTorch 或 Caffe 等 Python 框架有助于將模型轉(zhuǎn)換為 IP 核,允許工程師將 IP 部署到 DE10-Nano、Cora Z7-07S,或自定義系統(tǒng)。然后,這些IP核將被縫合到開放中 ADI提供的HDL參考設(shè)計(jì)。圖 14 顯示了一個(gè)帶注釋的屏幕截圖 來自 Vivado 的 Cora Z7-07S CN0540,專注于數(shù)據(jù)路徑。在 設(shè)計(jì),來自CN0540的數(shù)據(jù)通過SPI引腳讀取,以及24位樣本 由 SPI 引擎解釋,并傳遞到 DMA 控制器到內(nèi)存中。 任何 DSP 或機(jī)器學(xué)習(xí)模型都可以直接插入到此管道中 在數(shù)據(jù)路徑中。
圖 14.Cora Z7-07S HDL 參考設(shè)計(jì)數(shù)據(jù)路徑顯示在 Vivado 2019.1 中。
利用微處理器
而不是將算法轉(zhuǎn)換為HDL層,它們可以是 直接在 Arm 核心中運(yùn)行。取決于數(shù)據(jù)速率和復(fù)雜性 算法,這是一個(gè)合理的開發(fā)路徑,通常更多 簡(jiǎn)單。為 Arm 核心開發(fā) C 代碼甚至 Python 將比HDL花費(fèi)更少的開發(fā)資源和時(shí)間,并且 通常更容易維護(hù)。
像 MATLAB Embedded Coder 這樣的工具甚至可以簡(jiǎn)化這個(gè)過程,并自動(dòng)將 MATLAB 轉(zhuǎn)換為 Arm 內(nèi)核的可嵌入和優(yōu)化的 C 代碼。 或者,TensorFlow具有可嵌入的TensorFlow Lite等工具。 他們的 Python 庫(kù)的 C 版本,允許向 嵌入式目標(biāo)。
智能決策拓?fù)?/p>
基于狀態(tài)的監(jiān)控不是一刀切的硬件和 軟件,這就是CN0549設(shè)計(jì)靈活的原因。當(dāng)我們 考慮諸如CbM的異常檢測(cè)等問題,通常可以解決 從兩個(gè)時(shí)間尺度:一個(gè)我們需要立即做出反應(yīng),例如在 與安全相關(guān)的場(chǎng)景,或長(zhǎng)期時(shí)間尺度上與維護(hù)或設(shè)備更換更相關(guān)的場(chǎng)景。兩者都需要不同的算法,處理 權(quán)力和方法。
在理想情況下,作為機(jī)器操作員,我們將擁有一個(gè)大型數(shù)據(jù)湖 訓(xùn)練我們的模型,并且兩者都處理短期檢測(cè)而不會(huì)造成麻煩 事件,以及從正在運(yùn)行的設(shè)備連續(xù)傳輸數(shù)據(jù)以備將來使用 維護(hù)預(yù)測(cè)。但是,對(duì)于大多數(shù)運(yùn)營(yíng)商來說,情況可能并非如此。 數(shù)據(jù)湖更像是干涸的河床。對(duì)某些人來說也可能很困難 考慮到安全問題,執(zhí)行數(shù)據(jù)收集的現(xiàn)成解決方案, 物理位置、網(wǎng)絡(luò)或拓?fù)湟蟆_@些困難 推動(dòng)對(duì)更多定制解決方案的需求。
CN0549是一個(gè)具有多種連接選項(xiàng)的獨(dú)立系統(tǒng)。因?yàn)樗\(yùn)行 標(biāo)準(zhǔn) Linux、以太網(wǎng)和 Wi-Fi 等傳統(tǒng)網(wǎng)絡(luò)堆棧無法正常工作 盒子,如果需要,甚至可以連接蜂窩調(diào)制解調(diào)器。在實(shí)踐中 在應(yīng)用中,有一些典型的拓?fù)浣Y(jié)構(gòu)非常突出,如圖 15 所示。
圖 15.CbM 網(wǎng)絡(luò)拓?fù)洹?/strong>
圖 15 所示的最左側(cè)配置是脫機(jī)收集案例, 這可能發(fā)生在遠(yuǎn)程站點(diǎn)或連接到互聯(lián)網(wǎng)的地方 不可能。在這種情況下,大型存儲(chǔ)介質(zhì)將與平臺(tái)共存 并按計(jì)劃手動(dòng)收集。或者,其他兩個(gè)選項(xiàng) 將數(shù)據(jù)流式傳輸?shù)焦步K結(jié)點(diǎn)。圖 15 的中間配置為 一個(gè)隔離的網(wǎng)絡(luò),可能只是組織內(nèi)部的網(wǎng)絡(luò),或者只是一個(gè) 遠(yuǎn)程位置中集中收集數(shù)據(jù)的平臺(tái)集群。這可能會(huì) 出于安全考慮或只是缺乏連接而必需。的設(shè)置 CN0549對(duì)于任何這些配置都很容易,并且可以針對(duì) 終端部署的特定需求。
最終配置是直接云選項(xiàng),其中每個(gè)平臺(tái)都直接 訪問互聯(lián)網(wǎng)并將測(cè)量推送到云端。由于 CN0549 運(yùn)行 在Linux上,該平臺(tái)可以利用不同云供應(yīng)商(如Microsoft)的API。 Azure IoT 或 Amazon IoT Greengrass 從 Python 等語(yǔ)言輕松創(chuàng)建 開始為新連接的設(shè)備構(gòu)建數(shù)據(jù)湖的簡(jiǎn)單途徑。
當(dāng)云和本地進(jìn)程之間存在一致的連接時(shí), 正如我們?cè)谛枰蚩梢灾g討論的那樣,可以拆分不同的算法 在本地運(yùn)行以及可以在云中運(yùn)行的內(nèi)容。這將有自然的權(quán)衡 在對(duì)算法復(fù)雜性、延遲的處理能力要求之間 事件,以及可發(fā)送到云的內(nèi)容的帶寬限制。然而 由于它非常靈活,因此可以輕松探索這些因素。
結(jié)論
CN0549 CbM平臺(tái)提供系統(tǒng)靈活性和多種軟件 為設(shè)計(jì)人員開發(fā)應(yīng)用程序時(shí)提供的資源。深入了解 軟件堆棧已經(jīng)提供了關(guān)于如何不同的討論 組件可用于 CbM 和預(yù)測(cè)性維護(hù) (PdM) 開發(fā)。由于軟件、HDL、原理圖和集成的開放性 借助數(shù)據(jù)科學(xué)工具,設(shè)計(jì)人員可以利用他們所需的組件 整個(gè)堆棧的終端系統(tǒng)。綜上所述,此狀態(tài)監(jiān)測(cè) Design 提供了一個(gè)易于使用的開箱即用解決方案,并配有開源 軟件和硬件,提供靈活性并允許設(shè)計(jì)人員實(shí)現(xiàn) 在更短的時(shí)間內(nèi)獲得更好的定制結(jié)果。
審核編輯:郭婷
-
傳感器
+關(guān)注
關(guān)注
2566文章
53008瀏覽量
767641 -
FPGA
+關(guān)注
關(guān)注
1645文章
22050瀏覽量
618670 -
python
+關(guān)注
關(guān)注
56文章
4827瀏覽量
86794
發(fā)布評(píng)論請(qǐng)先 登錄
開源、可重復(fù)使用的軟件堆棧助力實(shí)現(xiàn)實(shí)時(shí)處理和CbM算法開發(fā)

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

可重用機(jī)床編碼技術(shù)及重構(gòu)算法研究
如何使用XC4VLXl5實(shí)現(xiàn)紅外圖像的實(shí)時(shí)處理?
請(qǐng)問怎樣去設(shè)計(jì)一種音/視頻實(shí)時(shí)處理系統(tǒng)?
經(jīng)典C語(yǔ)言接口與實(shí)現(xiàn):創(chuàng)建可重用軟件的技術(shù)
可重用機(jī)床編碼技術(shù)及重構(gòu)算法研究
一種基于實(shí)時(shí)處理的數(shù)字濾波器快速算法
基于DSP人工混響算法實(shí)時(shí)處理系統(tǒng)
AN-304:?jiǎn)涡酒盎摺?b class='flag-5'>可處理日志、反日志進(jìn)行實(shí)時(shí)處理

支持CN0549 CbM平臺(tái)的實(shí)時(shí)處理和算法開發(fā)

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

評(píng)論