嵌入式系统是指操作系统和功能软件集成于计算机硬件系统之中。简单的说就是系统的应用软件与系统的硬件一体化,类似与BIOS的工作方式。具有软件代码小,高度自动化,响应速度快等特点。特别适合于要求实时的和多任务的体系。根据IEEE(电气和电子工程师协会)的定义,嵌入式系统是"控制、监视或者辅助装置、机器和设备运行的装置"(devices used tocontrol,monitor, or assist the operation ofequipment, machinery or plants)。从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
嵌入式系统是电脑软件与硬件的综合体,它是以应用为中心,以计算机技术为基础,软硬件可裁剪,从而能够适应实际应用中对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。嵌入式计算机在应用数量上远远超过了各种通用计算机。一台通用计算机的外部设备中就包含了5~10个嵌入式微处理器,键盘、鼠标、软驱、硬盘、显示卡、显示器、Modem、网卡、声卡、打印机、扫描仪、数码相机、USB集线器等均是由嵌入式处理器进行控制的。在制造工业、过程控制、通信、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等方面,嵌入式计算机都有用武之地。本文将介绍一种独特的嵌入式平台核心处理器--汇聚式处理器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安全技术的一次性可编程存储器。
ADI公司推出的Blackfin处理器是一类专为满足当今嵌入式音频、视频和通信应用的计算要求和功耗约束条件而设计的新型 16~32 位嵌入式处理器。Blackfin 处理器基于由 ADI 和 Intel 公司联合开发的微信号架构(MSA),它将一个 32 位 RISC 型指令集和双 16 位乘法累加(MAC)信号处理功能与通用型微控制器所具有的易用性组合在了一起。 这种处理特征的组合使得 Blackfin 处理器能够在信号处理和控制处理应用中均发挥上佳的作用 -- 在许多场合中免除了增设单独的异类处理器的需要。该能力极大地简化了 硬件和软件设计实现任务。
操作系统在Blackfin上的组织结构
广泛优化的操作系统资源
除了硬件平台之外,嵌入式操作系统的选择对于正在从事新的嵌入式开发项目的工程师来说同样重要。对于Blackfin处理器来说,除了处理器本身的独特性能特性优势外,强大的嵌入式操作系统资源是该处理器获得广泛应用的另一个关键因素。Blackfin处理器支持包括VisualDSP自带的操作系统内核(VDK)、ThreadX、uCLinux和Nucleas等获得业界广泛应用的操作系统,避免了工程师在从其它处理器平台移植到Blackfin平台时因更改操作系统而延长终端产品开发周期。这些操作系统各自具有不同的特性和功能以及具有不同的价格、版权费用条款。从特性上看,有代码非常紧凑、复杂度低的操作系统(VDK),有复杂、具有丰富特性的操作系统(如uClinux),具有极高可靠性的INTEGRITY,专注于汽车市场需求的RTA-OSEK,等等 .下面将对以下几类操作系统进行简要介绍。
Blackfin处理器支持的主要操作系统及第三方供应商列表。
1. ThreadX
ThreadX是优秀的硬实时操作系统(RTOS),适用于深嵌入式应用中,具有规模小、实时性强、可靠性高、无产品版权费、易于使用等特点,并且支持大量的处理器和SoC,包括ARM、PowerPC、SH 4、MIPS、ADI DSP、TI DPS、Nios II等,因此广泛应用于消费电子、汽车电子、工业自动化、网络解决方案、军事与航空航天等领域中。ThreadX已被广泛的用户接纳,并且目前在超过4亿5千万电子产品中得到广泛应用。ThreadX配有Express LogicTCP/IP协议栈NetX、文件系统FileX、USB协议栈USBX以及GUI开发包PEGX,所有这些都支持Tensilica最新的Diamond Standard 106Micro产品。
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是一种很受欢迎的操作系统,它与UNIX系统兼容,开放源代码。它原本被设计为桌面系统,现在广泛应用于服务器领域。而更大的影响在于它正逐渐的应用于嵌入式设备。uClinux正是在这种氛围下产生的。在uClinux这个英文单词中u表示Micro,小的意思,C表示Control,控制的意思,所以uClinux就是Micro-Control-Linux,字面上的理解就是"针对微控制领域而设计的Linux系统".uCLinux是一种优秀的嵌入式Linux版本,是micro-Conrol-Linux的缩写。它秉承了标准Linux的优良特性, 经过各方面的小型化改造,形成了一个高度优化的、代码紧凑的嵌入式Linux.虽然它的体积很小,却仍然保留了Linux的大多数的优点:稳定、良好的移植性、优秀的网络功能、对各种文件系统完备的支持和标准丰富的API.它专为嵌入式系统做了许多小型化的工作,目前已支持多款CPU. 其编译后目标文件可控制在几百KB数量级,并已经被成功地移植到很多平台上。
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全球工程师的智慧,快速而圆满地帮助解决了所有的技术难题。