技術達人:單片機應用係統的可靠性設計
發布時間:2014-03-05 責任編輯:mikeliu
【導讀】 隨著單片機在國防、金融、工gong業ye控kong製zhi等deng重zhong要yao領ling域yu應ying用yong越yue來lai越yue廣guang泛fan,單dan片pian機ji應ying用yong係xi統tong的de可ke靠kao性xing越yue來lai越yue成cheng為wei人ren們men關guan注zhu的de一yi個ge重zhong要yao課ke題ti。單dan片pian機ji應ying用yong係xi統tong的de可ke靠kao性xing是shi由you多duo種zhong因yin素su決jue定ding的de,大da體ti分fen為wei硬ying件jian係xi統tong可ke靠kao性xing設she計ji和he軟ruan件jian係xi統tong可ke靠kao性xing設she計ji。
一、硬件係統可靠性設計
(1)選優設計
在係統硬件設計和加工時,應該選用質量好的接插件,設計好工藝結構;選用合格的元器件,進行嚴格的測試、篩選和老化;設計時技術參數(如負載)要留有一定的餘量或降額使用元器件;提高印製板和組裝的質量。
(2)冗餘與容錯設計
保證單片機應用係統100%無(wu)故(gu)障(zhang)是(shi)不(bu)可(ke)能(neng)的(de)。容(rong)錯(cuo)是(shi)指(zhi)當(dang)係(xi)統(tong)的(de)某(mou)個(ge)部(bu)件(jian)發(fa)生(sheng)故(gu)障(zhang)時(shi),係(xi)統(tong)仍(reng)能(neng)完(wan)全(quan)正(zheng)常(chang)地(di)工(gong)作(zuo),即(ji)給(gei)係(xi)統(tong)增(zeng)加(jia)容(rong)忍(ren)故(gu)障(zhang)的(de)能(neng)力(li)。為(wei)使(shi)係(xi)統(tong)具(ju)有(you)容(rong)錯(cuo)能(neng)力(li),必(bi)須(xu)在(zai)係(xi)統(tong)中(zhong)增(zeng)加(jia)適(shi)當(dang)的(de)冗(rong)餘(yu)單(dan)元(yuan),以(yi)保(bao)證(zheng)當(dang)某(mou)個(ge)部(bu)件(jian)發(fa)生(sheng)故(gu)障(zhang)時(shi)能(neng)由(you)冗(rong)餘(yu)部(bu)件(jian)接(jie)替(ti)其(qi)工(gong)作(zuo),原(yuan)部(bu)件(jian)修(xiu)複(fu)後(hou)再(zai)恢(hui)複(fu)出(chu)錯(cuo)前(qian)的(de)狀(zhuang)態(tai)。硬(ying)件(jian)冗(rong)餘(yu)設(she)計(ji)可(ke)以(yi)在(zai)元(yuan)件(jian)級(ji)、子係統或係統級上進行。例如,在係統級上采用雙機係統,兩套係統互為備用。
(3)采用硬件抗幹擾措施
來自供電係統以及通過導線傳輸、電dian磁ci耦ou合he等deng產chan生sheng的de電dian磁ci幹gan擾rao信xin號hao,是shi單dan片pian機ji係xi統tong工gong作zuo不bu穩wen定ding的de重zhong要yao因yin素su,在zai係xi統tong硬ying件jian設she計ji時shi必bi須xu采cai取qu有you效xiao的de幹gan擾rao抑yi製zhi措cuo施shi。單dan片pian機ji應ying用yong係xi統tong中zhong還hai常chang使shi用yong係xi統tong監jian視shi電dian路lu檢jian測ce係xi統tong發fa生sheng的de錯cuo誤wu或huo故gu障zhang,自zi動dong報bao警jing或huo使shi係xi統tong自zi動dong恢hui複fu正zheng常chang工gong作zuo狀zhuang態tai。如ru采cai用yong電dian源yuan故gu障zhang監jian視shi、看門狗定時器等采用89C51單片機和X25045組成的看門狗電路,X25045硬件連接圖如圖所示。X25045芯片內包含有一個看門狗定時器,可通過軟件預置係統的監控時間。在看門狗定時器預置的時間內若沒有總線活動,則X25045將從RESET輸出一個高電平信號,經過微分電路C2、R3輸出一個正脈衝,使CPU複位。如圖1所示電路中,CPU的複位信號共有3個:上電複位(C1、R2),人工複位(S、R1、R2)和Watchdog複位(C2、R3),通過或門綜合後加到RESET端。C2、R3的時間常數不必太大,有數百微秒即可,因為這時CPU的振蕩器已經在工作。

