基于单片机的智能温度巡检仪设计(DOC毕设论文).doc_第1页
基于单片机的智能温度巡检仪设计(DOC毕设论文).doc_第2页
基于单片机的智能温度巡检仪设计(DOC毕设论文).doc_第3页
基于单片机的智能温度巡检仪设计(DOC毕设论文).doc_第4页
基于单片机的智能温度巡检仪设计(DOC毕设论文).doc_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章 基于单片机的智能温度巡检仪设计对于工业过程小型测控设备或者专用的智能化仪表,自动化工作者一般是采用以单片微型计算机为核心,配以相应接口电路的模式来实现。单片机本身只是一个微控制器芯片,只有当它和外围电路有机地组合在一起,并配置适当的工作程序后,才能构成为一个单片机智能应用系统。本章以工业生产过程中最基本的温度参数测量为例,说明一台智能温度巡检仪的设计思路、硬件配置、软件编程、系统结构及调试考核过程。2.1 设计任务2.1.1 主要功能 为了满足工业生产过程监控的要求,设计的智能温度巡检仪应当具有如下功能:能与常用温度传感器配合检测多路温度,本例是与温度传感器Pt100型铂热电阻配合,巡回检测8路温度;可选择定点显示方式,也可选择巡回显示方式;在全量程内,可设定超限报警值,当实测温度超过设定值时,发出报警信号且有常开接点输出;将检测的每路温度转变为与之线性对应的420mA电流输出;支持RS-485通信方式,方便组成局域监控网络,使实测温度、温度超限设定值等参数在网络中共享。2.1.2 技术指标 测量范围:-200850。 测量精度:优于0.5级。 温度巡检周期:1s。 巡回显示周期:以秒为单位,可选定。 工作环境温度:050。 相对湿度:小于85%。 供电电源:220V AC,10%,50Hz。 结构形式:盘装式。 外形尺寸:160mm(长)80mm(宽)160mm(深)。开孔尺寸:152mm76mm。2.2 总体设计首先要确定实现主要功能与技术指标的硬件、软件的总体设计方案。必须遵守以下三个设计理念。 智能温度巡检仪是以单片机为核心的嵌入式系统,有些功能既可以通过软件编程实现,也可以通过硬件配置实现,应当遵守“能软不硬”的理念,即凡是能够用软件方案实现的功能就不用硬件方案实现,其目的是降低制造成本。软件方案只需在软件开发设计中一次性投入,一旦开发成功,在制造过程中将降低材料成本和安装成本,同时能够提高整机的可靠性。任何电子元器件都有老化失效的问题,整机的可靠性与采用元器件的数量成反比,减少使用的元器件数量,就相当于提高了整机的可靠性。 设计过程应当兼顾技术指标与经济指标,技术指标再高的仪表设备,如果制造成本高、售价高,将不会有市场前景。 在设计过程中,选用的元器件与材料的市场供应渠道必须畅通。电子元器件、电子材料的发展日新月异,必须选用目前市场敞开供应的元器件与材料,否则将给日后的制造与维护带来很多麻烦。如果设计中选用了一些早已淘汰的元器件,将无法实现样机的研发。即便样机开发成功,以后生产制造中的材料采购也十分困难。1.硬件总体方案主机电路采用以8位单片机为核心的方案,片内要有足够多的资源,尽量减少扩展外部功能芯片,减小体积,降低造价。单片机要有如下资源: 1.足够的片内程序存储器,容量不小于20KB 2.足够的片内数据存储器,容量不小于256B 3.定时器/计数器不少于3个。(通讯和A/D转换要求)。 4.中断源不少于3个 5.有串行通讯接口 6.有通用I/O接口 为保证测量精度,前向通道A/D分辨率不低于12位。为了降低造价,8路温度通道通过多路开关技术,公用一个放大器、一个转换器。后向通道的多路模拟量输出,采用一个D/A转换器,路保持器,利用软件定时刷新的方法实现多路模拟量输出。 人机接口的显示器采用LED数码管,其亮度高,有效观测距离远,成本低。按键采用薄膜按键,手感好,寿命长。 通讯接口采用RS-485传输技术,方便按照总线式网络拓扑组成局域测量网络,而且RS-48传输技术成熟,成本低。2软件总体方案 软件任务比较简单,不需要嵌入操作系统,主要包括监控程序、人机服务程序、数据采集处理程序、通信服务程序几部分。为了保证实时性要求,提高运行效率,采用ASM51汇编语言编制。3外形结构方案 按盘装仪表结构设计,其外形结构尺寸、安装尺寸、安装方式、接线方式与常规测试仪表保持一致,便于替代传统测试仪表。2.3 硬件系统及驱动程序设计8路温度巡检仪的硬件由主机电路、前向通道、后向通道、人机接口电路、通信接口及供电电源几部分组成,如图所示。其中,主机电路由CPU、数据存储器、程序存储器、EEPROM存储器、定时器/计数器、通用异步串行收发器、中断控制器、WDT定时器及通用并行接口等部件组成;前向通道电路由Pt100转换电路、滤波电路、多路模拟开关电路、放大电路、A/D转换电路组成;后向通道电路由D/A转换电路、多路模拟开关电路、V/I转换电路、继电器驱动电路组成;人机接口电路由按键和LED数码管组成;通信接口电路由RS-485接口电路组成;供电电源电路分别向系统数字电路提供逻辑5V电源,向模拟电路提供12V与5V模拟电源。 2.3.1 主机电路设计主机电路设计的核心是选择一款恰当的嵌入式处理器,其处理速度、内含的存储器容量、内含的功能部件尽可能满足系统要求,同时,市场售价满足整机硬件成本要求。 系统对处理速度的要求:根据设计任务中关于温度巡检周期为1s,巡检8路的要求,处理器应当在1/8s,即125ms内完成1路温度的数据采集、标度变换、线性化处理、显示等各项任务。在一般情况下,以上所列任务在位微处理器中可以通过执行条指令实现,以执行每条指令需要来计算,共需要,即。比起系统要求的来说明相差甚远。所以,对路温度巡检仪这样一个系统来讲,一般位微处理器的处理器的处理速度完全可以满足需要。 系统对程序存储器的要求:就设计任务中规定的功能及技术指标而言,软件任务的复杂程度一般,当采用汇编语言编程实现时,一般5000条指令可以完成全部编程任务。以指令代码效率推算,每条指令平均占有,共需即的程序存储器容量。 系统对数据存储器的要求:数据存储器主要作为计算缓冲区、堆栈区、实时数据存储区、中间数据存储区使用,对本设计任务而言,一般200300B可以满足需要。 系统对EEPROM存储器的要求:EEPROM存储器的使用性能是指,程序运行时可以向其中写入数据或擦除数据,当系统关机或掉电时,写入的数据能够可靠长久的保留。它主要用来存储使用者存储的数据,如巡回检测的路数(8路温度巡检仪在使用中可以根据需要设定巡检路数)、超限报警值、巡回显示周期。也可以存储系统标定数据,如各路温度转换的零点值与满度值、零点迁移值等,这些数据都是以微处理器为核心的智能仪表基本的系统数据。对本设计任务而言,一般能够满足要求。 系统对定时器/计数器的要求:8路温度巡检仪属于实时性很强的嵌入式系统,实现实时性操作的硬件基础是定时器。对本设计任务来讲,需要1路定时器来产生时钟节拍,实现实时操作;需要1路定时器来作为串行通信的波特率产生器;需要1路定时器来实现A/D转换操作,因此至少需要3路定时器/计数器。 系统对中断控制的要求:根据设计任务要求,软件任务主要有:通信服务、每路A/D转换完成时的数据采集与打开下一输入通道、温度计算、人机接口服务共4项任务。其中,通信服务、A/D转换服务的实时性很强,需要通过2个中断源,2级中断管理实现。系统时钟需要通过中断提供实时操作。因此,必须有不少于3个中断源、2级中断的中断控制机制,以便根据各项任务的实时性要求进行抢占式调度。 系统对通用异步串行收发器(UART)的要求:为了支持RS-485通信,必须有1路UART。 系统对硬件抗干扰的要求:迄今为止,看门狗定时器(WDT,Watchdog Timer)是微机系统唯一完全有效的硬件抗干扰措施,因此系统必须采用WDT。系统对通用并行接口(GPIO)的要求:为了实现主机电路与前向通道、后向通道、人机接口部分的硬件接口,主机电路应当具备2030个GPIO。综合上述各项要求,采用以为内核的美国公司生产的单片机比较适宜。1AT89C55WD 单片机的片内资源及性能与MCS-51系列单片机指令系统兼容,引脚兼容。内部具有可重复编程的20KB的Flash型程序存储器,重复编程次数达1000次。工作电压范围:45.5V。时钟频率:静态到33MHz,当时钟频率选择33MHz时,以每条指令执行时间平均为2个机器周期进行计算,CPU处理速度达1.375MIPS,即每秒可执行137.5万条指令,处理速度非快。256B数据存储器。 32根可编程I/O口线。3个16位定时器/计数器。 6个中断源,2级中断优先级。1个可编程的UART。具有闲置方式与掉电方式两种省电工作方式。1个WDT硬件定时器。2个数据指针。2X5045 性能简介 由于选定的单片机AT89C55WD内部没有EEPROM存储器,而单片机上电时必须有自动复位电路,因此主机电路中除了单片机外,必须扩展EEPROM存储器和上电复位电路。美国XICOR公司生产的X5045集成芯片,集4项功能于一身,除了内部具有EEPROM存储器外,还有上电复位功能、WDT功能、电源电压监控功能。具体指标如下: 内部具有WDT电路,可以编程选择WDT超时周期。 具有低电压监测和强制复位功能。 具有上电复位控制功能。图2-2 X5045的引脚布置 内含4Kbit的EEPROM存储器,可以编程选定进行分块保护,保证重要数据存储的可靠性支持高达33MHz的时钟频率。功耗低,工作电流小于50mA,便于电池供电。(1)引脚描述的引脚布置图如上图所示,由于采用接口,因此使用有限几条口线,就能实现与单片机的接口。各引脚功能说明如下。串行输出():是串行数据输出引脚。在读周期内,数据在此引脚上移出,数据由串行时钟的下降沿同步输出。串行输入():是串行数据输入引脚。所有操作码、字节地址及写入存储器的数据均在此引脚上输入。数据由串行时钟上升沿锁存。串行时钟():串行时钟用于数据输入和输出的串行总线定时。操作码、地址或出现在引脚上的数据在时钟输入的上升沿锁存,而引脚上的数据在时钟输入的下降沿之后发生改变。片选信号():当为高电平时,不被选择,输出引脚处于高阻状态。写保护():当为低电平时,向的写操作被禁止,但是器件的其他功能仍正常。当保持高电平时,所有的功能,包括写操作,都正常。复位():的高电平有效。漏极开路的输出端,只要下降至低于最小检测电平,变为高电平。它将保持高电平直至上升到最小检测电平为止。如果允许看门狗定时器工作且保持低电平的时间大于看门狗超时周期,那么也变为高电平。的上升沿将复位看门狗定时器。、为的电源引脚和地引脚。(2)指令集X5045的各种操作,包括写使能锁存器的置位与复位、读/写状态寄存器、读/写EEPROM,都是通过向X5045发出有关指令进行的。指令集如表2-1所示。指 令 名指 令 格 式操 作EN00000110设置写使能锁存器(允许写操作)WRDI00000100复位写使能锁存器(禁止写操作)RDSR00000101读状态寄存器WRSR00000001写状态寄存器(块锁定位)READ0000A8011从开始于所选地址的存储器阵列中读出数据WRITE0000A8010把数据写入开始于所选地址的存储器阵列(14B)表2-1指令集(3)写使能锁存器 X5045包含一个写使能锁存器。在内部完成写操作之前,此锁存器必须被设置(SET)。WREN指令可设置锁存器而WRDI指令将复位锁存器。在上电情况下和字节、页或状态寄存器写周期完成之后,该锁存器自动复位。如果变为低电平,则锁存器也被复位。(4)状态寄存器 RDSR指令提供对状态寄存器的访问。在任何时候都可以读状态寄存器,即使在写周期也如此,状态寄存器的格式如表2-2所示。表2-2 状态寄存器的格式76543210XXWD1WD0BL1BL0WELWIPWD1WD0超 时 周 期001.4s01600ms10200ms11禁止状态寄存器各位的意义说明如下 WIP(Write_In_Process):该位表示“正在写”状态。当该位为“l”时,写操作正在进行;当该位为“0”时,没有写操作在进行。在写期间,所有其他位全置为“l”。WIP位是只读的。 WEL(Write_Enable_Latch):该位表示“写使能锁存”状态。当该位为 “1”时,锁存器置位;当该位为“0”时,锁存器复位。WEL位是只读的,它由WREN指令置位,由WRDI指令复位,或者在成功地完成了写周期后复位。BL1BL0被保护的阵列地址00无01180H1FFH10100H1FFH11000H1FFH BL0、BL1:块保护位,用于选择EEPROM被保护的范围。这两位由发出WRSR指令来设置,允许用户选择4种保护方式之一。被选择保护的部分只允许读,不允许写。EEPROM的保护范围如表2-3所示。 WD0、WD1:这两位用于选择看门狗定时器(Watchdog Timer)的超时周期,选择范围如表2-4所示。通过发出WRSR指令来设置WD0、WD1。3主机电路硬件原理 主机电路中主要包括AT89C55WD单片机和X5045芯片,就可以满足系统对硬件资源的需求,硬件电路原理如图2-3所示。 上电复位:若图中电阻取,当系统上电时,将在的引脚产生一个高电平有效的复位信号,该信号接到单片机的复位引脚,实现单片机的上电复位。电源电压监测:工作时,监视跌落到一个确定的数值时,的复位引脚将发出一个高电平有效的复位信号,使单片机复位。只要跌落到一个确定的数值以下,并保持在以上时,能够发出单片机需要的高电平的复位信号,保证单片机可靠复位。这就保证在一旦跌落到单片机允许的工作电压以下时,单片机处于复位状态,否则单片机此时可能执行某些错误的指令,产生不可预料的结果。选定跌落到多大数值时,产生复位信号,可以通过对编程决定,一般采用出厂时默认的数值即可。超时周期选择:内部的超时周期有个数值可以编程选定,即、。的超时周期决定了单片机从“死机”状态恢复为重新运行所需的时间。理论上讲,这个时间越短越好,但对于慢速系统来讲,太短的时间不是很有实际意义。时间选得越短,单片机正常运行时,访问的时间间隔也越短,会增加的负担。4驱动程序(1)WDT驱动程序 X5045中WDT的驱动程序有两个,一个用于在单片机正常工作时访问WDT,使WDT不产生复位信号,注意,这个程序应当每隔一个确定的时间间隔运行一次,该时间间隔应当小于WDT超时周期;另一个驱动程序设定WDT的超时周期。 访问WDT驱动程序:根据X5045的使用规则,只要其引脚发生从高电平到低电平的跳变,就实现对内部WDT定时器的复位,因此,根据图2-3所示,只要在连接X5045引脚的P1.4输出一个低电平脉冲即可,即做一次输出低再变高的操作。程序如下:CSBITP1.4 RST_WDT:CLRCS SETBCS RET设定WDT超时周期的驱动程序:根据X5045的使用要求,通过设定X5045的状态寄存器实现超时周期的设置。本系统选定WDT的超时周期为600ms,X5045的状态寄存器中WD1、WD0两位分别设置为0、1。不考虑保护EEPROM时,状态寄存器内容可以设置为10H(参见X5045状态寄存器的格式)。在设置状态寄存器之前,需要先完成两个操作:设置写使能寄存器和发送写状态寄存器命令。设置流程如图2-4所示。驱动程序:WREN_INST EQU 06H ;状态存储器写使能命令为06HWRSR_INST EQU 01H ;写状态寄存器命令为01HCS BIT P1.4 ;连接5045之引脚的I/O口线为P1.4SCK BIT P1.5 ;连接5045之SCK引脚的I/O口线为P1.5SI BIT P1.6 ;连接5045之SI引脚的I/O口线为P1.6SO BIT P1.7 ;连接5045之SO引脚的I/O口线为P1.7SET_WDT: LCALL WREN_CMD ;设置写使能寄存器 CLR SCK ;准备发送写状态寄存器命令 CLR CS MOV A,#WRSR_INST ;发送写状态寄存器命令 LCALL OUTBYT MOV A,#10H ;发送状态寄存器内容 LCALL OUTBYT CLR SCK ;退出设置WDT SETB CS RET以上设置WDT的子程序“SET_WDT”,用到了两个底层的子程序“WREN_CMD”和“OUTBYT”。“WREN_CMD”是一个设置写使能寄存器的子程序,“OUTBYT”是一个发送1B内容子程序。这两个子程序是根据X5045“写使能锁存时序”和“写状态寄存器操作时序”编写的。由于篇幅所限,X5045的相关操作时序不在这里介绍,请读者参阅有关的技术手册。两个子程序如下:WREN_CMD: CLR SCK ;准备发送写使能寄存器命令 CLR CS MOV A,#WREN_INST ;将写使能寄存器命令送A LCALL OUTBYT ;将1B命令发送出去 CLR SCK ;退出发送 SETB CS RETOUTBYT: MOV R0,#8 ;1B,需要发送8个BIT位OUTBYT1: CLR SCK ;在SCK的上升沿,通过SI将内容送入X5045 RLC A MOV SI,C SETB SCK DJNZ R0,OUTBYT1 ;循环发送 CLR SI ;退出发送 RET图2-5 EEPROM写入流程 2)EEPROM写入程序根据X5045的使用规则,向EEPROM内写入内容,按图2-5所示的流程进行。;*;子程序名:PAGE_WRITE;功能:将R1中的内容为首地址的单片机内部RAM的不超过1页的内容写入以DPTR内容为首地址的EEPROM中;底层子程序调用:OUTBYT、WREN_CMD;入口条件:(R1)= 待写入到EEPROM中的内部RAM中内容的首地址; (DPTR)= 待写入的EEPROM的首地址; (R2)= 要写入的字节数,不大于1页(4B);使用的寄存器:A、DPTR、R1、R2;*WRITE_INST EQU 02H ;写数据命令为02HPAGE_WRITE: LCALL WREN_CMD ;设置写使能寄存器 CLR SCR ;准备发送写数据命令 CLR CS MOV A,DPH ;将EEPROM地址的最高位连同写数据命令一起发送 MOV C,ACC.0 MOV A,#WRITE_INST MOV ACC.3,C LCALL OUTBYT MOV A,DPL ;发送EEPROM的低8位地址 LCALL OUTBYTPAGE_WRITE1: MOV A,R1 ;发送1B内容 INC R1 LCALL OUTBYT DJNZ R2,PAGE_WRITE1 ;循环发送 CLR SCK ;退出发送 RET(3)EEPROM读出程序;*;子程序名:SEQU_READ;功能:将DPTR中内容为首地址的EEPROM中的内容读出到以R1中内容为首地; 址的单片机内部RAM中;底层子程序调用:OUTBYT、INBYT;入口条件:(R1)= 单片机内部RAM的首地址; (DPTR)= EEPROM的首地址; (R2)= 要读出的字节数;使用的寄存器:A、DPTR;*READ_INST EQU 03H;读数据命令为03HSEQU_READ: CLR SCK;准备读数据 CLR CS MOV A,DPH;将EEPROM 地址的最高位连同读数据命令一起发送 MOV C,ACC.0 MOV A,#READ_INST MOV ACC.3,C LCALL OUTBYT MOV A,DPL;发送EEPROM的低8位地址 LCALL OUTBYTSEQU_READ1: LCALL INBYT;读出1B内容 MOV R1,A;将读出的1B数据存入单片机RAM中 INC R1 DJNZ R2,SEQU_READ1;循环读数据 CLR SCK;推出读数据 SETB CS RET “SEQU_READ” 子程序用到了一个底层子程序“INBYT”,该子程序用于从EEPROM中读出1B内容,程序如下:INBYT: MOV R0,#8;1B,8个BIT位INBYT1: SETB SCK;准备读出 CLR SCK MOV C,SO;读出内容存于C中 RLC A;将C中内容存于A中 DJNZ R0,INBYT1;循环读出 RET2.3.2 前向通道电路设计前向通道的任务是接收温度传感器Pt100铂电阻的信号,将其转变为单片机能够进行处理的数字信号,由信号转换电路、动态稳零电路、多路模拟开关、阻抗匹配电路、放大电路、A/D转换电路等几部分组成。原理框图如图所示,硬件电路如图2-7所示。1信号转换电路 信号转换电路由图2-7中的9个惠斯登电桥组成(由于图面所限,图中仅绘出第1个、第2个和第9个),实现将8路Pt100温度传感器输出的电阻信号转换为电压信号。其中,第1个惠斯登电桥没有外接Pt100传感器,设置它的目的是为动态稳零电路提供零信号(详见5.动态稳零电路)。余下8个惠斯登电桥的工作原理完全一致,这里以第2个电桥为例,它由R5、R6、R7、C3、C4组成。来自Pt100温度传感器发出的电阻信号以3线形式接到a1、b1、c1处,a1接Pt100的一端,b1、c1接Pt100的另一端,于是由Pt100、R5、R6、R7构成一个惠斯登电桥,如图2-8所示。当检测到温度变化时,Pt100的阻值发生变化,在A、B点对应产生一个变化的电压 。实现了R/(电阻/电压转换)转换。电路中标有r的3个电阻,是Pt100从现场三线连接到仪表的线路电阻。 采用惠斯登电桥的方式进行R/V转换的主要优点是,利用桥路的对称平衡特点,有效地克服供电电源Va波动,克服Pt100引线电阻影响,克服桥路电阻温漂问题。下面做一个简单分析。 克服桥路供电电源Va波动影响,克服桥路电阻温漂影响。,在图2-8的电路中,忽略引线电阻影响,认定r=0,则Rpt为Pt100的阻值,当取R6=R7,R5=Rpt时, 。 。只要桥路4臂电阻对应相等,则桥路输出电压与桥路供电电源波动无关。当桥路电阻R5、R6、R7随周围环境温度发生变化,即出现温漂时,只要R6与R7漂移幅度、方向一致,R6=R7 R5,则桥路输出电压受温漂影响很小。 克服Pt100引线电阻影响 如图2-8所示,当安装在现场的Pt100传感器通过三线连接到仪表时,要求三线长度、线径、材质一致,这样做可以保证三线的线路电阻相等为r,当rR6(R7)时,桥路输出: 取 时, 。说明与引线电阻无关,即可以有效地克服引线电阻影响问题下面讨论各参数的选取,一般取。希望当检测温度为0时,桥路输出Vab=0V,因此取R5=100,与Pt100在0时的输出值相等。R6、R7阻值的选取主要考虑两个因素。第一,在给定Va的情况下,应保证Pt100中流过的电流,也就是桥臂电流,不会在Pt100中产生自热温升,对一般封装形式的Pt100,要求选取R6、R7的阻值满足下式: R6、R7的阻值值不能选取过大。当桥臂电流小于2mA时,桥路的灵敏度将降低。第二,考虑Pt100引线电阻的影响问题,当检测温度不是0时,引线电阻r引入到桥路中会减小桥臂电流。r大小是不确定的,和具体的应用场合有关,无法在仪表出厂时通过标定克服。一般要求具体使用时,保证r5。R6、R7选取时,要考虑,当桥臂中引入05电阻时,所产生的误差不应超过设计任务规定的技术指标。如果希望r5时,桥路实现R/V转换造成的误差小于等于0.1%,则满足:,即R65K。综合以上因素,在Va=5V时,可取R6=R7=10K。当检测温度不是0时,即R5Rpt时,R5、R6、R7的温度漂移、Va的波动和温度漂移都会给桥路的R/V转换带来误差。要求R5、R6、R7及Va的温漂系数小于等于50ppm。满足上述要求,则由惠斯登电桥实现的R/V转换,在050的环境温度下,可保证0.1%的精度。上述结论,可自行推导或实验验证。由于R5取100,Pt100在测量范围内阻值不大,因此,R/V转换电路的输出阻抗较小(小于100),后后级放大电路的输入阻抗只要满足大于前级输出阻抗3个数量级,就能够满足精度要求。放大电路的输入阻抗越小,对干扰就越不敏感,因此C3、C4取0.1uF,可以获得较好的滤波效果。2多路模拟开关图2-7中的CD4052(U1、U2、U3)是一个双端4路(相当于双刀四掷)的模拟开关,由A、B、INH三个控制引脚选择将X、Y切向0、1、2或3通道。控制引脚状态与导通通道关系如表2-5所示。三个CD4052的输出X、Y分别并接在一起,然后接入后级的运放,三个A引脚均接单片机AT89C55的P2.0,三个B引脚均接单片机AT89C55的P2.1,三个INH引脚分别接3/8译码器74HC138的Y0、Y1、Y2高低电平又受其控制引脚A、B的控制,A、B接在单片机AT89C55的P2.2、P2.3上。这样,利用单片机P2.0 、P2.1、P2.2、P2.3这4个I/O口,控制三个多路开关和3/8译码器,分时将9个R/V转换桥路的输出接通后级放大电路和A/D转化电路。4个I/O口状态与接通电阻桥路的关系如表2-6所示。通过上述控制电路,使9个R/V转换电路,分时公用1路放大器和A/D转换器,可以降低硬件成本。 表2-5 控制引脚状态与导通通道关系INHBA 导 通 通 道000X0、Y0001X1、Y1010X2、X2011X3、Y31XX 不通表2-6 4个I/O口状态与接通电阻桥路的关系 P2.3P2.2P2.1P2.0导 通 桥 路0000稳零桥路00010通道00101通道00112通道01003通道01014通道01105通道01116通道10007通道3阻抗匹配电路 阻抗匹配电路由图2-7中的U4A、U4B两个运算放大器组成跟随器实现。如果没有这一级阻抗匹配电路,测量桥路的输出阻抗与多路模拟开关的导通电阻以串联形式接到运算放大器的输入端,作为运算放大器的输入电阻存在。由于8路测量桥路测量的温度不可能完全一样,多路模拟开关各通道导通电阻不一致,决定了运算放大器在接通不同通道信号时,其输入电阻不一致,因而增益不一致,产生误差。为了解决这一问题,引入阻抗匹配电路。各路信号通过阻抗匹配电路接到运算放大器时,各路信号的输出阻抗统一为两个跟随器的输出阻抗,解决了不同通道信号输出阻抗不一致的问题。4放大电路 在图2-7中,由U4D、R29、R30、R31、R32构成反相放大器,增益A由下式确定:式中, 为测量上限桥路输出电压。 A/D转换器ICL7135满码输出对应的模拟电压(模拟输入信号上限)为2V,考虑动态稳零的需要,这里取1.8V。Pt100的测量上限温度为850,对应的阻值为RPtmax=390.26W。根据图2-8的测量桥路,当R6=R7=10kW,R5=100W时,忽略引线电阻影响,测量上限桥路输出电压: 取R29=1kW,R32=13kW,反相放大器增益为13。 5动态稳零电路作用:抑制温漂和时漂电压工作原理:模拟运算放大器由于制造工艺的限制,总存在一定的失调电压。失调电压随环境温度的变化而变化,定义为温漂系数。在温度稳定情况下,失调电压随时间的变化也变化,定义为时漂系数。由于运算放大器温漂与时漂的存在,当被测参数不变时,运放的输出却在变化,后级显示参数也随着变化,造成对检测参数的可信度产生怀疑。这是运放放大直流小信号存在的致命弱点,必须加以克服。动态稳零电路采用基于硬件与软件相结合的技术,其工作原理如图2-9所示,运放U4D与R29、R30、R31、R32构成反相放大器,其增益: ,运放的输出为Vo。开关SW切向上,接通Vab有效输入信号;开关SW切向下,接通零输入信号。当SW切向下时,放大器输出为: 式中, 为运算放大器的失调电压。当SW切向上时,放大器输出为:式中为运算放大器的失调电压。将两次输出相减: 上式说明,如果运放在每次测量有效信号之前,先接通零信号测量出运放的失调电压,再接通有效信号,将得到的输出减去失调电压作为运放的有效输出,就从根本上克服了失调电压的影响。 回到图2-7所示的前向通道硬件电路图,图中R1、R2、R3、R4组成了动态稳零电路的标准零信号,取R1=R2=10K、R3=R4=100K时,桥路输出为0.在软件控制下,每测量一轮8路温度之前,先通过多路开关将放大器接通零信号,通过A/D转换将其输出存在在单片机的内部RAM中,以后每测量一路有效信号后,利用软件减去零信号,实现了动态稳零的效果。稳零桥路的电阻值、规格型号、生产批次与测量桥路的电阻参数完全一致,如此利用动态稳零技术不仅克服运算放大器的失调电压影响的问题,也能有效地克服测量桥路电阻阻值的温度漂移问题。6A/D转换电路 A/D转换电路设计的核心是A/D转换器的选择,选择时主要考虑三项技术指标:转换精度、转换速度和对单片机接口资源的耗用。 影响A/D转换精度的指标一般有分辨率、量化误差和线性度。从目前市场供应的A/D转换器来看,量化误差与线性度两个指标一般都很高。转换精度主要取决于分辨率,对于n位的A/D转换器,转换精度为 ;如果希望A/D转换电路的精度达到0.1%以上时,选取的A/D转换器的分辨率应高于10位。 转换速度选取的依据是测量信号的变化频率。根据香农定理,采样周期(主要取决于A/D转换时间)至少是测量信号变化周期的1/2以下。对于本设计任务而言,测量的是工业过程的温度参数,其变化缓慢,一般场合,在1秒内很少有超过0.5的变化,因此可以选择转换精度较高,速度较慢的双向积分式A/D转换器,而且在A/D转换器之前不必加采样保持器。 对于测量8路温度的温度巡检仪而言,根据上述分析,选择转换速度为16次/秒的A/D转换器,可以满足要求。 单片机的I/O接口资源有限,要满足与前向通道、后向通道、人机界面、通信电路的接口需要,因此I/O资源非常紧张。为了使整机硬件电路尽量紧凑,要尽量不对单片机进行外部I/O扩展。在选择A/D转换器和设计A/D转换电路时,应当尽量少占用单片机的资源。 根据以上三方面的考虑以及经济成本的考虑,在本设计中,选用美国Intersil公司生产的ICL7135 双向积分生式A/D转换器。ICL7135的主要技术指标如下: 转换精度为1/19999;l 双极性转换,数字满码输出为19999;l 自动稳零技术,保证0V信号输入时,数字码0输出;l 高输入阻抗,输入1pA漏电流;l 差分输入;l 零点极性检测;l 仅需单一参考电源;l 具有过量程与欠量程指示,便于实现自动量程转换;l 所有输出电平符合TTL电平标准;l 具有并行与串行两种输出信号形式。(1)ICL7135输出方式选择 为了尽量减少对单片机I/O资源的使用,需要仔细研究ICL7135的两种输出方式。ICL7135的引脚布置图如图2-10所示。经A/D转换后的数字码有两种输出时序:串行输出时序与分时并行输出时序,分别如图2-11和图2-12所示。从图2-11所示的时序可以看到,一个完整的测量周期包括三个阶段:自动稳零(即AZ)阶段,信号积分(即SI)阶段,参考电压积分(即RI)阶段。在AZ阶段结束后,ICL7135的21引脚BUSY开始跳变为高电平。在整个SI阶段,BUSY一直维持高电平,直到RI阶段积分回零后再经过一个时钟周期为止,BUSY重新恢复为低电平。如果BUSY信号与时钟输入信号进行逻辑与,那么,在BUSY为高电平时所记录下的时钟周期数,将包括两部分的信息:信号积分阶段所占用的固定的10000个时钟周期,与模拟输入信号线性对应的时钟周期,再加上1.由此可见,经A/D转换后的数字码,就是在BUSY信号为高电平时,用计数器记录下所经过的时钟周期数减去10001个数后剩余的数。根据以上的分析,只要将ICL7135的时钟信号接入AT89系列单片机的计数器,记录BUSY为高电平时所经历的时钟周期,将所记录的时钟周期数减去10001后就是A/D转换的数字码。读取A/D转换结果的时间为:执行读计数器中的计数、做简单的减10001的减法指令的时间。一般10条左右指令可以完成上述操作。当单片机的晶体振荡频率取12MHz时,约20us即可完成。 图2-11 串行输出时序图 图2-12 分时并行输出时序图 在图2-12所示的时序里,经A/D转换后的数字码,通过D1、D2、D3、D4、D5、B1、B2、B4、B8这9个引脚分时输出。当D1为高电平时,B1、B2、B4、B8输出个位BCD码;类似地,当D5为高电平时,B1、B2、B4、B8输出万位BCD码。据此,如果单片机要接到ICL7135分时输出的BCD码,至少要占有9条I/O线。从读出时间上分析,从D1到D5的高电平输出要占用1000个时钟周期,ICL7135一个完整的A/D转换需40002个时钟周期。当选择时钟频率为250KHz时读取A/D转换结果的时间为:1000/250000=4ms。对于一个实时系统来讲,这个读取时间是最佳的。(2)硬件接口电路 根据图2-11所示时序设计的A/D转换硬件接口电路如图2-13所示。ICL7135仅通过两根线与AT89C55相接,仅占用AT89C55 T1、T2两个计数器及外部中断INT1。 ICL7135时钟信号提供ICL7135的时钟信号直接来自AT89C55的P1.0。P1.0是AT89C55 的复用口,当AT89C55的T2计数器工作于方波产生器方式(Programmable Clock Out)时,通过该引脚可输出连续的方波信号,其占空比为50%,频率可通过编程确定,如图2-14所示。这就省去了另外设计时钟电路的麻烦。另外,为了保证A/D转换的稳定性,需要A/D转换器的工作频率与交流供电的50Hz频率保持精度的倍数关系。常见的时钟电路要取得精确的低频信号通常是很困难的。而通过AT89C55的T2计数器编程确定输出频率很方便。 A/D转换结果的读取ICL7135的时钟信号源于AT89C55的T2计数器方波输出,同时接至AT89C55的T1,利用T1计数器记录BUSY为高电平时的时钟周期数。BUSY信号接至AT89C55的外部中断INT1,其意图有两个。第一,控制T1计数。当T1计数器工作于方式1时,通过软件设置GATE控制位为“1”时,T1计数受INT1控制,当INT1(既BUSY)为高电平时,T1可对来自外部的脉冲(既ICL7135的时钟周期)计数;INT1为低电平时,停止计数。第二,在BUSY 信号由高电平跳变为低电平瞬间,以中断形式通知CPU,以读出A/D转换后的数字码。(3)驱动程序 A/D转换结果的读取 ICL7135的时钟信号源于AT89C55的T2计数器的方波输出,让AT89C55 通过P1.0引脚,为ICL7135提供250kHz时钟信号时,编程设定AT89C55 的T2工作于方波产生器方式。当AT89C55 晶体振荡器取12MHz时,编程如下:MOVT2CON,#04H;T2工作于方波产生器方式MOVT2MOD,#02HMOVRCAP2H,#0FFH;输出方波频率为250kHzMOVRCAP2L,#0F4H A/D转换结果读出程序 如图2-13所示,当BUSY信号由高跳变到低时,将触发INT1中断,在INT1中断服务程序中将A/D转换结果读出,存放于内部RAM 30H、31H中。INT1_ISR:PUSHPSW;保护现场PUSHACCMOVA,TL1;T1计数减去10001(2711H)后送30H,31H中CLRCSUBBA,#11HMOV31H,AMOVA,TH1SUBBA,#27HMOV30H,AMOVTL1,#0;清零T1MOVTH1,#0POPACCPOPPSWRETI 2.3.3 后向通道电路设计后向通道电路由420mA模拟量输出电路与超限报警开关量输出电路两部分组成。1 420mA模拟量输出电路该电路是将所检测的每路温度都对应地输出一个与之成线性关系的420mA电流信号,以便根据需要供给调节器、记录装置或DCS系统。硬件电路设计如图2-15所示

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论