基于FPGA的多通道串行A/D转换器的控制器设计

发布者:心若澄明最新更新时间:2009-11-04 来源: 周朝阳 许建平 徐国卿关键字:FPGA  控制器  设计  ADS7844 手机看文章 扫描二维码
随时随地手机看文章

       1 引言

  随着现代电子技术的应用和发展,越来越多的电子应用由模拟系统向数字系统转变,而A/D转换器为模拟系统和数字系统的界面,承担着模拟信号转变为数字信号的任务,在一些多路信号采集系统和实时数字信号处理系统中,A/D转换的多路扩展、高精度、低成本、实时性显得越来越重要。在一般信号采集系统中,由单片机或微控制器对高精度A/D转换器进行控制,通常采用软件模拟A/D转换器时序的方法。因此增加了CPU的负担,降低了CPU的工作效率,在多片A/D转换器多通道扩展应用中,降低了信号采集的实时性。

  现场可编程门阵列FPGA(Field ProgrammableGate Array)是20世纪80年代中期在PAL,GAL等逻辑器件的基础上发展起来的一种可编程逻辑器件,其特点是高集成度、高速和高可靠性,设计人员可以现场修改器件的逻辑功能。VHDL(VHSIC Hardvcare Description Language)是目前通用的硬件描述语言之一,可用来描述一个数字电路的输入、输出以及相互间的行为与功能。

  FPGA的高集成度和高速的特性,使之相对于单片机和微控制器,更适合用于对高速A/D器件的采样控制。本文设计一种基于FPGA的高速串行输入/输出A/D转换器的控制器,该控制器完成对ADS7844芯片的采样控制,提高了采样的实时性、减轻了主CPU的运行负担。

  2 ADS7844功能介绍

  ADS7844是Burr_Brown公司推出的一种高性能、宽电压、低功耗的12 b串行数模转换器。它有8个模拟输入端,可用软件编程为8通道单端输入A/D转换器或4通道差分输入A/D转换器,其转换率高达200 kHz,而线性误差和差分误差最大仅为±1 LSB。ADS7844在电源电压为2.7~5 V之间均能正常工作,最大工作电流为1 mA,进入低功耗状态后的耗电仅为3μA。ADS7844通过6线串行接口与CPU进行通信,接口简单方便。

  2.1 ADS7844的引脚功能

  CH0~CH7:模拟输入端,当器件被设置为单端输入时,这些引脚可分别与信号地COM构成8通道单端输入A/D转换器;当器件被设置为差分输入时,利用CH0-CH1,CH2-CH3,CH4-CH5,CH6-CH7可构成4通道差分输入A/D转换器;

  COM:信号地;

  Vref:参考电压输入端,最大值为电源电压;

  CS:片选端、低电平有效、该脚为高电平时,其他数字接口呈三态;

  Dclk:外部时钟输人端,在时钟作用下,CPU将控制字写入ADS7844,并将转换结果从中读出;

  Din:串行数据输入端,在片选有效时,控制字在Dclk上升沿被逐位锁入ADS7844;

  Dout:串行数据输出端,在片选有效时,转换结果在DcIk的下降沿开始被逐位从ADS7844移出;

  BUSY:“忙”信号输出端,在接收到控制字的第一位数据后变低,只有在转换结束且片选有效时,该脚才输出一个高脉冲;

  SHDN:电源关闭端、低电平有效。当SHDN为低电平时,ADS7844进入低功耗状态;

  Vcc,GND:分别为电源端和数字地。

  2.2 ADS7844的控制字及转换时序

  ADS7844的控制字如表1所述。

ADS7844的控制字

  ADS7844的控制字共有8位,其中S是起始位,控制字的起始位总为“1”。A2~A0是通道选择位,在单端输入时分别对应8个通道,而对于差分输入,000~011分别对应CH0-CH1,CH2-CH3,CH4-CH5,CH6-CH7,而100~111则分别对应CH0-CH1,CH1-CH0,CH3-CH2,CH5-CH4,CH7-CH6。Bit3没有定义。SGL/DIF是模式控制位,该位为“1”时是单端输入模式,为“0”时是差分输入模式。PD1和PD0是电源关闭模式控制位,若为“00”,则表示ADS7844在不进行数据转换时自动进入电源关闭模式,若为“11”,芯片则始终处于电源开启模式。

  ADS7844有多种转换时序,基本时序如图1所示。

基本时序

  从图1中可见,一个转换周期需要24个时钟周期,其中8个用于输入控制字,16个用于读取转换结果。控制字的所有位在时钟上升沿被锁入芯片,转换结果在时钟的下降沿被逐位移出。所有移人和移出的数据都是高位在前、低位在后。需要说明的是,ADS7844是12位A/D转换器,其转换结果只有12位,故在移出12位结果后,还需送入4个时钟来完成整个转换过程,这4个多余的时钟移出的数据为“0”,使用时不应作为转换结果处理。[page]

  3 ADS7844控制器的设计

  用FPGA设计的采样控制器AD_CONTROLLER与ADS7844的接口电路如图2所示,基本时序如上所述。

用FPGA设计的采样控制器AD

       AD_CONTROLLER的输入时钟取12 MHz,经内部4分频后输出至ADS7844的CLK引脚。cs_all为来自CPU的启动信号,当其为低时AD_CONTROLLER开始工作。addr[3..0]为对应的ADS7844的通道地址,data[15..0]为某地址所对应通道的A/D转换结果,当某一通道转换结束,oe信号由低电平变为高电平并持续1个周期。

  AD_CONTROLLER主要由分频模块(fq),A/D转换周期形成模块(fq_cs);A/D转换器片选信号模块(cs_pulse);通道地址及控制字形成模块(addr_1);A/D转换数据输出模块(from_ad)和控制字移位输出模块(to_ad)组成,其结构如图3所示。

AD

  取FPGA工作频率10 MHz,经分频器4分频得2.5 MHz作为A/D转换器的时钟。分频器通常用计数器实现,各VHDL教材上都已详细讲述,这里不再赘述。信号cs每隔28个clk1时钟周期发出1个clk1周期的高电平脉冲并转换1次模拟输入通道,28个cIk1周期中,A/D转换器片选cs_ad信号占用4个周期,控制字的串行输出(di)占用8个周期,ADS7844芯片由Din引脚接收到控制字后,在下一个周期的下降沿开始将A/D转换后的数据串行输出至Dout引脚,由from_ad模块进行串/并转换并输出(data[15..0]),此串并转换需16个周期。信号stld的下降沿将由状态机产生的控制字(control_word[7..0])锁存入to_ad模块内部的并/串移位寄存器(74165),经过8个周期后控制字由di引脚输入ADS7844芯片。cs脉冲的产生由计数器实现,这里不做详细介绍。cs_ad片选信号通过cs_ad模块将cs信号展宽2个周期而得到,其电路结构如下:

cs

  电路由1个计数器(cs_wide)、前沿D触发器(inst6)和后沿D触发器(inst3)组成。当cs信号上升沿到时,inst6触发,cs_ad置高电平。2个周期后,inst3由下降沿触发输出高电平,反相后将inst6和计数器cs_wide清零,同时cs_ad输出低电平。由此看出,cs_ad的信号正是cs信号经过2个周期展宽后得到。

  通道地址及控制字形成模块(addr_1)可以实现所需的各种输入模式,并产生通道地址和控制字,以单端输入模式为例,VHDL代码如下:

程序

程序

  这里用双进程的有限状态机(FSM)来设计通道地址产生器。当addr<=“0000”时表示没有通道被选择,ADS7844没有工作;当addr<=“0000”时表示通道1被选择,依次类推。[page]

  4 计算机仿真分析

  用Quartus Ⅱ 6.0进行分析综合、布局,共占用Altera cyclone FPGA 59个LE(logic elements),波形仿真如图5所示。

