圖片展示

服務熱線:

13611412686

圖片展示

按鍵輸入檢測軟件抗幹擾方法

作者:廣州智研電子科技有限公司 浏覽: 發(fā)表時(shí)間:2022-10-08 費還14:19:39

按鍵輸入檢測軟件抗幹擾方法


按鍵是我們最常見到的人機交互部件之一,在我們工作生活中随處可見,比如我們家工員裡(lǐ)常用的各種(zhǒng)家討女用電器,工作中用的各類儀器儀表,以及各類IT産品,許多都(dōu)是通過(guò)按鍵來進(jìn)行操作的。因此,按鍵輸內議入的處理,也是我們在嵌入式系統設計的時(shí)候,經(廠制jīng)常要遇到的。雖然按鍵輸入的處理看起(qǐ)來非常簡單,理想化的按鍵就從資(jiù)相當于一個開(kāi)關,我我銀們隻需檢測開(kāi)關是否導通,就(jiù)能(néng)判斷通視按鍵是否按下。但是,實際應用中如果這(zhè)麼(me)處理,就如對(jiù)會(huì)出現各種(zhǒng)問題,比如明明隻討慢按了一下,處理器卻檢測到按了好(hǎo)幾下;或者有時(shí)現舊明明沒(méi)有按下,處理器卻檢測到按下分好了。這(zhè)是剛接觸嵌入式系謝笑統的工程師們經(jīng)常遇到的問題。

這(zhè)是什麼(me)原因呢?我們來做個實驗。如圖1所示,我們將(jiāng)一個按鍵的B端接地,A端接電阻R上拉到電源,然後(hòu)檢測A端的電平狀态。



         &n民爸bsp;        空請       &nb河你sp;         &nb章得sp;     &nb為男sp;     &nb要鐵sp;          河多;  1


那麼(me)當按鍵狀态爲按下時(shí討玩),我們可以在A端檢測到低電平;當按鍵狀态爲放開(kāi)時(shí),我們可以在A端檢測到高電平。在理想情況下,我們隻需要檢測A端電平的上升沿和下降沿,就(jiù)可以檢測到了議按鍵的按下和放開(kāi)瞬間,并進(jì月一n)行處理。但是實際情況又是如何呢?我們將(jiāng)A端接到邏輯分析儀,并用8Mbps的采樣(yàng)率進(jìn)行采村靜樣(yàng),我們會(huì)發(fā)現實際情況并不是那麼(m房子e)理想,如圖2所示,我們會(huì)看到,有的時(shí)候在按鍵放開(就作kāi)的瞬間,A端電平并不是立即變爲高電平,而是高低電平東路來回變化了幾次。



    &nbs習可p;         &月算nbsp;   &nbs窗家p;       愛照    &nbs外廠p;      &那雪nbsp;



         &朋訊nbsp;   &nbs動訊p;     &購哥nbsp;       &答去nbsp;       &兒呢nbsp;       &都去nbsp;   &nb空嗎sp;         &n要街bsp;   &nb東頻sp;  2


原來,在實際中,按鍵的按下和放開(kāi),并不是理想狀這近态的開(kāi)和關。在按下和黑化放開(kāi)的瞬間,有時(sh木短í)候會(huì)産生抖動,導緻狀态在瞬間來回變化幾次。而在按鍵狀态保持的過些水(guò)程中,也有可能(néng)銀女會(huì)受到脈沖幹擾,導緻按鍵狀态瞬間的變化。

因此,在我們爲客戶定制産品方案中,智研電子開(kāi)發睡哥(fā)團隊的工程師們都(dōu)需要加入抗幹擾妹在處理,用于消除按鍵抖動和脈沖幹擾。常快爸用的按鍵抗幹擾方法可分爲硬件處理和軟件處理兩(liǎng)種(zhǒ討木ng)。硬件處理方法需要增加額外的暗紅抗幹擾電路,我們這(zhè)裡(lǐ)專門來讨論一下軟件處理的方法。花看

常用的按鍵軟件處理方法是:通過懂公(guò)設置IO的邊沿中斷來檢測按鍵的狀态變化,在進(jìn)入中斷後(hòu),再那書延時(shí)一段時(shí)間後(hòu),再次對(du影區ì)按鍵狀态進(jìn)行檢測,根據檢測街資狀态來判斷按鍵是否有效,以此來達到過(g錢術uò)濾抖動和脈沖幹擾的目的。但是理匠這(zhè)種(zhǒng)方法也有弊端,就(jiù)是如果這農吃(zhè)個延時(shí)的時(資唱shí)間過(guò)短,則不能(néng)很好(麗森hǎo)的濾除幹擾,如果這(zhè)個時(shí)間過(guò)長(ch小請áng),則會(huì)造成(chéng)中斷處理的時(sh秒又í)間過(guò)長(cháng),造成(chéng)軟件進風做(jìn)程的阻塞,甚至造成(chéng資但)其它中斷信号的丢失。

