基于NiosII处理器的通用AD IP核的设计与实现

发布者:满足的36号最新更新时间:2010-04-22 来源: Chinaaet关键字:NiosII  IP核  SOPC 手机看文章 扫描二维码
随时随地手机看文章

  随着电子技术的飞速发展,嵌入式系统的需求越来越大、应用领域也越来越广泛。数据采集是嵌入式系统不可或缺的组成部分,其性能在某种程度上直接决定了整个系统能否满足设计的要求。目前,数据采集部分的实现基本上都是利用单片机或者ARM片内集成好的AD外设。这种AD外设的性能参数往往都已经在片上固化好了(即具有不可更改性),而且与其他片内外设不可分离地组合在了一起,从而使得整个系统的设计具有很大局限性。加之市面上单片机、ARM的款式型号非常有限,使用者不得不在性能与成本上作出折中的选择来满足所设计系统的要求,由于这种设计方案是不可更改的,且应用范围小、可移植性差,因此往往无法满足客户更高的要求。

  Nios II是Altera公司开发的第二代可进行SOPC设计的RISC型处理器软核,具有定制指令、硬件加速、可重配置、低成本和无与伦比的灵活性等特点[1]。基于NiosII处理器的通用AD IP核是一种全新的设计思路与实现方案,它可以将市面上任意一款AD芯片制作成IP核并集成到NiosII系统中使用,具有高性能、参数可配置、可移植、可裁剪等特点,并且具有很高的灵活性、实用性,从而更能满足设计的要求。

  本文提出了一种基于NiosII处理器的通用AD IP核来实现嵌入式数据采集系统的新方案,在Altera公司的FPGA芯片CycloneII EP2C35F484C8 上完成了硬件验证,最终应用到某数据采集系统的设计中。

  1 通用AD IP核的整体构架

  通用AD IP核是针对所有AD芯片设计的,它可以将市面上任意一款AD芯片集成到NiosII系统中使用,其整体构架如图1所示。

  整个通用AD IP核主要由4个子模块组成:AD 控制器模块、FIR 滤波器模块、FIFO 缓存模块和带Avalon-MM Slave接口的寄存器文件模块。首先AD控制器控制AD芯片对外界的模拟信号的采集,采集到的数据送入FIR滤波器进行数字滤波,然后将经过数字信号处理后的数据存入FIFO缓存中,当FIFO缓存数据为满时,会向NIOSII处理器产生一个中断,顶层应用程序可以通过中断服务程序将FIFO中的数据读到内存中进行处理。带Avalon-MM Slave接口的寄存器文件模块提供了所设计的AD IP核的任务逻辑与Avalon交换结构交换信息的途径。有了寄存器文件模块,NiosII处理器就可以通过Avalon接口采用“基地址+地址偏移量”的方式来访问AD IP核内部的各寄存器[2]。

  2 AD IP核各个模块的设计与实现

  由于市面上AD芯片的种类和型号非常多,不可能在此一一进行阐述。本设计以一款常用的典型AD芯片TLC549为例,详细阐述针对这款AD芯片的IP核的各个模块的设计与实现。

  2.1 AD控制器模块的设计

  本系统采用AD转换芯片TLC549,它是TI公司生产的一种低价位、高性能的8位A/D转换器,它能方便地采用三线串行接口方式与各种微处理器连接,构成各种廉价的测控应用系统[3]。

  本文利用有限状态机的方法采用Verilog HDL硬件描述语言设计了一个TLC549控制器,从而完成了对TLC549 AD芯片的时序控制,它的状态转移图如图2所示。

  由图2可以看出,状态机一开始处于idle状态。在下一个clk时钟周期上升沿时刻进入cs_low状态,在cs_low状态将cs输出引脚拉低并延时2 μs。当2 μs延时完成时,状态机进入sclk_low状态,在sclk_low状态将sclk输出引脚拉低并延时0.5 μs。当0.5 μs延时完成时,状态机进入sclk_high状态,在sclk_high状态将sclk输出引脚拉高并延时0.5 μs,同时读取串行数据线miso上的AD采样值并将其存入移位寄存器中。当0.5 μs延时完成时,进入finish状态,在该状态状态机对已经接收到的串行数据位数进行判断,如果小于8说明串行数据还没有接收完毕,加1并进入sclk_low状态;如果等于8说明8位AD采样值已经接收完毕,进入delay状态。在delay状态将延时30μs,当30 μs延时完成时将进入load状态。在load状态,状态机在data_ready输出引脚上拉高一个clk时钟周期并在data[7..0]引脚上输出接收到的8位采样数据。在下一个clk时钟周期上升沿状态机将自动进入idle状态,以进行下一次AD数据采集。由此周而复始不断循环从而完成通过TLC549 AD芯片实现对外界模拟信号的实时采集。[page]

  本文采用Quartus 软件集成的Signal Tap II 嵌入式逻辑分析仪软件对TLC549控制器模块进行硬件仿真,波形如图3所示。

  由图3可以看出,在cs、sclk和miso信号的时序配合下,data信号线上输出稳定的8位AD采样数据,经过数字量到模拟量的转换发现与外界输入模拟值一致,从而完成了TLC549控制器模块的验证。

  AD控制器模块是针对某一款具体的AD芯片而设计的,如果选用不同款式的AD芯片,则需要参考该芯片的芯片手册设计针对该款AD芯片的AD 控制器模块。

  2.2 FIR滤波器模块的设计

  在实际应用的数据采集系统中,往往需要对外界模拟输入信号进行滤波,以提取信号中有用的信息。在本设计中这部分的功能是由FIR滤波器模块来完成的。FIR滤波器模块采用Altera公司提供的FIR IP核来实现,通过Simulink软件中的DSP Builder工具对其进行仿真并最终可以生成底层HDL代码。由于TLC549的最高采样频率为40 kHz,本文设计了一个低通滤波器,它的采样频率为40 kHz,3 dB截止频率为100 Hz。在Simulink软件中建立的FIR IP核的仿真模型如图4所示。

  图4中nco_v8_0模块和nco_v8_1模块是2个数控振荡器,分别用于产生100 Hz和1 kHz的正弦信号,signal add模块是并行加法器,它将两路正弦信号进行叠加并将和信号输出。fir_compiler_v8_0模块是FIR IP核,它将signal add模块输出的和信号作为输入,并将数字滤波的结果输出到示波器进行显示。仿真结果如图5和图6所示。

  由图5可以看出:第1路是频率为100 Hz的正弦信号,第2路是频率为1 kHz的正弦信号,第3路是前两路信号的叠加。图6中显示的是经过数字滤波后的波形,可以看出只有100 Hz的频率分量存在,1 kHz的信号被滤除了,从而完成了对FIR IP核的功能验证。通过图4中的Signal Compiler工具可以完成该FIR IP核的底层HDL代码的生成。[page]

  FIR滤波器模块采用Altera公司提供的FIR IP核来实现,具有高性能、可配置、可重用等特点。设计者只需根据整个系统的需求以及所选用AD芯片的采样速率等参数确定滤波器的类型与系数,并对该IP核进行参数化、实例化,即可完成针对该款AD芯片的FIR滤波器模块的设计。因此这部分的设计对于不同的AD芯片是相对独立的,具有很好的通用性。

  2.3 FIFO缓存模块的设计

  为了连续和正确地采集数据,实现无缝缓冲,本设计利用了FIFO做数据缓存。由于TLC549是8位的AD芯片,故本设计采用1个512×8 bit 的FIFO来存储采样的数据。当FIFO中的数据存满时,它会向Nios II CPU产生一个中断信号。顶层应用程序可以通过中断服务程序将FIFO中的数据读到内存中进行处理。这样既不会造成数据的丢失,同时可以保证CPU较高的效率,很好地解决了上述的速度不匹配的问题。

  FIFO缓存模块的设计对于不同的AD芯片是相对独立的,设计者只需根据所选用AD芯片的精度、采样速率、时钟速率等参数确定FIFO缓存的位宽和深度,并对FIFO进行参数化、实例化,即可完成针对该款AD芯片的FIFO缓存模块的设计,因此具有很好的通用性。

  2.4 带Avalon-MM Slave接口的寄存器文件模块的设计

  本文设计的带Avalon-MM Slave接口[4]的寄存器文件模块是具有Avalon-MM Slave 从端口的外设。它内部共有2个8位寄存器,具体结构和功能如表1所示。NiosII处理器可以通过Avalon接口采用“基地址+地址偏移量”的方式来访问这2个寄存器,从而实现对AD IP核的控制以及AD采样数据的读取。

  对于一些比较复杂的AD芯片(如AD73360),往往需要对其写控制字、读状态字,这就需要增加寄存器文件模块中的寄存器个数来完成相应的逻辑功能。Avalon接口采用“基地址+地址偏移量”的方式来访问寄存器,这样就可以简单地通过增加地址线的位数并进行译码来实现,因此对于各种复杂的AD芯片具有很好的可扩展性和适用性。

  3 整个IP核在NiosII系统中的硬件测试

  本设计采用Verilog HDL语言建立了一个顶层文件tlc549_adc_ip.v,通过对AD控制器模块、FIR滤波器模块、FIFO缓存模块和带Avalon-MM Slave接口的寄存器文件模块进行实例化与互连,最终完成了整个IP核的设计,它的模块图如图7所示。

  本文采用C++语言做了一个基于NiosII处理器的顶层应用测试程序,利用描点法将不断采集到的AD数据绘制成波形显示出来,从而完成对整个IP核的硬件功能测试。测试过程中,在AD芯片的模拟输入端输入一个由1 kHz正弦信号和100 Hz的正弦信号叠加而成的混合信号,整个系统的运行结果显示在NiosII IDE软件的Console控制台中,如图8所示。

  通过对图8中的正弦波形以及采样到的数据进行分析与计算可知,采集到的信号频率是100 Hz,信号的幅度与外界的模拟输入信号完全一致,从而验证了整个IP核的功能正确性。整个IP核使用5 275个LE,占总数的15.8%,4 096个存储单元,占总数的0.8%。系统的主频能达到199.64 MHz。[page]

  为了验证AD IP核的通用性与适用性,本文还针对另外两款AD芯片(AD7476和AD73360)进行了IP核制作与测试,且测试信号与TLC549 IP核的测试信号完全相同。

  AD7476 IP核采用了上述通用AD IP核的设计方法,它的AD控制器模块是针对AD7476这款 12位串行AD芯片而设计的。FIR滤波器模块的参数与TLC549 IP核中的FIR滤波器参数相同,只是输入数据的位宽设置为12位。由于AD7476芯片的采样速率比较快,所以FIFO 缓存模块的深度设置为1 024,位宽设置为12位,这样可以使NiosII CPU的效率更高。

  AD73360 IP核同样也采用了上述通用AD IP核的设计方法,它的AD控制器模块是针对6路16位串行AD芯片AD73360设计的。它的FIR 滤波器模块的参数和FIFO 缓存模块的参数与TLC549中的相应参数设置相同,只是把位宽设置为16位。由于控制的过程中需要对AD73360芯片内部的寄存器进行读写,所以在寄存器文件模块中增加了两个寄存器(1个读状态字寄存器,1个写控制字寄存器),从而完成对AD73360芯片内部控制与状态寄存器的读写。

  这两款AD IP核与TLC549 IP核的比较如表2所示。由表2可以看出,本文提出的基于NiosII处理器的通用AD IP核对于不同精度、不同采样速率、不同时钟速率、不同通道数的AD芯片都适用,并且具有较高的性能和灵活性。在实际应用中,如果对该IP核所占用的资源数有一定的限制,可以自行编写FIR滤波器模块,这样能大大降低IP核所占用的资源数,从而实现整个IP核的性能与资源之间的平衡。

  参考文献

  [1]     Altera Corp. NiosII处理器参考手册,2008.

  [2]     李兰英. NiosⅡ嵌入式软核SOPC设计原理及应用. 北京:北京航空航天大学出版社,2006.

  [3]      TI Inc. TLC549 datasheet.1996.

  [4]     Altera Corp. AVALON总线接口规范使用手册,2008.

