新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 利用BIOS定制實(shí)現(xiàn)嵌入式產(chǎn)品的差異化

利用BIOS定制實(shí)現(xiàn)嵌入式產(chǎn)品的差異化

作者: 時(shí)間:2017-06-04 來源:網(wǎng)絡(luò) 收藏

定制是實(shí)現(xiàn)嵌入式產(chǎn)品差異化特性的有效途徑,本文將討論與創(chuàng)建這些定制相關(guān)的問題,包括快速引導(dǎo)、用戶界面和功能,以及固件應(yīng)用能力等。

許多基于x86的嵌入式解決方案都依賴針對臺式計(jì)算機(jī)設(shè)計(jì)的,通過對BIOS進(jìn)行配置可實(shí)現(xiàn)更高效的、富有成本效益的設(shè)計(jì),以滿足專用硬件和軟件的需求。

在臺式機(jī)、服務(wù)器以及筆記本電腦中常見的BIOS(一種專為IT應(yīng)用而設(shè)計(jì)的BIOS)已被設(shè)計(jì)成使這些設(shè)備能像通用計(jì)算機(jī)一樣工作,因此人們能以同樣的方式來使用這些設(shè)備。而諸如網(wǎng)絡(luò)設(shè)備和自助式信息服務(wù)終端(如kiosk設(shè)備)等基于x86的嵌入式產(chǎn)品,則需要像設(shè)備而不是像通用計(jì)算機(jī)那樣來工作。嵌入式設(shè)備需要使設(shè)備具有獨(dú)特功能的固件,這正是BIOS可發(fā)揮作用的地方。嵌入式固件(即用在x86架構(gòu)上的BIOS)正是實(shí)現(xiàn)嵌入式設(shè)備差異化的基礎(chǔ)。

為嵌入式系統(tǒng)定制BIOS有兩種方法:一種方法是花費(fèi)大量的時(shí)間和精力將臺式機(jī)和/或服務(wù)器的BIOS改造成可滿足嵌入式系統(tǒng)的要求;另一種方法則是采用一種專為嵌入式市場設(shè)計(jì)的BIOS。后一方法有助于簡化為嵌入式系統(tǒng)創(chuàng)建定制BIOS的全過程,這既可盡量減少工作量和風(fēng)險(xiǎn),又能提供強(qiáng)大的固件能力。

用BIOS實(shí)現(xiàn)嵌入式產(chǎn)品差異化

差異化是嵌入式產(chǎn)品獲得成功并走向具有競爭優(yōu)勢的新方向的一個(gè)關(guān)鍵因素。表1列出的是用BIOS實(shí)現(xiàn)產(chǎn)品功能差異化的一些方法。本文將討論與創(chuàng)建這些BIOS有關(guān)的問題,這些BIOS的特點(diǎn)包括:可配置成只包含標(biāo)準(zhǔn)IT BIOS的一部分特性;可定制成包含專用平臺設(shè)置屏幕、濺射效果屏幕(splash screen)設(shè)置(包括多媒體)以及諸如FPGA初始化代碼等專用代碼;可實(shí)現(xiàn)亞秒級快速引導(dǎo)的目標(biāo);提供增強(qiáng)的固件應(yīng)用能力,比如高可用性監(jiān)控和引導(dǎo)安全性等。

本文引用地址:http://butianyuan.cn/article/201706/348614.htm


表:利用BIOS技術(shù)實(shí)現(xiàn)嵌入式產(chǎn)品的差異化。

大多數(shù)臺式機(jī)或服務(wù)器系統(tǒng)都要求將所有的BIOS初始化功能集成到系統(tǒng)中,包括即插即用(PnP)、高級功率模式(APM)、高級配置和電源接口(ACPI)、PCI設(shè)備枚舉與資源分配、增強(qiáng)硬盤驅(qū)動器(EDD)、系統(tǒng)管理BIOS(SMBIOS)、系統(tǒng)管理總線(SMBUS)以及其它功能等。在使用通用IT BIOS的情況下,這些功能必須全部被構(gòu)建到系統(tǒng)的BIOS中,以便系統(tǒng)能支持所有需要這種支持的軟硬件插件。

但對大多數(shù)嵌入式應(yīng)用來說,這些功能組件很多都是一些只會增加設(shè)備加電自檢(POST)時(shí)間和消耗ROM空間的非必要功能。Embedded BIOS 2000等可配置BIOS則能提供800多種配置選項(xiàng),這些選項(xiàng)用來控制將哪些功能組件包含在BIOS構(gòu)建過程中。特定設(shè)計(jì)不需要的任何功能組件都不會包含在BIOS二進(jìn)制代碼中。

