VxWorks培训-ATA设备驱动 技术研究院-匡尧文

Slides:



Advertisements
Similar presentations
因数与倍数 2 、 5 的倍数的特征
Advertisements

《微型计算机技术 及应用》 ( 第 4 版) —— 戴梅萼 史嘉权. 目标 深刻理解 牢固掌握 灵活应用.
Strata PC HTE硬件技术工程师 第一章 桌面计算机系统组件.
实验四 利用中规模芯片设计时序电路(二).
SRTP通讯协议的基础知识.
5.4 顺序脉冲发生器、 三态逻辑和微机总线接口 顺序脉冲发生器 顺序脉冲 计数型 分类 移位型.
第一次工业革命.
在PHP和MYSQL中实现完美的中文显示
计算机基础知识 丁家营镇九年制学校 徐中先.
第5节 磁盘 磁盘的结构 磁盘的地址 磁盘访问的优化 磁盘使用过程 举例.
三、计算机存储设备介绍及选购 By:查宇
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
计算机组成与系统结构 陈泽宇 副教授.
第三章 微机基本系统的设计 第一章 8086程序设计 第二章 MCS-51程序设计 第四章 存贮器与接口 第五章 并行接口
联想移动硬盘_经典型 培训资料.
存储系统.
把COM口设置到没有使用的 COM1 – COM4
ARDUINO+BLUETOOTH Arduino实现蓝牙数据传输.
走进编程 程序的顺序结构(二).
网络常用常用命令 课件制作人:谢希仁.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
文件读写实践 广州创龙电子科技有限公司 01 广州创龙电子科技有限公司
第十章 IDL访问数据库 10.1 数据库与数据库访问 1、数据库 数据库中数据的组织由低到高分为四级:字段、记录、表、数据库四种。
AM5728 视频输入端口VIP软件框架 广州创龙电子科技有限公司
逆向工程-汇编语言
DMA与DMA控制器 DMA(Direct Memory Access)的概念 DMA方式不用处理器干预完成M与I/O间数据传送。
数据挖掘工具性能比较.
PaPaPa项目架构 By:Listen 我在这.
CPU结构和功能.
应用实例 识别Ps & Pt ADTS 压力通道并校验 CPD8000 New MENSOR‘s ADTS: CPA8001.
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
移相正弦信号发生器设计 采用直接数字综合器DDS发生器的设计 原理:图1是此电路模型图
C语言程序设计 主讲教师:陆幼利.
得技通电子 问题 1.0 、选择题:本大题共15个小题,每小题1分,共15分,在每小题给出的四个选项中,只有一项符合题目要求,把所选项前的字母填在括号内。
微机系统的组成.
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
本节内容 随机读取 视频提供:昆山爱达人信息技术有限公司.
第四章 团队音乐会序幕: 团队协作平台的快速创建
姚金宇 MIT SCHEME 使用说明 姚金宇
(Random Access Memory)
实验七 安全FTP服务器实验 2019/4/28.
第三章 MCS 51的硬件结构.
第二章 补充知识 2.1 总线和三态门 一、总线(BUS) 三总线结构 数据总线DB(Data Bus)
作業系統 第十四章 輸出輸入系統.
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
iSIGHT 基本培训 使用 Excel的栅栏问题
实验二 带进位控制8位算术逻辑运算实验 带进位控制8位算术逻辑运算: ① 带进位运算 ② 保存运算后产生进位
本节内容 结构体 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
LOGIX500软件入门 西安华光信息技术有限公司 2008年7月11日.
HSC高速输出例程 HORNER APG.
苏教版小学信息技术3年级第2课 认识计算机.
6.1 定时器/计数器的结构及工作原理 定时器/计数器的结构 定时器/计数器T0、T1的逻辑结构如图6-1所示。
本节内容 通用寄存器 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
24 or 1024? PWN Jawbone Up24 手环.
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
上节复习(11.7) 1、定时/计数器的基本原理? 2、定时/计数器的结构组成? 3、定时/计数器的控制关系?
实验六静态路由.
反应显微谱仪的飞行时间测量 暨数据获取系统的研究
第4章 硬 盘 使 用 基 础 硬盘结构和硬盘参数 新硬盘的使用方法,重新规划硬盘的步骤 硬盘容量与BIOS、操作系统的关系,
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
工业机器人入门使用教程 ESTUN机器人 主讲人:李老师
培训课件 AB 变频器的接线、操作及参数的备份 设备动力科.
DSP技术与应用 电子与信息技术系.
四路视频编码器 快速安装手册 1、接口说明 2、安装连接 3、软件下载 4、注意事项 编码器软件下载地址
Presentation transcript:

