3.AT89S52与CF卡的接口设计
CF卡有3种工作模式可供选择:I/0模式、存储器模式和IDE模式。CF卡的默认模式是存储器模式,使用也最为普遍。如果使用存储器模式则不需要配置任何寄存器。每一种模式的电路连接各不相同。在I/0模式和存储器模式下,可以采用8位的访问方式,也可以采用16位的访问方式。本文所采用的是8位的存储器模式,其接口电路原理图如图1所示。
AT89S52的P0口就为数据线连接CF的DO—D7,CF卡的A0-A10为地址线,P3.6、P3.7分别为读(RD)、写(WE)线。由于 AT89S52是8位的单片机,所以对CF卡的访问采用8位的方式较为方便。通过把-CE2设为‘1’即可通过访问CF卡的D0--D7来存取数据。而- CEl可以作为CF卡的片选信号,通过设-CEl为‘0’来选通CF卡,即-CEl接AT89S52的P2.6来线选CF卡。当REG为‘0’时,访问 CF卡的属性寄存器;REG为‘1’时,CF卡在存储器模式下对数据进行读写操作。RDY/BSY为CF卡状态引脚,当为“0”时,CF卡忙,为“1”时可以对CF卡操作。原理图如图所示:
限于篇幅只将写一个扇区代码编写(读扇区代码基本与此相同)如下:
- ;写一个扇区
- WRITE: MOV DPTR, #SECTR_CNT
- MOV A, #1
- MOVX @DPTR, A
- MOV DPTR, #SECTR_NO
- MOV A, SECTRNO
- MOVX @DPTR, A
- MOV DPTR, #CYLINDER_LOW
- MOV A, CYLINDERL
- MOVX @DPTR, A
- MOV DPTR, #CYLINDER_HI
- MOV A, CYLINDERH
- MOVX @DPTR, A
- MOV DPTR, #DRV_HEAD
- MOV A, DRVHEAD
- ANL A, #0FH
- ORL A, #0E0H
- MOVX @DPTR, A
- MOV DPTR, #COMMAND
- MOV A, 30H
- MOVX @DPTR, A
- WRITE512:MOV R6,#0
- MOV R7,#2
- WRITE: MOV DPTR,#DATA_REG
- MOV A,#31H
- MOVX @DPTR,A
- DJNZ R6,WRITE
- DJNZ R7,WRITE
- RET
4.结束语
本设计的接口电路,阐述了CF卡的读写方法,并采用了通用的MCS-51系列单片机为系统控制器,可移植性好。根据此电路可应用于其他单片机对CF卡进行读写,采用CF卡作为存储介质,容量大,体积小,价格低廉,可应用于MP3播放器,数码相机,移动存储等各个领域,本试验在线路板上调试通过,并配合计算机串口对CF卡进行读写操作,并可对CF卡进行数据恢复。