国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種I2C總線消除干擾信號的方法和裝置與流程

      文檔序號:12013371閱讀:1583來源:國知局
      一種I2C總線消除干擾信號的方法和裝置與流程
      本發(fā)明屬于I2C總線領(lǐng)域,尤其涉及一種I2C總線消除干擾信號的方法和裝置。

      背景技術(shù):
      I2C(Inter-ICBUS)是由Philip(飛利浦)公司開發(fā)的串聯(lián)總線,用于集成電路間的連接和通信,主要應用于連接微控制器和外圍設備。I2C總線有兩根信號線,一根SCL時鐘線和一根雙向SDA數(shù)據(jù)線。I2C總線具有接口線少,控制方式簡化,器件封裝形式小,通信速率較高等優(yōu)點,標準模式下為100KHz,SCL/SDA的高電平最小4us,低電平最小4.7us。一般情況下或者環(huán)境較好的情況下,I2C總線通信不會出什么問題,能夠保障總線的正常操作。但當設備所處環(huán)境較差或者其他異常情況產(chǎn)生時??赡軙2C通信造成干擾,情況嚴重時,數(shù)據(jù)丟失,接收出錯,狀態(tài)紊亂。進而產(chǎn)生如死鎖等問題。I2C協(xié)議里描述了SCL,SDA的上升沿最大1000ns,在這個處于邏輯值變化的間隙(亞穩(wěn)態(tài)),門電路的反饋系數(shù)很大,最容易受到外界干擾而發(fā)生邏輯紊亂,而這種變化是不需要的,它會造成與它相連的邏輯部件做出不同的判斷,"1"判斷成"0","0"判斷成"1",又或者是進入亞穩(wěn)態(tài)從而導致系統(tǒng)邏輯紊亂。目前針對該問題常用的解決方法主要有三種1.因容易受到干擾的是信號處于亞穩(wěn)態(tài)的情況,主要是上升沿時間過長給了干擾機會。因此只要減小上升沿時間即可,具體實施方式為減小上拉電阻以減小上升沿時間,但該方法可能會造成系統(tǒng)EMC(輻射超標)問題,且不能從根本上消除干擾,只是概率變小。2.在I2C總線上串入一個死鎖恢復的緩沖器,當檢測到I2C異常已經(jīng)死鎖后,再對I2C設備進行恢復。該方式需要額外增加電路,提高成本。且并未將異常的發(fā)生防患于未然。3.在微控制器中軟件增加I2C狀態(tài)監(jiān)測功能,當I2C狀態(tài)出錯,通信異常時對I2C模塊進行恢復操作。該方式雖不會增加硬件成本,但會占用微控制器有限的資源,且需要進行大量模擬測試,才能確保在監(jiān)測I2C的同時不會對微控制器的其他功能造成影響,而且如果不出現(xiàn)問題的話,設計人員也很少考慮增加這樣一個軟件模塊,等出現(xiàn)問題時已經(jīng)造成一些損失。

      技術(shù)實現(xiàn)要素:
      本發(fā)明提供了一種I2C總線消除干擾信號的方法,旨在解決現(xiàn)有技術(shù)中I2C總線信號容易受干擾信號影響,造成裝置不穩(wěn)定的問題。為了解決上述技術(shù)問題,本發(fā)明是這樣實現(xiàn)的:一種I2C總線消除干擾信號的方法,所述方法包括以下步驟:根據(jù)預設采樣頻率對I2C總線信號進行實時采樣以獲取信號采樣值;根據(jù)預設需要消除的干擾信號的最大脈沖寬度和所述預設采樣頻率獲取對干擾信號的最大采樣次數(shù)n,并將所述信號采樣值依次存入位數(shù)為n+1的移位寄存器中進行,并對所述信號采樣值進行邏輯運算;根據(jù)所述邏輯運算的運算結(jié)果對所述I2C總線信號進行干擾消除處理后輸出。進一步地,所述根據(jù)預設需要消除的最大脈沖寬度和所述預設采樣頻率獲取對干擾信號的最大采樣次數(shù)n的步驟具體為:根據(jù)以下算式計算最大采樣次數(shù)n:n=[A*B];其中,A表示所述預設的消除的干擾信號的的最大脈沖寬度,B表示所述預設采樣頻率。進一步地,所述對所述信號采樣值進行邏輯運算的步驟具體包括以下步驟:根據(jù)以下算式對依次存入所述移位寄存器中的的信號采樣值進行與運算:Y=S0&S1&S2&S3&...&Sn;根據(jù)以下算式對依次存入所述移位寄存器中的的信號采樣值進行或運算:Y′=S0|S1|S2|S3|...|Sn;其中,Y和Y’分別表示與運算和或運算的運算結(jié)果,S0、S1、S2、S3...Sn表示依次存入移位寄存器中的的信號采樣值。進一步地,所述根據(jù)所述邏輯運算的運算結(jié)果對所述采樣的I2C總線信號進行干擾消除后輸出的步驟具體為:當Y為1時,將所述采樣的I2C總線信號置為高電平后輸出;當Y’為0時,將所述采樣的I2C總線信號置為低電平后輸出;當Y為0且Y’為1時,將所述采樣的I2C總線信號維持與其上一進行干擾消除后的I2C總線信號相同的工作狀態(tài)進行輸出。本發(fā)明還提供了一種I2C總線消除干擾信號的裝置,所述裝置包括:采樣單元,用于根據(jù)預設采樣頻率對I2C總線信號進行實時采樣以獲取信號采樣值;處理單元,用于根據(jù)預設需要消除的干擾信號的最大脈沖寬度和所述預設采樣頻率獲取對干擾信號的最大采樣次數(shù)n,并將所述信號采樣值依次存入位數(shù)為n+1的移位寄存器中,并對所述信號采樣值進行邏輯運算;輸出單元,用于根據(jù)所述邏輯運算的運算結(jié)果對所述采樣的I2C總線信號進行干擾消除處理后輸出。進一步地,所述處理單元根據(jù)預設需要消除的最大脈沖寬度和所述預設采樣頻率獲取對干擾信號的最大采樣次數(shù)n的步驟具體為:根據(jù)以下算式計算最大采樣次數(shù)n:n=[A*B];其中,A表示所述預設的消除的干擾信號的的最大脈沖寬度,B表示所述預設采樣頻率。進一步地,所述移位寄存器進行邏輯運算的步驟具體包括以下步驟:根據(jù)以下算式對依次存入所述移位寄存器中的的信號采樣值進行與運算:Y=S0&S1&S2&S3&...&Sn;根據(jù)以下算式對依次存入所述移位寄存器中的的信號采樣值進行或運算:Y′=S0|S1|S2|S3|...|Sn;其中,Y和Y’分別表示與運算和或運算的運算結(jié)果,S0、S1、S2、S3...Sn表示依次存入移位寄存器中的的信號采樣值。進一步地,所述輸出單元根據(jù)所述邏輯運算的運算結(jié)果對所述采樣的I2C信號進行干擾消除后輸出的步驟具體為:當Y為1時,將所述采樣的I2C總線信號置為高電平后輸出;當Y’為0時,將所述采樣的I2C總線信號置為低電平后輸出;當Y為0且Y’為1時,將所述采樣的I2C總線信號維持與其上一進行干擾消除后的I2C總線信號相同的工作狀態(tài)進行輸出。在本發(fā)明中,通過對I2C總線信號進行采樣獲取信號采樣值并存入移位寄存器進行邏輯運算,根據(jù)移位寄存器對所述信號采樣值的邏輯運算的運算結(jié)果對采樣的I2C總線信號進行干擾消除后輸出,解決了現(xiàn)有技術(shù)中I2C總線信號容易受干擾信號的影響,造成裝置不穩(wěn)定的問題。附圖說明圖1是本發(fā)明實施例提供的I2C總線消除干擾信號的方法流程圖;圖2是本發(fā)明實施例提供的I2C總線消除干擾信號的裝置模塊結(jié)構(gòu)圖。具體實施方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。以下結(jié)合具體實施例對本發(fā)明的具體實現(xiàn)進行詳細描述:圖1示出了本發(fā)明實施例提供的I2C總線消除干擾信號的方法流程圖,為了便于說明,本實施例僅列舉與本實施例相關(guān)的部分。作為本發(fā)明一實施例,I2C總線信號一般包括SCL信號和SDA信號,但是SCL信號和SDA信號中通常含有干擾信號,本發(fā)明實施例提供了一種I2C總線消除干擾信號的方法,包括以下步驟:步驟S100、根據(jù)預設采樣頻率對I2C總線信號進行實時采樣以獲取信號采樣值;在本發(fā)明實施例中,預設采樣頻率為驅(qū)動采樣的頻率,其值由驅(qū)動設備決定。步驟S200、根據(jù)預設需要消除的干擾信號的最大脈沖寬度和預設采樣頻率獲取對干擾信號的最大采樣次數(shù)n,并將信號采樣值依次存入位數(shù)為n+1的移位寄存器M中,并對該信號采樣值進行邏輯運算。在步驟S200中,需要消除的干擾信號的最大脈沖寬度是根據(jù)實際需要進行的預先設置。在步驟S200中,根據(jù)預設需要消除的最大脈沖寬度和預設采樣頻率獲取對干擾信號的最大采樣次數(shù)n的步驟具體為:根據(jù)以下算式計算最大采樣次數(shù)n:n=[A*B];其中,A表示預設的需要消除的干擾信號的的最大脈沖寬度,B表示預設采樣頻率。在步驟S200中,將信號采樣值依次存入位數(shù)為n+1的移位寄存器M中進行邏輯運算的步驟具體包括以下步驟:根據(jù)以下算式對依次存入移位寄存器M中的的信號采樣值進行與運算:Y=S0&S1&S2&S3&...&Sn;根據(jù)以下算式對依次存入移位寄存器M中的的信號采樣值進行或運算:Y′=S0|S1|S2|S3|...|Sn;其中,Y和Y’分別表示與運算和或運算的運算結(jié)果,S0、S1、S2、S3...Sn表示依次存入移位寄存器M中的的信號采樣值。作為本發(fā)明一實施例,存入移位寄存器M中的信號采樣值的個數(shù)為對干擾信號的采樣次數(shù)加一,這樣可以避免將干擾信號誤判為有用信號,因為寄存器值全為1時或者0時,我們會認為這確實是有用的信號,所以如果采樣到的干擾信號將移位寄存器M填滿,則會導致裝置誤判將干擾信號當成有用信號,從而出現(xiàn)數(shù)據(jù)異常,故使移位寄存器M的位數(shù)比采樣到的干擾信號的次數(shù)多一,這樣使有用信號進入移位寄存器M,避免誤判。步驟S300、根據(jù)邏輯運算的運算結(jié)果對采樣的I2C總線信號進行干擾消除后輸出。在步驟S300中,根據(jù)邏輯運算的運算結(jié)果對采樣的I2C總線信號進行干擾消除后輸出的步驟具體為:當Y為1時,將采樣的I2C總線信號置為高電平后輸出;當Y’為0時,將采樣的I2C總線信號置為低電平后輸出;當Y為0且Y’為1時,將采樣的I2C總線信號維持與其上一進行干擾消除后的I2C總線信號相同的工作狀態(tài)進行輸出。在步驟S300中,當Y為1時,表示存入移位寄存器M中的信號采樣值都為1,即進行了采樣的那一段I2C總線信號都為高電平,不包含任何干擾信號,進行干擾消除后輸出的為高電平信號,輸出當Y’為0時,表示存入移位寄存器M中的信號采樣值都為0,即進行了采樣的那一段I2C總線信號都為低電平,不包含任何干擾信號,進行干擾消除后輸出的為低電平信號,當Y為0且Y’為1時,表示存入移位寄存器M中的信號采樣值有1和0,表明進行了采樣的那一段I2C總線信號中有干擾信號或者是正常信號發(fā)生了電平轉(zhuǎn)換,此時將采樣的I2C總線信號維持與其上一進行干擾消除后的I2C總線信號相同的工作狀態(tài)進行輸出,即對進行了采樣的I2C總線信號進行了一個采樣周期(n+1次采樣的采樣時間)的延遲處理后輸出,當為干擾信號時,即對干擾信號進行了消除,當為正常信號發(fā)生高低電平轉(zhuǎn)換時,只是對正常信號進行了延遲,并不影響最終的結(jié)果。作為本發(fā)明一實施例,本發(fā)明主要是利用延時將干擾信號進行消除,而正常信號不受影響可以正常輸出,但會有一定的延時,考慮到I2C總線干擾信號一般為ns級,因此ns級的延時是可接受的。如圖2所示,本發(fā)明還提供了一種I2C總線消除干擾信號的裝置100,包括:采樣單元101,用于根據(jù)預設采樣頻率對I2C總線信號進行實時采樣以獲取信號采樣值;處理單元102,用于根據(jù)預設需要消除的干擾信號的最大脈沖寬度和預設采樣頻率獲取對干擾信號的最大采樣次數(shù)n,并將信號采樣值依次存入位數(shù)為n+1的移位寄存器M中,并對該信號采樣值進行邏輯運算;輸出單元103,用于根據(jù)移位寄存器M的邏輯運算的運算結(jié)果對采樣的I2C總線信號進行干擾消除后輸出。作為本發(fā)明一實施例,預設采樣頻率為驅(qū)動采樣的頻率,其值由驅(qū)動設備決定,需要消除的干擾信號的最大脈沖寬度根據(jù)需要進行預先設置,移位寄存器M可以是外置的,也可以是包含在裝置100里面的,在本發(fā)明實施例中,移位寄存器M是不包含在裝置100里面的。作為本發(fā)明一實施例,處理單元102根據(jù)預設需要消除的最大脈沖寬度和預設采樣頻率獲取對干擾信號的最大采樣次數(shù)n的步驟具體為:根據(jù)以下算式計算最大采樣次數(shù)n:n=[A*B];其中,A表示所述預設的消除的干擾信號的的最大脈沖寬度,B表示所述預設采樣頻率。作為本發(fā)明一實施例,移位寄存器M進行邏輯運算的步驟具體包括以下步驟:根據(jù)以下算式對依次存入移位寄存器M中的的信號采樣值進行與運算:Y=S0&S1&S2&S3&...&Sn;根據(jù)以下算式對依次存入移位寄存器M中的的信號采樣值進行或運算:Y′=S0|S1|S2|S3|...|Sn;其中,Y和Y’分別表示與運算和或運算的運算結(jié)果,S0、S1、S2、S3...Sn表示依次存入移位寄存器M中的的信號采樣值。作為本發(fā)明一實施例,輸出單元103根據(jù)移位寄存器M的邏輯運算的運算結(jié)果對采樣的I2C總線信號進行干擾消除后輸出的步驟具體為:當Y為1時,將采樣的I2C總線信號置為高電平后輸出;當Y’為0時,將采樣的I2C總線信號置為低電平后輸出;當Y為0且Y’為1時,將采樣的I2C總線信號維持與其上一進行干擾消除后的I2C總線信號相同的工作狀態(tài)進行輸出。在本發(fā)明實施例中,當Y為1時,表示存入移位寄存器M中的信號采樣值都為1,即進行了采樣的那一段I2C總線信號都為高電平,不包含任何干擾信號,進行干擾消除后輸出的為高電平信號,輸出當Y’為0時,表示存入移位寄存器M中的信號采樣值都為0,即進行了采樣的那一段I2C總線信號都為低電平,不包含任何干擾信號,進行干擾消除后輸出的為低電平信號,當Y為0且Y’為1時,表示存入移位寄存器M中的信號采樣值有1和0,表明進行了采樣的那一段I2C總線信號中有干擾信號或者是正常信號發(fā)生了電平轉(zhuǎn)換,此時將采樣的I2C總線信號維持與其上一進行干擾消除后的I2C總線信號相同的工作狀態(tài)進行輸出,即對進行了采樣的I2C總線信號進行了一個采樣周期(n+1次采樣的采樣時間)的延遲處理后輸出,當為干擾信號時,即對干擾信號進行了消除,當為正常信號發(fā)生高低電平轉(zhuǎn)換時,只是對正常信號進行了延遲。在本發(fā)明實施中,通過對I2C總線信號進行采樣獲取信號采樣值并存入移位寄存器M進行邏輯運算,根據(jù)移位寄存器M對所述信號采樣值的邏輯運算的運算結(jié)果對采樣的I2C總線信號進行干擾消除后輸出,解決了現(xiàn)有技術(shù)中I2C總線信號容易受干擾信號的影響,造成裝置不穩(wěn)定的問題。本發(fā)明的實施例中,所述的I2C總線消除干擾信號的方法和裝置,可以基于可編程邏輯器件實現(xiàn),在IC設計中設置在信號接收模塊中對信號進行干擾消除后再輸出給下一級,從而避免當出現(xiàn)問題時才去找解決辦法的尷尬,避免了出問題帶來的時間和成本的損失。本領(lǐng)域技術(shù)人員可以理解為上述實施例包括的各個單元只是按照功能邏輯進行劃分的,但并不局限于上述的劃分,只要能夠?qū)崿F(xiàn)相應的功能即可;另外,各功能單元的具體名稱也只是為了便于相互區(qū)分,并不用于限制本發(fā)明的保護范圍。本領(lǐng)域普通技術(shù)人員還可以理解,實現(xiàn)上述實施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以在存儲于一計算機可讀取存儲介質(zhì)中,所述的存儲介質(zhì),包括ROM/RAM、磁盤、光盤等。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
      當前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1