麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種濾波方法及裝置與流程

文檔序號:11915737閱讀:424來源:國知局
一種濾波方法及裝置與流程

本發明涉及計算機技術領域,特別是涉及一種濾波方法及裝置。



背景技術:

市面上絕大多數的乘用車為提高舒適性,廣泛采用直流電機實現對汽車閉合部件的電動控制,如天窗、門窗等。為了實現直流電機的防夾功能,在汽車閉合部件的閉合過程中,需要獲取汽車閉合部件的位置信息。所謂防夾功能指的是,在汽車閉合部件閉合的過程中,在規定范圍內如果遇到物體或人的身體阻礙時,直流電機必須能夠檢測出該阻礙并反轉運行。

目前,通過采集直流電機電源母線上的紋波電流,獲得汽車閉合部件的位置信息。具體地,通過對紋波電流進行高通濾波、放大、再經過比較器得到方波信號,通過單片機的中斷口對方波信號的下降沿進行計數,并根據計數值得到位置信息。然而,由于高通濾波只能過濾掉紋波電流中的低頻直流分量,并不能過濾掉直流電機在啟動、穩定運行、堵轉及切停時產生的高頻毛刺,所以得到的方波信號仍然會存在噪聲,這將使得依據方波信號得到的下降沿的計數值存在誤差,從而使根據計數值得到的位置信息也不準確。

針對上述問題,現有技術中提出了一種基于軟件延時的濾波方案,其原理為,當檢測到方波信號時,控制汽車閉合部件閉合的主程序接收中斷指令,執行啟動計數器進行累加計時的中斷程序,然后通過判斷計數器計時時間內是否接收到脈沖,若是,則將計時時間內的方波信號認為噪聲信號,不被計數,以此過濾掉噪聲。由上可見,現有技術的方案中,中斷程序在執行時,主程序需要暫停,也就是說,中斷程序的執行會占用主程序的執行時間。對于低成本的單片機系統,其運算速度有限,通常主程序執行時間在2ms以上,而方波信號及其噪聲脈寬在500μs-10μs之間,因此,中斷程序的計時過程會嚴重占用主程序時間,造成主程序執行緩慢,從而導致依靠主程序無法實現有效延時濾波。



技術實現要素:

為解決上述技術問題,本發明實施例提供了一種濾波方法及裝置,以解決由于累加計時的中斷程序占用主程序的執行時間,導致的對方波信號延時過濾效率低的問題,技術方案如下:

一種濾波方法,應用于主控制器,包括:

判斷與所述主控制器并列運行的計時單元是否計時開始;

若是,判斷與所述主控制器并列運行的計時單元是否計時結束;

若是,對方波信號進行濾波。

優選地,

所述判斷與所述主控制器并列運行的計時單元是否計時開始,包括:

判斷是否檢測到所述方波信號的第一跳變沿;

若是,執行第一中斷服務函數,所述第一中斷服務函數用于觸發所述計時單元開始計時;

所述判斷與所述主控制器并列運行的計時單元是否計時結束,包括:

判斷是否檢測到所述方波信號的第二跳變沿,所述第二跳變沿為在所述第一跳變沿之后發生的、與所述第一跳變沿最接近的跳變沿;

若是,執行第二中斷服務函數,所述第二中斷服務函數用于觸發所述計時單元結束計時,并執行所述對方波信號進行濾波的步驟。

優選地,所述判斷與所述主控制器并列運行的計時單元是否計時開始,包括:

判斷所述計時單元是否接收到計時開始的指令;

若是,執行判斷與所述主控制器并列運行的計時單元是否計時結束的步驟。

優選地,所述判斷與所述主控制器并列運行的計時單元是否計時結束,包括:

判斷是否接收到所述計時單元發送的觸發指令,所述觸發指令為所述計時單元測量預設時間后、所發送的用于觸發所述主控制器執行第三中斷服務函數的指令,所述第三中斷服務函數用于對所述方波信號進行濾波,所述計時單元周期執行對所述預設時間的測量,所述預設時間至少大于最長噪聲時間,所述最長噪聲時間為從所述方波信號中監測到的存在時間最長的噪聲的時間。

優選地,所述對方波信號進行濾波,包括:

獲取所述計時單元的計時時間;