波形仿真

  图5中elk的周期为100 ns,clk1为系统时钟4分频后的工作时钟,当cs_all为低电平时,AD_CONTROLLER开始工作。由状态机产生的控制字(10000100)在stld的下降沿被锁存入移位寄存器,当cs_ad由高变低时,控制字被逐位移出至di端口。在此,假设当ADS7844接收到控制字并由ad_do端口逐位移出1通道转换后的数据1000000000010000,经过16个周期后oe由低变高,oe的下降沿可以将移入寄存器的数据锁存。由图5可见,仿真波形与ADS78414控制波形一致,达到了设计的目的。

  5 结 语

  本试验用于混合动力汽车电池管理系统电池电压、电流信息采集部分。电池管理系统通常采用双单片机的结构,一个单片机完成电池信息采集功能,另外一个单片机完成电池SoC(State of Charge)计算及人机交互功能。这种系统结构复杂,可靠性降低。为解决这一问题,该A/D控制器被封装成基于Avalon总线的自定义IP核,应用于Altera公司FPGA所支持的NIOS Ⅱ嵌入式系统中,NIOS Ⅱ软核CPU仅在A/D控制器引起的中断服务程序中读取采集到的数据,这样大大提高了采集速度和CPU的效率,使得有更多的CPU资源应用于SoC计算和人机交互。这种基于SoPC(Systemon Programmable Chip)的电池管理系统结构紧凑、功能齐全、可靠性大大提高。

  FPGA用来设计控制电路有很多优点。FPGA不仅可进行任意次编程,而且用户可以借助开发工具快速编程、编译、优化、仿真直到最后芯片制作。高集成性使得用户可以利用硬件描述语言及开发工具在单片FPGA芯片上实现各种复杂的逻辑电路和片上系统,提高了系统性能、减小了电路面积、降低了成本。高速性有效地解决模拟控制的精度与数字控制的速度之间的矛盾。随着FPGA性能的提高和成本的降低,以FPGA为基础的数字电路和SoPC(Systam on ProgrammableChip)代表了嵌入式系统的发展方向,FPGA将应用得越来越广泛。

关键字:FPGA  控制器  设计  ADS7844 引用地址:基于FPGA的多通道串行A/D转换器的控制器设计

上一篇:Altera发布Quartus II软件9.1 缩短编译时间
下一篇:基于FPGA的多通道数据采集系统设计

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

基于单片机的便携式多功能实时生理参数监测仪设计
前言   随着单片机功能集成化的发展,其应用领域逐渐由传统的、单一的控制处理扩展到控制处理、数据处理以及数字信号处理等领域。凌阳16位单片机就是适应这种发展而设计的,并以其出色的语音处理能力成为越来越多单片机用户选择的对象。   系统硬件设计   系统以单片机为核心,配置了各种集成传感器,体积小巧。由于采用了微型封装的芯片及元器件,使连线变短,减少了通信接口,从而提高了整机工作的可靠性。系统硬件结构如图1所示。   SPCE061A单片机   SPCE061A 是凌阳科技公司?’nSPTM (Microcontroller And Signal Processor) 系列产品中的16位微控制器芯片, 内置32k闪存, 其
[工业控制]
基于单片机的便携式多功能实时生理参数监测仪<font color='red'>设计</font>
NEC使用Xtensa处理器进行新基带SOC设计
Tensilica 日前宣布,授权日本东京 NEC 公司 Xtensa® LX2 可定制处理器,用于新一代移动电话基带 SOC 设计。 NEC 将使用多款 Xtensa 处理器配置进行基带 SOC 研发。 Tensilica 公司 CEO Jack Guedj 表示:“身为日本领先手机厂商的 NEC 选择了 Tensilica ,我们深感荣幸。 Xtensa LX2 处理器将帮助 NEC 设计团队更快完成创新研发、减少设计风险。 Tensilica 公司 Xtensa 系列是基带 DSP 设计的最好选择,因其通过简单优化便能实现无与伦比的高性能及低功耗。” 可定制处理器为高速基带 DSP 设计的理想选择
[手机便携]
TMS320VC33控制的地震记录仪设计
作者Email: zcyhero@yeah.net 摘要:本文详细介绍TMS320VC33控制下的地震记录仪的整体设计过程。本系统是采用TMS320VC33为主控芯片采集由16位模数转换芯片AD976转换后的16位数字量;经TMS320VC33处理后的16位数字量完成与上位计算机通信。主要应用过采样技术、滤波技术、数字滤波技术、DSP技术、数字信号处理技术等现代电路设计技术,使本系统成为数据采集的精典产品。 关键词:DSP(数字信号处理)、过采样、滤波、模数转换(A/D) 引言 本次设计主要采用TI公司生产的32位浮点数字信号处理芯片TMS320VC33作为系统的主控芯片;采用Analog公司生产的16位模数转
[应用]
Diodes脱机恒定电压与PFC控制器为连网LED照明提供低待机功率
Diodes 公司今日推出 AL1788,该公司为领先业界的高质量应用特定标准产品全球制造商与供货商,产品涵盖广泛领域,包括独立、逻辑、模拟及混合讯号半导体市场。这款高效能脱机恒定电压与 PFC 控制器结合具有低总谐波失真 (THD) 的高功率因子校正 (PFC) 与低待机功率,非常适合用于商用应用程序与连网照明需求。 AL1788 以同时支持返驰与降压拓扑的平台为基础,并且专为一次侧调节 (PSR) 而设计,无需来自二次侧的光学耦合反馈。因此它可提供优异的效能,例如最高达 91% 的效率、完整线路与负载调节范围 2% 的优良线路与负载调节,以及小于 0.2 瓦的低待机功率。 AL1788 凭借 0.9 的 PFC 以及较
[半导体设计/制造]
简易通用型PCI接口的VHDL-CPLD设计
  用CPLD设计所构成的CPI接口系统具有简洁、可靠等优点,是一种行之有效的设计途径。很多技术杂志和网站上,都有不少用CPLD设计PCI常规传输系统的文章。但用这些方法在MzxPlusII、Fundition等环境下进行模拟仿真时,其产生的时序往往与PCI规范有很大出入。虽然 Altera 等公司推出PCI核可以直接使用,但这样的内核占用CPLD资源较多,且能适配的器件种类少,同时价格也高,在实际设计应用中有很大的局限性。因此,使用通用型CPLD器件设计简易型PCI接口有很大的现实意义。在Compact接口的CPLD设计中,笔者根据PCI总线传输时序来进行状态机构造,并使用 VHDL语言进行功能模拟和定时分析,从而达到了预期目的
[嵌入式]
一种基于PLC和计算机的汽车同步器测试系统的设计
摘要:同步器是汽车变速箱的核心部件,其性能对汽车变速箱以及汽车性能的提高有着重要意义。为了评价汽车变速器中同步器的性能与寿命,相应设计了基于PLC和计算机共同控制的测试系统;计算机主要完成人机界面交互任务以及相关数据的分析与存储,PLC根据计算机命令实现数据实时采集和对整个系统的实时控制;测试系统能够进行三类长时间、高重复性的主要测试,运行稳定可靠。本文主要介绍了测试系统的组成结构、系统设计、PLC在测试系统中的应用和控制程序设计。    在汽车的传动系统中,若采用机械式手动变速器,一般都配有同步器,其主要功能是:使接合套与待接合齿圈两者之间能迅速同步,阻止在同步之前齿轮进行啮合,防止产生接合齿圈之间的冲击,缩短换档时间,
[汽车电子]
一种基于PLC和计算机的汽车同步器测试系统的<font color='red'>设计</font>
基于ARM7智能拆焊、回流焊台控制系统的设计
0 引言 随着电子工业的发展,电子产品越来越多,电路板上元器件的密度越来越大,并且多为贴片式元件。传统的手工焊接,比较适合直插式元件,对于贴片式焊接效果就差强人意,并且效率很低。同样,传统的的拆芯片方式,一般都用热风枪吹,这样也能够达到目的,但周围的小芯片容易被吹移位。基于以上的原因,有必要改变传统的手工焊接方式和用热风枪拆芯片的方式,采用计算机控制红外线加热的自动焊接。 近几年国内逐渐开始使用拆焊台和回流焊,但普遍存在以下问题:(1)控制芯片采用简单的单片机,以“裸奔”为主没嵌操作系统,从而导致系统过于简单或分配不合理。(2)传感器一般都采用热电偶,但不加补偿电路,而且很少在程序中采用算法,这样加热器件往往存在惯性和滞后
[单片机]
基于ARM7智能拆焊、回流焊台控制系统的<font color='red'>设计</font>
怎样设计一款基于STM32F407板的智能药箱
针对老年人因记忆力衰退而容易忘记吃药,以及因服用药物种类繁多导致药物容易混淆等问题,设计了一款适合老年人家用的智能药箱。药箱的机械结构按照空间位置分为3个部分——上层配药部分、中间传动部分、下层取药部分,分别实现配药、送药和取药功能。药箱内部一次可以放入6种药品。药箱的控制系统采用STM32F407核心板,使用C语言进行编程。利用各部分的协调运行,药箱在功能上实现了定时运行、自动配药、按需配药和定时提醒,且操作简单、运行高效,具有较高的实用性。 引言 目前,老年人的健康状况不容乐观,早在2015年,我国失能、半失能老年人口就达到了约4063万人,占老年人口的18.3%,老年人群慢性病患病率较高,约3/4的人患有一种及以上慢性病
[单片机]
怎样<font color='red'>设计</font>一款基于STM32F407板的智能药箱
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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