引言
隨著工業(yè)技術(shù)的不斷發(fā)展,,對(duì)單片機(jī)控制的要求也越來越高,需要單片機(jī)具備更高的反應(yīng)速度和更強(qiáng)的數(shù)據(jù)處理能力,,各種高性能的新型單片機(jī)得到了迅猛的發(fā)展和應(yīng)用,。單片機(jī)上主要是高速的數(shù)字信號(hào),弱信號(hào)很容易受到外界的電磁干擾,,同時(shí),,單片機(jī)系統(tǒng)也會(huì)發(fā)生掉電、死循環(huán)等問題,。在工業(yè)控制場合,,一旦控制發(fā)生錯(cuò)誤,將會(huì)造成難以估計(jì)的損失,。因此,,如何提高控制的可靠性是長期以來的一個(gè)重要問題。本文介紹了應(yīng)用32位高性能單片機(jī)MC68HC376的一種實(shí)際開發(fā)方案,,同時(shí)重點(diǎn)討論了提高系統(tǒng)可靠性的設(shè)計(jì)和實(shí)現(xiàn)方法,。 MC68HC376 是Motorola 公司推出的一種新型的32 位高性能單片機(jī),具有極強(qiáng)的數(shù)據(jù)處理,、邏輯運(yùn)算和信息存儲(chǔ)能力,,且支持BDM(Background Debug Mode)模式。通過簡易的專用電纜接口,,可以直接對(duì)微控制器系統(tǒng)進(jìn)行仿真開發(fā)和燒錄程序,。此外,由于MC68HC376 內(nèi)部集成度高,,外部擴(kuò)展工作少,,因此本身具有較強(qiáng)的抗干擾能力;同時(shí)通過外
部硬件電路以及軟件的抗干擾設(shè)計(jì),,控制系統(tǒng)可以實(shí)現(xiàn)較高的可靠性,。
1 控制系統(tǒng)的基本結(jié)構(gòu)設(shè)計(jì)
MC68HC376 的集成度高,其主要功能模塊包括32位CPU,;系統(tǒng)集成模塊(SIM),;4K備用RAM;8K 片內(nèi)ROM,;10位隊(duì)列式的模數(shù)轉(zhuǎn)換器(QADC),;隊(duì)列式串行通信模塊(QSM);可構(gòu)造時(shí)鐘模塊(CTM4),;時(shí)間處理單元(TPU),;3.5K靜態(tài)TPURAM,;CAN 控制模塊(TOUCAN)。其基本性能如下:
(1) 24位地址總線,、16位數(shù)據(jù)總線結(jié)構(gòu),,支持32位數(shù)據(jù)操作。
(2) 2個(gè)8位雙功能I/O,,1個(gè)7位雙功能I/O,,16~44個(gè)模擬量輸入通道。
(3) 具有系統(tǒng)保護(hù)邏輯,,同時(shí)可進(jìn)行時(shí)鐘監(jiān)視和總線監(jiān)視,。
(4) 速度快,在4.194MHz的晶振下系統(tǒng)時(shí)鐘可達(dá)20.97MHz,。
(5) 功耗低,,具備低功率休眠功能。
(6) 支持高級(jí)語言和背景調(diào)試,。 系統(tǒng)擴(kuò)展的基本結(jié)構(gòu) MC68HC376 內(nèi)部集成度較高,,因而其所需的外圍擴(kuò)展工作較少?;窘Y(jié)構(gòu)包括外部Flash ROM,、RAM、模擬量輸入通道,、數(shù)字量輸入通道,、鍵盤、液晶顯示,、RS-232電平轉(zhuǎn)換器MAX232和CAN 控制器CAN250等,,其結(jié)構(gòu)框圖如圖1 所示。本文重點(diǎn)討論系統(tǒng)的可靠性設(shè)計(jì),。
2 系統(tǒng)的可靠性設(shè)計(jì)
微處理器硬件監(jiān)控電路
本文采用監(jiān)控器MAX705 芯片構(gòu)成外部監(jiān)控電路,,電路外部接線如圖2 所示。該電路具有看門狗定時(shí)器,、自動(dòng)和手動(dòng)復(fù)位功能,,以及電壓門限監(jiān)測功能,。 由于在系統(tǒng)上電,、掉電以及供電電壓不足時(shí), CPU 和總線邏輯狀態(tài)不確定,,因此應(yīng)該將微控制器維持在復(fù)位的狀態(tài),,以避免控制錯(cuò)誤。對(duì)于MAX705,,復(fù)位門限電壓為4.65V,,故當(dāng)Vcc低于4.65V時(shí),,系統(tǒng)保持在復(fù)位狀態(tài)。同時(shí),,將Vcc 與PFI 引腳相連,,當(dāng)Vcc低于1.25V時(shí),由PFO 引腳輸出示警信號(hào),,若較長時(shí)間處于電源示警狀態(tài),,則可能出現(xiàn)電源故障,應(yīng)該加以處理,。當(dāng)系統(tǒng)正常運(yùn)行時(shí),,由MC68HC376 的CTM4 模塊的CTD4通道以小于1.6s 的間隔定時(shí)向MAX705的WDI 引腳提供脈沖;一旦系統(tǒng)不能正常運(yùn)行而導(dǎo)致MAX705的WDI 引腳失去脈沖時(shí),,看門狗定時(shí)溢出使得/WDO為低,,由于/WDO與手動(dòng)復(fù)位引腳/MR相連,因此/RESET腳向MC68HC376發(fā)出低有效的復(fù)位信號(hào),,使系統(tǒng)恢復(fù)到復(fù)位狀態(tài),。
外部濾波電路
由于系統(tǒng)采用外部參考頻率源,為了提高系統(tǒng)頻率的穩(wěn)定性和可靠性,,所以需要在MC68HC376 的XFC 腳上接入濾波電路,。該電路應(yīng)盡可能降低XFC 腳的泄露電流,以提高時(shí)鐘的穩(wěn)定性和內(nèi)部鎖相環(huán)的性能,。圖3所示為高穩(wěn)定的濾波電路,。
輸出驅(qū)動(dòng)電路可靠性設(shè)計(jì)
控制裝置通過對(duì)系統(tǒng)狀況進(jìn)行監(jiān)測和分析后,向控制和調(diào)節(jié)的動(dòng)作單元提供控制信號(hào),。如果輸出信號(hào)受到干擾或者由于裝置故障而發(fā)出錯(cuò)誤的控制信號(hào),,那么會(huì)因產(chǎn)生錯(cuò)誤的調(diào)節(jié)控制動(dòng)作而使系統(tǒng)受到危害。因此,,對(duì)于輸出驅(qū)動(dòng)電路應(yīng)該加以相應(yīng)的閉鎖控制和抗干擾設(shè)計(jì),,以提高控制的可靠性。
(1) 閉鎖控制電路 這里采用可再觸發(fā)雙/單穩(wěn)態(tài)多諧振蕩器74LS123 來構(gòu)成輸出閉鎖電路,,電路接線如圖4 所示,。 將74LS123 的A 腳與MC68HC376 的CTM4 模塊的CTD4通道相連,由于在正常情
況下CTD4定時(shí)提供脈沖,,使得振蕩電路不能發(fā)生翻轉(zhuǎn),,此時(shí),/Q保持為1,;如果裝置故障,,使得CTD4 失去脈沖,則振蕩電路使得/Q翻轉(zhuǎn)變?yōu)?,,因此閉鎖信號(hào)變?yōu)? 對(duì)輸出控制信號(hào)閉鎖,。同時(shí),,與門4081的另一腳接至MC68HC376 的TPU 模塊的TCH15 腳,直接由MC68HC376 控制,。在正常運(yùn)行中,,當(dāng)需要輸出控制信號(hào)時(shí),置TCH15為1,;當(dāng)不需要輸出控制信號(hào)時(shí),,置TCH15為0,則使閉鎖信號(hào)為0,,閉鎖輸出部分,,這樣就防止了由于干擾或其他原因造成的誤動(dòng)作。
(2) 控制信號(hào)輸出部分的抗干擾設(shè)計(jì) 當(dāng)閉鎖信號(hào)開通時(shí),,輸出控制信號(hào)可能由于擾動(dòng)而出現(xiàn)偏差,,因此應(yīng)設(shè)計(jì)相應(yīng)的輸出電路形式來減小擾動(dòng)的影響。輸出電路的形式如圖5 所示(這里只畫出一路輸出信號(hào)),。 采用單線控制時(shí),,一旦受到干擾就會(huì)使控制信號(hào)的電平發(fā)生變化,從而造成誤動(dòng),。這里采用“0,1”控制方式,,用兩根臨近的控制線,一根直接接至與門4081,,另一根經(jīng)過非門4069 接至4081,,即當(dāng)兩根控制線為“0,1”時(shí)輸出有效的電平信號(hào)1。這樣,,當(dāng)存在高擾動(dòng)或低擾動(dòng)使得控制線同時(shí)變?yōu)?或0時(shí),,輸出無效的電平信號(hào)0。本系統(tǒng)中,,以CTM4模塊的CPWM7引腳和閉鎖信號(hào)一起控制開啟信號(hào),;開啟信號(hào)與MC68HC376的控制信號(hào)一起控制動(dòng)作輸出信號(hào)。這樣就充分提高了輸出控制的可靠性,。注意,,單片機(jī)的I/O 控制信號(hào)應(yīng)使用上拉電阻。
掉電報(bào)警電路
當(dāng)系統(tǒng)的某一級(jí)工作電源掉電時(shí),,控制裝置將不能正常運(yùn)作,,或者控制信號(hào)得不到正確執(zhí)行。這時(shí)應(yīng)該發(fā)出報(bào)警信號(hào),,掉電報(bào)警電路如圖6 所示,。將各等級(jí)的工作電源通過關(guān)隔MOC8050 串接起來,,一旦發(fā)生掉電的情況,,掉電報(bào)警處的電平由高變?yōu)榈?,啟?dòng)報(bào)警裝置。軟件可靠性設(shè)計(jì)
軟件看門狗
在MC68HC376 的SIM 模塊中,,有一個(gè)軟件看門狗,,在監(jiān)控程序中,可以開啟軟件看門狗,,配合提高系統(tǒng)的可靠性,。該軟件看門狗由MC68HC376的系統(tǒng)保護(hù)控制寄存器(SYPCR)中的SWE 位控制開啟。當(dāng)SWE 位為1 時(shí),,看門狗啟動(dòng),,開始計(jì)時(shí)。在裝置正常工作時(shí),,程序應(yīng)該在軟件看門狗溢出之前對(duì)軟件服務(wù)寄存器(SWSR)先后寫入55H 和AAH,,當(dāng)寫入完成之后,軟件看門狗就會(huì)清除當(dāng)前計(jì)時(shí)值,,重新開始計(jì)時(shí),。如果計(jì)時(shí)值溢出,則會(huì)使MC68HC376 的/RESET引腳有效,,系統(tǒng)復(fù)位,。這樣,就可以在程序死循環(huán)或者由于其它原因而導(dǎo)致程序跳飛時(shí)自動(dòng)回復(fù)到復(fù)位狀態(tài),??撮T狗的溢出時(shí)間由系統(tǒng)頻率以及SYPCR 寄存器的看門狗分頻位(SWP)和看門狗定時(shí)區(qū)(SWT[1:0])決定,如表1所示,。選擇看門狗溢出時(shí)間時(shí)應(yīng)該注意大小適中,,若取值過大,則程序可能會(huì)較長時(shí)間處于死循環(huán)或跳飛狀態(tài),,從而導(dǎo)致控制錯(cuò)誤或失效,;若取值過小,則會(huì)增加程序負(fù)擔(dān),,降低裝置運(yùn)行效率,。
程序的區(qū)域劃分和操作級(jí)別控制
CPU32 可進(jìn)行兩種優(yōu)先級(jí)別的操作:監(jiān)控級(jí)別和用戶級(jí)別。在監(jiān)控級(jí)別下,,CPU 可以對(duì)所有的內(nèi)部集成資源和所有的指令進(jìn)行操作,,而在用戶級(jí)別下,它對(duì)一些寄存器和指令的訪問會(huì)受到限制,。在程序中有效地利用這種優(yōu)先級(jí)別會(huì)使內(nèi)部資源和一些系統(tǒng)指令得到有控制的訪問,,從而提高系統(tǒng)運(yùn)行的可靠性。CPU32的狀態(tài)寄存器SR 中的S 位決定CPU 的工作級(jí)別,,當(dāng)S=1 時(shí)CPU 處于監(jiān)控級(jí)別,;S=0時(shí)CPU處于用戶級(jí)別,。 一般情況下,單片機(jī)的程序區(qū)和數(shù)據(jù)區(qū)在同一個(gè)物理地址空間,。對(duì)于MC68HC376,,可以通過功能碼FC[2:0]來擴(kuò)展和劃分外部物理空間,對(duì)FC[2:0]實(shí)現(xiàn)外部解碼,,可以使監(jiān)控級(jí)程序,、監(jiān)控級(jí)數(shù)據(jù)、用戶級(jí)程序,、用戶級(jí)數(shù)據(jù)分別使用各自獨(dú)立的地址空間,。對(duì)于MC68HC376內(nèi)部的各個(gè)模塊,可以通過其相應(yīng)的結(jié)構(gòu)寄存器中的SUPV 位來確定該部分的通用寄存器所處的地址空間,,當(dāng)SUPV=1 時(shí),,將相關(guān)的寄存器放置于監(jiān)控級(jí)數(shù)據(jù)地址空間,CPU只有在監(jiān)控級(jí)別時(shí)才可對(duì)其訪問和操作,;當(dāng)SUPV=0 時(shí),,將相關(guān)的寄存器放置于數(shù)據(jù)級(jí)數(shù)據(jù)地址空間,CPU可任意對(duì)其進(jìn)行訪問和操作,。這樣,,整個(gè)程序結(jié)構(gòu)性強(qiáng),按級(jí)別控制訪問,,增強(qiáng)了運(yùn)行的可靠性,。
&n
bsp; 總線監(jiān)視器
MC68HC376 進(jìn)行內(nèi)部總線操作時(shí),數(shù)據(jù)選通應(yīng)答引腳(/DSACK)和自動(dòng)向量引腳(/AVEC)應(yīng)該有相應(yīng)的應(yīng)答信號(hào),。SIM模塊中的總線監(jiān)視器能對(duì)/DSACK和/AVEC信號(hào)進(jìn)行監(jiān)視,,當(dāng)響應(yīng)時(shí)間超過定時(shí)值就使總線錯(cuò)誤(/BERR)引腳有效。程序應(yīng)對(duì)/BERR的狀態(tài)進(jìn)行監(jiān)視,,以便及時(shí)對(duì)總線錯(cuò)誤做出相應(yīng)的處理,。
總線監(jiān)視器的定時(shí)值由系統(tǒng)保護(hù)控制寄存器(SYPCR)中的總線監(jiān)視時(shí)間區(qū)(BMT[1:0])決定。BMT[1:0]=00時(shí),,定時(shí)值為64個(gè)系統(tǒng)時(shí)鐘,;BMT[1:0]=01時(shí),定時(shí)值為32 個(gè)系統(tǒng)時(shí)鐘,;BMT[1:0]=10時(shí),,定時(shí)值為16個(gè)系統(tǒng)時(shí)鐘;BMT[1:0]=11時(shí),,定時(shí)值為8 個(gè)系統(tǒng)時(shí)鐘,。程序員應(yīng)根據(jù)實(shí)際的運(yùn)行情況進(jìn)行選擇。 其它 其它一些提高可靠性的措施還包括有配置去耦電容;系統(tǒng)時(shí)鐘電路采用獨(dú)立電源VDDSYN供電,,減少對(duì)MCU的干擾,,而且MCU 停電時(shí)系統(tǒng)時(shí)鐘仍可維持運(yùn)行。布線時(shí),,時(shí)鐘電路設(shè)置在電路板的中央,;Standby RAM采用兩個(gè)電源VDD 和VSTBY供電,,正常運(yùn)行時(shí)VDD 供電,,發(fā)生掉電時(shí),使其自動(dòng)切換到VSTBY 供電,。同時(shí),,在軟件中,將堆棧及一些重要數(shù)據(jù)存放在Standby RAM 有利于重要運(yùn)行參數(shù)的保存,。
3結(jié)語
該方案采用高性能,、集成度高、可靠性強(qiáng)的32 位新型微控制器MC68HC376為核心,,同時(shí)在硬件,、軟件以及制板布線等方面采用多種提高系統(tǒng)可靠性的設(shè)計(jì)措施。應(yīng)用該方案的數(shù)字式低頻低壓控制裝置RSA800,,已通過電力工業(yè)部電力設(shè)備及儀表質(zhì)量檢驗(yàn)測試中心的產(chǎn)品型式試驗(yàn),。
參考文獻(xiàn)
1 MC68336/376 user's manual. Motorola.Inc.1996
2 CPU32 reference manual. Motorola.Inc.1996
3 CTM configurable timer module reference manual. Motorola.Inc.1996
4 QADC queued analog-to-digital converter reference manual. Motorola.Inc.1996
5 SIM system integration module reference manual. Motorola.Inc.1996
6 QSM queued serial module reference manual. Motorola.Inc.1996
7 王幸之等. 單片機(jī)應(yīng)用系統(tǒng)抗干擾技術(shù). 北京航空航天大學(xué)出版社. 1999
8 王福瑞等. 單片微機(jī)測控系統(tǒng)設(shè)計(jì)大全[M]. 北京航空航天大學(xué)出版社. 1999
9 李華等. MCS-51系列單片機(jī)實(shí)用接口技術(shù). 北京航空航天大學(xué)出版社. 1993