新闻中心

EEPW首页>EDA/PCB>设计应用> 采用FPGA和DSP直接控制硬盘实现存储控制的方法

采用FPGA和DSP直接控制硬盘实现存储控制的方法

作者: 时间:2010-01-11 来源:网络 收藏

传输40M数据结束后,主机将根据传输的扇区数填写FAT表,判断空间是否小于200M、已储存的文件数是否大于256,如果为真则再次存储数据时将使用下一个磁盘分区。
4 操作控制流程
我们一般习惯称接口为IDE接口[3],对硬盘的操作如读写扇区,发送命令等都是通过读写寄存器来完成的,每向硬盘发送一组命令后都要读取状态寄存器中的信息,通过状态寄存器的值来判断硬盘是否已经执行完所发送的命令。
4.1 硬盘启动操作
硬盘加电后应先将硬盘复位,硬盘复位方式有三种,本设计采用的是将SRST置1,当SRST被置1后硬盘立即复位,这时应至少等待2ms才读取Status register。如果Status register的值为80h,则表明硬盘已完成复位。硬盘启动流程见图2。

本文引用地址://m.amcfsurvey.com/article/191820.htm

图2 硬盘启动程序流程图

图3 扇区读写操作程序流程图
4.2 扇区读写操作
首先应向硬盘发送命令参数,将要读写的扇区数目写入Sector count register,将扇区的逻辑地址写入LBA High register、LBA Mid register和LBA Low register,将要接收命令的设备号写入Device register。流程见图3。
LBA=(柱面编号×磁头数+磁头编号)×扇区数+扇区编号-1
将命令READ SECTOR或WRITE SECTOR写入Command register后,在400ns内Status register的值并不可靠,所以需等待400ns才能读取Status register,这段等待时间可以通过读取Alternate Status register和Error register度过,读取的数值应被丢弃。当状态寄存器的值为58h时,表示硬盘已经可以从Data register接收或传输数据。



评论


相关推荐

技术专区

关闭