0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用SOPC技术结合VHDL语言实现多通道数据采集系统的设计

电子设计 来源:电子元器件应用 作者:常璐 2020-08-28 09:33 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

随着集成电路的不断发展,可编程逻辑器件FPGA因其功能强大,设计灵活,开发周期短等特点,得到越来越广泛的应用。于是片上可编程系统(System On Programmable Chip,SOPC)的设计方法也越来越受到重视。SOPC将微处理器、存储器、定时器、通用I/O接口等系统设计必需的功能模块以及用户设计的有特定功能的模块集成到一片可编程逻辑器件上,构建一个具备软,硬件在系统可编程功能的可编程片上系统。这种非常灵活的电路设计方式使得对整个电路系统的裁减、扩充、升级变的很容易。这样可以缩短电路设计的开发周期,节省开发成本。MicroBlaze作为Xilinx公司开发的32位哈佛结构RISC型软核处理器,适用于其所有现产的FPGA器件。采用这种“微处理器+可编程逻辑”的SOPC系统架构,用户可方便的在系统中加入各种IP核,实现具有特定功能的,易配置、易扩展、易继承的片上系统。

文中提出一种基于SOPC技术的多路数据采集与存储系统的设计方法,利用硬件描述语言设计用户IP核,实现硬件控制数据采集和存储的功能。加上Xilinx公司一些必要的标准IP核可以生成嵌入式系统。这种可以方便地把用户自定义的逻辑加入到系统中的设计,体现了用SOPC设计嵌入式系统的灵活性。

1 系统总体结构

整个系统由xilinx公司的spartan3E高性能、低成本的90nm FPGA和一些外围电路组成。主要有AD转换器、FLASH存储器、系统PROM配置电路和电源模块等,其系统总体结构如图1所示。

系统核心采用嵌入式技术,在一片芯片上实现,它包含Xilinx公司的一些标准总线IP核如中断控制器,通用输入输出端口等模块和带有PLB总线接口的用户自定义的数据采集与存储IP核。其中用户自定义的IP核是用VHDL语言设计的,它包含AD控制逻辑、FLASH控制逻辑、DMA传输控制逻辑和FIFO缓存模块等。

整个系统设计可以分为硬件设计和软件设计两个部分。利用SOPC技术结合VHDL硬件描述语言,在芯片内部设计硬件控制系统;利用EDK(嵌入式开发套件)为特定硬件配置自动生成的软件包结合C语言,设计基于Microblaze处理器的软件控制程序。

2 系统结构

FPGA的硬件设计先确定要用的外部接口,然后进行IP核设计,将IP核的逻辑功能映射到FPGA芯片上。其系统结构框图如图2所示。

2.1 AD转换芯片

AD转换器采用MAXIM公司的MAXIM1308芯片,它是12位模数转换器ADC)提供8个独立输入通道,独立的采样保持(T/H)电路为每个通道提供同时采样,提供+5V输入范围,20MHz、12位双向并行数据总线用来提供转换结果,并可接受数字输入来单独配置每一通道的开启和关闭。

2.2 FLASH存储器

FLASH存储器芯片采用8片三星公司的K9XXG08UXA系列的NAND Flash存储器,该存储器是按页进行读写按块擦除,通过I/O管脚分时复用发送命令/地址/数据。每片的存储容量为512MB。存储过程使用流水线方式对数据进行存储。

2.3 FPGA配置电路

Xilinx公司的FPGA器件是基于SRAM的内部结构,掉电后FPGA的内部逻辑丢失,因此外部需要一个配置芯片在每次上电时可以将配置数据加载到FPGA器件的内部SRAM中。配置芯片采用的是XCF04系列PROM串行配置芯片。当系统上电时,芯片以主动配置方式来实现系统中FPGA的硬件配置。通过高速的串行接口,整个芯片的配置工作可以在很短的时间内完成。

2.4 系统电源模块

电源模块的设计不仅需要为器件提供各种高性能的功率输出,还要包括选择合适的旁路、去耦电容,以滤除各种干扰信号,保证系统的稳定工作。Xilinx公司Spartan-3E XC3S500E FPGA需要三种电压供电才能正常工作:VCCAUX:1.2V±5%,VCCAUX:2.5V±5%,VCCO:3.3V±5%。利用TI公司TPS75003芯片加上必要的外围电路作为该系统的完整的电源解决方案。

2.5 USB接口芯片

USB芯片使用由FTDI公司推出的FT245R,该芯片主要完成USB串行总线和8位并行FIFO接口之间的相互协议转换。整个USB通信协议全部由芯片自动完成,无须考虑底层固件的编程。该芯片可以使用内部集成的时钟电路进行工作,也可以使用外部晶振,本系统中使用外部晶振。完全兼容USB2.0协议。它有256字节的接收缓冲区和128个发送缓冲区,可以进行数据的大吞吐量操作。通过8位并行数据口D[0:7]和4位读写状态/控制口RXF、TXE、RD、WR就可实现与微控制器的数据交换。

3 FPGA系统硬件设计

Xilinx公司EDK(嵌入式开发套件)的XPS(平台工作室)的系统组建面板以展开式的树和表形式显示所有硬件平台IP实例,因此用户可以方便地查看自己的嵌入式设计。在此面板中可以对IP元素、端口、属性以及参数进行配置。

3.1 用户IP核设计

使用XPS进行基于MicroBlaze的用户IP核的开发,该套件集成了硬件平台产生器、软件平台产生器、仿真模型生成器、软件编译器和软件调试工具等。

为实现系统功能,需自定义一个IP核实现数据的采集与存储:该IP核包括五部分,分别为PLB总线接口模块、数据采集模块、数据缓存模块、数据存储模块FLASH读写控制逻辑。

(1)数据采集模块:利用FPGA逻辑资源实现A/D采集电路的控制逻辑。在功能上,该AD控制逻辑相当于一个主控制器。该控制过程无需处理器参与。另外AD控制逻辑与AD数据接口的分离,使得高速采集与发送数据成为可能。它连接两片12位的8通道MAXIM1308转换器,可实现多通道的数据采集。

(2)数据缓存模块:在FPGA内部设计FIFO将AD转换后的数据暂时存放其中。FIFO是Xilinx以FPGA片上Blockram为资源生成,FIFO模块的主要功能是数据缓冲,实现速率匹配。该异步FIFO模块在FIFO读、写控制模块的控制之下进行异步读写,FIFO的读时钟受数据存储模块控制,写时钟受数据采集模块的控制。FPGA内部设计了两片12位的FIFO与上述两片AD转换器相对应。

(3)数据存储模块:对本系统使用VHDL语言专门设一个DMA控制器来连接FIFO缓存和外部FLASH存储阵列。当FIFO缓存容量达到一定的值时可以启动DMA控制器建立一个高速的通道以提供连续的数据传输,存储到FPGA外部FLASH存储器阵列。这个通道使得只要FIFO缓存中的数据达到一定的值时便能迅速地存储到外部FLASH中,主设备不必为了确定从端口是否能够发送或接收数据而不断地访问从外设的状态寄存器。这使得系统的整体效率有了较大的提高,同时避免了自定义外设FIFO中的数据上溢或下溢。并且该过程只需要Microblaze处理器很少的干预即可完成,极大地节省了CPU资源。

(4)FLASH读写控制逻辑:主要实现K9XXG08UXA系列的NAND Flash存储器的读写时序,完成对FLASH的操作。

在SOPC硬件系统设计过程中用户IP核的设计是关键,它的设计是否成功决定着整个系统设计是否可行。在用户IP核设计过程中AD控制器、FLASH控制器、DMA控制器的设计都比较成功的,图3是对用户IP核设计的部分验证:示波器捕获的读FLASH存储器ID号时序图,且实验证明读出来的FLASH存储器的ID号是正确的。其中通道0—4分别代表FLASH的CE(片选)、ALE(地址锁存)、CLE(命令锁存)、RE(读)、WE(写)信号。

3.2 设计生成FPGA硬件系统

在XPS嵌入式开发环境中将用户IP核和标准总线核添加到系统中并将它们互相按规则连接起来。XPS提供了一个交互式的开发环境,允许用户对硬件平台各个方面进行设置。其中,XPS在高层对硬件平台描述进行维护,此高层形式即为微处理器硬件规范(MHS)文件。MHS文件作为一个可以编辑的文本文件,是表示用户嵌入式系统硬件部分的主要源文件。XPS将MHS文件综合到硬件描述语言网表中,用于FPGA的布局布线形成FPGA系统的硬件结构,该过程即是生成硬件比特流的阶段,形成后缀名为.bit的文件。

4 结束语

本文介绍了基于SOPC的多通道数据采集系统设计,可以对多种关心的环境参数进行采集并研究其特性。利用MicroBlaze微处理器搭建数据此采集与存储的嵌入式可编程片上系统,可以由单个芯片完成整个系统的主要逻辑功能。便于系统实现小型化,集成化。这种灵活的设计方式可随意扩展系统功能。在此基础上嵌入操作系统,可以进一步开发功能更强大的实时数据采集设备。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1656

    文章

    22288

    浏览量

    630378
  • 芯片
    +关注

    关注

    462

    文章

    53550

    浏览量

    459264
  • 数据采集
    +关注

    关注

    40

    文章

    7820

    浏览量

    119873
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    请教:怎样利用LabVIEW实现通道数据采集

    请教:怎样利用LabVIEW实现通道数据采集
    发表于 11-01 22:05

    LabVIEW编程语言实现振动信号的通道数据采集

    文件列表:通道数据采集\主程序.vi..............\参数设置\参数设置.vi..............\通道
    发表于 04-16 20:41

    如何利用FPGA和VHDL语言实现PCM码的解调?

    利用现场可编程门阵列(FPGA)和VHDL 语言实现了PCM码的解调,这样在不改变硬件电路的情况下,能够适应PCM码传输速率和帧结构变化,从而正确解调数据
    发表于 05-07 06:58

    基于PC的通道自带缓存数据采集系统的设计与实现

    基于PC的通道自带缓存数据采集系统的设计与实现:本文描述了一自带缓存的数据采集
    发表于 10-11 11:12 12次下载

    基于CVI的通道数据采集系统

    基于计算机技术及虚拟仪器平台LabWindows/CVI 开发了通道实时数据采集系统系统采用
    发表于 12-31 15:10 79次下载

    基于FPGA的通道同步数据采集存储系统

    设计一种基于FPGA的通道同步数据采集存储系统,分为通道同步
    发表于 12-27 15:31 70次下载

    SOPC基础上的数据采集系统设计

    本中提出一种基于SOPC技术的多路数据采集与存储系统的设计方法,利用硬件描述语言设计用户IP核,
    发表于 07-04 11:04 1374次阅读
    <b class='flag-5'>SOPC</b>基础上的<b class='flag-5'>数据采集</b><b class='flag-5'>系统</b>设计

    基于SOPC数据采集与处理系统设计

    基于矿井地震勘探中对数据采集与处理的高性能要求,本文采用SOPC (可编程片上系统技术设计了通道
    发表于 05-23 10:50 1830次阅读
    基于<b class='flag-5'>SOPC</b>的<b class='flag-5'>数据采集</b>与处理<b class='flag-5'>系统</b>设计

    基于SOPC技术数据采集系统设计

    基于SOPC技术数据采集系统设计,有需要的下来看看。
    发表于 02-17 10:01 15次下载

    如何使用FPGA进行超通道高速数据采集系统的构成和设计过程资料概述

    为了实现高清晰度油气管道漏磁检测器高精度通道数据采集的要求,采用AlteraCyclone系列FPGA EPlC6为核心控制模块,结合AD
    发表于 10-16 10:34 51次下载
    如何使用FPGA进行超<b class='flag-5'>多</b><b class='flag-5'>通道</b>高速<b class='flag-5'>数据采集</b><b class='flag-5'>系统</b>的构成和设计过程资料概述

    如何使用FPGA进行通道同步数据采集系统的设计

    结合数据采集在往复式压缩机在线监测系统中的应用, 设计了以FPGA(现场可编程门阵列)为核心的逻辑控制模块的通道数据采集
    发表于 12-18 19:09 22次下载
    如何使用FPGA进行<b class='flag-5'>多</b><b class='flag-5'>通道</b>同步<b class='flag-5'>数据采集</b><b class='flag-5'>系统</b>的设计

    使用LabVIEW实现通道数据采集系统的资料概述

    一款labview通道数据采A本文档的主要内容详细介绍的是使用LabVIEW实现通道
    发表于 07-24 08:00 48次下载
    使用LabVIEW<b class='flag-5'>实现</b><b class='flag-5'>多</b><b class='flag-5'>通道</b><b class='flag-5'>数据采集</b><b class='flag-5'>系统</b>的资料概述

    通道数据采集系统的优缺点

    通道数据采集系统是一种广泛应用于工业、科研、医疗等领域的技术,它能够同时采集多个
    的头像 发表于 07-01 15:58 3192次阅读

    通道数据采集系统的转换误差怎么算

    通道数据采集系统是一种广泛应用于工业、科研、医疗等领域的高精度数据采集设备。它通过多个通道同时
    的头像 发表于 07-01 16:36 1679次阅读

    通道数据采集系统的设计的意义

    通道数据采集系统(Multi-channel Data Acquisition System, 简称MDAS)是一种能够同时采集、处理和存
    的头像 发表于 07-02 09:00 2014次阅读