基于CPLD的数据采集与显示接口电路仿真设计

发布者:脑力驿站最新更新时间:2010-03-22 来源: 现代电子技术 关键字:可编程逻辑器件  模数转换  二-十进制码显示  接口电路 手机看文章 扫描二维码
随时随地手机看文章

  0 引 言

  CPLD称为复杂可编程逻辑设计芯片,它是大规模可编程器件,具有高集成度、高可靠性、高速度的特点。CPLD是利用EDA技术进行电子系统设计的载体。硬件描述语言是EDA技术进行电子系统设计的主要表达手段,VHDL语言是常用的硬件描述语言之一;软件开发工具是利用EDA技术进行电子系统设计的智能化的自动化设计工具,常用开发工具有QuartusII,Ispexpert,Foundation等。CPLD以高速、高可靠性、串并行工作方式等特点在电子设计中广泛应用。它打破了软硬件之间的界限,加速了产品的开发过程。同样单片机具有性价比高、功能灵活、良好的数据处理能力等特点。CPLD芯片与单片机结合在高性能仪器仪表中应用广泛。

  1 电路的仿真设计

  1.1 硬件电路功能

  用一片MCS-51芯片、一片CPLD/FPGA芯片、模/数转换器ADC0809和数/模转换器DAC0832构成一个数据采集系统,并用CPLD/FPGA实现数据采样、D/A转换输出、有关数据显示的控制,单片机完成对A/D转换数据运算。电路如图1所示。

  系统功能如下:系统按一定速率采集输入电压Ui,经AD0809转换为8位数字量data;输入数据与通过CPLD/FPGA采样后输入单片机进行相关运算,最后通过CPLD/FPGA送至DAC0832转换为△U;数据采集和处理均在数据采集系统控制器的管理下有序进行。工作速率由时钟信号CLK的速率决定。

  1.2 单片机与CPLD/FPGA接口设计

  单片机采用以总线方式与可编程芯片进行数据与控制信息通信,此方式有许多优点:

  (1)速度快。其通信工作时序是纯硬件行为,对于MCS-51单片机只需一条单字节指令就能完成所需的读/写时序如MOV@DPTR A和MOVA@DPTR

  (2)节省CPLD芯片的I/O口线。如果将图中的译码器设置足够的译码输出以及安排足够的锁存器就能仅通过19根I/O口线在FPGA/CPLD与单片机之间进行各种类型的数据与控制信息交换。

  (3)相对于非总线方式单片机的编程简捷控制可靠。

  (4)在FPGA/CPLD中通过逻辑切换单片机易于与SRAM或ROM接口。这种方式首先由FPGA/CPLD与接口的高速A/D等器件进行高速数据采样并将数据暂存于SRAM中。采样结束后通过切换使单片机与SRAM以总线方式进行数据通信以便发挥单片机强大的数据处理能力。

  系统工作过程如下:ALE为地址锁存使能信号,当下降沿来时,将P0口将低8位地址送入可编程芯片CPLD/FPGA中的地址锁存器,然后在P2口和P0口形成的16位地址及WR信号共同作用下,将P0口的数据送入可编程芯片。单片机通过两条指令MOVXDPTR@ ADDR和MOVX @DPTR A将数据写入芯片。在P2口和P0口形成的16位地址及RD信号共同作用下,将AD0809转换后数据data送入单片机的P0口。单片机通过两条指令 MOVX DPTR @ADDR和MOVXA@ DPTR将数据读入P0口。设置A/D转换器件片选信号ad_e和DA转换器件片选信号da_e,设置数据输入/输出口data[7..0]。单片机与FPGA通信接口程序(名为MCS51)通过编译后,生成的逻辑符号如图2所示。

  CPLD使用EPM7128时钟为16 MHz有源晶振,首先使用CLK对复位信号采样,8051的复位信号要求是高电平维持2个机器周期,2个机器周期就是2×12=24个振荡周期,对复位信号连续采样10次,若是一直为高电平,就产生片内复位使能信号。其他片内寄存器以这个复位信号做同步复位,对WR.RD,ALE都做了采样,避免毛刺干扰。

  1.3 AD0809与CPLD/FPGA状态机接口设计

  1.3.1 AD0809状态机功能设计

  状态机的最简结构一般由两个进程构成,即主控时序进程和主控组合进程。一个进程描述时序逻辑输出,另一个进程描述组合逻辑包括进程问状态值的传递逻辑以及状态转换值的输出。将AD0809与CPLD/FPGA的接口设计系统划分为两部分,即数据单元和控制单元。数据单元包括保存运算数据和运算结果的数据寄存器,也包括完成数据运算的组合逻辑电路。控制单元用来产生信号序列,以决定何时进行何种数据运算,控制单元要从数据单元得到条件信号,以决定继续进行那些数据运算。数据单元要产生输出信号、数据运算状态等有用信号。数据单元和控制单元中,有两个非常重要的信号,即复位信号和时钟信号。复位信号保证了系统初始状态的确定性,时钟信号则是时序系统工作的必要条件。状态机通常在复位信号到来的时候恢复到初始状态,每个时钟到来的时候内部状态发生变化。从AD0809的初始状态开始,也就是状态机复位以后开始的状态。在建立每个状态时都写出关于这个状态的文字功能描述,AD0809状态机功能描述与相应引脚的取值如下:

  1. 3.2 ADC0809状态机程序设计

  ADC0809为单极性输入,8位转换精度逐次逼进式A/D转换器。其采样速度为每次转换约100μs。在转换开始前由地址锁存允许信号ALE将3位地址锁入锁存器中以确定转换信号通道。EOC为转换结束状态信号,由低电平转为高电平时指示转换结束,此时可读人转换好的8位数据。EOC在低电平时指示正在进行转换。START为转换启动信号,上升沿启动。OE为数据输出允许高电平有效。CLK为ADC转换时钟输入端口500 kHz左右。为了达到A/D器件的最高转换速度,A/D转换控制器必须包含监测EOC信号的逻辑,一旦EOC从低电平变为高电平即可将OE置为高电平,然后传送或显示已转换好的数据[DO..D7]。状态机由三个进程组成ADC,AD_STATE和DATA_LOCK。ADC是此状态机的主控组合逻辑进程,确定状态的转换方式和反馈控制信号的输出工作过程中首先监测系统复位信号RST,当其为高电平时使此进程复位至初始态ST0。启动A/D转换信号START在状态ST3搜索转换状态信号EOC由0变1时即在状态ST4开启输出。使能信号OE在下一状态使LOCK产生一个上跳沿从而在此时启动进程DATA_LOCK将由0809转换好的8位数据锁进锁存器ADC_DATA。根据时序电路图通过状态机设计程序完成与CPLD/FPGA芯片的连接。图3为状态机程序仿真结果。

  1.4 BCD码转换与显示电路设计

  当ADC0809的基准电压(Vref)为5.12V时,最小电压准位是5.12/28=O.2V。分析模拟输入电压与输出电压的对应关系可知,当ADC0809的D[7..0]收到的数据信号为10000110(即86H)时,则高4位1000为2.56V,而低4位0110为O.12V,所以最后的电压输出结果是2.68V。为了方便后续的电压数据显示,在此将输出电压表示成12位的BCD码形式。将高4位数据D(7..4)转换为对应的高12位BCD码H(11..0);将低4位数据D(3..0)转换为对应的低12位BCD码L(11..O)。在程序中首先用VHDL语言描述一个新的进程Process(regl),然后采用case…when …语句,生成并行结构的电路。

  将生成的高12位BCD码与低12位的BCD码相加,得到12位的BCD码,该结果即为所求的BCD码结果。如上述的2.56V的BCD码是0010 0101 0110,O.12V的BCD码是0000 0001 00lO。所以相加的结果是0010 0110 1000,即为2.68V。因此在电路中必须设计一个12位的BCD码加法程序,实现由8位二进制转换为12位BCD码硬件电路。在程序设计中应当注意的是BCD码相加时,由最低4位加起,且每4位相加的结果超过1001时,应加0110调整。该段程序的描述是通过一个进程Process(HB,LB,CEN)来实现。其中HB表示生成的高12位BCD码,LB表示生成的低12位BCD码.CEN表示系统提供的时钟信号。在时钟上升沿时刻进行BCD码相加,并判断结果是否超过1001,判断程序采用if…then…语句,实现条件判断电路。按照图4完成BCD码程序转换设计。将以上两段程序进行组合,最终获得由VHDL语言描述的BCD码转换程序。

  1.5 A/D转换与BCD码合成系统电路

  将A/D转换电路与BCD码转换电路组成统一系统,通过硬件编程语言VHDL中的进程语句将编制成功的A/D转换电路描述语句和BCD码转换电路描述语句组合成一个整体程序,通过QuartusⅡ软件生成系统图,如图5所示。

  A/D转换结果由3位十进制数表示,每位十进制数由4位BCD码表示,总共有12位BCD码输出。将电路输出BCDOUT(11..0)分成BCDOUT(11..8),BCDOUT(7..4)和BCDOUT(3..0)三部分,通过三个进程Process()分别用VHDL语言编程描述LED显示驱动。对整个系统进行波形仿真,得到仿真波形如图6所示,最后在GW48-CK实训开发系统完成功能验证。

  2 结 语

  将CPLD和微机控制技术相结合,在智能仪表设计和控制系统设计领域提高了系统设计的灵活性,缩短了产品开发周期,同时使系统易于升级和扩展。因为采用了CPLD(复杂可编程逻辑器件),极大提高了系统I/O口利用率,缩小了印刷电路板面积,提高了系统集成度,在多输入/多输出的数据采集和控制系统领域有十分广阔应用前景。

