隨著新興市場(chǎng)的不斷增長(zhǎng)和隨之而來(lái)的技術(shù)要求,一些技術(shù)日益受到重視和利用。其中一種技術(shù)是“數(shù)字信號(hào)處理”(DSP),它可以采用芯片的形式,也可以作為支持“片上系統(tǒng)”(SoC) 集成的 IP 內(nèi)核。雖然 DSP 已經(jīng)存在了很長(zhǎng)時(shí)間,但最新幾代 DSP 支持的功能對(duì)于滿足特定市場(chǎng)的需求至關(guān)重要。物聯(lián)網(wǎng) (IoT) 領(lǐng)域就是這樣的一種市場(chǎng)。許多物聯(lián)網(wǎng)設(shè)備的性質(zhì)使其受益于運(yùn)行“實(shí)時(shí)操作系統(tǒng)”(RTOS)。本文介紹了如何將 DSP 和 RT-Thread RTOS 一起用于物聯(lián)網(wǎng)應(yīng)用。
DSP 技術(shù)的發(fā)展
DSP 的作用是轉(zhuǎn)換和處理實(shí)際的模擬信號(hào),這些信號(hào)本身具有連續(xù)值。處理操作是通過(guò)信號(hào)處理算法來(lái)執(zhí)行的。作為自 1980 年代以來(lái)存在至今的技術(shù),DSP 在硬件功能以及軟件開發(fā)工具和基礎(chǔ)設(shè)施方面取得了長(zhǎng)足進(jìn)步。早些年,人們用匯編語(yǔ)言將算法編程到 DSP 上。隨著 DSP 市場(chǎng)的擴(kuò)大和算法變得更加復(fù)雜,其架構(gòu)不斷發(fā)展,促進(jìn)了高級(jí)語(yǔ)言編譯器的開發(fā)。
嵌入式 DSP 內(nèi)核芯片包括片上內(nèi)存,該內(nèi)存容量通??梢詽M足特定的任務(wù)。現(xiàn)代 DSP 應(yīng)用領(lǐ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)使用不同類型的傳感器收集的數(shù)據(jù)來(lái)實(shí)現(xiàn)實(shí)際事物之間的通信和連接。DSP 用于分析和處理從傳感器接收的持續(xù)變化的信號(hào)。DSP 分析和處理音頻、視頻、溫度、壓力或濕度等實(shí)際信號(hào)。例如,CEVA-SensPro2 傳感器中樞 DSP 系列專門用于處理和融合多個(gè)傳感器以及用于上下文感知中的神經(jīng)網(wǎng)絡(luò)推理。DSP 任務(wù)涉及準(zhǔn)確和精確的實(shí)時(shí)重復(fù)數(shù)值計(jì)算。物聯(lián)網(wǎng)市場(chǎng)的增長(zhǎng)促使傳感器得到越來(lái)越多的部署,人們需要以節(jié)能的方式實(shí)時(shí)處理所有收集的數(shù)據(jù)。這種趨勢(shì)大力推動(dòng)了在物聯(lián)網(wǎng)設(shè)備上直接處理數(shù)據(jù),而不是發(fā)送到云端進(jìn)行處理。
目前正在發(fā)生的另一個(gè)趨勢(shì)是,人們?cè)絹?lái)越多地使用基于“人工智能”(AI) 的算法在本地物聯(lián)網(wǎng)設(shè)備上進(jìn)行處理數(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)用的完美搭檔。
在過(guò)去,嵌入式設(shè)備通常只有一個(gè)專門用途,并且通常利用 8 位或 16 位微控制器執(zhí)行操作。這些設(shè)備可以在沒(méi)有 RTOS 的情況下實(shí)施管理。但是當(dāng)今的物聯(lián)網(wǎng)設(shè)備更加復(fù)雜,需要一個(gè) 組合 ,CPU 、DSP 以及一個(gè) RTOS,來(lái)實(shí)現(xiàn)管理控制功能和運(yùn)行復(fù)雜的信號(hào)處理任務(wù)。
問(wèn)題是:現(xiàn)代 DSP 是否足以應(yīng)對(duì)物聯(lián)網(wǎng)設(shè)備的信號(hào)處理和控制功能?答案是肯定的。目前,物聯(lián)網(wǎng)和其他嵌入式設(shè)備正在迅速采用混合式 DSP 架構(gòu),該架構(gòu)可同時(shí)提供面向 DSP 和面向控制器的功能。這種混合式 DSP 支持超長(zhǎng)指令字 (VLIW) 架構(gòu)實(shí)施、單指令多數(shù)據(jù) (SIMD) 操作、單精度浮點(diǎn)、緊湊型代碼、全套 RTOS、超快速上下文切換、動(dòng)態(tài)分支預(yù)測(cè)等。因此,無(wú)需在物聯(lián)網(wǎng)設(shè)備上使用額外的處理器來(lái)運(yùn)行 RTOS。
面向 DSP 的 RTOS
基于 DSP 的 RTOS 操作系統(tǒng)旨在利用 DSP 的高性能特性。它是一種基于優(yōu)先級(jí)的搶占式、多任務(wù)操作系統(tǒng),具有極低的中斷延遲。這些 RTOS 帶有驅(qū)動(dòng)程序、應(yīng)用程序編程接口 (API) 和運(yùn)行時(shí)芯片支持庫(kù) (CSL)。該系統(tǒng)支持控制所有片上外設(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)用的 RTOS)
RT-Thread 是一種開源的實(shí)時(shí)操作系統(tǒng) (RTOS)。該 RTOS 針對(duì)物聯(lián)網(wǎng)設(shè)備進(jìn)行了專門優(yōu)化,具有資源占用率極低、可靠性出色、可擴(kuò)展性優(yōu)異等特點(diǎn)。RT-Thread 由豐富的中間件以及物聯(lián)網(wǎng)設(shè)備所需的廣泛硬件和軟件生態(tài)系統(tǒng)提供支持。它支持 GCC、Keil、IAR 等所有主流編譯工具,以及各種標(biāo)準(zhǔn)接口,如POSIX、CMSIS、C++ 應(yīng)用環(huán)境、Micropython 和 Javascript 。RT-Thread 還能為所有主流 CPU 和 DSP 架構(gòu)提供強(qiáng)大的支持。RT-Thread 借助 RTOS 消息傳遞、信號(hào)量等服務(wù),高效一致地處理線程間的通信和同步。RT-Thread 具有兩個(gè)版本:標(biāo)準(zhǔn)版本適用于資源豐富的物聯(lián)網(wǎng)設(shè)備,Nano 版本適用于資源受限的系統(tǒng)。更多詳細(xì)信息,請(qǐng)參閱其網(wǎng)站:https://www.rt-thread.io/
據(jù)報(bào)道,截至 2021 年 12 月,RT-Thread 已在 15 億臺(tái)設(shè)備上運(yùn)行。[資料來(lái)源:RT-Thread]
CEVA DSP 和 RT-Thread RTOS
由于 CEVA 的 DSP 架構(gòu)是專為支持 RTOS 功能和超快速上下文切換而設(shè)計(jì)的,因此采用 CEVA DSP 和 RT-Thread RTOS 的物聯(lián)網(wǎng)設(shè)備可以處理不同資源之間的許多通信任務(wù),同時(shí)不會(huì)為此而中斷 RTOS。例如,多核通信接口 (MCCI) 機(jī)制可實(shí)現(xiàn)內(nèi)核之間的命令通信和消息傳遞。內(nèi)核之間的通信是使用 AXI 從屬端口直接訪問(wèn)專用命令寄存器來(lái)實(shí)現(xiàn)的。DSP 具有專門的控制和指示,用于通過(guò) MCCI 跟蹤通信狀態(tài)。
多核通信接口
內(nèi)核之間的消息傳遞是使用每個(gè) 32 位的 MCCI_NUM 專用命令寄存器來(lái)執(zhí)行的。32 位 COM_REGx 寄存器由外部?jī)?nèi)核通過(guò) AXI 從屬端口寫入,并且只能由該內(nèi)核讀取。命令發(fā)起內(nèi)核最多可以同時(shí)寫入四個(gè)寄存器(128 位 AXI 總線)或八個(gè)寄存器(256 位 AXI 總線)。
當(dāng)命令發(fā)起內(nèi)核將命令輸出到 COM_REGx 之后,尋址寄存器將會(huì)得到更新,同時(shí) COM_STS 寄存器中的相關(guān)狀態(tài)位也會(huì)得到更新。此外,一個(gè)中斷(MES_INT) 被斷言以通知接收的內(nèi)核。
接收內(nèi)核讀取其中一個(gè) COM_REGx 寄存器后,會(huì)向發(fā)起內(nèi)核發(fā)送讀取指示。讀取指示由接收內(nèi)核使用專用的 RD_IND(讀取指示)MCCI_NUM 位總線接口發(fā)送。RD_IND 總線的每一位分別表示來(lái)自其中一個(gè) COM_REGx 寄存器的讀取操作。如果使用 IO 接口,接收內(nèi)核一次只能讀取一個(gè) COM_REGx 寄存器。因此,多核通信接口不僅更易于實(shí)現(xiàn)不同內(nèi)核之間的同步,而且更易于這些內(nèi)核上的不同任務(wù)之間實(shí)現(xiàn)同步。
CEVA 已將許多不同的 RTOS 移植到其 DSP 產(chǎn)品中。最近新增的 RTOS 是 RT-Thread RTOS 普通版和 Nano 版。RT-Thread 已被移植到多個(gè) CEVA DSP,例如 SensPro2、CEVA-BX1、CEVA-BX2、CEVA-XC16 等?! ?/p>
?
評(píng)論
查看更多