软盘控制器
软盘控制器(英语:Floppy Disk Controller,简称:FDC),是一个特殊功能的芯片,由控制读取与写入电脑软式磁盘驱动器相关磁盘控制器电路所组成。在1980年代到1990年代,软盘控制器普遍使用于个人电脑或与IBM PC兼容的机型上,如NEC μPD765、Intel 82072A或是82072A及其后继芯片型号。而在除上所列外其他的软盘控制器,可能存在结构上有着与之不同的观念或实现方式。
概观
[编辑]一个软盘控制器电路板最多可以控制到四个软式磁盘驱动器,控制器连接到电脑的系统总线,并提供I/O端口给中央处理器。一般也与直接存储器访问控制器连接。在x86个人电脑上,软盘控制器使用中断服务6,在其他的系统上,其他的中断服务方式也可能被使用。软盘控制器通常使用直接存储器访问模式来实现资料的发送。
在下面的框图上显示软盘控制器经由工业标准结构(ISA)总线来与中央处理器沟通。在后来的设计里,软盘控制器被包含在Super I/O芯片中,并透过LPC总线来与外界沟通。
大部分的软盘控制器功能是以集成电路的方式实现。但是有些是用外部电路的方式实现。软盘控制器的功能详列如下。
软盘控制器的功能
[编辑]外部电路功能
[编辑]- 选择软盘驱动器
- 开启软盘驱动器马达
- 提供软盘控制器芯片的重置信号
- 致能/取消在软盘控制器内的中断与直接存储器访问信号
- 资料分离逻辑电路
- 写前补偿逻辑电路
- 为控制器提供线性驱动信号
- 从控制器接收线性信号
一般x86个人电脑软盘控制器的输入/输出端口
[编辑]软盘控制器有三个I/O端口,如下所示:
- 资料端口
- 主状态寄存器(MSR)
- 控制端口
前两个端口存在于软盘控制器芯片中,而控制端口则位于外部电路里。下面是三个端口的对应地址。
端口地址 [hex] |
端口名称 | 所在位置 | 端口类型 |
---|---|---|---|
3F5 | 资料寄存器 | 软盘控制器芯片 | 双向输出/输入 |
3F4 | 主状态寄存器 | 软盘控制器芯片 | 输入 |
3F2 | 数字控制端口 | 外部电路 | 输出 |
资料端口
[编辑]软件使用资料端口有三个不同的目的:
- 当软件发出命令给软盘控制芯片,命令与命令参数是经由资料端口发出给软盘控制器芯片。软盘控制器芯片将命令与命令的不同参数存储在控制器内部的寄存器中。
- 当命令被执行后,软盘控制器芯片存储一组状态参数于控制器内部寄存器中。这些状态参数经由资料端口被中央处理器读取。这些不同的状态字节被软盘控制器芯片依特定的顺序排列呈现。
- 当工作在资料传输模式中,软盘控制器芯片与中央处理器的输出输入指令间的资料传递是经由资料工作来完成的。
主状态寄存器(MSR)
[编辑]软件使用此端口来读取软盘控制器芯片与软盘驱动器所有的状态信息。在进行软盘驱动器操作初始化前,软件读取此端口的资料来确定软盘控制器是否已是准备就绪的状态,并且软盘驱动器经由先前的初始化命令来验证相关的状态。以下列出状态寄存器不同比特意义的说明:
比特 | 说明 |
---|---|
0 | FDD 0:0号软盘驱动器处于搜索模式忙碌 |
1 | FDD 1:1号软盘驱动器处于搜索模式忙碌 |
2 | FDD 2:2号软盘驱动器处于搜索模式忙碌 |
3 | FDD 3:3号软盘驱动器处于搜索模式忙碌 |
4 | FDC Busy:软盘控制器忙碌;读取/写入命令进行中 |
5 | Non-DMA mode:不是处于直接存储器访问模式 |
6 | DIO:指出软盘控制器芯片与中央处理器间资料传输的方向 |
7 | MQR:指出资料寄存器为已准备完成,可以进行资料发送 |
解释 | |
---|---|
MQR | 1 = 资料寄存器已准备完成,0 = 资料寄存器尚未准备完成 |
DIO | 1 = 控制器有资料给中央处理器,0 = 控制器从中央处理器接收资料 |
Non-DMA | 1 = 控制器不在直接存储器访问模式中,0 = 控制器处于直接存储器访问模式中 |
FDC Busy | 1 = 忙碌,0 = 闲置 |
FDD 0,1,2,3 | 1 = 使用中,0 = 非使用中 |
数字控制端口
[编辑]软件使用数字控制端口来控制软盘驱动器和软盘控制器芯片的特定功能。此端口的比特被赋予的意义说明如下:
比特 | 说明 |
---|---|
0与 1 | 被选择的设备号码 |
2 | 重置软盘驱动器控制芯片(低位准) |
3 | 致能软盘控制器的中断及直接存储器访问信号 |
4到7 | 个别比特代表已启动马达的盘符0、1、2或3 |
格式资料
[编辑]有可能存在彼此互不兼容的软盘帧式;除此之外,因为磁盘片实体格式的不同,也可能存在互不兼容的文件系统。
磁盘驱动器 | 格式 | 容量 | 传输 速度 [kbit/s] |
RPM | 磁道数 | TPI | 注解 |
---|---|---|---|---|---|---|---|
8" SD | 8" SD | 80 kB | 33.333 | 360 | 32 | 48 | 旧的控制器才有。[1] |
5.25" SD | 5.25" SD | 160 kB | 125 | 40 | 旧的控制器才有。 | ||
5.25" SD | 5.25" SD | 171 kB | 250 - 308 | 35 | 只与C1541兼容的才有。 | ||
5.25" SD | 5.25" SD | 180 kB | 150 | 40 | 旧的控制器才有。 | ||
5.25" DD | 5.25" DD | 360 kB | 250 | 300 | 40 | [2] | |
5.25" HD | 5.25" DD | 360 kB | 300 | 360 | 40 | 48 | [3][4] |
5.25" HD | 5.25" HD | 1.2 MB | 500 | 360 | 80 | 96 | 最高到83个磁道。不同的偏压电流。[3][4] |
5.25" HD | 5.25" HD | 720 kB | 300 | 360 | 80 | 最高到83个磁道。[2] | |
3.5" DD | 3.5" DD | 720 kB | 250 | 300 | 80 | 135 | 最高到83个磁道。[2][5] |
3.5" DD | 3.5" DD | 800 kB | 250 | 300 | 80 | 为C1581所使用。 | |
3.5" DD | 3.5" DD | 880 kB | 250 | 300 | 80 | 最高到83个磁道。为Amiga电脑所使用。 | |
3.5" DD | 3.5" DD | 360 kB | 250 | 300 | 40 | [2] | |
3.5" HD | 3.5" DD | 720 kB | 250 | 300 | 80 | 最高到83个磁道。[2] | |
3.5" HD | 3.5" HD | 1.44 MB | 500 | 300 | 80 | 135 | 最高到83个磁道。[2][6] |
3.5" HD | 3.5" HD | 1.76 MB | 250 | 300 | 80 | 为Amiga电脑所使用。 | |
3.5" ED | 3.5" ED | 2.88 MB | 1000 | 300 | 80 | 135 | 最高到83个磁道。[5][7] |
面数:
密度:
"3模式"软盘驱动器
[编辑]起初在日本,出现有3.5"高密度软盘驱动器支持3种磁盘格式取代普遍的支持两种软盘帧式的磁盘驱动器 - 1.44 MB(2 MB未格式化),1.2 MB(1.6 MB未格式化)和 720 kB(1 MB未格式化)。最初,在日本3.5"软盘驱动器的高密度模式只支持1.2 MB的容量磁片而不支持除日本以外普遍所使用的1.44 MB容量磁盘片。[10]但当工作在每分钟转速为300的 1.44 MB格式取代了每分钟转速为360 的1.2 MB格式的磁片而变得普遍后,就如同每个磁道有15个扇区的1.2 MB格式磁片取代5.25"高密度磁盘驱动器一样。此后,日本使用的软盘驱动器就支持了两种高密度格式(也支持单密度格式)。因此被称为3模式。一些BIOS提供设置选项可以来致能此一模式的软盘驱动器。[11]
延伸阅读
[编辑]- viralpatel.net - A tutorial on programming floppy disk controller. (页面存档备份,存于互联网档案馆)
- isdaman.com - Programming Floppy Disk Controllers (页面存档备份,存于互联网档案馆)
- pestingers.net - Floppy drive photo gallery (页面存档备份,存于互联网档案馆)
相关条目
[编辑]参考
[编辑]- ^ hypertextbook.com - Angular Speed of a Floppy Disk. [2013-06-07]. (原始内容存档于2021-04-21).
- ^ 2.0 2.1 2.2 2.3 2.4 2.5 unifr.ch - sys/src/kernel/floppy.c. [2011-05-05]. (原始内容存档于2011-07-19).
- ^ 3.0 3.1 iesleonardo.info - This diskette tutorial provides technical information concerning diskettes. [2013-06-07]. (原始内容存档于2012-03-23).
- ^ 4.0 4.1 oldskool.org - Let HD 5,25" FDDs operate at 300 rpm instead of 360 rpm. [2013-06-07]. (原始内容存档于2021-03-04).
- ^ 5.0 5.1 intel.com - Intel 82077SL for Super Dense Floppies 互联网档案馆的存档,存档日期2012-10-08.
- ^ yi.org - High Density Floppy Disks Mf2hd Disk 3 5 1 Pk[失效链接]
- ^ mcamafia.de - IBM Personal system/2, 3,5"-inch Diskette Drives, Technical Reference (PDF). [2013-06-07]. (原始内容存档 (PDF)于2021-05-06).
- ^ Linux-2.6.17/drivers/block/floppy.c. [2013-06-07]. (原始内容存档于2008-08-23). 090504 gelato.unsw.edu.au
- ^ What is the difference between the traditional floppy disk and the high capacity floppy disks? - Yahoo! Answers. [2013-06-07]. (原始内容存档于2012-10-17). 100626 answers.yahoo.com
- ^ books.google.com - Fix Your Own PC by Corey Sandler
- ^ rojakpot.com - 3mode floppy support
- Jonathan de Boyne Pollard. There is no such thing as a 3.5 inch floppy disc.. Frequently Given Answers. 2003. (原始内容存档于2013-05-29).
- ISO/IEC 8860-1:1987 Double-Density (DD)
- ISO/IEC 9529-1:1989 High-Density (HD)
- ISO 10994-1:1992 Extra-high-density (ED)
- ECMA-147 (页面存档备份,存于互联网档案馆)