Spi接口以及經由spi接口的串行通信方法
【專利摘要】本發明公開了SPI接口以及經由SPI接口的串行通信方法。涉及使用串行外設接口(SPI)協議與外圍設備進行的串行通信,特別是,涉及針對嘈雜環境的SPI接口以及在嘈雜環境中經由SPI接口的串行通信方法。根據本發明方面,提供了SPI接口,該SPI接口包括:多個同步器,被配置為接收多個SPI信號和內部時鐘信號并且使用內部時鐘信號同步所接收SPI信號;以及SPI協議處理機,被配置為接收經同步的SPI信號和內部時鐘信號并且根據SPI協議檢測和評估經同步的SPI信號中至少一個SPI信號的信號躍遷。
【專利說明】SPI接口以及經由SPI接口的串行通信方法
【技術領域】
[0001]本發明涉及使用串行外設接口(SPI)協議與外圍設備進行的串行通信,特別是,涉及針對嘈雜環境的SPI接口以及在嘈雜環境中經由SPI接口的串行通信方法。
【背景技術】
[0002]串行外設接口(SPI)協議是廣泛用于集成電路(IC)之間進行數據傳輸的協議,特別是主機處理器(也稱為SPI主機)與一個或多個外圍設備(也稱為SPI從機)之間。SPI協議規定四個信號:
[0003]CS:芯片選擇
[0004]SCLK:移位時鐘或者串行時鐘
[0005]SD1:移位數據輸入或者串行數據輸入
[0006]SD0:移位數據輸出或者串行數據輸出
[0007]然而,應當理解,替代命名慣例也廣泛使用。
[0008]SPI協議是同步協議,其需要用于正確操作的定義時序。如果SPI設備在嘈雜環境中工作(例如,具有大開關電流/電壓的功率轉換器),那么在SPI信號上可能出現毛刺(glitch,電子脈沖),這會在SPI設備上引起時序違規(timing violation)。接收了時序違規的常規SPI設備的行為是未知的。它取決于實現方式(使用模擬濾波器等),但是在最壞情況下,接口的所有觸發器變為亞穩態(即,觸發器處于“低”與“高”狀態之間的不穩定狀態中,并且在不確定持續時間之后會變為穩定狀態“低”或者“高”中一個)并且可引起產生嚴重后果的隨機行為。
[0009]然而,在嘈雜環境中,由于隨機噪聲事件的不可預測性,所以無法保證正確時序。在常規SPI設備中,模擬濾波器通常用于抑制時鐘信號上的毛刺,然而模擬濾波器的使用也無法完全去除由于噪聲誘發事件導致的時序違規:例如,模擬濾波器可通過太小的時鐘脈沖,這導致SPI觸發器變為亞穩態。
[0010]因此,例如需要以下串行外設接口,其不易受到由于例如嘈雜SPI信號所導致的時序違規的影響,并因此適合嘈雜環境中的應用,并且需要以下經由SPI接口的串行通信方法,其不易受到時序違規影響因此適合嘈雜環境中的應用。
【發明內容】
[0011]根據本發明的一個方面,提供一種SPI接口,該SPI接口包括:多個同步器,被配置為接收多個SPI信號和內部時鐘信號并且使用內部時鐘信號同步所接收的SPI信號;以及SPI協議處理機(SPI protocol handler),被配置為接收經同步的SPI信號和內部時鐘信號并且根據SPI協議來檢測和評估該同步SPI信號中至少一個同步SPI信號的信號躍遷(signal transition,信號轉換)。
[0012]根據本發明的又一方面,提供了一種經由SPI接口的串行通信方法,該方法包括以下步驟:接收多個SPI信號和內部時鐘信號;使用內部時鐘信號同步多個SPI信號;以及根據SPI協議來檢測和評估同步SPI信號中至少一個同步SPI信號的信號躍遷。
[0013]根據以下參考附圖作出的本發明詳細描述,本發明的更多特征、方面和優點將變為顯而易見。
【專利附圖】
【附圖說明】
[0014]包含附圖從而提供對本發明的進一步理解,并且將附圖并入本說明書中且構成本說明書一部分。附圖示出本發明實施方式,并且與說明書一起用于說明本發明原理。本發明的其它實施方式以及本發明的許多預期優點將容易理解,因為它們通過參考以下詳細描述變為更好理解。
[0015]圖1示例性示出根據本發明實施方式的SPI接口的簡化示意圖。
[0016]圖2示出根據本發明實施方式的示例性方法。
【具體實施方式】
[0017]在以下詳細描述中,參考附圖,附圖形成以下詳細描述一部分,并且其中通過示出可實現本發明的特定實施方式來示出。應當理解,可利用其它實施方式,并且在不脫離本發明范圍的情況下可作出結構或者其它變化。因此,以下詳細描述并無限制之意,并且本發明范圍由所附權利要求限定。
[0018]圖1示例性示出根據本發明實施方式的SPI接口的簡化示意圖。
[0019]圖1所示的SPI接口包括串行數據輸入(SDI)信號輸入端11a,芯片選擇(CS)信號輸入端11b,串行時鐘(SCLK)信號輸入端11c,串行數據輸出(SDO)信號輸出端lld,內部時鐘輸入端13,第一、第二和第三同步器12a、12b和12c,第一、第二和第三數字濾波器14a、14b和14c,SPI協議處理機16和輸出級18。
[0020]在圖1所示的實施方式中,同步器12a、12b和12c,數字濾波器14a、14b和14c,SPI協議處理機16和SPI輸出級18連接到內部時鐘信號輸入端13以接收內部時鐘信號。內部時鐘信號由明確定義的內部時鐘(特別是不受來自芯片外部的噪聲影響的片上振蕩器)提供。因此,SPI的所有設備由明確定義的內部時鐘來計時。
[0021 ] 在本發明的優選實施方式中,同步器12a、12b和12c為同步器觸發器。同步器觸發器被允許經歷亞穩態長達一定時間間隔,因為它們在預定義恢復時間之后從亞穩態恢復。恢復時間的長度必須小于內部時鐘持續時間,使得同步器觸發器的輸出或者結果在預定義恢復時間過去之前不被其它同步邏輯器件(例如,數字濾波器和SPI協議處理機)使用。
[0022]第一同步器12a進一步連接到SDI輸入端Ila和第一數字濾波器14a。第一同步器12a從SDI輸入端Ila接收SDI信號,同步所接收的SDI信號,并且將經同步的SDI信號輸出到第一數字濾波器14a。
[0023]第二同步器12b進一步連接到CS輸入端Ilb和第二數字濾波器14b。第二同步器12b接收來自CS輸入端Ilb的CS信號,同步所接收的CS信號,并且將經同步的CS信號輸出到第二數字濾波器14b。
[0024]第三同步器12c進一步連接到SCLK輸入端Ilc和第三數字濾波器14c。第三同步器12c從SCLK輸入端Ilc接收SCLK信號,同步所接收的SCLK信號,并且將同步的SCLK信號輸出到第三數字濾波器14c。[0025]數字濾波器14a、14b和14c可檢查一定數目(例如,3、5、8等)的連續采樣是否包括相同值(例如,1),如果是,那么輸出該值作為濾波結果。可替換地,數字濾波器14a、14b和14c可檢查許多連續采樣中一定比例(例如,五分之四、七分之五等)是否包括相同值(例如,1),如果是,那么輸出該值作為濾波結果。然而,應當理解,本發明并不限于上述示例性濾波器設計,而是也可利用其它濾波器設計。
[0026]第一數字濾波器14a從第一同步器12a接收經同步的SDI信號,對于經同步的SDI信號進行濾波,并且將經同步且濾波的SDI信號(SDI filt)輸出到SPI協議處理機16。
[0027]第二數字濾波器14b從第二同步器12b接收經同步的CS信號,對于經同步的CS信號進行濾波,并且將經同步且濾波的CS信號(CS filt)輸出到SPI協議處理機16。
[0028]第三數字濾波器14c從第三同步器12c接收經同步的SCLK信號,對于經同步的SCLK信號進行濾波,并且將經同步且濾波的SCLK信號(SCLK filt)輸出到SPI協議處理機
16。附加地,第三濾波器也產生單獨SCLK信號(SCLK fast),該SCLK信號被輸出到SPI輸出級18。SCLK fast這個信號具有比SCLK filt更短的延遲,S卩,SCLK fast通過了比SCLKfilt所通過的濾波級更少的濾波級。
[0029]因此,所有SPI輸入信號由同步器(具體為同步器觸發器)12a、12b和12c進行同步并且由數字濾波器14a、14b和14c進行濾波,從而在它們到達SPI協議處理機之前抑制例如信號噪聲事件。此外,作為包含在SPI協議處理機中的觸發器的所有SPI相關觸發器(以下簡稱“SPI觸發器”)通過內部(明確定義的)時鐘來計時。在圖1的SPI接口中,重要的是內部時鐘比外部SPI時鐘SCLK更快,否則,同步器12a、12b和12c以及數字濾波器14a、14b和14c將使包含在SPI信號中的一些躍遷松動(loose)。
[0030]在本發明的優選實施方式中,數字濾波器14a、14b和14c的數字濾波器級為等效,使得同步且濾波的不同SPI輸入信號延遲了相同時間量。
[0031]有利地,通過使用時鐘選通可降低功耗,例如,時鐘選通可實現當芯片選擇信號無效時不對數字濾波器14a、14b和14c計時。
[0032]在這方面,應當理解,在本發明某些實施方式中,芯片選擇信號為“高-有效”信號:當CS信號為高時,“芯片選擇”有效,當CS信號為低時,“芯片選擇”為無效。在替代性實施方式中,芯片選擇信號也可為“低-有效”信號,“低-有效”信號可稱為“ncs信號”。在這種情況下,當nCS信號為低時,“芯片選擇”有效,當nCS信號為高時,“芯片選擇”為無效。
[0033]因此,在圖1所示的SPI接口中,外部噪聲事件或者毛刺(引起SPI時序違規)不會引起SPI觸發器處(即,包含在SPI協議處理機16中的觸發器)時序違規。否則,由于可引起SPI觸發器/SPI接口的隨機行為嚴重后果的外部毛刺,SPI觸發器可變為亞穩態。
[0034]同步器觸發器僅僅為包含在圖1所示的SPI接口中的觸發器,其可經歷亞穩態達一定時間間隔,因為這些同步器觸發器在預定義恢復時間之后從亞穩態恢復。
[0035]SPI協議處理機16接收經同步且濾波的SPI輸入信號SDI filt、CS filt、SCLKfilt,檢測所接收的SPI輸入信號中的信號躍遷(即,上升沿/下降沿),并且根據SPI協議評估所檢測的信號躍遷。
[0036]在本發明的優選實施方式中,數字濾波器14a、14b和14c附加地產生指示經濾波的SPI信號的信號躍遷(B卩,上升沿/下降沿)的信號。在這種情況下,SPI協議處理機16從數字濾波器14a、14b和14c接收經同步且濾波的SPI輸入信號以及指示SPI輸入信號的信號躍遷的相應信號用于評估。
[0037]根據SPI協議的SPI輸入信號的示例性評估將在下文中簡要描述。SDI存取可以將CS信號的(例如,上升)邊沿作為開始。此時,包含在SPI協議處理機16中的移位寄存器初始化,即,由外部源提供的并行輸出值采樣到SPI協議處理機16的移位寄存器中。
[0038]輸出級18另外地接收單獨SCLK信號,S卩,SCLK fast,其具有較小固有延遲,其比提供給SPI協議處理機的SCLK信號(B卩,SCLK filt)被更少地濾波。因此,反應時間可減少,使得輸出級18可在SCLK信號的(例如上升)邊沿之后立即將輸出位提供給SDO輸出端lid。
[0039]時鐘信號SCLk fast可包括某個時序方差,由于它比SCLK filt更少地過濾。然而,這些時序方差不能導致未定義狀態,由于轉發值(輸出位)由SPI協議處理機的移位寄存器唯一地提供(因而定義),其中該移位寄存器由完全濾波的SCLK filt信號來計時。
[0040]然后,在SCLK信號的(例如下降)邊沿之后,SDI值“移位”到移位寄存器中,并且包含在移位寄存器中的所有位移位了一個位置,使得SDI值被采樣到移位寄存器的“第一”位置中,并且位于移位寄存器的“最后”位置中的位(例如MSB)移出移位寄存器,而移位寄存器中所有其它位移位了 一個位置。
[0041]同樣,輸出級18接收單獨SCLK信號,S卩,SCLK fast,其具有較小固有延遲,因為它比提供給SPI協議處理機的SCLK信號(B卩,SCLK filt)被更少地濾波。因此,反應時間可減少,使得輸出級可在SCLK信號的(例如上升)邊沿之后立即將輸出位提供給SDO輸出端lid。
[0042]然后,在SCLK信號的另一個(例如下降)邊沿之后,下一個SDI值“移位”到移位寄存器中,并且包括在移位寄存器中的所有位移位了一個位置,使得下一個SDI值采樣到移位寄存器的“第一”位置中,并且位于移位寄存器的“最后”位置中的位移出移位寄存器,而移位寄存器中所有其它位移位了一個位置。
[0043]只要芯片選擇信號為有效(例如,CS為高),那么就重復以上步驟。當芯片選擇信號變為無效(例如,CS變為低)時,存取完成,并且內容可讀出且作為并行輸入值提供給另一個片上設備。在某些實施方式中,芯片選擇信號在固定數目的SCLK周期內為有效,該固定數目等于包括在移位寄存器中的位數,使得移位寄存器的整個內容在單個SPI存取期間替換,即,所有“在前”位移出,并且由連續采樣到移位寄存器中的對應數目所接收SDI值替換。
[0044]在本發明優選實施方式中,SDI協議處理機附加地監視數字濾波器的輸出以進行另外的SPI協議檢查和/或評估,諸如:
[0045]在SPI時鐘開始計時之前,檢查芯片選擇信號上是否有有效邊沿;
[0046]檢查SCLK信號的至少一個(例如下降)邊沿是否出現;
[0047]檢查SCLK信號的預定義數目的(例如下降)邊沿是否出現;
[0048]評估SCLK信號的邊沿之間的時間間隔;以及
[0049]評估SPI信號的長度。
[0050]基于SPI協議檢查和/或評估的結果,SPI協議處理機16判定SPI存取是否有效。假使存取無效,那么該存取被忽略并被識別為無效,即,在這個存取中接收的所有數據丟棄,并且有利地,SPI協議處理機16設置錯誤標記位。
[0051]因此,通過防止外部SPI信號(直接)連接到關鍵SPI觸發器輸入端,圖1所示的SPI接口確保定義SPI行為。即使在存取期間SPI時序違規的情況下,定義SPI行為也保證:如果檢測到SPI存取中時序違規,那么相應SPI存取被識別為損壞,在這個存取中接收的所有數據丟棄,并且可額外地設置錯誤標記。
[0052]圖2示出根據本發明實施方式的示例性方法。經由SPI接口的串行通信方法包括以下步驟:
[0053]接收多個SPI信號和內部時鐘信號(步驟202);
[0054]使用內部時鐘信號同步多個SPI信號(步驟204);
[0055]對于同步SPI信號進行數字濾波(步驟206);
[0056]根據SPI協議檢測和評估同步且濾波的SPI信號中至少一個SPI信號的信號躍遷(步驟208)。
[0057]雖然本文中已經示出和描述特定實施方式,但是本領域技術人員應當理解,在不脫離本發明范圍的情況下,多種替代和/或等效實現可取代示出和描述的特定實施方式。本申請旨在包括本文中討論的特定實施方式的任何修改或者變動。因此,本發明僅通過權利要求及其等同物來限制。
【權利要求】
1.一種SPI接口,包括: 多個同步器,被配置為接收多個SPI信號和內部時鐘信號,并且使用所述內部時鐘信號同步所接收的所述SPI信號;以及SPI協議處理機,被配置為: 接收所述內部時鐘信號和經同步的所述SPI信號;并且 根據SPI協議檢測和評估經同步的所述SPI信號中至少一個SPI信號的信號躍遷。
2.根據權利要求1所述的SPI接口,其中,所述SPI協議處理機進一步被配置為基于所接收的所述SPI信號中所述至少一個SPI信號的信號躍遷的評估來判定所述多個SPI信號是否形成有效存取。
3.根據權利要求2所述的SPI接口,其中,所述SPI協議處理機進一步被配置為在所述多個SPI信號未形成有效存取的情況下丟棄所述多個SPI信號。
4.根據權利要求2所述的SPI接口,其中,所述SPI協議處理機進一步被配置為在所述多個SPI信號未形成有效存取的情況下設置錯誤標記。
5.根據權利要求2所述的SPI接口,其中,所述多個SPI信號包括芯片選擇(CS)信號、串行時鐘(SCLK)信號和串行數據輸入(SDI)信號。
6.根據權利要求5所述的SPI接口,其中,所接收的所述SPI信號中所述至少一個SPI信號的信號躍遷的評估包括以下各項中的至少一項: 在所述串行時鐘信號開始 計時之前,檢查所述芯片選擇信號上是否有邊沿; 檢查所述串行時鐘信號的至少一個邊沿是否出現; 檢查所述串行時鐘信號的預定數目的下降沿或者上升沿是否出現; 評估所述串行時鐘信號的邊沿之間的時間間隔;以及 評估SPI間隔的長度。
7.根據權利要求1所述的SPI接口,其中,所述多個同步器中的同步器為同步器觸發器。
8.—種經由SPI接口的串行通信方法,所述方法包括以下步驟: 接收多個SPI信號和內部時鐘信號; 使用所述內部時鐘信號同步所述多個SPI信號;以及 根據SPI協議檢測和評估經同步的所述SPI信號中至少一個SPI信號的信號躍遷。
9.根據權利要求8所述的方法,還包括: 基于所接收的所述SPI信號中所述至少一個SPI信號的信號躍遷的評估,判定所述多個SPI信號是否形成有效存取。
10.根據權利要求9所述的方法,還包括: 在所述多個SPI信號未形成有效存取的情況下丟棄所述多個SPI信號。
11.根據權利要求9所述的方法,還包括: 在所述多個SPI信號未形成有效存取的情況下設置錯誤標記。
12.根據權利要求9所述的方法,其中,所述多個SPI信號包括芯片選擇(CS)信號、串行時鐘(SCLK)信號和串行數據輸入(SDI)信號。
13.根據權利要求9所述的方法,其中,所接收的所述SPI信號中所述至少一個SPI信號的信號躍遷的評估包括以下各項中的至少一項:在所述串行時鐘信號開始計時之前,檢查所述芯片選擇信號上是否有邊沿; 檢查所述串行時鐘信號的至少一個邊沿是否出現; 檢查所述串行時鐘信號的預定數目的下降沿或者上升沿是否出現; 評估所述串行時鐘信號的邊沿之間的時間間隔;以及 評估SPI間隔的長度。
14.一種SPI接口,包括: 多個同步器,被配置為接收多個SPI信號和內部時鐘信號并且使用所述內部時鐘信號同步所接收的所述SPI信號; 多個數字濾波器,被配置為接收經同步的所述SPI信號并且進行濾波;以及 SPI協議處理機,被配置為: 接收所述內部時鐘信號和經同步且濾波的所述SPI信號;并且 根據SPI協議檢測和評估所接收的所述SPI信號中至少一個SPI信號的信號躍遷。
15.根據權利要求14所述的SPI接口,其中,所述SPI協議處理機進一步被配置為基于所接收的所述SPI信號中所述至少一個SPI信號的信號躍遷的評估來判定所述多個SPI信號是否形成有效存取。
16.根據權利要求15所述的SPI接口,其中,所述SPI協議處理機進一步被配置為在所述多個SPI信號未形成有效存取的情況下丟棄所述多個SPI信號。
17.根據權利要求15所述的SPI接口,其中,所述SPI協議處理機進一步被配置為在所述多個SPI信號未形成有效存取的情況下設置錯誤標記。
18.根據權利要求15所述的SPI接口,其中,所述多個SPI信號包括芯片選擇(CS)信號、串行時鐘(SCLK)信號和串行數據輸入(SDI)信號。
19.根據權利要求18所述的SPI接口,其中,所接收的所述SPI信號中所述至少一個SPI信號的信號躍遷的評估包括以下各項中的至少一項: 在所述串行時鐘信號開始計時之前,檢查所述芯片選擇信號上是否有邊沿; 檢查所述串行時鐘信號的至少一個邊沿是否出現; 檢查所述串行時鐘信號的預定數目的下降沿或者上升沿是否出現; 評估所述串行時鐘信號的邊沿之間的時間間隔;以及 評估SPI間隔的長度。
20.根據權利要求14所述的SPI接口,其中,所述多個同步器中的同步器為同步器觸發器。
21.—種經由SPI接口的串行通信方法,所述方法包括以下步驟: 接收多個SPI信號和內部時鐘信號; 使用所述內部時鐘信號同步所述多個SPI信號; 對于經同步的所述SPI信號進行數字濾波; 由SPI協議處理機接收所述內部時鐘信號和經同步且數字濾波的所述SPI信號;以及由所述SPI協議處理機根據SPI協議來檢測和評估所接收的所述SPI信號中至少一個SPI信號的信號躍遷。
22.根據權利要求21所述的方法,還包括: 由所述SPI協議處理機基于所接收的所述SPI信號中所述至少一個SPI信號的信號躍遷的評估來判定所述多個SPI信號是否形成有效存取。
23.根據權利要求22所述的方法,還包括: 在所述多個SPI信號未形成有效存取的情況下丟棄所述多個SPI信號。
24.根據權利要求22所述的方法,還包括: 在所述多個SPI信號未形成有效存取的情況下由所述SPI協議處理機設置錯誤標記。
25.根據權利要求22所述的方法,其中,所述多個SPI信號包括芯片選擇(CS)信號、串行時鐘(SCLK)信號和串行數據輸入(SDI)信號。
26.根據權利要求25所述的方法,其中,所接收的所述SPI信號中所述至少一個SPI信號的信號躍遷的評估包括以下各項中的至少一項: 在所述串行時鐘信號開始計時之前,檢查所述芯片選擇信號上是否有邊沿; 檢查所述串行時鐘信號的至少一個邊沿是否出現; 檢查所述串行時鐘信號的預定數目的下降沿或者上升沿是否出現; 評估所述串行時鐘信 號的邊沿之間的時間間隔;以及 評估SPI間隔的長度。
【文檔編號】G06F13/42GK103544129SQ201310287010
【公開日】2014年1月29日 申請日期:2013年7月9日 優先權日:2012年7月11日
【發明者】托馬索·巴奇加盧波 申請人:英飛凌科技股份有限公司