判斷所述計時時間是否不小于預設濾波時間常數,所述預設濾波時間常數至少大于最長噪聲時間,所述最長噪聲時間為從所述方波信號中監測到的存在時間最長的噪聲的時間;

若是,將所述方波信號在上一時刻的電平值作為濾波后的信號在當前時刻的電平值,所述上一時刻為所述第二跳變沿發生之前且所述第一跳變沿發生之后的任一時刻,所述當前時刻為所述第二跳變沿發生的時刻;

若否,則將所述濾波后的信號在所述第一跳變沿發生時刻的電平值作為所述濾波后的信號在所述當前時刻的電平值。

優選地,所述對方波信號進行濾波,包括:

將所述方波信號在當前時刻的電平值,設置為一次濾波信號在所述當前時刻的電平值,所述當前時刻為所述計時單元本次計時結束的時刻;

判斷所述一次濾波信號在所述當前時刻的電平值與在上一時刻的電平值是否相等,所述上一時刻為本次計時結束之前、與本次計時結束最接近的計時結束時刻;

若是,則將所述一次濾波信號在所述當前時刻的電平值,作為濾波后的信號在所述當前時刻的電平值;

若否,則將所述濾波后的信號在所述上一時刻的電平值,作為所述濾波后的信號在所述當前時刻的電平值。

優選地,還包括:

判斷是否檢測到方波信號;

若否,執行第四中斷服務函數,所述第四中斷服務函數用于觸發所述計時單元停止計時。

優選地,所述計時單元采用計數器累加計時或采用計時器實現。

一種濾波裝置,應用于主控制器,包括:

第一判斷單元,用于判斷與所述主控制器并列運行的計時單元是否計時開始;

第二判斷單元,用于當所述第一判斷單元的判斷結果為是時,判斷與所述主控制器并列運行的計時單元是否計時結束;

第一執行單元,用于當所述第二判斷單元確定與所述主控制器并列運行的計時單元計時結束時,對方波信號進行濾波。

優選地,所述第二判斷單元,包括:

第二判斷子單元,用于判斷是否接收到所述計時單元發送的觸發指令,所述觸發指令為所述計時單元測量預設時間后、所發送的用于觸發所述主控制器執行第三中斷服務函數的指令,所述第三中斷服務函數用于對所述方波信號進行濾波,所述計時單元周期執行對所述預設時間的測量,所述預設時間至少大于最長噪聲時間,所述最長噪聲時間為從所述方波信號中監測到的存在時間最長的噪聲的時間。

本實施例所提供的技術方案,執行主程序的主控制器與實現計時的計時單元并列運行,即計時單元的計時過程并不占用主程序的執行時間,因此,采用本申請的方案解決了由于計時過程占用主程序的執行時間導致的不能對方波信號有效濾波的問題。

附圖說明

為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。

圖1為本發明實施例所提供的一種濾波方法的一種流程示意圖;

圖2為本發明實施例所提供的一種濾波方法的另一種流程示意圖;

圖3為本發明實施例所提供的一種濾波方法的一種原理圖;

圖4為本發明實施例所提供的一種濾波方法的另一種流程示意圖;

圖5為本發明實施例所提供的一種濾波方法的另一種原理圖;

圖6為本發明實施例所提供的一種濾波裝置的一種結構示意圖。

具體實施方式

下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。

請參閱圖1,圖1為本申請實施例提供的濾波方法的一種實現流程圖,該方法應用于主控制器,所述方法包括:

步驟S101、判斷與所述主控制器并列運行的計時單元是否計時開始,若是,執行步驟S102;

本實施例中的計時單元,既可以通過計數器累加計時這一軟件方式實現計時,也可以通過計時器這一硬件實現實時,當然,現有技術中任何其它的能夠實現計時的方案也適用于本發明的方案。

本實施例中,主控制器用于實現控制汽車閉合部件閉合的主程序,而計時單元的計時過程與主程序并列執行。

本實施例中,計時單元計時開始,可以與主控制器有關,如通過主控制器向計時單元發送計時開始的指令實現,也可以與主控制器無關,如通過對主控制器和計時單元同時上電,實現主控制器與計時單元的并列運行。

步驟S102、判斷與所述主控制器并列運行的計時單元是否計時結束,若是,執行步驟S103;

