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