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