基于单片机的IDE硬盘接口设计方案分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机的IDE硬盘接口设计方案分析摘要:本文提出了一种用单片机扩展8255来控制ide硬盘的方法,并给出了完整的硬件和软件设计方案,详细讨论并解决了控制过程中所遇到的问题,较好的实现了对硬盘的存取操作。
关键词:单片机;ide;硬盘接口
【中图分类号】 tp368.1 【文献标识码】 b【文章编号】1671-1297(2012)09-0326-01
一方案比较
由于本系统是与硬盘存储相连,所以单片机的选择也很重要,考虑到硬盘是以扇区来存储数据的,并要保留设置参数,不易掉电,因此有三种方案:
方案一:采用比较熟悉的80c51单片机,须外扩掉电不丢失的eeprom存储器。
方案二:采用内部带有eeprom、片内ram 256b的单片机,如winbond公司的w78e52单片机。
方案三:采用atmel公司生产的内部带有片内ram512b的单片机,在实现扇区读写时,可以不用外扩数据存储器。
方案比较:方案一对于初学者来讲,80c51单片机再熟悉不过了,当为首选,但外扩存储器会增加硬件电路的复杂性,并占用单片机的i/o口。
方案三,虽说在扇区一次读取时,不用外扩数据存储器,但考虑到对初学单片机的来说,需要先熟悉其精简指令,在实现其功能时,需要一段时间。
对于方案二,虽说w78e52片内只有256b,
但考虑到本系统是把数据进行即时读写处理,所以不需要在掉电的时候保存读取的数据,因此从整个系统的开发时间和成本来说,方案三不适合。
为了比较在附录中我给出了at90s8515p控制硬盘接口的电原理图,以做参考。
本系统选用winbond公司的w78e52。
它是整个系统的控制核心,完成对ide硬盘,8255的初始化,接收单片机处理的数据并存储在硬盘上。
w78e52是一款完全与8051兼容的8位单片机,片内rom 8k,片内ram 256b,适合硬盘数据的快速传输,它增加了watchdog timer 和内部电源管理等功能,并且是目前少数可运行在最高40mhz晶振的单片机之一。
本系统中的单片机w78e52运行在40mhz晶振下,以提高运行速度。
所以方案二较好。
二各单元电路方案
本系统要控制ide驱动器,ide驱动器有40个引脚,而单片机i/o口有限,而且,单片机还要用于其它功能的实现和控制。
方案比较:
直接用i/o口通过74ls373锁存,74ls244驱动来控制ide驱动器接口。
要用到两个i/o口。
通过扩展i/o口芯片来扩展有限的i/o口,可以减少单片机资源的利用。
如:8255可编程i/o接口芯片。
因此从资源利用来说,方案二较好。
所以需要外扩i/o口。
i/o口扩展方式主要有两种:总线扩展法和串行口扩展法。
在这里,用总线扩展法。
总线扩展法又分为简单i/o接口扩展和可编程
i/o接口扩展。
本系统采用8255芯片来实现i/o口的扩展。
8255a可编程i/o接口扩展
本系统采用可编程8255a并行i/o扩展口。
8255a是intel公司生产的可编程输入输出接口芯片,它具有3个8位的并行i/o口,具有三种工作方式,可通过程序改变其功能,因而使用灵活,通用性强,可作为单片机与多种外围设备连接时的中间接口电路。
内部结构:8255内部包括三个并行数据输入/输出端口,两个工作方式控制电路,一个读/写控制逻辑电路和8位总线缓冲器。
各部分功能概括如下:
工作方式控制电路:工作方式控制电路有两个,一个是a组控制电路,另一个是b组控制电路。
这两组控制电路具有一个控制命令寄存器,用来接受中央处理器发来的控制字,以决定两组端口的工作方式,也可根据控制字的要求对c口按位清“0”或者按位置“1”。
a组控制电路用来控制a口和c口的上半部分(pc7-pc4)。
b组控制电路用来控制b口和c口的下半部分(pc3-pc0)。
总线数据缓冲器:总线数据缓冲器是一个三态双向8位缓冲器,作为8255与系统总线之间的接口,用来传送数据、指令、控制命令以及外部状态信息。
读/写控制逻辑电路:
读/写控制逻辑电路接受cpu发来的控制信号rd、wr、reset、地址信号a1-a0等,然后根据控制信号的要求,将端口数据读出,
发往cpu,或者将cpu送来的数据写入端口。
工作方式0:
工作方式0是一种基本的输入/输出工作方式,在这种方式下,三个端口都可以由程序设置为输入或输出,没有固定的用于应答的联络信号。
其基本的功能可概括如下:
可具有两个8位端口(a、b)和两个4位端口(c口的上半部分和下半部分)。
任何一个端口都可以设定为输入或者输出,各端口的输入、输出可构成16种组合。
数据输出时可以锁存,输出时不锁存。
按照方式0工作时,cpu 可以通过简单的传送指令对人以一个端口进行读/写,这样各端口就可以作为查询式输入/输出接口。
按照查询方式工作时,a口、b 口可作为两个数据输入/输出端口,c口的某些位可作为这两个端口的控制/状态信号端。
工作方式1是一种选通式输入/输出工作方式。
在这种工作方式下,选通信号与输入/输出数据一起传送,由选通信号对数据进行选通。
其基本功能可概括如下:
3个端口分为两组,即a组和b组。
每一组包括一个8位数据端口和一个4位的控制/状态端口。
每一个8位数据端口均可设置为输入或者输出,输入输出均可锁存。
4位端口作为8位数据端口的控制/状态信号端口。
本系统能够用到的工作方式0、1,所以就不用介绍工作方式2。
8255a在投入工作前必须设定工作方式,工作方式有初始化程序对8255a的控制寄存器写入控制字来决定。
控制字共有两种。
8255的连接是同过w78e52的po口进行i/o扩展,用74ls573锁存器来确定8255的3个i/o口的地址,本系统中8255的a口起始地址是ff7ch ,b口的起始地址是ff7dh,c口的起始地址是
ff7eh,控制口的起始地址是ff7fh。
在进行数据读写时首先确定8255的工作方式,用哪个口进行数据传输,本系统才用工作方式0、1进行数据读取,用movx dptr,#x和mov @dptr,a来进行数据操作和对硬盘的智能控制。
基于单片机的ide硬盘接口系统,除了单片机和硬件的连接外,还需要了解硬盘的结构,文件的存储格式,ide驱动器的端口定义和编程的种种细节问题,所以下面通过3、4、5 章来介绍硬盘的工作原理,fat文件系统,ide硬盘驱动器的原理。
参考文献
[1] 李华.《mcs-51系列单片机实用接口技术》.北京.北京航空航天大学出版社,1993 p71-79
[2] 陈利学,孙彪,赵玉连.《微机总线与接口设计》.成都.电子科技大学出版社,1988 p45-90
[3] 徐厚俊.《ide接口和ide硬盘驱动器》.新浪潮,1996.p17
[4] 吴宁,陈文革,张建.《微型计算机硬件技术基础》.高等教育出版社,2003.p280-283
作者简介:王莹,女,1983年出生,专业为电子信息工程,研究方向为电子电气控制。