類似于計時單元計時開始的過程,計時單元計時結束,可以與主控制器有關,如通過主控制器執行中斷函數的方式,觸發計時單元計時結束,也可以與主控制器無關,如預先給計時單元設定計時時間,當計時單元測量該計時時間后,向主控制器發送觸發指令,以通知主控制器計時單元計時結束。

步驟S103、對方波信號進行濾波。

本實施例所提供的技術方案,執行主程序的主控制器與實現計時的計時單元并列運行,即計時單元的計時過程并不占用主程序的執行時間,因此,采用本申請的方案解決了由于計時過程占用主程序的執行時間導致的不能對方波信號有效濾波的問題。

請參閱圖2,圖2為本申請實施例提供的濾波方法的另一種實現流程圖,該方法應用于主控制器,所述方法包括:

步驟S201、判斷是否檢測到方波信號的第一跳變沿,若是,執行步驟S202;

步驟S202、執行第一中斷服務函數;

所述第一中斷服務函數用于觸發與主控制器并列運行的計時單元開始計時。

本實施例中的計時單元,既可以通過計數器累加計時這一軟件方式實現計時,也可以通過計時器這一硬件實現實時,當然,現有技術中任何其它的能夠實現計時的方案也適用于本發明的方案。

步驟S203、判斷是否檢測到所述方波信號的第二跳變沿,若是,執行步驟S204;

所述第二跳變沿為在所述第一跳變沿之后發生的、與所述第一跳變沿最接近的跳變沿。

方波信號的跳變沿包括上升沿和下降沿,因此,第一跳變沿、第二跳變沿既可以是上升沿,也可以是下降沿,但,第一跳變沿、第二跳變沿不能同時為上升沿或下降沿,即當第一跳變沿為上升沿時,第二跳變沿為下降沿,當第一跳變沿為下降沿時,第二跳變沿為上升沿。

步驟S204、發送用于觸發所述計時單元計時結束的指令;

步驟S205、獲取所述計時單元的計時時間;

當確定計時單元計時結束后,獲取計時單元的計時時間,并根據該計時時間對方波信號進行過濾。

步驟S206、判斷所述計時時間是否不小于預設濾波時間常數,若是,執行步驟S207,否則,執行步驟S208;

所述預設濾波時間常數至少大于最長噪聲時間,所述最長噪聲時間為從所述方波信號中監測到的存在時間最長的噪聲的時間,優選地,預設濾波時間常數取有效方波信號的半個周期。

當預設濾波時間常數取有效方波信號的周期的一半時,判斷計時時間是否等于預設濾波時間常數;當預設濾波時間常數小于有效方波信號的周期的一半,且大于最長噪聲時間時,判斷計時時間是否大于預設濾波時間常數。

當計時時間滿足預設濾波時間常數的判斷規則時,說明計時時間內的方波信號為有效信號,否則,說明計時時間內的方波信號為噪聲信號。

步驟S207、將所述方波信號在上一時刻的電平值作為濾波后的信號在當前時刻的電平值;

所述上一時刻為所述第二跳變沿發生之前且所述第一跳變沿發生之后的任一時刻,所述當前時刻為所述第二跳變沿發生的時刻。

當計時時間內的方波信號為有效信號時,將方波信號在第二跳變沿發生之前的電平值作為濾波后的信號在當前時刻的電平值,具體地,當第二跳變沿為從高電平跳變為低電平時,濾波后的信號在當前時刻的電平值為高電平,當第二跳變沿為從低電平跳變為高電平時,濾波后的信號在當前時刻的電平值為低電平。

步驟S208、將所述濾波后的信號在所述第一跳變沿發生時刻的電平值作為所述濾波后的信號在所述當前時刻的電平值。

當計時時間內的方波信號為噪聲信號時,濾波后的信號在當前時刻的電平值保持在跳變沿發生時刻的電平值,以此將噪聲信號濾除。

本實施例中,步驟S204-S208均屬于對第二中斷服務函數執行的過程。

需要說明的是,第二跳變沿用于觸發對從第一跳變沿到該第二跳變沿之間方波信號的計時的結束,但同時,該第二跳變沿也作為觸發該方波信號從第二跳變沿到沿時間軸上與該第二跳變沿最近的跳變沿之間的計時的開始。例如,第一跳變沿在t1時刻發生,第二跳變沿在t2時刻發生,沿時間軸與第二跳變沿最近的跳變沿在t3時刻發生,按照本實例的方案,對于t1時刻到t2時刻的方波信號,t1時刻計時開始,t2時刻計時結束,但同時,對于t2時刻到t3時刻的方波信號,t2時刻的第二跳變沿也用于觸發計時開始。

