内置插卡式ISA编程卡--BIOS编程卡

互联网 | 编辑: 2001-06-20 00:00:00

当你升级BIOS时,"铛",你可能会"幸运地"遇上断电,这时BIOS文件还没有完全写完,此后再开机,屏幕上将没有任何反应,预示你此次升级完全失败。另外升级文件与主板不匹配、升级文件被修改过,也会导致BIOS升级失败。更何况,还有恼人的CIH病毒,也会时时成为BIOS的杀手。

BIOS损坏,对于手中有编程器的用户这也不成为什么问题,因为BIOS升级失败,并非BIOS芯片物理损坏,用编程器把BIOS的firmware重新写入,就可以很容易地修复已损坏的BIOS。编程器是利用EPROM/EEPROM芯片本身在一定电压条件下,可反复写入Firmware的物理特性,将BIOS代码文件重新固化到BIOS芯片中的。市场上可以找到你的编程器种类较多,不过,兼价的编程器一般都只能对某一类型或容量的ROM芯片进行读写,如有些只能对27系列的EPROM芯片读写,也有些编程器只能对28、29系列的EEPROM进行读写操作;还有些编程器只能对1MB以下的ROM芯片进行读写,而另一些能对2MB以上的进行读写。专用的编程器可以操作的芯片种类较多,并且通过软件升级,可以很容易地支持厂家新出品的芯片类型。这些编程器一般是用电缆数据线把编程器和PC机的并口或串口相联,在PC机上,用专用的软件控制ROM芯片的编程和读写操作。另外这类编程器一般都有单独的电源供给,安装、使用稍麻烦,价格一般也较高,作为不常写芯片的DIYer来说,拥有没有必要。

BIOS编程卡是市场上最近新出的一种内置插卡式的编程器。该编程器其实只是一种8bit的标准的ISA卡,它可以插入电脑的任何一个ISA插槽中,在该卡上,有一个DIP32形式的FLASH ROM插座,可以对1~4M的FLASH ROM芯片编程,适用于AMD、INTEL、SST或WINBOND出品的芯片。和其它扩展卡一样,该控制卡需要独占一个I/O地址,以避免和系统内的其它设备发生冲突,为此,该卡上提供了一组DIP开关A2~A8,用以设定该卡的I/O地址,可设定的I/O地址见表1。由于是标准的ISA接口,该卡要占用2K的上位内存,为了避免与其它的扩展卡冲突,该卡提供了6个可选的上位内存地址,用J1~J3设定,相对应的地址范围见表2,默认的上位内存范围为C8000-C87FF,因此,启动机器时,不要启动内存管理程序HIMEM.SYS和EMM386.EXE。由于该内置编程卡只是一个简单的8bit ISA插卡,没有后挡板。为了防止该卡插错方向导致烧毁主板或自身,在卡上标注有正确的安装方向,按箭头指示将卡正确插入主板上任一ISA插槽,设定好I/O地址口和占据的上位地址范围,即完成了硬件安装。

由于现在主板上的EPROM芯片用的已经比较少了,因此,该编程器不支持EPROM,只支持EEPROM芯片。目前主板上常用的EEPROM芯片主要有三类,一类是以Intel的28系列部分芯片和Winbond的29E系列芯片为代表的分块式的EEPROM,其BOOT BLOCK必须VPP=12V、PR#=12V才能编程,从而有效保护BIOS启动区(如果这块信息没丢失,则有的机子升级失败后用ISA显卡仍能显示);第二类是工业上常用的以INTEL为代表的另一类28F系列的芯片,该系列芯片的第1脚要加VPP(+12V)编程电压才能写片。由此可见,以上两类EEPROM芯片是双电压设计的,它可以在+5V的电压下正常读取,但写入时必须提供+12V的电压;第三类是单电压的EEPROM芯片,即我们所称的FLASH ROM芯片,这类芯片为单电压设计芯片,读写都是在单电压下进行的。因此,为了兼容不同类型的芯片,该卡上还有一个跳线,用以设定芯片的编程电压(如28F020需12V的编程电压,29C020则不需要)。

对芯片进行编程时,需要把计算机关闭,把需要编程的芯片插入编程卡上的DIP插座内。插入时要注意ROM芯片的一端有一个半圆形的凹口,在插入ROM芯片时,必须保证这个凹口方向和编程卡上标注的凹口方向一致,否则会导致芯片损坏。另外,还要根据芯片的类型设置好编程电压,才能通电。

