随着新兴市场的不断增长和随之而来的技术要求,一些技术日益受到重视和利用。其中一种技术是“数字信号处理”(DSP),它可以采用芯片的形式,也可以作为支持“片上系统”(SoC) 集成的 IP 内核。虽然 DSP 已经存在了很长时间,但最新几代 DSP 支持的功能对于满足特定市场的需求至关重要。物联网 (IoT) 领域就是这样的一种市场。许多物联网设备的性质使其受益于运行“实时 *** 作系统”(RTOS)。本文介绍了如何将 DSP 和 RT-Thread RTOS 一起用于物联网应用。
DSP 技术的发展
DSP 的作用是转换和处理实际的模拟信号,这些信号本身具有连续值。处理 *** 作是通过信号处理算法来执行的。作为自 1980 年代以来存在至今的技术,DSP 在硬件功能以及软件开发工具和基础设施方面取得了长足进步。早些年,人们用汇编语言将算法编程到 DSP 上。随着 DSP 市场的扩大和算法变得更加复杂,其架构不断发展,促进了高级语言编译器的开发。
嵌入式 DSP 内核芯片包括片上内存,该内存容量通常可以满足特定的任务。现代 DSP 应用领域包括音频/语音处理、图像处理、电信信号处理、传感器数据处理和控制系统。然后是物联网市场,在众多用例中,它涵盖了这些应用的组合。行业分析公司 Markets and Markets 预计,到 2027 年,全球物联网技术的市值将增长到 5664 亿美元。
为什么 DSP 非常适合物联网设备?
物联网使用不同类型的传感器收集的数据来实现实际事物之间的通信和连接。DSP 用于分析和处理从传感器接收的持续变化的信号。DSP 分析和处理音频、视频、温度、压力或湿度等实际信号。例如,CEVA-SensPro2 传感器中枢 DSP 系列专门用于处理和融合多个传感器以及用于上下文感知中的神经网络推理。DSP 任务涉及准确和精确的实时重复数值计算。物联网市场的增长促使传感器得到越来越多的部署,人们需要以节能的方式实时处理所有收集的数据。这种趋势大力推动了在物联网设备上直接处理数据,而不是发送到云端进行处理。
目前正在发生的另一个趋势是,人们越来越多地使用基于“人工智能”(AI) 的算法在本地物联网设备上进行处理数据。人工智能算法基于神经网络模型,需要高水平的并行性能才能高效执行。并行计算是 DSP 优于通用中央处理器 (CPU) 的关键优势,为了满足这一要求,现代 DSP 架构采用宽矢量和单指令多数据 (SIMD) 功能。
简而言之,基于 DSP 的强大解决方案可以满足现代物联网设备的高性能计算需求和低功耗要求。
为什么 DSP 非常适合 RTOS?
正如 DSP 是一种专用处理器一样,RTOS 也是一种专用 *** 作系统。DSP 专门用于极其快速、可靠地处理实际数据。RTOS 专门用于可靠地满足响应/反应时间方面的特定时序要求。正如 DSP 比通用 CPU 更紧凑一样,与常规 *** 作系统相比,RTOS 也是如此。这些特性符合物联网设备的要求,使得 DSP 和 RTOS 成为物联网应用的完美搭档。
在过去,嵌入式设备通常只有一个专门用途,并且通常利用 8 位或 16 位微控制器执行 *** 作。这些设备可以在没有 RTOS 的情况下实施管理。但是当今的物联网设备更加复杂,需要一个 组合 ,CPU 、DSP 以及一个 RTOS,来实现管理控制功能和运行复杂的信号处理任务。
问题是:现代 DSP 是否足以应对物联网设备的信号处理和控制功能?答案是肯定的。目前,物联网和其他嵌入式设备正在迅速采用混合式 DSP 架构,该架构可同时提供面向 DSP 和面向控制器的功能。这种混合式 DSP 支持超长指令字 (VLIW) 架构实施、单指令多数据 (SIMD) *** 作、单精度浮点、紧凑型代码、全套 RTOS、超快速上下文切换、动态分支预测等。因此,无需在物联网设备上使用额外的处理器来运行 RTOS。
面向 DSP 的 RTOS
基于 DSP 的 RTOS *** 作系统旨在利用 DSP 的高性能特性。它是一种基于优先级的抢占式、多任务 *** 作系统,具有极低的中断延迟。这些 RTOS 带有驱动程序、应用程序编程接口 (API) 和运行时芯片支持库 (CSL)。该系统支持控制所有片上外设,比如高速缓存、直接内存访问 (DMA)、定时器、中断单元等。因此,物联网应用开发人员能够轻松配置 RTOS 以处理资源请求和管理系统。
RT-Thread(适合物联网应用的 RTOS)
RT-Thread 是一种开源的实时 *** 作系统 (RTOS)。该 RTOS 针对物联网设备进行了专门优化,具有资源占用率极低、可靠性出色、可扩展性优异等特点。RT-Thread 由丰富的中间件以及物联网设备所需的广泛硬件和软件生态系统提供支持。它支持 GCC、Keil、IAR 等所有主流编译工具,以及各种标准接口,如POSIX、CMSIS、C++ 应用环境、Micropython 和 Javascript 。RT-Thread 还能为所有主流 CPU 和 DSP 架构提供强大的支持。RT-Thread 借助 RTOS 消息传递、信号量等服务,高效一致地处理线程间的通信和同步。RT-Thread 具有两个版本:标准版本适用于资源丰富的物联网设备,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 的物联网设备可以处理不同资源之间的许多通信任务,同时不会为此而中断 RTOS。例如,多核通信接口 (MCCI) 机制可实现内核之间的命令通信和消息传递。内核之间的通信是使用 AXI 从属端口直接访问专用命令寄存器来实现的。DSP 具有专门的控制和指示,用于通过 MCCI 跟踪通信状态。
多核通信接口
内核之间的消息传递是使用每个 32 位的 MCCI_NUM 专用命令寄存器来执行的。32 位 COM_REGx 寄存器由外部内核通过 AXI 从属端口写入,并且只能由该内核读取。命令发起内核最多可以同时写入四个寄存器(128 位 AXI 总线)或八个寄存器(256 位 AXI 总线)。
当命令发起内核将命令输出到 COM_REGx 之后,寻址寄存器将会得到更新,同时 COM_STS 寄存器中的相关状态位也会得到更新。此外,一个中断(MES_INT) 被断言以通知接收的内核。
接收内核读取其中一个 COM_REGx 寄存器后,会向发起内核发送读取指示。读取指示由接收内核使用专用的 RD_IND(读取指示)MCCI_NUM 位总线接口发送。RD_IND 总线的每一位分别表示来自其中一个 COM_REGx 寄存器的读取 *** 作。如果使用 IO 接口,接收内核一次只能读取一个 COM_REGx 寄存器。因此,多核通信接口不仅更易于实现不同内核之间的同步,而且更易于这些内核上的不同任务之间实现同步。
CEVA 已将许多不同的 RTOS 移植到其 DSP 产品中。最近新增的 RTOS 是 RT-Thread RTOS 普通版和 Nano 版。RT-Thread 已被移植到多个 CEVA DSP,例如 SensPro2、CEVA-BX1、CEVA-BX2、CEVA-XC16 等。
审核编辑:彭静欢迎分享,转载请注明来源:内存溢出
评论列表(0条)