VxWorks培训-ATA设备驱动 技术研究院-匡尧文 2019/4/20 VxWorks培训-ATA设备驱动 技术研究院-匡尧文 2019/4/20

内容介绍 1、 ATA/ATAPI基础知识 2、 APAPI引脚定义 3、 ATAPI寄存器 4、 ATA命令 5、ATA寻址方式 2019/4/20

1、ATA/ATAPI基础知识 (1)ATA(ATA-1) ATA是最早的IDE标准的正式名称,IDE实际上是指连在硬盘接口的硬盘本身。ATA在主板上有一个插口,支持一个主设备和一个从设备,每个设备的最大容量为504MB,ATA最早支持的PIO-0模式(Programmed I/O-0)只有3.3MB/s,而ATA-1一共规定了3种PIO模式和4种DMA模式(没有得到实际应用),要升级为ATA-2,需要安装一个EIDE适配卡。 2019/4/20

(2)ATA-2 ATA-2(EIDE Enhanced IDE/Fast ATA):这是对ATA-1的扩展,它增加了2种PIO和2种DMA模式,把最高传输率提高到了16.7MB/s,同时引进了LBA地址转换方式,突破了老BIOS固有504MB的限制,支持最高可达8.1GB的硬盘。如你的电脑支持ATA-2,则可以在CMOS设置中找到(LBA,LogicalBlock Address)或(CHS,Cylinder,Head,Sector)的设置。其两个插口分别可以连接一个主设备和一个从设置,从而可以支持四个设备,两个插口也分为主插口和从插口。通常可将最快的硬盘和CD—ROM放置在主插口上,而将次要一些的设备放在从插口上,这种放置方式对于486及早期的Pentium电脑是必要的,这样可以使主插口连在快速的PCI总线上,而从插口连在较慢的ISA总线上。 2019/4/20

(3)ATAPI ATAPI是广为使用的IDE和EIDE设备的相关标准,是计算机内并行ATA接口的扩展。ATAPI标准就是为了解决在IDE/EIDE接口上连接多种设备而制定的。ATAPI是AT Attachment Packet Interface的缩写,意思是AT计算机上附加设备的包接口。支持ATAPI的IDE/EIDE接口可以像连接硬盘一样连接ATAPI设备。目前几乎所有的IDE/EIDE接口都支持ATAPI。 ATAPI是一个软件接口,它将SCSI/ASPI命令调整到ATA接口上,这使得光驱制造商能比较容易的将其高端的CD/DVD驱动器产品调整到ATA接口上。 2019/4/20 5

2、APA引脚定义 (1)DD(15:0)Device Data DD占用3-18引脚,是一个8位或16位的双向数据线,在用于读写CDROM的寄存器时只使用低8位,而在传送信息包或数据时使用全部16位。 (2)CS(1:0)Chip Select CS0,CS1是用于选择指令寄存器芯片的,为低电平有效,它和DA组合就可以选择所要操作的寄存器。 2019/4/20 6

(3) DA(2:0)Device Address DA为三位的地址线,和CS组合选取要操作的寄存器。 (4)DIOR(Device I/O read) DIOR为控制寄存器或数据口读的引脚,低电平有效。 2019/4/20 7

(5) DIOW(Device I/O write) DIOW为控制寄存器或数据口写的引脚,低电平有效。 (6) RESET 当此引脚为低电平时CDROM会被复位。 2019/4/20 8

(7) INTRQ (Device interrupt) INTRQ为中断请求,当CDROM在读写数据等状态下会在此引脚输出信号以使控制器中断程序得以执行。 (8) IORDY (I/O channel ready) 这个引脚可判断CDROM的数据口是否就绪,等待数据的输入或输出。同样实例中没有使用到些引脚。 2019/4/20 9

