软盘控制器编程方法

软盘控制器编程方法

ID:32997684

大小:72.04 KB

页数:26页

时间:2019-02-18

软盘控制器编程方法_第1页
软盘控制器编程方法_第2页
软盘控制器编程方法_第3页
软盘控制器编程方法_第4页
软盘控制器编程方法_第5页
资源描述:

《软盘控制器编程方法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、软盘控制器编程方法软盘控制器的编程方法赵炯oldlinux.org(gohigh@shl63.net)1.1软盘驱动器的设备号在Linux中,软驱的主设备号是2,次设备号二TYPE*4+DRIVE,其中DRIVE为0・3,分别对应软驱A、B、C或D;TYPE是软驱的类型,2表示1.2M软驱,7表示1.44M软驱,也即floppy.c中85行定义的软盘类型(floppy_type[])数组的索引值:表6.1软盘驱动器类型类型1234567说明不用。360KBPC软驱。1.2MBAT软驱。360kB在720kB驱动器中使用。3.5"720kB软盘。360kB在1.2MB驱动器中使用。7

2、20kB在1.2MB驱动器中使用。1.44MB软驱。例如,因为7*4+0=28,所以/dev/PSO(2,28)指的是1.44MA驱动器,其设备号是0x021Co同理/dev/atO(2,8)指的是1.2MA驱动器,其设备号是0x0208。1.2软盘控制器对软盘控制器的编程比较烦琐。在编程时需耍访问4个端口,分别对应一个或多个寄存器。对于1.2M的软盘控制器有以下一些端口。表6.2软盘控制器端口I/O端口Ox3f20x3f4Ox3f5Ox3f7读写性寄存器名称只写只读读/写只读只写数字输岀寄存器(DOR)(数字控制寄存器)FDC主状态寄存器(STATUS)FDC数据寄存器(DATA

3、)数字输入寄存器(DIR)磁盘控制寄存器(DCR)(传输率控制)数字输出端口DOR(数字控制端口)是一个8位寄存器,它控制驱动器马达开启、驱动器选择、启动/复位FDC以及允许/禁止DMA及中断请求。表6.3数字输出寄存器定义位名称说明共10页76510M0T_EN3M0T_EN2MOT_EN1MOT_ENODMAJNTRESETDRV_SEL1DRV_SELO启动软驱D马达::k启动;0■关闭。启动软驱C马达:1■启动;0■关闭。启动软驱B马达:3■■启动;0■关闭。启动软驱A马达:1■启动;0•关闭。允许DMA和中断请求;0■禁止DMA和中断请求。允许软盘控制器FDC工作。0■复

4、位FDC。00-11用于选择软盘驱动器A・D。FDC的主状态寄存器也是一个8位寄存器,用于反映软盘控制器FDC和软盘驱动器FDD的基本状态。通常,在CPU向FDC发送命令之前或从FDC获取操作结果Z前,都耍读取主状态寄存器的状态位,以判别当前FDC数据寄存器是否就绪,以及确定数据传送的方向。表6.4FDC主状态控制器MSR定义位名称76543210RQMDIONDMCBDDBDCBDBBDAB说明数据口就绪:控制器FDC数据寄存器已准备就绪。传输方向:1-FDC7CPU;0-CPU7FDC非DMA方式:1■非DMA方式;0-DMA方式控制器忙:FDC正处于命令执行忙碌状态软驱D忙软

5、驱C忙软驱B忙软驱A忙FDC的数据端口对应多个寄存器(只写型命令寄存器和参数寄存器、只读型结果寄存器),但任一时刻只能有一个寄存器岀现在数据端口0x3f5。在访问只写型寄存器时,主状态控制的DIO方向位必须为0(CPU?FDC),访问只读型寄存器时则反Z。在读取结果时只有在FDC不忙Z后才算读完结果,通常结果数据最多有7个字节。数据输入寄存器(DIR)只有位7(D7)对软盘有效,用来表示盘片更换状态。其余七位用于硬盘控制器接口。磁盘控制寄存器(DCR)用于选择盘片在不同类型驱动器上使用的数据传输率。仅使用低2位(D1D0),00-500kbps,01-300kbps,10-250k

6、bps。Linux0.11内核中,驱动程序与软驱中磁盘之间的数据传输是通过DMA控制器实现的。在进行读写操作之前,需要首先初始化DMA控制器,并对软驱控制器进行编程。对于386兼容PC,软驱控制器使用硬件中断IR6(对应中断描述符0x26),并采用DMA控制器的通道2。有关DMA控制处理的内容见后面小节。1.3软盘控制器命令软盘控制器共可以接受15条命令。每个命令均经历三个阶段:命令阶段、执行阶段和结果阶段。共10页命令阶段是CPU向FDC发送命令字节和参数字节。每条命令的第一个字节总是命令字节(命令码)。其后跟着0-8字节的参数。执行阶段是FDC执行命令规定的操作。在执行阶段CP

7、U是不加干预的,一般是通过FDC发出中断请求获知命令执行的结束。如果CPU发出的FDC命令是传送数据,则FDC可以以中断方式或DMA方式进行。中断方式每次传送1字节。DMA方式是在DMA控制器管理下,FDC与内存进行数据的传输直至全部数据传送完。此时DMA控制器会将传输字节计数终止信号通知FDC,最后由FDC发出中断请求信号告知CPU执行阶段结束。结果阶段是由CPU读取FDC数据寄存器返回值,从而获得FDC命令执行的结果。返回结果数据的长度为0-7字节。对于没有返回结

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。