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