完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
CH36x 扩展ROM 应用方案 1 1、概述 扩展ROM 在计算机中主要有两大类应用:一是作为电子盘,其中存储了引导程序和 微型操作系统及应用程序,在没有硬盘或者没有操作系统的情况下实现工业控制;二是 作为引导设备,其中存储了引导程序,在计算机引导过程中,抢在操作系统之前对计算 机进行控制,具体的应用有硬盘数据还原卡、硬盘数据保护卡、WINDOWS 终端卡、多机网 络管理卡、防火墙、硬盘和网络安全隔离卡、多用户PC 机管理卡等。 CH36x 系列芯片都支持扩展ROM 应用,其中,CH362 和CH365 是CH361 的升级产品, CH362 去掉了CH365 的中断功能等一些部件,但针对扩展ROM 应用作了技术优化和批量成 本优化。CH36x 完全不需要其它元器件,就可以直接支持EPROM、EEPROM、Flash Memory 闪存等,并且支持闪存在线编程和升级。ROM 的容量可以是32KB、64KB 甚至128KB,如 果外接地址锁存器则容量没有上限,而且CH362 能够以专用的扩容方法支持大容量的扩 展ROM,在上位内存空间非常有限的PC 机中,只需要占用32KB 甚至8KB 上位内存。 如果以普通网卡芯片设计扩展ROM,则容易受CMOS 中的LAN 或者Network 网络引导 项或者LAN boot first 以及Boot from Network 等选项的影响,导致扩展ROM 有某些主 板上不能正常工作。另外,普通网卡芯片所必须的93C46 等配置芯片,不但增加了硬件 成本,而且容易被人为或者意外改写,导致扩展ROM 永久性失效。 2、原理图 CH36x 扩展ROM 应用方案 2 3、电路说明 ① U3(24C01A 芯片)和跳线J1、J2 以及电阻R1、R2 都是可选元器件,根据应用的 不同,大多数扩展ROM 卡完全不需要这些元器件,或者只需要部分无器件,而在 某些扩展ROM 卡中,跳线和U3 都可以用于设定启动模式。 ② 跳线J1 和J2 可以用来获取外部的参数设定,由用户根据需要调节,从而使扩展 ROM 卡实现不同的功能,例如设定扩展ROM 卡的启动模式、工作模式等。如果不 插跳线,则数据线默认为高电平;如果插上跳线,则数据线默认为低电平。ROM 中的程序可以随时读取由跳线设定的默认电平,作为ROM 程序中的参数。 ③ U3(24C01A)可以用于在计算机关闭期间继续保存重要的数据,例如扩展ROM卡 的启动模式,扩展ROM 卡的序列号,用户的密码信息等,容量不够时可以选用同 系列芯片24C02(256 字节)、24C08(1024 字节)、24C16(2048 字节)等。 ④ 电阻R4 可选,用于设定PCI 板卡的厂商ID 和设备ID,不用R4 时扩展ROM 卡使 用CH36x 的默认ID 值。建议使用,如果使用R4,则需要在ROM 中PCI 配置空间 映象区域(ROM 的0040H~007FH 地址范围)设置相应的数据。 ⑤ 如果需要支持128KB 的扩展ROM,请参考CH36x 手册,CH36x 芯片的SYS_EX 引脚 是可以由程序自由独立控制的,所以可以借助于SYS_EX 将128KB 的ROM 分成两 个64KB 分别读取,相当于将SYS_EX 引脚作为A16 地址线。 ⑥ 如果需要支持Flash-Memory 闪存,可以将CH36x 的MEM_WR 引脚连接到闪存的写 允许端WR,实际应用例子请参考CH36x 扩展ROM 调试板。 4、ROM 程序设计 CH362ROM.ASM 是CH362 的汇编语言接口程序以及在扩展ROM 应用方面的程序参考。 接口程序本身不是必要的,理论上,直接插上ISA 卡的ROM 芯片就可以使用,但是如果 需要使用CH362 的一些专有特性,例如以专用扩容方法通过小窗口支持64KB 或者128KB 的扩展ROM 以及自定义PCI 设备ID 就必须参考该接口程序。 为了加速和简化ROM 程序设计,CH36x 还提供与之配套的应用程序库BRM,通常在购 买扩展ROM 调试板时免费授权使用。BRM 包括16 色640x480 和256 色800x600 图形界面 程序库、硬盘文件操作程序库、BOOT-ROM 启动程序库、数据解压缩程序库、字符串处理 程序库、杂项程序库,这些程序库都能够在BIOS 环境下运行,无需DOS 等操作系统。 ROM 程序调试的辅助工具:ROM 运行环境模拟程序。其程序名是CH362RUN.COM,它模 拟BIOS 初始化扩展ROM 的方式运行ROM 程序。有两种使用方式: ① 将ROM 映象数据文件名作为参数,让它将该文件中的数据作为ROM 运行。命令行 是 CH362RUN file_name ,其中file_name 是ROM 映象数据文件名,可以指定 盘符和目录。例如,CH362RUN DEMO22.BIN 就是将DEMO22.BIN 文件中的数据作 为ROM 程序在DOS 下模拟运行。如果是WINDOWS 的DOS 中,还可以使用打印屏幕 功能将ROM 程序中的界面截取下来,放到说明书中。 ② 使用“.”(小数点)作为参数,直接运行扩展ROM 卡中的程序。例如,计算机中 插了调试板,并且已经切换到调试状态,或者计算机中插了一块基于CH36x 的还 原卡,则命令行 CH362RUN . 就是直接运行待调试程序或者还原卡程序。 在CH362RUN 运行后,它首先初始化ROM,ROM 初始化过程有可能拦截INT19,当初始 化返回后,CH362RUN 提示“Press ENTER to call INT19”,此时按回车键则模拟BIOS 调用INT19,ROM 程序再次获得控制权,显示界面,实现某些特定功能。当ROM 程序执行 完成后,CH362RUN 将提示是否需要恢复所有的中断向量,如果ROM 修改了中断向量,可 以根据需要恢复或者不恢复。 CH36x 扩展ROM 应用方案 3 DEMO??.BIN 是一个扩展ROM 应用的简单演示程序,将其直接编程到256 或者512 芯 片中,然后插到CH36x 扩展ROM 卡中即可检查效果。 5、扩展ROM 检验 CHKROM3.BIN 是用于CH36x 扩展ROM 卡出厂检验的目标程序。通常情况下,出厂检 验是将扩展ROM 卡插在计算机上使用,因为计算机启动时间较长,并且一次只能检验一 块卡,所以检验效率很低。 如果使用CHKROM3.BIN 则一次可以检验多块卡,具体做法是: ① 采用一台带ISA 插槽的PCI 主板(例如586 主板)的主机; ② 将CHKROM3.BIN 作为ISA 卡的ROM 程序,在主板上插上该ISA 卡; ③ 将所有PCI 插槽插上待检验的PCI 扩展ROM 卡; ④ 开机,计算机自检; ⑤ 使用CHKROM3.BIN 作为ROM 程序的ISA 卡将逐个检验各PCI 扩展ROM 卡; ⑥ 如果有坏的则提示“错误”,否则提示“通过”; ⑦ 关机取出所有PCI 扩展ROM 卡; ⑧ 从步骤3 开始检验下一批PCI 扩展ROM 卡。 这样的检验效率要提高几倍。注意,该检验程序只检验PCI 扩展ROM 卡是否符合标 准的PCI 规范,不检查扩展ROM 卡的实际功能。 6、其它提示 重要提示,如果第一次试用CH36x,插卡后ROM 程序没有执行,即找不到卡。其一般 原因是CH36x 芯片的ID 信息与ROM 的ID 信息不一致。 ① 如果厂商自定义CH36x 的ID 信息,则定义于ROM 的0040H 至007FH 地址,共64 字节,与PCI 配置空间对应; ② 如果没有定义CH36x 的ID 信息,则要去掉电阻R4,使用CH36x 的默认ID 值; ③ ROM 的ID 信息,请参考PCI 总线规范,定义于ROM 的0018H 地址指向的PCI-ROM 结构中,紧随“PCIR”字符串; ④ 上述两个信息中的厂商标识(Vendor ID)和设备标识(Device ID)以及设备类 代码(Class Code)等必须是一致的,否则ROM 程序可能不执行。 7、元器件(只针对本说明中的电路图和PCB 印制板图,可以有变化) ① U3(24C01A 芯片)和跳线J1、J2 以及电阻R1、R2 都可以用于设定扩展ROM 的启动 模式,绝大多数扩展ROM 卡不需要这些元器件; ② 对于本说明所附带的PCB,如果需要插跳线帽(短路子),则跳帽应该水平横向插上, 建议出厂默认为不插; ③ 电容C1 为电解电容,47uF(22uF 至220uF 皆可); ④ 其余电容为贴片电容,0.luF 或者称为104,尺寸可以是0805 或者0603; ⑤ 电阻为贴片电阻,4.7kΩ或者称为472(3.3K 至6.8K 皆可),尺寸可以是0805 或 者0603,如果修改PCB,则可以使用非贴片电阻; ⑥ 如果用到跳线,则跳线可以是单排针或者双排针; ⑦ 28 脚插座,用于ROM 芯片:27C256 或者27C512; ⑧ CH362 或CH365 芯片,LQFP80 封装体积较小,适合批量加工,而PQFP80 封装引脚 间距较大,比较方便于手工焊接。 CH36x 扩展ROM 应用方案 4 8、ROM 格式转换工具程序 对于已有的PCI 扩展ROM,例如以前设计好的还原卡BOOT-ROM,用于网卡远程引导 的BOOT-ROM 或者无盘终端卡的BOOT-ROM 等,可以直接使用工具软件ROM36X.EXE 将其转 换为CH36x 的格式,而不必对BOOT-ROM 程序作任何额外修改。 ROM36X.EXE 是免费提供的ROM 格式转换工具程序,用于将其它PCI 扩展ROM 转换为 CH36x 的格式。该工具程序可以运行于DOS 或者WINDOWS 的DOS Box 命令行模式下,执行 时需要带上参数,包括指定原BOOT-ROM 数据文件名称和一些可选的控制选项。 命令行语法是: ROM36X.EXE old_rom_file_name [/X] [/C] [/S] [/P] 其中,old_rom_file_name 是原BOOT-ROM 数据文件名及扩展名,可以带目录名。 转换后的ROM 数据文件名与原文件名相同,只是扩展名变为36X。 方括号表示该选项是可选项,用于控制转换结果,根据实际需要指定。当一种方式 不能正常工作时可以改变一些参数或者使用另外一种转换方法。 /X 用于选择转换方法:直接转换或者间接转换 没有/X 参数,则采用简单的直接转换方法,仅仅将PCI-ROM 的厂商ID 和设备ID 替换为CH36x 的默认ID 信息。如果采用这种方法转换后的ROM,那么CH36x 的数据线D1 不能有下拉电阻R4,也就是说,必须采用CH36x 的默认ID,所以 Windows 操作系统首次检测到这个扩展ROM 卡时会提示“找到新硬件”。 使用/X 参数,则采用复杂的间接转换方法,工具程序将在原BOOT-ROM 中搜索至少 146 字节长度的连续剩余空间,将原BOOT-ROM 的初始化信息转移到该剩余空间 中,再使用CH36x 的初始化代码代替原初始化代码,当扩展ROM 卡在计算机中 工作后,CH36x 的初始化代码首先将整个ROM 完全恢复到原BOOT-ROM 的模样, 再将控制权移交给恢复后的原BOOT-ROM,所以原BOOT-ROM 程序完全感觉不到 任何区别。如果采用这种方法转换后的ROM,那么CH36x 的数据线D1 必须有下 拉电阻R4,也就是说,使用CH36x 的外部ID方式,所以Windows 操作系统不 会提示“找到新硬件”。这种方法的兼容性比前一种直接方法稍低。 /C 用于选择扩展ROM 卡的PCI 设备类:网卡类或者存储设备类 没有/C 参数,则将扩展ROM 卡作为网卡类,其类代码Class Code 是020000H。由 于部分主板对网络引导设备进行了控制,所以扩展ROM 卡能否工作可能要受主 板CMOS 中一些选项的影响,例如“LAN 或Network boot first”等。 使用/C 参数,则将扩展ROM 卡作为存储设备类,其类代码Class Code 是018000H, 也就是未定义的海量存储设备。扩展ROM 卡通常不受主板CMOS 的影响,除非 极个别主板需要设定“boot device: SCSI 或other”。 /S 用于选择间接转换方法中临时使用的缓冲区段地址:8877H 或者7788H 没有/S 参数,则临时使用的缓冲区段地址是8877H。 使用/S 参数,则临时使用的缓冲区段地址是7788H。 /P 用于选择扩展ROM 是否提供“$PnP”结构:不提供或者与原BOOT-ROM 相同 没有/P 参数,则扩展ROM 不提供“$PnP”结构。 使用/P 参数,则从原BOOT-ROM 中复制“$PnP”结构。 在转换过程中可能出现的错误提示信息说明: 'error opening old ROM file' 无法打开原BOOT-ROM 数据文件,可能是文件名或者目录名错 'error reading old ROM file' 无法读取原BOOT-ROM 数据文件,可能是磁盘损坏 'error: old ROM head signature, expect: 55H,AAH (55H@0000H,AAH@0001H)' 原BOOT-ROM 签名无效,ROM 前两个字节必须是55H,0AAH CH36x 扩展ROM 应用方案 5 'error: old ROM length of 512b, expect: 1KB-32KB (02H-40H@0002H)' 原BOOT-ROM 长度错误,有效长度是1KB 到32KB,ROM 第三字节必须是02H 到40H 之间 'error: reading data length less than ROM length, file maybe corrupt' 从原BOOT-ROM 文件中读取的数据长度小于原BOOT-ROM 中所指明的长度,可能是原文件损坏 'error: old ROM data check-sum, expect: check-sum of entire ROM = 00H' (继续运行) 原BOOT-ROM 的数据累加校验和错误,整个ROM 的数据累加校验和应该为00H 'error: old ROM PCIR signature, expect: PCI-ROM data structure exist' 原BOOT-ROM 的PCI-ROM 数据结构签名无效,PCI 扩展ROM 应该提供PCI-ROM 数据结构 'error: old ROM data too full, expect: free 146 bytes or repeat byte 146 times' 原BOOT-ROM 数据太满,如果使用间接转换方法,原ROM 中必须至少有146 字节的剩余空间,具 体表现为同一个数据连续重复146 次以上,例如连续146 个00H,或者连续146 个0FFH,或者 连续146 个其它重复的数据,可以在ROM 中的任何位置 'error create new ROM file' 无法创建转换后的新ROM 数据文件,可能是磁盘空间不足或者Windows 其它程序在共享使用 'error writing new ROM file' 无法将数据写入新ROM 数据文件,可能是磁盘错误或者是或者Windows 其它程序在共享使用 下面以转换RTL8139 网卡的BOOT-ROM 为例子,提供两个命令行语法参考 (文件名RPL8139.ROM 就是RTL8139 网卡的BOOT-ROM) ① 执行: ROM36X RPL8139.ROM 使用直接转换方法,转换后的ROM 文件名是RPL8139.36X,该ROM 文件所对应的扩 展ROM 硬件电路中,CH36X 的数据线D1 不能有下拉电阻R4。 ② 执行: ROM36X C:OLDRPL8139.ROM /X 使用间接转换方法,转换的原文件来自“C:OLD”目录中的文件RPL8139.ROM,转 换后的ROM 文件名是RPL8139.36X,存放于同一目录下,该ROM 文件所对应的扩展 ROM 硬件电路中,CH36X 的数据线D1 必须有下拉电阻R4。 如果原BOOT-ROM 文件大于32KB,那么可以使用另外一个带数据压缩功能的ROM 格式 转换工具程序ROM36Z.EXE。该工具程序可以将较大的BOOT-ROM 数据压缩后转换为CH36x 的格式,该工具对原BOOT-ROM 文件的大小没有要求,但是压缩并转换后的数据文件不能 大于128KB,也就是说,压缩转换后的新BOOT-ROM 文件可以在1KB 到128KB 之间。 根据产生的新BOOT-ROM 数据文件的大小,ROM 芯片可以使用27C128(16KB)、27C256 (32KB)、27C512(64KB)和27C010/29C010(128KB,A16 地址线由SYS_EX 提供),扩展 ROM 工作时CH36x 自动识别上述容量的芯片,数据线D0 不需要连接下拉电阻。 命令行语法是: ROM36Z.EXE old_rom_file_name /Z [/C] 其中,old_rom_file_name 是原BOOT-ROM 数据文件名及扩展名,可以带目录名。 转换后的ROM 数据文件名与原文件名相同,只是扩展名变为36Z。 方括号表示该选项是可选项,根据实际需要指定。 /Z 用于选择转换方法:压缩后再间接转换。必须带这个参数 使用/Z 参数,则采用压缩后再间接转换的方法,工具程序将原BOOT-ROM 压缩后再 添加标准的CH36x 初始化代码,生成新的BOOT-ROM。当扩展ROM 卡在计算机中 工作后,CH36x 的初始化代码首先拦截INT19H,在计算机调用INT19H 准备引 导操作系统之前,解压缩原BOOT-ROM 数据,完全恢复到原BOOT-ROM 的模样, 再模拟BIOS 初始化恢复后的原BOOT-ROM,所以原BOOT-ROM 程序通常感觉不到 任何区别。如果采用这种方法转换后的ROM,那么CH36x 的数据线D1 必须有下 CH36x 扩展ROM 应用方案 6 拉电阻R4,也就是说,使用CH36x 的外部ID方式,所以Windows 操作系统不 会提示“找到新硬件”。这种方法的兼容性比直接或者间接转换方法稍低。 /C 用于选择扩展ROM 卡的PCI 设备类:网卡类或者存储设备类 没有/C 参数,则将扩展ROM 卡作为网卡类,其类代码Class Code 是020000H。由 于部分主板对网络引导设备进行了控制,所以扩展ROM 卡能否工作可能要受主 板CMOS 中一些选项的影响,例如“LAN 或Network boot first”等。 使用/C 参数,则将扩展ROM 卡作为存储设备类,其类代码Class Code 是018000H, 也就是未定义的海量存储设备。扩展ROM 卡通常不受主板CMOS 的影响,除非 极个别主板需要设定“boot device: SCSI 或other”。 下面以转换RTL8139 网卡的BOOT-ROM 为例子,提供一个命令行语法参考 (文件名RPL8139.ROM 就是RTL8139 网卡的BOOT-ROM) 执行: ROM36Z RPL8139.ROM /Z 使用压缩后再间接转换的方法,转换后的ROM 文件名是RPL8139.36Z,该ROM 文件 所对应的扩展ROM 硬件电路中,CH36X 的数据线D1 必须有下拉电阻R4。实际上,对 于有些网卡的BOOT-ROM,原BOOT-ROM文件虽然是64KB,需要用27C512 芯片,但是 压缩后的新BOOT-ROM 文件有可能不超过32KB,只需要用27C256 芯片。 9、参考方案 ①、 多用户PC 机管理卡 单硬盘多用户隔离,也就是多重引导,将一个硬盘分成多个逻辑上独立的小硬 盘,每个用户都有完全独立的操作系统,互不干扰,每个用户都有专用密码防 止他人使用。同一部门多人共用一台PC 机,提高使用率,例如,将中小企业 使用率不高的金税系统的开票机用于办公而完全不会影响原金税系统。 ②、 硬盘和网络安全隔离卡,请参考网站上该方案的完整说明。 ③、 电子盘或终端卡,免费提供工具软件,请参考网站上该方案的完整说明。 ④、 单芯片扩展ROM 方案 完全不需要任何ROM 芯片的扩展ROM 卡,用于硬盘数据还原卡和保护卡,详细 资料请参考CH365 芯片手册(二)和单芯片扩展ROM 方案说明。 10、BIOS 兼容性 CH36x 芯片主要是提供了一个简单方便、易于控制的硬件载体和硬件平台,CH36x 是 通用芯片,本身并没有限定做任何特定用途,其很多特性都可以由ROM 中的程序和数据 进行自由设定,而这些设定有可能会影响到扩展ROM 与主板BIOS 之间的兼容性,详细的 兼容性说明可以参考网站上的相关文档。 |
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 00:16 , Processed in 0.625949 second(s), Total 47, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号