关键字:NiosII  IP核  SOPC 引用地址:基于NiosII处理器的通用AD IP核的设计与实现

上一篇:安富利推出Virtex-6 FPGA DSP 开发工具套件
下一篇:FPGA上同步开关噪声的分析

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

关于IP核在SoC设计中的接口技术
  引言   随着半导体技术的发展,深亚微米工艺加工技术允许开发上百万门级的单芯片,已能够将系统级设计集成到单个芯片中即实现片上系统SoC。IP核的复用是SoC设计的关键,但困难在于缺乏IP核与系统的接口标准,因此,开发统一的IP核接口标准对提高IP核的复用意义重大。本文简单介绍IP核概念,然后从接口标准的角度讨论在SoC设计中提高IP核的复用度,从而简化系统设计和验证的方法,主要讨论OCP(开放核协议)。   OCP简介   基于IP核复用技术的SoC设计使芯片的设计从以硬件为中心转向以软件为中心,芯片设计不再是门级的设计,而是IP核和接口及其复用设计。IP核集成到系统所要考虑的问题包括:同步,例如全局执行、数据交换和协
[嵌入式]
AD9850驱动程序--MSP430版本详解
前段时间忙着画板子搞运放搞滤波了,程序更新的少,发现MSP430不是太好用,尤其Timer,不过也与我使用内部晶振有关,产生正玄波之前用MSP430发出PWM,再进行滤波变为正弦波太麻烦了,这次改用DDS芯片,今天板子回来一会就调了出来很方便。 AD9850为一款DDS芯片,这里不做什么详细介绍了,有两种接口:serial 和 parrel,两种接口驱动均完成 1 /* 2 * AD9850.h 3 * 4 * Created on: 2013-7-12 5 * Author: Allen 6 */ 7 8 #ifndef AD9850_H_ 9 #define AD9850_H_ 10 11 #include 12 #inc
[嵌入式]
DDS器件AD9858及其在雷达信号源中的应用
   1 引言   近年来,随着雷达技术的迅速发展,人们对雷达信号的要求也越来越高。高精度、高扫描率、高抗干扰性、低截获率成为人们追求的目标。满足这种需求除了靠产生复杂的雷达波形外,还需要在雷达系统中应用高性能的器件。而高性能DDS技术、DSP技术及大规模可编程逻辑器件技术、电子计算机的应用为此类问题的解决提供了一种新的途径。AD9858就是一款高性能的DDS器件,可方便快速地产生线性调频、单频脉冲及编码调制信号。    2 器件简介   ADI公司推出的AD9858器件是具有1GSPS千兆次取样/秒速率的直接数字合成器DDS、10位D/A转换器、快速频率跳跃和精细调谐分辨率功能的单片解决方案。AD9858比先前
