当今的嵌入式应用已经无处不在,无论是消费电子、通信终端,还是系统设备、工业控制、汽车电子系统或航空航天,都无处不见嵌入式应用的身影。现在,全球每年生产数十亿颗微处理器,其中大部分都被广泛应用于各类嵌入式系统。
目前,在嵌入式系统硬件平台方面,各种微控制器以及数字信号处理器(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,同时具有可靠性极高的INteGRI TY,以及专注于汽车市场需求的RTA-OSEK等。通过对各种 *** 作系统的功能分析,本设计最终选择了uCLinux *** 作系统来进行数码相框的设计。图1所示是其 *** 作系统在Blackfin上的组织结构。
图1 *** 作系统在Blackfin上的组织结构
Linux是一种获得广泛应用的嵌入式 *** 作系统,在所有主流的嵌入式系统中,Linux *** 作系统无论是其超强的网络功能、可任意裁剪、完全免费和通用的Linux API特点,以及广泛的开放资源,都使其成为嵌入式应用中的重要力量。uClinux是针对微处理器应用的Linux系统,源码完全开放,同时针对嵌入式应用的特点,uClinux对Linux的内核进行了修改和重新编译,因而内核更小。uClinux也包含Linux常用的API,并保留了原来Linux *** 作系统具有的高稳定性、强大的网络功能和卓越的文件系统支持功能。
uClinux *** 作系统可直接运行于Blackfin处理器。对于很多嵌入式应用来说,在与Blackfin处理器同等价位的方案中,很少有能支持Linu x的。事实上,在面向特定的嵌入式应用时(例如内存空间有限或需要实时确定性的高安全性应用),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++集成开发环境一起提供的。
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应用就仍然必须修改由于内存管理模式不同而带来的问题,而且工作量较大。这一点仍然是今后需要解决的一个技术问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)