软盘控制器(英语:Floppy Disk Controller,简称:FDC),是一个特殊功能的芯片,由控制读取与写入电脑软式磁盘驱动器相关磁盘控制器(英语:Disk controller)电路所组成。在1980年代到1990年代,软盘控制器普遍使用于个人电脑或与IBM PC兼容的机型上,如NEC μPD765、Intel 82072A或是82072A及其后继芯片型号。而在除上所列外其他的软盘控制器,可能存在结构上有着与之不同的观念或实现方式。
一个软盘控制器电路板最多可以控制到四个软式磁盘驱动器,控制器连接到电脑的系统总线,并提供I/O端口给中央处理器。一般也与直接存储器访问控制器连接。在x86个人电脑上,软盘控制器使用中断服务6,在其他的系统上,其他的中断服务方式也可能被使用。软盘控制器通常使用直接存储器访问模式来实现资料的发送。
在下面的框图上显示软盘控制器经由工业标准结构(ISA)总线来与中央处理器沟通。在后来的设计里,软盘控制器被包含在Super I/O芯片中,并透过LPC总线来与外界沟通。
大部分的软盘控制器功能是以集成电路的方式实现。但是有些是用外部电路的方式实现。软盘控制器的功能详列如下。
软盘控制器有三个I/O端口,如下所示:
前两个端口存在于软盘控制器芯片中,而控制端口则位于外部电路里。下面是三个端口的对应地址。
软件使用资料端口有三个不同的目的:
软件使用此端口来读取软盘控制器芯片与软盘驱动器所有的状态信息。在进行软盘驱动器操作初始化前,软件读取此端口的资料来确定软盘控制器是否已是准备就绪的状态,并且软盘驱动器经由先前的初始化命令来验证相关的状态。以下列出状态寄存器不同比特意义的说明:
软件使用数字控制端口来控制软盘驱动器和软盘控制器芯片的特定功能。此端口的比特被赋予的意义说明如下:
有可能存在彼此互不兼容的软盘帧式;除此之外,因为磁盘片实体格式的不同,也可能存在互不兼容的文件系统。
面数:
密度:
起初在日本,出现有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容量磁盘片。但当工作在每分钟转速为300的 1.44 MB格式取代了每分钟转速为360 的1.2 MB格式的磁片而变得普遍后,就如同每个磁道有15个扇区的1.2 MB格式磁片取代5.25"高密度磁盘驱动器一样。此后,日本使用的软盘驱动器就支持了两种高密度格式(也支持单密度格式)。因此被称为3模式。一些BIOS提供设置选项可以来致能此一模式的软盘驱动器。