IDE接口协议

合集下载

IDE接口及针脚定义

IDE接口及针脚定义

IDE接口及针脚定义November 12th, 2009 § 0目前硬盘接口常见的就三种:IDE、SATA、SCSI。

IDE是比较老的接口了,现在基本上使用SATA接口,现在很多新主板上都找不到IDE接口了,市面上的硬盘也清一色的SATA接口的。

当然,我们说的是民用市场,像超市收款机等专门的设备上很多还是用的IDE的。

SCSI是面向服务器的,产品是价高稳定。

IDE:Integrated Drive Electronics,也就是我们平时说的串行接口(注意不是串口)。

由 Compaq 和 Western Digital 公司开发,新版的 IDE 命名为 ATA 即 AT bus Attachment,IDE 接口在设备和主板侧的外观为 40 脚插针。

IDE数据线:IDE数据线是扁平的40针或者80针的,可以连接两个IDE设备。

IDE数据线的接口是公头,主板上的IDE接口是母头(这个公母应该还是很好区分)。

IDE数据线第一根针是连接红线或者黑线,就是一排线中最边上颜色不一样的那一根。

IDE针脚定义:Pin 1 Reset 复位硬盘(就是硬盘重启)Pin 2 Ground 接地Pin 3-18 D ata 这几个接口传输数据信号Pin 19 Ground 接地Pin 20 空空,什么也不接Pin 21 DMARQ DMA Request-DMA请求信号Pin 22 Ground 接地Pin 23 I/O write 写选通信号Pin 24 Ground 接地Pin 25 I/O read 读选通信号Pin 26 Ground 接地Pin 27 IOCHRDY I/O Channel Ready-设备就绪信号Pin 28 Cable select 主从设备选择Pin 29 DMAACK DMA Acknowledge-DMA响应信号Pin 30 Ground 接地Pin 31 IRQ Interrupt request-中断请求信号Pin 32 IOCS16 为IO片选16Pin 33 Addr 1 地址1Pin 34 GPIO_DMA66_Detect P assed diagnostics 通过诊断Pin 35 Addr 0 地址0Pin 36 Addr 2 地址2Pin 37 Chip select 1P 命令寄存器组选择信号Pin 38 Chip select 3P 控制寄存器组选择信号Pin 39 Activity 一般是作为检测硬盘是否在运行指令的信号针脚。

最全的工业控制常用接口协议大全!

最全的工业控制常用接口协议大全!

I/O接口概念I/O接口是一电子电路(以IC芯片或接口板形式出现),其内有若干专用寄存器和相应的控制逻辑电路构成。

它是CPU和I/O设备之间交换信息的媒介和桥梁。

CPU与外部设备、存储器的连接和数据交换都需要通过接口设备来实现,前者被称为I/O接口,而后者则被称为存储器接口。

存储器通常在CPU的同步控制下工作,接口电路比较简单;而I/O设备品种繁多,其相应的接口电路也各不相同,因此,习惯上说到接口只是指I/O接口。

I/O接口基本功能(1)进行端口地址译码设备选择。

(2)向CPU提供I/O设备的状态信息和进行命令译码。

(3)进行定时和相应时序控制。

(4)对传送数据提供缓冲,以消除计算机与外设在“定时”或数据处理速度上的差异。

(5)提供计算机与外设间有关信息格式的相容性变换。

(6)还可以中断方式实现CPU与外设之间信息的交换。

控制方式(1)程序查询方式这种方式下,CPU通过I/O指令询问指定外设当前的状态,如果外设准备就绪,则进行数据的输入或输出,否则CPU等待,循环查询。

这种方式的优点是结构简单,只需要少量的硬件电路即可,缺点是由于CPU的速度远远高于外设,因此通常处于等待状态,工作效率很低。

(2)中断处理方式在这种方式下,CPU不再被动等待,而是可以执行其他程序,一旦外设为数据交换准备就绪,可以向CPU提出服务请求,CPU如果响应该请求,便暂时停止当前程序的执行,转去执行与该请求对应的服务程序,完成后,再继续执行原来被中断的程序。

