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