DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 106|回复: 0
打印 上一主题 下一主题

基于 DSP 芯片阵列的实时操作系统的研究

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 14:03:59 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

                      摘要:文提出一种基于数字信号处理领域(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 软件模块化的设计
  采用模块化设计、分层结构和微内核的设计思想,支持操作系统在不同的处理器之间移植。针对嵌入式系统应用特点,操作系统本身要尽可能的降低对系统资源的占用,支持用户对操作系统进行裁减。






  图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、优先级、运行状态、堆栈状态、运行时间等信息。
  内核对象查看。显示内核对象的状态。
  多处理器通信状态查看。
  处理器负载查看。
  任务运行状态时间线。






  图 4 Cube OS 支持的声纳演示控制台
  7 结论
  本文首次提出了基于 ADI Tiger Sharc(TS101)DSP 芯片硬件平台的实时嵌入式操作系统。该操作系统软件设计模块化,可由用户进行裁剪和配置。采用的软硬件协同设计的思想,满足实时嵌入式操作系统对时间响应的要求。该操作系统成功运用于海军水下探测项目某型号声纳信号处理平台,提供了完善的软件系统服务,优化了硬件资源配置,极大的简化了算法开发人员对DSP 芯片的开发。
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-9-28 00:24 , 耗时 0.084767 秒, 20 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表