以下以圖3為例,說明本實施例中對計時時間內的方波信號進行濾波的過程:

圖3中預設濾波時間常數為有效方波信號周期的一半。

t1時刻,檢測到方波信號的上升沿,執行第一中斷服務函數,第一中斷服務函數用于觸發計時單元開始計時,t2時刻,檢測到方波信號的下降沿,執行第二中斷服務函數,第二中斷服務函數用于觸發計時單元結束計時,之后,獲取從t1到t2計時單元的計時時間,判斷計時時間是否等于預設濾波時間常數,經圖3可以看出,計時時間等于預設濾波時間常數,因此,將濾波后的信號在t2時刻的電平值取為高電平。

對于t4-t5之間的方波信號,可以發現,t4-t5的計時時間小于預設濾波時間常數,因此,將濾波后的信號在t5時刻的電平值維持在t4時刻的電平值,即仍取為高電平。

需要說明的是,濾波后的信號在兩個跳變沿發生時刻之間的電平,均保持時間軸上較小的發生時刻時的電平。以t1-t2舉例說明,t1時,濾波后的信號為低電平,所以t1-t2這個時間區間內,濾波后的信號保持低電平,直到t2時刻,才由低電平變為高電平。

本實施例所提供的技術方案,當檢測到方波信號的第一跳變沿時,跳轉執行第一中斷服務函數,以觸發計時開始,觸發計時開始的動作結束后,跳轉回主程序的執行,即,判斷是否檢測到方波信號的第二跳變沿,也就是說,第一中斷服務函數僅用于對計時觸發,觸發結束后跳回主程序運行,從而使主程序與計時過程并列執行。由于計時過程在濾波中占用絕大部分時間,而濾波過程所占用時間幾乎可以忽略不計,因此,本申請的方案在執行時不占用主程序時間,從而實現了對方波信號的有效濾波。

請參閱圖4,圖4為本申請實施例提供的濾波方法的另一種實現流程圖,該方法應用于主控制器,所述方法包括:

步驟S401、判斷與所述主控制器并列運行的計時單元是否計時開始,若是,執行步驟S402;

本實施例中,計時單元既可以通過計數器累加計時這一軟件方式實現計時,也可以通過計時器這一硬件實現實時,當然,現有技術中任何其它的能夠實現計時的方案也適用于本實施例的方案。

實際應用中,該步驟可以通過判斷計時單元是否接收到計時開始的指令實現。

步驟S402、判斷是否接收到所述計時單元發送的觸發指令,若是,執行步驟S403;

所述觸發指令為所述計時單元測量預設時間后、所發送的用于觸發所述主控制器執行第三中斷服務函數的指令,所述第三中斷服務函數用于對所述方波信號進行濾波,所述計時單元周期執行對所述預設時間的測量,所述預設時間至少大于最長噪聲時間,所述最長噪聲時間為從所述方波信號中監測到的存在時間最長的噪聲的時間。

本實施例中,預先設置計時單元的計時時間(即預設時間),當預設時間到后,計時單元向主控制器發送觸發指令,即本實施例中,計時單元計時結束的時刻不受主程序控制,而是由計時單元自身根據預先設置的預設時間所確定。

為了實現對方波信號的濾波,計時單元所測量的預設時間至少大于最長噪聲時間,所述最長噪聲時間為從所述方波信號中監測到的存在時間最長的噪聲的時間,優選地,預設時間可以取有效方波信號周期的一半。

步驟S403、將所述方波信號在當前時刻的電平值,設置為一次濾波信號在所述當前時刻的電平值,所述當前時刻為所述計時單元本次計時結束的時刻;

本實施例中,當接收到觸發指令后,對方波信號進行了兩次濾波,第一次濾波后的信號在當前時刻的電平值,為方波信號在當前時刻的電平值,其中,當前時刻為所述計時單元本次計時結束的時刻。

步驟S404、判斷所述一次濾波信號在所述當前時刻的電平值與在上一時刻的電平值是否相等,若是,執行步驟S405,否則,執行步驟S406;

所述上一時刻為本次計時結束之前、與本次計時結束最接近的計時結束時刻。

步驟S405、將所述一次濾波信號在所述當前時刻的電平值,作為濾波后的信號在所述當前時刻的電平值;

步驟S406、將所述濾波后的信號在所述上一時刻的電平值,作為所述濾波后的信號在所述當前時刻的電平值。

優選地,本實施例在對方波信號過濾時,一直檢測輸入信號是否為方波信號,當檢測不到方波信號時,執行第四中斷服務函數,所述第四中斷服務函數用于觸發所述計時單元停止計時。

以下以圖5為例,說明本實施例中對方波信號進行濾波的過程:

其中,圖5中計時單元的時刻表示每次計時結束的時刻,且預設時間為有效方波信號周期的一半。

t2時刻,計時單元計時結束,向主程序發送觸發指令,執行對方波信號的濾波,具體地,由于t2時刻時,方波信號為高電平,所以此時,一次濾波信號也為高電平,由于t1時刻一次濾波信號為低電平,即一次濾波信號在t1時刻與在t2時刻的電平不相等,所以,濾波后的信號在t2時刻的電平值保持其在t1時刻的電平值,即仍為低電平。

t3時刻,方波信號為高電平,所以,一次濾波后的信號也為高電平,由于t2時刻一次濾波信號為高電平,即一次濾波信號在t2時刻與在t3時刻的電平相等,所以,濾波后的信號在t3時刻的電平值與一次濾波信號在t3時刻的電平值相同,即為高電平。

需要說明的是,無論是一次濾波信號、記錄一次濾波在上一時刻的信號,還是濾波后的信號,在兩個計時結束時刻之間的電平,均保持時間軸上較小的結束時刻時的電平。以t2-t3舉例說明,t2時,一次濾波信號為高電平,所以t2-t3這個時間區間內,一次濾波信號保持高電平,同理,t2時,濾波后的信號為低電平,所以,t2-t3這個時間區間內,濾波后的信號保持低電平。

本發明實施例所提供的技術方案,執行主程序的主控制器與實現計時的計時單元并列運行,即計時單元的計時過程并不占用主程序的執行時間,因此,采用本申請的方案解決了由于計時過程占用主程序的執行時間導致的不能對方波信號有效濾波的問題。

請參閱圖6,圖6為本申請實施例提供的濾波裝置的一種結構示意圖,該裝置結構示意圖中的各單元的工作過程參照圖1對應的實施例中方法的執行過程,該裝置應用于主控制器,該裝置包括:

第一判斷單元610,用于判斷與所述主控制器并列運行的計時單元是否計時開始;

第二判斷單元620,用于當所述第一判斷單元610的判斷結果為是時,判斷與所述主控制器并列運行的計時單元是否計時結束;

第一執行單元630,用于當所述第二判斷單元620確定與所述主控制器并列運行的計時單元計時結束時,對方波信號進行濾波。

優選地,所述第二判斷單元,包括:

第二判斷子單元,用于判斷是否接收到所述計時單元發送的觸發指令,所述觸發指令為所述計時單元測量預設時間后、所發送的用于觸發所述主控制器執行所述第三中斷服務函數的指令,所述第三中斷服務函數用于對所述方波信號進行濾波,所述計時單元周期執行對所述預設時間的測量,所述預設時間至少大于最長噪聲時間,所述最長噪聲時間為從所述方波信號中監測到的存在時間最長的噪聲的時間。

本實施例所提供的技術方案,執行主程序的主控制器與實現計時的計時單元并列運行,即計時單元的計時過程并不占用主程序的執行時間,因此,采用本申請的方案解決了由于計時過程占用主程序的執行時間導致的不能對方波信號有效濾波的問題。

最后,還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。

對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本申請。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本申請的精神或范圍的情況下,在其它實施例中實現。因此,本申請將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 且末县| 香格里拉县| 芦山县| 徐汇区| 景东| 海口市| 山阳县| 郑州市| 辽阳县| 凉城县| 会东县| 深州市| 成都市| 津南区| 大新县| 吴忠市| 南溪县| 五大连池市| 义乌市| 海南省| 灵璧县| 兴和县| 定安县| 桑日县| 溧水县| 汕尾市| 壤塘县| 喀什市| 吉林市| 江门市| 博湖县| 西安市| 长白| 葫芦岛市| 嘉禾县| 延长县| 沙湾县| 静海县| 尖扎县| 澳门| 潼南县|