单片机与IBM-PC机硬盘驱动器适配器的接口分析
扫描二维码
随时随地手机看文章
51单片机集成度高,控制、处理能力强,工作可靠稳定,已广泛应用于生产过程的自动检测、工业实时控制、机器人、通信、导航、医疗卫生和智能仪器仪表等领域。在这些应用中,特别是在工程信号的自动测试、分析中,常常需要记录、存储大量的数据,某些数据还需长期或永久保存。目前,单片机系统保存、记录数据的工具是随机存取存储器(RAM)。众所周知,RAM不能长久保存数据,51系列单片机系统的数据存储器最大只有64 KB,因此这些方法满足不了某些实际系统的要求。当前磁记录技术已非常成熟,硬盘记录、存储系统已成为计算机系统中的主流设备。它的存储容量大,存取速度高,可以永久性地保存数据,而价格却越来越低。将其应用于单片机系统,可使组成的系统性能大为提高。
IBM - PC计算机支持硬盘系统,主机与硬盘之间的接口技术已经标准化,已得到广泛的应用。用IBM - PC机的硬盘系统作为51系列单片机系统的数据存储设备,接口电路结构简单,无需专门设计硬盘的驱动电路,因而构成的应用系统性能价格比非常高。
一、接口电路的设计
IBM - PC机硬盘驱动器适配器简称硬盘控制器。它是一个智能部件,可接一个或两个硬盘,通过系统板上62脚I/O通道插槽与PC机相连。这62脚信号线在此只用了40脚,其中AO~A19为20位地址线;DO~D7是8位数据线;MEMR用于读硬盘的基本I/O程序;IOR和IOW分别为主机读、写硬盘控制器的控制信号;IRQ5、DRQ3分别为硬盘控制器的中断请求和DMA请求信号;DACK3为主机响应DMA时送给控制器的信号;另外还有一个复位硬盘控制器的RESET信号,一个DMA数据传送时禁止I/O操作的AEN信号和6根电源、地线。主机从硬盘读取数据或向硬盘写入数据均是通过向硬盘控制器提供的6个可访问的寄存器写入命令和控制字来实现的。因此,设计单片机与硬盘控制器的接口电路时,只要考虑以上信号的产生、接收,单片机数据存储器的扩展,DMA控制器的连接等问题即可。在PC机中,硬盘控制器的6个可访问的寄存器占用主机的I/O端口地址320—323H,信号的发送、接收均是通过这几个口地址寻址的。20根地址线实际只用了10根,51系列单片机有16根地址线,能满足地址译码的要求。51系列单片机不直接支持DMA数据传送方式,而硬盘控制器和数据存储器之间的数据必须采用DMA方式。在PC机中,主机对硬盘控制器的读/写操作是通过对I/0端口的读/写来实现的,而单片机系统没有I/O读/写指令,可采用存储器映射方式,将硬盘控制器的4个地址映射到外部数据存储器,这样控制器的IOR和IOW分别与单片机的WR和RD相连即可。硬盘控制器的中断请求信号IRQ5只用于硬盘操作结束信号,因此,此信号作为单片机的INT1。其他信号线的连接方式不赘述,本接口电路如图1- 91所示。
二、软件设计
在IBM - PC机中,主机可通过调用BIOS程序实现控制器、驱动器和硬盘的诊断,数据的存入和取出,设置硬盘的参数,测试硬盘驱动器是否准备好,格式化硬盘等功能;可通过DOS中断程序灵活地进行数据文件的加工、处理;还可通过硬盘启动和引导系统,安装各种应用程序。因此它的软件结构很复杂,程序量也很大。在本例中,只是把硬盘作为大容量数据存储器,因此只需简单地格式化磁盘,读/写数据以及测试硬盘驱动器的好坏、是否准备好等功能,可通过向控制器的6个寄存器写入命令和控制字来实现。这6个寄存器的访问逻辑见表1- 25。
数据输入/输出寄存器( DIOR)很重要,是控制器的信号主吞吐口。状态寄存器(321R)提供硬盘控制器的硬件状态,图1- 92为该寄存器每一位的作用。其他4个寄存器的功能、用途参见相关文献,在此不赘述。硬盘控制器的命令是由6字节组成的字块,称为命令块。由命令块可发布19条命令,本节只选用其中的少数几条,如读盘(READ)、写盘(WRITE)、格式化驱动器(FMTDRV)和测试驱动器是否就绪(TSTRDY)等。一条硬盘控制器命令的执行全过程可分为3个阶段:命令的发送、执行和结束。在命令的发送阶段,首先须写“选择控制器”寄存器,把硬盘控制器“启动”起来,然后再向控制器写入6字节的命令块;在命令的执行阶段,控制器根据接收到的命令内容执行各种操作;当命令执行完后,只有主机经DIOR把“完成状态”字节读走,命令执行的全过程才告结束,否则,硬盘控制器的工作状态将发生混乱。控制器提供的“完成状态”字节主要是向主机报告此次操作是否出现错误,若出现错误,主机还可读出错误的类型、出错的扇段地址等信息。
根据以上分析,软件设计如下:
(1)主监控程序
此部分程序主要实现硬盘控制器的初始化、参数设定等功能。其程序框图如图1 - 93所示。
(2)功能模块
对于硬盘上数据的读/写,控制器采用DMA数据传送方式。当数据读/写操作完成后,控制器还发出中断请求信号,报告命令执行完毕。因此,对于读盘和写盘操作,进入功能程序后,先设置DMA控制器的参数、工作状态,初始化中断服务程序;然后写入命令块和DMA、中断使能,进入读/写操作。写盘程序流程图如图1- 94所示。
读盘操作与写盘操作非常相似,只是数据传送方向相反。因此,程序结构基本一样,在此不再赘述。
测试硬盘工作是否就绪、格式化硬盘等操作不需要传送数据,这部分程序不需要DMA参与,但硬件中断还需要。其他和写盘操作也基本相同,不再说明。
本例研究的51单片机与IBM - PC硬盘驱动器的接口电路已应用于便携式智能数据分析、测试仪,性能稳定、可靠。由于数据存储到硬盘上的方式与IBM - PC机相同,因此,单片机系统可与IBM - PC机共享数据,为工程技术人员提供了极大的方便。