<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于32位單片機(jī)MC68HC376高可靠系統(tǒng)設(shè)計(jì)

          基于32位單片機(jī)MC68HC376高可靠系統(tǒng)設(shè)計(jì)

          作者: 時(shí)間:2012-03-08 來(lái)源:網(wǎng)絡(luò) 收藏

                圖6 掉電報(bào)警電路

            

              表1 軟件看門狗溢出時(shí)間

            *掉電報(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ò)關(guān)隔MOC8050串接起來(lái),一旦發(fā)生掉電的情況,掉電報(bào)警處的電平由高變?yōu)榈?,啟?dòng)報(bào)警裝置。

            軟件設(shè)計(jì)

            *軟件看門狗

            在的SIM模塊中,有一個(gè)軟件看門狗,在監(jiān)控程序中,可以開啟軟件看門狗,配合提高系統(tǒng)的。該軟件看門狗由的系統(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ì)使的/RESET引腳有效,系統(tǒng)復(fù)位。這樣,就可以在程序死循環(huán)或者由于其它原因而導(dǎo)致程序跳飛時(shí)自動(dòng)回復(fù)到復(fù)位狀態(tài)。

            看門狗的溢出時(shí)間由系統(tǒng)頻率以及SYPCR寄存器的看門狗分頻位(SWP)和看門狗定時(shí)區(qū) (SWT[1:0])決定,如表1所示。選擇看門狗溢出時(shí)間時(shí)應(yīng)該注意大小適中,若取值過(guò)大,則程序可能會(huì)較長(zhǎng)時(shí)間處于死循環(huán)或跳飛狀態(tài),從而導(dǎo)致控制錯(cuò)誤或失效;若取值過(guò)小,則會(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ì)一些寄存器和指令的訪問(wèn)會(huì)受到限制。在程序中有效地利用這種優(yōu)先級(jí)別會(huì)使內(nèi)部資源和一些系統(tǒng)指令得到有控制的訪問(wèn),從而提高系統(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,可以通過(guò)功能碼FC[2:0]來(lái)擴(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è)模塊,可以通過(guò)其相應(yīng)的結(jié)構(gòu)寄存器中的SUPV位來(lái)確定該部分的通用寄存器所處的地址空間,當(dāng) SUPV=1時(shí),將相關(guān)的寄存器放置于監(jiān)控級(jí)數(shù)據(jù)地址空間,CPU只有在監(jiān)控級(jí)別時(shí)才可對(duì)其訪問(wèn)和操作;當(dāng)SUPV=0時(shí),將相關(guān)的寄存器放置于數(shù)據(jù)級(jí)數(shù)據(jù)地址空間,CPU可任意對(duì)其進(jìn)行訪問(wèn)和操作。這樣,整個(gè)程序結(jié)構(gòu)性強(qiáng),按級(jí)別控制訪問(wèn),增強(qiáng)了運(yùn)行的可靠性。

            *總線監(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í)間超過(guò)定時(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ù)的保存。

            結(jié)語(yǔ)

            該方案采用高性能、集成度高、可靠性強(qiáng)的32位新型微控制器MC68HC376為核心,同時(shí)在硬件、軟件以及制板布線等方面采用多種提高系統(tǒng)可靠性的設(shè)計(jì)措施。應(yīng)用該方案的數(shù)字式低頻低壓控制裝置RSA800,已通過(guò)電力工業(yè)部電力設(shè)備及儀表質(zhì)量檢驗(yàn)測(cè)試中心的產(chǎn)品型式試驗(yàn)。


          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();