软碟控制器
软碟控制器(英语: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 (页面存档备份,存于互联网档案馆)