中断处理方式的优点是显而易见的,它不但为CPU省去了查询外设状态和等待外设就绪所花费的时间,提高了CPU的工作效率,还满足了外设的实时要求。

但需要为每个I/O设备分配一个中断请求号和相应的中断服务程序,此外还需要一个中断控制器(I/O接口芯片)管理I/O设备提出的中断请求,例如设置中断屏蔽、中断请求优先级等。

此外,中断处理方式的缺点是每传送一个字符都要进行中断,启动中断控制器,还要保留和恢复现场以便能继续原程序的执行,花费的工作量很大,这样如果需要大量数据交换,系统的性能会很低。

几种存储接口协议全面比较

几种存储接口协议全面比较

作者: 黑子, 出处:IT168,责任编辑: leey,2006-09-20 16:17硬盘接口是硬盘与主机系统间的连接部件,作用是在硬盘缓存和主机内存之间传输数据。

不同的硬盘接口决定着硬盘与控制器之间的连接速度,在整个系统中,硬盘接口的性能高低对磁盘阵列整体性能有直接的影响……硬盘接口是硬盘与主机系统间的连接部件,作用是在硬盘缓存和主机内存之间传输数据。

不同的硬盘接口决定着硬盘与控制器之间的连接速度,在整个系统中,硬盘接口的性能高低对磁盘阵列整体性能有直接的影响,因此了解一款磁盘阵列的硬盘接口往往是衡量这款产品的关键指标之一。

存储系统中目前普遍应用的硬盘接口主要包括SATA、SCSI、SAS和FC等,此外ATA硬盘在SATA硬盘出现前也在一些低端存储系统里被广泛使用。

每种接口协议拥有不同的技术规范,具备不同的传输速度,其存取效能的差异较大,所面对的实际应用和目标市场也各不相同。

同时,各接口协议所处于的技术生命阶段也各不相同,有些已经没落并面临淘汰,有些则前景光明,但发展尚未成熟。

那么经常困扰客户的则是如何选择合适类型阵列,既可以满足应用的性能要求,又可以降低整体投资成本。

现在,我们将带您了解目前常见的硬盘接口技术的差异与特点,从而帮助您选择适合自身需求的最佳方案。

ATA,在并行中没落ATA (AT Attachment)接口标准是IDE(Integrated Drive Electronics)硬盘的特定接口标准。

自问世以来,一直以其价廉、稳定性好、标准化程度高等特点,深得广大中低端用户的青睐,甚至在某些高端应用领域,如服务器应用中也有一定的市场。

ATA规格包括了 ATA/ATAPI-6 其中Ultra ATA 100兼容以前的ATA版本,在40-pin的连接器中使用标准的16位并行数据总线和16个控制信号。

最早的接口协议都是并行ATA(Paralle ATA)接口协议。

PATA接口一般使用16-bit数据总线, 每次总线处理时传送2个字节。

IDE

IDE

IDE通道IDE的英文全称为“Integrated Drive Electronics”,即“电子集成驱动器”,它的本意是指把“硬盘控制器”与“盘体”集成在一起的硬盘驱动器。

把盘体与控制器集成在一起的做法减少了硬盘接口的电缆数目与长度,数据传输的可靠性得到了增强,硬盘制造起来变得更容易,因为硬盘生产厂商不需要再担心自己的硬盘是否与其它厂商生产的控制器兼容。

对用户而言,硬盘安装起来也更为方便。

IDE这一接口技术从诞生至今就一直在不断发展,性能也不断的提高,其拥有的价格低廉、兼容性强的特点,为其造就了其它类型硬盘无法替代的地位。

一般每个主板上有两个IDE接口(IDE1和IDE2)。

每个接口可以分别接两个硬盘或者两个光驱。

在机箱内主板上连接硬盘和光驱的接口就是IDE接口。

所以IDE通道就是用来管理硬盘读写的通道(或者是光驱)。

一般来讲主要的IDE接口是接硬盘的,次要的是接光驱的。

所以主要和次要的IDE通道分别是管理硬盘和光驱的读写的通道。

在计算机我的电脑属性设备管理器里面,可用看到IDE通道,在IDE ATI/ATIPI控制器的目录下。

