技术文章

当前页面: 首页 >技术文章 >提高测控系统可靠性方法的综合应用

提高测控系统可靠性方法的综合应用

供稿:中国工控网 2003/11/24 0:00:00

0 人气:3427

1.引言
目前,随着时代的发展,人们对工业控制可靠性和操作简易性的要求越来越高。但是以往使用的微机或单片机独立运行的系统不能很好协调用户的这些需求。
  普通的微机用于控制或实验监测等一般是采取加插扩展卡,系统软件是在windows系统下编程实现。其优点是界面友好,可视性强,操作简便直观,有许多标准的软件可供选择,编程环境好。
缺点是可靠性差,硬件的插接牢固性和系统抗干扰性都比较差,软件运行的win机制是一个多任务系统,不当的操作或程序问题可能导致死机。一旦死机,微机便失去了输出通道的数据更新,而输出通道一般都具有锁存功能,将长期保持原来的状态。如果不采取措施,容易出现危险。比如用D/A板多路加热或流量调节,故障后稍许延时就会导致系统环境过热或则超调,在无人看管的情况下就会导致事故发生。
  单片机嵌入式系统用于控制的可靠性很高,控制输出通道一般不会出现问题,而且它还具有低电压、低功耗和体积小等优点。但它的缺点在于软件功能简单和显示界面单调,人机交互功能较差,难以满足人们更高的要求。
在嵌入式系统中为了提高系统的可靠性,采用了一种称为看门狗的装置。所谓的看门狗,实质上是一个定时器。它和CPU并行工作,基本不占用系统时间。在系统正常运行时,CPU在每隔一个预制的时间给该装置清零,使它重新计数,以表示正常工作。当出现故障时,CPU不能定时给它清零,看门狗超时并产生中断,强迫单片机进入复位状态,使CPU从硬件或软件的故障中解脱出来。借鉴嵌入式系统中硬件看门狗的思想在微机工作时可以与单片机进行通信,用单片机来控制输出通道,通信丧失一段时间以后单片机系统自动进入紧急处理程序,将输出通道的模拟量调至初始化时预置的安全值,将开关量关闭或接通,即便是无人发现故障,也不会发生事故。一旦通信恢复,单片机可接收微机指令,恢复输出,或按自身的程序恢复。整个系统设计的结构框图如图1:


2.系统组成
  微机与单片机间采用串口通信。单片机直接控制全部输出通道,微机不扩接硬件,靠软件指令串行输出,单片机译码后控制输出通道,一旦重复出现联络码丢失,单片机启动安全模式。
本设计的输出通道,共包括了上面图1中提到的三种主要通道,分别如下:2.1 D/A转换模拟量控制通道
  这种信号量可用于模拟量驱动的各种仪表及直流伺服机构。系统中使用的D/A转换器,是具有8位分辨率和两级数据缓冲器的DAC0832。它可以实现多通道D/A转换的同步输出,有双缓冲、单缓冲、直通三种工作模式。本系统采用双通道双缓冲同步输出工作方式。两路DAC0832的片选分别由P2.5和P2.6来选通,它们的 和 端由单片机的 引脚同时控制,用P3.3引脚控制两路DA转换器的 选择信号。这样输出数据时先根据片选信号和 信号分别选通两路转换的第一级缓冲,再用P3.3同时选通所有D/A的第二级缓冲,达到同时选通的效果。2.2 开关量控制通道
  在实际的嵌入式系统中使用最多的就是开关量的控制。例如各种接点的通断,信号灯的亮灭等。在单片机系统中,开关量都是通过单片机的I/O口或扩展I/O口输出的。标准的TTL门电路在0电平时的吸收电流约为16mA,对于一些小型功率开关,直接采用I/O接口或采用增加I/O接口的驱动能力即可。但对于那些大功率开关(如继电器、电机、电磁开关等)单片机通常不足以直接驱动,需要扩接大功率开关接口电路。本设计系统中采用最为简单的功率晶体管来驱动。2.3 数字量控制通道
  该通道用于给各种数字仪表或显示终端提供信息。


  系统原理图如图2所示,微机与单片机间采用RS232C通信标准。因为传输距离较近不需要通过调制解调器,只采用比较简单的3线连接,即TXD、RXD、GND。RS232与TTL电平转换的工作由MAX232来实现。在单片机部分,P0—P7作为D/A转换的数据线,P2.5、P2.6连接DAC0832的片选端,用P2.4控制开关量输出,P2.3引脚作为数字量信号输出。3.提高可靠性的方法
