Firmware

固件(Firmware)就是写入EPROM(可擦写可编程只读存储器)或EEPROM(电可擦可编程只读存储器)中的程序。

固件是指设备内部保存的设备“驱动程序”,通过固件,操作系统才能按照标准的设备驱动实现特定机器的运行动作,比如光驱、刻录机等都有内部固件。

固件是担任着一个系统最基础最底层工作的软件。而在硬件设备中,固件就是硬件设备的灵魂,因为一些硬件设备除了固件以外没有其它软件组成,因此固件也就决定着硬件设备的功能及性能。

工作原理

固件(firmware)一般存储于设备中的电可擦除只读存储器EEPROM(Electrically Erasable Programmable ROM)或FLASH芯片中,一般可由用户通过特定的刷新程序进行升级的程序。一般来说,担任着一个数码产品最基础、最底层工作的软件才可以称之为固件,比如计算机主板上的基本输入/输出系统BIOS(Basic Input/output System),在以前其实更多的专业人士叫它固件。

通常这些硬件内所保存的程序是无法被用户直接读出或修改的。在以前,一般情况下是没有必要对固件进行升级操作的,即使在固件内发现了严重的Bug也必须由专业人员带着写好程序的芯片把原来机器上的更换下来。早期固件芯片一般采用了ROM设计,它的Firmware代码是在生产过程中固化的,用任何手段都无法修改。随着技术的不断发展,修改固件以适应不断更新的硬件环境成了用户们的迫切要求,所以,可重复写入的可编程可擦除只读存储器EPROM(Erasable Programmable ROM),EEPROM和flash出现了。这些芯片是可以重复刷写的,让固件得以修改和升级。

技术性能

固件可以说是神经中枢,也可以称作COMBO的操作系统,它包括很多模块:驱动、控制、解码、传送、检测……,只有在它的控制下COMBO才能正常工作。同时,固件还带有许多附加功能,如纠错技术、安全刻录技术、播放控制技术等。

实际上,COMBO光驱固件中的关键技术就是对各种盘片的识别,而这是通过识别CD、CD-R(W)和DVD盘片在数据凹槽的密度与盘片的化学层的不同完成的。当把盘片放入光驱中,光驱收到操作命令后,含有固件的控制芯片会发出指令,激光头根据指令依次发出DVD读取、CD-ROM读取以及CD-R写入、CD-RW擦写的四种激光试探,如果收到反馈则判断它是何种类别的盘片。按照这一操作程序,一般DVD-ROM盘片需要一次识别,CD盘片需要两次识别,而CD-R和CD-RW则要经过三次。很显然,固件的制作水平决定着COMBO光驱的质量。

由COMBO光驱中可以看出,硬件设备的固件与它的硬件有着几乎相等的地位,而在某些程度上来说固件可能更重要一些。因为只有编写出出色的固件程序才可以更加充分、巧妙的发挥硬件的作用,而且优秀的固件还可以弥补一些硬件上的缺陷。

应用

其实任何数码设备都有固件,只是我们有时忽略它的存在而已。

先举一些常见的例子:手机、数码相机、mp3、mp4、路由器、电子书、交换机、猫、PSP、PS3、NDS、XBOX、U盘、主板、打印机的BIOS(BIOS就是一种固件)、显卡的BIOS。

以上产品的固件也许略有耳闻。但下面设备的固件很多人就没听说过了。

鼠标、显示器、光驱、硬盘、键盘、数码卫星接收器、GPS终端、精密的电子仪器(比如核磁共振仪)等等。

固件既然是软件,就有大小之分。大的可有几百兆,小的也许只有几K,甚至不足1K。

为什么很多设备都没听说过有固件的说法呢:因为有些设备,在硬件上会出问题,而在软件上(即固件)永远都不会出问题,而且这些固件对于普通用户是无法更新的(或者更新的技术难度比较大)。它距离我们太遥远,所以被我们忽略掉而已。

对于独立可操作的电子产品,固件一般指它的操作系统(“担任着一个数码产品最基础、最底层工作的软件才可以称之为固件”,这和操作系统的定义很一致)。比如PSP的固件,就是指PSP 的操作系统。同理,IPHONE的固件也是其操作系统,路由器的固件就是路由器的操作系统,MP4的固件就是MP4的操作系统等。

而对于非独立的电子产品,比如硬盘、鼠标、BIOS、光驱、U盘等设备,固件就是指其最底层的,让设备得以运行的程序代码。

固件升级流程

在无线固件升级的过程中,PC机通过有线的链路控制网关设备实现物联网终端设备的固件升级,无线终端固件升级流程如图《终端设备升级流程》所示。

主要操作步骤如下:①当要升级的终端设备正在运行应用程序,由 PC机控制网关设备向该终端设备发送固件升级指令,终端节点响应该升级指令,跳转至引导程序,并等待网关设备特定端设备升级流程的数据包。

②终端节点周期性申请固件数据包,并在一个复位时不会被初始化的变量中记录当前升级状态,如上次断点处、故障原因等,保证终端设备固件升级的断点续传。

③终端节点收到网关设备的固件数据包,当接收完一个完整的压缩分段固件后,利用解压缩函数实现对固件的解压缩,并把解压缩后的固件写入指定存储空间。

④网关设备发送完终端设备固件之后,再向该终端设备发送当前升级固件的版本信息、校验值。终端设备收到该数据之后,对整个解压后的固件进行校验,如果成功,则更新版本信息到信息段之中。

⑤终端设备固件数据校验成功,则向网关设备发送升级成功指令,并跳转到应用程序中运行;否则,发送固件升级失败指令,重新等待升级。

Copyright© 1999-2024 C114 All Rights Reserved | 联系我们 | 沪ICP备12002291号-4