Nios系统基础上的UItra DMA数据传输模式

发布者:知识阁楼最新更新时间:2006-10-18 来源: 单片机及嵌入式系统应用关键字:控制  时钟  频率 手机看文章 扫描二维码
随时随地手机看文章
引 言

  随着消费类电子,如MP3、3G手机、视频终端以及宽带无线网络的普及,对大容量存储设备的需求越来越强烈。传统的SRAM、SDRAM以及DDR SDRAM等存储设备的价格与容量比,远远比硬盘高;光存储设备虽然更加廉价,但是在便携性上却远逊于硬盘解决方案。现在硬盘厂商提供了各种适用于不同用途的廉价海量存储设备,如1 in(英寸)的微硬盘可以应用于各种小巧的便携设备中,2.5in硬盘可以应用于笔记本和移动存储中,3.5in硬盘可以应用于个人PC和工业自动化中等等。


  目前,硬盘支持的最为广泛的IDE接口协议中,规定了PIO、DMA以及Ultra DMA三种数据传输模式,其传输速率PIO<多字DMA < Ultra DMA,如表1所列。随着各种多媒体应用的广泛普及,各种设备不但要求拥有海量存储能力,在完成各种实时业务时对数据的传输速率也提出了严格的要求。


  现阶段的设计研究主要集中于单边沿锁存数据的PIO和DMA传输模式。大多数设计主要用PIO模式完成控制命令的写入和读取操作,采用DMA数据传输模式进行直接内存读取操作,提高数据传输的速率。如果在相同系统中使用Ultra DMA数据传输模式,则可以在不提高系统时钟频率的基础上,将系统数据传输速率提高l倍,极大地改善了系统性能,而不需要付出更多的硬件资源。因而硬盘的Ultra DMA数据传输方式在工业自动化、Internet网络、消费类电子和各种嵌入式系统中的需求会不断增加,有着很好的商业前景。


1 Nios系统介绍

  该设计是在Altera公司推出的Nios嵌入式系统的平台上,设计可以通过Ultra DMA数据传输方式进行高速硬盘读写的接口模块,并开发出相应的IP核。

1.1 Nios系统结构


  Nios嵌入式处理器系统通常由N1os处理器、Avalon交换结构总线和各种外围设备(存储、接口及功能模块)的IP核三部分构成。Altera的SOPC Builder系统开发工具可以自动生成这些组件以及连接它们的总线。

  Nios处理器是32位结构可配置并包含五级流水线的通用RISC微处理器,采用改进的哈佛存储器结构;处理器带有分离的数据和程序存储器总线控制,具备高速缓存、中断处理功能。与传统处理器相比,Nios指令系统可通过自定义指令和标准处理器选项,利用硬件来明显提高系统性能。

  Avalon交换结构总线是Altera开发的用于Nios嵌入式处理器的参数化接口总线,由l组预定义的信号组成,用这些信号可以连接1个或多个IP模块。Altera的S0PC Builder系统开发工具自动地产生Avalon交换结构总线逻辑,其实现只需要极少的FPGA资源,提供完全同步的操作。

  Nios嵌入式处理器系统中的各种存储模块、接口模块和功能模块等都在Altera的标准外围设备库中以IP核的方式提供使用,或是由用户自行设计添加到库中,以IP模块的方式在系统中复用。

  实现硬盘高速访问功能模块的设计,实际上是在设计一个完整的IP模块,再在Altera提供的SOPC Builder开发环境的设备库中集成该IP核,以达到设计的目的。

1.2采用Nlos软核处理器构建系统的原因


  ①与其他的实现方式相比有着更好的性能价格比。最常见的硬盘读取控制和数据传输方式是通过单片机或是DSP来实现的,使用单片机或DSP中的PIO接口可以很方便地完成单边沿锁存数据的硬盘PIO和DMA数据传输方式,但在实现双边沿锁存数据的Ultra DMA传输方式时,必须在单片机和DSP芯片外添加额外的FPGA芯片,完成Ultra DMA双边沿锁存数据到单边沿锁存数据的转换,增加了系统设计的成本和复杂性。而采用Nios软核处理器完成与硬盘的Ultra DMA传输方式时,不需要添加任何额外的芯片,仅使用FPGA内的其他资源就可以方便地实现双边沿到单边沿的转换工作。

  ②与传统的单片机或DSP实现方式相比,Nios嵌入式系统的设计与实现更加简单。从性能上来说,Nios软核处理器与ARM、Intel等的CPU处于同一级别,都能够满足设计的需要,即使是复杂逻辑系统的设计也可以在一片Cyclone或是StratiX芯片上实现全部功能。而且通过使用Altera公司提供的SOPC Builder开发工具,在IP复用的基础上可以快速开发出完整的系统解决方案。

  ③与传统的单片机或DSP实现方式相比,Nios嵌入式系统的可扩展性更好。单片机或DSP内的资源是硬件厂商固化在芯片内的,用户不可能自行添加或删减,在设计时的灵活性受到器件本身的限制;而Nios软核处理器的所有资源都可以任意地添加或删减,只需最终通过电缆下载到FPGA芯片内就可定制出整个系统的功能。因而在基于Nios的系统设计中,通过对设计文件的修改就可以很方便地进行系统功能的扩展。

2 系统的硬件实现


硬件部分由Nios嵌入式系统、Nios与硬盘的接口模块和其他外围接口电路三部分组成,如图1所示。其中设计的核心部分是Nios系统与硬盘接口模块的IP核设计,主要完成数据传输模式的转换,以及对硬盘的控制与操作两部分任务。Nios嵌入式处理器系统的任务是进行整体控制与协调,并对数据进行处理和暂存;外围接口电路主要用来扩充系统的功能,扩大系统的适用范围。


  Nios嵌入式处理器系统由Nios嵌入式处理器、DMA控制器、数据存储区SDRAM、程序存储区F1ash和Avalon总线构成。其中DMA控制器用于实现两个存储器之间,或者存储器和外设之间,或者是两个外设之间的直接数据传输。DMA模块用于连接支持流模式传输的外设,并允许定长或变长的数据传输,而不需要CPU的干涉。在Ultra DMA数据传输的过程中,可以一次性传输最多256个扇区的数据,所以在系统中使用DMA控制器可以方便地在硬盘与系统中各种支持流传输模式的设备之间建立直通连接,提高系统的数据传输效率。

  外围接口电路主要用于系统功能的扩充,如Internet接口可以使系统方便地接人到网络中提供诸如音乐或视频下载、信息共享等服务;串口用于与计算机或其他设备的互连;VGA接口用于视频信号的输出,在系统外部显示图像等等。

  硬盘接口部分主要由接口控制逻辑、Avalon总线接口、FIFO和硬盘IDE接口4部分组成。其中接口控制逻辑部分用于对Nios处理器的指令进行译码并执行相应的操作,控制Ultra DMA传输时的握手和控制信号的产生,协调数据传输过程中IDE接口的硬盘数据速率同Avalon总线接口速率的匹配。

  FIFO用于数据的缓冲,解决Avalon总线和IDE接口之间的数据速率不匹配问题。在设计中需要对硬盘UltraDMA的六种数据传输模式同时提供支持,而其传输速率却完全不同,必须添加缓冲区用于数据的暂存。

  Avalon总线接口用于与Nios处理器系统相连,传输Nios处理器的指令给控制逻辑部分,以及与系统中的其他部分在DMA控制器的协调下完成数据的传输。

  硬盘IDE接口部分除输出控制信号并对硬盘返回的信号做出响应外,还要完成单边沿数据锁存模式与双边沿数据锁存模式相互转换的任务,如图2、图3所示。

  由于Nios系统内部数据传输时,都使用时钟上升沿来锁存数据;而IDE总线上传输的Ultra DMA数据,在Clock信号的上升沿和下降沿都有数据需要锁存。因而硬盘接口部分两侧的数据,在传输时工作模式各不相同,需要进行必要的缓冲和模式转换。

  数据锁存模式转换模块,用于在IDE总线上双边沿锁存数据和系统内部单边沿锁存数据之间进行锁存模式的转换,这是系统设计的核心问题之一。具体来说,就是在读取硬盘数据时需要将IDE总线上传输的双边沿锁存数据转换为系统内部使用的单边沿锁存数据;在写硬盘操作时完成相反的任务。在设计时采用两组寄存器对不同时钟沿的信号进行锁存,在时钟频率不变的基础上,通过数据带宽的扩展,完成双边沿到单边沿的转换功能;在单边沿数据到双边沿数据的转换过程中,采用相反的构架。


