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


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








評(píng)論