编程卡是在程序的控制下对芯片进行操作的,为此,随卡提供了一个ctflash编程操作软件,现在用的是1.6版本,该软件是用在DOS状态下运行的,其格式为:

CTFLASH I/O R/W Filename [/M] [/N:E]

其中参数的含义如下:I/O为卡上设定的I/O地址,用16进制表示,默认的地址口为340h,R/W参数用来设定是读入数据(R)还是写入数据(W),Filename参数是要写入或保存的文件名,要注意的是,CTFLASH只能识别二进制格式的文件,文件的扩展名为Bin,对于Intel的Hex格式或Motorola的Hex-S格式的文件,需要用相应的转换软件转换才能被程序识别。最后一个参数是用来设定软件运行方式的,E参数是用命令行方式,N参数是采用菜单方式。

如:我们敲入命令:CTFLASH 340 R C:BIOS.BIN/E,意思是把编程卡上的ROM中的数据读出来,读出的数据保存在C:盘下的BIOS.BIN文件中,设定的I/O口为340h。

CTFLASH软件是自动识别芯片类型的,表3是1.6版本的CTFLASH支持的芯片的种类。如果软件不能正常运行,说明该芯片的类型程序不能自动识别出来,这时需要加上/M参数,就可以从程序列出的名单中,选择相兼容的芯片,以确保读写操作正常进行。如在菜单中找不到同公司、同型号选项,也可用其它公司同型号的产品代替,但型号必须完全相同,否则也可能性烧毁芯片。选定ROM型号后,在屏幕上会出现该ROM的一些基本数据。如果刚才选择ROM芯片的类型正确,编程器此时就会把该ROM的数据读入电脑的内存中。

当芯片中的数据受损后,我们可以敲入命令:CTFLASH 340 W C:BIOS.BIN,把保存在C:盘下的BIOS.BIN写入芯片中,从而方便地修复芯片。当然我们也可以直接把从网上下载的升级文件直接写入到芯片中,因为下载的扩展名为Bin升级文件,其格式就是二进制格式的。

BIOS编程卡编程卡对系统的要求相当低,我曾把它用在一台286机器上,也可以很好地运行,只是速度稍慢。当然,该编程卡只是一块初级的编程卡,由于价格方面的原因,它有许多缺陷,如:必须在纯DOS界面下操作,操作界面不直观;尽管支持的芯片类型囊括了常见的ROM芯片类型,但仍可能不支持新出的ROM型号(升级操作软件可以解决这个问题);芯片的插拔不方便,要拔下芯片时,需要用专用工具,换用无插拔力的ZIP插座比较好。尽管有以上种种使用不便,但一块只有百元左右的编程卡,我们还能对它要求什么呢?对于经常升级BIOS的用户而言,它还有具有一定的吸收力的。

对于PLCC封装的四方ROM芯片,无法直接在该卡上使用,但我们可以利用一个PLCC-DIP转换插座,通过该转换插座对PLCC封装的芯片操作。关于BIOS编程卡卡的更详细的信息,我把它放在"BIOS专页"上,感兴趣的朋友可以访问bios.533.net。

表1

I/O口地址 A8 A7 A6
300...303h On - -
320...323h On - On
340...343h On On -
360...363h On On On

表2

地址范围 J1 J2 J3
C8000...C87FF Off On Off
CC000...CC7FF Off On On
D0000...D07FF On Off Off
D4000...D47FF On Off On
D8000...D87FF On On Off
DC000...DC7FF On On On

表3

厂家 芯片种类
AMD Am29F010/002/040;Am28F010(A)/020(A)/040
ASD AE29F010A/020/040;AE29F2008
Atmel AT29C010A/020/040;AT49F001/02/04
CSI CAT28F001BX-T/B;CAT28F010/020
Intel i28F001BX-T/B;i28F010/020
Macronix MX28F1000P;MX28F2000P/T;MX29F002(N)T/B
Mosel-Vitelic F/V29C51002T/B
SST PH29EE010/020;PH28SF040;PH39SF010/020
ST Microlec M28F256(A)/512;M28F101;M29F002T/NT/B
Winbond W29EE011;W29C010/020/040

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