3、ATA寄存器 计算机主机对IDE接口硬盘的控制是通过硬盘控制器上的二组寄存器实现。一组为命令寄存器组(Task File Registers),I/O的端口地址为1F0H~1F7H,其作用是传送命令与命令参数,另一组为控制/诊断寄存器(Control/Diagnostic Registers),I/O的端口地址为3F6H~3F7H,其作用是控制硬盘驱动器。 2019/4/20 10

表1、命令寄存器组 2019/4/20 11

表2、控制/诊断寄存器组 2019/4/20 12

以上表格指明了各ATAPI常用寄存器的地址和功能,地址是用CS和DA组成,CS为寄存器区段的选择,再加上三位地址的DA就可以组合出多个地址编码选择不同的寄存器。 (1)数据寄存器 是主机和硬盘控制器的缓冲区之间进行8位或16位数据交换用的寄存器,使用该寄存器进行数据传输的方式称程序输入输出方式,即PIO方式,数据交换的另一种方式是通过DMA通道,这种方式不使用数据寄存器进行数据交换; 2019/4/20 13

该寄存器包含了上次命令执行后硬盘的诊断信息。每位意义见表3,在启动系统、硬盘复位或执行硬盘的诊断程序后,也在该寄存器中保存着一个诊断码。 (2)错误寄存器 该寄存器包含了上次命令执行后硬盘的诊断信息。每位意义见表3,在启动系统、硬盘复位或执行硬盘的诊断程序后,也在该寄存器中保存着一个诊断码。 2019/4/20 14

表3、错误寄存器 2019/4/20 15

扇区计数寄存器:指明所要读/写的扇区总数,其中0表示传输256个扇区,如果在数据读写过程发生错误,寄存器将保存尚未读写的扇区数目。 (3)介质地址寄存器 扇区数寄存器、磁道数寄存器、驱动器/磁头寄存器三者合称为介质地址寄存器,介质地址可以用CHS方式或LBA方式,在驱动器/磁头寄存器中指定用何种方式。 扇区计数寄存器:指明所要读/写的扇区总数,其中0表示传输256个扇区,如果在数据读写过程发生错误,寄存器将保存尚未读写的扇区数目。 磁道数寄存器:指明所要读/写的磁道数。 驱动器/磁头寄存器:指定硬盘驱动器号与磁头号和寻址方式,如表4所示。 2019/4/20 16

表4、IDE驱动器/磁头寄存器 2019/4/20 17

保存硬盘控制器命令执行后的状态和结果,如表5所示。 (4)状态寄存器 保存硬盘控制器命令执行后的状态和结果,如表5所示。 2019/4/20 18

表5、IDE状态寄存器 2019/4/20 19

(5) 命令(Command)寄存器 命令寄存器包含执行的命令代码。当向命令寄存器写命令时,相关该命令的参数必须先写入。在写命令时,状态寄存器的BSY位置1。如果命令是非法,则中止执行。 (6)设备控制寄存器 将该寄存器的SRST位设置为1,可以使硬盘驱动器处于复位状态。IEN表示是否允许中断,其中0为允许。由此可见,对该寄存器发送0X0CH命令即令硬盘复位,其格式如表6所示。 2019/4/20 20

表6、IDE设备控制寄存器 2019/4/20 21

4、ATA命令 在ATA标准中,IDE命令一共有30多个,其中有10个是通用型(也称强制型)命令。 20H 读扇区命令(带重试):从硬盘读取指定磁道、磁头上的1~256个扇区到主机。送到主机的数据可以添加4个字节的ECC校验码,读的起始扇区号和扇区个数在命令块指定。这条命令也隐藏着寻找指定的磁道号,所以不需要另外的寻道命令。 30H 写扇区命令(带重试):本命令是将主机内的数据写入硬盘,可以写指定磁道、磁头上的1~256个扇区,与读扇区命令相似,这条命令也隐藏着寻找指定的磁道号,写的起始扇区号和扇区个数由命令块指定。 90H 硬盘诊断命令:以判断硬盘是否已经连接到主机上,可以读取错误寄存器以检查需要的结果,如果是01H或81H表示设备是好的,否则表示设备没有连接或设备是坏的。 08H ATAPI设备软复位命令:当向命令寄存器写入08H时,驱动器会执行软件复位命令,执行效果和硬件复位差不多。 2019/4/20 22

