軟碟控制器

軟碟控制器（，簡稱：），是一個特殊功能的晶片，由控制讀取與寫入電腦軟式磁碟機相關電路所組成。在1980年代到1990年代，軟碟控制器普遍使用於個人電腦或與IBM PC相容的機型上，如NEC μPD765、Intel 82072A或是82072A及其後繼晶片型號。而在除上所列外其他的軟碟控制器，可能存在結構上有著與之不同的觀念或實作方式。



概觀 
一個軟碟控制器電路板最多可以控制到四個軟式磁碟機，控制器連接到電腦的系統匯流排，並提供I/O埠給中央處理器。一般也與直接記憶體存取控制器連接。在x86個人電腦上，軟碟控制器使用中斷服務6，在其他的系統上，其他的中斷服務方式也可能被使用。軟碟控制器通常使用直接記憶體存取模式來實現資料的傳送。

在下面的方塊圖上顯示軟碟控制器經由工業標準結構（ISA）匯流排來與中央處理器溝通。在後來的設計裡，軟碟控制器被包含在Super I/O晶片中，並透過LPC匯流排來與外界溝通。

大部分的軟碟控制器功能是以積體電路的方式實現。但是有些是用外部電路的方式實現。軟碟控制器的功能詳列如下。

軟碟控制器的功能 
 將位元資料轉換成或格式來紀錄
 解析並執行命令，如搜尋、讀取、寫入、格式化等等
 以校驗和的產生與驗證來做錯誤偵測，如同循環冗餘校驗
 用鎖相迴路（PLL）來同步資料

外部電路功能 
 選擇軟碟機
 開啟軟碟機馬達
 提供軟碟控制器晶片的重置信號
 致能/取消在軟碟控制器內的中斷與直接記憶體存取信號
 資料分離邏輯電路
 邏輯電路
 為控制器提供訊號
 從控制器接收線性訊號

一般x86個人電腦軟碟控制器的輸入/輸出埠 
軟碟控制器有三個I/O埠，如下所示：
 資料埠
 主狀態暫存器（MSR）
 控制埠

前兩個埠存在於軟碟控制器晶片中，而控制埠則位於外部電路裡。下面是三個埠的對應位址。

資料埠 
軟體使用資料埠有三個不同的目的：
 當軟體發出命令給軟碟控制晶片，命令與命令參數是經由資料埠發出給軟碟控制器晶片。軟碟控制器晶片將命令與命令的不同參數儲存在控制器內部的暫存器中。
 當命令被執行後，軟碟控制器晶片儲存一組狀態參數於控制器內部暫存器中。這些狀態參數經由資料埠被中央處理器讀取。這些不同的狀態位元組被軟碟控制器晶片依特定的順序排列呈現。
 當工作在資料傳輸模式中，軟碟控制器晶片與中央處理器的輸出輸入指令間的資料傳遞是經由資料工作來完成的。

主狀態暫存器（MSR） 
軟體使用此埠來讀取軟碟控制器晶片與軟碟機所有的狀態資訊。在進行軟碟機操作初始化前，軟體讀取此埠的資料來確定軟碟控制器是否已是準備就緒的狀態，並且軟碟機經由先前的初始化命令來驗證相關的狀態。以下列出狀態暫存器不同位元意義的說明：

數位控制埠 
軟體使用數位控制埠來控制軟碟機和軟碟控制器晶片的特定功能。此埠的位元被賦予的意義說明如下：

格式資料 

有可能存在彼此互不相容的軟碟片格式;除此之外，因為磁碟片實體格式的不同，也可能存在互不相容的檔案系統。

面數：
 SS - 
 DS - 

密度：
 SD - （FM）
 DD - （）
 HD - 高密度
 ED - 延伸密度（垂直寫入技術）

"3模式"軟碟機 

起初在日本，出現有3.5"高密度軟碟機支援3種磁碟格式取代普遍的支援兩種軟碟片格式的磁碟機 - 1.44 MB（2 MB未格式化），1.2 MB（1.6 MB未格式化）和 720 kB（1 MB未格式化）。最初，在日本3.5"軟碟機的高密度模式只支援的容量磁片而不支援除日本以外普遍所使用的容量磁碟片。但當工作在每分鐘轉速為300的　1.44 MB格式取代了每分鐘轉速為360　的1.2 MB格式的磁片而變得普遍後，就如同每個磁軌有15個磁區的1.2 MB格式磁片取代5.25"高密度磁碟機一樣。此後，日本使用的軟碟機就支援了兩種高密度格式（也支援單密度格式）。因此被稱為3模式。一些BIOS提供設定選項可以來致能此一模式的軟碟機。

延伸閱讀 
viralpatel.net - A tutorial on programming floppy disk controller. 
isdaman.com - Programming Floppy Disk Controllers 
pestingers.net - Floppy drive photo gallery

相關條目

參考 

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 

電腦儲存媒體
集成电路
存储媒体