在IDE 通道的属性里面可用看到,IDE的一些基本的属性和设置项目,包括常规,高级设置,驱动程序,详细信息,资源5个选项。

在常规选项里面主要显示该IDE的基本属性,制造商,运行状态等。

在高级设置里面有设备类型和传送模式两个选项,设备类型里面有自动检测和无两个选项。

自动检测是指对硬盘接口就是(就是IDE接口)的检测,这一项在一般情况下可以改成“无”,这样对设备不会有什么伤害,可以提高系统的启动速度。

传送模式有DMA (若可用)和仅PIO两种。

DMA的意思是直接内存访问,是一种不经过CPU而直接从内存了存取数据的数据交换模式。

在DMA模式下,CPU只须向DMA控制器下达指令,让DMA控制器来处理数的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率。

用于磁盘接口技术的协议

用于磁盘接口技术的协议

用于磁盘接口技术的协议一、介绍磁盘接口技术的协议是计算机系统中用于连接磁盘驱动器和主机之间的通信协议。

它定义了数据传输的格式、速率以及控制信号等方面的规范,确保磁盘驱动器能够与主机正常通信并实现数据的读写操作。

本文将介绍几种常见的磁盘接口技术的协议,包括SATA、IDE和SCSI。

二、SATA协议SATA(Serial ATA)是一种串行ATA接口技术,用于连接主机和磁盘驱动器。

SATA协议通过串行传输方式提高了数据传输速率,目前已广泛应用于个人电脑和服务器等设备。

SATA协议支持热插拔功能,允许在系统运行时插拔磁盘驱动器。

此外,SATA还支持多个设备同时连接到同一接口上,提供了更高的灵活性和扩展性。

三、IDE协议IDE(Integrated Drive Electronics)是一种并行ATA接口技术,也称为PATA(Parallel ATA)。

IDE协议主要用于连接早期的个人电脑和磁盘驱动器。

IDE接口使用了40根导线来传输数据和控制信号,其中包括数据传输线、地址线、控制线等。

IDE协议的主要优点是成本低廉,并且与早期的设备兼容性较好。

然而,由于并行传输的限制,IDE的数据传输速率相对较低。

四、SCSI协议SCSI(Small Computer System Interface)是一种高性能的接口技术,用于连接主机和外部设备,包括磁盘驱动器、打印机、光驱等。

SCSI协议采用了并行传输方式,支持多个设备同时连接到同一接口上,并提供了更高的数据传输速率和更强的扩展性。

SCSI协议还支持热插拔功能,并提供了丰富的控制和管理功能,使得外部设备的操作更加灵活和方便。

五、磁盘接口技术的发展趋势随着计算机技术的不断发展,磁盘接口技术也在不断演进。

目前,SATA协议已成为主流的磁盘接口技术,其提供了更高的数据传输速率和更好的扩展性。

同时,随着固态硬盘(SSD)的普及,新的接口技术如NVMe(Non-Volatile Memory Express)也开始逐渐被采用。

主板硬盘跳线换协议

主板硬盘跳线换协议

主板硬盘跳线换协议一、什么是主板硬盘跳线主板硬盘跳线是一种用于设置硬盘工作模式的物理连接方式。

在早期的IDE接口硬盘中,跳线是通过连接硬盘上的跳线帽来实现的,而在现代的SATA接口硬盘中,跳线被替代为通过主板上的BIOS设置来进行配置。

二、硬盘跳线换协议的意义硬盘跳线换协议是指通过改变硬盘上的跳线设置,实现不同的工作模式。

不同的工作模式可以影响硬盘的性能、兼容性以及数据传输速度。

因此,正确配置硬盘跳线对于保证硬盘的正常工作非常重要。

三、IDE接口硬盘跳线换协议1. IDE接口硬盘的跳线设置在IDE接口硬盘中,通常有两个设备连接到同一条IDE数据线上,一个作为主设备,另一个作为从设备。

通过设置跳线,可以确定硬盘的工作模式,包括主设备、从设备以及CS(Cable Select)模式。

