基于32位單片機MC68HC376高可靠系統設計
圖6 掉電報警電路
表1 軟件看門(mén)狗溢出時(shí)間
*掉電報警電路
當系統的某一級工作電源掉電時(shí),控制裝置將不能正常運作,或者控制信號得不到正確執行。這時(shí)應該發(fā)出報警信號,掉電報警電路如圖6所示。
將各等級的工作電源通過(guò)關(guān)隔MOC8050串接起來(lái),一旦發(fā)生掉電的情況,掉電報警處的電平由高變?yōu)榈?,啟?dòng)報警裝置。
軟件可靠性設計
*軟件看門(mén)狗
在MC68HC376的SIM模塊中,有一個(gè)軟件看門(mén)狗,在監控程序中,可以開(kāi)啟軟件看門(mén)狗,配合提高系統的可靠性。該軟件看門(mén)狗由MC68HC376的系統保護控制寄存器(SYPCR)中的SWE位控制開(kāi)啟。當SWE位為1時(shí),看門(mén)狗啟動(dòng),開(kāi)始計時(shí)。
在裝置正常工作時(shí),程序應該在軟件看門(mén)狗溢出之前對軟件服務(wù)寄存器(SWSR)先后寫(xiě)入 55H和AAH,當寫(xiě)入完成之后,軟件看門(mén)狗就會(huì )清除當前計時(shí)值,重新開(kāi)始計時(shí)。如果計時(shí)值溢出,則會(huì )使MC68HC376的/RESET引腳有效,系統復位。這樣,就可以在程序死循環(huán)或者由于其它原因而導致程序跳飛時(shí)自動(dòng)回復到復位狀態(tài)。
看門(mén)狗的溢出時(shí)間由系統頻率以及SYPCR寄存器的看門(mén)狗分頻位(SWP)和看門(mén)狗定時(shí)區 (SWT[1:0])決定,如表1所示。選擇看門(mén)狗溢出時(shí)間時(shí)應該注意大小適中,若取值過(guò)大,則程序可能會(huì )較長(cháng)時(shí)間處于死循環(huán)或跳飛狀態(tài),從而導致控制錯誤或失效;若取值過(guò)小,則會(huì )增加程序負擔,降低裝置運行效率。
*程序的區域劃分和操作級別控制
CPU32可進(jìn)行兩種優(yōu)先級別的操作:監控級別和用戶(hù)級別。在監控級別下,CPU可以對所有的內部集成資源和所有的指令進(jìn)行操作,而在用戶(hù)級別下,它對一些寄存器和指令的訪(fǎng)問(wèn)會(huì )受到限制。在程序中有效地利用這種優(yōu)先級別會(huì )使內部資源和一些系統指令得到有控制的訪(fǎng)問(wèn),從而提高系統運行的可靠性。CPU32的狀態(tài)寄存器SR中的S位決定CPU的工作級別,當S=1時(shí)CPU處于監控級別;S=0時(shí) CPU處于用戶(hù)級別。
一般情況下,單片機的程序區和數據區在同一個(gè)物理地址空間。對于MC68HC376,可以通過(guò)功能碼FC[2:0]來(lái)擴展和劃分外部物理空間,對FC[2:0]實(shí)現外部解碼,可以使監控級程序、監控級數據、用戶(hù)級程序、用戶(hù)級數據分別使用各自獨立的地址空間。對于MC68HC376內部的各個(gè)模塊,可以通過(guò)其相應的結構寄存器中的SUPV位來(lái)確定該部分的通用寄存器所處的地址空間,當 SUPV=1時(shí),將相關(guān)的寄存器放置于監控級數據地址空間,CPU只有在監控級別時(shí)才可對其訪(fǎng)問(wèn)和操作;當SUPV=0時(shí),將相關(guān)的寄存器放置于數據級數據地址空間,CPU可任意對其進(jìn)行訪(fǎng)問(wèn)和操作。這樣,整個(gè)程序結構性強,按級別控制訪(fǎng)問(wèn),增強了運行的可靠性。
*總線(xiàn)監視器
MC68HC376進(jìn)行內部總線(xiàn)操作時(shí),數據選通應答引腳(/DSACK)和自動(dòng)向量引腳 (/AVEC)應該有相應的應答信號。SIM模塊中的總線(xiàn)監視器能對/DSACK和/AVEC信號進(jìn)行監視,當響應時(shí)間超過(guò)定時(shí)值就使總線(xiàn)錯誤 (/BERR)引腳有效。程序應對/BERR的狀態(tài)進(jìn)行監視,以便及時(shí)對總線(xiàn)錯誤做出相應的處理。
總線(xiàn)監視器的定時(shí)值由系統保護控制寄存器(SYPCR)中的總線(xiàn)監視時(shí)間區 (BMT[1:0])決定。BMT[1:0]=00時(shí),定時(shí)值為64個(gè)系統時(shí)鐘;BMT[1:0]=01時(shí),定時(shí)值為32個(gè)系統時(shí)鐘;BMT[1:0]=10時(shí),定時(shí)值為16個(gè)系統時(shí)鐘;BMT[1:0]=11時(shí),定時(shí)值為8個(gè)系統時(shí)鐘。程序員應根據實(shí)際的運行情況進(jìn)行選擇。
其它
其它一些提高可靠性的措施還包括有配置去耦電容;系統時(shí)鐘電路采用獨立電源VDDSYN供電,減少對MCU的干擾,而且MCU停電時(shí)系統時(shí)鐘仍可維持運行。布線(xiàn)時(shí),時(shí)鐘電路設置在電路板的中央;Standby RAM采用兩個(gè)電源VDD和VSTBY供電,正常運行時(shí)VDD供電,發(fā)生掉電時(shí),使其自動(dòng)切換到VSTBY供電。同時(shí),在軟件中,將堆棧及一些重要數據存放在Standby RAM有利于重要運行參數的保存。
結語(yǔ)
該方案采用高性能、集成度高、可靠性強的32位新型微控制器MC68HC376為核心,同時(shí)在硬件、軟件以及制板布線(xiàn)等方面采用多種提高系統可靠性的設計措施。應用該方案的數字式低頻低壓控制裝置RSA800,已通過(guò)電力工業(yè)部電力設備及儀表質(zhì)量檢驗測試中心的產(chǎn)品型式試驗。
評論