微處理器是
電磁(cí)流量計
的核心單(dan)元, 控制整個系統(tǒng)的運行。當單片機(jī)應用系統🤞的 CPU 受到(dao)👄幹擾時, 可能造成(chéng)的影響有: 非正常(cháng)修改程序計💯數器(qi)指針; 改寫可編程(cheng)輸出端口狀态; 非(fēi)正常修㊙️改數據區(qu)的數據等。以上不(bú)良影響會使單片(pian)機程序失控, 其後(hòu)果是非常嚴重的(de)。結合
智能電磁流(liú)量計
的工作特點(dian)和 MSP430系列單片機的(de)特性, 采用軟件與(yǔ)硬件抗幹擾📧技術(shù)相結合, 提高系統(tǒng)運行的穩定性。
1 硬(yìng)件抗幹擾
由于軟(ruǎn)件抗幹擾措施是(shì)以犧牲 CPU 效率爲代(dài)價的, 如果沒有硬(yìng)⚽件消除絕大多數(shu)幹擾, CPU 将疲于奔命(mìng), 無暇顧及正常工(gong)作, 嚴重📐影響系統(tong)的工作效率和實(shi)時性。電磁流量計(ji)輸出單元一般包(bāo)括 4~ 20 mA 電流輸出, 集電(diàn)極開路的頻率輸(shū)出😍以及工業現場(chang)總線接口等, 在輸(shu)入和輸出通道上(shàng)采用光電隔離器(qi)來進行信息傳輸(shu)是很有好📧處的, 它(ta)将微機系統與各(gè)種傳感器、 開關、 執(zhí)行機構從電氣上(shang)隔離開來🔞, 很大一(yi)部分幹擾将被阻(zu)擋。M SP430單片機與外圍(wéi)設備, 如模💔數轉換(huan)器、 EEP -ROM 等采用總線通(tōng)信方式。當信号同(tong)時切換時會引起(qǐ) /地彈 0和串擾。在電(diàn)路闆布線🔱時, 總線(xian)盡量使用地線包(bāo)圍, 電路采用多點(dian)接地方🤞式。同時總(zong)線采用上拉電❗阻(zu)方🔅式, 可以提高邏(luo)輯電路噪聲容限(xiàn), 使總線通信更加(jiā)可靠🛀。M SP430的通用端口(kǒu)可以設置♋爲輸❄️入(ru)和輸出兩✊種狀态(tai), 對于沒有使用的(de)端口, 全部設置爲(wèi)輸出狀态, 防止 CPU受(shou)到意外幹擾。此外(wài) XT 2OUT 、 X OUT 、 VREF+ 空🈲置; X I N 、 AV CC 接數字電源(yuan)端; XT 2IN 、 VREF-、 VREF+ 接數字地。
2 睡眠(mián)狀态抗幹擾
電磁(cí)流量計中微處理(lǐ)器很多情況下是(shi)在執行等待指令(ling)和循環檢查程序(xu), 這時 CPU 沒有工作, 但(dàn)卻是清醒的, 很容(róng)⭐易受幹擾🚶♀️。MSP430系列♉單(dān)片機提供了多種(zhǒng)睡眠🤩狀态, 讓 CPU在沒(méi)有正常工👈作時休(xiū)眠, 必要時再由中(zhong)斷系統來喚醒它(ta), 之後恢複休眠狀(zhuàng)态,從而⁉️使 CPU受到随(suí)🏃♂️機幹擾的威脅大(dà)大降低, 同時降低(di)了 CPU的功耗。
3 指令冗(rǒng)餘與軟件陷阱技(jì)術
程序正常運行(háng)時, 指令計數器始(shi)終指向下一條指(zhi)📞令💋的第一個📱字節(jiē), 當單片機受到幹(gan)擾時, 可能引起程(chéng)序計數器的非正(zhèng)常修改, 将操作數(shù)當作指令碼🌂執行(hang), 造成程序誤操作(zuò)🔞。M SP430單片機采用 RISC指令(lìng)内核, 指令字有單(dan)字節、 雙字節和三(san)字節指令三種🌈, 在(zài)雙字節和三字節(jie)指✍️令後插入兩條(tiao)單字節指令, 程序(xu)失控時也可以迅(xùn)速進入預期控制(zhi)軌道。
綜合考慮 CPU 效(xiào)率和抗幹擾能力(lì), 在對程序流向起(qǐ)關👌鍵⚽作用的指令(lìng)處, 如跳轉指令、 中(zhōng)斷恢複指令等, 插(cha)入兩條 / NOP0單字節空(kōng)操作指令, 以保證(zheng) /跑飛 0的程序迅速(sù)納入正确的控制(zhì)軌道。爲了🌂防止單(dān)片機輸出口狀态(tai)被意外修改, 定期(qi)重新定義輸出口(kǒu)狀态。M SP430單片🐇機内部(bu)集成⛱️很多外圍設(shè)備, 如 UART、 SPI串口、 定時計(jì)數器等, 爲了防止(zhi)這些設備的相應(yīng)控制寄存器被意(yi)外修改, 每次使用(yòng)時都需重新設置(zhi)。指令冗餘使 /跑飛(fēi) 0的程序安定下來(lái)是有前提條件的(de): 程序計算器必須(xu)🤩指向程序區。當程(chéng)序計數器落到非(fēi)程序區, 如 ROM 中未👌使(shi)用的空間、 中斷🚶♀️向(xiang)量表、 數據區, 則冗(rǒng)餘指令失效☂️。
采取(qǔ)額外措施就是設(she)立軟件陷阱。所謂(wèi)軟件陷阱, 就是一(yī)條引導指令, 強行(hang)将捕獲的程序引(yin)向對程序出錯進(jin)行處理的程序, 一(yī)般安排在未使用(yong)的中斷向量、 未使(shǐ)用的 ROM 等。M SP430單片機具(ju)有多個中斷發生(sheng)源。正常工作時, 執(zhi)行完中斷服務程(cheng)序後, 相應的中斷(duàn)标志位會被硬件(jiàn)自動複位; 當單片(piàn)機受到幹擾, 運行(háng)異常時, 可能會觸(chu)發沒有使用的中(zhōng)斷, 導緻系統不能(néng)正常工作, 因此在(zai)未被使用的中斷(duan)向量處插入冗餘(yú)指令, 使中斷自動(dong)返回, 如: / NOP NOP RETI0。
對于沒有(yǒu)使用的 ROM, 程序燒錄(lu)器默認寫入字0xfff,f該(gāi)字對于指令系統(tǒng)是一條指令, 這條(tiao)指令會修改單片(piàn)機内部🌈寄存器值(zhí); 如果程序 /跑飛 0進(jìn)入這段 ROM中, 可能造(zào)成數據運算錯誤(wu), 因此🌏在未使用的(de) ROM 中😍寫入代碼, 使程(cheng)序跳轉到出錯處(chù)理程序。
|