2. 跳线设置示意图以下是常见的IDE接口硬盘跳线设置示意图:Master Slave Cable Select----- ----- -------------| o o | | o o | | o o o o o || o o | | o o | | o o o o o |----- ----- -------------3. 跳线设置说明•Master模式:将硬盘设置为主设备模式,通常用于启动操作系统的硬盘。

•Slave模式:将硬盘设置为从设备模式,通常用于存储数据的硬盘。

•Cable Select模式:通过连接线缆上的跳线设置,自动确定硬盘的工作模式。

四、SATA接口硬盘跳线换协议1. SATA接口硬盘的跳线设置在SATA接口硬盘中,跳线被替代为通过主板上的BIOS设置来进行配置。

通过BIOS设置,可以确定硬盘的工作模式,包括AHCI模式和IDE模式。

2. 跳线设置说明•AHCI模式:支持高级主机控制器接口,提供更好的性能和功能。

适用于较新的操作系统。

•IDE模式:模拟传统IDE接口,适用于旧的操作系统或不支持AHCI的系统。

常用硬盘接口IDE、SATA、mSATA、M.2SATA、M.2PCIENVMe讲解

常用硬盘接口IDE、SATA、mSATA、M.2SATA、M.2PCIENVMe讲解

常用硬盘接口IDE、SATA、mSATA、M.2SATA、M.2PCIENVMe讲解一、机械盘接口及SATA总线通道1、 IDE接口(ATA同IDE)一般的计算机,很老的硬盘接口都是IDE,现在市场已经不使用此接口,IDE出现的比较早。

以前,很多硬盘都是IDE接口的;而现在,市场上几乎没有IDE接口的硬盘了。

优点:该接口的硬盘价格低廉、兼容性强、性价比高。

缺点:数据传输速度慢、线缆长度过短、连接设备少、不支持热插拔、接口速度的可升级性差。

SATA总线通道:SATA是Serial ATA的缩写,即串行ATA。

它是一种电脑总线,主要功能是用作主板和大量存储设备(如硬盘及光盘驱动器)之间的数据传输之用。

SATA已经完全取代旧式PATA(Parallel ATA或旧称IDE)接口的旧式硬盘,因采用串行方式传输数据而得名。

SATA总线使用嵌入式时钟信号,具备了更强的纠错能力,与以往相比其最大的区别在于能对传输指令(不仅仅是数据)进行检查,如果发现错误会自动矫正,这在很大程度上提高了数据传输的可靠性。

Serial ATA的起点更高、发展潜力更大,Serial ATA 1.0定义的数据传输率可达150MB/sec,这比目前最快的并行ATA(即ATA/133)所能达到133MB/sec的最高数据传输率还高,而在已经发布的Serial ATA 2.0的数据传输率将达到300MB/sec,最终Serial ATA 3.0将实现600MB/sec的最高数据传输率。

SATA 3.0最大的改进之处,就是将总线最大传输带宽提升到6Gbps。

实际传输速度大约600MB/S(理论为6Gbps/8=768MB/S)2、SATA接口Serial ATA-串行ATA技术,速度更快,SATA不依赖系统总线的带宽,而是内置时钟频率,支持热插拔。

现在市场上大部分机械硬盘接口几乎都是SATA。

虽然SATA具备了热插拔的规范,但连接缆线多是设计给内接式硬盘使用,最大插拔次数仅约200次,超过此插拔数目,缆线接头便会劣化,甚至有可能造成硬盘的损坏。

标准双通道pci ide

标准双通道pci ide

标准双通道pci ide标准双通道PCI IDE。

标准双通道PCI IDE是一种用于连接IDE设备的接口标准,它可以提供高速数据传输和稳定性,广泛应用于计算机硬件设备中。

本文将介绍标准双通道PCI IDE 的基本原理、特点和应用。

首先,标准双通道PCI IDE采用了PCI总线作为数据传输的基础,PCI总线具有高带宽和高速度的特点,可以满足IDE设备对数据传输速度的要求。

同时,标准双通道PCI IDE还采用了DMA(Direct Memory Access)技术,可以在数据传输过程中减轻CPU的负担,提高系统的整体性能。

其次,标准双通道PCI IDE支持多种IDE设备的连接,包括硬盘驱动器、光盘驱动器和磁盘驱动器等,可以满足不同设备的数据传输需求。

同时,标准双通道PCI IDE还支持多种操作系统的兼容性,可以在不同的计算机系统中稳定运行。

此外,标准双通道PCI IDE还具有热插拔的特点,可以在计算机运行的过程中插拔IDE设备,而不会影响系统的稳定性和数据传输的完整性。

这为用户在使用计算机时提供了更大的灵活性和便利性。

在实际应用中,标准双通道PCI IDE广泛应用于个人计算机、工作站和服务器等设备中,为这些设备提供了稳定、高效的数据传输和存储功能。

同时,标准双通道PCI IDE也为计算机设备的升级和扩展提供了便利,用户可以通过PCI插槽轻松地扩展IDE设备的连接数量,满足不同的应用需求。

总的来说,标准双通道PCI IDE作为一种高性能的IDE接口标准,具有高速数据传输、稳定性和兼容性等特点,广泛应用于计算机设备中,为用户提供了高效的数据存储和传输解决方案。

随着计算机技术的不断发展,标准双通道PCI IDE将继续发挥重要作用,为计算机设备的性能提升和功能扩展提供支持。

在实际使用中,用户需要根据自己的实际需求选择合适的标准双通道PCI IDE 设备,并严格按照生产厂家的安装和使用说明进行操作,以确保设备的稳定性和安全性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于FPGA的IDE硬盘接口卡的实现摘要:本文介绍了一种基于FPGA技术的IDE硬盘接口的设计。

该卡提供两个符合ATA-6规范的接口,采用FPGA实现了两套IDE接口功能,设计支持PIO 和Ultra DMA传输模式,文章侧重于介绍用FPGA实现IDE接口协议的具体方法。

关键词:FPGA;硬盘;IDE接口引言本文采用FPGA实现了IDE硬盘接口协议。

系统提供两套符合ATA-6规范的IDE接口,一个与普通IDE硬盘连接,另一个与计算机主板上的IDE接口相连。

系统采用FPGA实现接口协议,完成接口数据的截获、处理(在本文中主要是数据加密)和转发,支持PIO和Ultra DMA两种数据传输模式。

下面重点介绍用FPGA实现接口协议的方法。

1 IDE接口协议简介1.1 IDE接口引脚定义IDE(Integrated Drive Electronics)即“电子集成驱动器”,又称为ATA接口。

表1列出了ATA标准中IDE接口上的信号。

其中,带“-”的信号(如RESET-)表示低电平有效。

“方向”是相对于硬盘而言,I表示进入硬盘,O表示从硬盘出来,I/O表示双向。

表1:IDE接口引脚定义1.2 IDE控制器的寄存器组主机对IDE硬盘的控制是通过硬盘控制器上的两组寄存器来实现的。

一组为命令寄存器组;另一组为控制/诊断寄存器,如表2所示。

表2寄存器组特征寄存器中的内容作为命令的一个参数,其作用随命令而变。

扇区数寄存器指示该次命令所需传输数据的扇区数。

扇区号寄存器、柱面数寄存器(低、高)、驱动器/磁头寄存器三者合称为介质地址寄存器,指示该次命令所需传输数据首扇区的地址,寻址方式可以用“柱面/磁头/扇区(CHS)”或“逻辑块地址(LBA)”方式,在驱动器/磁头寄存器中指定。

命令寄存器存储执行的命令代码。

当向命令寄存器写入命令时,相关的参数必须先写入。

命令写入后,硬盘立即开始命令的执行。

状态寄存器保存硬盘执行命令后的结果,供主机读取。

其主要位有:BSY-驱动器忙,DRDY-驱动器准备好,DF-驱动器故障,DRQ-数据请求,ERR-命令执行出错。

辅助状态寄存器与状态寄存器的内容完全相同,但读该寄存器时不清除中断请求。

错误寄存器包含了命令执行出错时硬盘的诊断信息。

数据寄存器为PIO传输模式下,主机和硬盘控制器的缓冲区之间进行数据交换的寄存器。

数据端口为DMA传输模式下专用的数据传输通道。

1.3 IDE数据传输方式IDE接口的数据传输包括PIO和DMA两种方式。