关键字:可编程逻辑器件  模数转换  二-十进制码显示  接口电路 引用地址:基于CPLD的数据采集与显示接口电路仿真设计

上一篇:FTDI在IIC2009深圳站上展示USB产品
下一篇:基于单片机SPI器件的串口控制

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

基于C8051F的模数转换及直流电机驱动系统中的应用
1 引言 随着微型计算机的迅速发展,单片机的性能也大大增强。本文介绍Silicon Labs公司的8位单片机C8051F001系列,该系列器件内部集成了A/D转换器,这给测量模拟信号带来了极大方便。利用单片机自身的PWM口可实现对电机数字系统的控制,提高了控制精度,大大简化了电路,符合小型化和低功耗的设计要求。 2 ADC的内部结构和特点 C8051F001/2/5/6/7系列自带一个9通道的可配置模拟开关(AMUX),一个可编程增益放大器(PGA)和一个100 kS/s,12位分辨率的逐次逼近型ADC,ADC还集成了跟踪保持电路和可编程窗口检测器。AMUX、PGA、模数转换方式和窗口检测器都可通过软件对特殊功能寄存器的设置
[单片机]
CPLD设计的驱动数码显示电路案例
显示原理: 八段数码显示管如图1.1 所示,八段数码管每一段为一发光二极管,共有a~g 以及小数点dp 八个发光二极管。将八段数码管中的每个二极管的阴极并联在一起,组成公共阴极端。这样把共阴极管脚接地,此时哪个管脚输入高电平,对应发光二极管就被点亮。 图 1.1 八段数码显示管 CL5461AS 数码管管脚图如图1.2 所示,它将四个数码显示管的a~g 及小数点dp 管脚并联在一起,作为数码管数据输入端;分别引出各个数码管的阴极A1~A4。 图1.2 CL5461AS 数码管管脚图 只要在A1~A4 管脚上轮流加低电平其频率大于40Hz,可实现四个数码管同时被点亮的视觉效果。在点亮不同数码管的同时输入不同的数据,即可
[模拟电子]
基于MAX197的高精度数据采集系统
常见的八位模数转换芯片(如ADC0809【3】等)设计的系统比较简单而且成本较低,但有时八位的精度是不够的,这时我们就不得不选用更高精度的模数转换芯片,其中MAX197就是一款性价比很好的12位精度模数转换芯片。MAX197芯片是美国Maxim公司的快速模数转换芯片,转换时间最小仅为6 μ s,相对于ADC0809的100 μ s要短得多。它的输入信号带宽可达5 MHz,有12位并行的三态数据接口。另外MAX197片内包含高精度的参考电压源和时钟电路,因此它只需要很简单的外部电路即可完成模数转换功能,应用非常方便。 1 MAX1 97芯片的特点及性能: 1.1 MAX197的主要优点: 1)仅使用单5 V电源供电;2)12位分
[电源管理]
基于MAX197的高精度数据采集系统
手机接口电路板组件测试计算机视觉系统
本文介绍基于图像处理软件包IMAQ Vision和高性能的图像采集卡,并选配合适的光源、摄像机、镜头和XY平移台,用LabVIEW开发的,能满足实际生产需要的工业视觉检测系统,它能够实现对手机接口电路板组件中多个连接器的装配位置和零件尺寸等参数的快速、准确的自动检测,同时实现检测数据的记录和统计。 由于手机的设计越来越精巧,手机接口电路板组件生产对装配精度的标准也不断提高。如果用人工方式检验装配质量就需要多台价格不菲的测量投影仪,而且检测速度仍然无法满足较大规模生产的要求。利用NI公司先进的计算机视觉技术开发的视觉检测系统能对接口电路板组件中多个连结器的相对位置及其内部零件尺寸等参数进行自动检测,并具有测量准确、快速、扩展性强和性
[测试测量]
X9628与PIC16C72的接口电路
690)this.width=690;if(this.height>690)this.height=690;" border=0> X9628与Plcl6cxx单片机的接口电路及程序 图3为PIC16C72与X9628的接口电路,与此对应,给出了X9268所有命令的程序清单。在MAIN主函数中,先将40写入E2POT#2的WCR(即滑动端位置为#40),然后将滑动端抽头减少15个脉冲的位置,即此时WCR的值减少到25(即滑动端位置为#25)。随后,其它命令也都是相同的过程。
[模拟电子]
X9628与PIC16C72的<font color='red'>接口电路</font>图
运用于单相智能电表的IC卡接口电路设计
  IC卡接口 :电路采用的是Atmel公司的存储IC卡AT24C01,用于存储由售电管理系统写入的密码、卡号、电度数等,是电管部门与用户连接的桥梁。为了提高IC卡操作的可靠性,必须有卡上下电控电路、卡插入检测电路、卡短路检测电路等辅助电路,结合软件可以大大提高其读写的准确性和可靠性。IC卡接口电路设计如图所示:   在图中,R12、D5、Q6组成卡上下电电路。当AT89C52的P16=0时,Q6导通,IC卡座之VCC得电;当AT89C52的P16=1时,Q6截止,IC卡座之VCC失电。IC卡的VCC 同时经D6送至CPU的P15,检测有无卡电源短路现象,以防人为破坏。K1、K2为IC卡座的一对常闭触点,当有卡插入时,K1、K2
