您的位置 首页 技术

选用可编程逻辑器件完成IDE接口的使用计划

采用可编程逻辑器件实现IDE接口的应用方案-本文采用FPGA实现了IDE硬盘接口协议。系统提供两套符合ATA-6规范的IDE接口,一个与普通IDE硬盘连接,另一个与计算机主板上的IDE接口相连。系统采用FPGA实现接口协议,完成接口数据的截获、处理(在本文中主要是数据加密)和转发,支持PIO和Ultra DMA两种数据传输模式。下面重点介绍用FPGA实现接口协议的方法。

导言

本文选用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标明双向。

选用可编程逻辑器件完结IDE接口的运用计划

1.2 IDE操控器的寄存器

主机对IDE硬盘的操控是经过硬盘操控器上的两组寄存器来完结的。一组为指令寄存器组;另一组为操控/确诊寄存器,如表2所示。

特征寄存器中的内容作为指令的一个参数,其效果随指令而变。扇区数寄存器指示该次指令所需传输数据的扇区数。扇区号寄存器、柱面数寄存器(低、高)、驱动器/磁头寄存器三者合称为介质地址寄存器,指示该次指令所需传输数据首扇区的地址,寻址办法能够用“柱面/磁头/扇区(CHS)”或“逻辑块地址(LBA)”办法,在驱动器/磁头寄存器中指定。

指令寄存器存储履行的指令代码。当向指令寄存器写入指令时,相关的参数必须先写入。指令写入后,硬盘当即开端指令的履行。状况寄存器保存硬盘履行指令后的成果,供主机读取。其主要位有:BSY-驱动器忙,DRDY-驱动器准备好,DF-驱动器毛病,DRQ-数据恳求,ERR-指令履行犯错。辅佐状况寄存器与状况寄存器的内容完全相同,但读该寄存器

时不铲除中断恳求。过错寄存器包含了指令履行犯错时硬盘的确诊信息。

数据寄存器为PIO传输办法下,主机和硬盘操控器的缓冲区之间进行数据交换的寄存器。数据端口为DMA传输办法下专用的数据传输通道。

1.3 IDE数据传输办法

IDE接口的数据传输包含PIO和DMA两种办法。PIO办法是硬盘数据传输的根本办法。在PIO办法下,数据的传输以数据块(1个或许多个扇区)为单位,每传输完一个数据块后,硬盘都会发生一个中断恳求,并向主机陈述指令履行成果。

在DMA办法下,主机和硬盘之间需求经过一系列握手信号树立一个DMA通道,数据以数据流的办法传输。当传输完一个指令的一切数据时,硬盘发生一个中断恳求,并向主机陈述指令履行成果。DMA办法又分为Ultra DMA和Multiword 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 Sectors和Read MulTIple。当FPGA判别出是PIO办法的数据传输指令时,转向PIO指令处理流程。下面咱们以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暂停向硬盘发送数据;若缓冲区一满,则FPGA要求主机暂停发送数据。

主机和硬盘都能够随时间断当时的DMA传输,未传完的数据将等候硬盘下一次的DMA恳求时再进行传输。假如硬盘提出间断传输,FPGA将撤消FPGA至硬盘的DMA通道,一起向主机提出间断传输,撤消主机至FPGA的DMA通道,并核算该次所传数据的CRC校验。然后FPGA进入等候状况,等候硬盘下一次的DMA恳求。

假如主机提出间断传输,FPGA将撤消主机至FPGA的DMA通道,一起持续向硬盘发送数据,直到将接纳到主机的数据发送完毕,即缓冲区二空后,向硬盘提出间断传输,撤消FPGA至硬盘的DMA通道,并核算CRC校验。然后FPGA进入等候状况,等候硬盘下一次的DMA恳求。

在等候状况下,若FPGA接纳到硬盘的中断恳求,则阐明该次指令的一切数据已经传完,指令完毕。FPGA将指令履行成果读入寄存器组二,向主机发生中断恳求,进入闲暇状况。若接纳到硬盘的DMA恳求,则阐明硬盘还未接纳到该次指令的一切数据,此刻需求判别主机是否已将一切数据发送完。假如主机并没有将一切数据发送完,则再次树立FPGA两边的DMA通道,开端新一轮的DMA传输;假如主机已将一切数据发送完,则从头树立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接口协议,对完结进程及办法做了具体描述,对读者有较高的参阅实用价值。

责任编辑:gt

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/jishu/86228.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部