5、ATA寻址方式 (1) 硬盘驱动器的介质是通过磁头、磁道(柱面)、扇区组织起来的。在ATA标准中,磁道数可以达到65 636,一个扇区在正常情况下有512字节,可以用两种方法来寻址,即物理寻址方式(CHS)和逻辑寻找方式(LBA)。 (2) IDE驱动器为逻辑寻址方式使用了线性映射的方式,即扇区从0柱面0头1扇区开始,在0磁头后是同柱面的1磁头,在整个柱面后是下一个柱面的0磁头,在ATA标准中,从物理结构CSH到逻辑块编号的影射如下: LBA=(柱面号*磁头数+磁头号)*扇区数+扇区编号-1 (3)在UNIX、WINDOWS NT等操作系统中,硬盘的寻址方式是在内存中建了一个介质地址包,地址包里保存的是64位LBA地址,如果硬盘支持LBA寻址,就把低28位直接传递给ATA界面,如果不支持,操作系统就先把LBA地址转换为CHS地址,再传递给ATA界面。 2019/4/20 23

6、ATA驱动器读写过程 用PIO方式使主机读写指定的起始磁道、头、扇区号,共读取N个扇区,其过程颇为复杂。过 程包括发送指令、判断盘的状态、处理错误信息等。硬盘有自己的缓冲区,所以每次可以读取1个 磁道上的所有扇区(1个磁道一般有63个扇区)保存在缓冲区,通过盘的数据寄存器(1F0H)与主机传输 数据。 2019/4/20 24

PIO方式读命令的执行过程如下: (1) 根据要读的扇区位置,向控制寄存器1F2H~1F6H发命令参数,等驱动器的状态寄存器1F7H的DRDY置位后进入下一步; (2) 主机向驱动器命令控制器1F7H发送读命令20H; (3) 驱动器设置状态寄存器1F7H中的BSY位,并把数据发送到硬盘缓冲区; (4) 驱动器读取一个扇区后,自动设置状态寄存器1F7H的DRQ数据请求位,并清除BSY位忙信号。DRQ位通知主机现在可以从缓冲区中读取512字节或更多(如果用READ LONG COMMAND命令)的数据,同时向主机发INTRQ中断请求信号; (5) 主机响应中断请求,开始读取状态寄存器1F7H,以判断读命令执行的情况,同时驱动器清除INTRQ中断请求信号; (6) 根据状态寄存器,如果读取的数据命令执行正常,进入7),如果有错误,进入错误处理,如果是ECC错误,再读取一次,否则退出程序运行; (7) 主机通过数据寄存器1F0H读取硬盘缓冲区中的数据到主机缓冲区中,当一个扇区数据被读完,扇区计数器-1,如果扇区计数器不为0,进入3),否则进入8); (8) 当所有的请求扇区的数据被读取后,命令执行结束。 2019/4/20 25

PIO方式写命令的执行过程如下: (1) 根据要写的扇区位置,向驱动器控制寄存器1F2H~1F6H发出命令参数,等驱动器DRDY置位后进入下一步; (2) 主机向驱动器命令控制器1F7H发送写命令30H; (3) 驱动器在状态寄存器1F7H中设置DRQ数据请求信号; (4) 主机通过数据寄存器1F0H把指定内存(BUF)中的数据传输到缓冲区; (5) 当缓冲区满,或主机送完512个字节的数据后,驱动器设置状态寄存器1F7H中的BSY位,并清除DRQ数据请求信号; (6) 缓冲区中的数据开始被写入驱动器的指定的扇区中,一旦处理完一个扇区,驱动器马上清除BSY信号,同时设置INTRQ; (7) 主机读取驱动器的状态1F7H和错误寄存器1F1H,以判断写命令执行的情况,如果有无法克服的错误(如坏盘),退出本程序,否则,进入下一步; (8) 如果还有扇区进行写操作,进入3)否则,进入下一步; (9) 当所有的请求扇区的数据被写后,命令执行结束。 2019/4/20 26