[工业控制]
基于ADμC812单片机的多路温湿度测控系统
1 引言 由美国模拟器件公司新近推出的ADμC812单片机,其内部包含了高精度的8通道12位模数变换器(ADC),2通道12位数模变换器(DAC)以及可编程的8位(与8051单片机兼容)微控制器单元(MCU),另有8Kbytes闪速/电擦除程序存储器,640B的闪速/电擦除数据存储器,通用异步收发信机(UART),串行外围接口(SPI) 和I?2C串行总线端口,还有看门狗,电源监控等功能。它可广泛地应用于各种测控系统。本文主要介绍ADμC812单片机在多路温湿度测控系统中的应用。 2 ADμC812单片机介绍 2.1 功能方框图 ADμC812单片机的功能如图1所示。 2.2 模数转换部分 它包含了5μs、8通道12
[单片机]
基于<font color='red'>AD</font>μC812单片机的多路温湿度测控系统
AD转换__HCS12学习笔记(3)
AD转换是非常普遍的模块了,在8位或者16位的单片机上都有应用,在HCS12系列的单片机上内置了一个AD转换器,可用于8位或者10位的AD转换,但做不了DA转换。原理很简单,就不提了。 寄存器: ATDCTL2 AD的电源开关、中断和外部触发信号。 ATDCTL3 AD转换的序列长度、结果寄存器是否采用先进先出方式以及冻结模式下的设置。 ATDCTL4 时钟频率、第二阶段采样的时间长度及AD转换的精度(8位或者10位)。 ATDCTL5 AD转换序列的类型和采样的模拟量输入通道。 ATDSTAT0 包括转换完成标志位、外部触发中断溢出标志位、先入先出模式位和转换结果标号位。 ATDTEST1 用于激活特殊通道 ATDSTAT
[单片机]
CBFET运放AD843及其在阻抗匹配电路中的应用
    摘要: 介绍了CBFET(互补双极型场效应管)运算放大器AD843的主要功能特点及其在阻抗匹配电路中的应用。并通过几种阻抗匹配电路的比较说明了该芯片的独特性和优越性,最后给出了AD843的一个应用实例。     关键词: CBFET 运算放大器 阻抗匹配 AD843 在电路设计中的许多情况下需要进行阻抗匹配变换,以适应各种芯片或元件间的匹配。传统的阻抗匹配由分立器件组成,因而电路干扰大、调试麻烦、开发周期长并且维护困难。而一些运放集成芯片由于本身在结构上的设计局限(如频带宽度,输入偏置电路等),远远不能满足较宽频带和精确匹配的要求。CBFEY(互补双级型场效应管)运算放大器AD843却能以其独特的
[应用]
基于NiosII的二维条码识别系统设计
  二维条码PDF417中PDF为Portable Data File的缩写,每一个PDF码的储存量可高达1 108字节,若将数字压缩则可存放2 729字节。作为一种新的信息存储和传递技术,PDF417具有成本低、信息可随载体移动、不依赖于数据库和计算机网络、保密防伪性能强等优点,广泛应用在国防、公共安全、交通运输、医疗保健、工业、商业、金融、海关及政府管理等领域,PDF417码的例子如图1所示。   图1  PDF417二维条码   1  系统总体设计   本系统在FPGA上使用SOPC技术来实现无线手持二维条码识读器,与传统一维条码识读器最大的区别在于完全脱离后台数据库,以及在高达50%破损率的情况下能够
[网络通信]
基于SOPC的通用TFT-LCD控制器IP核设计
随着电子技术的迅猛发展,液晶显示器(LCD)具有功耗低,体积小,重量轻,超薄等许多其他显示器无法比拟的优点,被广泛用于智能仪器、仪表和低功耗电子产品中。TFT-LCD屏采用有源显示方式,具有抗抖动,色彩饱和度高,还原能力强和对比度高等特点,在嵌入式系统中具有广泛的应用前景。在嵌入式系统中,LCD控制器是处理器与LCD显示驱动器之间的接口部件,对LCD屏提供时序信号和显示数据,用来控制数据在LCD屏幕上的显示,是LCD系统中重要的组成部分。现有的LCD控制器一般都由各个生产厂家自行开发,通用性差,而软件控制TFT-LCD会占用大量的处理器资源,使得系统的集成度不高。 SoPC Builder是Altera公司实现SoPC概念的一
[工业控制]
基于<font color='red'>SOPC</font>的通用TFT-LCD控制器<font color='red'>IP核</font>设计
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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