定制BIOS的用戶界面和功能

嵌入式設(shè)備很少需要標(biāo)準(zhǔn)的BIOS用戶界面。如果設(shè)備是從內(nèi)部硬盤驅(qū)動器上引導(dǎo),則它既不需要配置成從閃存或CDROM上引導(dǎo),也不需要提供用于非標(biāo)準(zhǔn)CPU或存儲器時(shí)鐘的選項(xiàng)。另外,若專用硬件(如ASIC)需要在引導(dǎo)時(shí)進(jìn)行初始化和配置,則還需要在核心BIOS中包含這種代碼。

取消設(shè)置屏幕可讓BIOS用戶界面采用新的形式,如無頭設(shè)計(jì)、通過與遠(yuǎn)程終端程序相連的RS232串行電纜實(shí)現(xiàn)的菜單或類似臺式機(jī)的POST,以及借助以太網(wǎng)的遠(yuǎn)程登錄對話,甚至一種可在裝載OS時(shí)顯示由OEM定義的圖形、動畫和聲音的圖形化準(zhǔn)操作系統(tǒng)(pre-OS)環(huán)境。

構(gòu)建定制的用戶界面需要BIOS核心功能的支持,這樣用戶界面就能在恰當(dāng)時(shí)候得到控制權(quán)。另外,BIOS鍵盤和視頻調(diào)用需要被路由到新設(shè)備(例如遠(yuǎn)程登錄)上并進(jìn)行適當(dāng)處理。

初始化專用硬件不但需要定制代碼,而且初始化序列也很重要,例如配置ASIC需要在PCI設(shè)備枚舉之前進(jìn)行。對BIOS用戶來說,能在BIOS引導(dǎo)序列的恰當(dāng)時(shí)候插入定制代碼是非常必要的。如果所有的BIOS代碼都以源代碼的形式提供,則嵌入式BIOS用戶就能在引導(dǎo)序列的任何點(diǎn)上調(diào)用其初始化代碼。此外,可以將這種代碼進(jìn)行打包,這樣就無需將定制代碼集成到核心BIOS代碼中,從而可將它從一個(gè)平臺移植到另一個(gè)平臺。

快速引導(dǎo)

設(shè)備從上電到功能可用的這段時(shí)間的長短,將影響用戶對設(shè)備性能和可靠性的看法。引導(dǎo)時(shí)間超過1秒的設(shè)備看起來就像沒有響應(yīng)或者響應(yīng)緩慢。優(yōu)化BIOS引導(dǎo)時(shí)間并不容易,因?yàn)樵贐IOS加電自檢過程中,有許多步驟需要優(yōu)化。

實(shí)現(xiàn)快速引導(dǎo)的一種最佳概念是使用微軟的簡單引導(dǎo)標(biāo)記增強(qiáng)(simple boot flag enhancement),它能決定引導(dǎo)時(shí)執(zhí)行哪些POST組件。當(dāng)然,還可在其它地方減少引導(dǎo)時(shí)間。

利用速度標(biāo)記,簡單引導(dǎo)標(biāo)記以最簡單的形式被用來控制引導(dǎo)速度。在首次引導(dǎo)過程中,BIOS在非易失性存儲器中設(shè)置引導(dǎo)速度標(biāo)記,然后再執(zhí)行一組完整的診斷測試。在引導(dǎo)末期,BIOS將控制權(quán)交給OS,如果OS引導(dǎo)沒有任何問題,它便會清除引導(dǎo)速度標(biāo)記。在下一次重啟時(shí),BIOS會看到引導(dǎo)速度標(biāo)記已經(jīng)被清除,然后它會進(jìn)行一組較短的診斷測試,從而減少引導(dǎo)時(shí)間。如果BIOS或OS檢測到任何硬件配置的變化和/或故障,則它們將互相協(xié)調(diào)以確保在下一個(gè)引導(dǎo)周期中執(zhí)行一組完整的診斷測試。

盡管引導(dǎo)速度的提高主要?dú)w功于采用簡單引導(dǎo)標(biāo)記,但在其它許多方面也可提高引導(dǎo)速度,包括:視頻ROM擴(kuò)展(大約需要1至3秒);到屏幕的任何其它BIOS輸出,包括POST及PCI消息等(大約需要100毫秒);不需要BIOS但需要由OS激活的硬件初始化,如鼠標(biāo)及鍵盤等(大約需要數(shù)秒鐘);由于大多數(shù)嵌入式系統(tǒng)具有固定的硬件配置,所以還可利用特定目標(biāo)的優(yōu)化(如經(jīng)過優(yōu)化的內(nèi)存初始化和PCI枚舉)來進(jìn)一步提高引導(dǎo)速度。

通過使用簡單引導(dǎo)標(biāo)記、消除硬件初始化并使用特定目標(biāo)的優(yōu)化,目前許多平臺的引導(dǎo)時(shí)間都已可達(dá)亞秒級。在個(gè)別平臺上,從復(fù)位到OS加載的時(shí)間可小于100毫秒。

增強(qiáng)的嵌入式固件應(yīng)用能力

嵌入式系統(tǒng)開發(fā)商正日益尋求通過增加更多的特性,來使產(chǎn)品有別于競爭產(chǎn)品的方法。固件是增強(qiáng)這種特性(特別是那些需要單獨(dú)運(yùn)行平臺OS的特性)的理想地方,其中一個(gè)例子就是高可用性監(jiān)控與引導(dǎo)安全性。

如果自助式信息服務(wù)終端采用獨(dú)立于OS運(yùn)行的固件,它便能以許多方式檢測出故障情況,然后采取記錄故障、通過網(wǎng)絡(luò)發(fā)送電子郵件或者重啟等糾正措施。盡管這是一種可見性故障,但無頭(headless)設(shè)備也同樣容易受到攻擊。

固件是實(shí)現(xiàn)這種監(jiān)控的理想地方,該監(jiān)控獨(dú)立于OS并以系統(tǒng)管理模式(SMM,x86處理器架構(gòu)的第四種模式)與OS并行運(yùn)行。例如,F(xiàn)irmbase SMM操作環(huán)境具有自己的32位SMM操作環(huán)境,以便運(yùn)行用Windows工具構(gòu)建的可移植可執(zhí)行程序。Firmbase應(yīng)用程序駐留在ROM中的BIOS旁邊,在這里它們獨(dú)立于OS運(yùn)行,即使OS已經(jīng)崩潰或丟失。這使BIOS成為對系統(tǒng)故障進(jìn)行檢測和響應(yīng)的高可用性監(jiān)控解決方案的最佳實(shí)現(xiàn)地方。

某些情況下,固件可幫助解決終端用戶篡改設(shè)備的問題。投票機(jī)、游戲機(jī),甚至機(jī)頂盒等都需要一系列建立在應(yīng)用層軟件、固件本身以及平臺之間的信任。如果沒有這種信任,用戶就可以在硬盤驅(qū)動器上修改關(guān)鍵文件,或者用另一塊主板來擾亂輪詢結(jié)果或欺騙主機(jī)。通過與運(yùn)行在Windows或Linux OS下的應(yīng)用程序、以及運(yùn)行在SMM并獨(dú)立于OS的固件建立可重復(fù)性的加密握手,無論是應(yīng)用程序還是固件都能夠禁用系統(tǒng),以免系統(tǒng)進(jìn)行誤操作。

過去,將硬件與應(yīng)用程序綁在一起是應(yīng)用程序員的工作。如今,無論是擴(kuò)展系統(tǒng)的系統(tǒng)管理接口(SMI)處理程序來執(zhí)行握手,還是授權(quán)在固件層具有日志、遠(yuǎn)程管理以及OEM級配置的引導(dǎo)時(shí)間安全應(yīng)用程序,都變得更加安全和簡單。

還可通過另外一些方式使用BIOS,以使產(chǎn)品在固件級上具有差異化并獲得競爭優(yōu)勢。在解決BIOS的功能配置、用戶界面、快速引導(dǎo)以及增加專用功能等問題后,還可考慮其它許多方面。例如,可用ROM、RAM、閃存或USB存儲器棒等固態(tài)媒介來代替硬盤;內(nèi)置診斷可集成到BIOS中以助于實(shí)現(xiàn)自動制造;內(nèi)置調(diào)試程序可加快電路板的推出過程;此外,專用加載程序(比如那些用于Windows CE與EFI的加載程序)還可為未來技術(shù)改進(jìn)提供內(nèi)置路線圖。

由于嵌入式系統(tǒng)之間存在廣泛的應(yīng)用差異性,所以沒有一個(gè)單一的BIOS能對它們?nèi)窟m用或者有效。為能直接開發(fā)并高效地、富有成本效益地配置嵌入式設(shè)備,用開發(fā)商定制硬件和軟件應(yīng)用的相同方式來定制固件的能力還有待進(jìn)一步提高。

作者:Steve Jones

Nat Hillary

通用軟件公司



關(guān)鍵詞: BIOS

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