技術達人:單片機應用係統的可靠性設計
發布時間: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%wuguzhangshibukenengde。rongcuoshizhidangxitongdemougebujianfashengguzhangshi,xitongrengnengwanquanzhengchangdigongzuo,jigeixitongzengjiarongrenguzhangdenengli。weishixitongjuyourongcuonengli,bixuzaixitongzhongzengjiashidangderongyudanyuan,yibaozhengdangmougebujianfashengguzhangshinengyourongyubujianjietiqigongzuo,yuanbujianxiufuhouzaihuifuchucuoqiandezhuangtai。yingjianrongyushejikeyizaiyuanjianji、子係統或係統級上進行。例如,在係統級上采用雙機係統,兩套係統互為備用。
(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、測試及長期使用等方麵來解決軟件可靠性。單片機係統的抗幹擾能力是係統可靠性的重要指標。由於51danpianjidezhilingxitongshifuzazhilingjijiegou,zhishiqikangganraoxingnengjiaodi,youqiyongzaigongyekongzhidechanghe,ruguobuzengjiaewaidekangganraocuoshi,shenzhiwufazhengchanggongzuo。danpianjiruanjiankangganraoshejidezhuyaomudejiushijishifaxian“跑飛”的程序,並及時地將程序拉入正常軌道,主要方法有:指令冗餘、軟件“陷阱”、軟件“看門狗”等等。
[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
FLY為wei跑pao飛fei處chu理li子zi程cheng序xu,如ru果guo程cheng序xu正zheng常chang執zhi行xing,軟ruan件jian陷xian阱jing部bu分fen是shi永yong遠yuan也ye執zhi行xing不bu到dao的de,隻zhi有you在zai程cheng序xu跑pao飛fei到dao陷xian阱jing裏li,軟ruan件jian陷xian阱jing會hui立li刻ke將jiang程cheng序xu跳tiao轉zhuan到dao正zheng常chang軌gui道dao。即ji使shi程cheng序xu沒mei有you跑pao飛fei到dao陷xian阱jing裏li,也ye可ke以yi在zai程cheng序xu執zhi行xing一yi段duan錯cuo誤wu操cao作zuo後hou遇yu到dao一yi個ge軟ruan件jian陷xian阱jing,從cong而er轉zhuan入ru正zheng軌gui。除chu了le程cheng序xu存cun儲chu器qi的de空kong白bai區qu域yu,程cheng序xu的de數shu據ju表biao結jie尾wei也ye應ying該gai設she置zhi軟ruan件jian陷xian阱jing,如ru果guo數shu據ju表biao比bi較jiao大da,應ying該gai在zai數shu據ju表biao的de中zhong間jian也ye設she置zhi軟ruan件jian陷xian阱jing,以yi保bao證zheng程cheng序xu跑pao飛fei到dao數shu據ju區qu能neng及ji時shi轉zhuan入ru正zheng軌gui。另ling外wai,如ru果guo程cheng序xu存cun儲chu器qi的de空kong間jian足zu夠gou大da的de話hua,可ke以yi在zai每mei兩liang個ge子zi程cheng序xu中zhong間jian設she zhiyigeruanjianxianjing。dangshiyongdezhongduanyinganraoerkaifangshi,zaiduiyingdezhongduanfuwuchengxuzhongshezhiruanjianxianjing,nengjishibuhuocuowudezhongduan。ruanjianxianjingdeshuliangyaogenjushijishoudaoganraodeqingkuanghechengxucunchuqideronglianglaiqueding,ruguotaishaobunengjinxingyouxiaodepaofeilanjie,ruguotaiduoyouhuizhanyongdaliangdechengxucunchuqikongjian。
(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)刷新輸出端口
paichuyanzhongganrao,dangdanpianjixitongshoudaoyanzhongganraoshi,shuchuduankoudezhuangtaiyekenengyinganraoergaibian,zaichengxudezhixingguochengzhongshishidigenjuxiangguanchengxumokuaideyunsuanjieguoshuaxinshuchuduankou,keyipaichuganraoduishuchuduankouzhuangtaideyingxiang,shicuowudeshuchuzhuangtaijishidedaojiuzheng。
(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。
三、結束語
danpianjixitongyunxingdekekaoxinghuibuquedingyinsudeganrao。tigaodanpianjiyingyongxitongdekekaoxingyaocongruanyingjianrushou。tigaoxitongdezishenfangyuxingwei,yishangsuotidaojizhongtigaokekaoxingdefangfa,doubushidandushiyongde,zhiyougenjushijiqingkuangjiangzhexiefangfayouxiaodijieheqilai,cainengdadaozuijiakangganraoxiaoguo,shiwomendedanpianjixitongwendingkekaodigongzuo。
相關閱讀:
單片機作為主要控製部件的數控DC電流源係統
基於單片機電子設備的電磁幹擾問題分析與診斷
單片機係統EMC測試
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 大聯大世平集團首度亮相北京國際汽車展 攜手全球芯片夥伴打造智能車整合應用新典範
- 2026北京車展即將啟幕,高通攜手汽車生態“朋友圈”推動智能化體驗再升級
- 邊緣重構智慧城市:FPGA SoM 如何破解視頻係統 “重而慢”
- 如何使用工業級串行數字輸入來設計具有並行接口的數字輸入模塊
- 意法半導體將舉辦投資者會議探討低地球軌道(LEO)發展機遇
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索



