当今的嵌入式应用已经无处不在,全球每年生产数十亿颗微处理器,其中大部分被广泛应用于各类嵌入式系统,从消费电子、通信终端及系统设备、工业控制、汽车电子系统到航空航天,无处不能看到嵌入式应用的身影。在硬件平台方面微控制器以及数字信号处理器(DSP)产品无论从品牌、成本、功能特性方面选择数以千计,您完全可以针对您的目标应用对成本、处理能力、功耗要求、集成度、开发周期、技术难度等具体要求,精心选择出最具综合优势的硬件核心平台。而在嵌入式操作系统方面,您同样不再会有桌面应用中几乎无可选择的尴尬,无论是开放源代码的Linux阵营的各种商业版本或免费版本,还是WinCE、vxWorks等“重量级”平台,抑或针对特定应用优化的如Windows Mobile、Symbian、Android等,您同样可以为您的目标应用选择一款最佳的操作系统软件平台。
嵌入式系统设计过程是软硬件联合协同开发的过程,在进行软硬件平台选择评估时,单纯地离开硬件去评估操作系统或离开操作系统评估硬件平台都有失偏颇,特别是对于很多非通用处理器来说尤其如此。当前很多嵌入式硬件平台都提供了针对目标应用优化的操作系统及软件模块资源,一些商业化的操作系统也针对主流的硬件平台进行了优化设计,提供第三方优化操作系统版本,这些资源对于嵌入式系统设计来说具有重要的意义。本文将介绍一种独特的嵌入式平台核心处理器——汇聚式处理器Blackfin以及其主流的配套操作系统及相关资源。
基于Blackfin构建独特的嵌入式平台
汇聚式处理器Blackfin 基于由 ADI 和 Intel 公司联合开发的微信号架构(MSA),它将一个 32 位 RISC 型指令集和双 16 位乘法累加(MAC)信号处理功能与通用型微控制器所具有的易用性组合在一起。这种汇聚式处理能力的组合使得Blackfin处理器能够在信号处理和控制处理应用中均发挥极佳的作用 —— 在许多应用中免除了增设单独的异构处理器的必要,极大地简化了硬件和软件设计。Blackfin处理器非常适合于满足会聚能力起关键作用的嵌入式音频、视频和通信应用的计算要求和功耗约束条件,包括多格式音频、视频、语言和图像处理,多模式基带和分组处理,控制处理和实时安全性。正是这种独特的系统架构、所具有的设计灵活性和可扩展性为Blackfin处理器赢得了广泛的适应性,例如数字家庭娱乐、网络和流媒体、汽车远程信息处理和信息娱乐、数字无线电,以及移动电视终端。
目前,Blackfin 处理器在单内核产品中可提供高达 756MHz 的性能,还提供了低至 0.8V 的业界领先的功耗性能,对于满足当今及未来的信号处理应用而言,这种高性能与低功耗的组合特征是必不可少的。Blackfin 处理器都为嵌入式系统设计提供了十分重要的特性及性能优势,包括:同时实现各种应用的高性能信号处理和高效控制处理能力;可确保产品开发时间最小化的易用型混合 16/32 位指令集架构和开发工具套件;丰富的嵌入式系统设计的软件模块资源和内置硬件资源(存储器、PWM单元、广泛的接口等);实现器件功耗模式与终端系统要求相适应的动态电源管理能力。所有的 Blackfin 处理器均具有多个独立的 DMA 控制器,这些控制器支持自动数据传输,而所需的处理器内核开销极少。此外,Blackfin处理器具有丰富的存储器配置,可以极大地方便嵌入式系统的应用开发。以ADSP-BF51x系列为例,该处理器同时具有NOR闪存、NAND闪存、铁电存储(FRAM)、SDRAM,还提供了支持Lockbox安全技术的一次性可编程存储器。
Blackfin 处理器架构还完全符合 SIMD 标准,并包括用于加速视频和图像处理的指令。该架构很适合于全信号处理/分析能力。 由于具有最佳代码密度且只需进行极少(或者完全不需要进行)代码优化处理,因此可缩短产品的 面市时间,而不会遇到其他传统处理器所常见的性能空间障碍。如今,在许多过去需要同时采用一个高性能信号处理器和一个单独的高效控制处理器的应用中,只需采用一个 Blackfin 处理器即可。这种好处极大地缩减了开发时间和成本,并最终加快了终端产品的面市进程。此外,由于只需采用一组开发工具,因而减少了系统设计工程师的初期费用和学习时间。
操作系统在Blackfin上的组织结构
广泛优化的操作系统资源
除了硬件平台之外,嵌入式操作系统的选择对于正在从事新的嵌入式开发项目的工程师来说同样重要。对于Blackfin处理器来说,除了处理器本身的独特性能特性优势外,强大的嵌入式操作系统资源是该处理器获得广泛应用的另一个关键因素。Blackfin处理器支持包括VisualDSP自带的操作系统内核(VDK)、ThreadX、uCLinux和Nucleas等获得业界广泛应用的操作系统,避免了工程师在从其它处理器平台移植到Blackfin平台时因更改操作系统而延长终端产品开发周期。这些操作系统各自具有不同的特性和功能以及具有不同的价格、版权费用条款。从特性上看,有代码非常紧凑、复杂度低的操作系统(VDK),有复杂、具有丰富特性的操作系统(如uClinux),具有极高可靠性的INTEGRITY,专注于汽车市场需求的RTA-OSEK,等等 。下面将对以下几类操作系统进行简要介绍。
Blackfin处理器支持的主要操作系统及第三方供应商列表。
1. ThreadX
Express Logic公司的ThreadX是优秀的硬实时嵌入式操作系统,具有代码规模小、实时性强、可靠性高、方便使用等特点,广泛应用于汽车电子、消费电子、工业自动化、网络解决方案、军事与航空航天等领域中。Express Logic公司作为全球重要的嵌入式操作系统提供商具有强大的产品研发能力,从而保证了该操作系统的持续升级。最新的ThreadX V5.2版本在小型化的ThreadX 5.1框架基础上进一步提升了系统速度性能,并引入了友好的开发特性,例如动态事件过滤、扩展的事件跟踪、SMP增强特性以及降低对全局存储器的需求。
Express Logic公司与ADI公司建立了深入的合作关系,针对ADSP-BF534、ADSP-BF536和ADSP-BF537处理器提供了优化的实时操作系统,针对Blackfin双内核处理器ADSP-BF561开发了增强版的ThreadX实时操作系统(ThreadX SMP RTOS),该产品大大简化了开发商管理在双内核SMP嵌入式处理器上的编程任务,为Blackfin处理器的双内核提供负载平衡,缩短了双内核平台的开发过程(ThreadX SMP版本是消费电子应用中第一个真正的多处理器开发环境)。ThreadX实时操作系统可为Blackfin用户提供实时、多线程应用,Express Logic的picokernel结构使该产品具有很高的性能和极小的代码规模,最小采用4KB的独立文件构建所有系统服务。针对Blackfin处理器优化的ThreadX还与ADI公司的VisualDSP++集成开发环境(IDE)的无缝集成,进一步优化了嵌入式系统开发环境。
2. uClinux
Linux是一种获得广泛应用的嵌入式操作系统,在所有主流的嵌入式系统中,嵌入式Linux无疑具有非常重要的地位。无论是其超强的网络功能,可任意裁剪以适应小巧的嵌入式系统,完全免费、通用的Linux API的特点,以及全球拥有数千万的爱好者所产生的广泛开放资源,都使其成为嵌入式应用中的重要力量。uClinux是针对微处理器应用的Linux系统,完全开放源码,并针对嵌入式应用的特点对Linux的内核进行了修改和重新编译,内核更小。uClinux包含Linux常用的API,保留了原来Linux操作系统具有的高稳定性、强大的网络功能和卓越的文件系统支持功能等优点。
uClinux操作系统可直接运行于Blackfin处理器,对于很多嵌入式应用来说,在与Blackfin处理器同等价位的方案中很少有能支持Linux的。然而,在面向特定的嵌入式应用时,例如内存空间有限或需要实时确定性以及高安全性能的应用,Linux仍存在许多挑战。工具链的改善、不断演变的标准化努力等,都有助于提升Linux对于所有嵌入式应用的价值。为此,ADI公司在uClinux里集成了大量硬件驱动和应用例程,包括无线局域网驱动、音/视频编解码器驱动等,从而将帮助客户非常方便地从原来的系统移植到Blackfin平台上来。此外,ADI还与全球领先企业建立了广泛的合作关系,为基于Linux的Blackfin嵌入式系统应用开发提供了大量的优化的操作系统应用资源。ADI与公认的uClinux先驱Arcturus Networks公司联合推出的新型uCBF54x启动开发工具套件和系统模块就是这样的一个范例。该开发套件可以加快具有多通道语音、mini PBX或IP视频能力的嵌入式媒体设备的开发过程,提供的软件包括开源uClinux BSP(板级支持包)以及Arcturus语音与管理中间件,包括完整的SIP和RTP堆栈。经过多年积累,Blackfin Linux已经成为嵌入式系统领域最为稳定的嵌入式Linux发行包之一。
3. µC/OSII
μC/OSII作为一个源码公开的嵌入式实时操作系统,可以支持64个任务,同时支持信号量、消息队列、邮箱等多种常用的进程间通信方式。该操作系统程序可读性强、移植性好、可裁剪,并已在通信、电子、自动化等领域的嵌入式设备中获得了大量的应用。µC/OSII是Blackfin所支持的RTOS之一,在高速的Blackfin处理器上有很强的硬实时性能,操作系统中断响应时间约为110周期(600MHz下约0.18us),同样针对Blackfin处理器的主要目标应用集成了大量硬件驱动模块和各种库资源。
如果上述的操作系统都不能满足您的目标应用需求,那么您可以采用随VisualDSP自带的操作系统内核(VDK)。VDK是一个小而健壮的内核,支持当前所有的Blackfin处理器以及未来可能出现的新Blackfin处理器产品,基于VDK的嵌入式系统开发能满足在不同Blackfin处理器之间的API兼容性。更重要的是,使用VDK不需要支付任何额外的成本,无须支付许可证费用或使用费,它是作为VisualDSP 的一部分提供的,会随着VisualDSP 的升级而升级。VDK很好地整合到了VisualDSP中,在项目的静态设置(如线程创建和信号量)管理非常方便,提供了很多的便利功能,包括线程、优先级、信号量、消息传递、关键域和禁止调度域等
完善的软件开发工具环境
随着嵌入式处理应用越来越复杂、投放市场的时间越来越急迫,完善的开发环境变得越来越重要。除了上述全系列优化的嵌入式操作系统外,具有完整的开发环境是其受广泛欢迎的重要原因之一。ADI提供业界一流的工具、初学套件与支持,包括熟知的、能够支持其他Blackfin处理器的ADI CROSSCORE软件与硬件工具,这些工具包括获奖的VisualDSP++集成开发与调试环境、仿真器,以及EZ-KIT Lite评估版硬件。
此外,ADI还为嵌入式系统开发提供了大量的系统服务程序,即为嵌入式系统提供各种常见功能的软件库,这些服务程序实际上是可用于任何系统的公用程序,既可在未安装RTOS的独立式环境下运行,又可用于VDK环境。利用这些系统服务程序,用户可以便捷、高效地接入Blackfin处理器的硬件子系统,具体而言包括锁相环路、直接内存存取、中断控制器、标志控制器和定时器等等。所有Blackfin处理器均采用一套通用的API,各种应用和设备驱动程序均可使用这些系统服务程序。系统服务程序中包含的软件都经过反复测试、稳定可靠的,用户可以轻松直接使用这些程序。利用服务程序,用户可以轻松整合这些模块化软件。服务程序将负责管理硬件资源,因此,将不同开发人员编写的两个程序块整合起来变得轻而易举。这些服务程序都与VisualDSP++集成开发环境一起提供。
为改进应用开发环境,美国国家仪器有限公司(NI)与ADI联合推出了专用于ADI Blackfin处理器的LabVIEW嵌入式模块,将LabVIEW图形化数据流的开发环境扩展到高性能、低功耗的Blackfin处理器,通过无缝地集成到ADI VisualDSP++开发和调试环境,极大地方便进行快速的嵌入式系统开发。使用NI LabVIEW嵌入式技术可以一步到位完成系统建模的硬件在环测试和原型设计,帮助没有嵌入式编程经验的工程师克服嵌入式开发过程中遇到的传统挑战,可以花更少的时间在细节的了解和传统低层工具的语法上,从而可以把更多的时间用于设计优化。这一图形化的软件包括140多种Blackfin特有的、经过优化的数学、分析和信号处理函数,如音频和视频DAC、ADC和编解码器等集成I/O。
尽管有优化的操作系统可供选择以及提供无缝集成的完善开发工具环境,但即使对于一个经验丰富的设计工程师来说,嵌入式系统设计依然是一个极具挑战性的工作。为帮助企业更快地利用Blackfin处理器完成优化的产品设计,加快产品面市时间并降低设计成本,ADI还与众多本地技术提供商建立了紧密的合作关系,通过他们为企业提供更具针对性、贴身的技术支持。这些第三方机构除了提供针对特定应用的完整参考设计外,还提供相应的仿真器、集成开发环境,以及嵌入式开发培训等服务。这些机构包括:嵌入式开发工具和培训提供商深圳英蓓特(提供ADSP开发工具 Embest EmLink仿真器 Embest BDT集成开发环境);针对多种应用的嵌入式Linux开发平台及OEM板级硬件方案的华恒科技(HHBF531-StartKit,uCLinux下全套开发工具集硬件驱动、协议栈等);提供嵌入式数字媒体开发工具的上海德景(DUITEK_BF_DEMO评估板);等等。
应用案例——数码相框设计
数码相框方案结构图
上图是上海世勤电子科技有限公司基于Blackfin处理器BF52x系列开发的数码相框产品方案结构图,该产品具有互联网WiFi无线连接、电子邮件发送、RSS新闻阅读、即时照片分享、全触摸操作等领先的性能特性。该方案采用了uClinux嵌入式操作系统。作为一款典型的消费电子产品,满足产品高性能要求的低成本实现方案是选择的关键,Blackfin可以直接运行于uClinux使得方案有效地降低了整体实现成本,而且极大地方便了将公司以往的设计软件移植到新的系统中。事实上,在与BF52x处理器相近价格的同类解决方案中,很少有支持Linux的处理器。
正如前面所述,ADI针对目标应用在uClinux操作系统中集成了大量的硬件驱动,包括WiFi驱动、音/视频编解码器的驱动等,ADI的Blackfin Linux内核/平台发行包内提供了大量移植完整的应用,为开发工作带来了很大便利。ADI还提供了非常丰富的例程和资料,进一步简化了客户的系统设计,缩短了产品研发周期。此外,由于缺少存储器管理单元(MMU),内存管理历来是嵌入式处理器的重点问题之一,在BF52x平台上移植Linux应用必须修改由于内存管理模式不同而带来的问题,工作量较大。ADI公司开辟的“EngineerZone”DSP技术支持论坛(ez.analog.com)让世勤电子的工程师可以24小时通过网络利用到ADI全球工程师的智慧,快速而圆满地帮助解决了所有的技术难题。