基于8位微控制器控制硬盘进行HDTV码流读写
[09-12 17:48:36] 来源:http://www.88dzw.com 单片机学习 阅读:8928次
文章摘要:·数据寄存器(170R/W):这是一个16位PIO数据寄存器,用于对扇区的读、写和格式化操作。MCU通过该寄存器向硬盘控制寄存器写入或从硬盘控制器读出扇区缓冲区的数据。·错误寄存器(171R):该寄存器是一个8位的寄存器,它反映控制寄存器在诊断方式或操作方式下的错误原因。·扇区数寄存器(172R/W):它记录读、写命令的扇区数。当多扇区传输时,每完成一个扇区操作,该寄存器自动减1,直至为0。如果初值为0,则表示256;如果有错误生,该寄存器包含已经操作成功的扇区数。·扇区号寄存器(173R/W):它记录读、写和校验命令指令起始扇区号。本文用LBA模式。该寄存器记录逻辑扇区的0字节。·柱面号寄存
基于8位微控制器控制硬盘进行HDTV码流读写,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com·数据寄存器(170R/W):这是一个16位PIO数据寄存器,用于对扇区的读、写和格式化操作。MCU通过该寄存器向硬盘控制寄存器写入或从硬盘控制器读出扇区缓冲区的数据。
·错误寄存器(171R):该寄存器是一个8位的寄存器,它反映控制寄存器在诊断方式或操作方式下的错误原因。
·扇区数寄存器(172R/W):它记录读、写命令的扇区数。当多扇区传输时,每完成一个扇区操作,该寄存器自动减1,直至为0。如果初值为0,则表示256;如果有错误生,该寄存器包含已经操作成功的扇区数。
·扇区号寄存器(173R/W):它记录读、写和校验命令指令起始扇区号。本文用LBA模式。该寄存器记录逻辑扇区的0字节。
·柱面号寄存器(174 175 R/W):它记录读、写、校验、寻址和格式化命令指定的柱面号,在LBA寻址方式下,这2个寄存器包含起始扇区的1和2字节。
·驱动器/磁头寄存器(176R/W):它记录读、写、校验、寻道和格式化命令指定的驱动器号、磁头号和寻址方式。在ATA/ATAPI-4中其定义如表2所示。
表2 驱动器/磁头寄存器在ATA/ATAPI-4中的定义
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
1 | L | 1 | DEV | HS3 | HS2 | HS1 | HS0 |
HS0~HS3(磁头选择):在LBA方式中,是逻辑扇区的高4位。
DEV驱动器选择:0选择主驱动器,1选择从驱动器。
L(LBA方式):L=1,置驱动器为LBA模式;L=0,置驱动器为CHS模式。
·状态寄存器(177 R);反映了硬盘执行命令后的状态。读该寄存器清除中断请求信号,为避免清除中断,可以读辅助状态寄存器376h。这两个寄存器的内容完全一样。在ATA/ATAPI-4中其定义如表3所示。
BSY:驱动器忙。
DRDY:驱动器准备好。
DRQ:请求服务,驱动器请求通过寄存器与处理器交换一个字节数据。
ERR:命令执行错误。
3.2 硬盘PIO方式下特定区域多扇区读的操作
如果想从硬盘的特定扇区读出码流信息,首先主机(C8051F015)要对驱动器/磁头寄存器、柱面号寄存器、扇区号寄存器、扇区数寄存器设置参数。完毕后要等待至少400ns才能去读状态寄存器的参数判断以上设置是否有效。硬盘接收命令后置BSY=1,并开始执行命令。硬盘如果准备好传送数据包,就置DRQ=1,同时清零BSY。当机循环读状态寄存器或辅助状态寄存器判断BSY=0&DRQ=1,一旦硬盘状态符合要求,主机写参数0x80(128扇区)到数据寄存器(0x170),并写0x20(PIO读)到命令寄存器(0x177),表示要求读出硬盘相应地址里的数据块。硬盘判断数据寄存器被置数后立即置BSY=1&DRQ=0。主机读到置位信息后给硬盘读时钟,硬盘输出数据直到数据包传完为止。
表3 状态寄存器在ATA/ATAPI-4中的定义
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
BSY | DRDY | # | # | DRQ | obsolete | obsolete | ERR |
《基于8位微控制器控制硬盘进行HDTV码流读写》相关文章
- › 基于8位微控制器控制硬盘进行HDTV码流读写
- 在百度中搜索相关文章:基于8位微控制器控制硬盘进行HDTV码流读写
- 在谷歌中搜索相关文章:基于8位微控制器控制硬盘进行HDTV码流读写
- 在soso中搜索相关文章:基于8位微控制器控制硬盘进行HDTV码流读写
- 在搜狗中搜索相关文章:基于8位微控制器控制硬盘进行HDTV码流读写