PIO模式是硬盘数据传输的基本方式。

在PIO方式下,数据的传输以数据块(1个或者多个扇区)为单位,每传输完一个数据块后,硬盘都会产生一个中断请求,并向主机报告命令执行结果。

在DMA方式下,主机和硬盘之间需要通过一系列握手信号建立一个DMA通道,数据以数据流的形式传输。

当传输完一个命令的所有数据时,硬盘产生一个中断请求,并向主机报告命令执行结果。

DMA方式又分为Ultra DMA和Multi word DMA两种。

Ultra DMA方式在选通信号的上升沿和下降沿均锁定数据,提高了数据的传输速率,并且在数据传输结束时还要进行CRC校验。

2 FPGA内部框图本设计采用Actel公司的ProASIC PLUS系列FPGA芯片,其内部框图如图1所示。

寄存器组一保存从主机写入的命令及命令参数,在控制模块的作用下转发给硬盘。

寄存器组二保存从硬盘读出的命令执行结果,供主机读取。

控制模块负责产生对主机及对硬盘的各种IDE协议控制信号,并协调各模块之间的工作。

控制模块采用状态机的设计方法,其软件设计流程将在下一节中详细介绍。

数据处理单元对数据进行加/解密运算。

缓冲区一、二则作为数据处理单元的输入/输出缓存。

在PIO方式下,数据的处理以数据块为单位,缓冲区充当RAM的作用;在Ultra DMA方式下,数据以数据流的形式处理,缓冲区充当FIFO的作用。

3系统软件流程开机时,FPGA检测到复位信号,初始化内部寄存器组,并对硬盘进行复位操作,硬盘复位完毕后FPGA进入空闲状态。

FPGA在空闲状态时会检测主机是否有写命令操作(通常一个命令的写入,要先写特征寄存器、扇区数寄存器、扇区号寄存器、柱面数低位寄存器、柱面数高位寄存器、驱动器/磁头寄存器6个命令参数寄存器,最后将命令写入命令寄存器)。

当主机依次将寄存器组一写完后,FPGA对主机置BSY位,并将命令转发给硬盘,同时判断命令类型,根据不同的命令,进入相应的命令处理流程。

如果是无数据命令,FPGA等待硬盘命令的执行,命令执行完毕后,硬盘产生一个中断请求,此时FPGA将执行结果读入寄存器组二中,并向主机产生中断请求。

如果是有数据命令,则根据数据传输的模式,分别进入到下述的PIO 命令处理流程及Ultra DMA命令处理流程。

3.1 PIO命令处理流程以PIO模式传输数据的命令有Write Sectors、Write Multiple、Read Sect ors和Read Multiple。

当FPGA判断出是PIO模式的数据传输命令时,转向PI O命令处理流程。

下面我们以PIO写操作为例介绍。

FPGA首先查询硬盘的BSY位。

若BSY为0则将硬盘的状态寄存器读入寄存器组二,并查询DRQ位。

若DRQ为1则表明硬盘已准备好接收数据。

此时主机可以向缓冲区一写入数据块(本设计中,我们设定数据块的大小为1个扇区共512字节)。

主机写完一个数据块后FPGA对主机置BSY位,数据处理单元开始进行加密运算,并将加密后的数据写入缓冲区二。

加密运算完成后,FPGA 将缓冲区二中的数据写入硬盘数据缓存区,并进入等待状态。

硬盘将数据写入物理介质(磁碟)后会产生一个中断请求,报告已完成该数据块的写操作。

FPGA 将执行结果读入寄存器组二中,向主机产生中断请求,并再次查询DRQ位,若DRQ为1则进入下一个PIO数据块的传输过程,若DRQ为0则表示该命令所有数据全部传完,FPGA进入空闲状态。

此外,Identify Device命令是主机以PIO方式从硬盘读出512字节的属性信息(包括硬盘的型号、容量等)。

此时,数据处理单元不应对该命令的数据进行加/解密运算。

3.2 Ultra DMA命令处理流程以Ultra DMA模式传输数据的命令有Write DMA和Read DMA。