看kan門men狗gou電dian路lu的de定ding時shi時shi間jian長chang短duan可ke由you具ju體ti應ying用yong程cheng序xu的de循xun環huan周zhou期qi決jue定ding,通tong常chang比bi係xi統tong正zheng常chang工gong作zuo時shi最zui大da循xun環huan周zhou期qi的de時shi間jian略lve長chang即ji可ke。編bian程cheng時shi,可ke在zai軟ruan件jian的de合he適shi地di方fang加jia一yi條tiao喂wei狗gou指zhi令ling,使shi看kan門men狗gou的de定ding時shi時shi間jian永yong遠yuan達da不bu到dao預yu置zhi時shi間jian,係xi統tong就jiu不bu會hui複fu位wei而er正zheng常chang工gong作zuo。當dang係xi統tong跑pao飛fei,用yong軟ruan件jian陷xian阱jing等deng別bie的de方fang法fa無wu法fa捕bu捉zhuo回hui程cheng序xu時shi,則ze看kan門men狗gou定ding時shi時shi間jian很hen快kuai增zeng長chang到dao預yu置zhi時shi間jian,迫po使shi係xi統tong複fu位wei。需xu要yao注zhu意yi的de是shi,在zai程cheng序xu正zheng常chang運yun行xing的de時shi候hou,應ying該gai在zai適shi當dang的de地di方fang加jia一yi條tiao喂wei狗gou指zhi令ling,使shi係xi統tong正zheng常chang運yun行xing時shi的de定ding時shi時shi間jian達da不bu到dao預yu置zhi時shi間jian。係xi統tong就jiu不bu會hui複fu位wei。
二、軟件可靠性設計
單(dan)片(pian)機(ji)應(ying)用(yong)係(xi)統(tong)的(de)軟(ruan)件(jian)和(he)硬(ying)件(jian)是(shi)緊(jin)密(mi)相(xiang)關(guan)的(de)。要(yao)使(shi)整(zheng)個(ge)係(xi)統(tong)具(ju)有(you)較(jiao)高(gao)的(de)可(ke)靠(kao)性(xing),除(chu)了(le)在(zai)盡(jin)可(ke)能(neng)提(ti)高(gao)硬(ying)件(jian)可(ke)靠(kao)性(xing)的(de)前(qian)提(ti)下(xia),軟(ruan)件(jian)的(de)可(ke)靠(kao)性(xing)設(she)計(ji)也(ye)是(shi)必(bi)不(bu)可(ke)少(shao)的(de),必(bi)須(xu)從(cong)設(she)計(ji)、測試及長期使用等方麵來解決軟件可靠性。單片機係統的抗幹擾能力是係統可靠性的重要指標。由於51單(dan)片(pian)機(ji)的(de)指(zhi)令(ling)係(xi)統(tong)是(shi)複(fu)雜(za)指(zhi)令(ling)集(ji)結(jie)構(gou),致(zhi)使(shi)其(qi)抗(kang)幹(gan)擾(rao)性(xing)能(neng)較(jiao)低(di),尤(you)其(qi)用(yong)在(zai)工(gong)業(ye)控(kong)製(zhi)的(de)場(chang)合(he),如(ru)果(guo)不(bu)增(zeng)加(jia)額(e)外(wai)的(de)抗(kang)幹(gan)擾(rao)措(cuo)施(shi),甚(shen)至(zhi)無(wu)法(fa)正(zheng)常(chang)工(gong)作(zuo)。單(dan)片(pian)機(ji)軟(ruan)件(jian)抗(kang)幹(gan)擾(rao)設(she)計(ji)的(de)主(zhu)要(yao)目(mu)的(de)就(jiu)是(shi)及(ji)時(shi)發(fa)現(xian)“跑飛”的程序,並及時地將程序拉入正常軌道,主要方法有:指令冗餘、軟件“陷阱”、軟件“看門狗”等等。
[page]
(1)指令冗餘
CPU取qu指zhi令ling過guo程cheng是shi先xian取qu操cao作zuo碼ma,再zai取qu操cao作zuo數shu。在zai程cheng序xu的de關guan鍵jian地di方fang人ren為wei的de插cha入ru一yi些xie單dan字zi節jie指zhi令ling,或huo將jiang有you效xiao單dan字zi節jie指zhi令ling重zhong寫xie稱cheng為wei指zhi令ling冗rong餘yu,通tong常chang是shi在zai雙shuang字zi節jie指zhi令ling和he三san字zi節jie指zhi令ling後hou插cha入ru兩liang個ge字zi節jie以yi上shang的deNOP指令。這樣即使跑飛程序飛到雙字節指令和三字節指令操作數上。由於窄操作指令NOP的存在,避免了後麵的指令被錯誤地執行,為程序納入正軌做好準備。此外,對係統流向起重要作用的指令,如RET、RETI、LCALI.、LJMP,JC等,可以在這些指令之後插入兩條NOP指令,可將跑飛程序納入正軌,以確保這些重要指令的執行。指令冗餘隻能使CPU不bu再zai將jiang操cao作zuo數shu當dang作zuo操cao作zuo碼ma錯cuo誤wu地di執zhi行xing,卻que不bu能neng主zhu動dong地di將jiang程cheng序xu的de錯cuo誤wu執zhi行xing方fang向xiang扭niu轉zhuan過guo來lai,要yao想xiang糾jiu止zhi程cheng序xu的de錯cuo誤wu執zhi行xing方fang向xiang,就jiu需xu要yao下xia麵mian的de技ji術shu。
(2)設計軟件“陷阱”
通常在程序存儲器中未使用的EPROM空間填入窄操作指令NOP,最後再填入一條跳轉指令,跳轉到跑飛處理程序,或者直接填入指令LJMP 0000H,當跑飛程序落到此區域。即可在執行一段空操作後轉入正軌。如果未使用的EPROM空間比較大,可以均勻地填入幾條空操作指令和跳轉指令,這種幾條空操作指令加一條跳轉指令的結構我們稱之為“軟件陷阱”.
軟件陷阱的一般結構為:
NOP
NOP
LJMP FLY
FLYweipaofeichulizichengxu,ruguochengxuzhengchangzhixing,ruanjianxianjingbufenshiyongyuanyezhixingbudaode,zhiyouzaichengxupaofeidaoxianjingli,ruanjianxianjinghuilikejiangchengxutiaozhuandaozhengchangguidao。jishichengxumeiyoupaofeidaoxianjingli,yekeyizaichengxuzhixingyiduancuowucaozuohouyudaoyigeruanjianxianjing,congerzhuanruzhenggui。chulechengxucunchuqidekongbaiquyu,chengxudeshujubiaojieweiyeyinggaishezhiruanjianxianjing,ruguoshujubiaobijiaoda,yinggaizaishujubiaodezhongjianyeshezhiruanjianxianjing,yibaozhengchengxupaofeidaoshujuqunengjishizhuanruzhenggui。lingwai,ruguochengxucunchuqidekongjianzugoudadehua,keyizaimeilianggezichengxuzhongjianshe 置(zhi)一(yi)個(ge)軟(ruan)件(jian)陷(xian)阱(jing)。當(dang)使(shi)用(yong)的(de)中(zhong)斷(duan)因(yin)幹(gan)擾(rao)而(er)開(kai)放(fang)時(shi),在(zai)對(dui)應(ying)的(de)中(zhong)斷(duan)服(fu)務(wu)程(cheng)序(xu)中(zhong)設(she)置(zhi)軟(ruan)件(jian)陷(xian)阱(jing),能(neng)及(ji)時(shi)捕(bu)獲(huo)錯(cuo)誤(wu)的(de)中(zhong)斷(duan)。軟(ruan)件(jian)陷(xian)阱(jing)的(de)數(shu)量(liang)要(yao)根(gen)據(ju)實(shi)際(ji)受(shou)到(dao)幹(gan)擾(rao)的(de)情(qing)況(kuang)和(he)程(cheng)序(xu)存(cun)儲(chu)器(qi)的(de)容(rong)量(liang)來(lai)確(que)定(ding),如(ru)果(guo)太(tai)少(shao)不(bu)能(neng)進(jin)行(xing)有(you)效(xiao)的(de)跑(pao)飛(fei)攔(lan)截(jie),如(ru)果(guo)太(tai)多(duo)又(you)會(hui)占(zhan)用(yong)大(da)量(liang)的(de)程(cheng)序(xu)存(cun)儲(chu)器(qi)空(kong)間(jian)。
(3)軟件“看門狗”技術
跑飛的程序在執行一些錯誤操作之後。
經常會進入“死循環”,也就足常說的“死機”.通常采用“軟件看門狗”技術使程序脫離“死循環”,軟件“看門狗”技術的原理是通過不斷檢測程序循環運行時間,若發現程序循環時間超過最大循環運行時間,則認為係統陷入“死循環”,需要進行出錯處理。在實際應用中,通常用定時中斷服務程序定時地檢查主程序的運行情況。例如,在RAM區選擇一個字節作為軟件看門狗寄存器,主程序每循環一次將該寄存器加l,定時器TO的中斷服務程序每中斷一次將該寄存器減l並檢查一次,如果程序執行正常。看門狗寄存器不會改變或改變不大,如果看門狗寄存器發生了改變或改變很大,則說明係統陷入“死循環”.需(xu)要(yao)進(jin)行(xing)出(chu)錯(cuo)處(chu)理(li)。在(zai)工(gong)業(ye)應(ying)用(yong)中(zhong),嚴(yan)重(zhong)的(de)幹(gan)擾(rao)有(you)時(shi)會(hui)破(po)壞(huai)中(zhong)斷(duan)方(fang)式(shi)控(kong)製(zhi)字(zi),關(guan)閉(bi)中(zhong)斷(duan),造(zao)成(cheng)看(kan)門(men)狗(gou)失(shi)效(xiao),這(zhe)時(shi)可(ke)以(yi)采(cai)用(yong)環(huan)形(xing)中(zhong)斷(duan)監(jian)視(shi)係(xi)統(tong)。用(yong)定(ding)時(shi)器(qi)TO監視定時器Tl,用定時器Tl監視豐程序,主程序監視定時器T0.
采用這種環形結構的軟件“看門狗”具有良好的抗幹擾性能,大大提高了係統可靠性。對於需經常使用Tl定時器進行串口通訊的測控係統,則定時器Tl不能進行中斷,可改由串口中斷進行監控。當然,對主程序最大循環周期、定時器T0和Tl定時周期應於全盤合理考慮。軟件“看門狗”技術需要使用定時器,而在大多數的控製程序中,定時器都是緊俏的資源。這就使“軟件看門狗”技術的實際應用受到了限製,我們可以采取一些技巧性的處理,將軟件“看門狗”程序與其它定時程序複用同一個定時器,這樣既完成定時功能又完成軟件“看門狗”的功能。
(4)檢查RAM區標誌數據及時發現嚴重幹擾
這種方法是在RAM區中選擇幾個固定單元,在初始化程序中將其設置成固定的數據,隻要程序正常運行,這些單元的內容是不會改變的。如果因為程序“跑飛”或其它幹擾導致這些RAM單dan元yuan中zhong的de任ren何he單dan元yuan的de數shu據ju發fa生sheng了le變bian化hua,說shuo明ming單dan片pian機ji係xi統tong已yi經jing受shou到dao了le嚴yan重zhong的de幹gan擾rao,不bu能neng可ke靠kao地di運yun行xing下xia去qu了le。我wo們men可ke以yi在zai程cheng序xu執zhi行xing的de過guo程cheng中zhong適shi時shi地di檢jian查zha這zhe些xieRAM單元的內容,一旦發現有數據改變,立刻執行LJMP 0000 H語句,強製單片機複位。
[page]
(5)刷新輸出端口
排pai除chu嚴yan重zhong幹gan擾rao,當dang單dan片pian機ji係xi統tong受shou到dao嚴yan重zhong幹gan擾rao時shi,輸shu出chu端duan口kou的de狀zhuang態tai也ye可ke能neng因yin幹gan擾rao而er改gai變bian,在zai程cheng序xu的de執zhi行xing過guo程cheng中zhong適shi時shi地di根gen據ju相xiang關guan程cheng序xu模mo塊kuai的de運yun算suan結jie果guo刷shua新xin輸shu出chu端duan口kou,可ke以yi排pai除chu幹gan擾rao對dui輸shu出chu端duan口kou狀zhuang態tai的de影ying響xiang,使shi錯cuo誤wu的de輸shu出chu狀zhuang態tai及ji時shi得de到dao糾jiu正zheng。
(6)進行多次輸入采樣
避(bi)免(mian)嚴(yan)重(zhong)幹(gan)擾(rao),強(qiang)烈(lie)的(de)幹(gan)擾(rao)會(hui)影(ying)響(xiang)單(dan)片(pian)機(ji)的(de)輸(shu)入(ru)信(xin)號(hao),造(zao)成(cheng)輸(shu)入(ru)信(xin)號(hao)瞬(shun)間(jian)采(cai)樣(yang)的(de)誤(wu)差(cha)或(huo)誤(wu)讀(du),要(yao)避(bi)免(mian)幹(gan)擾(rao)的(de)影(ying)響(xiang),通(tong)常(chang)采(cai)取(qu)重(zhong)複(fu)采(cai)樣(yang),加(jia)權(quan)平(ping)均(jun)的(de)方(fang)法(fa)。
三、結束語
單dan片pian機ji係xi統tong運yun行xing的de可ke靠kao性xing會hui不bu確que定ding因yin素su的de幹gan擾rao。提ti高gao單dan片pian機ji應ying用yong係xi統tong的de可ke靠kao性xing要yao從cong軟ruan硬ying件jian入ru手shou。提ti高gao係xi統tong的de自zi身shen防fang禦yu行xing為wei,以yi上shang所suo提ti到dao幾ji種zhong提ti高gao可ke靠kao性xing的de方fang法fa,都dou不bu是shi單dan獨du使shi用yong的de,隻zhi有you根gen據ju實shi際ji情qing況kuang將jiang這zhe些xie方fang法fa有you效xiao地di結jie合he起qi來lai,才cai能neng達da到dao最zui佳jia抗kang幹gan擾rao效xiao果guo,使shi我wo們men的de單dan片pian機ji係xi統tong穩wen定ding可ke靠kao地di工gong作zuo。
相關閱讀:
單片機作為主要控製部件的數控DC電流源係統
基於單片機電子設備的電磁幹擾問題分析與診斷
單片機係統EMC測試
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 具身智能成最大亮點!CITE 2026開幕峰會釋放產業強信號
- 助力醫療器械產業高質量發展 派克漢尼汾閃耀2026 ICMD
- 比異步時鍾更隱蔽的“芯片殺手”——跨複位域(RDC)問題
- 數據之外:液冷技術背後的連接器創新
- “眼在手上”的嵌入式實踐:基於ROS2與RK3576的機械臂跟隨抓取方案
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索






