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

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

3天内不再提示

采用复杂可编程逻辑器件与ISA总线相结合实现数据采集系统设计

电子设计 来源:郭婷 作者:电子设计 2018-12-30 09:33 次阅读

数据采集是工业测量和控制系统中的重要部分。它是测控现场的模拟信号源与上位机之间的接口,其任务是采集现场连续变化的被测信号。系统应将所采集的模拟数据信号尽可能真实、不失真地显示给控制人员。

随着计算机技术和EDA技术的发展,由于复杂可编程逻辑器件(CPLD)具有高集成度、小体积、低成本、低功耗以及高稳定性等诸多优点而广泛使用到诸如传统工业控制等各个领域。基于ISA的接口电路,其布线要求远没有PCI或USB接口板高。由于它能够提供16位I/O操作,对I/O的直接读写可以完全不考虑复杂的驱动程序和应用程序,因而在ISA总线上开发接口电路目前仍是首先考虑的方法。因此,这里提出一种基于CPLD和ISA总线的数据采集系统设计。

1 系统硬件设计

数据采集系统的硬件电路主要包括:CPLD逻辑控制电路、8254定时器电路、A/D转换电路。该系统硬件设计框图如图1所示。

采用复杂可编程逻辑器件与ISA总线相结合实现数据采集系统设计

1.1 CPLD逻辑控制电路

该系统使用XC9572作为主控器件。XC9572是一款高性能可编程逻辑器件,内含4个36 v 18功能模块,具有l 600个可用系统门。ISA总线上的地址、控制指令和数据被送进CPLD,经处理后送到相应电路中。由A/D转换电路得到的数据也返回到CPLD进行处理,并经ISA总线送至计算机中。

图2为数据采集系统的逻辑控制电路,Ul是数据缓冲器74HC245,由lSA总线的读/写信号(IOR/IOW)和板卡选择信号(BSEL)决定数据的流向。比较器74LS688和XFl组成板卡选择信号发生电路。通过在XFl上的跳线可确定采集系统板的基地址。该系统基地址设置为280H。

采用复杂可编程逻辑器件与ISA总线相结合实现数据采集系统设计

ISA总线上的读写信号,经缓冲器的数据信号(LADO~LAD7),地址信号(A0~A3)均与XC29572相连,CPLD发送A/D转换器的片选信号(ADCS)、A/D时钟信号(ADCLK)以及通道选择信号(CHA0~CHA2)。

1.2 8254可编程定时器电路

8254可编程定时器内部具有3个独立的16位减法计数器,它可由程序设置成多种工作方式,有6种可选工作方式。计数器按照设置各工作方式寄存器中控制字工作,按十进制计数或二进制计数,最高计数速率可达10 MHz。

该数据采集系统需要由8254提供AD转换电路的时钟信号和片选信号,通过改变8254的控制字改变数据采集系统的转换频率。8254定时器的输入时钟由外部晶振提供。定时器和定时器的输出信号直接送入可编程逻辑器件XC9572,经处理后提A/D转换电路使用。上位机写入的控制字经ISA总线送至8254,同时XC9572给8254提供必要的控制信号,如:8254读/写信号、片选信号、地址信号等。

假设系统的外部时钟为2 MHz,如果需要8254的定时器0输出一个频率为l MHz,占空比为50%的时钟,则8254的定时器控制字可设置为:D7~D0=00110110,其中,D7D6=00,表示选择定时器;D5D4=11,表示先读/写低8位,后读/写高8位数据;D3D2Dl=011,表示工作方式3,方波发生器;D0=0,表示二进制计数。

1.3 A/D转换电路

A/D转换电路完成数据采集和转换,主要包括MD转换和模拟信号采样两部分电路。

8通道模拟采样开关ADG508用于采样模拟信号。由CPLD送来的通道选择信号(CH0~CH2)用于选择输入的通道号。被选通的通道采样得到的模拟信号送给ADS7816的IN+端,进行AD转换,如图3所示。

采用复杂可编程逻辑器件与ISA总线相结合实现数据采集系统设计

A/D转换电路采用TI公司的ADS7816,该器件是12位串行A/D转换器,采样频率高达200 kHz,转换所需时间短,转换精度高,输出形式为位串行,因此在对ADS7816进行读数据操作时需注意数据转换过程中的时序。