3.1 X25045
  为了保证单片机控制部分本身的可靠性,系统中增加了X25045器件。X25045由美国Xicor公司生产,兼有看门狗定时器、复位定时器和EEPROM三种功能。看门狗定时器对微处理器提供了独立的保护系统,一旦出现故障,RESET做出响应;Vcc监测电路可使系统不会出现低电压工作状态,当电压下降到最小工作值以下时,系统复位,直到Vcc返回稳定值。另外X25045采用简单的SPI总线工作方式,具有256字节的串行EEPROM,可以作为单片机的外部扩展存储器。以下是X25045的各种功能子程序:置X25045写使能子程序:
WREN_CMD: CLR SCK ;给出时钟下降沿
NOP ;降低X25045的工作频率V
CLR CS ;片选中X25045
MOV A,#WREN_INST ;将写使能指令给A(06H)
ACALL OUTBYT ;调输出字节给X25045子程序
CLR SCK ;再给出时钟下降沿
SETB CS ;片不选中X25045
RET
置X25045写不使能子程序 :
WRDI_CMD: CLR SCK ;给出时钟下降沿
NOP ;降低X25045的工作频率V
CLR CS ;片选中X25045
MOV A,#WRDI_INST ;将写不使能指令给A(04H)
ACALL OUTBYT ;调输出字节给X25045子程序
CLR SCK ;再给出时钟下降沿
SETB CS ;片不选中X25045
RET
写进X25045中的状态寄存器,设定看门狗延时1.4S子程序
WRSR_CMD: CLR SCK ;给出时钟下降沿
NOP ;降低X25045的工作频率V
CLR CS ;片选中X25045
MOV A,#WRSR_INST ;将写状态寄存器指令给A(01H)
ACALL OUTBYT ;调输出字节给X25045子程序
MOV A,#STATUS_REG ;将写状态寄存器数据给A(00H,1.4S,无块保护)
ACALL OUTBYT ;调输出字节给X25045子程序
CLR SCK ;再给出时钟下降沿
SETB CS ;片不选中X25045
ACALL WIP_POLL ;调数据未写好查询等待子程序
RET
读出X25045中的状态寄存器内容(查询写好标志位)子程序:
RDSR_CMD: CLR SCK ;给出时钟下降沿
CLR CS ;片选中X25045
MOV A,#RDSR_INST ;将读状态寄存器指令给A(05H)
ACALL OUTBYT ;调输出字节给X25045子程序
ACALL INBYT ;调读入X25045输出内容子程序
CLR SCK ;再给出时钟下降沿
SETB CS ;片不选中X25045
RET
写进X25045中的EEPROM一个单个字节子程序:
BYTE_WRITE: CLR SCK ;给出时钟下降沿
CLR CS ;片选中X25045
MOV A,#WRITE_INST ;将写X25045 EEPROM的指令给A(02H)
ACALL OUTBYT ;调输出字节给X25045子程序
MOV A,R0 ;将要写进EEPROM 的单元地址号给A
ACALL OUTBYT ;调输出字节给X25045子程序
MOV A,R2 ;将要写进EEPROM 该单元地址的数据给A
ACALL OUTBYT ;调输出字节给X25045子程序
CLR SCK ;再给出时钟下降沿
SETB CS ;不选中X25045
ACALL WIP_POLL ;调数据未写好查询等待子程序
RET
从X25045的EEPROM中读出一个字节子程序:
BYTE_READ: CLR SCK ;给出时钟下降沿
CLR CS ;片选中X25045
MOV A,#READ_INST ;将读X25045 EEPROM的指令给A(03H)
ACALL OUTBYT ;调输出字节给X25045子程序
MOV A,R0 ;将需要读EEPROM 单元的地址号给A
ACALL OUTBYT ;调输出字节给X25045子程序
ACALL INBYT ;调读入X25045输出内容子程序
CLR SCK ;再给出时钟下降沿
SETB CS ;片不选中X25045
RET
复位看门狗定时器子程序:
RST_WDOG: CLR EA ;关中断V
CLR CS ;片选中X25045
SETB CS ;片不选中X25045
SETB EA ;开中断V
RET
未写好循环查询等待子程序:
WIP_POLL: MOV B,#MAX_POLL ;将最大循环等待变量给B
WIP_POLL1: ACALL RDSR_CMD ;调读X25045中的SR内容(查询写好标志位)子程序
JNB ACC.0,WIP_POLL2 ;写好标志位有效(为0),转下
DJNZ B,WIP_POLL1 ;未到最大循环等待次数,转上继续
SJMP WIP_OUT ;已到最大等待次数,转出
WIP_POLL2: SETB 00H ;置位写好标志位(1)有效

更多内容请访问 中国工控网(http://www.gongkong.com)

手机扫描二维码分享本页

工控网APP下载安装

工控速派APP下载安装

 

我来评价

评价:
一般