摘 要: 論述了一種容錯(cuò)采集系統(tǒng)的設(shè)計(jì)方法,通過(guò)在串行A/D轉(zhuǎn)換器MAX110的中斷服務(wù)程序中使用軟件定時(shí)器,實(shí)現(xiàn)了對(duì)MAX110意外停止轉(zhuǎn)換的故障恢復(fù),確保了MAX110自動(dòng)連續(xù)轉(zhuǎn)換功能的容錯(cuò)性,可提高數(shù)據(jù)采集系統(tǒng)的可靠性。
關(guān)鍵詞: 容錯(cuò) 串行A/D轉(zhuǎn)換器 軟件定時(shí)器
在工業(yè)過(guò)程控制系統(tǒng)的設(shè)計(jì)中,與工業(yè)現(xiàn)場(chǎng)環(huán)境相聯(lián)系的接口電路的設(shè)計(jì)在保證性能的同時(shí),要求有較高的可靠性和性能價(jià)格比。對(duì)于模擬輸入通道的設(shè)計(jì),串行接口的模擬數(shù)字(A/D)轉(zhuǎn)換器愈來(lái)愈受到設(shè)計(jì)者們的關(guān)注。串行接口A/D轉(zhuǎn)換器接口電路設(shè)計(jì)簡(jiǎn)單、芯片體積小、信號(hào)線(xiàn)大大減少、易于采取隔離措施,而且許多串行接口芯片的工作模式可編程、設(shè)計(jì)靈活。其中,MAXIM公司的二通道±14bit串行ADC MAX110在從串行接口讀取數(shù)據(jù)的同時(shí)還完成下一轉(zhuǎn)換過(guò)程控制方式數(shù)據(jù)的寫(xiě)入(包括轉(zhuǎn)換啟動(dòng)控制),這樣便可實(shí)現(xiàn)數(shù)據(jù)的自動(dòng)采集;在程序設(shè)計(jì)時(shí),數(shù)據(jù)采集進(jìn)程獨(dú)立設(shè)計(jì),數(shù)據(jù)按預(yù)先設(shè)定的方式自動(dòng)存儲(chǔ)到循環(huán)隊(duì)列中,完成和主進(jìn)程的數(shù)據(jù)交換,給系統(tǒng)程序的設(shè)計(jì)提供了很大的方便。但由于系統(tǒng)受環(huán)境的干擾,A/D轉(zhuǎn)換器控制數(shù)據(jù)可能會(huì)出錯(cuò),導(dǎo)致ADC意外停止轉(zhuǎn)換,使數(shù)據(jù)采集進(jìn)程停止,本文提出了針對(duì)這種故障的容錯(cuò)[1]設(shè)計(jì)方法。
1 基于串行A/D轉(zhuǎn)換器MAX110的數(shù)據(jù)采集系統(tǒng)的結(jié)構(gòu)
工業(yè)過(guò)程控制的許多慢過(guò)程,對(duì)A/D轉(zhuǎn)換器轉(zhuǎn)換速度要求較低,所以選用慢速A/D轉(zhuǎn)換器便可以滿(mǎn)足設(shè)計(jì)要求?!?4bit串行ADC MAX110BCPE轉(zhuǎn)換時(shí)間可達(dá)到10ms,且可編程控制,精度和速度也可以滿(mǎn)足如溫度控制對(duì)象的數(shù)據(jù)采集要求。作者在設(shè)計(jì)適用于溫度控制的模糊智能調(diào)節(jié)器的過(guò)程中,數(shù)據(jù)采集部分使用了基于串行ADC MAX110的具有容錯(cuò)功能的數(shù)據(jù)采集設(shè)計(jì)方法。系統(tǒng)結(jié)構(gòu)如圖1所示。
模擬信號(hào)隔離可選兩種方法:選用模擬隔離放大器或在A/D的數(shù)字接口采用光電隔離。模擬隔離放大器價(jià)格較高,所以選擇數(shù)字隔離方法,而采用串行A/D可大大減少數(shù)字信號(hào)隔離路數(shù)。如圖1所示,串行A/D轉(zhuǎn)換器MAX110的數(shù)字側(cè)與微處理器全部采用了光電隔離器件,將MAX110的數(shù)據(jù)輸入輸出信號(hào)、時(shí)鐘信號(hào)、轉(zhuǎn)換結(jié)束中斷請(qǐng)求信號(hào)由PC817實(shí)現(xiàn)電氣的隔離。在后續(xù)的模擬通道中采用了多路開(kāi)關(guān)CD4051選通輸入的各路模擬信號(hào),其中通道選擇信號(hào)也采取光電隔離的方法,這樣使A/D轉(zhuǎn)換器之后的所有電路都與微處理器部分隔離。
2 A/D異常停止轉(zhuǎn)換故障的自動(dòng)恢復(fù)原理
2.1 串行ADC MAX110的控制與數(shù)據(jù)傳遞
串行ADC MAX110的轉(zhuǎn)換方式和標(biāo)定由芯片控制字確定,控制字確定了MAX110 A/D轉(zhuǎn)換的通道、速度等各種工作方式。MAX110 的控制字包含:轉(zhuǎn)換時(shí)間控制,SCLK與過(guò)采樣頻率的比率控制、輸入通道選擇、增益標(biāo)定控制、內(nèi)部振蕩器掉電控制、模擬部分掉電控制。每次轉(zhuǎn)換按新送入的控制字工作??刂谱指袷郊翱刂谱肿饔靡?jiàn)表1。
MAX110采用與MicrowireTM SPITM QSPITM串行接口通訊協(xié)議(SPI: Serial Peripheral Interface, QSPI: Quick SPI)兼容的串行接口標(biāo)準(zhǔn)[3]。其時(shí)序?qū)崿F(xiàn)如圖2所示。當(dāng)微處理器檢測(cè)到MAX110轉(zhuǎn)換完標(biāo)志BUSY變高時(shí),AD中斷產(chǎn)生,中斷服務(wù)程序首先將串行時(shí)鐘信號(hào)SCLK初始化為0,再將MAX110片選信號(hào)CS 置低,開(kāi)始串行數(shù)據(jù)的全雙工傳輸:送MAX110轉(zhuǎn)換命令字,同時(shí)接收MAX110轉(zhuǎn)換結(jié)果。數(shù)據(jù)的發(fā)送和接收過(guò)程是:首先,微處理器將要送命令字的最高位送到MAX110接收命令字的引腳DIN,然后將SCLK置高,MAX110利用SCLK時(shí)鐘信號(hào)的上升沿將命令字最高位讀入;這時(shí)微處理器將MAX110的轉(zhuǎn)換結(jié)果最高位讀入。微處理器再將SCLK置低,使SCLK出現(xiàn)下降沿;MAX110在下降沿將轉(zhuǎn)換結(jié)果的第二位送到DOUT引腳,微處理器將命令字的第二位送到DIN引腳,再將SCLK置高,MAX110利用SCLK 的上升沿讀入命令字的第二位;微處理器讀入MAX110轉(zhuǎn)換結(jié)果的第二位。如此循環(huán)直到將十六位數(shù)據(jù)接收完畢,命令字寫(xiě)完畢,完成數(shù)據(jù)交換,最后將CS引腳置高。當(dāng)MAX110的CS引腳被置高時(shí),MAX110開(kāi)始新的轉(zhuǎn)換,轉(zhuǎn)換的工作方式由剛接收到的命令字確定。微處理器A/D中斷結(jié)束,直到MAX110下一次轉(zhuǎn)換結(jié)束時(shí)間的到來(lái)。
2.2 A/D異常停止轉(zhuǎn)換故障的檢測(cè)及自動(dòng)恢復(fù)
A/D轉(zhuǎn)換器MAX110的啟動(dòng)包括標(biāo)定和轉(zhuǎn)換控制字的設(shè)置,耗時(shí)較長(zhǎng),設(shè)計(jì)時(shí)將MAX110設(shè)置為連續(xù)轉(zhuǎn)換方式,本次轉(zhuǎn)換啟動(dòng)下次轉(zhuǎn)換,下次轉(zhuǎn)換的轉(zhuǎn)換控制字由本次提供,這樣MAX110就可以連續(xù)產(chǎn)生采集數(shù)據(jù)中斷,實(shí)現(xiàn)數(shù)據(jù)的自動(dòng)采集。但這種轉(zhuǎn)換方式有可能出現(xiàn)A/D轉(zhuǎn)換停止的故障。因?yàn)橄到y(tǒng)受到外界干擾時(shí),可能會(huì)影響到某些數(shù)據(jù)線(xiàn)信號(hào)波形的偶然畸變,而串行A/D MAX110每次轉(zhuǎn)換都建立在收到正確轉(zhuǎn)換命令的基礎(chǔ)上,如受到干擾,轉(zhuǎn)換命令字錯(cuò)誤,有可能導(dǎo)致MAX110停止轉(zhuǎn)換,或者進(jìn)入休眠方式或模擬電路電壓切離的低功耗方式,這樣系統(tǒng)將停止數(shù)據(jù)采集。
解決這種停止轉(zhuǎn)換故障的方法如圖3所示。在數(shù)據(jù)的自動(dòng)采集過(guò)程中,下次轉(zhuǎn)換的正常工作建立在本次正確送入控制字的基礎(chǔ)上,所以在微處理器的軟件定時(shí)器中設(shè)置一個(gè)按一定時(shí)間間隔不停增長(zhǎng)的計(jì)數(shù)器ADRUN,在A/D轉(zhuǎn)換中斷服務(wù)程序中將ADRUN計(jì)數(shù)器值清零。若A/D正常轉(zhuǎn)換,ADRUN計(jì)數(shù)器的值將保持在某一范圍內(nèi);若A/D停止正常轉(zhuǎn)換,ADRUN計(jì)數(shù)器的值將超出預(yù)先設(shè)定的范圍。在系統(tǒng)程序的主循環(huán)中每次判斷ADRUN計(jì)數(shù)器的值,若ADRUN計(jì)數(shù)器超限,說(shuō)明MAX110停止轉(zhuǎn)換,隨即將MAX110重新初始化,使數(shù)據(jù)采集模塊恢復(fù)正常工作,同時(shí)在系統(tǒng)的故障數(shù)據(jù)庫(kù)中做出記錄以備分析。這種設(shè)計(jì)方法保證了數(shù)據(jù)采集模塊的穩(wěn)定運(yùn)行,使系統(tǒng)具備了一定的容錯(cuò)功能。
本文論述的容錯(cuò)數(shù)據(jù)采集系統(tǒng)已在自行設(shè)計(jì)的以Intel 80C196為微處理器的智能調(diào)節(jié)器中使用和測(cè)試。測(cè)試時(shí),給數(shù)據(jù)采集系統(tǒng)注入故障,使AD采集進(jìn)程停止工作,實(shí)驗(yàn)證明,在預(yù)先設(shè)定的時(shí)間內(nèi),故障得以排除并記錄了故障情況,數(shù)據(jù)采集正常進(jìn)行。但這種容錯(cuò)設(shè)計(jì)方法的可靠性依賴(lài)于探測(cè)故障時(shí)所使用的定時(shí)器的可靠性,若定時(shí)器異常停止工作,系統(tǒng)將不能檢測(cè)到A/D轉(zhuǎn)換的故障。
參考文獻(xiàn)
1 Vincenzo piuri.Design of Fault-Tolerant Distributed Control System.IEEE transactions on instrumentation and measurement,April 1994;43(2)
2 Isermann, Rolf.Model based fault detection and diagno-sis methods.Proceedings of the American Control Conference,V3,1995:1650~1609
3 Maxim Integrated DataSheets.Maxim Integrated Products Inc. 1997
4 Application Note-Using the 80C196KB.Intel Corporation, November 1990