下面我们以Ultra DMA写操作为例介绍Ultra DMA命令处理流程。

DMA传输通道的建立都是由硬盘通过DMARQ来请求的。

FPGA接收到硬盘的DMA请求后首先初始化主机至FPGA的DMA通道,紧接着初始化FPGA至硬盘的DMA通道。

此时主机经FPGA到硬盘的DMA通道即已建立,主机向缓冲区一写入数据,同时数据处理单元对数据进行加密运算,并将加密后的数据写入缓冲区二,FPGA则将缓冲区二中的数据写入硬盘。

在传输过程中,若硬盘要求暂停或者缓冲区二空,则FPGA暂停向硬盘发送数据;若缓冲区一满,则FP GA要求主机暂停发送数据。

图3 PIO命令处理流程主机和硬盘都可以随时停止当前的DMA传输,未传完的数据将等待硬盘下一次的DMA请求时再进行传输。

如果硬盘提出中止传输,FPGA将撤除FPGA至硬盘的DMA通道,同时向主机提出中止传输,撤除主机至FPGA的DMA通道,并计算该次所传数据的CRC校验。

然后FPGA进入等待状态,等待硬盘下一次的DMA请求。

如果主机提出中止传输,FPGA将撤除主机至FPGA的DMA通道,同时继续向硬盘发送数据,直到将接收到主机的数据发送完毕,即缓冲区二空后,向硬盘提出中止传输,撤除FPGA至硬盘的DMA通道,并计算CRC校验。

然后F PGA进入等待状态,等待硬盘下一次的DMA请求。

在等待状态下,若FPGA接收到硬盘的中断请求,则说明该次命令的所有数据已经传完,命令结束。

FPGA将命令执行结果读入寄存器组二,向主机产生中断请求,进入空闲状态。

若接收到硬盘的DMA请求,则说明硬盘还未接收到该次命令的所有数据,此时需要判断主机是否已将所有数据发送完。

如果主机并没有将所有数据发送完,则再次建立FPGA两侧的DMA通道,开始新一轮的DM A传输;如果主机已将所有数据发送完,则重新建立FPGA至硬盘的DMA通道,直到将缓冲区二中的数据发送完,并计算CRC校验。

4 结束语本文采用FPGA实现了两套符合ATA-6规范的IDE接口,完成主机与硬盘之间数据的截获、处理和转发。

经测试,系统在DOS、Windows 98、Windows 2000、Windows XP及Red Hat Linux 9.0操作系统环境下,使用希捷、迈拓、三星、西数等公司的多种型号硬盘均工作正常,支持PIO和Ultra DMA两种数据传输模式。

由于通过FPGA实现一个完整的IDE接口,若对系统稍加改动,如在数据处理单元中加入相应的文件系统,即可实现脱机读写IDE硬盘,用于数据采集的海量存储等多种场合,使系统具有较好的通用性。

本文作者创新点:作者针对硬盘数据易泄密及高速大容量数据采集困难等问题,提出在主机和硬盘之间使用FPGA芯片构建一个双向IDE硬盘通道,实现两套符合ATA-6规范的IDE接口,FPGA对主机与硬盘间的数据流进行处理及转发,以实现硬盘数据加密、数据高速采集存储及脱机控制硬盘等操作。

系统支持PIO和Ultra DMA两种数据传输模式,对操作系统透明,较常见的单向IDE 通道,该系统通用性强,有较好的推广价值。

本文侧重于用FPGA实现IDE接口协议,对实现过程及方法做了详细描述,对读者有较高的参考实用价值。

参考文献:1 T13 Technical Committee. Information Technology-AT Attachment with Packed Interface-6 (ATA/ATAPI-6). [S] Revision 1e. 20012 Friedhelm Schmidt,精英科技译,SCSI总线和IDE接口:协议、应用和编程(第二版),[M] 中国电力出版社,2001.33 Actel Corporation. Liber o User’s Guide.20044 Actel Corporation,Pro ASIC PLUS Data sheet, Version v3.5,2004.4 5基于FPGA的高速连续数据采集系统的设计[J]黄新财佃松宜汪道辉《微计算机信息》2005年第21卷第2期58页。

相关文档
最新文档