您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

基于单片机的MicroDrive接口设计

时间:2007-1-20栏目:电子通信论文

得到详尽的出错信息;而一旦无错误,便可对MicroDrive进行操作了。

(2)数据的读取

为了达到此目的,首先,将要操作的扇区地址写入偏移地址为003H~006H的逻辑块寻址寄存器中,再将要操作的扇区数目写入偏移地址为002H的扇区数目寄存器中,接着就发送读命令字(20H)到命令寄存器中,当写入命令后,MicroDrive会将BUSY状态置1作为响应。

然后,MicroDrive从存储扇区中读出数据放入其缓存单元中,并将DRQ状态位置1,清BUSY以表示数据已准备好。因此只需检查DRQ状态即可。当DRQ为1时,便可从MicroDrive的缓存中读出数据;当所有数据读完后,DRQ将会清0,MicroDrive又转回准备状态,可进行下一步操作。

(3)数据的写入

与读数据的操作类似,首先,将数据准备在数据缓存区(外部RAM62HC64)中,将要操作的扇区地址写入偏移地址为003H~006H的逻辑块寻址寄存器中,将要操作的扇区数目写入偏移地址为002H的扇区数目寄存器中,接着发送写命令字(30H)到命令寄存器中。

图2 单片机软件流程图

    然后,检测DRQ的状态(此时MicroDrive置BUSY状态为1,接着置DRQ为1,清BUSY)。当检测到DRQ为1时,便可将数据缓存区(外部RAM62HC64)中的数据写入MicroDrive的缓存单元。当MicroDrive检测到数据写入其缓存中,置BUSY为1,清DRQ并根据地址将数据写入;当数据写完后,清BUSY状态位,重新回到准备状态,准备执行下一次操作。

在读写操作中,对进程起控制作用的是DRQ这一状态位,其检测程序如下:

void wait_drqvoid

 unsigned int a

a=XBYTE0xE007

//读取状态寄存器的值

ifa&0x01==1 error

//若出错位为1转出错处理

whilea&0xf8=0x58

a=XBYTE0xE007

//查询DRQ位不为1则循环等待

(4)数据的擦除

为达到此目的,首先将要操作的扇区地址写入偏移地址为003H~006H的逻辑块寻址寄存器中,再将要操作的扇区数目写入偏移地址为002H的扇区数目寄存器中,接着发送擦除命令字(0C0H)到命令寄存器当中,执行完擦除命令后,读出的值全为0。

本文介绍的基于单片机的MicroDrive接口设计,成功地实现了操作MicroDrive的常用命令和对MicroDrive的8位格式的操作。经过测试,此接口也可以对CF Type I卡(如SanDisk公司的CompactFlash卡)进行正确操作,从而提高了应用系统的兼容性,具有较广泛的应用价值,目前已准备在便携式的动态脑电、动态心电上使用,同时可用于MicroDrive或CompactFlash卡作为存储器使用的便携式电子设备中。


上一页  [1] [2] [3] [4] 

下页更精彩:1 2 3 4 下一页

★相关文章: