历史上的今天
返回首页

历史上的今天

今天是:2025年03月05日(星期三)

正在发生

2018年03月05日 | 高精度ADVF32与51系列单片机接口介绍

2018-03-05 来源:eefocus

  由于当前12位以上的A/D转换器价格昂贵,人们正在寻找新的途径来取代它,而V/F变换器便是一种较好的选择。由于V/F变换器具有高精度、高线性度的特点,如美国模拟器件公司的ADVFC32(国产型号为5GVFC32),在满度频率为10 kHz时的非线性误差仅为0.005 %FSR,而AD650可达0.002%FSR,而且外电路简单。因此用V/F变换器可以制成精度高,价格低廉的高性能A/D转换器,其分辨率可达16位以上。在速度要求不太高的场合是很适用的,如用于称重、压力等各种传感器信号的高精度数据测量系统中。可以预见,以V/F变换器制成的高精度A/D转换电路在不久的将来将成为微计算机的一种具有竞争性的接口电路。
  
  用V/F变换器作A/D转换时,通常由一些硬件电路如振荡器、二分频器、计数器和门电路等组成,而由计数器计得的计数值,即A/D转换结果,再通过接口电路送入微计算机进行处理,较为复杂和不便;或者采用F/BCD变换电路,将V/F变换器输出的频率信号变为BCD码,再通过接口电路送入微计算机,也较为复杂,而且还要对BCD码进行变换。这些方法成本都较高。
  
  现介绍一种以单片机直接与V/F变换器接口进行A/D转换的方法,无需额外的硬件电路,完全利用单片机内部的硬件资源,简单方便,成本最低,大大地提高了V/F变换器作为A/D转换电路的可行性。
  
  当前,单片机特别是INTEL公司的51系列单片机已在智能仪器仪表和过程控制等方面得到广泛应用,已取代280,因此A/D转换电路与单片机的接口方法也是人们所关注的。本文主要介绍V/F变换器ADVFC32作高分辨率A/D转换时与51系列单片机(如8031等)接口的硬件和软件。

  一、硬件接口电路
  
  ADVFC32与51系列单片机的硬件接口电路如图1所示。图中是输入电压信号为正时的情况。在输入信号为负时,只要把电阻R1、R3接地,从第14脚直接输入即可。AD650的电路与ADVFC32的外电路相似。关于这两种芯片的引脚排列及内部结构等请参考有关手册。

ADVFC32与51系列单片机的硬件接口电路
  
  由图1可见,接口电路非常简单,只要把V/F变换器输出的频率信号直接送到单片机8031的定时器1的计数输入端T即可。其设计思想为:从传感器来的mV级电压信号经运算放大器放大到0~10 V的电压后,加到ADVFC32的输入端,从频率输出端,OUT输出的频率信号加到单片机8031定时器1的计数输入端Tl上。在单片机内部由定时器作计数器时,由定时器1对输入脉冲计数。定时器O的定时时间由要求的A/D转换分辨率设定。因为定时器O在工作方式1时为16位定时器,所以最长的定时时间为:


  
  式中:foc为单片机晶体振荡器的振荡频率,如foc=12 MHz,则


  
  如要求的定时时间超过这一数值,定时器产生溢出中断,可用单片机内部RAM的存储单元作软件计数,则可延长定时时间。
  
  8031的定时器1作计数器使用时,可计数的外部脉冲最高频率为单片机晶体振荡器振荡频率的1/24,即

  等于ADVFC32的最高允许工作频率,故单片机8031的内部定时器TO和Tl满足对定时和计数的要求。
  
  另外,单片机的定时器在作计数器使用时,要求外部输入脉冲的宽度至少为一个机器周期的时间。8031的一个机器周期等于12个振荡周期,即V/F变换器输出信号的脉冲宽度应


  
  而ADVFC32的输出脉冲宽度为(0. 1~0. 15/ FMax)μs,其中fmax为满度时输出频率。如fmax=100 kHz,则输出脉冲宽度为:


  
  满足对脉冲宽度的要求。如fmax再提高,则脉冲宽度变小,需将脉冲展宽,如接一个555定时器等,然后再接到单片机上。
  
  一次A/D转换所须计数的脉冲数和定时器的定时时间是由所要求的分辨率决定的。
  
  设分辨率为12位,则脉冲数=212 =4 096个。ADVFC32的最高工作频率fmax有三种:
  
  10 kHz、100 kHz和500 kHz。现取fmax=100 kHz,则其脉冲周期


  
  类似地,对于其他分辨率,由计算得出:
  
  ●分辨率为13位,脉冲数=8 192,定时时间=81. 92 ms;
  
  ●分辨率为14位,脉冲数=16 384,定时时间=163. 84 ms;
  
  ●分辨率为15位,脉冲数=32 768,定时时间=327. 68 ms;
  
  ●分辨率为16位,脉冲数=65 536,定时时间=655. 36 ms;
  
  ●分辨率为16.6位,脉冲数=100 000,定时时间=1s。
  
  所以在fmax=100 kHz时,如定时时间为1s,则其A/D转换的分辨率超过16位。但实际上对分辨率的选取应按实际的需要而定,过高的分辨率将使A/D转换的速度下降。
  
  为便于计算,现以最大脉冲数=20 000为例进行设计,则定时时间=200 ms,根据式2X-20 000,可求出分辨率为


  
  即分辨率大于14位,满足一般对高分辨率的要求。定时时间为200 ms,可转换4~5次每秒,相当于双积分式A/D转换器的转换时间,亦不算太长。
  
  定时器O的初值计算如下:
  
  设定时器0工作在方式1,为16位定时器。
  
  ①机器周期=12Toc=12×l/fc=12×1/(12×106)=1 μs
  
  ②16位定时器的最长定时时间为216×机器周期-65 536×1μS= 65. 536 ms
  
  现取整数值,设定时器0的定时时间=50 ms,则定时器O溢出4次即为200 ms,在定时器0溢出中断程序中,由软件计数4次即可。
  
  ③定时器O在定时时是对机器周期进行计数,定时50 ms的机器周期数=50 ms/1μs=5 000。
  
  ④定时器0可计的最大机器周期数= 216=65  536,故定时器O的初值=65 536 - 50 000=15 536-3CBOH
  
  设定时器1也工作在方式1,为计数器状态,是16位计数器,最多可计216= 65 536个脉冲,而外部输入的最大脉冲数=20 000<65 536,无溢出,故定时器1不必开中断。

