隨著新市場的增長和隨之而來的技術要求,一些技術得到越來越多的利用。一種這樣的技術是數字信號處理 (DSP),它可以采用芯片的形式,也可以作為 IP 內核,為片上系統(tǒng) (SoC) 集成做好準備。雖然 DSP 已經存在了很長時間,但新一代 DSP 支持對于解決某些市場很重要的功能。一個這樣的市場是物聯(lián)網 (IoT)。由于許多物聯(lián)網設備的性質,它們受益于運行實時操作系統(tǒng) (RTOS)。本文著眼于如何將 DSP 和 RT-Thread RTOS 一起用于 IoT 應用程序。?
DSP技術的演進
DSP 的目的是轉換和操作真實世界的模擬信號,這些信號在自然界中不斷受到重視。該操作是通過信號處理算法執(zhí)行的。作為自 1980 年代以來一直存在的技術,DSP 在硬件功能和軟件開發(fā)工具和基礎設施方面已經發(fā)展了很多。早些年,算法是用匯編語言編寫到 DSP 上的。隨著 DSP 市場的擴大和算法變得更加復雜,架構不斷發(fā)展以促進高級語言編譯器的開發(fā)。
具有嵌入式 DSP 內核的芯片包括片上存儲器,通常足以包含執(zhí)行專用任務所需的完整程序?,F代 DSP 應用范圍包括音頻/語音處理、圖像處理、電信信號處理、傳感器數據處理和控制系統(tǒng)。然后是物聯(lián)網市場,它涵蓋了這些應用程序在眾多用例中的組合。行業(yè)分析公司 Markets and Markets 預計,到 2027 年,全球物聯(lián)網技術將增長到 5664 億美元。
為什么 DSP 非常適合物聯(lián)網設備?
物聯(lián)網就是通過使用不同類型的傳感器收集的數據來通信和連接現實世界中的事物。DSP 用于分析和處理從傳感器接收到的連續(xù)變化的信號。DSP 設計用于分析和處理音頻、視頻、溫度、壓力或濕度等真實世界的信號。例如,CEVA-SensPro2sensor hub DSP 系列設計用于處理和融合多個傳感器,以及用于上下文感知的神經網絡推理。DSP 任務涉及精確和準確的實時重復數字計算。隨著物聯(lián)網市場的增長推動越來越多的傳感器的部署,收集到的所有數據都需要進行高效的實時處理。在物聯(lián)網設備上直接處理數據,而不是將其發(fā)送到云端進行處理,這是一個很大的推動力。
現在正在發(fā)生的另一個趨勢是越來越多地使用基于人工智能 (AI) 的算法在物聯(lián)網設備上本地處理數據。人工智能算法是基于神經網絡模型的,需要高水平的并行性才能有效執(zhí)行。計算并行性是 DSP 優(yōu)于通用中央處理器 (CPU) 的關鍵優(yōu)勢,為了滿足這一要求,現代 DSP 架構正在使用寬向量和單指令多數據 (SIMD) 功能。
簡而言之,基于 DSP 的強大解決方案可以滿足現代物聯(lián)網設備的高性能計算需求和低功耗需求。
為什么 DSP 非常適合 RTOS?
正如 DSP 是一種專用處理器一樣,RTOS 也是一種專用操作系統(tǒng)。DSP 致力于極其快速和可靠地處理真實世界的數據。RTOS 致力于可靠地滿足響應/反應時間的特定時序要求。由于 DSP 與通用 CPU 相比更緊湊,因此與常規(guī)操作系統(tǒng)相比,RTOS 也是如此。這些特性符合物聯(lián)網設備的要求,使 DSP 和 RTOS 成為物聯(lián)網應用的完美匹配。
從歷史上看,嵌入式設備通常只有一個專用用途,并且通??梢允褂?8 位或 16 位微控制器。這些設備可以在沒有 RTOS 的情況下進行管理。但是今天的物聯(lián)網設備更加復雜,需要一個 32 位組合的 CPU 和 DSP 以及一個 RTOS 來管理控制功能和運行復雜的信號處理任務。
要問的問題是,現代 DSP 是否足以處理物聯(lián)網設備的信號處理和控制功能。答案是,是的。提供面向 DSP 的功能和面向控制器的功能的混合 DSP 架構正在迅速被物聯(lián)網和其他嵌入式設備采用。這種混合 DSP 支持超低指令字 (VLIW) 架構實現、單指令多數據 (SIMD) 操作、單精度浮點、緊湊的代碼大小、完整的 RTOS、超快速上下文切換、動態(tài)分支預測等。這消除了物聯(lián)網設備上需要額外的處理器來運行 RTOS。
面向DSP的實時操作系統(tǒng)
基于 DSP 的 RTOS 旨在利用 DSP 的高性能特性。它是一個搶占式、基于優(yōu)先級的多任務操作系統(tǒng),并提供非常低的中斷延遲。這些 RTOS 帶有驅動程序、應用程序編程接口 (API) 和特定于 DSP 芯片的 DSP 功能的運行時芯片支持庫 (CSL)??梢钥刂扑衅贤鈬O備,例如高速緩存、直接內存訪問 (DMA)、定時器、中斷單元等。這使物聯(lián)網應用程序開發(fā)人員能夠輕松配置 RTOS 以處理資源請求和管理系統(tǒng)。
RT-Thread,物聯(lián)網應用的實時操作系統(tǒng)
RT-Thread 是一個開源的實時操作系統(tǒng) (RTOS)。它展示了針對物聯(lián)網設備優(yōu)化的資源占用率極低、可靠性高、可擴展性高的實時操作系統(tǒng)的特點。RT-Thread 由豐富的中間件以及物聯(lián)網設備所需的廣泛硬件和軟件生態(tài)系統(tǒng)提供支持。支持GCC、Keil、IAR等所有主流編譯工具,支持POSIX、CMSIS、C++應用環(huán)境、Micropython、Javascript等多種標準接口。RT-Thread 還為所有主流 CPU 和 DSP 架構提供了強大的支持。線程間通信和同步通過諸如 RTOS 消息傳遞、信號量等服務得到有效和一致的處理,RT-Thread 提供用于資源豐富的物聯(lián)網設備的標準版本和用于資源受限系統(tǒng)的 Nano 版本。有關詳細信息,請參閱他們的網站:https://www.rt-thread.io/
據報道,截至 2021 年 12 月,RT-Thread 已為 15 億臺設備供電。[來源:RT-Thread]
CEVA DSP 和 RT-Thread RTOS
由于 CEVA 的 DSP 架構原生設計為支持 RTOS 功能和超快速上下文切換,因此使用 CEVA DSP 和 RT-Thread RTOS 實現的物聯(lián)網設備可以處理不同資源之間的許多通信任務,而無需為此中斷 RTOS。例如,多核通信接口 (MCCI) 機制實現了內核之間的命令通信和消息傳遞。內核之間的通信是通過使用 AXI 從端口直接訪問專用命令寄存器來實現的。DSP 有專門的控制和指示來跟蹤通過 MCCI 的通信狀態(tài)。


?
多核通信接口(來源:CEVA)
內核之間的消息傳遞是通過使用每個 32 位的 MCCI_NUM 專用命令寄存器來執(zhí)行的。32 位 COM_REGx 寄存器由外部內核通過 AXI 從端口寫入,內核只讀。命令啟動器內核最多可以同時寫入四個寄存器(128 位 AXI 總線)或同時寫入八個寄存器(256 位 AXI 總線)。
當啟動命令的內核將命令輸出到 COM_REGx 時,尋址寄存器會更新,COM_STS 寄存器中的相關狀態(tài)位也會更新。此外,中斷 (MES_INT) 被斷言以通知接收到的內核。
接收內核讀取其中一個 COM_REGx 寄存器后,會向發(fā)起方發(fā)送讀取指示。讀取指示由接收內核使用專用的 RD_IND(讀取指示)MCCI_NUM 位總線接口發(fā)送。RD_IND 總線的每一位分別表示來自 COM_REGx 寄存器之一的讀取操作。使用 IO 接口,接收內核一次只能讀取一個 COM_REGx 寄存器。不僅使不同內核之間的同步變得更容易,而且使這些內核上的不同任務之間的同步變得更容易。
CEVA 已將許多不同的 RTOS 移植到其 DSP 產品中。最新添加的是對 RT-Thread RTOS 的普通版和 nano 版的支持。RT-Thread 已移植到多個 CEVA DSP,例如 SensPro2、CEVA-BX1、CEVA-BX2、CEVA-XC16 等。
電子發(fā)燒友App








評論