基于MAX110的容错数据采集系统的设计
2006-05-07 来源:电子技术应用
摘 要: 论述了一种容错采集系统的设计方法,通过在串行A/D转换器MAX110的中断服务程序中使用软件定时器,实现了对MAX110意外停止转换的故障恢复,确保了MAX110自动连续转换功能的容错性,可提高数据采集系统的可靠性。
关键词: 容错 串行A/D转换器 软件定时器
在工业过程控制系统的设计中,与工业现场环境相联系的接口电路的设计在保证性能的同时,要求有较高的可靠性和性能价格比。对于模拟输入通道的设计,串行接口的模拟数字(A/D)转换器愈来愈受到设计者们的关注。串行接口A/D转换器接口电路设计简单、芯片体积小、信号线大大减少、易于采取隔离措施,而且许多串行接口芯片的工作模式可编程、设计灵活。其中,MAXIM公司的二通道±14bit串行ADC MAX110在从串行接口读取数据的同时还完成下一转换过程控制方式数据的写入(包括转换启动控制),这样便可实现数据的自动采集;在程序设计时,数据采集进程独立设计,数据按预先设定的方式自动存储到循环队列中,完成和主进程的数据交换,给系统程序的设计提供了很大的方便。但由于系统受环境的干扰,A/D转换器控制数据可能会出错,导致ADC意外停止转换,使数据采集进程停止,本文提出了针对这种故障的容错[1]设计方法。
1 基于串行A/D转换器MAX110的数据采集系统的结构
工业过程控制的许多慢过程,对A/D转换器转换速度要求较低,所以选用慢速A/D转换器便可以满足设计要求。±14bit串行ADC MAX110BCPE转换时间可达到10ms,且可编程控制,精度和速度也可以满足如温度控制对象的数据采集要求。作者在设计适用于温度控制的模糊智能调节器的过程中,数据采集部分使用了基于串行ADC MAX110的具有容错功能的数据采集设计方法。系统结构如图1所示。
模拟信号隔离可选两种方法:选用模拟隔离放大器或在A/D的数字接口采用光电隔离。模拟隔离放大器价格较高,所以选择数字隔离方法,而采用串行A/D可大大减少数字信号隔离路数。如图1所示,串行A/D转换器MAX110的数字侧与微处理器全部采用了光电隔离器件,将MAX110的数据输入输出信号、时钟信号、转换结束中断请求信号由PC817实现电气的隔离。在后续的模拟通道中采用了多路开关CD4051选通输入的各路模拟信号,其中通道选择信号也采取光电隔离的方法,这样使A/D转换器之后的所有电路都与微处理器部分隔离。
2 A/D异常停止转换故障的自动恢复原理
2.1 串行ADC MAX110的控制与数据传递
串行ADC MAX110的转换方式和标定由芯片控制字确定,控制字确定了MAX110 A/D转换的通道、速度等各种工作方式。MAX110 的控制字包含:转换时间控制,SCLK与过采样频率的比率控制、输入通道选择、增益标定控制、内部振荡器掉电控制、模拟部分掉电控制。每次转换按新送入的控制字工作。控制字格式及控制字作用见表1。
MAX110采用与Microwire SPI QSPI 串行接口通讯协议SPI: Serial Peripheral Interface, QSPI Quick SPI)兼容的串行接口标准[3]。其时序实现如图2所示。当微处理器检测到MAX110转换完标志 变高时,AD中断产生,中断服务程序首先将串行时钟信号SCLK初始化为0,再将MAX110片选信号 低,开始串行数据的全双工传输:送MAX110转换命令字,同时接收MAX110转换结果。数据的发送和接收过程是:首先,微处理器将要送命令字的最高位送到MAX110接收命令字的引脚DIN,然后将SCLK置高,MAX110利用SCLK时钟信号的上升沿将命令字最高位读入;这时微处理器将MAX110的转换结果最高位读入。微处理器再将SCLK置低,使SCLK出现下降沿;MAX110在下降沿将转换结果的第二位送到DOUT引脚,微处理器将命令字的第二位送到DUN引脚,再将SCLK置高,MAX110利用SCLK 的上升沿读入命令字的第二位;微处理器读入MAX110转换结果的第二位。如此循环直到将十六位数据接收完毕,命令字写完毕,完成数据交换,最后将 引脚置高。当MAX110的 引脚被置高时,MAX110开始新的转换,转换的工作方式由刚接收到的命令字确定。微处理器A/D中断结束,直到MAX110下一次转换结束时间的到来。
2.2 A/D异常停止转换故障的检测及自动恢复
A/D转换器MAX110的启动包括标定和转换控制字的设置,耗时较长,设计时将MAX110设置为连续转换方式,本次转换启动下次转换,下次转换的转换控制字由本次提供,这样MAX110就可以连续产生采集数据中断,实现数据的自动采集。但这种转换方式有可能出现A/D转换停止的故障。因为系统受到外界干扰时,可能会影响到某些数据线信号波形的偶然畸变,而串行A/D MAX110每次转换都建立在收到正确转换命令的基础上,如受到干扰,转换命令字错误,有可能导致MAX110停止转换,或者进入休眠方式或模拟电路电压切离的低功耗方式,这样系统将停止数据采集。
解决这种停止转换故障的方法如图3所示。在数据的自动采集过程中,下次转换的正常工作建立在本次正确送入控制字的基础上,所以在微处理器的软件定时器中设置一个按一定时间间隔不停增长的计数器ADRUN,在A/D转换中断服务程序中将ADRUN计数器值清零。若A/D正常转换,ADRUN计数器的值将保持在某一范围内;若A/D停止正常转换,ADRUN计数器的值将超出预先设定的范围。在系统程序的主循环中每次判断ADRUN计数器的值,若ADRUN计数器超限,说明MAX110停止转换,随即将MAX110重新初始化,使数据采集模块恢复正常工作,同时在系统的故障数据库中做出记录以备分析。这种设计方法保证了数据采集模块的稳定运行,使系统具备了一定的容错功能。
本文论述的容错数据采集系统已在自行设计的以Intel 80C196为微处理器的智能调节器中使用和测试。测试时,给数据采集系统注入故障,使AD采集进程停止工作,实验证明,在预先设定的时间内,故障得以排除并记录了故障情况,数据采集正常进行。但这种容错设计方法的可靠性依赖于探测故障时所使用的定时器的可靠性,若定时器异常停止工作,系统将不能检测到A/D转换的故障。
- 祛魅固态电池:一文看懂这项大火的技术