当今的嵌入式应用已经无处不在,无论是消费电子、通信终端,还是系统设备、工业控制、汽车电子系统或航空航天,都无处不见嵌入式应用的身影。现在,全球每年生产数十亿颗微处理器,其中大部分都被广泛应用于各类嵌入式系统。
目前,在嵌入式系统硬件平台方面,各种微控制器以及数字信号处理器(DSP)产品,无论从品牌、功能特性方面,还是针对目标应用的成本、处理能力、功耗要求、集成度、开发周期、技术难度等具体要求,都可以精心选择出最具综合优势的硬件核心平台。而在嵌入式操作系统方面,无论是开放源代码的Linux阵营的各种商业版本或免费版本,还是WinCE、vxWorks等“重量级”平台,抑或针对特定应用优化的Windows Mobile、Symbian、Android等,也同样可以方便地选择一款最佳的操作系统软件平台。
嵌入式系统的设计过程实际上就是一个软硬件联合协同开发的过程。在进行软硬件平台选择评估时,单纯地离开硬件去评估操作系统或离开操作系统评估硬件平台都有失偏颇,特别是对于很多非通用处理器来说尤其如此。当前很多嵌入式硬件平台都提供有针对目标应用优化的操作系统及软件模块资源,一些商业化的操作系统也针对主流的硬件平台进行了优化设计,而且提供了众多的第三方优化操作系统版本。这些资源对于嵌入式系统设计来说具有重要的意义。为此,本文介绍了一种独特的嵌入式平台核心处理器,即汇聚式处理器Blackfin及其主流配套操作系统和相关资源的应用与设计方法,给出了用其设计嵌入式数码相框的设计方案。
1 硬件处理器Blackfin的选择
本设计选用汇聚式处理器Blackfin来构建独特的嵌入式硬件平台。汇聚式处理器Blackfin是由ADI和Intel公司联合开发的微信号架构(MSA),它集32位RISC型指令集、双16位乘法累加(MAC)信号处理功能和通用型微控制器所具有的易用性于一体,这种汇聚式处理能力的组合使得Blackfin处理器能够在旗号处理和控制应用中均发挥极佳的作用,并可在许多应用中免除增设单独的异构处理器的必要,因而极大地简化了硬件和软件设计。Blackfin处理器非常适合于以会聚为关键技术的嵌入式音频、视频、通信应用,包括多格式音频、视频、语言和图像处理,多模式基带和分组处理,控制处理和实时安全性处理等。正是这种独特的系统架构所具有的设计灵活性和可扩展性为Blackfin处理器赢得了广泛的适应性,也使其广泛应用于数字家庭娱乐、网络和流媒体、汽车远程信息处理和信息娱乐、数字无线电,以及移动电视终端。
Blackfin处理器在单内核产品中可提供高达756MHz的性能,以及低至0.8V的低功耗电压。所有的Blackfin处理器均具有多个独立的DMA控制器,这些控制器可支持自动数据传输,而且其所需的处理器内核开销极少。此外,Blackfin处理器还具有丰富的存储器配置,可以极大地方便嵌入式系统的应用开发。其中ADSP-BF51x系列处理器就同时具有NOR闪存、NAND闪存、铁电存储(FRAM)、SDRAM,同时还提供有支持Lockbox安全技术的一次性可编程存储器。
Blackfin处理器架构完全符合SIMD标准,并带有用于加速视频和图像处理的指令。该架构很适合于全信号处理/分析应用。由于Blackfin处理器具有最佳的代码密度且只需进行极少(或者完全不需要进行)代码优化处理,因而不会遇到其他传统处理器所常见的性能空间障碍。
2 uCLinux操作系统的选择
嵌入式操作系统的选择对于正在从事新的嵌入式开发项目来说,它与选择嵌入式硬件微处理器同样重要。对于Blackfin处理器来说,除了处理器本身的独特性能特性优势外,强大的嵌入式操作系统资源也是嵌入式系统设计的一个关健因素。Blackfin处理器支持包括VisualDSP自带的操作系统内核(VDK)、ThreadX、uCLinux和Nucleas等操作系统,这一特性可避免将操作系统从其它处理器平台移植到Blackfin平台时,因更改操作系统而延长的终端产品开发周期。各种操作系统各自都具有不同的特性功能以及不同的价格、版权费用等条款。从特性上看,嵌入式操作系统有代码紧凑、复杂度低的操作系统VDK,也有复杂而具有丰富特性的操作系统uClinux,同时具有可靠性极高的INTEGRITY,以及专注于汽车市场需求的RTA-OSEK等。通过对各种操作系统的功能分析,本设计最终选择了uCLinux操作系统来进行数码相框的设计。图1所示是其操作系统在Blackfin上的组织结构。
图1 操作系统在Blackfin上的组织结构
Linux是一种获得广泛应用的嵌入式操作系统,在所有主流的嵌入式系统中,Linux操作系统无论是其超强的网络功能、可任意裁剪、完全免费和通用的Linux API特点,以及广泛的开放资源,都使其成为嵌入式应用中的重要力量。uClinux是针对微处理器应用的Linux系统,源码完全开放,同时针对嵌入式应用的特点,uClinux对Linux的内核进行了修改和重新编译,因而内核更小。uClinux也包含Linux常用的API,并保留了原来Linux操作系统具有的高稳定性、强大的网络功能和卓越的文件系统支持功能。
uClinux操作系统可直接运行于Blackfin处理器。对于很多嵌入式应用来说,在与Blackfin处理器同等价位的方案中,很少有能支持Linux的。事实上,在面向特定的嵌入式应用时(例如内存空间有限或需要实时确定性的高安全性应用),Linux仍然存在许多挑战。而本设计的主要特点之一,是其所选择的ADI公司的Blackfin处理器已在uClinux里集成了大量的硬件驱动和应用例程,其中包括无线局域网驱动、音/视频编解码器驱动等,这些驱动可帮助客户非常方便地将应用程序从原来的系统移植到Blackfin平台上来。此外,ADI与Arcturus Networ ks公司还联合推出了新型uCBF54x启动开发工具套件和系统模块。该开发套件提供的软件包括开源uCliunx BSP(板级支持包)以及Arcturus语音与管理中间件,同时包含完整的SIP和RTP堆栈。因此可以说,Blackfin Linux已经成为嵌入式系统领域最为稳定的嵌入式Linux发行包之一。
3 软件开发工具环境
随着嵌入式系统产品应用越来越复杂、产品投放市场的时间越来越急迫,完善的开发环境也变得越来越重要。除了全系列优化的嵌入式操作系统外,具有完整的开发环境也是其嵌入式系统开发的重要因素之一。为此,ADI也提供有能够支持其他Blackfin处理器的ADI CROSSCO RE软件与硬件工具,这些工具包括VisualDSP++集成开发与调试环境、仿真器,以及EZ-KIT Lite评估版硬件等。
此外,ADI也为嵌入式系统开发提供了大量的系统服务程序,例如为嵌入式系统提供了各种常见功能的软件库,这些服务程序实际上就是可用于任何系统的公用程序,它们既可在未安装RTOS的独立式环境下运行,又可用于VDK环境。利用这些系统服务程序可以便捷、高效地接入Blackfin处理器的硬件子系统,包括锁相环路、直接内存存取、中断控制器、标志控制器和定时器等。所有的Blackfin处理器均可采用一套通用的AM,各种应用和设备驱动程序也均可使用这些系统服务整序。这些系统服务程序中包含的软件都已经经过反复测试,而且性能稳定可靠,设计时可以直接使用这些程序。此外,利用这些服务程序,也可以轻松整合这些模块化软件,实际上,这些服务程序都是与VisualDSP++集成开发环境一起提供的。
为了改进应用开发环境,设计时可以用美国国家仪器有限公司(NI)与ADI联合推出的专用于ADI Blackfin处理器的LabVIEW嵌入式模块,来将LabVIEW图形化数据流的开发环境扩展到高性能、低功耗的Blackfin处理器,以便通过无缝地将其集成到ADI VisualDSP++开发和调试环境来快速地开发嵌入式系统。使用NI LabVIEW嵌入式技术可以一步到位完成系统建模的硬件在线测试和原型设计。这一图形化的软件包括140多种Blackfin特有的、经过优化的数学、分析和信号处理函数,比如音频和视频DAC、ADC以及编解码器等集成I/O。
4 嵌入式数码相框的设计
图2所示是一种基于Blackfin处理器BF52x开发的嵌入式数码相框的功能图,该产品具有互联网WiFi无线连接、电子邮件发送、RSS新闻阅读、即时照片分享、全触摸操作等功能特性。本设计采用uClinux嵌入式操作系统。作为一款典型的消费电子产品,Blackfin可以直接运行于uClinux,这使得该设计能够有效地降低整体成本,并可十分方便地将以往的设计软件移植到新的系统中。事实上,在与BF52x处理器相近价格的同类解决方案中,目前还很少有支持Linux的处理器。
图2 数码相框的设计方案图
基于Blackfin处理器BF52x开发的嵌入式数码相框的功能十分齐全,因此,设计时可以根据产品的开发周期和成本要求进行取舍。图3所示是一种基于Blackfin处理器BF52x设计的、功能相对比较简单的数码像框的硬件结构图。
图3 简单的数码像框的硬件结构图
由于Blackfin处理器BF52x,自身就带有NOR闪存、NAND闪存、铁电存储(FRAM)、SDRAM等存储器,因此,在需要进一步外扩存储器时,完全可以利用其自身固有的应用程序,另外,如果希望使该数码像框同时带有音频功能,也可以很容易的将NI公司LabVIEW图形化数据流开发环境扩展到高性能、低功耗的Blackfin处理器,再通过音频和视频DAC、ADC以及编解码器等集成I/O,将存储单元中的图像文件中的音频数据转换为模拟信号,然后通过音频系统还原成声音输出。至于USB接口和图片数据文件的输出显示,无论是硬件还是软件驱动程序,目前都十分成熟而且简单。
5 结束语
本文利用ADI公司的汇聚式处理器Blackfin作为嵌入式系统的硬件平台,并采用uClinux为操作系统,同时采用ADI针对目标应用在uClinux操作系统中集成的大量硬件驱动(包括WiFi驱动、音/视频编解码器的驱动等)程序,给出了一种具有互联网WiFi无线连接、电子部件发送、RSS新闻阅读、即时照片分享、全触摸操作等功能的嵌入式电子数码相框的设计方案。事实上,由于本系统缺少存储器管理单元(MMU),内存管理仍是嵌入式处理器需要进一步解决的问题之一,这样,在BF52x平台上移植Linux应用就仍然必须修改由于内存管理模式不同而带来的问题,而且工作量较大。这一点仍然是今后需要解决的一个技术问题。