图4是ADS7816的数据转换时序。当ADS7816的片选端下降沿到来时,开始启动一次A/D转换,保持转换时钟输入和片选信号低电平,最初的1.5~2个时钟时间里,完成模拟信号的采样,这段时间ADS7816的输出呈高阻状态(HI-Z)。紧接着的1个时钟周期里,DOUT输出1个空位(NULL BIT)。随后,ADS7816在12个连续的时钟周期内把12位的A/D转换结果输出,其中先输出最高位(MSB),最后输出最低位(LSB)。如果12位数据送出后仍有转换时钟且ADS7816的片选仍保持低电平,那么转换器会从最低位起逐位重复输出之前转换的结果。当下一个片选信号的下降沿到来时,A/D转换器开始启动下一次A/D转换。

采用复杂可编程逻辑器件与ISA总线相结合实现数据采集系统设计

2 系统软件设计

系统软件设计包括基于VHDL的逻辑控制程序设计和基于C语言的上位机采集测试程序设计。

2.1 VHDL程序设计

系统设计硬件中,可编程逻辑器件完成的内容有:接收上位机的地址和数据,为模拟开关提供通道选择信号,为A/D转换电路提供时钟信号和片选信号,接收ADS7816转换的数据,向上位机传送转换结果。

从图4中可得到ADS7816在片选信号下降沿到来后的14.5~15个时钟周期里,完成一次转换并逐位输出12位转换结果。为了能够得到完整的正确的A/D转换结果,采用计数方式设置标志位FLG。在ADS7816的片选信号为低电平的前15个时钟周期中,即“计数器计数值≤14”时,FLG=l,表示A/D转换正在进行;当“计数器的计数值>14”,则FLG=0,表示A/D转换结束。当FLG=0时,程序可读取一次正确的A/D转换数据。

因为ADS7816的数据转换结果是串行输入到CPLD中,需在CPLD中将得到的数据进行串并转换后再通过ISA总线的8位数据线分2次送出。

系统进行数据转换前需先选择输入通道,确定采集哪一路信号。上位机输入的通道号经CPLD送至8路模拟采样开关。

2.2 数据采集测试程序设计

上位机的数据采集测试程序采用C语言设计。因为系统采用ISA接口,所以功能测试无需编写复杂的应用程序,只需在Win98操作系统里编写C语言的测试程序即可实现系统的数据采集功能。上位机的数据采集测试程序主要完成:采集系统的硬件初始化、通道选择、数据采集、数据处理和数据输出。其程序设计流程如图5所示。

采用复杂可编程逻辑器件与ISA总线相结合实现数据采集系统设计

3 仿真和实验结果

图6所示为写入XC9572的VHDL程序的仿真波形,主要是CPLD控制A/D转换的功能仿真。从仿真波形图中可以看出,当地址A为7时,写入通道号3,得到的输入通道选通信号为3,实现通过上位机选择输入通道功能。当ADCS的下降沿到来后开始启动A/D转换;ADCS下降沿起的第3个时钟对应的ADDATA为系统转换的第1个数据,直到这次转换完毕。由给定的ADDATA数据得知,串行输入的数据是767H(011l O110 0111B)。仿真结果中,地址为4时,数据的低8位结果为67H;地址为5时,数据的高8位结果为07H,仿真结果完全正确。

采用复杂可编程逻辑器件与ISA总线相结合实现数据采集系统设计

在Windows98下,使用基于C语言的数据采集测试程序,可得到如表l所示的测试数据。从所列数据看出,该数据采集系统采集数据正确,且精度高。

采用复杂可编程逻辑器件与ISA总线相结合实现数据采集系统设计

4 结论

基于CPLD的数据采集系统具有硬件线路简单、精度高、采集速度快的特点。ISA总线和CPLD结合的数据采集系统有其独特的优势。该数据采集系统可循环采样多路(8路)模拟信号采样。实际测试结果表明该设计方案可行,且具有很高的实用价值。

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

    关注

    32

    文章

    1245

    浏览量

    169000
  • 计算机
    +关注

    关注

    19

    文章

    7212

    浏览量

    87342
  • 数据采集
    +关注

    关注

    38

    文章

    5574

    浏览量

    113200
  • 定时器
    +关注

    关注

    23

    文章

    3220

    浏览量

    113881
收藏 人收藏

    评论

    相关推荐

    基于PCI 总线的高速数据采集系统的设计与实现

    采用可编程逻辑器件实现PCI 接口比较灵活, 可以利用的器件也比较多, 但由于PCI 总线协议的复杂
    发表于 09-22 08:51

    基于复杂可编程逻辑器件(CPLD)的120MHZ高速A/D采集卡的设计

    介绍了一种基于复杂可编程逻辑器件(CPLD)的120MHZ高速A/D采集卡的设计方法。给出了这种采集卡的硬件原理电路和主要的软件设计思路。采用
    发表于 03-05 12:52

    可编程逻辑器件

    完成乘法,实现3×4,只要通过写程序让3连续加4次就可以完成了。而可编程逻辑器件的两种主要类型是现场可编程门阵列(FPGA)和复杂可编程逻辑器件
    发表于 04-15 10:02

    如何采用可编程逻辑器件和A/D转换器组成高速数据采集卡?

    CLC5958的内部结构及基本特性CLC5958应用的注意事项有哪些采用可编程逻辑器件和A/D转换器组成的高速数据采集卡的设计方案
    发表于 04-15 06:50

    怎么采用可编程逻辑器件设计数字系统

    本文以乘法器的设计为例,来说明采用可编程逻辑器件设计数字系统的方法。
    发表于 04-29 06:22

    PLD可编程逻辑器件

    ,足以满足设计一般的数字系统的需要。目前常用EEPROM,CPLD,FPGA。 PLA,PAL,GAL是早期的可编程器件,已经淘汰。可编程逻辑器件PLD(Programmable Logic Dev...
    发表于 07-22 09:05

    可编程逻辑器件设计

    可编程逻辑器件设计 (264页,nlc格式)
    发表于 03-25 16:41 66次下载

    基于复杂可编程逻辑器件(CPLD)的120MHZ高速AD采集

    基于复杂可编程逻辑器件(CPLD)的120MHZ高速AD采集卡的设计:介绍了一种基于复杂可编程逻辑器件高速AD
    发表于 01-17 09:37 40次下载

    可编程逻辑器件基础及应用实验指导书

    可编程逻辑器件基础及应用实验指导书 《可编程逻辑器件基础及应用》是一门侧重掌握可编程逻辑器件的基本结构和原理的课程。重点是使学生掌握基于可编程
    发表于 03-24 14:22 29次下载

    基于单片机的复杂可编程逻辑器件快速配置方法

    基于单片机的复杂可编程逻辑器件快速配置方法 基于SRAM(静态随机存储器)的可重配置PLD(可编程逻辑器件)的出现,为系统设计者动态改变运行电路
    发表于 03-28 16:47 823次阅读
    基于单片机的<b class='flag-5'>复杂</b><b class='flag-5'>可编程逻辑器件</b>快速配置方法

    什么是PLD(可编程逻辑器件)

    什么是PLD(可编程逻辑器件) PLD是可编程逻辑器件(Programable Logic Device)的简称,FPGA是现场可编程门阵列(Field Programable Gate Array)
    发表于 06-20 10:32 2.4w次阅读
    什么是PLD(<b class='flag-5'>可编程逻辑器件</b>)

    EDA技术与应用(可编程逻辑器件)

    7.1 可编程逻辑器件的基本原理 7.2 可编程逻辑器件的设计技术 7.3 可编程逻辑器件编程与配置
    发表于 05-23 10:46 142次下载
    EDA技术与应用(<b class='flag-5'>可编程逻辑器件</b>)

    可编程逻辑器件(书皮)

    可编程逻辑器件(书皮)
    发表于 07-10 14:34 0次下载

    采用复杂可编程逻辑器件实现多路信号采集系统的设计

    系统以AD7892SQ和CPLD(复杂可编程逻辑器件)为核心设计了一个多路信号采集电路,包括模拟多路复用、集成放大、A/D转换,CPLD控制等。
    发表于 03-03 17:21 1439次阅读
    <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><b class='flag-5'>系统</b>的设计

    可编程逻辑器件EPLD是如何设计的

    可编程逻辑器件(Electrically Programmable Logic Device,EPLD)是指采用电信号的可擦可编程逻辑器件
    发表于 08-22 18:12 1266次阅读