摘要:文提出一种基于数字信号处理领域(DSP 芯片)的实时嵌入式操作系统,对该嵌入式操作系统的内核体系结构和特点进行了深入的分析,并将此操作系统应用到某型号声纳系统中。实际表明该实时操作系统具有很好的实时性和可靠性。
1 引言
数字信号处理器(DSP)的出现,伴随着数字信号处理技术的空前发展。由多DSP 组成的阵列信号处理系统,使通信、雷达、声纳进入数字化信息时代。但由于阵列信号处理系统结构复杂,算法实现非常困难,程序设计人员在解决实际物理工程问题时,不但需要解决算法实现,而且要用更多的时间解决多任务并发工作、动态进程调度、同步信息传输等问题(前者是物理工程的算法实现,后者属于计算机操作系统的内容)。为了解决物理工程和系统工程的矛盾,引入“多DSP 嵌入式实时操作系统”是彻底解决物理工程技术人员编程困难的途径,也是目前国际上比较推崇的解决方案。
2 基于多DSP 芯片的操作系统
“多 DSP 嵌入式实时操作系统”把操作系统技术和物理工程技术混合组成嵌入式信号处理系统,实现了通用的硬件系统控制管理、资源优化分配、任务实时调度等软件功能的集合,可简化声纳、雷达、通信等嵌入式实时系统的设计难度和提高系统的稳定性和可靠性。操作系统是软件功能模块的集合,实现了对硬件系统和资源的优化控制和分配管理,提供了一组硬件访问控制函数接口,构造了硬件系统的功能抽象层,使系统的开发者可以方便有效的使用系统的所有资源完成所需的系统设计。使用操作系统有如下优点:
1)开发者可直接利用操作系统提供的底层硬件访问和实时控制功能,不用关心底层硬件,从而提高开发效率;
2)操作系统的多任务开发模型,使应用软件设计模块化,使软件模块可重用;
3)操作系统的实时软件模型,使应用系统具备更高的实时性;
4)使用统一的操作系统接口进行应用软件开发,使应用软件具备可移植性,可在不同处理器间方便的移植软件;
5)操作系统软件模块与应用软件模块相集成的方式使系统更稳定可靠。
3 Cube OS 的硬件运行环境
Cube OS 运行在由中科院声学研究所研制的ADSP-TS101S 高速阵列信号处理板卡上。该板卡是基于TigerSHARC(ADSP-TS101S)芯片的一块高性能的数字信号处理板。选用8 颗300MHz 的TigerSHARC (ADSP-TS101S)芯片,峰值浮点运算能力可达14.4GFLOPS。该板卡采用32bit/66MHz 的CPCI 总线,并提供大容量的存储器,包括高达512M 字节的SDRAM和8M 字节的FLASH。
每簇的DSP间通过多条Link口进行互连,提供了分布式处理的系统结构。这种结构大大增加了DSP 间数据交换的吞吐能力。基于Link口的数据传输,完全可以利用DSP 的DMA在后台进行而对其他DSP没有影响。从信号处理算法实现上考虑,这种结构适合基于流水线的并行算法。并且两个DSP簇之间也提供了Link口通路,更增强了整板分布式处理的性能。
Cube OS 操作系统是中科院声学所声纳工程中心开发的一个嵌入式的实时操作系统,具有单处理器操作系统的基本功能,并具有支持多处理器之间进行通信的能力。目前已经在ADI 公司的TS101DSP 芯片阵列上运行,版本为1.0。
4 Cube 的软件系统设计
4.1 软件模块化的设计
采用模块化设计、分层结构和微内核的设计思想,支持操作系统在不同的处理器之间移植。针对嵌入式系统应用特点,操作系统本身要尽可能的降低对系统资源的占用,支持用户对操作系统进行裁减。
图 1 Cube 操作系统的软件体系结构
4.2 Cube 微内核结构
操作系统在设计中采用微内核结构和分层模式,便于系统的扩展和移植。分层模式是指与处理器紧密相关的部分采用汇编语言;与处理器无关的部分采用C 或者C++语言进行设计开发。操作系统内核结构采用微内核(micro-kernel)体系结构。微内核是一个小型的操作系统,它为模块化扩展提供基础。
只有基本的操作系统功能才能放在内核中。使用微内核结构有以下一些优点:
为所有的服务提供一致性接口;
良好的可扩展性;
为增加新的功能或删除一个已有功能提供灵活性;
提高可靠性;
微内核有助于为分布式系统提供支持。
在这种结构下,操作系统各模块的结构和组合情况如图 2 所示。
图2 微内核结构的实时嵌入式操作系统
一些关键的系统调用,或者是和处理器密切相关的部分,将被组合到内核结构中;除此之外的其它功能,如处理器间通信模块、任务调度算法、时钟管理等,将以模块化的形式与操作系统内核结合。
4.3 Cube 内核的特点
1)多任务
多任务运行使 CPU 的利用率得到的发挥,并使应用程序模块化。在实时应用中,多任务化的特点是,开发人员可以将很复杂的应用程序层次化。使用多任务,应用程序将更容易设计与维护。Cube 可以管理32 个任务,系统保留了6 个作为Cube 的系统任务。留给用户的应用程序的优先级有26 个(优先级4 ~ 29),可以多个任务共享一个优先级,扩展了用户的任务总数。Cube 是完全可剥夺型的实时内核,即Cube 总是运行就绪条件下优先级的任务。同时,Cube 不同的任务可以有相同的优先级,不同优先级的任务调度遵从FIFO,即先来先服务的原则。
2)可确定性
绝大多数 Cube 的函数调用和服务的执行时间具有可确定性,满足实时操作系统的要求。也就是说Cube 系统服务的执行时间不依赖于用户应用程序任务数目的多少。
3)中断管理
中断可以使正在执行的任务暂时挂起,执行中断服务程序。如果优先级更高的任务在中断过程中被唤醒,则中断嵌套退出后,立即执行优先级高的任务。Cube 支持的多嵌套的层数可达255。
4)系统服务
Cube 提供很多系统服务,例如信号量、互斥型信号量、消息队列、内存的动态申请与释放及时钟管理函数等。
5)可移植性
Cube 源代码大部分是用移植性很强的ANSIC 写的,与处理器硬件相关的部分是用汇编写的。汇编语言编写的部分已经压到限度,以使Cube 能够方便的移植到其它微处理器上。
6)可裁减、可配置性设计
用户往往不会在程序中用到嵌入式实时操作系统所提供的所有功能。如果将一个完整的操作系统都置于DSP 的内存之中,那么对于有限的DSP 资源是一种严重的浪费。可裁减的嵌入式实时操作系统可以根据用户的需要去掉不需要的部分,节省内存空间。可配置性针对系统中未被卸载的模块,根据应用在数量、机制、工作空间和堆栈等方面的不同需求,决定系统的规模、功能以及内存分配等。例如,用户可以配置系统的任务数目、任务堆栈大小等参数。
Cube 操作系统的可配置性通过配置文件来实现。系统提供缺省的配置文件,用户可以通过修改配置文件中的内容实现对操作系统的参数配置。例如,用户可以配置任务数、信号量数、内存和堆栈的参数等等。对于多处理器、多任务之间的物理通道和逻辑通道也需要通过用户配置来通知操作系统。
7)调试支持
Cube 操作系统向用户提供了实现多任务实时处理的一个平台,能够向用户提供足够的信息,供用户分析任务运行是否正常、了解任务和内核的状态。在调试阶段,这些信息会帮助用户方便的完成调试。操作系统在调试方面支持的主要功能有:
任务状态查看。提供DSP 任务列表,列出任务ID、优先级、运行状态、堆栈状态、运行时间等信息。
内核对象查看。显示内核对象的状态。
多处理器通信状态查看。
处理器负载查看。
任务运行状态时间线。
图 3 Cube OS 可裁剪的调试支持模块
调试支持会占用 DSP 或者CPU 的资源,对于已经完成调试不再需要调试支持的应用来说是多余的,因此调试支持应该能够被裁减掉。操作系统中的调试模块分两部分:微内核中的调试支持和系统级的调试任务。通过条件编译可以将上述两部分代码裁减掉。也可以通过不启动调试任务的方法来达到节省一部分内存空间的目的。
5 Cube 实时内核的性能指标
实时内核在实时系统中起着重要的作用,其性能的好坏将直接影响到整个系统的性能。
5.1 内核时间性能指标
基于优先级的任务抢占式调度采用软硬件协同处理的方法,运用TS101 硬件指令LD0对32 个任务中优先级的任务进行查找。进行缩短了任务切换的时间,提高了系统的实时性,Cube 的上下文切换的时间为663.3ns,满足了信号处理实时性的要求。
5.2 存储开销
另外系统存储空间的大小也是很重要的问题。嵌入式系统存储器空间的配置一般都不大。而在这有限的空间内不仅要装载嵌入式实时操作系统,还要装载用户程序。因此在我们的内核设计实现和应用开发中,除了上述各项时间性能指标,还应关注嵌入式实时内核的存储开销。Cube 的内核开销大小不到20K 字,满足在TS101 上运行的需要。
6 基于Cube 操作系统的应用
Cube 是一款针对信号处理的实时嵌入式操作系统,图4 所示为Cube 应用海军某水下探测项目某型号声纳信号处理系统平台的演示控制台。
图 4 Cube OS 支持的声纳演示控制台
7 结论
本文首次提出了基于 ADI Tiger Sharc(TS101)DSP 芯片硬件平台的实时嵌入式操作系统。该操作系统软件设计模块化,可由用户进行裁剪和配置。采用的软硬件协同设计的思想,满足实时嵌入式操作系统对时间响应的要求。该操作系统成功运用于海军水下探测项目某型号声纳信号处理平台,提供了完善的软件系统服务,优化了硬件资源配置,极大的简化了算法开发人员对DSP 芯片的开发。
[1]. ADSP-TS101S datasheet https://www.dzsc.com/datasheet/ADSP-TS101S+_1131053.html.
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。