在這(zhè)裡(lǐ)智研電子軟件開(kāi)發(f坐新ā)工程師爲大家介紹一種(zhǒng)新的按鍵軟件抗幹擾的方法,既不音外需要增加額外的硬件成(chéng)本,又避免間街了常用軟件按鍵處理的缺點,能(néng)夠以更小的處理器開(笑著kāi)銷,更靈活有效地濾除按鍵幹擾。該方法實現步驟描述如下:

步驟1:硬件電路如圖1所示,我們每隔一個固定的時(shí)事船間間隔T對(duì)按鍵A端進(jìn)行一次電平檢測,并用變量key的最低3bit來記錄最近3次的檢測結果。bit0爲當前次的檢測結果,0表示低電平,1表示高電平。每次檢測先將(jiāng)變量key左移一位,并將(jiāng)除最低3bit之外的全部bit全部置零,然後(hòu)用bit0記錄下當前檢測結果。

步驟2:對(duì)檢測結果進(jìn)行處理。根據檢測結果key的值可分爲一下8種(zhǒng)情況:

1key = 0b000時(shí),爲檢測到按鍵按下保持狀态,購遠可進(jìn)行累加計時(shí),并謝白根據計時(shí)時(shí)間進(jìn)行火紙按鍵長(cháng)按判斷和處理。

2key = 0b001時(shí),爲檢測到按鍵狀态由按下變放開(秒快kāi)瞬間,此時(shí)不作處理,以防止幹擾。

3key = 0b010時(shí),爲檢測到按鍵狀态由按下變放開(k現件āi)後(hòu)短時(shí)間内(小嗎睡于T)又變成(chéng)按下,認爲該次按鍵狀态變化無效,作幹擾上從處理,賦值key = 0b000

4key = 0b011時(shí),爲檢測到按鍵狀态由按下變放謝短開(kāi)後(hòu),經(jīng)過(guò)時(shí這短)間T後(hòu),再次檢測到按鍵放開(kāi)狀态,說(shuō)明弟店該次按鍵狀态變化有效,并進(jìn)行按鍵放開(kāi)處微資理。

5key = 0b100時(shí),爲檢測到按鍵狀态由放開(kā國農i)變按下後(hòu),經(jīng)過(g自物uò)時(shí)間T後(hòu),再次檢測到按鍵按下狀态身草,說(shuō)明該次按鍵狀态變化有效,并進(jìn)行按鍵按下處理腦那。

6key = 0b101時(shí),爲檢測到按鍵狀态由放開(kāi去要)變按下後(hòu)短時(shí)間内(笑南小于T)又變成(chéng)放開(kāi),認爲該次按鍵狀态變見年化無效,作幹擾處理,賦值key = 0b111

7key = 0b110時(shí),爲檢測到按鍵狀态由放開(kāi)變理制按下瞬間,此時(shí)不作處理,以防止幹擾。

8key = 0b111時(shí),爲檢測到按鍵放開(kāi)保持狀态,不作處理。

備注:檢測時(shí)間間隔T值的選取規則爲大于按鍵抖動時(shí)間和脈沖幹擾時(shí)間,小于要求農多的按鍵響應時(shí)間的二分之一。

由于該方法隻需每隔時(shí)間T進(jìn)行一次檢測和判斷,因此比常用的中斷延時(shí)檢測可以節省中斷費還處理時(shí)間的開(kāi)銷,并且因爲檢測間隔時(shí)間們綠T可以靈活設置,并在檢測結果處理裡外中(lǐ)將(jiāng)可能(néng)能麗遇到的情況都(dōu)作了處理,因此能(né我生ng)更好(hǎo)地濾除幹。在我們長(cháng)期的工程實踐應用中民媽,取得了很好(hǎo)的效果。


 <<廣州智研電子科技有限公司>>電子電路産品開(kāi)發(fā)/結構方案設計/快速生産打樣(yàng)

    聲明:轉載或者引用本文内容請注明來源及原作者鐘老;版權歸www.gzzydesign.com網站所有;


圖片展示

聯系我們


電話:13611412686

郵箱:Wushishan18@163.c女志om

地址:廣州市番禺區鍾村街鍾四開(kāi)發(fā)區二路1号易事(s著能hì)達商務大廈六樓602号




圖片展示

廣州智研電子科技有限公司  版權所有

粵ICP備2022083248号 票船;

廣州智研電子科技有限公司  版權公得所有

添加微信好(hǎo)友,詳細了解産品
使用企業微信
“掃一掃”加入群聊
複制成(chéng)功
添加微信好(hǎo)友,詳細了解産品
我知道(dào)了