微處理器(qi)是
電磁流(liu)量計
的核(he)心單元, 控(kong)制整個系(xi)統的運行(hang)。當單片機(ji)應用系統(tong)的 CPU 受到🈲幹(gan)擾時, 可能(neng)造成的影(ying)響有: 非正(zheng)常修改程(cheng)💚序計㊙️數器(qi)指針; 改寫(xie)可編程輸(shu)出端口狀(zhuang)态; 非正常(chang)修改數據(ju)區的數據(ju)等。以上不(bu)良影響會(hui)使單片機(ji)程序失控(kong), 其後果是(shi)非常嚴重(zhong)的。結合
智(zhi)能電磁流(liu)量計
的工(gong)作特點和(he) MSP430系列單片(pian)機的特性(xing), 采用軟件(jian)與硬🐕件👣抗(kang)幹擾技👌術(shu)相結合, 提(ti)高系統運(yun)行的穩定(ding)性。
1 硬件抗(kang)幹擾
由于(yu)軟件抗幹(gan)擾措施是(shi)以犧牲 CPU 效(xiao)率爲代價(jia)的, 如果沒(mei)㊙️有硬件消(xiao)除絕大多(duo)數幹擾, CPU 将(jiang)疲于奔命(ming), 無暇顧及(ji)💚正常工作(zuo), 嚴重影響(xiang)系統的工(gong)作效率和(he)實時性。電(dian)磁流量計(ji)㊙️輸出單元(yuan)一般包括(kuo) 4~ 20 mA 電流輸出(chu), 集電極開(kai)路的頻率(lü)輸出以及(ji)工業現場(chang)總線接口(kou)等, 在👅輸入(ru)和輸出通(tong)道上采用(yong)光電隔離(li)器來進行(hang)信息傳輸(shu)是很有好(hao)⭐處的, 它将(jiang)微機系統(tong)與各種傳(chuan)感器、 開關(guan)、 執行機構(gou)從電氣上(shang)隔離開來(lai), 很大一部(bu)分幹⛹🏻♀️擾将(jiang)被阻擋。M SP430單(dan)片機㊙️與外(wai)圍設備, 如(ru)模數轉換(huan)器、 EEP -ROM 等采用(yong)總線通信(xin)方式。當💁信(xin)号同時切(qie)換時會引(yin)起 /地彈 0和(he)串擾。在電(dian)路闆布線(xian)時, 總線盡(jin)量使用地(di)線包圍, 電(dian)路采用多(duo)點接地方(fang)式。同時總(zong)線采用上(shang)拉電阻方(fang)式, 可以提(ti)高邏輯電(dian)路噪👨❤️👨聲容(rong)限, 使總線(xian)通信⭐更加(jia)可靠。M SP430的通(tong)用端口可(ke)以設置爲(wei)輸入和輸(shu)出兩種狀(zhuang)态, 對于沒(mei)有使用的(de)端口, 全部(bu)設置爲輸(shu)出💃🏻狀㊙️态, 防(fang)止 CPU受到意(yi)外幹❄️擾。此(ci)外 XT 2OUT 、 X OUT 、 VREF+ 空🌈置; X I N 、 AV CC 接(jie)數字電源(yuan)端; XT 2IN 、 VREF-、 VREF+ 接數字(zi)地。
2 睡眠狀(zhuang)态抗幹擾(rao)
電磁流量(liang)計中微處(chu)理器很多(duo)情況下是(shi)在執行等(deng)待指令和(he)循環檢查(cha)程序, 這時(shi) CPU 沒有工作(zuo), 但卻是清(qing)醒的, 很容(rong)易受幹擾(rao)。MSP430系列單片(pian)機提供了(le)多種睡眠(mian)狀态, 讓 CPU在(zai)沒有正常(chang)工作時休(xiu)眠, 必要時(shi)再由中斷(duan)系統來喚(huan)醒它, 之後(hou)恢複休眠(mian)狀态,從而(er)使 CPU受到随(sui)機幹擾的(de)威脅大大(da)降低, 同時(shi)降低了 CPU的(de)功耗。
3 指令(ling)冗餘與軟(ruan)件陷阱技(ji)術
程序正(zheng)常運行時(shi), 指令計數(shu)器始終指(zhi)向下一條(tiao)指令的第(di)一個字節(jie), 當單片機(ji)受到幹擾(rao)時, 可能引(yin)起🌍程序🙇♀️計(ji)數器的非(fei)正🐪常修改(gai), 将操作數(shu)當作指令(ling)碼執行, 造(zao)成程序誤(wu)操作。M SP430單片(pian)機采用 RISC指(zhi)令内核, 指(zhi)令字有單(dan)字節、 雙字(zi)節和三字(zi)節🙇♀️指令三(san)種, 在雙字(zi)節和三字(zi)節指令後(hou)插入兩🧡條(tiao)單字節指(zhi)令, 程序失(shi)控🔴時也可(ke)以迅速進(jin)入預期控(kong)制軌道。
綜(zong)合考慮 CPU 效(xiao)率和抗幹(gan)擾能力, 在(zai)對程序流(liu)向起關鍵(jian)作用的♈指(zhi)令處, 如跳(tiao)轉指令、 中(zhong)斷恢複指(zhi)令等, 插入(ru)兩條 / NOP0單🛀🏻字(zi)節✔️空操作(zuo)指令, 以保(bao)證 /跑飛 0的(de)程序迅👅速(su)納入♍正确(que)的控制軌(gui)道。爲了防(fang)止單片機(ji)輸出口狀(zhuang)态被意外(wai)修改, 定期(qi)重新定🏃🏻義(yi)輸出口狀(zhuang)态。M SP430單片機(ji)内部集成(cheng)🌂很多外圍(wei)設備, 如 UART、 SPI串(chuan)口、 定時計(ji)數器等, 爲(wei)了防止這(zhe)些設備的(de)相應控制(zhi)寄存器被(bei)意外修改(gai), 每次使用(yong)時都需重(zhong)新設置。指(zhi)令☔冗餘使(shi) /跑飛 0的程(cheng)序安定下(xia)來是有前(qian)提條件的(de): 程序計算(suan)器必須指(zhi)向程序區(qu)。當程序計(ji)數器落到(dao)非程序區(qu), 如 ROM 中未✉️使(shi)用的空間(jian)、 中斷向量(liang)表⛷️、 數據區(qu), 則冗餘指(zhi)令失效。
采(cai)取額外措(cuo)施就是設(she)立軟件陷(xian)阱。所謂軟(ruan)件陷阱, 就(jiu)是一條引(yin)導指令, 強(qiang)行将捕獲(huo)的程序引(yin)向對程序(xu)出錯進行(hang)處理的程(cheng)序, 一般安(an)排在未使(shi)用的中斷(duan)向量、 未使(shi)用的 ROM 等。M SP430單(dan)片機具有(you)多個中斷(duan)發生源。正(zheng)常工作時(shi), 執行完中(zhong)斷服務程(cheng)序後, 相應(ying)的中斷标(biao)志位會被(bei)硬件自動(dong)複位; 當單(dan)片機受到(dao)幹擾, 運行(hang)異常時, 可(ke)能會觸發(fa)沒有使用(yong)的中斷, 導(dao)緻系統不(bu)能正常工(gong)作, 因此在(zai)未被使用(yong)的中斷向(xiang)量處插入(ru)冗餘指令(ling), 使中斷自(zi)動返回, 如(ru): / NOP NOP RETI0。
對于沒有(you)使用的 ROM, 程(cheng)序燒錄器(qi)默認寫入(ru)字0xfff,f該字對(dui)于指令系(xi)統是一條(tiao)指令, 這條(tiao)指令會修(xiu)改單片機(ji)内部寄存(cun)器值; 如果(guo)程序 /跑飛(fei) 0進入這段(duan) ROM中, 可能造(zao)成數據運(yun)算錯誤, 因(yin)此在未使(shi)用的 ROM 中寫(xie)入代碼, 使(shi)程序跳轉(zhuan)到出錯處(chu)理程序。