新闻中心

EEPW首页>嵌入式系统>设计应用> 基于单片机的IDE硬盘控制的研究与设计

基于单片机的IDE硬盘控制的研究与设计

作者: 时间:2012-03-29 来源:网络 收藏

3.2 写扇区操作

如图4所示,处理器在接收到写扇区的命令后,读的状态,查询是否准备好(DRDY=1?);若准备好则把逻辑块地址写入到相应寄存器,告之所需要操作的扇区;将写扇区命令代码写入命令寄存器,同时驱动器设置状态寄存器的DRQ位,表示准备好接收数据,处理器通过数据寄存器将数据写入扇区缓冲区,当扇区缓冲区添满后,驱动器清除DRQ位,并置位BSY。驱动器将扇区缓冲区中的数据写入,当写盘结束,清除BSY位,发中断请求信号 INTRQ,CPU接收到中断信号后,读驱动器状态寄存器,同时将中断信号INTRQ清除。而后处理器读取状态寄存器,若DRQ=1,则将扇区缓冲区中的数据读走,完毕后,驱动器置BSY,准备读下一个扇区,直到请求的扇区全部读完。

在写的过程中查询状态寄存器的ERR位,若有错误产生,则跳入错误处理子程序。

55.jpg

3.3逻辑块寻址操作

可以用两种方法来寻址即物理寻址方式(CHS)和逻辑寻找方式(LBA)。由于LAB是将物理参数转换成线性地址,对用户来说驱动器是有由连续数据块(扇区)组成的存储介质,不需要知道驱动器的磁头、磁道等参数。因此,本系统采用LBA,其与CHS影射关系为:

LBA=(柱面号*磁头数+磁头号)*扇区数+扇区编号1

在该操作中,处理器根据上述映射关系通过写4个字节LBA地址分别向磁头号寄存器、柱面号高字节寄存器、柱面号低字节寄存器以及起始扇区号寄存器写入数据,以得出需要操作的扇区。

3.4 ide_rd线程和ide_wr线程

处理器通过ide_rd线程和ide_wr线程,设置8255工作模式,对的寄存器进行读写操作,IDE读写周期。



评论


相关推荐

技术专区

关闭