[电源管理]
运用于单相智能电表的IC卡<font color='red'>接口电路</font>设计
基于AVR和CPLD的高速数据采集系统
输入系统的信息大多数是模拟量,为使计算机能够处理这些模拟量,必须经由数据采集系统将模拟量转化为数字量。CPLD是在PAL、GAL等 逻辑器件 的基础上发展起来的,CPLD的规模比较大,适合于时序、组合等 逻辑电路 的应用场合,它的高集成度能力大大缩小 电路板 的尺寸,降低了系统的成本,而且能够提高系统的性能和可靠性。 对于一个成型的探测系统而言,通常都是有采集储存部分的,无论是电信号、光信号、声音信号、磁信号等在被 探测器 接收到后大部分都需要转化为数字信号传给 处理器 才能完成分析、判断的过程。对于需要高速采集并存储的系统,常常需要购买昂贵的高速 采集卡 等设备,在基于CPLD、AVR等控制高速ADC、储存等技术的基础上,本
[嵌入式]
基于AVR和<font color='red'>CPLD</font>的高速数据采集系统
基于CPLD的VXI总线接口的研制
    摘要: 文章以VXI总线开关矩阵模块为例,介绍了基于可编程逻辑器件的VXIbus寄存器基接口的开发过程。给出了选用ALTERA公司的可编程逻辑器件FLEX 10K10在MAXPLUSII环境下,结合VXIbus时序对接口逻辑电路进行波形仿真和时序分析的方法。     关键词: VXI总线 接口 CPLD FLEX 10K 1 引言 VXI总线测试系统是一种世界范围内完全开放的、适用于多个生产厂家的模块化仪器总线系统。随着仪器功能逐渐向复杂化发展,以数字电路为主的接口电路的设计也在追求更高的集成度,这时如果采用可编程逻辑器件(PLD)技术代替传统的中、小规模集成电路来实现电路设计,不仅可以节省
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

更多精选电路图
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved