亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        單片機控制系統(tǒng)的軟件抗干擾技術(shù)措施*

        2017-04-25 08:59:07麒,王
        電子器件 2017年2期
        關(guān)鍵詞:被控中斷指令

        劉 麒,王 影

        (吉林化工學(xué)院信控學(xué)院,吉林 吉林 132022)

        單片機控制系統(tǒng)的軟件抗干擾技術(shù)措施*

        劉 麒*,王 影

        (吉林化工學(xué)院信控學(xué)院,吉林 吉林 132022)

        為了提高單片機控制系統(tǒng)在實際工作中的在軟件方面的抗干擾性,基于軟件抗干擾方法在單片機中的實現(xiàn)理論,論述了主流軟件抗干擾技術(shù)的利弊,將C語言與其他多種匯編語言相結(jié)合,對現(xiàn)有的軟件抗干擾技術(shù)的弊端進行分析并予以解決,較之硬件抗干擾技術(shù),所提的軟件抗干擾技術(shù)可大幅提高控制系統(tǒng)的工作效率并極大的節(jié)約了系統(tǒng)計算時間,并且可廣泛應(yīng)用于單片機嵌入式的控制系統(tǒng)中。

        51單片機;混合編程語言;抗干擾技術(shù)

        隨著工業(yè)自動化程度的快速發(fā)展,單片機憑借其優(yōu)秀的嵌入性以及強大的計算能力,在工業(yè)各個行業(yè)得到廣泛的應(yīng)用,國內(nèi)外學(xué)者亦對其進行了廣泛的研究,而對其控制系統(tǒng)在抗干擾能力方面的研究大多數(shù)集中在硬件的改善,硬件的改善可解決一部分影響單片機控制系統(tǒng)的干擾源,而相當(dāng)大的一部分干擾源則是由軟件方面引起的,并且改善軟件方面的干擾源所耗成本較低,查找問題迅速,對其控制系統(tǒng)進行較為合適的算法設(shè)計,編制適宜的控制程序即可實現(xiàn)高精度采集控制,選用最為合適的控制算法,使單片機控制系統(tǒng)在各類干擾源的影響下可以穩(wěn)定的運行。

        比較目前較為流行的集中匯編語言,C語言(C51)憑借其良好的可讀性以及較寬的可復(fù)制性,被廣泛應(yīng)用于單片機程序開發(fā)中[1]。目前已報道的文獻表明,應(yīng)用軟件抗干擾技術(shù)較為主流的方法是基于C語言或者基于其他類型的編程語言來實現(xiàn)的,而C51結(jié)合多種語言來提高單片機控制系統(tǒng)抗干擾性的研究鮮見報道,在已經(jīng)報道的文獻中亦有多個不適用的方法,因此,本文結(jié)合51單片機對其控制系統(tǒng)的抗干擾性進行了詳細(xì)的研究,首先對其工作原理進行了分析,結(jié)合實例著重分析了目前應(yīng)用較為廣泛的抗干擾的方法,并且對于已經(jīng)報道的文獻中所出現(xiàn)的不足予以糾正、改善,對所提的C51結(jié)合其他匯編語言進行編程并給出具體控制程序,此類程序具有優(yōu)異的可復(fù)制性,對其稍作修改即可廣泛應(yīng)用于各個行業(yè)的控制領(lǐng)域。

        1 控制系統(tǒng)設(shè)計

        基于單片機編制具有模塊化特點的控制系統(tǒng)由5個子模塊組成,其結(jié)構(gòu)示意圖如圖1所示。左圖是定時中斷服務(wù)程序,用中斷方式產(chǎn)生1 ms或其他適當(dāng)時間間隔的定時信號,并在中斷服務(wù)程序中做盡可能少的處理,如計數(shù)、設(shè)置標(biāo)識位等。右圖是系統(tǒng)主程序,在主程序的主循環(huán)中,可以對各種標(biāo)志進行判斷,符合條件則做相應(yīng)處理,并清除相關(guān)標(biāo)志。

        圖1 控制系統(tǒng)框圖

        圖1所示的系統(tǒng)初始化子程序是在控制系統(tǒng)運行之初,對單片機的各個子模塊狀態(tài)進行預(yù)設(shè)的初始化設(shè)置,比如對各個控制變量以及數(shù)據(jù)存儲單元賦予最初的設(shè)定值;監(jiān)控模塊主要是根據(jù)實時被控對象的變化情況來選擇應(yīng)執(zhí)行的子模塊來滿足被控對象的穩(wěn)定運行,其工作模式為一個循環(huán)往復(fù)的周期循環(huán)模式,在監(jiān)控過程中的中斷子程序會進行中斷執(zhí)行,在斷點處返回并持續(xù)進行工作,在返回到監(jiān)控模塊中,其中斷模式包括程序外以及定時器中斷等模式;本文所提抗干擾模塊是嵌入于各個子模塊中的未被占用的內(nèi)存空間中,本文將對其進行深入分析。

        2 軟件抗干擾技術(shù)

        2.1 數(shù)字濾波技術(shù)

        利用單片機搭建的控制系統(tǒng)主要是對被控對象的外部設(shè)備進行控制,在單片機控制系統(tǒng)進行被控對象的實時數(shù)據(jù)采集時,采集的數(shù)據(jù)并不能精確的反應(yīng)被控對象的狀態(tài),采集數(shù)據(jù)會伴隨著一定的隨機誤差的產(chǎn)生,此類隨機誤差不可避免,因為系統(tǒng)中存在著或大或小的隨機性干擾源,其會干擾采集到的數(shù)據(jù)誤差具有隨機波動性,并且每次采樣的數(shù)據(jù)誤差均不相同,但是經(jīng)過多次數(shù)據(jù)采樣后,對被控對象的多組特性實時數(shù)據(jù)進行統(tǒng)計分析,發(fā)現(xiàn)多組數(shù)據(jù)具有一定規(guī)律的特性,在硬件方面可選用電子濾波器進行濾波,本文主要是在軟件方面進行濾波,研究表明,軟件數(shù)字濾波技術(shù)對于精確控制被控對象具有重要作用,其具有極強的實時反應(yīng)被控對象的特性[2]。

        2.1.1 限幅濾波算法

        限幅濾波是基于同一數(shù)據(jù)采集點的相鄰兩次采集數(shù)值差,并將其差值的絕對值進行比較,最終得到最大差值A(chǔ),對A進行判斷,如果小于等于設(shè)定精度值,則本次數(shù)據(jù)采集為有效過程,反之應(yīng)去除此采集數(shù)據(jù)延用上一次的采集值。

        算法的程序代碼如下:

        //============================

        #define A//允許的最大差值

        char data;//上一次的數(shù)據(jù)

        char filter()

        {

        char datanew;//新數(shù)據(jù)變量

        datanew=get_data();//獲得新數(shù)據(jù)變量

        if((datanew-data)>A||(data-datanew>A))

        return data;

        else

        return datanew;

        }

        說明:限幅濾波法多應(yīng)用在采集被控對象的溫度以及被控對象位置等參數(shù),此類參數(shù)的共性為數(shù)據(jù)變化較慢。

        2.1.2 中值濾波算法

        此算法是采集一組被控對象的特征數(shù)據(jù),將此組采集數(shù)據(jù)組由小到大進行排序,將位于此組數(shù)據(jù)中間的采樣數(shù)據(jù)值作為此次采集過程的采樣值,此類濾波技術(shù)實際上是一種排列取值的運算過程。

        算法的程序代碼如下:

        #define N 11//定義獲得的數(shù)據(jù)個數(shù)

        char filter()

        {

        char value_buff[N];//定義存儲數(shù)據(jù)的數(shù)組

        char count,i,j,temp;

        for(count=0;count

        {

        value_buf[count]=get_data();

        delay();//如果采集數(shù)據(jù)比較慢,那么就需要延時或中斷

        }

        for(j=0;j

        {

        for(value_buff[i]>value_buff[i+1]

        {

        temp=value_buff[i];

        value_buff[i]=value_buff[i+1];

        value_buff[i+1]=temp;

        }

        }

        return value_buff[(N-1)/2];

        說明:中值濾波技術(shù)可屏蔽掉控制系統(tǒng)偶然因素以及采樣設(shè)備波動干擾。種植濾波技術(shù)適用于數(shù)據(jù)變化較慢的被控對象,變化較快的數(shù)據(jù)則不適用。

        2.1.3 算術(shù)平均值濾波算法

        該算法的基本原理很簡單,就是連續(xù)取N次采樣值后進行算術(shù)平均。

        算法的程序代碼如下:

        char filter()

        {

        int sum=0;

        for(count=0;count

        {

        sum+=get_data();

        delay():

        }

        return(char)(sum/N);

        }

        說明:被控對象發(fā)出的信號具有隨機性時宜采用算術(shù)平均濾波算法進行濾波。

        2.1.4 滑動平均濾波算法

        上述的濾波算法均具有一個共性,就是需要進行多次數(shù)據(jù)采集才能得到一次有效的數(shù)據(jù)采集點,數(shù)據(jù)采集數(shù)度較慢,不能實時獲得被測對象的特征變化。而滑動平均濾波算法只需將本次采集數(shù)據(jù)與前幾次采集數(shù)據(jù)進行運算,求得其平均值,即可得到有效的采集數(shù)據(jù)。

        程序代碼如下:

        char value_buff[N];

        char i=0;

        char filter()

        {

        char count;

        int sum=0;

        value_buff[i++]=get_data();

        if(i==N)

        i=0;

        for(count=0;count

        sum=value_buff[count];

        return(char)(sum/N);

        }

        2.2 軟件陷阱技術(shù)

        2.2.1 空閑ROM存儲空間

        在對程序語言進行匯編過程中,代碼在內(nèi)存中的存儲地址由偽指令來分配,內(nèi)存中的地址分為固定位置以及重新分配位置2個段位,前者的位置在程序編制之初就已經(jīng)設(shè)定好了相關(guān)地址,因此不可改變其地址,而后者可以基于會變軟件對程序進行修改,實現(xiàn)對其存儲地址再分配的目的,本文擬基于前者進行分析,設(shè)定內(nèi)存空間的存儲地址以500 h為起點[6]。

        2.2.2 重置堆棧指針SP和中斷功能的恢復(fù)

        目前,國內(nèi)已報道的文獻[7-10]均未對中斷功能的恢復(fù)進行深入的研究,導(dǎo)致此類干擾是影響控制系統(tǒng)精度的一個重要的因素,大部分研究僅僅給控制系統(tǒng)設(shè)定返回功能,將對系統(tǒng)進行重新的初始化以達到控制系統(tǒng)繼續(xù)正常工作的目的,此種做法具有一定的作用,但是未能較為徹底的從根本上解決這一問題。本文擬將在內(nèi)存代碼存儲地址以外的位置,執(zhí)行中斷指令,此種做法的目的是為了可以將各類中斷指令分級處理,對于同等級的程序指令可同時接收,并可以對同等級的多個指令進行重置,此方法可以將中斷程序指令的作用得到最優(yōu)化的使用。

        當(dāng)單片機的CPU受到干擾源干擾時,會把系統(tǒng)操作數(shù)誤以為系統(tǒng)指令程序來存儲并執(zhí)行,導(dǎo)致控制系統(tǒng)程序工作混亂,主要程序代碼有以下幾種:

        (1)中斷向量區(qū)

        ORG 0000H

        START:LJMP MAIN

        LJMP INT0

        NOP

        NOP

        LJMP ERR 陷阱

        LJMP TOINT

        NOP

        NOP

        LJMP ERR 陷阱

        ORG 0040H

        ERR:

        (2)在表格區(qū)

        在表格區(qū)的最后安排5 byte的陷阱

        TABEL1:

        DB------------

        DB------------

        NOP

        NOP

        LJMP ERR

        (3)在未使用的ROM空間

        未被程序指令占用的內(nèi)存空間一般均為OFFH,當(dāng)程序指令發(fā)生跑飛到此位置,其會產(chǎn)生飛流直下的狀態(tài),因此應(yīng)在程序中在固定的程序存儲地址程序加入些軟件陷阱以準(zhǔn)確實時的捕捉跑飛的程序指令。

        程序指令如下:

        ORG 6000H

        NOP

        NOP

        LJMP ERR

        ORG 7FFBH

        NOP

        NOP

        LJMP ERR

        (4)在子程序后面

        XXXX:

        ;;;;;;;;;;

        ;;;;;;;;;;

        RET

        NOP

        NOP

        LJMP ERR

        單片機控制系統(tǒng)的CPU計算時間單位為微秒級,上述程序最多可消耗14個計算時間,也就是說程序指令出現(xiàn)跑飛開始到控制系統(tǒng)將其捕獲并進行初始化所耗費的時間極短,小于等于80 μs,而硬件方面的定時器的工作時間單位為毫秒級,遠遠高于軟件匯編程序中斷捕獲所耗的時間,這亦驗證了采用匯編程序復(fù)位初始化控制系統(tǒng)可極大程度的節(jié)省系統(tǒng)運行時間周期,在系統(tǒng)工作效率以及控制的實時性方面獲得了較大的提升。

        2.3 軟件冗余技術(shù)

        單片機控制系統(tǒng)是由采集、控制硬件以及與之向匹配的軟件(匯編程序指令)組成的,通過將兩者進行完美融合實現(xiàn)控制系統(tǒng)協(xié)調(diào)工作,根據(jù)已有文獻報道的軟件冗余技術(shù)應(yīng)用于控制系統(tǒng)中[7-10],學(xué)者們通常采用將空程序指令數(shù)設(shè)定為設(shè)置>3個,以此來解決正常運行的程序中所隱藏的跑飛程序。此種方法并不適用于控制系統(tǒng)正在執(zhí)行中斷程序的過程,會使得控制系統(tǒng)整體失靈。

        2.3.1 恢復(fù)塊技術(shù)

        恢復(fù)塊技術(shù)基于后向運行策略對系統(tǒng)進行恢復(fù),由主塊以及備用塊構(gòu)成,主塊與備用塊的功能是相同的,控制系統(tǒng)工作時,主塊優(yōu)先工作,并且在其運行結(jié)束以后對其性能進行測試,若其驗收結(jié)果未達到設(shè)定標(biāo)準(zhǔn),則啟動備用塊重新進行采集控制運行。

        圖2 恢復(fù)塊方法

        冗余系統(tǒng)的冗余單元設(shè)計成具有自檢測和自糾錯的能力,構(gòu)成1個恢復(fù)塊結(jié)構(gòu),其基本結(jié)構(gòu)如下:

        ensure <接收測試>

        by <基本功能塊>

        else by <備份塊1>

        else by <備份塊n>

        else by <錯誤處理>

        2.3.2 多版本程序設(shè)計

        多版本程序指令技術(shù)是一種基于靜態(tài)的故障屏蔽以及中斷指令的技術(shù),其基于前向反饋恢復(fù)的控制策略,其是采用多個匯編程序同時對同意被控對象進行控制,基于統(tǒng)計學(xué)理論對多個程序運行結(jié)果進行統(tǒng)計分析,選出最符合實際需要的一種算法。其示意圖如圖3所示。

        圖3 多版本程序指令技術(shù)示意圖

        2.4 其他措施

        2.4.1 數(shù)據(jù)重復(fù)讀取

        在對被控對象進行數(shù)據(jù)采集、控制時,經(jīng)常會出現(xiàn)隨機性極強的干擾信號干擾程序外的中斷程序指令所發(fā)出的信號,由于其具有極強的隨機性以及瞬時性而不易捕獲,可對其發(fā)出的信號進行多次采集對比分析以后,將其過濾掉,參考程序代碼如下:

        //============================

        start();% 啟動設(shè)備對象

        try

        time=0;data=0;

        [data,time]=getdata();% 獲取采樣數(shù)據(jù)

        catch

        time=0;data=0;disp(“A timeout occurred”);

        end

        stop();% 停止設(shè)備對象

        delete();% 刪除設(shè)備對象

        2.4.2 軟件看門狗(Watch dog)技術(shù)

        軟件冗余以及軟件陷阱技術(shù)并不是對所有失靈的程序指令均有效,此時通常采用對控制系統(tǒng)的程序指令監(jiān)控技術(shù),其并不能直接解決程序代碼失靈的問題,但是在程序代碼出現(xiàn)失靈時可以及時發(fā)現(xiàn)并將所有中斷程序關(guān)閉。軟件看門狗示意圖如圖4所示。

        圖4 軟件看門狗技術(shù)示意圖

        3 結(jié)束語

        (1)為了避免單片機所開發(fā)的控制系統(tǒng)干擾源對系統(tǒng)產(chǎn)生的隨機干擾,應(yīng)從軟、硬件入手,將兩者完美融合,充分發(fā)揮各自的作用以及各自優(yōu)勢,二者相輔相成地配合協(xié)調(diào)工作,本文所提的混合編程語言理論可可大幅提高單片機控制系統(tǒng)的運行計算效率以及保證控制系統(tǒng)的穩(wěn)定運行。

        (2)對現(xiàn)有的軟件抗干擾方法的遠離以及利弊進行了深入分析,并提出了解決其弊端的辦法,本文所提的混合編程理論較之硬件抗干擾技術(shù),其具有節(jié)約大量計算運行時間的同時,并可極大的提高單片機CPU的計算能力從而提高整個控制系統(tǒng)的實時效率,并且本文所提混合編程理論可廣泛應(yīng)用于嵌入式控制系統(tǒng)中并可取得較好的控制效果。

        [1] 盧莎,何菁,袁杰. 基于VLSI 平臺的C51 處理器仿真與設(shè)計[J]. 現(xiàn)代電子技術(shù),2013,36(12):92-96.

        [2] 張毅剛,劉杰. MCS-51單片機原理及應(yīng)用[M]. 哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2004:35-42.

        [3] 徐惠民,安德寧. 單片微型計算機原理接口及應(yīng)用[M]. 北京:北京郵電大學(xué)出版社,2003:56-59.

        [4] 張麗云. 計算機接口實驗平臺的研制與開發(fā)[D]. 北京:北京交通大學(xué),2007.

        [5] 王立瑩,晉小莉. 微型計算機系統(tǒng)抗干擾技術(shù)[J]. 現(xiàn)代電子技術(shù),2006,29(5):108-110.

        [6] 姜學(xué)軍. 計算機控制技術(shù)[M]. 北京:清華大學(xué)出版社,2005:123-129.

        [7] 潘仲明,簡盈,王躍科. 大作用距離超聲波傳感技術(shù)研究[J]. 傳感技術(shù)學(xué)報,2006,19(1):206-210.

        [8] 潘宗預(yù),潘登. 超聲波測距精度的探討[J]. 湖南大學(xué)學(xué)報(自然科學(xué)版),2002,29(3):18-21.

        [9] 張玉珊,張玉霞. 過程計算機控制系統(tǒng)中的軟件濾波對策[J]. 河南師范大學(xué)學(xué)報(自然科學(xué)版),2001,29,(3):69-72.

        [10] 何忠悅,于淑芳. 單片機抗干擾技術(shù)實踐應(yīng)用探析[J]. 機電信息,2012(4):112-113.

        Software Anti Interference Technology of Single Chip Microcomputer Control System*

        LIUQi*,WANGYin

        (College of information and control,Jilin Institute of Chemical Technology,Jilin Jilin 132022,China)

        In order to improve single chip microcomputer(SCM)control system performances of disturbance rejection in the practical works,it discusses the advantages and disadvantages of the main software anti-interference technology based on realization in SCM. Combination C language and many assemble languages analyse and solve some drawbacks of on-going technology. The software anti-interference technology can improve work efficiency significantly,and it has greatly saved computation cycles. This method which combined C language and many assembly language can be widely used in embedded single chip microcomputer system.

        51 single chip microcomputer;multi program language;anti-interference technology

        項目來源:吉化院合字2015第095號項目

        2016-03-12 修改日期:2016-05-06

        C:7820;7210

        10.3969/j.issn.1005-9490.2017.02.031

        TP311

        A

        1005-9490(2017)02-0415-05

        猜你喜歡
        被控中斷指令
        聽我指令:大催眠術(shù)
        ARINC661顯控指令快速驗證方法
        大慣量系統(tǒng)位置控制策略研究
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        電子測試(2018年18期)2018-11-14 02:30:34
        跟蹤導(dǎo)練(二)(5)
        千里移防,衛(wèi)勤保障不中斷
        解放軍健康(2017年5期)2017-08-01 06:27:44
        坐標(biāo)系旋轉(zhuǎn)指令數(shù)控編程應(yīng)用
        機電信息(2014年27期)2014-02-27 15:53:56
        AT89C51與中斷有關(guān)的寄存器功能表解
        FPGA內(nèi)嵌PowerPC的中斷響應(yīng)分析
        微處理機(2012年4期)2012-06-13 11:32:24
        免费va国产高清大片在线| 久久亚洲精品中文字幕蜜潮| 谷原希美中文字幕在线| 精品av熟女一区二区偷窥海滩| 成年无码av片完整版| 日本精品无码一区二区三区久久久| 色狠狠一区二区三区香蕉| 亚洲精品中文字幕观看| 亚洲人妻精品一区二区三区| 亚洲女同av在线观看| 国产精品av在线| 亚洲精品国产精品国自产观看| 亚洲国产一区二区三区网| 人妻少妇精品视频一区二区三区 | 国产一区二区不卡av| 国产aⅴ激情无码久久久无码| 国产情侣久久久久aⅴ免费| 妺妺窝人体色www在线直播| 日本一区二区午夜视频| 亚洲国产精品18久久久久久| 边做边流奶水的人妻| 亚洲精品123区在线观看| 中文字幕一区二区三区6| 色天使久久综合网天天| 大地资源在线播放观看mv| 亚州AV成人无码久久精品| 国产中文色婷婷久久久精品| 亚洲va欧美va日韩va成人网| 亚洲综合色丁香婷婷六月图片| 精品国产自拍在线视频| 精品一区二区在线观看免费视频| 欧美成人片在线观看| 精品无码AⅤ片| 日韩精品一区二区三区视频| 久久精品99国产精品日本| 免费无码又爽又刺激网站| 国产精品女丝袜白丝袜| 人妻少妇久久中中文字幕| 欧美天天综合色影久久精品| 国产精品女同一区二区久久| 女主播啪啪大秀免费观看|