论文部分内容阅读
随着电子产品对大容量存储的要求,硬盘的使用也越来越广。安防领域的DVR需要把数据写入到硬盘中,数据安全领域需要擦除和修复硬盘的数据,这些场合都要对硬盘进行访问。
硬盘是一种典型的IDE设备,对硬盘的访问涉及到IDE设备的控制。现有的方案是用CPU通过PIO控制的方式访问IDE设备占用的资源比较多,速度比较慢。本文主要介绍采用高可靠性、低成本的Actel FPGA来实现IDE设备控制的接口,为大家提供一种IDE设备读写控制的实现方案。结合Actel FPGA单芯片、上电即行、低成本、低功耗、高安全性和高可靠性的优点,可以应用在各种不同需求的场合。
1 概述
(1)功能概述
·与外部Mcu接口采用Intel 8080接口,简单易用;
·MCU与FPGA通信的带宽,读:22MB/s,写:22MB/s;
·MCu接口可以根据用户的需要灵活的修改,如增加数据线位宽:
·可以更改设计方便的扩展多路IDE接口(SATA~口需要另加一颗转换芯片),每个接口可以挂两个mE设备;
·数据传输支持P100-P104和UDMA0-UDMA5,高传输速度达IOOMB/s:
·支持硬盘的48bits地址操作模式,支持137GB以上硬盘:
·支持MCU访问IDE设备的任意寄存器:
·支持Mcu读写IDE设备的任意扇区的数据:
·支持IDE设备的数据高速填充(相当于完全格式化),填充速度6SMB/s:
·提供基于Lpczxx系列的例程c函数,减少项目开发时间;
·采用Actel Flash构架FPGA,高可靠性,低功耗,高安全性:
·FPGA的可编程性使得功能设计非常灵活,可以根据用户需求定制特殊功能:
·真正完美的单芯片、低成本、低功耗解决方案:
·ActelFpGA的Plasllock和AES双重加密,保护您的设计:
·Actel FPGA的固件错误免疫使得系统可以工作于较恶劣的环境中,可靠性极高。
(2)系统框图
图1是基于Actel FPGA的IDE控制器的结构图。该IDE控制器按照模块化的设计方法,由MCu接口、寄存器管理、寄存器译码、写入FIFO、读出FIFO、PIO控制和LIDMA控制等模块构成。其中,MCU接口模块把外部的MCU总线转换为内部的总线协议;寄存器管理管理内部的寄存器;寄存器译码模块把相关的寄存器值译码成内部一些控制参数:写入FIFO模块用来在写入的时候用作缓冲区;读出FIFO用来在读出数据的时候用作缓冲区:PIO控制模块用来控制PIO类型的数据传输:UDMA控制模块用来控制uDMA类型的数据传输。
IDE控制器的外部接口主要是与MCU的接口和与IDE设备的接口。MCU的接口用来连接系统中的主控MCU,以构成一个完整的系统;IDE设备接口是标准的IDE接口,用来连接IDE设备,一个接口可以最多连接两个IDE设备。
2 各功能模块介绍
(1)MCU接口模块
MCu接口模块需要将外部的MCU的总线转换为FPGA内部的总线。这样内部就可以方便的扩展模块。MCU的总线时序的写和读如图2和图3所示,写数据是把总线上的数据写入对应地址的寄存器中,读数据是将对应地址的寄存器读出。
(2)寄存器管理模块
寄存器的管理用来管理内部的寄存器,所有控制寄存器都通过这个模块管理和分配地址。这样在增加或减少寄存器的时候就比较的方便和简单。
寄存器管理模块的功能框图如图4所示。FPGA通过内部的总线传递过来地址和数据相关的信号。然后通过寄存器管理横块转换执行的信号传递到相关的执行部件,如果是传递一个数据,就把数据送入到相关的部件;内部FPGA执行的结果或待输出的数据需要通过寄存器管理模块传递到FPGA内部总线上,然后在通过MCU接口模块传递给外部的MCU。由于寄存器管理的功能比较的多,图中只是示意性的给出了几个信号传递的路径。
(3)寄存器译码模块
寄存器译码模块是把相关的寄存器值译码成相关的控制参数,例如PIO在不同模式下的时间参数是不同的,需要把PIO模式寄存器的值译码成对应的时间参数值。
(4)读写FlFO模块
读写EIFO是在数据传输的时候对硬盘进行DMA读写的时候用到。数据写入的总线先写入到PIFO中,然后再由FIFO写入到IDE设备中;数据的读出总是先读出到FIFO中,然后再被MCU接收。
(5)PIO控制模块
PIO控制模块是控制数据以PIO方式传输的一个模块,通过访问IDE设备的控制寄存器来完成。IDE设备的传输方式有两种,一种是PIO,一种是UDMAo PIO方式可以用来访问IDE设备的寄存器,也可以用来传输数据,传输数据是通过访问数据寄存器来实现的。伴随IDE设备的不断发展,PIO模式经历TPIO mode 0-PIO mode 4几种模式。PIO传输在各模式下的传输的速度如表l所示。
PIO模式在传输数据时受限于传输速率低下和极高的CPU占有率,这种数据传输模式很快就被淘汰,取而代之的是DMA传输模式。
(6)UDMA控制模块
uDMA控制模块是控制数据以uDMA方式传输的一个模块。UDMA传输在标准协议中为Ultra DMA,是IDE设备两种DMA传输方式的一种,另外一种为MultiwordDMA。uDMA传输方式是一种高速的数据传输方式,只能用来传输数据,不能用来访问IDE设备的寄存器。UDMA传输为了提高传输速度,采用双边沿的方式实现,其速度在UDMA5模式下能够达到100MByte/s。在高速传输下为了提高数据的稳定性,每次数据传输完毕都进行一次CRC的校验。CRC的校验是在UDMA传输中控制器和从设备根据传输的数据各生成一个CKC值,在传输结束的时候比较这两个值是否相等,如果相等,则传输正确。UDMA在IDE设备不断发展的过程中经历了UDMA mode 0-UDMA mode 5,主要是增加传输的速度。UDMA各模式下的传输的速度如表2所示。
3 市场应用
IDE控制器可以用来控制大容量的硬盘。也可以用来控制工业上常用的CF卡。对于SATA接口类型的硬盘来说,只需要增加一颗接口芯片即可。硬盘的控制可以用到DvR系统、数据修复和复制系统和工业CF卡存储系统中。如图4所示就是一种便携式的硬盘复制修复仪器。
4 小结
本文主要介绍了基于Actel FPGA的IDE设备控制器的功能和应用。敬请关注周立功公司的网站www.zlgmcu.com以获得更多的信息。我们有着一个接近30人的FPGA团队提供强有力的售后服务和技术支持,解决用户在产品使用和研发过程中遇到的困难。若有更多的需求可以与我们联系,我们将会竭诚为您服务,并请关注下期的FPGA专题技术讲座。
硬盘是一种典型的IDE设备,对硬盘的访问涉及到IDE设备的控制。现有的方案是用CPU通过PIO控制的方式访问IDE设备占用的资源比较多,速度比较慢。本文主要介绍采用高可靠性、低成本的Actel FPGA来实现IDE设备控制的接口,为大家提供一种IDE设备读写控制的实现方案。结合Actel FPGA单芯片、上电即行、低成本、低功耗、高安全性和高可靠性的优点,可以应用在各种不同需求的场合。
1 概述
(1)功能概述
·与外部Mcu接口采用Intel 8080接口,简单易用;
·MCU与FPGA通信的带宽,读:22MB/s,写:22MB/s;
·MCu接口可以根据用户的需要灵活的修改,如增加数据线位宽:
·可以更改设计方便的扩展多路IDE接口(SATA~口需要另加一颗转换芯片),每个接口可以挂两个mE设备;
·数据传输支持P100-P104和UDMA0-UDMA5,高传输速度达IOOMB/s:
·支持硬盘的48bits地址操作模式,支持137GB以上硬盘:
·支持MCU访问IDE设备的任意寄存器:
·支持Mcu读写IDE设备的任意扇区的数据:
·支持IDE设备的数据高速填充(相当于完全格式化),填充速度6SMB/s:
·提供基于Lpczxx系列的例程c函数,减少项目开发时间;
·采用Actel Flash构架FPGA,高可靠性,低功耗,高安全性:
·FPGA的可编程性使得功能设计非常灵活,可以根据用户需求定制特殊功能:
·真正完美的单芯片、低成本、低功耗解决方案:
·ActelFpGA的Plasllock和AES双重加密,保护您的设计:
·Actel FPGA的固件错误免疫使得系统可以工作于较恶劣的环境中,可靠性极高。
(2)系统框图
图1是基于Actel FPGA的IDE控制器的结构图。该IDE控制器按照模块化的设计方法,由MCu接口、寄存器管理、寄存器译码、写入FIFO、读出FIFO、PIO控制和LIDMA控制等模块构成。其中,MCU接口模块把外部的MCU总线转换为内部的总线协议;寄存器管理管理内部的寄存器;寄存器译码模块把相关的寄存器值译码成内部一些控制参数:写入FIFO模块用来在写入的时候用作缓冲区;读出FIFO用来在读出数据的时候用作缓冲区:PIO控制模块用来控制PIO类型的数据传输:UDMA控制模块用来控制uDMA类型的数据传输。
IDE控制器的外部接口主要是与MCU的接口和与IDE设备的接口。MCU的接口用来连接系统中的主控MCU,以构成一个完整的系统;IDE设备接口是标准的IDE接口,用来连接IDE设备,一个接口可以最多连接两个IDE设备。
2 各功能模块介绍
(1)MCU接口模块
MCu接口模块需要将外部的MCU的总线转换为FPGA内部的总线。这样内部就可以方便的扩展模块。MCU的总线时序的写和读如图2和图3所示,写数据是把总线上的数据写入对应地址的寄存器中,读数据是将对应地址的寄存器读出。
(2)寄存器管理模块
寄存器的管理用来管理内部的寄存器,所有控制寄存器都通过这个模块管理和分配地址。这样在增加或减少寄存器的时候就比较的方便和简单。
寄存器管理模块的功能框图如图4所示。FPGA通过内部的总线传递过来地址和数据相关的信号。然后通过寄存器管理横块转换执行的信号传递到相关的执行部件,如果是传递一个数据,就把数据送入到相关的部件;内部FPGA执行的结果或待输出的数据需要通过寄存器管理模块传递到FPGA内部总线上,然后在通过MCU接口模块传递给外部的MCU。由于寄存器管理的功能比较的多,图中只是示意性的给出了几个信号传递的路径。
(3)寄存器译码模块
寄存器译码模块是把相关的寄存器值译码成相关的控制参数,例如PIO在不同模式下的时间参数是不同的,需要把PIO模式寄存器的值译码成对应的时间参数值。
(4)读写FlFO模块
读写EIFO是在数据传输的时候对硬盘进行DMA读写的时候用到。数据写入的总线先写入到PIFO中,然后再由FIFO写入到IDE设备中;数据的读出总是先读出到FIFO中,然后再被MCU接收。
(5)PIO控制模块
PIO控制模块是控制数据以PIO方式传输的一个模块,通过访问IDE设备的控制寄存器来完成。IDE设备的传输方式有两种,一种是PIO,一种是UDMAo PIO方式可以用来访问IDE设备的寄存器,也可以用来传输数据,传输数据是通过访问数据寄存器来实现的。伴随IDE设备的不断发展,PIO模式经历TPIO mode 0-PIO mode 4几种模式。PIO传输在各模式下的传输的速度如表l所示。
PIO模式在传输数据时受限于传输速率低下和极高的CPU占有率,这种数据传输模式很快就被淘汰,取而代之的是DMA传输模式。
(6)UDMA控制模块
uDMA控制模块是控制数据以uDMA方式传输的一个模块。UDMA传输在标准协议中为Ultra DMA,是IDE设备两种DMA传输方式的一种,另外一种为MultiwordDMA。uDMA传输方式是一种高速的数据传输方式,只能用来传输数据,不能用来访问IDE设备的寄存器。UDMA传输为了提高传输速度,采用双边沿的方式实现,其速度在UDMA5模式下能够达到100MByte/s。在高速传输下为了提高数据的稳定性,每次数据传输完毕都进行一次CRC的校验。CRC的校验是在UDMA传输中控制器和从设备根据传输的数据各生成一个CKC值,在传输结束的时候比较这两个值是否相等,如果相等,则传输正确。UDMA在IDE设备不断发展的过程中经历了UDMA mode 0-UDMA mode 5,主要是增加传输的速度。UDMA各模式下的传输的速度如表2所示。
3 市场应用
IDE控制器可以用来控制大容量的硬盘。也可以用来控制工业上常用的CF卡。对于SATA接口类型的硬盘来说,只需要增加一颗接口芯片即可。硬盘的控制可以用到DvR系统、数据修复和复制系统和工业CF卡存储系统中。如图4所示就是一种便携式的硬盘复制修复仪器。
4 小结
本文主要介绍了基于Actel FPGA的IDE设备控制器的功能和应用。敬请关注周立功公司的网站www.zlgmcu.com以获得更多的信息。我们有着一个接近30人的FPGA团队提供强有力的售后服务和技术支持,解决用户在产品使用和研发过程中遇到的困难。若有更多的需求可以与我们联系,我们将会竭诚为您服务,并请关注下期的FPGA专题技术讲座。