化的方法,包括:
[0150]步驟300、噪聲檢測(cè)器對(duì)所述原始數(shù)據(jù)進(jìn)行方差計(jì)算,并將計(jì)算后的結(jié)果與干擾噪聲閾值進(jìn)行比較。
[0151]步驟301、噪聲檢測(cè)器判斷計(jì)算后的結(jié)果是否大于干擾噪聲閾值,若是,則噪聲檢測(cè)器將噪聲檢測(cè)指示位標(biāo)記為1,并返回步驟300 ;否則,噪聲檢測(cè)器將噪聲檢測(cè)指示位標(biāo)記為0,并執(zhí)行步驟302。
[0152]步驟302、基準(zhǔn)值初始化及追蹤更新電路將中值濾波的輸出作為按鍵電容的初始基準(zhǔn)值,并執(zhí)行步驟300。
[0153]在實(shí)施中,根據(jù)當(dāng)前數(shù)據(jù)處理器的輸出點(diǎn)干擾噪聲標(biāo)記判斷此輸出點(diǎn)是否可靠,如果標(biāo)記為1,那么這個(gè)點(diǎn)將被丟棄,回到步驟300,計(jì)算下一個(gè)中值濾波輸出點(diǎn)對(duì)應(yīng)的方差;如果標(biāo)記為0,表示這個(gè)點(diǎn)可靠,可以作為按鍵電容基準(zhǔn)值,然后獲取按鍵電容基準(zhǔn)值,按鍵初始化完成。
[0154]如圖4所示,本發(fā)明實(shí)施例提供的電容觸摸抗干擾工作流程的方法,包括:
[0155]步驟400、按鍵初始化完成之后,基準(zhǔn)值初始化及追蹤更新電路獲取本次充放電時(shí)間的電容值,即獲取數(shù)據(jù)處理器的輸出點(diǎn)。
[0156]步驟401、基準(zhǔn)值初始化及追蹤更新電路判斷由所述本次充放電時(shí)間的電容值與當(dāng)前的電容基準(zhǔn)值的差值是否大于第一觸摸判斷門限值并且所述本次充放電時(shí)間的電容值大于當(dāng)前的電容基準(zhǔn)值;若是,則執(zhí)行步驟402 ;否則,執(zhí)行步驟403。
[0157]上面的判斷步驟是為了防止誤判操作。因?yàn)榘l(fā)生觸摸操作時(shí),電容一定是增大的,并且這個(gè)增大的過(guò)程,噪聲檢測(cè)器一定輸出為1 (即認(rèn)為有噪聲),但是這個(gè)過(guò)程是合理的;而在其他時(shí)候,噪聲檢測(cè)器輸出為1時(shí)都是不合理的過(guò)程,會(huì)產(chǎn)生誤判操作的過(guò)程;所以為了區(qū)分這個(gè)合理的分支,需要增加401這個(gè)步驟。
[0158]步驟402、基準(zhǔn)值初始化及追蹤更新電路通知按鍵狀態(tài)檢測(cè)電路根據(jù)本次充放電時(shí)間的電容值進(jìn)行處理,具體參見(jiàn)圖5。
[0159]步驟403、基準(zhǔn)值初始化及追蹤更新電路判斷所述本次充放電時(shí)間的電容值對(duì)應(yīng)的噪聲檢測(cè)指示位是否為1,若是,執(zhí)行步驟404 ;否則,執(zhí)行步驟405。
[0160]步驟404、基準(zhǔn)值初始化及追蹤更新電路將所述本次充放電時(shí)間的電容值用當(dāng)前電容基準(zhǔn)值替換。
[0161]步驟405、基準(zhǔn)值初始化及追蹤更新電路根據(jù)所述本次充放電時(shí)間的電容值進(jìn)行電容基準(zhǔn)值更新處理,具體參見(jiàn)圖6。
[0162]從上述實(shí)施例可以看出:本發(fā)明在強(qiáng)噪聲干擾過(guò)程中,不進(jìn)行按鍵電容基準(zhǔn)值更新操作,保證按鍵電容基準(zhǔn)值更新只有在無(wú)噪聲干擾環(huán)境下完成,保證電容基準(zhǔn)值的準(zhǔn)確可靠。
[0163]圖4中,裝置初始化完成后,進(jìn)入工作狀態(tài);如果此時(shí)電容觸摸點(diǎn)發(fā)生手指觸摸,那么容值檢測(cè)電路的輸出會(huì)變大,使得電容計(jì)數(shù)器和數(shù)據(jù)處理器的輸出數(shù)值同時(shí)變大;因此,步驟401中由所述本次充放電時(shí)間的電容值與當(dāng)前的電容基準(zhǔn)值的差值是否大于第一觸摸判斷門限值并且所述本次充放電時(shí)間的電容值大于當(dāng)前的電容基準(zhǔn)值。如果這個(gè)條件滿足,意味著可能發(fā)生手指觸碰,因此需要將該輸出點(diǎn)送往按鍵狀態(tài)檢測(cè)電路進(jìn)行判斷(步驟402);如果條件不滿足,那么檢測(cè)該輸出點(diǎn)的干擾噪聲標(biāo)記(步驟403);如果噪聲標(biāo)記為1,說(shuō)明這個(gè)點(diǎn)不可靠,需要用當(dāng)前基準(zhǔn)值去替換(步驟404);如果噪聲標(biāo)記為0,說(shuō)明這個(gè)點(diǎn)可靠,基準(zhǔn)值追蹤電路根據(jù)該點(diǎn)進(jìn)行基準(zhǔn)值的更新動(dòng)作(步驟405)。
[0164]如圖5所示,本發(fā)明實(shí)施例四按鍵狀態(tài)檢測(cè)方法,包括:
[0165]步驟500、按鍵狀態(tài)檢測(cè)電路獲取由第一濾波數(shù)據(jù)確定的當(dāng)前充放電時(shí)間的電容值,即獲取數(shù)據(jù)處理器的輸出點(diǎn);
[0166]步驟501、按鍵狀態(tài)檢測(cè)電路判斷連續(xù)Μ個(gè)所述當(dāng)前充放電時(shí)間的電容值(即Μ個(gè)輸出點(diǎn))是否大于第一觸摸判斷門限值,若是,執(zhí)行步驟502 ;否則,返回步驟500。
[0167]步驟502、按鍵狀態(tài)檢測(cè)電路判斷按鍵狀態(tài)為按鍵按下。
[0168]步驟503、按鍵狀態(tài)為按鍵按下之后,按鍵狀態(tài)檢測(cè)電路獲取當(dāng)前充放電時(shí)間的電容值。
[0169]步驟504、按鍵狀態(tài)檢測(cè)電路判斷所述當(dāng)前電容充放電時(shí)間的電容值對(duì)應(yīng)的噪聲指示位是否為1,若是,返回步驟502 ;否則,執(zhí)行步驟505 ;
[0170]步驟505、按鍵狀態(tài)檢測(cè)電路判斷連續(xù)X個(gè)所述當(dāng)前充放電時(shí)間的電容值是否小于第二觸摸判斷門限值,若是,執(zhí)行步驟506 ;否則,返回步驟502 ;
[0171]步驟506、按鍵狀態(tài)檢測(cè)電路判斷按鍵松開(kāi)。
[0172]其中,步驟501表示按鍵狀態(tài)檢測(cè)電路在收到按鍵狀態(tài)檢測(cè)電路的通知后還不能夠識(shí)別出這個(gè)變大的數(shù)據(jù)點(diǎn)是由于強(qiáng)噪聲導(dǎo)致的或者是手指觸摸電容檢測(cè)點(diǎn)1導(dǎo)致的(或者兩者同時(shí)發(fā)生);因此,在步驟501中需要執(zhí)行去抖動(dòng)作,如果連續(xù)多個(gè)當(dāng)前充放電時(shí)間的電容值都大于第一觸摸判斷門限值,那么就可以認(rèn)為手指觸摸了電容檢測(cè)點(diǎn)1 (步驟502);否則計(jì)數(shù)器清零,重新執(zhí)行步驟500進(jìn)行判斷;
[0173]如果已經(jīng)判斷手指在觸摸按鍵(步驟502),那么需要繼續(xù)判斷當(dāng)前數(shù)據(jù)點(diǎn)的干擾噪聲標(biāo)記是否為1(步驟504),如果標(biāo)記為1,表示因?yàn)槭种赣|摸引入的強(qiáng)噪聲還在繼續(xù),繼續(xù)判斷按鍵按下(步驟502);如果手指觸摸沒(méi)有引入強(qiáng)噪聲,那么就判斷是否連續(xù)多個(gè)所述當(dāng)前充放電時(shí)間的電容值是否小于第二觸摸判斷門限值(步驟505),如果條件滿足,就表示手指已經(jīng)離開(kāi)電容檢測(cè)點(diǎn)1,可以判斷按鍵松開(kāi)(步驟506);否則返回步驟502 ;
[0174]如圖6所示,本發(fā)明實(shí)施例五電容基準(zhǔn)值更新方法,包括:
[0175]步驟600、基準(zhǔn)值初始化及追蹤更新電路獲取由所述當(dāng)前充放電時(shí)間確定的電容值;
[0176]步驟601、基準(zhǔn)值初始化及追蹤更新電路判斷所述當(dāng)前充放電時(shí)間確定的電容值與當(dāng)前電容基準(zhǔn)值的差的絕對(duì)值是否小于自然噪聲閾值,若是,則返回步驟602;否則,返回步驟605 ;
[0177]步驟602、基準(zhǔn)值初始化及追蹤更新電路該差值送往累加器進(jìn)行計(jì)算;
[0178]其中,累加器用來(lái)累加所述當(dāng)前充放電時(shí)間確定的電容值與當(dāng)前電容基準(zhǔn)值的差。當(dāng)環(huán)境中存在自然噪聲時(shí),由所述當(dāng)前充放電時(shí)間確定的電容值與當(dāng)前電容基準(zhǔn)值的差有正有負(fù),累加器用來(lái)記錄由所述當(dāng)前充放電時(shí)間確定的電容值與當(dāng)前電容基準(zhǔn)值的差值。
[0179]步驟603、基準(zhǔn)值初始化及追蹤更新電路判斷所述累加器的輸出是否大于第一基準(zhǔn)調(diào)整閾值,若是,則執(zhí)行步驟604 ;否則,返回步驟600 ;
[0180]步驟604、基準(zhǔn)值初始化及追蹤更新電路用當(dāng)前充放電周期確定的電容值更新電容基準(zhǔn)值,并清零所述累加器;
[0181]步驟605、基準(zhǔn)值初始化及追蹤更新電路判斷所述當(dāng)前充放電時(shí)間確定的電容值是否小于基準(zhǔn)值并且差值大于第二基準(zhǔn)值調(diào)整閾值,若是,則執(zhí)行步驟606 ;否則,返回步驟 600 ;
[0182]步驟606、基準(zhǔn)值初始化及追蹤更新電路將計(jì)數(shù)器加一固定步長(zhǎng)值;
[0183]步驟607、基準(zhǔn)值初始化及追蹤更新電路判斷所述計(jì)數(shù)器是否大于計(jì)數(shù)閾值,若是,則執(zhí)行步驟608 ;否則,返回步驟600 ;
[0184]步驟608、基準(zhǔn)值初始化及追蹤更新電路用當(dāng)前充放電周期確定的電容值更新電容基準(zhǔn)值,并清零所述計(jì)數(shù)器;
[0185]其中,步驟601為基準(zhǔn)值初始化及追蹤更新電路獲取的圖4中的本次充放電時(shí)間的電容值,在步驟602中計(jì)算當(dāng)前的數(shù)據(jù)點(diǎn)跟基準(zhǔn)值的差,并對(duì)差值取絕對(duì)值,如果這個(gè)絕對(duì)值小于自然噪聲閾值,那么將計(jì)算得到的差值送往累加器(步驟602);如果累加器的輸出大于第一基準(zhǔn)調(diào)整閾值(步驟603),那么就將當(dāng)前的輸出值作為新的基準(zhǔn)值,并且清零累加器(步驟604);如果步驟601的條件不滿足,那么繼續(xù)判斷當(dāng)前數(shù)據(jù)點(diǎn)是否小于基準(zhǔn)值并且差值大于基準(zhǔn)值調(diào)整閾值(步驟605),如果步驟601的條件滿足,那么計(jì)數(shù)器加一步長(zhǎng)值(步驟606),判斷計(jì)數(shù)器是否大于計(jì)數(shù)閾值(步驟608),如果大于表示附在電容檢測(cè)點(diǎn)1的水滴等增大電容的干擾物被去除,需要將當(dāng)前的輸出值作為新的基準(zhǔn)值,并且清零計(jì)數(shù)器(步驟608)。
[0186]從上述實(shí)施例可以看出:本發(fā)明實(shí)施例通過(guò)判斷采集的所述原始數(shù)據(jù)是否包含噪聲,采集的所述原始數(shù)據(jù)不包含噪聲,則根據(jù)第一濾波數(shù)據(jù),確定當(dāng)前的電容基準(zhǔn)值。由于在采集的所述原始數(shù)據(jù)不包含噪聲時(shí),才根據(jù)所述原始數(shù)據(jù)確定當(dāng)前的電容基準(zhǔn)值,從而減少了強(qiáng)噪聲對(duì)電容基準(zhǔn)值的影響,能有效的克服強(qiáng)噪聲干擾的影響,提高了按鍵狀態(tài)判斷的準(zhǔn)確性,保證電容觸摸傳感器在強(qiáng)干擾環(huán)境下可靠探測(cè)觸摸動(dòng)作的能力。
[0187]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此