二、A/D转换软件
  
  根据上述分析,得出A/D转换的流程图如下图所示。在程序中,定时器1的低8位TL1和高8位TH1的值即为A/D转换的结果,为二进制数,分别进入单片机8031的内部RAM单元31H和32H中暂存;然后即可对此结果进行数据处理,如标度变换等;或输出显示。本程序为一次A/D转换的程序,如需多次A/D转换,只须稍加修改,使其重复运行,并将转换结果存入不同的RAM单元,然后再加以处理即可。在程序中以内部RAM的30H单元作为定时器0溢出次数的计数缓冲器,定时器O每溢出一次,30H的内容溢出中断服务程序便加1.当30H的内容为4时,转换结束。

A/D转换的流程图
  
  此外,在中断服务程序中要给定时器O重置初值,并且修正在重置初值前定时器已运行的.7个机器周期。因为在中断服务程序中没用到累加器及其他寄存器,所以不必进行保护现场和恢复现场等操作。
  
  A/D转换的程序如下:
  
  A/D转换主程序

A/D转换的程序

用单片机实现编码器VD5026的工作时序


推荐阅读

史海拾趣

Eby Company公司的发展小趣事

eBay一直致力于创新和改革,以适应不断变化的市场环境。例如,eBay推出了“新卖家金鹰计划”,旨在通过多项专属服务扶持新卖家拓展全球市场。此外,eBay还不断更新其技术平台,提高交易效率和用户体验。这些创新和改革措施使eBay能够在竞争激烈的电子行业中保持领先地位。

3L Electronic Corporation公司的发展小趣事

3L Electronic Corporation深知人才是企业发展的根本。因此,公司注重人才培养和团队建设,为员工提供丰富的培训和发展机会。通过引进优秀人才和建立激励机制,公司形成了一支高效、专业的团队,为公司的持续创新和发展提供了有力保障。

Custom Connector Corporation公司的发展小趣事

Custom Connector Corporation成立于1969年,当时电子连接器行业正处于快速发展阶段。创始人看到这一市场潜力,决定投身于这一领域。在创业初期,CCC面临着资金紧张、技术瓶颈和市场认可度低等问题。然而,创始人凭借对技术的执着追求和对市场的敏锐洞察,带领团队不断研发新产品,改进生产工艺,逐渐在市场中树立了自己的品牌形象。

Crystal Clear Technology公司的发展小趣事

面对全球电子市场的竞争压力,Crystal Clear Technology决定加快国际化步伐。公司先后在多个国家设立研发中心和生产基地,利用当地的资源和优势,提升产品的竞争力和生产效率。同时,公司还积极参与国际展览和交流活动,与国际同行建立广泛的合作关系,为公司的发展注入了新的活力。

巨盛电子(Chesen)公司的发展小趣事

随着国内市场的饱和,巨盛电子(Chesen)开始寻求国际化发展。公司制定了一系列国际化战略,包括拓展海外市场、建立海外生产基地、与国际品牌合作等。通过这些努力,巨盛电子成功进入了欧美、东南亚等市场,实现了品牌的全球化布局。同时,公司还积极与国际品牌合作,共同开发新产品,提高了品牌知名度和市场份额。

C-MEDIA公司的发展小趣事

随着公司业务的不断扩展,C-MEDIA开始实施全球化战略,积极寻求与国际知名企业的合作。通过与全球领先的电子企业、内容提供商和媒体平台建立战略合作关系,C-MEDIA成功地将自己的技术和产品推向了更广阔的市场。这些合作不仅提升了公司的品牌知名度和市场份额,也为公司的长期发展奠定了坚实的基础。

以上只是C-MEDIA公司在电子行业中的一些重要发展节点和故事的概括性描述。实际上,公司的发展过程中还涉及到许多其他的细节和因素,包括市场竞争、技术创新、人才引进等等。这些故事共同构成了C-MEDIA在电子行业中的发展轨迹,展示了其不断进取、追求卓越的精神风貌。

问答坊 | AI 解惑

BOOTLOADER程序有高手能指点么?

把外部flash里的程序放到ARM内部ROM,谁有代码啊?…

查看全部问答>

Linus步入不惑之年

2009年12月28日是Linux创始人Linus的40岁生日。 19年前,在圣诞节后赫尔辛基商店开业的第一天“,Linus冲向电脑商店,用圣诞节和生日礼金购买了他的第一台PC:一台DX33 80386计算机,4 Megs RAM,40 Megabyte硬盘,没有协同处理器。Linus之所以选 ...…

查看全部问答>

心情沮丧啊。。。

刚刚了看,里面有句话很让我沮丧啊:卖包子的都比工程师强! 研发:产业链的源头,资金链的末尾; 销售:产业链的末尾,资金链的源头; 研发人员是那里面最累的,钱拿的是最少的(指回报率),在一个行业坚持下去的没几人,还劝说周围的年轻人除 ...…

查看全部问答>

BIOS设计是否可以跨硬件

在自学汇编的过程中,遇到一个问题: 我写的BIOS调用是否可以跨硬件平台 换句话说,就是不同的板子上的BIOS设计是否是一样的?…

查看全部问答>

在WinCE环境下对.txt文件的读写

编写一个基于MFC的应用程序,读取.txt文件 文件内容的结构如下 书名1;价格1 书名2;价格2 书名3;价格3 。。。。。。 要求分别提取出书名和价格,分别放到string类型变量中 要就用VC++实现 各位高手帮帮忙,最好能有代码…

查看全部问答>

一个USB设备二台电脑

一个USB扩展槽上插了一个U盘,用USB连接线插了二台电脑。这两台电脑不同时操作U盘的情况下(任何情况下只有一台电脑对U盘操作),这样使用会有问题吗?…

查看全部问答>

请教版主,为什么我的程序进不了硬中断(已解决)

问高手个问题,为什么我的程序进了不硬中断? BIOS设置: HWI_INT11属性: interrupt source: MCSP_0_Receiver function: _receiver use Dispatcher interrupt Mash: self 程序 void main() {} void receiver() {...} 用轮询方式可以收 ...…

查看全部问答>

基于高吞吐率WLR测试的 ACS集成测试系统(二)

多器件TDDB和NBTI 图4示出了多器件TDDB测试结构的共用 SMU和SMU-per-pin配置。在开关(共用SMU) 情况下,SMU1提供连续应力至测试序列的全 部结构,SMU2顺序测量每个器件。在顺序分 析结构的过程中,开关延时和有限的测量速 度合在一起会限制每 ...…

查看全部问答>

C2000 Launchpad发热很大??!!

今天刚拿到快递~~~好欢乐~~~(不得不吐槽的是,圆通就是慢,虽然路上不慢,但是总在终点站耽误一天!!尼玛啊!!) 迫不及待插上电,试试内置的例程. led闪了会,一摸芯片,明显有点烫啊!! 后来用ccs5少了个led boosterpack的程序进去..(虽然没达到演示效果 ...…

查看全部问答>

【Nucleo心得】+ (EX06) 旋转编码器使用

本帖最后由 slotg 于 2014-10-19 09:37 编辑 本次实验编写了一个旋转编码器的驱动,顺时钟旋转时计数器增加,逆时钟旋转时计数器减少,压下中间开关时计数器清除。 旋转编码器的接脚与输出波形: 旋转编码器是输出2个相位差90度的波形,由 ...…

查看全部问答>