3 系统工作流程

  系统在完成基于Ultra DMA的数据传输模式的硬盘访问功能时,需要实现对硬盘数据通过Ultra I)MA模式进行的读操作和写操作。其具体的工作流程各不相同,主要区别在于:

  ①Nios系统内部的协调过程。作为系统处理核心的Nios处理器,必须向硬盘接口逻辑和DMA控制器中发送指令,使其按照设计要求执行相应的操作。向硬盘接口逻辑部分发送读写硬盘的指令时,需要首先命令读操作时使用FIFO对硬盘数据进行缓冲,在写操作时将FIFO中的缓冲数据发送到硬盘中完成写入操作;向DMA控制器部分发送指令,协调接口缓冲区FIFo和系统内存SDRAM中数据的交互过程,以完成对硬盘的读写操作。

  ②对硬盘的读写访问操作。在对硬盘进行读写操作时,必须向硬盘的接口寄存器中发送DMA读指令或写指令,其指令码和操作顺序也不尽相同,如图4、图5所示。

 


4 系统的软件实现

  在Nios SDK Shell环境下,使用带Monitor的bootloader程序,可以在程序Debug的同时监控内部存储器的变化,便于硬件设计的检查和程序的调试。软件的编写主要采用C语言,部分嵌入了汇编语言。整个系统软件设计中的重点是以下两部分。

(1)Nios系统内DMA控制器的编程


  在DMA传输过程中需要完成的操作有:①配置DMA控制器;②软件启动DMA外设,开始DMA传输;③DMA控制器的主设备读端口从目标地址读取数据,主设备写端口向目标地址写入数据;④DMA传输结束。

  这一过程中,需要向DMA控制器的寄存器中写入控制指令来开启一次数据传输过程。要求初始化的寄存器有:status、readaddress、wi rte£Jddress、length和contiol。之后调用系统提供的DMA子程序开启一次DMA操作,使用的DMA子程序有:nr_dma_opy_1_tO_rarlge(在原地址和目标地址之间,传输length长度的数据,原地址固定,而目标地址在每次传输后增加),用于完成数据读取操作时,从FIFO缓冲区中向SDRAM里传输数据;nr_dma_copy_range_to_l(在原地址和目标地址之间,传输lengt长度的数据,目标地址固定,而原地址在每次传输后增加),用于完成数据写操作时,从SDRAM里向FIFO中缓冲数据。

(2)硬盘的DMA读写命令


  在对硬盘进行读写操作时须向硬盘的寄存器内写入DMA读指令(或写指令)和相应参数后才可对硬盘中的数据进行访问。在ATAPI 协议中规定了READ DMA指令和WRITE DMA指令的命令格式,需要向SectorCbunt、SectorNulmber、CyclindeLow、CyblindelrHigh、Device/Head、Command寄存器中写入参数和命令代码。其中读指令的代码是C8h、写指令的代码是CAh。在写入命令后就可以对硬盘中的数据进行读写操作。


