基于C8051F020单片机的16位A D转换器设计.docx
- 文档编号:24677572
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:12
- 大小:278.23KB
基于C8051F020单片机的16位A D转换器设计.docx
《基于C8051F020单片机的16位A D转换器设计.docx》由会员分享,可在线阅读,更多相关《基于C8051F020单片机的16位A D转换器设计.docx(12页珍藏版)》请在冰豆网上搜索。
基于C8051F020单片机的16位AD转换器设计
基于C8051F020单片机的16位A/D转换器设计
1引言
本文给出了基于C8051F020单片机的16位A/D转换器设计思路及实现方法。
在设计中,充分利用了C8051F020单片机内部的高速计数器,本文给出的设计与常规的双积分ADC相比,具有转换速率高、可对双极性模拟电压进行转换等显著优点,且实现简单,运行稳定可靠。
2A/D转换器硬件电路
图1为A/D转换硬件电路。
图中,LM336为5V电压基准源,CD4052为2路四选一电子开关。
在正常转换过程中,Vin输入端的开关RY断开,输入待测电压信号(-5V~+5V),此信号经过运放OP07-1构成的电压跟随器后,输入到运放OP07-2的反相输入端,加入电压跟随器的目的是进行阻抗变换。
运放OP07-2构成加法器,其输出为:
VOI=-(VI+VCP)
(1)
VCP为补偿电压,将双极性输入电压VI转换成单极性电压VO1,以实现与偏移二进制码对应的A/D转换,其值为输入电压VI的上限值。
若输入电压VI取值范围为:
-5V 输出电压VO1的取值范围为-10V 3A/D转换器程序流程及工作原理 图2为A/D转换过程程序流程图: A/D转换开始前先将计数器清零。 在软件控制下,选通CD4052的2Y管脚,构成放电回路使积分电容C完全放电,然后开始A/D转换,转换操作分两步进行: 第一步,选通CD4052的0X管脚,积分器对VO1进行固定时间T1的积分,积分结束时积分器的输出电压VO2为: (2) 第二步,选通CD4052的1X管脚,积分器对参考电压VREF向相反方向积分,若积分器的输出电压到零时所经过的积分时间为T2,则有: (3) 故得到: (4) 上述三式中VREF为A/D转换器的基准电压,由C8051F020片内的12位D/A转换器DAC0提供。 可见,T2与进行固定时间间隔积分的电压信号VO1成正比,令计数器在这段时间里对固定频率为fc(fc=1/TC)的时钟脉冲计数,计数值即为转换成的数字量,即 (5) 式中D为表示计数结果的数字量,即A/D转换值。 因为T1为计数器计满2n个脉冲的时间,即T1=2nTc,将其代入(5)式得出 (6) 再将 (1)式代入(6)式得出 (7) 由(7)式可知: 本文给出的双积分式A/D转换器与常规双积分式A/D转换器的主要不同之处在于加入了偏移电压VCP可对双极性电压信号VIN进行转换。 积分器输出电压过零时,比较器LM311输出电平翻转,将比较器LM311输出端与C8051F020单片机内部比较器0输入端CP0+相连,使比较器输出电平的翻转引发程序中断进行A/D转换后的数字量显示。 4实现不同分辨率下的A/D转换 常规双积分式A/D转换器的主要弊端之一是转换速率低,无法适应要求高速A/D转换的工业现场。 本文所论述的双积分式A/D转换器采用C8051F020单片机内部的高速计数器计数,显著提高了A/D转换器的转换速率。 双积分式A/D转换器的转换速率由分辨率与晶振频率决定。 在晶振频率一定的情况下,欲提高分辨率,则需降低转换速率。 因此,为了提高双积分式A/D转换器的转换速率,可在对分辨率要求不高的应用场合将分辨率适当降低。 根据双积分式A/D转换器的转换原理可知: 当进行定时间间隔积分的电压与基准电压幅值VREF相等时,进行一次A/D转换所需时间最长,具体关系见下式: 式中T为一次A/D转换的最长时间,fosc为给单片机外加的晶振频率,n为A/D转换器的分辨率。 通过软件编程控制固定积分时间T1可方便地使A/D转换器具有8位、10位、12位、14位、16位等多种不同的分辨率,以适应不同转换速率的要求。 5改善性能的主要措施 (1)量程扩展。 在待测电压输入端连接放大器和衰减器,即可实现A/D转换器量程的扩展。 (2)零漂校准。 每次测量前,通过程控闭合开关RY,使输入量为零,即可测得A/D转换器的零漂,再由单片机对实际的测试进行误差补偿,以实现自动校准的功能。 6结束语 此A/D转换器线性误差小于0.5%;当给单片机外加的晶振频率为11.0592MHz时,在16位分辨率下转换速率可达168.75次/s;通过软件编程可实现8位、10位、12位、14位、16位等多种分辨率,当分辨率设定为10位时,转换速率可达10800次/s。 除此之外,还可进行量程扩展、校零、误差补偿等等。 1引言 风量和煤粉的均匀分配是保障工业燃煤锅炉安全和经济运行的重要条件,也是保证煤粉充分燃烧的决定性因素。 锅炉良好的燃烧状态可有效避免炉内火焰中心偏移、防止炉镗两侧温差过大、降低能耗及提高设备的使用寿命。 因此,采用科学的方法,较为精确的实时监控各喷燃器入口的风速、风压、温度等参数,是工业燃煤锅炉经济运行的必备前提。 在锅炉实际运行中,由于受测量手段等诸多因素的影响,目前国内电厂对工业燃煤锅炉一、二次风速的检测普遍采用静压测量方式,因此不能正确反映一、二次风管内的风速等状况;此外,由于在单位时间内,进入喷燃器的风量不仅取决于压力,还与风速、温度有着密切的关系,增加了测量难度。 传统的锅炉参数测量多采用单通道、专门功能的计量仪表,不能满足多通道的综合检测、集中监控与数据比较分析的需要。 本设计采用低成本的单片机和外围监测电路,实现对工业燃煤锅炉多通道风压、风速、温度的实时监测与显示,并与上位机通讯,进行数据处理、打印与存储。 2系统组成和工作原理 2.1系统组成 本监测仪采用89C52单片机作为核心控制器件,按照模块化的设计原则,将监测系统分为: CPU主控卡、通道控制、数据存储、A/D转换、放大电路、键盘及显示等功能模块,系统组成框图如图1所示。 模块化设计的结果使监测系统结构简洁,便于维护,可靠性得到提高,而且也使系统的功能扩展成为可能,可为系统预留一定的升级空间。 2.2工作原理 锅炉多路风压、风速在线监测系统的工作原理为: 键盘/显示模块作为外设与CPU实现人一机信息交流;同时,CPU经通道控制模块选择采集通道,对被选择通道的数据相继进行信号采集、放大、A/D转换后输入CPU,在CPU内部经运算、比较、数值转换处理后输出到键盘/显示模块,显示所要监测的相关数据。 当要求显示风压大小时,直接将采集的风压数据经过放大、转换即可;当要求显示风速大小时,则须将采集的风压和温度数据按照式(4)计算(软件程序计算)后,送键盘/显示模块显示相应通道及风速。 3硬件设计 3.1通道选择电路 本系统共有16路数据采集通道,表1为通道选择真值表,可以通过89C52的P1口控制16个通道的选通状态(Q1~Q4)。 图2为通道选择控制电路,8D锁存器74LS373的输入引脚D1~D8与89C52的P1口连接,输出脚Q1~Q6用于选择控制16个通道,其中: Q4,Q5,Q6分别与A1(74LS138)的A、B、C脚相连;定义A1的输出口Y0,Y1为A2或A3的片选控制信号,当Y0为低电平时选择A2芯片工作,当Y1为低点平时选择A3工作;74LS373的Q1,Q2,Q3则分别与A2,A3芯片的A,B,C脚直接相连,实现采集通道的8选1控制,再与Q4高/低电平2个状态结合,就可实现16路通道的选择。 3.2程控信号放大电路 传感器输出的电压信号比较小,与A/D转换输入端口不匹配,必须在A/D转换前加一个信号放大电路,选用超低漂移高精度运算放大器OPO7。 又由于通道数较多,各通道参数的精度、量程不同,因此,监测到的信号需要根据不同的通道,选择合适的放大倍数,更好地完成信号的放大处理,为A/D转换器提供更为精确的采集信号。 图3为放大电路,采用4路选择开关CD4052芯片来选择放大倍数Ki。 用图2中的74LS273的Q7,Q8输出端口控制CD4052芯片,选择X0,X1,X2,X3,实现电阻R1,R2,R3,R4的切换,进而实现改变放大倍数的目的。 放大倍数 3.3A/D转换电路 选用ADI公司的16位串行口的A/D转换芯片AD7715,它使用开关电容逐次逼近技术完成A/D转换过程,只有1路模拟输入。 逐次转换各个通道数据,将转换完的数据存储在数据存储器里,需要用时再取出来。 该芯片具有自校准、系统校准功能,可以消除零点误差、满量程误差及温度漂移的影响。 图4为AD7715与89CA2的连接,单片机的P2.2,P2.1,P2.0引脚分别与AD7715的SCLK、DRDY、DOUT(DIN)引脚连接。 由于AD7715的输入与输出不同步,所以输入与输出引脚接在单片机的同一个引脚P2.0上。 AD7715的片选信号(CS)直接接地,模拟信号由AIN(+)引脚进入,经转A/D换后由DOUT输出数字信号到单片机,而单片机运算处理过的数据则由DIN输入给AD7715,其中AIN(+),AIN(-),DIN,DOUT均是串行口。 MCLKIN,MCLKOUT主时钟信号端(即晶振连接端)。 3.4键盘/显示接口电路 采用8279键盘显示专用芯片与单片机相连。 在该设计中,一共设置了6个控制键,6个LED数码显示管(前2个用来显示被测通道号,后4个用来显示所监测通道的具体数值);其中6个按键的功能说明如下: “设置”键: 通电后仪表可随时按“设置”键,进入设置状态,输入密码,再次按“设置”键,可修改设置参数(密码错误时,按设置键将返回监测状态),当该参数项不需要修改时,可直接按“设置”键,进入下一个参数的设定。 “定点”键: 按“定点”键,显示方式将在固定显示某一通道的参数和循环显示各通道参数两种方式间来回切换。 如原来为定点方式,按“定点”键,将变为循环显示方式;如原来为循环方式,按“定点”键,将变为定点显示方式。 “∨”、“∧”键: 设置数据采集通道。 在循环显示方式时,按上下键无效,在定点方式时,通道号分别加减1。 “切换”键: 可使显示内容为风速、风压显示两个参数中的一种,如原来显示风速,按“切换”键,数码显示管将显示风压值。 “复位”键: 将外部512BRAM中的数据传送给上位PC机,并存储数据以及数据打印。 3.5可编程看门狗监控E2PROMX25045电路 89C52单片机有8kB内部程序存储器空间,256B内部数据存储器空间。 系统的程序量不大,8kB内部程序存储器空间可以满足系统的设计要求,无需外扩程序存储器;多通道数据采集系统是一个数据频繁、数据量比较大的系统,256B内部数据存储器空间达不到要求,需要外扩效据存储器来保存和处理采集的数据。 采用串行E2PROM器件X25045芯片作为外部数据存储器。 其主要特点为: 利用低VCC检测电路,可以保护系统使之免受低电压状况的影响;存储器部分是CMOS的串行E2PROM,内部按512×8组织,10万次写人次数,100年数据储存;看门狗定时器对单片机提供了独立的保护系统。 图5是X25045与单片机的连接图。 在整个工作期内,片选CS端为低电平;WP端为高电平时,所有写保护功能正常。 SCK,SI,SO分别接单片机的P2.4,P2.5,P2.6。 其中SCK串行时钟输入,上升沿写入数据或命令,下降沿输出数据;SI串行输入,由此引脚逐位写入数据或命令;SO串行输出,由此引脚逐位输出数据。 3.6检测电路 该系统需要监测风压与风速2个参数,而风速是有风压与温度计算得到的,计算公式见式(4)。 在风压监测时,将采集到的电流信号通过电阻转变成电压信号,电压大小等于该电阻上的电压,得到的电压信号通过放大器放大,输入到A/D转换器,转换成二进制的数字信号,再根据存储在RAM中的数据查找到相应的压力即可得到相对的压力大小。 在温度监测时,见图6,采用热电阻的三线接法来监测温度,这样可以消除导线电阻RL引起的监测误差,使监测结果更精确。 测得Rt如下: 其中V3,R1,V0都为已知数,V3为电阻R1上的电压。 由热电阻阻值跟温度的关系可得温度t。 R0为温度为0℃时热电阻的电阻值。 风速: 其中: K为测速管标定系数;P为风压;t为热风温度。 在实际应用中,事先将温度平均分成很多段,用中值法算出每段中点对应的温度值,然后根据这些点描出电阻一温度的曲线,通过软件部分制成表,放入单片机的RAM中,然后在巡测过程中通过查表可以知道此电阻值所对应的温度值。 4软件设计 该系统用单片机内部RAM及其中断系统实现多路数据采集、暂时存储、数据处理、数据显示以及其他的辅助功能。 在系统的软件设计中,考虑到程序的可读性,系统的可扩展性以及升级的需要,采用模块化的设计方法,每个模块实现一定的功能,这样模块与模块之问能相对独立,使得程序结构清晰。 程序设计主要分主程序模块、A/D采集模块、键盘处理模块、数据处理模块、存储显示模块等几个部分。 图7为主程序模块的流程图。 5结语 该设计以低成本集成单片机为核心,组成软件与硬件相结合,数字技术与模拟技术相结合的系统,对工业环境中多通道的温度、风压、风速等参数进行实时监测、显示,在需要打印的时候还可以打印出需要的数据。 该系统结构合理、操作方便、性能可靠、运行稳定,经实际应用的证明能够满足工业燃煤锅炉多路风压、风速、温度的检测工艺需要。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于C8051F020单片机的16位A D转换器设计 基于 C8051F020 单片机 16 转换器 设计