【文档说明】控制系统工程设计第2章.pptx,共(71)页,1.506 MB,由精品优选上传
转载请保留链接:https://www.ichengzhen.cn/view-290862.html
以下为本文档部分文字说明:
第2章基于单片机的智能温度巡检仪设计2.1设计任务2.2总体设计2.3硬件系统及驱动程序设计2.4软件设计2.5结构设计2.6工程设计与组装调试2.1.1主要功能为了满足工业生产过程监控的要求,设计的智能温度巡检仪应当具有如下功能:能与常用温度传感器配合检测多路温度,
本例是与温度传感器Pt100型铂热电阻配合,巡回检测8路温度;可选择定点显示方式,也可选择巡回显示方式;在全量程内,可设定超限报警值,当实测温度超过设定值时,发出报警信号且有常开接点输出;将检测的每路温度转变为与之线性对应的4~20mA电流输出;支持RS-485
通信方式,方便组成局域监控网络,使实测温度、温度超限设定值等参数在网络中共享。2.1设计任务2.1.2技术指标测量范围:−200℃~850℃。测量精度:优于0.5级。温度巡检周期:1s。巡回显示周期:以秒为单位,可选定。工作环境温度:0℃~50℃。相对湿度:小于
85%。供电电源:220VAC,±10%,50Hz。结构形式:盘装式。外形尺寸:160mm(长)×80mm(宽)×160mm(深)。开孔尺寸:152mm×76mm。2.2总体设计首先要确定实现主要功能与技术指标的硬件、软件的总体设计方案。必须遵守以下三个设计理念。①智能温度巡检仪是以单片
机为核心的嵌入式系统,有些功能既可以通过软件编程实现,也可以通过硬件配置实现,应当遵守“能软不硬”的理念,即凡是能够用软件方案实现的功能就不用硬件方案实现,其目的是降低制造成本。软件方案只需在软件开发设计中一次性投入,
一旦开发成功,在制造过程中将降低材料成本和安装成本,同时能够提高整机的可靠性。任何电子元器件都有老化失效的问题,整机的可靠性与采用元器件的数量成反比,减少使用的元器件数量,就相当于提高了整机的可靠性。②设计过程应当兼顾技术指标与经济指标,技术指
标再高的仪表设备,如果制造成本高、售价高,将不会有市场前景。③在设计过程中,选用的元器件与材料的市场供应渠道必须畅通。电子元器件、电子材料的发展日新月异,必须选用目前市场敞开供应的元器件与材料,否则将给日后的
制造与维护带来很多麻烦。如果设计中选用了一些早已淘汰的元器件,将无法实现样机的研发。即便样机开发成功,以后生产制造中的材料采购也十分困难。1.硬件总体方案主机电路采用以8位单片机为核心的方案,片内要有足够多的硬件资源,尽
量减少扩展外部功能芯片,减小整机的体积,降低整机造价。选择的8位单片机应具有如下资源。①足够的片内程序存储器,容量应不小于20KB。②足够的片内数据存储器,容量应不小于256B。③为了满足实时性要求、通信要求和A/D转换要求,定时
器/计数器数量不应少于3个,容量应在16位以上。④中断源要求:中断源不应少于3个,中断级别不应少于2级。⑤有串行通信接口。⑥有足够多的通用I/O接口。前向通道设计:A/D转换器分辨率不应低于12位,为了降低造价,8路温度通道通过
多路开关技术,公用一个放大器、一个A/D转换器。后向通道设计:采用一个D/A转换器,8路保持器,利用软件定时刷新的方法实现多路模拟量输出。显示部分:采用LED数码管,其亮度高,有效观测距离远,成本低按
键部分:采用薄膜按键,手感好,寿命长。通信部分:采用RS-485传输技术,方便按照总线式网络拓扑组成局域测量网络,而且RS-485传输技术成熟,成本低。2.软件总体方案软件任务比较简单,不需要嵌入操作系统,主要包括监控程序、人机服务程序、数据采集处
理程序、通信服务程序几部分。为了保证实时性要求,提高运行效率,采用ASM51汇编语言编制。3.外形结构方案按盘装仪表结构设计,其外形结构尺寸、安装尺寸、安装方式、接线方式与常规测试仪表保持一致,便于替代传统测试仪表。2.3硬件系统及驱动程序设计8路温度
巡检仪的硬件由主机电路、前向通道、后向通道、人机接口电路、通信接口及供电电源几部分组成,如图2-1所示。其中,主机电路由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路温度的数据采集、标度变换、线性化处理、显示等各项任务。可选8位微处理器系统对程序存储器的要求:就设计任务中规定的功能及技术指标而言,软件任务的复杂程度一般,当采用汇编语言编程实现时,一般5000条指
令可以完成全部编程任务。MCS-51而言,5000*2B=10KB.系统对数据存储器的要求:数据存储器主要作为计算缓冲区、堆栈区、实时数据存储区、中间数据存储区使用,对本设计任务而言,一般200~300B可以满足需要。系统对EEPROM存储器的要求:EEPRO
M存储器的使用性能是指,程序运行时可以向其中写入数据或擦除数据,当系统关机或掉电时,写入的数据能够可靠长久的保留。它主要用来存储使用者存储的数据,如巡回检测的路数(8路温度巡检仪在使用中可以根据需要设定巡检路数)、超限报警值、巡回显示周期.200~300B系统对
定时器/计数器的要求:8路温度巡检仪属于实时性很强的嵌入式系统,实现实时性操作的硬件基础是定时器。对本设计任务来讲,需要1路定时器来产生时钟节拍,实现实时操作;需要1路定时器来作为串行通信的波特率产生器;需要1路定时器来实现A/D转换操作,因此至少需
要3路定时器/计数器。系统对中断控制的要求:根据设计任务要求,软件任务主要有:通信服务、每路A/D转换完成时的数据采集与打开下一输入通道、温度计算、人机接口服务共4项任务。其中,通信服务、A/D转换服务的实时性很强,需要通过2个中断源,2级中断管理实现。系统
时钟需要通过中断提供实时操作。因此,必须有不少于3个中断源、2级中断的中断控制机制,以便根据各项任务的实时性要求进行抢占式调度。系统对通用异步串行收发器(UART)的要求:为了支持RS-485通信,必须有1路UART。系统对
硬件抗干扰的要求:迄今为止,看门狗定时器(WDT,WatchdogTimer)是微机系统唯一完全有效的硬件抗干扰措施,因此系统必须采用WDT。系统对通用并行接口(GPIO)的要求:为了实现主机电路与前向通道、后向通道、人机接口部分的硬件接口,主机电路应当具备20~
30个GPIO。1.AT89C55WD单片机的片内资源及性能与MCS-51系列单片机指令系统兼容,引脚兼容。内部具有可重复编程的20KB的Flash型程序存储器,重复编程次数达1000次。工作电压范围:4~5.5V。时钟频率:静态到33MHz,当时钟频率选择
33MHz时,以每条指令执行时间平均为2个机器周期进行计算,CPU处理速度达1.375MIPS,即每秒可执行137.5万条指令,处理速度非常快。256B数据存储器。32根可编程I/O口线。3个16位定时器/计数器。
6个中断源,2级中断优先级。1个可编程的UART。具有闲置方式与掉电方式两种省电工作方式。1个WDT硬件定时器。2个数据指针。2.X5045性能简介由于选定的单片机AT89C55WD内部没有EEPROM存储器,而单片机上电时必须有自动复位电路,因此主机电路中除了单片机外,必须扩
展EEPROM存储器和上电复位电路。美国XICOR公司生产的X5045集成芯片,集4项功能于一身,除了内部具有EEPROM存储器外,还有上电复位功能、WDT功能、电源电压监控功能。具体指标如下:①内部具有WDT电路,可以编程选择WDT超时周期。②具有低电压监测
和强制复位功能。③具有上电复位控制功能。图2-2X5045的引脚布置④内含4Kbit的EEPROM存储器,可以编程选定进行分块保护,保证重要数据存储的可靠性⑤支持高达33MHz的时钟频率。⑥功耗低,工作电流
小于50A,便于电池供电。(1)引脚描述图2-2X5045的引脚布置(2)指令集X5045的各种操作,包括写使能锁存器的置位与复位、读/写状态寄存器、读/写EEPROM,都是通过向X5045发出有关指令进行的。指令集如表2-1所示。表2-1X50
45的指令集指令名指令格式操作WREN00000110设置写使能锁存器(允许写操作)WRDI00000100复位写使能锁存器(禁止写操作)RDSR00000101读状态寄存器WRSR00000001写状态寄存器(块锁定位)REA
D0000A8011从开始于所选地址的存储器阵列中读出数据WRITE0000A8010把数据写入开始于所选地址的存储器阵列(1~4B)(3)写使能锁存器X5045包含一个写使能锁存器。在内部完成写操作之前,此锁存器必须被设置(SET)。WREN指令可设置锁存器而WRDI指令将复位锁存器。在
上电情况下,和字节、页或状态寄存器写周期完成之后,该锁存器自动复位。如果变为低电平,则锁存器也被复位。(4)状态寄存器RDSR指令提供对状态寄存器的访问。在任何时候都可以读状态寄存器,即使在写周期也如此,状态寄存器的格式如表2-2所示。表2-2状态
寄存器的格式76543210XXWD1WD0BL1BL0WELWIP状态寄存器各位的意义说明如下WIP(Write_In_Process):该位表示“正在写”状态。当该位为“l”时,写操作正在进行;当该位为“0”时,没有写操作在进行。在写期间,所有其他位全置为
“l”。WIP位是只读的。WEL(Write_Enable_Latch):该位表示“写使能锁存”状态。当该位为“1”时,锁存器置位;当该位为“0”时,锁存器复位。WEL位是只读的,它由WREN指令置位,由WRDI指令复位,或者在成功地完成了写周期后复位。BL0、BL1:块保护位,用于
选择EEPROM被保护的范围。这两位由发出WRSR指令来设置,允许用户选择4种保护方式之一。被选择保护的部分只允许读,不允许写。EEPROM的保护范围如表2-3所示。WD0、WD1:这两位用于选择看门
狗定时器(WatchdogTimer)的超时周期,选择范围如表2-4所示。通过发出WRSR指令来设置WD0、WD1。BL1BL0被保护的阵列地址00无01180H~1FFH10100H~1FFH11000H~1FFH表2-3EEPROM的保护范围表2-4WDT的超时周期选择
范围WD1WD0超时周期001.4s01600ms10200ms11禁止3.主机电路硬件原理主机电路中主要包括AT89C55WD单片机和X5045芯片,就可以满足系统对硬件资源的需求,硬件电路原理如图2-3所示。4.驱动程序(1)WDT驱动程序X5045中WDT
的驱动程序有两个,一个用于在单片机正常工作时访问WDT,使WDT不产生复位信号,注意,这个程序应当每隔一个确定的时间间隔运行一次,该时间间隔应当小于WDT超时周期;另一个驱动程序设定WDT的超时周期。访问WD
T驱动程序:根据X5045的使用规则,只要其引脚发生从高电平到低电平的跳变,就实现对内部WDT定时器的复位,因此,根据图2-3所示,只要在连接X5045引脚的P1.4输出一个低电平脉冲即可,即做一次输出低再变高的操作。程序如下:CSBITP1.4RST_WDT:CLRCSSETBCSR
ET设定WDT超时周期的驱动程序:根据X5045的使用要求,通过设定X5045的状态寄存器实现超时周期的设置。本系统选定WDT的超时周期为600ms,X5045的状态寄存器中WD1、WD0两位分别设置
为0、1。不考虑保护EEPROM时,状态寄存器内容可以设置为10H(参见X5045状态寄存器的格式)。在设置状态寄存器之前,需要先完成两个操作:设置写使能寄存器和发送写状态寄存器命令。设置流程如图2-4所示。图2-4设置WDT超时周期流程图(2)E
EPROM写入程序根据X5045的使用规则,向EEPROM内写入内容,按图2-5所示的流程进行。图2-5EEPROM写入流程(3)EEPROM读出程序;********************************************************
**********;子程序名:SEQU_READ;功能:将DPTR中内容为首地址的EEPROM中的内容读出到以R1中内容为首地;址的单片机内部RAM中;底层子程序调用:OUTBYT、INBYT;入口条件
:(R1)=单片机内部RAM的首地址;(DPTR)=EEPROM的首地址;(R2)=要读出的字节数;使用的寄存器:A、DPTR;*******************************************
***********************READ_INSTEQU03H;读数据命令为03HSEQU_READ:CLRSCK;准备读数据CLRCSMOVA,DPH;将EEPROM地址的最高位连同读数据命命令一起发送MOVC,ACC.0MO
VA,#READ_INSTMOVACC.3,CLCALLOUTBYTMOVA,DPL;发送EEPROM的低8位地址LCALLOUTBYTSEQU_READ1:LCALLINBYT;读出1B内容MOV@R1,A;将
读出的1B数据存入单片机RAM中INCR1DJNZR2,SEQU_READ1;循环读数据CLRSCK;推出读数据SETBCSRET“SEQU_READ”子程序用到了一个底层子程序“INBYT”,该子程序用于从EEPROM中读出1B内容,程序如下:INBYT:MOVR0
,#8;1B,8个BIT位INBYT1:SETBSCK;准备读出CLRSCKMOVC,SO;读出内容存于C中RLCA;将C中内容存于A中DJNZR0,INBYT1;循环读出RET2.3.2前向通道电路设计前向通道
的任务是接收温度传感器Pt100铂电阻的信号,将其转变为单片机能够进行处理的数字信号,由信号转换电路、动态稳零电路、多路模拟开关、阻抗匹配电路、放大电路、A/D转换电路等几部分组成。原理框图如图2-6所示,硬件电路如图2-7所示。图2-6前向通道电
路原理框图图2-7前向通道硬件电路图1.信号转换电路信号转换电路由图2-7中的9个惠斯登电桥组成(由于图面所限,图中仅绘出第1个、第2个和第9个),实现将8路Pt100温度传感器输出的电阻信号转换为电压信号。其中,第1个惠斯登电桥没有外接Pt100传感
器,设置它的目的是为动态稳零电路提供零信号(详见5.动态稳零电路)。余下8个惠斯登电桥的工作原理完全一致,这里以第2个电桥为例,它由R5、R6、R7、C3、C4组成。采用惠斯登电桥的方式进行R/V转换的主要优点是,利用桥路的对称平衡特点,有效地克服供电电源Va波动,克服Pt100引线
电阻影响,克服桥路电阻温漂问题。图2-8R/V转换电路①克服桥路供电电源Va波动影响,克服桥路电阻温漂影响。图2-8R/V转换电路,在图2-8的电路中,忽略引线电阻影响,认定r=0,则PtAaPt6RVVRR=+5Ba57RVVRR=+Rpt为Pt100的阻值,当取R6=R7,R5=Rpt时,。
只要桥路4臂电阻对应相等,则桥路输出电压与桥路供电电源波动无关。当桥路电阻R5、R6、R7随周围环境温度发生变化,即出现温漂时,只要R6与R7漂移幅度、方向一致,R6=R7>>R5,则桥路输出电压受温漂影响很小。abAB0VVV=−=②
克服Pt100引线电阻影响如图2-8所示,当安装在现场的Pt100传感器通过三线连接到仪表时,要求三线长度、线径、材质一致,这样做可以保证三线的线路电阻相等为r,当r<<R6(R7)时,桥路输出:取R6=R7,R5=RPt时,。说明与引线电阻无关,即可以
有效地克服引线电阻影响问题。PtAaPt6RVVRRr=++5Ba57RVVRRr=++abAB0VVV=−=2.多路模拟开关图2-7中的CD4052(U1、U2、U3)是一个双端4路(相当于双刀四掷)的模拟开关,由A、B、INH三个控制引脚选择将X、Y
切向0、1、2或3通道。控制引脚状态与导通通道关系如表2-5所示。4个I/O口状态与接通电阻桥路的关系如表2-6所示。表2-5控制引脚状态与导通通道关系INHBA导通通道000X0、Y0001X1、Y1010X2、X2011X3、Y31XX不通表2-64个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.26。根据图2-8的测量桥路,当R6=R7=10k,R5=100时,忽略引线电阻影响,测量上限桥路输出电
压:取R29=1k,R32=13k,反相放大器增益为13。abmax1.8VAV=abmaxVPtmax5abmaxa6Ptmax75390.2610050.1383V10000390.2610000100RRVVRRRR=−=−
=++++1.8130.1383A==5.动态稳零电路作用:抑制温漂和时漂电压工作原理:如图2-9所示,运放U4D与R29、R30、R31、R32构成反相放大器,其增益:,运放的输出为Vo。开关SW切向上,接通Vab有效输入信号;开关SW切向下,接通零输入信号。32
29RAR=−图2-9动态稳零电路原理当SW切向下时,放大器输出为:式中,VIO为运算放大器的失调电压。当SW切向上时,放大器输出为:式中,VIO为运算放大器的失调电压。将两次输出相减:O1IOVAV=O2IOab()VAVV=+O2O1abVVAV−=上式说明,
如果运放在每次测量有效信号之前,先接通零信号测量出运放的失调电压,再接通有效信号,将得到的输出减去失调电压作为运放的有效输出,就从根本上克服了失调电压的影响。6.A/D转换电路A/D转换电路设计的核心是A/D转换器的选择,选择时主要考虑三项技术指
标:转换精度、转换速度和对单片机接口资源的耗用。影响A/D转换精度的指标一般有分辨率、量化误差和线性度。从目前市场供应的A/D转换器来看,量化误差与线性度两个指标一般都很高。转换精度主要取决于分辨率,对于n位的A/D转换器,转换精度为;转换速度选取的依据是测量信号的变化
频率。根据香农定理,采样周期(主要取决于A/D转换时间)至少是测量信号变化周期的1/2以下。对于本设计任务而言,测量的是工业过程的温度参数,其变化缓慢,一般场合,在1秒内很少有超过0.5℃的变化,因此可以选择转换精度较高,速度
较慢的双向积分式A/D转换器,而且在A/D转换器之前不必加采样保持器。对于测量8路温度的温度巡检仪而言,根据上述分析,选择转换速度为16次/秒的A/D转换器,可以满足要求。n21在本设计中,选用美国Intersil公司生产的ICL7135双向积分生式A/D转换器。
ICL7135的主要技术指标如下:转换精度为1/19999;⚫双极性转换,数字满码输出为19999;⚫自动稳零技术,保证0V信号输入时,数字码0输出;⚫高输入阻抗,输入1pA漏电流;⚫差分输入;⚫零点极性检测;⚫仅需单一参考电源;
⚫具有过量程与欠量程指示,便于实现自动量程转换;⚫所有输出电平符合TTL电平标准;⚫具有并行与串行两种输出信号形式。(1)ICL7135输出方式选择ICL7135的引脚布置图如图2-10所示。经A/D转换后的数字码有两种输出时序:串行输出时序与分时并行输出时序,分
别如图2-11和图2-12所示。从图2-11所示的时序可以看到,一个完整的测量周期包括三个阶段:自动稳零(即AZ)阶段,信号积分(即SI)阶段,参考电压积分(即RI)阶段。图2-10ICL7135引脚布置图图2-11串行输出时序图图2-12
分时并行输出时序图(2)硬件接口电路根据图2-11所示时序设计的A/D转换硬件接口电路如图2-13所示。ICL7135仅通过两根线与AT89C55相接,仅占用AT89C55T1、T2两个计数器及外部中断INT1。图2-13A/D转换接口电路图2-14T2计数器工作于
方波产生器时的逻辑框图①ICL7135时钟信号提供ICL7135的时钟信号直接来自AT89C55的P1.0。P1.0是AT89C55的复用口,当AT89C55的T2计数器工作于方波产生器方式(Progr
ammableClockOut)时,通过该引脚可输出连续的方波信号,其占空比为50%,频率可通过编程确定,如图2-14所示。②A/D转换结果的读取ICL7135的时钟信号源于AT89C55的T2计数器方波输出,同时接至AT89C5
5的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工作于方波产生器方式MOVT2
MOD,#02HMOVRCAP2H,#0FFH;输出方波频率为250kHzMOVRCAP2L,#0F4H②A/D转换结果读出程序如图2-13所示,当BUSY信号由高跳变到低时,将触发INT1中断,在INT1中断服务程序中将A/D转
换结果读出,存放于内部RAM30H、31H中。INT1_ISR:PUSHPSW;保护现场PUSHACCMOVA,TL1;T1计数减去10001(2711H)后送30H,31H中CLRCSUBBA,#11HMOV31H,AMOVA,TH1SUBBA,#27HMOV30H,AMOVTL1,#0;清零T
1MOVTH1,#0POPACCPOPPSWRETI2.3.3后向通道电路设计后向通道电路由4~20mA模拟量输出电路与超限报警开关量输出电路两部分组成。1.4~20mA模拟量输出电路该电路是将所检测的每路温度都对应地输出一个与之成线
性关系的4~20mA电流信号,以便根据需要供给调节器、记录装置或DCS系统。硬件电路设计如图2-15所示。图2-15多路4~20mA输出电路多路模拟开关CD4051的控制导通关系如表2-7所示,通过单片机P2.4、P2.5、P2.6三个
引脚高低电平的不同输出,可以将D/A转换的模拟电压输出到与前向8路通道相对应的输出通道保持电路中。输入状态导通通道INHIBITCBA0000000011输入状态导通通道INHIBITCBA0010200113010040101501106011171均不导通该模拟保持电
路还同时兼有电压/电流转换功能。转换输出电流I在OUT+与OUT−(外接负载)之间输出,I与D/A转换输出电压Vout之间的关系由式确定,D/A转换器满量程输出电压Vout与D/A转换器的参考电压由式Vout=2Vref确定。因此,当取Vref=1V,
R1=100时,D/A转换满量程输出电流为:根据TLC5615的输入时序可以编写其驱动程序。输入时序如图2-16所示ref22120mA100VIR===图2-16TLC5615的输入时序2.超限报警开关量输出电路当某路温度超过设定的报警值
时,输出一个机械接点信号,便于连接声、光报警装置,进行报警提示。如图2-17所示,利用单片机P3.6引脚控制上限报警接点输出,P3.7控制下限报警接点输出。以上限报警为例,当温度超过上限报警值时,令P3.6为“0”,则三极管导通
,继电器J1得电,使接点动作;当温度低于上限报警值时,令P3.6为“1”,则关闭上限报警。图2-17超限报警输出电路2.3.4人机接口电路设计人机接口电路由按键接口电路与显示器接口电路组成。1.按键接口电路及驱动程序
通过仪表前面板上的按键操作,可以查看检测的温度、报警设定值等参数,也可以向仪表内输入一些数据。例如,输入报警设定值、转换输出20mA时对应的温度值、巡回显示时间间隔等数据。仪表按键接口电路如图2-18所示。本设计中,
仅用3个按键,即可实现各种操作需要。由于按键个数少,不需要对按键进行编码访问,直接连接在单片机的P1.5、P1.6、P1.7上即可。单片机的P1口内部具有上拉电阻,因此,当无按键按下时,对应的I/O口为高电平;当有按键按下时,对应的I/O口为低电平
,据此可识别按键的按下与否。图2-18按键接口电路对于3个按键而言,最多可以有8种按键方式。图2-18所示的3个按键,从左到右分别称为键△、键◇与键□。8种按键方式如下,而且设计的按键驱动程序,每调用一次,
都有如下8种结果之一:①键△单独按下;结果则累加器A中返回“1”;②键◇单独按下;结果则累加器A中返回“2”;③键□单独按下;结果则累加器A中返回“3”;④键△与键◇同时按下;结果则累加器A中返回“4”;⑤键△与键□同时按下;结果则累加器A中返回“4”;⑥键◇与键□同时按下;结果则累加器
A中返回“6”;⑦键△、键◇与键□同时按下;结果则累加器A中返回“7”;⑧三键均未按下。结果则累加器A中返回“0”;按键驱动程序要考虑的另一个问题是按键的“消抖”问题。图2-19按键的抖动干扰2.LED显示接口电路及驱动程序在仪表的前面板上设计
了6位共阴极LED数码管显示器,用于显示各路实测温度和设定参数。为了尽量减少仪表的硬件开销,采用了动态刷新显示方法。6位LED数码管显示器各有8个显示段,每位LED数码管相同的段连在一起,由一个I/O扩展芯片U2统一进行段驱动
,而各位的共阴极COM端则由另一个I/O扩展芯片U1进行位驱动。要在某位显示某一字符,需要由单片机通过数据总线使U2锁存8段显示码,U1锁存位选码。图2-20LED显示接口电路图2-20中,U1与U2采用八D
型透明锁存器和边沿触发器——74HC374,作为I/O口的扩展。74HC374的内部组成如图2-21所示,其真值表如表2-8所示。表2-874HC374的真值表输出控制ClockD输出L↑HHL↑LLLLXQ0HXXZ在74HC374的内部集成了8
个D触发器。8个触发器的输出控制端连接到一起作为共同的输出控制端OE,通过引脚1引出;8个触发器的时钟输入端连接到一起作为共同的时钟输入端CLK,通过引脚11引出。图2-2174HC374的内部组成驱动程序的设计思路是,采用“内存映射”的显示原理,即6位LED的显示内容分别对应单片机内部
6BRAM,显示周期设计为12ms,每位LED的显示时间为2ms,周而复始地轮流扫描,就实现了动态显示。为了严格地保证显示周期和每位LED的显示时间,可以通过单片机内部定时器的定时中断,在中断服务程序中进行动态显示。设计驱动程序要考虑的另一个问题是小数点的显示,允许小数点在
6位LED的任何一位显示,实现方法是利用1字节的内部RAM标注小数点的显示位置,该字节内容为0~5,分别表示小数点的显示位置在最左1位到最右1位。由于仪表的前面板面积有限,因此只设计了3个按键。当需要向仪表中输入数据时,只能采用“逐位加1输入”法,即利用一个按键输入0~9这10个数
,每按动一次按键,该位数值加1,加至9后则回至0,同时该位LED呈闪烁显示状态。该位数据输入完成后,再移位进行下一位的输入。实现某位LED闪烁显示的方法是,让该位LED按某个时间周期交替亮、灭,这个时间周期必须大于人的视觉停留时间,一般可取120ms。在程序设计中,使用一个BIT变量,每过120m
s,将该变量数值取反。当该变量数值为“1”时显示,为“0”时不显示。需要利用1字节的内部RAM标注闪烁显示位的位置,该字节内容为0~5,分别表示闪烁显示位的位置在最左1位到最右1位。3.数据输入驱动程序上述电路及其驱动程序完成了响应按键与显示字符的功能,还有一个重要任
务就是通过按键和显示器,向仪表输入数据。输入数据涉及仪表的操作,应尽量使操作简单、有序,符合多数人的操作习惯。由图2-18按键接口电路与图2-20LED显示器接口电路构成的人机接口电路在仪表上的前操作面板如图2-22所示。输入数据的操作如下。按动“△”键,闪烁位数值增1,增大到9
后回至0,如下所示:┌→0→1→2→3→4→5→6→7→8→9→┐└────────←───────┘图2-22仪表前面板按动“◇”键,闪烁位在4位温度显示器中向右移动1位,当从最右位继续移动时,便回至第1位,如下所示:┌→1
→2→3→4→┐└───────┘按动“□”键,确认4位温度显示器当前显示的参数。2.3.5通信接口电路设计智能仪器设计,必须考虑对某种网络的支持,方便构成局域测控网络,以便实现更高程度的集中监控和更大范围的数
据共享。本例设计了以MAX487E芯片为收发器的RS-485总线通信接口电路,如图2-23所示。图2-23通信接口电路2.4软件设计根据设计任务及2.3节讨论的硬件电路,整机的软件设计任务有4项,从实时性要求考虑,从高到低依次为:通信任务、数据采集与温度计算、人机服
务和系统初始化。系统初始化程序在开机时运行一次即可,不在考虑范围之内。当构成一个数据采集局域网络时,本机在网络中处于从站地位,本机响应网络的最大时间延迟为主站发出一帧信息的时间,超过这个时间延迟,主站的调度命令得不到响应,将
降低整个网络的通信效率,因此通信任务应作为本机最高级别任务。人机服务主要是按键响应任务,人的按键动作时间一般在100ms左右,只要在这个时间内做出响应即可,实时性要求不高,安排为最低级别任务。数据采集与
温度计算任务作为中间级别任务。为了保证三项任务按预定优先级别执行,需要通过中断机制实现。通信任务在串行通信中断服务程序中完成,其中断设置为高级中断,数据采集与温度计算任务安排在外部中断服务程序中完成,
其中断设置为低级中断,人机服务任务安排在主程序中完成。2.4.1人机服务任务与主程序人机服务任务是实现仪器的操作使用,人机服务程序安排在主程序中运行。一开始执行主程序时,需要首先运行系统初始化程序,初始化程序仅需开机时运行一次。主程序仅包括初始化程序和人机服务程序。1.仪器操作方法仪表
前面板如图2-22所示,通道显示为2位,温度显示为4位。为叙述方便,4位温度显示器自左至右分别称为第1、2、3、4位。仪器有两种状态:工作状态与设定状态。仪器一开机自动处于工作状态,通过按键操作可从工作状态进入设
定状态,并从设定状态退回工作状态。(1)工作状态下的操作按动“△”键,查看报警设定方式、报警设定值、巡回显示时间间隔。报警方式在通道显示器上以“1A”或“2A”表示,1A代表上限报警方式,2A代表下限报警方式,在温度显示器上通过两位数字显示具体报警方式,两位数字的含义如表2-9所示;报警设定值
在通道显示器上以“1d”或“2d”表示,分别代表上限报警值和下限报警值,具体数值在4位温度显示器上显示;巡回显示时间间隔在通道显示器上以“DS”表示,单位为秒。首次按动“△”键,进入“设定值显示状态”,在本状态下,继续按动“△”键,
则按下述顺序巡回显示各设定参数:┌→1A→1d→2A→2d→DS┐└───────────┘按动“◇”键,仪器进入“定点显示状态”,每按动一下此键,依次显示下一通道检测值。连续按动,则不停地显示下一通道检测值,如下所示:┌→1→2→3→4→5→6→7→
8┐└─────────────┘按动“□”键,仪表进入“巡回显示状态”,以选定的巡回显示时间间隔依次显示各路检测温度。第3位第4位定义00取消该路报警01下限报警,设定值为正02上限报警,设定值为正10取消该路报警11下限
报警,设定值为负12上限报警,设定值为负表2-9报警方式(2)设定状态下的操作报警方式、报警设定值、巡回显示时间间隔三种参数需要在设定状态下输入到仪器中。具体操作如下。按动“△”键,闪烁位数值增1,由9继
续增1时便回至0,如下所示:┌→0→1→2→3→4→5→6→7→8→9→┐└──────────←────────┘按动“◇”键,闪烁位在4位温度显示器中向右移动1位,在最右位继续移动时,便回至第1位,如下所示:┌→1→2→3→4→┐└─
──────┘按动“□”键,确认4位温度显示器当前显示的参数,进入下一个参数的设定。(3)从工作状态进入设定状态在工作状态下,同时按住“◇”键与“□”键,当通道显示器显示“1A”,同时4位温度显示器有1位闪烁显示时,表明仪表进入“参数设定状态”。(4)从设定状态返回工作状态完成设定后,
按动“□”键,便退出设定状态,进入工作状态。在工作状态下,温度显示器上没有闪烁位。2.实现仪器操作的软件编程实现上述操作的人机服务程序流程图如图2-24所示。2.4.2数据采集与温度计算程序根据图2-7与图2-13,每个通道A/D转换结束时,都以
中断的形式通知CPU,每个通道的数据采集与温度计算都在中断服务程序中完成。一共用了9路数据通道,0路为动态零点数据,1~8路为8路温度数据。每次采集数据通道的通道号,都存储在“CH_NO”单元中。每次采集的数据首先经过预处理,在预处理中减掉10001个数字码(原因在前向通道关于A/D转换设计中有
详细叙述),剩余的为二进制数形式的A/D转换数字码。为便于后级温度计算,还要将二进制数转换为BCD码形式。接下来进行动态稳零处理,即将该通道的A/D转换数字码减去零点数据,则差值是消除了运放漂移影响的、由现场实测温度决定的数据。最后
进行温度计算,且通过多路开关为A/D转换器打开下一通道。流程图如图2-25所示。图2-25数据采集与温度计算流程图2.4.3通信程序根据图2-23所示的通信接口电路,可以将本仪表纳入到总线拓扑的RS-485网络中。网络的介质访问方式为主从方式,
主机为PC,而本仪表处于从机地位。从机在接收到主机的调度命令后,可以占用信道,将主机要求的信息发送到RS-485网络中。主机通过相应的通信协议,可以读取从机采集的8路温度、报警设定数据,以及重新设定从机的有关参数。凡是从机可以就地显示和设定的参数,都可以通过主机发出相
应的命令实现,以提高局域测量网络的集中监控能力。在从机不发送信息时,处于接收状态。1.通信协议介质访问方式:主从方式,既主机调度,从机响应。通信方式:半双工通信。从机在接到主机要求发数据命令后,在1ms内做出响应。波特率:4800bps,1位起始位,8位数据位,1位停止位,无奇偶校验
。(1)主机读取从机采集的8路温度数据命令主机发:#〈Addr〉R0〈CR〉说明:#命令引导码,1位ASCII字符;Addr从机地址,十六进制数,00~FF,2位ASCII字符;R0读取8路温度数据的命令,2位ASCII字符;CR回
车符,1位ASCII字符。从机响应:=〈Addr〉R0〈DATA〉〈CS〉〈CR〉说明:=引导码,1位ASCII字符;Addr从机地址,十六进制数,00~FF,2位ASCII字符;R0读取8路温度数据的命令,2位ASCII字符;DATA40位ASCII字符,依次为1~8
路温度数据,每路温度数据为5位,3位整数,1位小数,1个小数点;CS校验和,从“=”开始,至〈CS〉之前各位数据按十六制数加法相加,其和的最低2位十六进制数,2位ASCII字符,用于数据通信的侦错;CR回车符,1位ASCII字符。(
2)主机读取从机的设定参数主机发:#〈Addr〉R1〈CR〉说明:#命令引导码,1位ASCII字符;Addr从机地址,十六进制数,00~FF,2位ASCII字符;R1读取设定参数的命令,2位ASCII字符;CR回
车符,1位ASCII字符。从机响应:=〈Addr〉R1〈DATA〉〈CS〉〈CR〉说明:=引导码,1位ASCII字符;Addr从机地址,十六进制数,00~FF,2位ASCII字符;R1读取设定参数的命令,2位ASCII字符;DATA20位ASCII字符,依
次为上限报警方式、上限报警值、下限报警方式、下限报警值、巡回显示时间间隔5个参数,每个参数4位;CS校验和,从“=”开始,至〈CS〉之前各位数据按十六制数加法相加,其和的最低2位十六进制数,2位ASCII字符,用
于数据通信的侦错;CR回车符,1位ASCII字符。(3)主机发送上限报警方式主机发:#〈Addr〉W0〈DATA〉〈CS〉〈CR〉从机响应:写入从机相应存储单元说明:#命令引导码,1位ASCII字符;Addr从机地址,十六进制数,00~FF,2位ASCII字符;
W0发送上限报警方式的命令,2位ASCII字符;DATA4位ASCII字符,为上限报警方式;CS校验和,从“#”开始,至〈CS〉之前各位数据按十六制数加法相加,其和的最低2位十六进制数,2位ASCII字符,用于数据通信
的侦错;CR回车符,一位ASCII字符。(4)主机发送上限报警值主站发:#〈Addr〉W1〈DATA〉〈CS〉〈CR〉从机响应:写入从机相应存储单元说明:#命令引导码,1位ASCII字符;Addr从机地址,十六进制数,00~FF,2位ASCII字符;W1
发送上限报警值的命令,2位ASCII字符;DATA4位ASCII字符,为上限报警值;CS校验和,从“#”开始,至〈CS〉之前各位数据按十六制数加法相加,其和的最低2位十六进制数,2位ASCII字符,用于数据通信的侦错;CR回车符,一位ASCII字符。(5)主机
发送下限报警方式主机发:#〈Addr〉W2〈DATA〉〈CS〉〈CR〉从机响应:写入从机相应存储单元说明:#命令引导码,1位ASCII字符;Addr从机地址,十六进制数,00~FF,2位ASCII字符;W2发送下限报警方式的命令,2位AS
CII字符;DAT4位ASCII字符,为下限报警方式;CS校验和,从“#”开始,至〈CS〉之前各位数据按十六制数加法相加,其和的最低2位十六进制数,2位ASCII字符,用于数据通信的侦错;CR回车符,1位AS
CII字符。(6)主机发送下限报警值主机发:#〈Addr〉W3〈DATA〉〈CS〉〈CR〉从机响应:写入从机相应存储单元说明:#命令引导码,1位ASCII字符;Addr从机地址,十六进制数,00~FF,2位ASCII字符;W3发送下限报警值的命令,
2位ASCII字符;DATA4位ASCII字符,为上下限报警值;CS校验和,从“#”开始,至〈CS〉之前各位数据按十六制数加法相加,其和的最低2位十六进制数,2位ASCII字符,用于数据通信的侦错;CR回车符,一位ASCII字符。(7)主机发送巡回显示时间间隔主机发:#〈Addr〉W4〈DA
TA〉〈CS〉〈CR〉从机响应:写入下位机相应存储单元说明:#命令引导码,1位ASCII字符;Addr从机地址,十六进制数,00~FF,2位ASCII字符;W4发送上限报警值的命令,2位ASCII字符;DAT
A4位ASCII字符,巡回显示时间间隔;CS校验和,从“#”开始,至〈CS〉之前各位数据按十六制数加法相加,其和的最低2位十六进制数,2位ASCII字符。用于数据通信的侦错;CR回车符,1位ASCII字符。2.实现通信协议的软件编程实现上述通信协议的通信软件在串行通
信中断服务程序中的编制2.5结构设计仪表的结构设计是指仪表的外形与安装形式的设计。结构设计应当满足应用需要。一般而言,测试仪表的结构主要有三种形式:台式结构、便携式结构和盘装结构。台式结构一般适合于实验室使用,仪表被放置在桌面上,非长年连续使
用。便携式结构体积小巧、便于随身携带,由电池供电,适用于非连续使用的场合。盘装结构的测试仪表安装在仪表盘面上,便于观测、操作,适合对连续生产过程长年连续不断地进行监控。本温度巡检仪采用盘装结构,主要用于对连续生产过程的长期监控。盘装结构的测试
仪表,供操作使用的前面板尺寸有限,大多为160×80(长×宽),允许安放的显示器和按键数量有限。一般以微处理器为核心的智能仪表,借助软件可以实现丰富的功能,而实现丰富的功能就意味着需要较多数量的按键和显示器,两者之间存在着矛盾。在人机接口硬件资源不足的情况下,要实现丰富的功能,往往会使得仪表的操作
十分复杂,操作过程难以记忆,使用者不愿意接受。解决这一问题的方法只能从两方面着手:第一,在仪表的功能设计上,体现主要功能,无关紧要的功能尽量舍弃,在操作简便和功能丰富两者之间认真权衡折中;第二,尽量通过后台复杂软件支持,使操作过程符合人的
操作习惯,有序、简便、便于记忆。在确定仪表的操作方式之前,应当仔细研究同类仪表的操作过程与设计特点,尽量取长补短。操作方式的设计是否合理,是影响智能仪表成功推向市场的一个重要因素,必须十分重视。对智能温度巡检仪而言,结构设计考虑的另一个问题是对外接线。例如
,与Pt100温度传感器配合使用的8路温度巡检仪,采用3线连接时,与传感器的连接有24根线,加上供电电源线与报警输出线,仪表对外连接线超过30根。连续使用的测试仪表按照工厂规定有使用周期,这个周期可以是一个月、半年、一
年等,超过使用周期,就需要拆回实验室重新进行标定,因此需要考虑仪表的方便拆接问题。仪表对外接线,一般有两种方式:第一,通过接线端子连接,这种连接方式接线可靠,一般没有接触不良的问题,缺点是需要逐线连接,拆接不方便;第二,通过接插件连接,优点是通过一次插拔就可以接通或
断开仪表的全部对外连线,拆接十分方便,缺点是工业现场条件恶劣,湿度大,存在各种腐蚀性气体,长期使用存在接触不良的问题。在选择仪表的对外接线方式上,应当仔细分析研究,着重考虑应用场合的需要。对于使用周期长,使用环境恶劣的场合,应采用接线端子连接的方式。其他场
合可以考虑采用接插件的接线方式,选用接插件时,应仔细考核其质量指标。2.6工程设计与组装调试仪表的硬件设计分方案设计与工程设计两步,一般原理图设计完毕后,仪表的方案设计即告结束,紧接下来就是工程设计。工程设计主要是根据电路原理图绘制印制电路板图(PCB图),然后依据PC
B图加工印制电路板,最后进行组装、调试。1.印制电路板设计原理图绘制与PCB图绘制需要借助于计算机辅助设计。目前国内应用较多的CAD软件是PROTELDXP和ORCAD。PCB图设计要在原理图设计完成之后进行。PCB设计的第一步是元件的
布局,将元器件排布在尺寸和形状确定的板面上。板面的尺寸和形状应服从于仪器的结构设计,布局应考虑元器件排布疏密均衡及抗干扰等问题,例如:元器件之间连线应尽量短,接插件排放应方便线路板之间的连接。布局的恰当与否直接关系到布线的成功率,应特别注意,考虑周详
。布局完成后,进行布线。目前高质量、成功的布线,还需依靠手工布线。尽管各种CAD软件提供了强大的自动布线功能,但其布线质量还无法与有经验的布板工程师的布线质量相提并论。其原因是,布线中考虑的因素过多,目前各种自动
布线算法无法将诸多因素处理周到。2.印制电路板的测试印制电路板加工完毕后,需要进行空板测试,主要测试印制电路板的线条、过孔、焊盘是否严格符合PCB(印制电路板)设计文件要求,板上的每个网络是否全部接通,网络之间有否短接情况。有条件时,可以通过专用设备进行严格测试检查。对于
单面板、双面板,可以通过目测附以万用表等简单测试工具进行测试。从目前国内印制电路板的加工工艺水平来看,线条断线的情况不多见,出现问题较多的是过孔的断线以及线、过孔、焊盘相互之间的短接问题。对于超过两层的多
层电路板来说,依靠人工通过简单测试工具进行测试是难以奏效的,只能依赖于专用测试设备,依赖于生产厂家的加工质量保证。3.元器件测试组装之前,所有上板的元器件必须经过测试。若发现整板硬件调试不通或某些性能指标达不到要求,问题一般出在以下三个方面:电路
板、元器件或线路原理。如果电路板与元器件已经经过测试,则可以将精力集中在分析线路原理方面,从而大大提高硬件调试效率。因此,组装之前进行元器件的测试,是提高效率的做法。4.元器件安装样机的安装通常是手工安装。安装焊接时,应当遵循“先安装体积小、高度低的元器件,后安装体积大、高度大的
元器件”的原则,这样做会给安装带来方便。对于电源电路与其他模拟电路、数字电路设计在一块电路板上的情况,应当先焊接安装电源电路,待电源电路安装调试通过之后再安装其他电路。如果整板元器件同时安装调试,万一电源电路有问题,可能会损毁其他电路的元器件。5.板级
调试每块电路板安装完毕之后,都应当先进行单板的调试,根据电路原理图,对本板的硬件性能进行全面调试。对于逻辑电路主要测试其逻辑功能是否正确,对于模拟电路主要测试其精度指标、稳定性指标等其他质量指标。6.内部连线每块电路板板级调试通过之后,着
手进行电路板之间的连线,连同结构件的安装,组成整机。要保证连线的正确,整齐美观,工艺合理。7.硬件功能调试与驱动程序调试整机安装完毕后,可以进行整机硬件功能的调试,一般按前向、后向通道等几部分进行。前向通道与信号发生器连接,由信号发
生器输出模拟信号,测试模拟电路对模拟信号的处理是否达到设计要求,精度、稳定性等质量指标是否达到要求。对测试仪表来讲,前向通道模拟电路的质量指标决定了整机的质量指标,除设计阶段应当充分重视外,也要仔细调试。后向通道也涉及模拟电路的调试,通过调试达到质量指标要求。主机电路
、人机接口电路、通信接口电路主要处理的是数字信号,调试中应注重逻辑的正确性。逻辑电路的质量指标,如噪声容限、抗干扰性能、驱动能力、响应时间等,在线路原理设计、元器件选用、电路板设计加工完毕后,基本就确定下来了,在调试过程中是无能为力的。对智
能仪表而言,整机的功能、性能指标是软件操控硬件实现的。底层驱动程序是衔接硬件与软件之间的桥梁,硬件功能能否很好发挥,软件对硬件的操控是否到位,都取决于驱动程序编制的质量。通常,驱动程序编制调试通过后,硬件调试也就完成了。8
.软件调试硬件调试结束、驱动程序调试结束后,就可以进行软件调试了。软件调试一般采用功能调试的方法进行,即通过仪表的外在功能是否实现、操作方法是否实现、有否错误等来测试软件的正确与否。由于测试功能选择的有限性、方法的有限性、测试者经验的局限性,因此软件会存在一定的纰漏
与瑕疵,需要严格仔细进行。最好请非本软件设计人员来进行,从设计者之外的思路出发来发现软件存在的错误和瑕疵。9.整机功能测试与考核整机硬、软件调试通过后,需要在实验室条件下,模拟现场运行情况,连续通电考核
各项功能是否实现,各项技术指标是否达到,对整机的可靠性做出初步评价。达到工业现场运行的基本要求后,可以在现场运行一段时间,对硬件、软件、结构做出必要的修改。作为工业产品,应当通过有关例行实验后,方可以组织生产并投放到市场中。