欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

BIOS维修实例

程序员文章站 2023-11-01 23:28:04
BIOS维修实例  一天,老客户来电话,告诉他单位的小局域网因为频繁停电损坏了三块主板,向我求救。于是我马上出动,到达现场后,采用替换法检查,发现主板的BIOS出现了问题无法正常开机。用热插... 10-09-08...

  一天,老客户来电话,告诉他单位的小局域网因为频繁停电损坏了三块主板,向我求救。于是我马上出动,到达现场后,采用替换法检查,发现主板的bios出现了问题无法正常开机。用热插拔法修复无效,断定是bios 芯片物理损坏。

  他们使用的主板是品牌机整合主板,cpu是p120(够老的),主板bios 芯片为intel的p28f002bx芯片,是2mbit的芯片。用编程器测试,发现三片芯片均有不同程度的损坏,已不能使用。由于这种芯片现在早已找不到了,因此只能采用手头上现有的winbond的29c020代用。用编程器把好芯片的数据读出,然后分别写到三片at29c020中。没想到,当把写好的芯片插到主板上后,通电开机却没有反应,修复没有成功。
28f002bx是intel推出的第一代可擦除bios芯片,它的内部数据结构是分块的(如图所示)。其中的boot block块是存储bios基本启动信息的,它支持isa形式的显卡,当bios升级失败后,可以从boot block启动并修复bios,这种设计思路被bios刷新程序采用并一直延续到今。在擦除时,28f001是以byte为最小修改单位的;在写入数据时,芯片上要加上一定的编程电压,并且boot block块内数据的擦除要加上特定的删除电压。转自www.jb51.net

  29c020是flash rom(快闪rom),属于单电压芯片。flash rom和eeprom芯片最大的区别是,在删除数据时,不需加特定的编程电压。另外,flash rom在删除资料时,并非以byte为基本单位,而是以sector(又称block)为最小单位。sector的大小随厂商的不同而有所不同,只有在写入时,才以byte为最小单位写入。

  以往主板上用的还有27系列的芯片。27系列的芯片属于eprom,其内的资料是用eprom擦除器(eprom eraser)发出的紫外线照射来擦除的,并且要用专用的编程器才可以把资料重新再写入,往芯片中写内容时也必须要加一定的编程电压。

  在主板上,bios芯片平时只处于读数据的状态,从原理上分析,27、28、29系列的芯片是可以代用的,如果不考虑升级的因素,三者是兼容的。因此我怀疑,问题可能是属于主板太老,不支持按页刷新的芯片,亦即老主板与新型芯片“门不当,户不对”。找来一片28f020(也是老古董啦,现在市面上基本已找不到了),在编程器上刷入程序,插到主板上,开机恢复正常,证实了自己的猜测。为了进一步证实上述分析的正确性,用一片27c020写入程序,插入主板上bios插座后,通电开机,机器也能正常工作,由此说明此主板的确不支持新式的芯片。

  尽管从理论上讲,27、28、29系列的芯片是可以代用的。但实际应用中要注意,有些主板可能由于设计方面的原因,对有些类型的芯片可能不能很好地支持,若遇到这种情况,可以找不同类型的芯片多试几次。