结 语

  本系统使用Nios嵌入式系统在单芯片内实现了数据处理、存储访问、数据模式转换等多个功能。采用Altera公司提供的Quartus II 和 SOPC Builder开发工具可以在完成接口功能设计后,快速进行系统的集成设计和系统仿真,最终可以在Altera提供的Cyclone系列芯片上实现整个系统设计。对Nios处理器重新编程可以在不改变系统硬件框架的基础上,方便地增加系统的功能和处理效率,对系统的升级和再开发有很大的便利。

关键字:控制  时钟  频率 引用地址:Nios系统基础上的UItra DMA数据传输模式

上一篇:嵌入式操作系统UC/OSII的内核实现
下一篇:基于嵌入式Linux的PMP系统设计与实现

推荐阅读最新更新时间:2024-05-02 20:26

X1203实时时钟芯片的原理与应用
1 概述 X1203集成电路是一个带时钟/日历和两个闹钟(报警)的实时时钟芯片。它内含双端口时钟和报警器寄存器,这使其即使在读、写操作期间也能精确工作。 该时钟/日历芯片提供了可通过一组寄存器进行控制和读出的功能。时钟使用低成本的32.768kHz晶振输入,能以秒、分、时、日、星期、月和年来单位跟踪时间。X1203具有闰年校正功能,并能对小于31开的月份自动进行调整。 X1203提供了一个VBACK备用电源输入引脚,利用该引脚能使器件用不可充电的电源作备用电源。其电压为2.5~6V。X1203芯睡具有如下特点: ●具有安秒、10秒、分、10分、时、日、月或星期设置的中断输出。 ●有供时基产生的重复报警; ●
[半导体设计/制造]
控制级设计在智能工厂自动化系统中所面临的挑战
针对工业4.0的工厂自动化系统通常主要包括三个层级的设备,用于驱动实时通信和控制: 1.在现场层级,I/O模块、制动器和驱动器负责工厂内的物理运作; 2.在控制层级,可编程逻辑控制器(PLC)或计算机数控(CNC)负责从现场级搜集信息并向现场发出指令; 3.在操作员层级,人机界面(HMI)设备与操作员交互通信,同时操作员可以发出指令。 每一个层级都需要经优化的硬件和软件解决方案来解决各自所面临的严峻设计挑战。其中,涉及到控制层级的挑战尤其难以解决。 由于通过一个控制器所支持的节点数量正在逐渐增加,除了能耗、长电源使用寿命和可靠性要求等与所有工业自动化设计相关的挑战外,控制级设备的设计人员还面临着某些特定的挑战。更多的
[物联网]
<font color='red'>控制</font>级设计在智能工厂自动化系统中所面临的挑战
基于LPC2119的微弧氧化电源控制系统设计
   1.引言     微弧氧化(MAO)是一种在金属表面原位生长陶瓷层的表面处理技术,该技术是利用等离子体化学和电化学原理,使材料表面产生微区弧光放电,在化学、电化学和等离子体的共同作用下,原位生长陶瓷层的新技术。微弧氧化电源是保证微弧氧化工艺的关键环节之一,其主要功能是在微弧氧化处理生产过程中,产生和控制具有脉冲电场以及过程参数的自动检测和控制。    本文研制的微弧氧化电源采用功率模块换流技术,实现了微弧氧化工艺所需的高电压、大电流、宽频带和高质正、负脉冲输出。利用基于ARM的自动控制系统实现电压、电流、脉冲频率、占空比等电参数的自动监控。ARM(Advanced RISC Machines)处理器是一种32位嵌入式
[电源管理]
解析汽车尾灯控制电路工作原理及设计
前言 具有良好的汽车尾灯性能是汽车必不可少的,也是行车安全重要的一部分。汽车尾灯的闪烁并不是毫无规律的(电动汽车控制器),它是根据汽车行驶的方向不断变化的。汽车尾灯控制电路(汽车控制系统)与汽车尾灯的变化息息相关,简而言之,就是汽车尾灯控制电路掌握着汽车尾灯的变化规律。那么汽车尾灯控制电路的工作原理及它是怎样设计的呢?作者通过搜集整理资料,对于汽车尾灯控制电路(汽车电子控制技术)相关知识进行如下归纳。 汽车尾灯的控制电路的工作原理 汽车尾灯控制电路包含译码电路和显示驱动电路。其显示驱动电路由6个发光二极管和6个反相器(7404)构成;译码电路由3—8线译码器74138和6个与非门(7400)构成。74138的三个输入端
[嵌入式]
基于ZigBee的无线智能家庭网关控制技术研究
      引言       随着网络技术和现代通信技术的发展,家庭网络化已经成为家庭现代化的趋势。家庭网络可视为一种分布式网络,通过无线家庭网关实现对普通家电终端的远程控制是未来的发展趋势,冈此无线家庭网关是整个家庭网络的核心,它主要实现网络接入、远程控制以及无线连接家庭内部异构子网等功能。其中无线网关控制技术是一个需要解决的关键问题。       目前无线控制技术主要有IrDA、ZigBee、无线USB、蓝牙、Z-Wave。在以上技术中,IrDA技术最具有成本优势且协议简单,但传输方向单一,不能组网。WirelessUSB的成本较高,主要用于传输高速多媒体数据,不适合智能家庭的控制应用。蓝牙技术主要用于传输语音,如果将
[网络通信]
基于模糊自整定PID的汽轮机数字电液控制系统
汽轮机调节系统是保证机组安全稳定运行的关键设备,其性能的好坏直接影响机组的运行可靠性和经济性。 在数字电液调节系统中,引入了数字计算机作为控制系统的核心,可以方便地实现信号的综合与控制,控制精度提高,控制特性得到了全面的改进,因此,DEH在汽轮机调节系统中得到了越来越广泛的应用。传统汽轮机采用PID控制方式通过数字电液控制系统对汽轮机实施控制,但是在实际使用当中,每一套系统的状态都不是完全一致,对参数的调节总是依赖工程师的经验。而且当系统发生扰动时(如负载突然出现较大变化),或系统有摄动时(如内部某些器件参数发生变化),难以保持良好的控制性能。为此,本文把模糊控制技术引入PID控制,设计了一种模糊自整定PID控制器应用于汽
[汽车电子]
基于CAN总线的流光放电烟气脱硫电源集散控制系统的设计
    摘要: 针对流光放电烟气脱硫电源难以产业化的问题,提出了基于CAN总线的集散控制的解决方法,并介绍了该系统的设计思路和实现过程。     关键词: 流光放电 烟气脱硫 CAN总线 集散控制系统 烟气脱硫是当今世界控制SO2排放的主要途径。工业发达国家大多数采用石灰石湿法。我国曾采用氨酸法、尾部增湿法等多种方法脱硫,目前也尝试要用石灰石湿法,但至今没有找到适合我国国情的经济而有效的途径,因为这些方法皆受造价、运行费、吸收剂来源和终产物出路等问题的困扰。近来年利用流光放电进行脱硫的研究取得了很大进展,低能耗是这项技术的最大优点。但是目前的研究都还触及电源的实用化和反应条件优化等关键问题,离产业化还有很大的距
[应用]
CANape/vMeasure exp控制OUTMM输出PWM波的方法
1.内容梗概 CSM OUT MiniModule是信号输出模块,可输出模拟变量和数字信号。可以通过CSMconfig来设置OUTMM功能,并使用CAN报文来控制OUTMM输出的数值大小。OUTMM一般用于测试台架和HIL测试等。 OUTMM可以输出以下信号: 电压(0V到10V);电流(0mA到20mA或者4mA到20mA);频率信号( 0Hz到100kHz);PWM波(占空比0%到100%);数字信号; 本文主要以示例的方式,展示使用CANape控制OUT MiniModule输出可调节占空比的PWM波的方法,CANape通过VN1610接口卡收发器发送 CAN报文到总线上,OUT MiniModule收到报文后根据转
[嵌入式]
CANape/vMeasure exp<font color='red'>控制</font>OUTMM输出PWM波的方法
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved