微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 利用BIOS定制实现嵌入式产品的差异化

利用BIOS定制实现嵌入式产品的差异化

时间:01-14 来源:电子工程专辑 点击:

BIOS定制是实现嵌入式产品差异化特性的有效途径,本文将讨论与创建这些定制BIOS相关的问题,包括快速引导、用户界面和功能,以及固件应用能力等。

许多基于x86的嵌入式解决方案都依赖针对台式计算机设计的BIOS,通过对BIOS进行配置可实现更高效的、富有成本效益的设计,以满足专用硬件和软件的需求。

在台式机、服务器以及笔记本电脑中常见的BIOS(一种专为IT应用而设计的BIOS)已被设计成使这些设备能像通用计算机一样工作,因此人们能以同样的方式来使用这些设备。而诸如网络设备和自助式信息服务终端(如kiosk设备)等基于x86的嵌入式产品,则需要像设备而不是像通用计算机那样来工作。嵌入式设备需要使设备具有独特功能的固件,这正是BIOS可发挥作用的地方。嵌入式固件(即用在x86架构上的BIOS)正是实现嵌入式设备差异化的基础。

为嵌入式系统定制BIOS有两种方法:一种方法是花费大量的时间和精力将台式机和/或服务器的BIOS改造成可满足嵌入式系统的要求;另一种方法则是采用一种专为嵌入式市场设计的BIOS。后一方法有助于简化为嵌入式系统创建定制BIOS的全过程,这既可尽量减少工作量和风险,又能提供强大的固件能力。

用BIOS实现嵌入式产品差异化

差异化是嵌入式产品获得成功并走向具有竞争优势的新方向的一个关键因素。表1列出的是用BIOS实现产品功能差异化的一些方法。本文将讨论与创建这些BIOS有关的问题,这些BIOS的特点包括:可配置成只包含标准IT BIOS的一部分特性;可定制成包含专用平台设置屏幕、溅射效果屏幕(splash screen)设置(包括多媒体)以及诸如FPGA初始化代码等专用代码;可实现亚秒级快速引导的目标;提供增强的固件应用能力,比如高可用性监控和引导安全性等。


表:利用BIOS技术实现嵌入式产品的差异化。

大多数台式机或服务器系统都要求将所有的BIOS初始化功能集成到系统中,包括即插即用(PnP)、高级功率模式(APM)、高级配置和电源接口(ACPI)、PCI设备枚举与资源分配、增强硬盘驱动器(EDD)、系统管理BIOS(SMBIOS)、系统管理总线(SMBUS)以及其它功能等。在使用通用IT BIOS的情况下,这些功能必须全部被构建到系统的BIOS中,以便系统能支持所有需要这种支持的软硬件插件。

但对大多数嵌入式应用来说,这些功能组件很多都是一些只会增加设备加电自检(POST)时间和消耗ROM空间的非必要功能。Embedded BIOS 2000等可配置BIOS则能提供800多种配置选项,这些选项用来控制将哪些功能组件包含在BIOS构建过程中。特定设计不需要的任何功能组件都不会包含在BIOS二进制代码中。

定制BIOS的用户界面和功能

嵌入式设备很少需要标准的BIOS用户界面。如果设备是从内部硬盘驱动器上引导,则它既不需要配置成从闪存或CDROM上引导,也不需要提供用于非标准CPU或存储器时钟的选项。另外,若专用硬件(如ASIC)需要在引导时进行初始化和配置,则还需要在核心BIOS中包含这种代码。

取消设置屏幕可让BIOS用户界面采用新的形式,如无头设计、通过与远程终端程序相连的RS232串行电缆实现的菜单或类似台式机的POST,以及借助以太网的远程登录对话,甚至一种可在装载OS时显示由OEM定义的图形、动画和声音的图形化准操作系统(pre-OS)环境。

构建定制的用户界面需要BIOS核心功能的支持,这样用户界面就能在恰当时候得到控制权。另外,BIOS键盘和视频调用需要被路由到新设备(例如远程登录)上并进行适当处理。

初始化专用硬件不但需要定制代码,而且初始化序列也很重要,例如配置ASIC需要在PCI设备枚举之前进行。对BIOS用户来说,能在BIOS引导序列的恰当时候插入定制代码是非常必要的。如果所有的BIOS代码都以源代码的形式提供,则嵌入式BIOS用户就能在引导序列的任何点上调用其初始化代码。此外,可以将这种代码进行打包,这样就无需将定制代码集成到核心BIOS代码中,从而可将它从一个平台移植到另一个平台。

快速引导

设备从上电到功能可用的这段时间的长短,将影响用户对设备性能和可靠性的看法。引导时间超过1秒的设备看起来就像没有响应或者响应缓慢。优化BIOS引导时间并不容易,因为在BIOS加电自检过程中,有许多步骤需要优化。

实现快速引导的一种最佳概念是使用微软的简单引导标记增强(simple boot flag enhancement),它能决定引导时执行哪些POST组件。当然,还可在其它地方减少引导时间。

利用速度标记,简单引导标记以最简单的形式被用来控制引导速度。在首次引导过程中,BIOS在非易失性存储器中设置引导速度标记,然后再执行一组完整的诊断测试。在引导末期,BIOS将控制权交给OS,如果OS引导没有任何问题,它便会清除引导速度标记。在下一次重启时,BIOS会看到引导速度标记已经被清除,然后它会进行一组较短的诊断测试,从而减少引导时间。如果BIOS或OS检测到任何硬件配置的变化和/或故障,则它们将互相协调以确保在下一个引导周期中执行一组完整的诊断测试。

尽管引导速度的提高主要归功于采用简单引导标记,但在其它许多方面也可提高引导速度,包括:视频ROM扩展(大约需要1至3秒);到屏幕的任何其它BIOS输出,包括POST及PCI消息等(大约需要100毫秒);不需要BIOS但需要由OS激活的硬件初始化,如鼠标及键盘等(大约需要数秒钟);由于大多数嵌入式系统具有固定的硬件配置,所以还可利用特定目标的优化(如经过优化的内存初始化和PCI枚举)来进一步提高引导速度。

通过使用简单引导标记、消除硬件初始化并使用特定目标的优化,目前许多平台的引导时间都已可达亚秒级。在个别平台上,从复位到OS加载的时间可小于100毫秒。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top