軟碟控制器(英語:Floppy Disk Controller,簡稱:FDC),是一個特殊功能的晶片,由控制讀取與寫入電腦軟式磁碟機相關磁碟控制器電路所組成。在1980年代到1990年代,軟碟控制器普遍使用於個人電腦或與IBM PC相容的機型上,如NEC μPD765、Intel 82072A或是82072A及其後繼晶片型號。而在除上所列外其他的軟碟控制器,可能存在結構上有著與之不同的觀念或實作方式。
一個軟碟控制器電路板最多可以控制到四個軟式磁碟機,控制器連接到電腦的系統匯流排,並提供I/O埠給中央處理器。一般也與直接記憶體存取控制器連接。在x86個人電腦上,軟碟控制器使用中斷服務6,在其他的系統上,其他的中斷服務方式也可能被使用。軟碟控制器通常使用直接記憶體存取模式來實現資料的傳送。
在下面的方塊圖上顯示軟碟控制器經由工業標準結構(ISA)匯流排來與中央處理器溝通。在後來的設計裡,軟碟控制器被包含在Super I/O晶片中,並透過LPC匯流排來與外界溝通。
大部分的軟碟控制器功能是以積體電路的方式實現。但是有些是用外部電路的方式實現。軟碟控制器的功能詳列如下。
軟碟控制器有三個I/O埠,如下所示:
前兩個埠存在於軟碟控制器晶片中,而控制埠則位於外部電路裡。下面是三個埠的對應位址。
軟體使用資料埠有三個不同的目的:
軟體使用此埠來讀取軟碟控制器晶片與軟碟機所有的狀態資訊。在進行軟碟機操作初始化前,軟體讀取此埠的資料來確定軟碟控制器是否已是準備就緒的狀態,並且軟碟機經由先前的初始化命令來驗證相關的狀態。以下列出狀態暫存器不同位元意義的說明:
軟體使用數位控制埠來控制軟碟機和軟碟控制器晶片的特定功能。此埠的位元被賦予的意義說明如下:
有可能存在彼此互不相容的軟碟片格式;除此之外,因為磁碟片實體格式的不同,也可能存在互不相容的檔案系統。
[8]
面數:
密度:
[9]
起初在日本,出現有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]