相關申請的交叉引用
本申請根據35u.s.c.§119(e)要求于2016年2月17日提交、題為“datacommunicationinterfaceforprocessingdatainlowpowersystems”的美國臨時專利申請序列號62/296,512的優先權,該申請通過引用整體并入。
本公開涉及一種數據通信通常,并且更特別地涉及用于從外圍設備檢索和處理數據的數據通信接口,以減少由相關聯的微處理器中使用的計算資源。
背景技術:
基于現代傳感器的應用可以包括由微處理器管理的傳感器。微處理器可以與其它組分、存儲器、塊和接口駐在芯片上。傳感器由數據通信接口或內置集成電路(iic)連接到芯片上的微處理器(例如,串行外圍接口(spi))。數據通信接口便于從傳感器向微控制器傳送傳感器數據。這樣的數據可以包括單一的樣本或一系列樣本,并且可以在芯片上的存儲器進行累計。在一些情況下,微處理器處于非活動狀態(例如,睡眠或消耗很少或沒有功率),而從傳感器讀取每個樣本。一旦樣本被收集,所述處理器由中斷請求帶入活動狀態(例如,喚醒),以提示微處理器例如在存儲器中存儲樣本。在一些系統中,微處理器的主要功能是對來自傳感器的樣本集合執行算法。因此,在執行這樣的算法之前需要的多個樣本的收集期間,微處理器可以經常從活動切換到非活動狀態。
技術實現要素:
在某些實施例中,提供一種用于在微處理器和一個或多個傳感器之間數據傳輸的數據通信接口,公開:流動控制邏輯塊,可操作以一旦檢測到觸發條件,則從一個或多個傳感器的選擇傳感器接收預定數量的傳感器值,并同時保持與在至少一個引腳上的選定傳感器的單個通信會話活動,其中該微處理器對于單個通信會話的整個持續時間處于非激活狀態。
在進一步的實施方案中,提供了一種在微處理器和一個或多個傳感器之間數據傳輸的數據通信接口,公開:一個或多個數據處理的邏輯塊,可操作以接收從一個或多個傳感器讀取的傳感器值,和對傳感器值執行預處理功能,以準備傳感器值用于通過要由微處理器執行的算法進一步處理。
在進一步的實施方案中,提供了一種在微處理器和一個或多個傳感器之間數據傳輸的數據通信接口,公開:至少一個引腳,可操作地耦合到微處理器和一個或多個傳感器;傳感器寄存器,存儲標識所述一個或多個傳感器的哪一個是在所述至少一個引腳通信的所選擇傳感器的值;流控制邏輯塊,經配置以基于所述傳感器寄存器和檢測的觸發條件生成指令以生成讀取命令,其中,所述流控制邏輯塊可操作以一旦檢測到觸發條件,則向狀態機傳輸指令;狀態機,配置為基于所述指令來生成讀取命令,向所選的傳感器傳輸讀取命令,并且從所選擇的傳感器接收預定數目的傳感器值,并同時保持與至少一個引腳上所選傳感器的單個通信會話活動。
在進一步的實施例中,提供一種系統,公開:微處理器;一個或多個傳感器;和數據通信接口,包括:至少一個引腳,可操作地耦合到所述微處理器和所述一個或多個傳感器;傳感器寄存器,存儲標識所述一個或多個傳感器的哪一個是在所述至少一個引腳通信的所選擇傳感器的值;流控制邏輯塊,經配置以基于所述傳感器寄存器和檢測的觸發條件生成指令以生成讀取命令,其中,所述流控制邏輯塊可操作以一旦檢測到觸發條件,則向狀態機傳輸指令;狀態機,配置為基于所述指令來生成讀取命令,向所選的傳感器傳輸讀取命令,并且從所選擇的傳感器接收預定數目的傳感器值,并同時保持與至少一個引腳上所選傳感器的單個通信會話活動。
在進一步的實施例中,提供一種在微處理器和一個或多個傳感器之間數據傳輸的方法,公開:從傳感器寄存器檢索識別所述一個或多個傳感器的哪一個是用于在至少一個引腳上通信的選定傳感器的值,所述至少一個引腳被可操作地耦合到微處理器和一個或多個傳感器;基于所述傳感器寄存器和觸發條件的檢測,產生讀取命令;一旦檢測到觸發條件,向所選的傳感器發送讀取命令;和從所選擇的傳感器接收預定數目的傳感器值,其中,接收預定數量的傳感器值,并保持與至少一個引腳上所選傳感器的單個通信會話活動。
附圖說明
本公開內容最好從下面的詳細描述和所附附圖理解。需要強調的是,根據業界的標準做法,各種特征未按照比例繪制,并且僅用于說明目的。事實上,各種特征的尺寸可任意增加或減少,便于討論清晰。
圖1是說明用于處理從外圍設備接收的數據的系統的框圖;
圖2是用于根據本公開內容的一些實施例處理數據的裝置的框圖;
圖3a-c示出根據本發明的一些實施例,在四引腳數據通信接口的每一個引腳上發送的信號;
圖4示出根據本公開的一些實施例,在三引腳數據通信接口中的每一個引腳上發送信號;
圖5示出了根據本公開的一些實施例,在四引腳數據通信接口中的每一個引腳上發送信號;
圖6示出根據本公開內容的一些實施例,用于由用于與數據通信接口進行通信的微處理器執行的示例性邏輯;
圖7示出根據本公開內容的一些實施例,用于通過數據通信接口用于與微處理器進行通信執行的示例性邏輯;和
圖8a和8b示出在芯片上的組件和耦合到所述芯片的一個或更多個傳感器之間傳送的消息。
具體實施方式
在一些低功率的系統中,雖然微處理器具有從外圍設備傳輸數據的相對被動的角色,微處理器可以消耗大量功率。在這樣的系統中,微處理器可以啟動從外圍設備的數據傳輸和再進入睡眠模式,直到數據傳輸完成。如在本公開內容使用的,微處理器的“睡眠模式”包含基本上處于不活動狀態的微處理器。例如,休眠模式特征在于懸浮數據處理的微處理器,并作為結果,消耗很少或沒有功率。作為睡眠模式的另一示例,由微處理器執行操作的定時器可懸浮,并作為結果,微處理器在當前狀態保持“凍結”,并執行任何操作。微處理器可以觸發數據采集接口,以在進入睡眠模式之前從外圍設備中檢索數據。作為一個例子,智能手機中的處理器可從它由串行接口連接的加速度計傳感器(即,外圍設備)檢索數據(即,數據)。響應于該觸發,串行接口從所述外圍設備獲取數據,并在寄存器中存儲數據。在數據傳輸期間,通用定時器(gpt)是活動的,被用于定時數據傳輸。在存儲數據之后,串行接口中斷微處理器。響應于該中斷,微處理器從寄存器獲得數據,并將數據置于在微處理器芯片駐在的芯片的主存儲器上。外圍設備(諸如,傳感器)以特殊采樣速率生成原始數據(例如,以每秒數據樣本測量)。微處理器可以返回到睡眠模式一段時間(例如,根據所述外圍設備的采樣率),并且在時間到期之后,它再次喚醒并重復上述過程。微處理器也可通過在gpt定時(其中,gpt生成觸發,啟動由微處理器的每個傳輸)和串行外設接口(spi)(其中,spi生成中斷,發起由微處理器的每個傳輸)之間的切換,啟動突發傳輸。微處理器執行gpt和spi的每個的不同的中斷服務程序(isr),使其能夠響應gpt和spi的中斷(即,微處理器執行兩組isr:gpt的一組isr和spi的另一組isr)。上述數據傳輸過程是一樣的,不管每個提取(由串行接口)是否收集單數據值或多個數據值(即,突發傳輸)。關鍵的區別是微處理器可以對于多個數據值在突發傳輸期間多休眠一會兒。每當微處理器處于活動狀態,其中微處理器集成的芯片(或板)相當消耗功率量。因此,雖然只有在數據傳輸完成時微處理器是活動的,該事件可經常發生,導致由芯片和/或微處理器的顯著功耗。此外,功耗的問題由gpt進一步加劇,保持數據傳輸的定時活動。
在許多應用中,微處理器的主要功能是對數據執行算法(例如,使用上述例子,輸出設備的整體加速)。微處理器可需要在執行該算法之前收集多個數據樣本。其結果是,上述的數據傳輸過程可發生1000次,而微處理器收集足夠的數據樣本(例如,以檢索匹配或超過閾值的數量)以執行數據的處理。如果微處理器執行需要m個數據樣本的算法,則在成功地執行該算法之前,微處理器必須等待所述外圍設備以生成m個樣本(例如,其中m是具有大于零的值的整數)。該系統的問題在于:微處理器不能在數據收集期間保持睡眠(例如,對于收集m個樣本的整個持續時間,不能保持休眠模式,而不中斷)。一些系統可包括傳感器輪詢單元以在數據收集過程改進芯片的性能。例如,于2013年4月9日提交的、標題為“sensorpollingunitformicroprocessorintegration”的美國專利號8914551(其在此通過引用將其整體并入本文)描述了一種傳感器輪詢單元,其可以用于從傳感器收集數據。
在使微處理器在數據傳輸期間保持進入睡眠模式的系統中,從睡眠模式中斷微處理器以處理(或預處理)數據。如果微處理器執行足夠復雜性的算法,數據需要滿足其他某些條件。當滿足時,該“前提條件”(即,其他的條件)增加微處理器可以對數據成功執行算法并輸出有意義的結果的可能性。這些先決條件需要在收集閾值數量的數據樣本以外的處理,并進一步涉及數據樣本的內容。例如,前提條件可包括:數據的格式,驗證數據符合一項或多項標準,匯總數據為數據結構,對數據執行函數(例如,轉換數據和/或識別數據的狀態),錯誤檢查和/或校正時間完整性,和/或數據內容的其他處理。
一些系統不驗證數據符合前提條件;其他系統使用微處理器,以驗證數據滿足先決條件。在其中沒有先決條件驗證的系統中,微處理器對數據立即執行算法。如果前提條件不滿足以及微處理器不知道該問題(因為它不驗證先決條件),微處理器可以基于該算法產生錯誤輸出(例如,不正確或無意義的輸出)和/或誤差值(例如,硬件異常、軟件異常和/或中斷)。通過微處理器執行這種算法至少代表′錯誤開始′,因為微處理器對不符合前提條件的數據執行算法。在其它系統中,微處理器可以確定該數據是否滿足先決條件。當微處理器確定數據滿足先決條件,微處理器前進到對數據執行算法。當微處理器確定數據部滿足先決條件時,微處理器防止算法的執行。此外,微處理器可以指示數據通信接口在再次返回到睡眠模式之前收集其它數據樣本。在后一種情況下(即,該數據不符合先決條件),微處理器給定錯誤開始,因為它從睡眠模式中斷,而數據沒有達到先決條件。由于錯誤開始喚醒微處理器(即從睡眠模式中斷),并增加功耗,減少錯誤開始可顯著降低其中集成微處理器的微處理器和/或芯片(或板)的功耗。
解決上述挑戰(及其他)的方案在于從微處理器卸載數據采集和/或處理數據,以改進數據收集接口。在一些示例中,該改進的數據收集接口降低了其中集成微處理器的芯片的整體功耗(以及改進的數據收集接口)至少約2x的因子(例如,耗電量減少大約50%)。改進的數據收集接口可被實現為獨立的數據采集接口和/或片上系統(soc)。本公開內容提供應對這些挑戰的系統、方法和裝置,通過對數據采集接口的數據收集使用有效方法而從數據收集接口(和/或soc)的微處理器卸載數據收集。例如,一種改進的數據收集接口(接口)可從傳感器收集預定數量的傳感器值,并同時保持與接口的引腳上所選傳感器的單個通信會話活動;微處理器在單個通信會話的整個持續時間仍然處于睡眠模式(或其他非激活狀態)。此外,本公開內容提供應對這些挑戰的系統、方法和裝置,其通過對數據采集接口(和/或soc)從微處理器卸載數據處理,例如使用具有改進的功率使用特征的硬件。例如,改進的數據收集接口可以通過使用數據處理邏輯塊以在中斷微處理器(例如,預先處理數據)驗證數據滿足先決條件之前而減少錯誤開始的可能性。因為本文所公開的方法從微處理器卸載處理,微處理器可避免在gpt和spi觸發之間非常頻繁的切換(和去除對于gpt和spi的每個執行isr的需要)。此外,由于改進的數據收集接口的操作,微處理器和gpt可對于數據傳輸期間用于其他任務。
本說明書公開通過添加邏輯塊(和相關的定時器、狀態機和寄存器)對現有數據采集接口的改進,以在喚醒微處理器之前不僅卸載數據收集以及數據處理。在這種改進的系統中,在進入代表微處理器的接口采集和處理(例如,預處理)數據的整個持續時間的睡眠模式之前,微處理器可以編程數據收集接口的邏輯塊,定時器,狀態機,和寄存器。例如,當被執行時,邏輯塊對數據執行一個或多個函數(例如,錯誤檢查,傅立葉變換,數據平均,驗證數據的完整性,和/或其它處理),而不喚醒微處理器,并由此減少處理器和/或芯片的功耗。
圖1是示出用于處理從外圍設備接收的數據的系統100的框圖。該系統100包括芯片102,微處理器110,直接存儲器存取(dma)控制器112,存儲器114,數據總線116,一般項目定時器(gpt)118,數據通信接口(120,122,和124),和傳感器104,106a-b和108。芯片102(使用其中集成的組件)可操作以從外圍設備收集數據,其在這種情況下是傳感器104、106a-b和108。芯片102被嵌入電路以操作包括如下的組件的每個:微處理器110,dma控制器112,存儲器114,gpt118,以及數據通信接口(即,120,122,和124)。數據總線116可操作地彼此耦合部件。例如,數據總線116提供芯片的其它部件可提供進行電通信的電連接。數據通信接口包括三線串行外圍接口(spi)120,四線spi122,和跨集成電路(iic)124。每一個數據通信接口可耦合到任何數量的傳感器。而一個或多個傳感器106a-b示出作為兩個傳感器,這樣的傳感器可包括任意數量的傳感器,n(其中n是具有大于零的值的整數)。應當指出:術語“數據通信接口”和“接口”在本說明書中僅出于簡潔起見可互換使用。微處理器110可操作以執行指令(例如,軟件、代碼、算法、先決條件、標準,等)。例如,當中斷時,微處理器110可以從一個或多個數據集合接口檢索數據,并將其存儲在存儲器114中。在其他情況下(例如,當要傳送的數據超出閾值大小),則dma控制器112可以(經由一個或多個數據收集接口)從外圍設備傳送數據到存儲器114。存儲器114集成在芯片102上(例如,是片上存儲器),并可以存儲用于本文所述操作的數據。存儲器114可操作以存儲指令(例如,軟件,代碼,算法,先決條件標準,等),其被執行以執行活動和/或存儲在本公開描述的其它數據(例如,傳感器值,處理后的數據,等)。在一個示例中,存儲器114是非臨時性計算機可讀存儲介質。gpt118產生時鐘信號,用于由芯片102上集成的組件使用(例如,在定時通信中)。
芯片102可操作以從外圍設備收集數據,其在這種情況下是傳感器104,106a-b和108。芯片102可以利用微處理器110以配置一個或多個數據通信接口120,122和/或124,以從外圍設備中的至少一個接收預定數目的數據樣本。在這種配置后,微處理器110可進入睡眠模式,并同時數據通信接口收集預定數目的數據樣本,從而降低由微處理器110(以及由微處理器110使用的其它部件,諸如gtp118)所消耗的功率量。外圍設備可以通過引腳選擇性耦合到數據通信接口,這是用于與外圍設備通信(例如,插拔)。
每個數據通信接口由一個或多個引腳耦合至一個或多個傳感器。三線spi120由三個引腳104耦合到傳感器,包括串行時鐘(sclk)引腳、從出/從入(sosi)引腳,片選(cs)引腳。四線spi122由至少四個引腳耦合到一個或多個傳感器106a-b,包括串行時鐘(sclk)引腳、主出/從入(mosi)引腳,主入/從出(miso)引腳,以及一個或多個芯片選擇(cs)引腳cs1-csn(下面進一步討論)。iic124由兩個引腳耦合到傳感器108,包含串行數據(sda)引腳和串行時鐘(sclk)引腳。關于在接口和傳感器之間攜帶的信號,數據通信接口的引腳是單向(其中,方向在圖1的引腳的兩端由箭頭所指示)與攜帶關于信號或雙向(其中,方向在圖1的一端由箭頭所示)。在圖1中示出的示例中,所述數據通信接口處于與周邊設備的主從關系,其中數據通信接口是主機,和外圍設備是從機。注意,在數據通信接口是從機和外圍設備是主機的情況下,單向引腳的方向可以翻轉到相反方向。
轉到串行外設接口(spi)120和122,每個接口包括串行時鐘(sclk)引腳和一個或多個芯片選擇(cs)引腳。串行時鐘(sclk)引腳同步通過sclk周期傳輸并接收的數據。在一些實現方式中,在8個sclkp周期,字節(8位)被發送/接收(即,每個sclk周期1位)。在其它實現中,不同數目的位在每個sclk周期期間發射。sclk引腳配置為當spi處于主模式時為輸出,并當spi在從模式時作為輸入。sclk引腳用于從spi時鐘信號向所有連接的外圍設備(例如,傳感器)廣播。sclk是單向使用;方向取決于spi處于主或從模式。寄存器可存儲和控制在sclk引腳上發送的時鐘信號相關的相位和/或極性。cs引腳被spi使用以選擇連接的外圍設備之一。所述外圍設備和spi存儲邏輯電平,其對應于激活電平(例如,活性高或低有效)。在操作中,spi在對應的cs引腳上發送活動水平到所連接的外圍設備中的僅一個外圍設備(并且只有一個外圍設備將在相應的引腳cs上接收活動電平)。spi在其它的cs引腳上發送活動電平(其可對應于不發送信號)。在對應的cs引腳上發送活動電平的外圍設備是選擇的外圍設備,用于與接口的通信。在具體的例子中,當spi處于主模式時,cs引腳發送有效的低電平輸出信號。可替換地外,當spi在從模式時,通過在cs引腳上接收活動的低輸入信號,啟動轉移。當spi處于主模式,cs引腳可以在傳輸的開始自動設置和/或傳輸有效電平,并一旦轉移完成設置和/或傳輸活動電平。spi傳輸和接收8位數據,直到傳輸通過cs引腳解除斷言(即,活動信號被終止以及不在cs引腳上不發送)結束。當spi在從模式時,cs引腳總是輸入。在多個從機環境中,spi支持多個從機。當作為多個從機的主機操作時,spi可配置為使用選擇的外設寄存器而驅動多達n個數量的cs線(例如,cs1,cs2,cs3,...,csn)。選定的設備外圍寄存器識別外圍設備的哪一個(在這種情況下,傳感器)是由cs引腳所選的外圍設備。其他引腳(即,sclk,mosi和miso引腳)被所有的從外圍設備共享。還有一些覆蓋領域以使得軟件驅動活動cs引腳上的0或1,這可能是用于特殊用例。
轉到三線串行外圍接口(spi)120,cs引腳可操作耦合spi120和傳感器104。sosi引腳使能在spi120和傳感器104之間的雙向數據傳輸。
轉到四線串行外圍接口(spi)122,每個傳感器106a-b是由不同的cs引腳可操作地耦合到spi122(即,通過相應的cs引腳cs1-n之一)。,mosi引腳當spi122處于主模式時配置為輸出線,并當spi在從模式時作為輸入線122。在主(數據出)mosi線被連接到從設備(數據)mosi線。在某些實現中,數據被傳輸為字節寬(8位)的串行數據,和首先轉移最顯著位(msb)。mosi引腳使得從spi122到每個傳感器106a-b的單向傳輸數據。spi122廣播數據到傳感器106a-b(即,每個傳感器接收到相同的數據)。然而,可以所選外圍設備指定這些數據。miso引腳配置為當spi122處于主模式時為輸入線,并當spi122處于從模式作為輸出線。在主機(數據入)的miso線連接到從設備的miso線路(數據出)。在某些實現中,數據被傳輸為字節寬(8位)的串行數據,和首先轉移最顯著位(msb)。miso引腳允許從每個傳感器106a-b到spi122的單向數據傳輸。每個傳感器可操作以當選擇時在miso上傳輸。因此,只有所選擇的傳感器在miso引腳將信號發送到spi122。對于圖1中的spi120和122的每個,spi是主機,和傳感器是從機。在其他實現中,spi可操作為從機。
轉向內部集成電路(iic)124,iic124和傳感器108的每個可以是主機和從機(其中一個是主機,另一個是從機)之一。在操作中,主設備在sclk引腳上發送時鐘信號到從機,并在sda引腳上發送數據到從機。從機在sda引腳上回復主機的指令。該sda可雙向使用,無論哪個設備是主機或從機。sclk引腳從主機到從機單向使用。在sclk引腳的數據傳輸的特定方向可以改變,以適應作為主機的iic124或傳感器108(例如,基于哪個是主機改變的信號傳輸的方向)。因此,sclk在圖1中作為雙向說明。
芯片102在如下內運行,例如智能手機,自駕車,可穿戴設備(如智能手表,健身追蹤器,等等),網絡連接的設備(例如,觀光噪比(iot)設備,遠程可控燈泡,家庭自動化設備),其包括(或與之通信)多個傳感器,和/或低功率電子設備的設備。例如,智能手機可包括諸如加速度計和陀螺儀的傳感器。汽車(是否操作或自駕車)可包括這樣的傳感器,諸如壓力傳感器、全球定位系統(gps)傳感器、雷達和光傳感器(例如,攝像機,接近傳感器等)。芯片102可用于在醫療設置,由于監測外圍設備(其可以包括傳感器)生成數據的生命體征,包括例如,心臟速率,氧飽和度,溫度,運動,和類似物。芯片102可用于監視機器的“健康”(例如,制造設備,實驗室設備,等等)。在這樣的示例中,外圍設備可以包括測量機器的物理(或環境)的參數的傳感器,諸如例如機器的振動、機器的溫度和/或機器的功率特征(例如,根據現有的證據或數據的趨勢),來主動確定機器的性能何時變化(例如,提高還是下降)。
在圖1的任何數據采集接口可允許微處理器處于睡眠模式(從而減少由微控制器所消耗的功率),而由接口檢索和/或處理預定數量的傳感器值。此外,代替中斷(例如,喚醒)微處理器以執行信號處理,該數據集合接口可以在喚醒處理器之前執行邏輯塊(其包括用于執行信號處理的指令)。對數據收集接口卸載該處理通過允許微處理器盡可能保持不活動而減少由微處理器消耗的功率。功率節省(相對于喚醒微處理器)可來自由執行從存儲器中的指令的微處理器(例如,閃存,靜態隨機存取存儲器(sram))所消耗的功率,其在某些應用中是由微控制器消耗的約50%電源。
數據采集接口可以通過執行功能進行數據處理(由微處理器),包括(但不限于):驗證函數來檢查該日期滿足先決條件,變換函數用于將數據轉換為符合先決條件的形式,平均函數,錯誤檢測函數,閾值函數,傳感器狀態檢查函數,格式轉換函數(例如,從第一編碼到第二編碼的數據變換,從傳感器的數據包格式轉換數據到由算法可解釋的數據結構),過濾函數,掩蔽函數,峰值檢測,快速傅里葉變換(fft),離散傅立葉變換(dft),和/或數據預調整函數,用于準備數據通過要由微處理器執行的算法的進一步處理。數據收集接口可以對數據執行一個或多個函數,而微處理器處于睡眠模式。一旦處理由數據采集接口完成,數據采集接口可以中斷微處理器,以執行對數據的進一步處理(和/或對函數的輸出)。
圖2為根據本公開內容的一些實施例,在微處理器和外圍設備之間傳輸和/或處理數據的數據通信接口200的框圖。數據通信接口200是任何一種或多種的示例實施方式:三線串行外圍接口(spi)120,四線spi122和圖1的內部集成電路(iic)124。數據通信接口200(圖2的)包括一個或多個寄存器202,流控制邏輯塊204,狀態機206,先進先出傳輸緩沖器(發送fifo)/先入先出接收緩沖器(rxfifo的)212、中斷請求(irq)/直接存儲器存取(dma)發生器214、外部接口216。流控制塊240包括間隔計時器209。狀態機206包括一個或多個數據處理邏輯塊210和本地定時器208。
該數據通信接口200的組件協作以傳輸和/或處理從外圍設備接收到的數據。寄存器202指定數據通信接口200的配置(例如,工作模式)。在一些實現中,寄存器202是存儲器映射的寄存器。除其他事項外,基于寄存器202和流控制邏輯塊204,狀態機控制該數據通信接口200的操作。流控制邏輯塊204可操作地耦合到寄存器202和狀態機206。使用間隔定時器209,流控制邏輯塊204控制傳送的定時(例如,保持為等待間隔)。使用至少部分本地定時器208,狀態機206控制傳輸(例如,發送命令,接收數據,并從數據處理塊210處理輸出)。本地定時器208可操作來生成時鐘信號。此外,狀態機206產生并發送命令,用于控制外圍設備。狀態機206(和其中的每個組件)可操作地耦合到每個寄存器202時,流程控制模塊204,外部接口216,和tx/rxfifo212。tx/rxfifo212存儲經由外部接口216發送/接收的數據的緩沖器。tx/rxfifo212可操作地耦合到寄存器202,狀態機206,外部接口216以及irq/dma發生器214。irq/dma214產生器可操作以產生中斷請求220。中斷請求220(其可基于至少部分地基于寄存器202中的值產生)將中斷微處理器(例如,圖1的微處理器110)和/或中斷dma控制器(例如,圖1的dma控制器112)。irq/dma發生器214可操作地耦合到寄存器202,tx/rxfifo212,和一個或多個微處理器和dma控制器。外部接口216通過至少一個引腳224與外圍設備傳送(即,接收/或發射)信號而與外圍設備進行通信。外部接口216可操作地耦合到所述tx/rxfifo212、狀態機206和至少一個外圍設備。以下是的每個組件的進一步細節的描述。
該一個或多個寄存器202指定數據通信接口200的結構。寄存器202包括多個寄存器的。在操作中,在x位單元218中,數據傳送往返于一個或多個寄存器202。x可以是對應于字節的數字(例如,8位,16位,24位等)或可以是任何其它值(例如,1比特,2比特,3比特,等等)。微處理器可通過在一個或多個所述多個寄存器中設置值來配置接口200。數據通信接口200的每個組件可以在寄存器202內存儲一個或多個寄存器。例如,每一個如下可以具有在寄存器202中的相應寄存器:流控制邏輯塊204,間隔定時器209,狀態機206,本地定時器208,一個或多個數據處理邏輯塊210,txfifo/rxfifo212,irq/dma發生器214,和外部接口216。另外,任何寄存器可在組件之間共享組件。例如,一個以上的組成可以訪問相同的寄存器(并在其中存儲值)。示例性(非限制性)寄存器在數據通信接口200的每個組件的以下描述中描述。
狀態機206可操作來生成用于控制外圍設備的命令和/或啟動命令傳輸到外圍設備。例如,狀態機206產生用于傳輸到外圍設備的讀命令。讀命令指示外圍設備傳輸數據到數據通信接口200和/或使能接口從外圍設備檢索數據。狀態機206發送讀取命令到外圍設備。在傳輸完成后,該狀態機等待從流動控制邏輯塊204的指令(或指示)。一旦從流控制邏輯方框204接收提示(即,指令或指示),狀態機206通過利用外部接口216恢復數據檢索,以在引腳224上接收和/或檢索來自所述外圍設備的數據。該狀態機206可以(例如,從寄存器202中的狀態機寄存器)檢索對應于數據通信接口200的操作模式的值,并基于對應于操作模式的值而控制其它部件的操作。對于操作模式存儲(在寄存器中)值標識選定的操作的模式。在操作中,基于運行模式,狀態機206控制(例如,使用本地定時器)本身和外圍設備之間的數據轉移。
流控制邏輯方框204至少部分定時該數據通信接口200的操作。流控制邏輯塊204可檢索(例如,從寄存器202中的狀態機寄存器)對應于數據通信接口200的值,并基于對應于操作模式的值而定時其上其它組件的操作。在操作中,基于運行模式,流控制邏輯方框204定時(例如,使用間隔計時器)本身和外圍設備之間的數據轉移。如上面所討論的,狀態機206產生讀命令并且發送到外圍設備,用于從所述外圍設備發起傳輸數據。在啟動數據傳輸之后,狀態機206向流控制邏輯塊204轉移操作的控制。在執行進一步的操作之前,狀態機對流控制邏輯塊204保持(例如,通過執行線程監聽事件)。流控制邏輯塊204基于從寄存器檢索的至少一個值(例如,工作模式的值)和至少一種觸發狀況(例如,對應于操作模式的觸發)的檢測而產生指令。例如,一旦由流控制邏輯塊204檢測到觸發條件,流程控制邏輯塊204向狀態機206發送指令(例如,指示或事件對象)。指令(例如,指示或事件對象)導致狀態機206恢復從所述外圍設備中讀取數據。
正如以上所述,流控制邏輯塊204可檢索來自狀態機寄存器的至少一個值(例如,存儲在寄存器202)。狀態機寄存器可以實現為一個或多個寄存器位置(例如,每一個都具有存儲器中的指定位置),其采用多個值之一,每個對應于數據通信接口的操作模式200的不同執行(或與之有關聯的狀態)。工作模式包括例如:中斷模式(例如,在定時器模式或中斷請求模式執行),主/從模式(例如,指定接口200是否主機或從機,其中主控制通信和從機回應來自主的提示),傳輸啟動模式(例如,規定啟動rx傳輸(接收數據)或啟動tx傳輸(傳輸數據)的條件)和/或連續傳輸模式(例如,指定樣本的預定數目應是否在dcics200的單個幀轉移)。作為實施狀態機寄存器的進一步說明,該寄存器可以包括在存儲單元中存儲的主/從模式寄存器(例如,地址0x9fff:000f),存儲第一值(例如,零)來指定數據通信接口200是主機或第二值(例如,一)來指定數據通信接口200是從機。除了存儲對應于操作模式的數據,該狀態機寄存器可存儲在選定的業務操作模式的其他值。這樣的其他值可包括例如與間隔定時器209相關聯的等待時間(例如,在基于定時器的模式中使用),引腳的標識符,有效電平的標識符(例如,在中斷模式中使用),預定數值(例如,在連續傳輸模式中使用)。等待時間是流控制邏輯塊204指示狀態機206來檢索從外圍設備輸出的新數據的時間間隔。在一些實施方式中,間隔定時器209是定時寄存器中存儲的實際經過的時間間隔(以秒、分、時鐘周期等等測得),用于結合本地定時器208以確定等待間隔(例如,多個本地定時器208)是否已相對于數據的最近傳輸逝去(例如,相對于來自外圍設備的最后讀命令或最后接收數據)。等待時間間隔可以存儲在等待間隔(wait_tmr)寄存器。在本地定時器208的每個增量,spi比較實際經過的等待間隔和時間間隔(例如,使用存儲在所述定時器寄存器和wait_tmr寄存器中的值)來確定等待間隔是否已經過去。引腳的標識符標識流控制邏輯204響應有效電平的引腳(例如,標識其上流控制邏輯塊204通過接收引腳上的有效電平而檢測中斷的引腳)。有效電平的標識符對應于信號電平(例如,電壓電平),這定義了引腳的活動狀態。例如,高壓電平(相對于地信號的電壓,諸如超過地信號的任何電壓)可以對應于引腳的活動電平(′活動高′設置)。可替代地,低電壓電平(相對于地信號的電壓,如等于接地信號)可對應于所述引腳的活動電平(′活動低′設置)。
數據通信接口200可以結合工作模式。例如,當數據通信接口200是主機時,該數據通信接口200可通過只允許基于定時器的模式而結合中斷模式和主/從模式(和/或當它是從機時,禁止基于定時器的模式)。通過在連續傳輸模式下運行并同時處于定時器或中斷方式,數據通信接口200可結合中斷傳輸模式和連續轉移模式。其他組合盡管在本公開內容的范圍,這里不列舉僅出于簡明的目的。結合工作模式的能力使得(組合)的工作模式的產生,其用于捕捉詳細狀態。
模式運算值(例如,在狀態機206的寄存器中)對應于數據通信接口200的操作狀態。因此,狀態機206執行操作指令,其對應于存儲在寄存器中活動模式操作的值。通過改變狀態機206的狀態,對工作模式值的任何變化可引起數據通信接口200的操作模式的改變。狀態機206可利用存儲在狀態機寄存器中的其他值,來操作數據通信接口200的子流程,諸如檢測觸發條件的參數。例如,通過檢測滿足由該寄存器中的操作模式值設置條件的一個或多個事件,狀態機206可利用流控制邏輯塊204以檢測觸發條件。一旦檢測觸發條件,則流控制邏輯塊204可操作以導致所述狀態機從選定的外圍設備接收(通過tx/rxfifo212)預定數量的值。例如,當定時器模式(即操作模式)中,流控制邏輯塊204(由狀態機206轉移控制權后)可以使用等待時間,以確定是否經過的時間(例如,由于一個讀生成命令)達到或超過了等待時間間隔(即,觸發條件相應于定時器模式)。當流控制邏輯塊204檢測到經過時間滿足或超過了等待時間(即,檢測到觸發條件)時,它向狀態機206發送指令,這會導致狀態機206恢復從所選外圍設備讀取數據(例如,對應于預定數量的值的數據)。當流控制邏輯塊204檢測到經過時間既不滿足也不超過等待時間(即,未檢測到觸發條件)時,它不傳輸指令給狀態機206。可替代地,在中斷模式中,流控制邏輯塊204通過檢測至少一個引腳上的活動功率電平(例如,至少一個引腳被耦合到所選擇的外圍設備和/或通用輸入/輸出(gpio)引腳)而檢測到觸發條件。預定數目的值用于識別數據通信接口200不應該接收的值的數目(在tx/rxfifo212),并同時保持在引腳上所選外圍設備的單個通信會話用于與所選外圍設備的通信。在一些實施例中,基于微處理器對值執行算法所需要的值的數量,微處理器設定預定數量的值(例如,通過在寄存器中存儲它)。對于串行外設接口(spi)(即,無論是三或四引腳),保持單個通信會話活動可對應于保持芯片選擇引腳在活動電平(即,芯片選擇對應于選擇的傳感器)。例如,圖3a-c,4,和5示出對spi系統的引腳發送的信號的示例。
圖2的本地定時器208位于狀態機206。本地定時器208可操作以在特別頻率產生時鐘信號。當數據通信接口200處于主模式下,存儲在本地時鐘寄存器(在寄存器202)的一個或多個時鐘值至少部分定義本地定時器208產生時鐘周期的頻率。本地時鐘寄存器可直接存儲頻率值或對應于頻率值的識別符(例如,引用存儲頻率值的存儲器位置)。可替換地,本地時鐘寄存器可存儲一個或多個值(例如,由本地計時器208)以確定頻率。例如,本地時鐘寄存器可存儲對應于gpt的最近工作頻率的主時鐘(pclk)值(例如,gpt110),以及用于相對于gpt選擇性地調節局部定時器208的工作頻率的因子(′div′因子)。在這樣的例子中,本地時鐘208的頻率“f”可以由公式確定:f=pclk/[2×(1+div)。當數據通信接口200是在從模式下,本地時鐘寄存器將配置具有期望輸入時鐘頻率的相位和極性配置。在主機和從機模式下,數據在sclk信號的一個邊緣傳輸并在另一個采樣。因此,重要的是該極性和相位對于主機和從機同樣構造。
一個或多個數據處理邏輯塊210位于狀態機206。每個數據塊處理邏輯可以全部或部分被實現為硬件作為固定功能邏輯塊(例如,包括邏輯門,觸發器等)或可編程邏輯塊。數據處理邏輯塊對于由外部接口216從外圍設備檢索的數據進行操作。數據處理邏輯塊包括指令,在執行時,收集數據和/或處理數據(如進行身份驗證,驗證,或產生數據輸出)。每個數據處理邏輯塊可產生處理數據,例如認證、驗證或修改數據。例如,該數據處理邏輯可接收一個或多個值作為輸入,和從輸入生成輸出(即,處理數據)。在認證和/或驗證的例子中,處理數據可以是布爾值,指示輸入是否符合在數據處理邏輯塊中限定的標準。在這樣的例子中,輸入可以包括在輸出(即,處理數據可包括驗證的原始數據的未經編輯拷貝)中。在修改數據的例子中,處理數據可是執行函數的結果,其修改輸入(例如,從輸入刪除去除不符合標準的任何值)和/或生成與輸入相關聯的元數據(例如,從輸入計算至少一個統計量)。一個或多個數據處理邏輯塊210的每一個位于狀態機206中。一旦收集或處理完成,每個數據收集邏輯塊210可向狀態機傳輸完成的指示和/或處理數據。一旦接收指示和/或處理數據,狀態機206可由接口200的組件和/或接口200外部的組件,觸發進一步操作(例如,諸如微處理器或dma控制器)以收集處理后的數據。
一個或多個數據處理邏輯塊210的每個可操作以對從外圍設備檢索的值執行至少一個函數。例如,數據處理邏輯塊可以訪問存儲標準值的寄存器,并執行比較器以比較標準值和從外圍設備檢索的一個或多個值(或從檢索值導出的其他值)。在數據采集的例子,標準值可是收集的多個值,和比較器可以比較收集的值的數量和收集值的實際數量。在數據處理的例子中,該標準值可以是目標值,和比較器可比較目標值和從一個或多個從外圍設備檢索的值。其它示例性功能如下所述。
用于數據收集的數據處理邏輯塊可以由數據采集接口200利用,以收集預定數目的值。在一些實施方式中,微處理器設置寄存器值,其指示接口200執行用于數據收集(和/或定義預定數的寄存器值)的數據處理邏輯塊。微處理器可以在其中接口200收集數據的持續時間休眠。微處理器對接口200卸載與執行數據處理邏輯塊相關聯的過程。實際上,微處理器向接口200卸載收集數據和操作計時器(這是需要時間來傳送數據)。因為接口200208包括本地定時器,該接口可以定時在數據收集之間的間隔,而無需gpt計時器活動。因為接口200包括時間間隔計時器209,接口可定時數據接收之間的等待時間間隔,而不需要gpt計時器是活動的。當地定時器208和間隔定時器209獨立于和微處理器相關聯的gpt。因此,gpt和微處理器可保持在睡眠模式(并且由此降低功耗),或可用于執行其他過程(從而提高運行效率)。
用于數據處理的數據處理邏輯塊可以由數據采集接口200用于(即,從外圍設備接收到的數據)執行對輸入數據的函數。函數包括(而不限于)以下任何一項:平均函數,數據完整性函數,閾值函數,驗證函數,狀態檢測函數,格式轉換函數,過濾函數,屏蔽函數,峰值檢測函數,傅立葉通過算法變換的快速傅立葉變換(fft),數據預調整函數,即準備數據由微處理器執行用于進一步處理,和/或任何其他函數或它們的組合。示例性數據處理邏輯塊執行驗證函數驗證滿足先決條件即數據(例如,基于算法設定的先決條件)。示例性數據處理邏輯塊執行格式轉換功能,從第一數據到第二編碼方式進行編碼。例如,格式轉換功能可以轉換數據,以滿足先決條件和/或從傳感器的包數據格式到由算法結構可解釋的形式變換數據。執行傅立葉變換的示例性數據處理邏輯塊可以執行:快速傅立葉變換(fft),離散傅立葉變換(dft),或者任何其他傅立葉變換。
執行閾值功能的示例性數據處理邏輯塊進行比較數據(例如,多個傳感器值的每一個)和閾值(例如,存儲在閾值寄存器)。基于數據是否大于、小于和/或等于閾值,示例性數據處理邏輯塊可包括不同的指令集。在一些現有的系統中,微處理器被加電(例如,從睡眠模式中斷)來執行閾值函數。在這樣的系統中,微處理器可以喚醒以檢查從外圍設備接收到的每個樣本,并作為結果,計算消耗的顯著資源。因為數據采集接口200實現在邏輯塊中的閾值函數,微處理器避免信號與閾值函數相關的資源,并由此降低(例如,相對于現有的這種系統)由微處理器消耗的功率。在中斷微處理器之前,接口200比較數據和閾值。使用邏輯塊,當數據符合與微處理器(例如,由微處理器設定)有關的閾值標準,接口200可以僅中斷微處理器。在一些實施例中,進行閾值功能(代替微處理器的)的接口200可以防止錯誤的開始,并節省10-20倍的功率。
執行平均函數的示例性數據處理邏輯塊計算一組值的平均值,并輸出該平均值。平均功能可被執行一次(例如,按需)和/或可以被重復執行的(例如,在每x數目的樣本之后,產生運行的平均數)。在其他示例中,所述平均函數被用于生成修正值,其解決傳感器讀取的輕微差異(例如,以校正傳感器的校準問題)。
執行數據完整性函數的示例性數據處理邏輯塊確定是否含有最新檢測到的錯誤。例如,數據完整性函數可是錯誤檢測函數。在這樣的例子中,數據包括一個或多個錯誤檢查位。數據完整性功能對一個或多個差錯檢驗位進行操作的,以驗證所收到的分組沒有錯誤。基于數據是否包含錯誤,示例性數據處理邏輯塊可包括不同的指令集用于執行。例如,當它確定該數據包含錯誤,接口200可丟棄數據,并請求從數據源的另一傳輸。如果在數據中檢測到沒有錯誤,則接口200可以將數據傳送到另一邏輯塊和/或中斷微處理器。在從接口200向微處理器傳輸數據之前,邏輯塊檢查檢測數據是否包含錯誤。在中斷微處理器之前,接口200檢測(使用邏輯塊)數據錯誤。使用該邏輯塊,接口200可以僅當數據沒有檢測的錯誤時中斷微處理器。因為微處理器僅當沒有檢測到錯誤中斷,則接口200防止微處理器的錯誤開始執行算法,并由此,改善微處理器的功率效率。
執行狀態檢查函數的示例性的數據處理邏輯塊驗證外圍設備的狀態。例如,狀態檢查功能比較狀態值(例如,從外圍設備接收)到可接受的狀態值(例如,存儲在寄存器中)。當它被判斷為狀態值等于可接受的狀態值,則狀態檢查功能可產生指示(例如,布爾值,真實,等):該外圍設備具有可接受的狀態。當它被判斷為狀態值不等于所述容許值的狀態時,狀態檢查功能可產生指示(例如,布爾值,假的,等):該外圍設備不具有可接受的狀態。在外圍設備是傳感器的實現中,狀態檢查功能可以從耦合到所述傳感器的專用線檢索狀態值。專用線路可是耦合在傳感器用來觸發接口200內中斷接口200之間的電引腳或接觸,使得接口200駐于的芯片可以檢索數據。可替代地,并非等待中斷,接口200可以從傳感器的寄存器主動地讀取狀態值,以確定是否有新的傳感器數據可用。在這樣的示例中,狀態值可采用一個值,指示所述傳感器是否正常工作(例如,“無錯誤操作”,“有錯誤操作”,“沒有信號”和/或沒有信號),該傳感器是否生成新的傳感器值(例如,“新的數據可用”或“沒有新的數據可用”),以及/或它們的組合。接口200裝載寄存器值以解釋這樣的狀態值,因此可以區分“狀態檢查數據”與“樣本數據”。在傳統系統中,微處理器可以不斷地檢查“狀態檢查數據”,以確定何時繼續讀取樣本數據,這就需要微處理器清醒(即,不是在睡眠模式)并消耗功率。使用本文描述的狀態檢查功能,微處理器可保持在睡眠模式(或其他執行過程),而接口200檢查該狀態值。
在tx/rxfifo212內,txfifo存儲發送出數據采集接口200的數據,和rxfifo存儲由接口200從外部設備接收的數據。在數據傳輸期間,接口200從txfifo數據發送。txfifo可以經由寄存器202填充。在某些實現中,微處理器或dma控制器經由寄存器寫入數據到txfifo。從txfifo一次一個比特輸出數據。當在rxfifo接收數據時,微處理器或dma控制器可以從rxfifo檢索數據,并將其轉移到另一個存儲器元件(微處理器可訪問的存儲器、芯片上存儲器和/或sram)。rxfifo和/或txfifo可包括多個存儲器位置;當一個存儲單元已滿,則fifo翻轉到下一個可用的存儲器位置。
至少部分地基于irq/dma寄存器,該irq/dma產生器214可操作以產生中斷請求220。該irq/dma寄存器存儲中斷傳送到的組件的值的標識。例如,第一值可以對應于微處理器,和第二值可以對應于dma控制器。因此,在irq/dma寄存器中存儲的值(即,第一或第二)標識哪個微處理器和dma控制器將被中斷。
外部接口216包括至少一個引腳224,其用于將數據通信接口200耦合到至少一個外圍設備。外部接口216是用于通過與外圍設備傳送(接收和/或發射)信號而與外圍設備進行通信。所述至少一個引腳224包括可以在本文中公開的任何引腳配置(例如,關于圖1的任何數據通信接口120,122,以及124所描述的和/或相對于圖3a-3c,4和5所述的三和四針配置)和其他引腳配置。基于哪個cs引腳對應于在所選擇的外圍設備寄存器中識別的外圍設備寄存器,外部接口216可以在cs引腳上傳輸活動信號。選定的外圍設備寄存器存儲值(例如,由cs引腳),識別哪個外圍設備是所選擇的外圍設備。在傳感器的例子中,所選擇的外圍設備寄存器是可存儲值的傳感器寄存器,識別一個或多個傳感器的哪個是用于在對應引腳上通信的選擇傳感器。
在圖2的例子中,該數據通信接口200具有內置的定時器(即,本地計時器208和間隔計時器209)用于定時數據傳輸和等待間隔。在數據傳輸的開始,在數據采集之間所需的定時間隔存儲在一個或多個寄存器控制定時器。例如,在微處理器在定時器模式配置接口200之后,微處理器進入睡眠模式。雖然微處理器處于睡眠模式,接口200使用間隔定時器209和/或本地計時器208定時自身,和周期性數據接收,直到整個數據傳輸完成(例如,直到樣本的預定數目的累計)。因為事件由接口200自定時,從接口200到片上存儲器的數據傳送可發生,例如使用dma控制器。至少部分基于定時其自己傳輸的接口200,微處理器可以完全避免啟動突發傳輸,和在一般項目的目的定時器(gpt)的中斷服務程序(isr)和接口200的isr之間的切換。如果系統需要更多的處理(例如,在電力費用),微處理器和gpt可用于其它任務,而接口200傳輸數據。數據通信接口200的一些實施都部分或全部包括在片上系統(soc)包。只有接口200供電具有若干本地存儲器,在接口200中捆綁所有功能的作用是功率幅度減少的命令,而共同芯片或soc上的其它組分掉電(在和接口200相同芯片上的其它組件)。此外,微處理器不執行兩組isr(即,不執行gpt的一組isr和接口的另一組isr),并且僅執行單個組的isr(即,僅執行接口200的isr)。因為接口200可以定時其自己的轉移(和等待間隔),gpt保持無效(例如,在睡眠模式)和gpt的isr不由微處理器執行。
下面在四針串行外設接口的實施例(spi)的環境中(即,圖200的該數據通信接口200的具體實施例)描述圖3a、3b和3c。在本實施例中,四針spi實現配置寄存器(例如,類似于接口200的寄存器202),其用于啟動傳輸,中斷spi(例如,基于rx或txfifo的下溢或溢出)和/或用于控制spi的動作(即,由流控制邏輯塊)。
配置寄存器控制其中啟動spi傳輸的方式。主模式使能(masen)位標識spi是否處于主模式或從模式(例如,主/從模式寄存器的實施方式)。例如,當masen位是零時,spi是從機;當masen位是0時,spi是主機。中斷模式(tim)位標識spi的傳輸和中斷模式(即,其中發起spi串行傳輸的方式)。設置tim位將spi置于傳輸(tx)啟動轉移模式。清除tim將spi置于接收(rx)啟動轉移模式。當設置tim位(例如,設置為第一值,諸如一)時,寫入到txfifo發起傳輸(即,從tx寄存器到外圍設備)。當轉移的字節數量等于在irq模式(irqmode)中存儲的值(例如,二進制形式)加上1時,轉移被中斷(即,當傳輸的字節數量=irqmode+1,中斷)。當tim位被清除(例如,設置為第二值,諸如零),從rxfifo的讀取啟動傳輸(即,從外圍設備到rx寄存器)。讀取必須完成,而spi處于閑置狀態。在主動轉移期間執行的讀取將不會啟動另一個傳輸。tim位至少部分控制spi是否處于傳輸(tx)啟動傳輸模式或接收(rx)啟動傳輸模式。
在tx啟動的傳輸模式下,只要第一字節寫入txfifo,spi開始傳輸數據。第一字節的spi傳輸立即發生。該spi采用連續發送使能(con)位,以確定傳輸額外的數據是否超出第一字節。該con位標識spi是否處于連續傳輸模式。當啟用連續傳輸模式(例如,con位被設置為一)和中斷使能模式(例如,tim位被設置為一),從txfifo的spi傳輸數據,直到任一:(1)指定的字節數已被轉移(例如,在傳輸字節計數(cnt)寄存器中指明字節數),或(2)在未指定字節數(例如,在cnt寄存器被設置為零)的情況下,在txfifo沒有有效的數據(例如,有效的數據是尚未傳送的數據)。在本實施例中,cnt寄存器標識字節數。在其他實施例中,cnt寄存器可識別在測量數據的任何單位的數據(例如,位,字節,或其倍數,諸如千、兆、千兆等)。cs引腳有效(即,活動信號在cs引腳上傳輸),并在每個8位(1字節)串行傳輸的完成時間保持活動(例如,當傳輸每個傳輸之間,周期重復)。因此,單個spi幀(即,單個通信會話)包括從多個8位串行傳輸所收集的數據。cs引腳上的活動信號保持選定傳感器的單個通信會話用于從txfifo傳輸的持續時間(即,從傳送開始直到傳輸結束)。
在rx發起傳輸模式中,通過rxfifo模式讀取的發起傳輸的大小取決于irq(irqmode)位。如上述討論的,在spi被中斷之前,irq模式(irqmode)位指定要傳送的字節數量(例如,在二進制形式)減一。因此,要傳送的字節數目是irqmode+1。例如,當irqmode被設定為7(即,111的二進制值),并讀出到rxfifo發生時,spi主機發起8字節傳輸,其后中斷spi。當啟用連續傳輸模式(例如,con位被設置為一)和中斷模式位被禁用(例如,tim位被設為零,或清除),該spi繼續數據傳送,直到rxfifo已滿。cs引腳被斷言并重復的8位串行傳輸期間保持斷言,直到rxfifo已滿(例如,傳輸重復具有每個傳輸重復之間的轉移)。再次,單個spi幀包括從多個8位串行傳輸所收集的數據。在到rxfifo的傳輸持續時間,cs引腳上的活動信號保持與選定傳感器的單個通信會話(即,從傳送開始直到rxfifo已滿)。如果con位被設置,8個字節傳輸反復發生,與字節之間的cs引腳沒有去斷言(即,活動信號被終止,并不在cs引腳上發送)。如果con位清零,8個字節將發生具有轉移之間的拖延期間,cs引腳去斷言。然而,在連續模式下,如果cnt寄存器的值設置為大于0,表示斷言將是持續整個畫面cs引腳。
表1(如下)列出了示例性的二進制值和基于二進制值由spi采取的相應操作。
表1:在數據發送(tx)或數據接收(rx)期間,示例性的二進制值和由spi(基于值)采取的動作。
無論處于rx或tx發起傳輸模式(例如,基于tim位),該spi使用幀繼續(framecont)位,以識別唯一spi幀是否在spi幀中包括多個字節。當framecont位被清除(即,設置為零),并cnt位被置>0時,spi將僅發送僅傳送一幀數據(例如,從txfifo傳輸或加入到rxfifo),沒有更多的幀。在這樣的情況下,一幀包含指定數量的的字節數(例如,在cnt寄存器中指定字節數)。當framecont位被設置(即,被設定為一),多個幀被傳送,以及每個幀包含指定數量的字節。轉移將持續到(和/或結束時)txfifo中不再包含活動數據,或者直到rxfifo已滿。當fifo無數據/空間(即,分別為溢或下溢)時,轉移拖延,直到傳輸數據/空間可用。該spi通過不打卡串行時鐘(例如,在sclk引腳上不發送時鐘信號)拖延,直到數據/空間可用。
當連續傳輸模式被禁用(例如,con位被設置為零)時,每個spi幀包括從單個8位串行傳輸所收集的數據。如果數據超過8位,則多個轉移發生具有每個轉移之間的拖延周期。cs引腳在停止周期切換到非活動信號。因此,每個spi幀只包括來自8位串行傳輸所收集的數據。當連續傳送模式被禁用(例如,con位被設置為零)并中斷使能模式(例如,tim位設置為一)時,該spi發起新的轉移,直到沒有有效的數據在txfifo可用。當連續傳送模式被禁用(例如,con位被設置為0)和中斷模式被禁用(例如,tim位被設置為0)時,spi發起新的傳送,直到rxfifo為空。
配置寄存器控制在spi中本地時鐘的相位和極性。串行模式時鐘相位(cpha)位標識本地時鐘的相位。當cpha位被設置為第一值(例如,一),本地時鐘在每一個串行位傳輸的開始脈沖。當cpha位被設置為第二值(例如,零),本地時鐘在每一個串行位傳輸結束脈沖。串行時鐘極性(cpol)位標識本地時鐘的極性。當cpol位被設置為第一值(例如,零)時,本地時鐘空閑低(以及高電平有效)。當cpol位被設置為第二值(例如,一),本地時鐘空閑高(以及活動低電平)。spi可與所選擇的外圍設備同步極性和相位(例如,通過與外圍設備從機發送和/或接收相位和極性值,或設定從機的極性和相位以匹配spi)。
寄存器的配置控制spi對于rxfifo的溢出是否中斷。在圖3a,3b和3c的實施中,spi同時接收數據,并在數據傳輸過程中發送數據。因此,在數據傳輸(即,從txfifo發送數據)期間,spi也在rxfifo接收數據并將其存儲。當在rxfifo中沒有空間以存儲輸入數據而不覆蓋從rxfifo中讀出的現有數據時,數據溢出發生。例如,如果接收的數據不從rxfifo讀取(和/或rxfifo已滿),數據溢出rxfifo,作為結果,在spi內產生溢出中斷。rxfifo刷新使能(rflush)位用于啟動刷新(例如,重設、忽略或以其他方式擦除)從接收(rx)fifo的數據。當rflush位被設置(例如,設置成第一值,例如一),該spi啟動清除rxfifo。當rflush位被設置,所有接收的數據被忽略,并且基于rxfifo的溢出不產生中斷。當rflush位被清除(例如,被設定為第二值,如零)時,spi禁用清除rxfifo。rxfifo刷新使能(rflush)位可以設置以防止保存到rxfifo,因此防止rxfifo溢出,因為數據被刷新(例如,在接收數據被有意忽略和/或由spi執行的代碼不讀取rxfifo的情況下)。另外,當spi從rxfifo讀取至少一部分的接收數據時,rflush位清零,以允許數據溢出rxfifo。在這種情況下,中斷(由于rxfifo溢出)可以禁用,即使在當接收數據溢出rxfifo(例如,在spi故意忽略溢出條件和/或由spi執行的代碼不響應溢出條件的情況下),通過清除配置寄存器中的rx中斷使能(rxovr)位溢出。該rxovr位至少部分控制spi是否被rxfifo溢出中斷。在rxfifo溢出的情況下,將rxovr比特設置為第一值(例如,零)禁用rx-溢出中斷并防止spi中斷微處理器。當rxfifo溢出時,將rxovr位設置為第二值(例如,一)允許接收溢出中斷和spi中斷微處理器。
配置寄存器控制spi是否對于txfifo的下溢中斷。在圖3a,3b和3c的實施中,spi同時接收數據,并在接收數據期間發送數據。因此,在接收數據(即,在rxfifo中存儲接收的數據)時,spi也從txfifo轉移數據。當傳輸的數據在從txfifo的數據傳輸期間沒有寫入到txfifo時,數據出現下溢。如果新的數據(更換已經傳輸的數據)不寫入txfifo,由spi產生下溢中斷。txfifo刷新使能(tflush)位用于啟動從傳輸(tx)fifo(例如,重設,忽略或否則刪除)刷新數據。當tflush位被設置(例如,設置成第一值,例如一),該spi啟動清除txfifo。當tflush位被清除(例如,被設定為第二值,如零)時,spi禁用清除txfifo。該tflush位可設置以防止txfifo的下溢,由于在txfifo中的數據被刷新(例如,在沒有數據發送和/或由spi執行的代碼不傳輸數據的情況下)。當下溢條件在txfifo存在時,設置的該tflush位防止中斷spi。另外,tflush位清零,以允許在spi發送至少某些從txfifo中的數據的情況下txfifo的下溢。在這種情況下,中斷(由于txfifo下溢)可被禁用,即使在當下溢存在用于txfifo中(例如,在spi故意忽略下溢條件和/或凡由spi執行的代碼不響應下溢條件的情況下),通過在配置寄存器中清除tx下溢中斷使能(txundr)位。所述txundr位至少部分控制spi是否產生用于發送fifo下溢的中斷。將txundr比特設置為第一值(例如,零)禁用tx-下溢中斷并防止由txfifo中斷的微處理器下溢。將txundr位設置為第二值(例如,一)啟用tx下溢中斷,并且微處理器被txfifo下溢中斷。
配置寄存器包括流控制寄存器,用于控制spi的操作。在圖3a,3b和3c的實施中,spi的配置寄存器支持(在其它操作模式中)中斷模式(即,配置以設置在定時器模式或中斷請求模式)和主/從模式(即,被配置以設置為從機的主機)。另外,配置寄存器存儲其他值,包括相關于間隔定時器的等待間隔(例如,用于定時器模式),引腳的標識符(即,活動電平引起spi的中斷的引腳),讀數據突發尺寸(rdburstsz)寄存器,寄存器cnt和傳輸字節計數(txbytes)寄存器。rdburstsz寄存器標識在從從機接收的單脈沖串中接收的數據量(例如,字節數,比特數,多個數據樣本等),在等待流控制邏輯塊之前(例如,由等待時間拖延的時鐘信號)。在從機外圍設備讀取數據之前,該傳輸字節數(txbytes)寄存器確定了傳輸的多個字節。在圖3a-3c的實施方式中,這種電阻存儲發送的字節數-1(即,由于字節數從0開始)。這包括所有需要被發送到從機的字節數(例如,命令字節和地址字節,如果需要的話)。
中斷模式寄存器設置為定時器模式。該spi包括在當地時鐘速率定時的16位定時器(即,間隔定時器)以引入等待狀態,并讀取數據。當在計時器模式下,spi中的流控制邏輯塊使用等待時間,以確定經過時間(例如,自從產生了最后的讀命令或自從從外圍設備最后讀取數據)是否達到或超過了等待時間(即,對應于定時器模式的觸發條件)。spi等待,直到等待間隔在間隔計時器結束,以及在等待時間到期時,spi讀取由rdburstsz寄存器指定的字節數(即,rdburstsz+1的字節數,因為字節數開始在0)。例如,當spi中的流控制邏輯塊檢測到經過的時間滿足或超過了等待時間(即,檢測到觸發條件)時,它發送指令到spi中的狀態機,這會導致狀態機恢復讀取傳輸。在讀取字節的指定數量后,spi進入進入等待狀態,同時重新啟動間隔定時器。該spi再等待,直到間隔定時器繼續接收數據屆滿。這個過程不斷重復,直到接收的字節總數等于由cnt寄存器指定的值。
中斷模式寄存器被設置為中斷模式。在中斷模式下,當它檢測到通過存儲在配置寄存器中的識別符識別的引腳上發送的活動電平時,spi被中斷。在圖3a,3b和3c的實施方式中,標識符識別spi的miso引腳(連接spi到從外圍設備)或rdy引腳(其連接spi到一個或多個通用輸入/輸出設備輸出端口(gpio))。在spi中的流控制邏輯塊通過檢測由所述標識符標識的引腳上的活動電平而檢測觸發條件。當標識符標識miso腳時,spi等待(保持在等待模式),直到它檢測到miso引腳上的活動電平。當spi檢測到miso引腳上從無效電平到激活電平的轉換(即,檢測對應于中斷模式的觸發條件)時,spi讀取由rdburstsz寄存器指定(從由miso引腳連接的從外圍設備)的字節數量(即,rdburstsz+1的字節數)。在從從屬外圍設備讀取數據后,spi可以返到進入等待狀態,直到它再次檢測miso引腳上的活動電平。該過程重復直到spi從從屬外圍接收等于由該cnt寄存器指定的值的字節數。可替代地,當該標識符識別rdy引腳時,spi等待(在等待模式存放)直到它檢測到rdy引腳上的活動電平。當spi檢測到rdy引腳上從無效電平到激活電平的轉換(即,檢測對應于中斷模式的觸發條件)時,spi讀取(從由rdy引腳連接的從gpio設備)rdburstsz寄存器指定的字節數量(即,rdburstsz+1的字節數)。在從gpio從屬設備讀取數據后,spi返回進入等待狀態,直到它再一次檢測到rdy引腳上的活動電平。這個過程重復進行,直到spi從從gpio設備接收等于由該cnt寄存器指定的值的字節數。
在一些實施方式中,由cnt寄存器指定的值是rdburstsz的整數倍+1(即,無論spi是否處于基于間隔定時器的定時器模式,基于miso引腳的中斷模式,和/或基于miso引腳的中斷模式)。這使能spi在每次迭代讀取相同量的數據(即,rdburstsz+1)并產生數據的最終(總)量為rdburstsz+1的整數倍。
圖3a-3c,圖4和5示出根據本公開的實施例,在單個通信會話期間由流控制邏輯塊控制的數據傳輸中在串行外設接口(spi)引腳上產生的信號。數據在spi(這是上文廣泛描述)和外圍設備之間傳輸。spi是主機和外圍設備是從機。在每一個圖中,信號在單個spi幀中轉移(即,單個通信會話),并示出具有相對于時間軸的定時。每個時間表開始在時間t0和按t1,t2,t3等等的順序從其繼續。
圖3a-3c示出根據本公開內容的一些實施例,在單個spi幀期間在四針spi的每個引腳上發送的信號。引腳包括一個或多個片選(cs)引腳csn304,主出/從入(mosi)引腳306,主入/從出(miso)引腳308,和串行時鐘(sclk)引腳310。spi包括本地計時器(例如,串行時鐘)(未示出),用于在sclk引腳310上生成時鐘信號。spi使用本地定時器(和相應的時鐘信號),以協調由spi傳輸的信號(在mosi引腳306)和由spi從外圍設備接收的信號(miso引腳308上)的相對定時。該spi包括間隔定時器(例如,實現為定時器寄存器),用于定時從外圍設備接收數據(例如,讀取)的等待時間間隔等。
轉到圖3a,圖3a示出一個例子,其中傳送數據被spi基于spi發送讀取命令到外圍設備的外圍設備接收(例如,使用狀態機)。示出信號,具有相對于時間線302的時間。在時間t0,cs引腳304未被確立,和sclk引腳310是不活動的(即,保持在不發送時鐘信號的恒定狀態下)。
在時間t1,通過在引腳上傳輸活動信號,spi斷言cs引腳304,并啟動在mosi引腳306上向外圍設備傳輸讀取命令。cs引腳304是活動低電平信號,以及因此,引腳的活動電平是低電壓電平(即,在時間t0,cs引腳從高電壓電平下降到低電壓電平304,進入活動狀態)。spi在sclk引腳310上產生時鐘信號,以定時在mosi引腳306上向外圍設備傳輸讀取命令(在圖3a中,標記′tx0′)。從spi的tx寄存器檢索讀取命令,用于傳輸到外圍設備。在t1和t2之間的時間段,spi發送讀取命令到外圍設備。
在時間t2,spi完成向外圍設備傳輸讀取命令,開始延緩輸出時鐘信號,并開始計時等待間隔。雖然本地計時器仍在操作并生成時鐘信號,通過在sclk引腳310上不發送時鐘信號,spi延緩時鐘信號的輸出。在時間t2和t3之間的時間間隔,spi延緩sclk引腳310的輸出本地定時器的n個周期(即,圖3a中,標有‘nsclk周期’)。由spi從wait_tmr寄存器檢索周期(即,等待時間)的數量。spi利用定時器寄存器(即,間隔計時器)來存儲自從讀取命令的傳輸(即,由于時間t2)已經過去的時鐘周期的實際數量。在本地計時器的每個增量(在t2和t3之間的時間),spi比較在定時器寄存器中存儲的值和在寄存器wait_tmr存儲的值,以確定是否等待間隔已經過去。在一些實施例中,等待時間對應于外圍設備的數據的輸出頻率(例如,傳感器數據的采樣率)。通過保持等待間隔,spi以外圍設備產生輸出數據的相同頻率讀取來自外圍設備的數據。
在時間t3,spi檢測等待時間已經過去,并開始從所述外圍設備中讀取數據。通過確定存儲在定時器寄存器中的值大于或等于給并存儲在寄存器wait_tmr值,spi檢測等待時間已經已過。通過重置定時器寄存器(例如,零),spi重置定時器間隔。在時間t3和t4之間的時間間隔中,spi在miso引腳308上從外圍設備(標有“rx0′)接收數據樣本。采樣數據被存儲在spi的rx寄存器。在本實施例中,spi只能在每個等待間隔之后讀取從外圍設備的僅僅一個采樣數據。然而,spi讀取可以在每個間隔的等待之后從所述外圍設備讀取數據的“突發”,包括任何數目的數據樣本。在讀取間隔拖延之前,spi利用讀取數據突發尺寸(rdburstsz)寄存器來決定在單一突發中從外圍設備讀取的數據量。在圖3a的例子中,rdburstsz寄存器標識字節數減一(即,讀取字節數=rdburstsz+1)。因此,rdburstsz寄存器包含零值,其對應于讀取0+1=1字節。
在時間t4時,spi完成在miso引腳308從所述外圍設備讀取數據樣本,開始延緩輸出時鐘信號,并開始使用定時器寄存器計時等待間隔。spi在當前spi幀中存儲總和寄存器,其標識從外圍設備接收的數據量。總和寄存器匹配cnt寄存器的度量單位(例如,兩個字節,位計算,或其整數倍)。spi遞增總和寄存器,即由對應于數據rx0的大小的值。spi比較在總和寄存器中的值和cnt寄存器的值,以確定是否結束spi幀。spi決定在總和寄存器中的值是否小于在cnt寄存器中的值,因此,繼續讀數據(和不結束幀spi)。再次在時間t4和時間t5之間的時間間隔,sp計時如上相對于時間t2和t3之間的等待時間間隔的等待時間間隔。spi利用定時器寄存器(即間隔定時器)來存儲時鐘周期的實際數的計數已經過去了因為該數據是在miso引腳308最后讀取(即,自從時間t4)。
在時間t5,spi檢測等待時間已經過去時,附加的數據讀出從外圍設備開始,并重置定時器間隔。在時間t5和時間t6之間的時間間隔,spi再次在miso引腳308從外圍設備接收附加的采樣數據(標示于圖3a“rx1”),則樣本數據存儲在spi的rx寄存器。
在時間t6,spi完成在miso引腳308上從外圍設備的樣本讀取,開始延緩輸出時鐘信號,并開始使用定時器寄存器計時等待間隔。在時間t6和時間t7之間的時間間隔期間,spi再次等式等待時間,如上相對于時間t2和t3之間的等待時間間隔。
在時間t7和t8的時間間隔,spi多次讀取數據采樣并保持等待時間,例如,如被重復相對于時間t5和t7的時間間隔的每個所述。此外,spi反復遞增寄存器,并確定該總和的總和寄存器中的值小于在所述cnt寄存器中的值,因此,繼續讀取數據(和不結束幀spi)。
在時間t8,spi檢測等待時間已經過去,并且開始從外圍設備中讀取的其它數據。在時間t8和時間t9之間的時間間隔,spi在miso引腳308上從所述外圍設備接收進一步的采樣數據(在圖3a,標記為“rxm′)。數據樣本存儲在spi的rx寄存器中的。
在時間t9,spi完成在miso引腳308從所述外圍設備的樣本讀取。spi以對應于采樣數據rxm的尺寸的值遞增總和寄存器,并比較總和寄存器中的值和cnt寄存器中的值來確定是否結束該spi幀。在這一點上,spi已經在miso引腳308上重復m+1次,等待的等待時間和收集數據樣本的過程。在時間t9,spi確定總和寄存器的值等于在cnt寄存器中的值,并通過從有效電平(即,低電壓)到無效電平(即,高電壓)結束cs引腳的過渡。在spi已將數據轉移到rxfifo之后,spi利用數據處理邏輯模塊以在中斷處理器之前執行對數據的函數(或功能的組合),以對數據樣本執行算法。
在圖3a中,單個cs幀包括從外圍設備多個收集的數據。單幀cs開始在時間t1和在時間t9結束。在cs幀期間,活動信號保持在cs引腳上,其在傳輸到rxfifo的持續時間連接spi到外圍設備。在這個例子中,基于cnt寄存器,預定m+1傳輸(例如,提前轉移確定的)。微處理器將根據微處理器對值執行算法所需的數據樣本量而設置該cnt寄存器。
轉到圖3b,圖3b示出具體的例子,其中轉移數據被spi從基于所述的spi發送讀取命令到外圍設備的外圍設備接收。操作如類似于相對于圖3a所描述,細節這里不再重復僅出于簡潔。在本實施例中,spi在寄存器存儲以下具體值:串行時鐘相位模式(cpha)位被設置為一(例如,配置本地時鐘在每個串行比特傳輸的開始脈沖),串行時鐘極性(cpol)位被設置到零(例如,配置本地時鐘在低電壓電平到空閑,并具有高電壓電平的活動電平),傳輸字節計數(txbytes)寄存器被設定為零(例如,配置spi傳輸1字節,在從從機讀取數據之前(即txbytes+1=0+1)),轉移字節計數(cnt)寄存器被設置為4(例如,預定數目的數據樣本,以收集在單個通信會話和配置spi以收集4個數據樣本),讀取數據脈沖串大小(rdburstsz)寄存器被設置為一(例如,配置spi收集2(即,rdburstsz+1=1+1)),和等待時間(wait_tmr)寄存器被設置為10(例如,配置spi等待本地定時器的10個時鐘周期)。該spi使用在寄存器中的特定值來控制數據的傳輸。
在圖3b的例子中,spi斷言cs引腳304(即,在時間t1),并在mosi引腳30發送(即,時間t1和t2之間)單字節讀命令(在圖3b中標記為“tx0上′)6。spi然后等待10個時鐘周期(即,時間t2和t3之間)讀取的數據的兩字節脈沖串之前(在圖3b,標記為“rx0′以及′rx1′)。在讀取數據的兩字節脈沖串之前(在圖3b,標記為“rx2”和“rx3′),spi再次等待10個時鐘周期(即,時間t5和t6之間)。在時間t8,spi判定總和寄存器中的值(對應于已經讀取讀的四個字節)等于在所述cnt寄存器的值(對應于讀取的預定的四個字節數據),并通過從活動電平(即低壓)向無效電平(即高壓)轉換cs引腳而結束spi幀。單幀cs包括從外圍設備多次讀取數據的采集的數據。單幀cs在時間t1開始和在時間t8結束。
據指出,當用于流量控制或fifo數據/空間的拖延時鐘信號輸出(即,在等待區間拖延sclk引腳310)不可用,最后sclk邊緣始終是采樣沿(即在這個例子中,下降信號)。因此,當等待周期結束時,被發送到從機的第一信號是驅動邊緣(即,在這個例子中,上升信號)。雖然當cpol位被設置為零,sclk引腳310信號空閑low,并當cpol位設置為一時空閑high,cpha位決定取樣和驅動邊緣的序列。因此,對于cpha=1,sclk信號是在相同的水平的空閑水平停滯不前。然而,當cpha位被設置為零時,sclk引腳延緩在和空閑電平的相對電平。在傳輸結束時(即,當cs未確立時),sclk引腳始終空轉為每個cpol。下面的表2包括cpol位和cpha位的組合如何影響sclk閑置和失速水平的摘要。圖3c示出了例子,其中sclk空轉310引腳低和高失速(即,基于所述cpha位被設置為零,且cpol位被設置為0)。
s:在cpol位和cpha位和相應的sclksclk閑置和失速水平的示范性組合。
轉到圖3c,圖3c示出了一個具體的例子,如轉移數據被spi從基于所述的spi發送讀取命令到外圍設備的外圍設備接收的。操作如類似于相對于圖3a和3b所述;細節這里不再重復僅出于簡潔。在本實施例中,spi在寄存器存儲以下具體值:串行時鐘相位模式(cpha)位被設置到零(例如,配置本地時鐘在每個串行位傳輸的結束脈沖),串行時鐘極性(cpol)位被設置到零(例如,配置本地時鐘在低電壓電平到空閑,并具有高電壓電平的激活電平),傳輸字節計數(txbytes)寄存器被設定為零(例如,配置spi傳輸1字節從從機讀取數據之前(即txbytes+1=0+1)),轉移字節計數(cnt)寄存器被設置為2(例如,預定數目的數據樣本采集期間,單個通信會話和配置spi收集2數據樣本)時,讀出的數據脈沖串大小(rdburstsz)寄存器設置為零(例如,配置spi收集1字節脈沖串(即,rdburstsz+1=0+1))和等待間隔(wait_tmr)寄存器被設置為10(例如,配置spi等待本地定時器的10個時鐘周期)。spi控制寄存器使用的具體數值數據的傳輸。特別是,在sclk引腳310空閑低(即,時間t0和t1和再次在時間t6之后)和失速高(即,之間時間t2和t3和,再次在時間t4和t5之間)基于cpha位被設定為零,且cpol位被設為零(例如,作為相對于表2描述)。
在圖3c的例子中,spi斷言cs引腳304(即,在時間t1),并在mosi引腳306發送(即,時間t1和t2之間)單字節讀命令(圖3c中標記為“tx0上′)。spi然后延緩10個時鐘周期等待間隔(即,時間t2和t3之間)。在延緩期間,sclk引腳310保持在高電壓電平。當等待時間結束時,spi在miso引腳308讀取數據的一個字節突發(圖3c標有“rx0′)。spi再次延緩(sclk引腳310在高電壓電平)10個時鐘周期(即時間t4和t5之間)的間隔,在讀取數據的一個字節的脈沖串之前(在圖3c,標記′rx1′)。在時間t6,spi確定在總和寄存器(對應于已被讀取的兩個字節)的值等于在所述cnt寄存器(對應于數據讀取的預定的兩個字節)的值,并通過從活動電平(即,低壓)向無效電平(即,高壓)轉換cs而結束spi幀。單幀cs包含來自從外圍設備多個采集的數據讀取。單幀cs在時間t1開始,在時間t6結束。
轉到圖4,圖4示出了根據本公開的一些實施例的三針數據通信接口中的每一個引腳上發送信號。引腳包括一個或多個片選(cs)引腳csn404,(sosit)引腳406,和串行時鐘從出/從(sclk)引腳408。spi包括本地定時器(例如,串行時鐘)(未示出),用于生成sclk引腳308。spi包括間隔定時器,用于定時從所述外圍設備的數據接收(例如,讀取)之間的等待間隔(例如,實現為定時器寄存器)。該三針spi的操作類似于參考圖3a、3b和3c所述的四針spi;細節這里不再重復僅出于簡潔。差別在于:對于三針,數據發送/接收發生在單一的雙向引腳(即,引腳sosi406)。在本實施例中,spi在寄存器中存儲如下特定值:cpha位被設置為零,cpol位被置零,txbytes寄存器被設置為零,cnt寄存器被設置為2,讀取數據突發大小(rdburstsz)寄存器被設置為零,并且wait_tmr寄存器被設置為一。
在圖4的例子中,spi斷言cs引腳404(即,在時間t1),并在sosi引腳406上發送(即,在時間t1和t2之間)單字節讀命令(圖3c中標記為“tx0上′)。spi然后延緩時鐘周期的等待間隔(即,時間t2~t3之間)。在延緩期間,sclk引腳408保持在高電壓電平。當等待間隔結束時,從屬外圍設備在sosi引腳406傳送數據的一個字節的脈沖串(圖4中標記為“rx0′)到spi。對于1個時鐘周期(即,時間t4和t5)之間的等待間隔,spi再次延緩(sclk引腳408在高電壓電平)。在時間t5,從外圍設備傳送數據的一個字節脈沖串(圖4中標記為“rx1”)。在時間t6,spi確定在總和寄存器(對應于已被讀取的兩個字節)的值等于在所述cnt寄存器(對應于數據讀取的預定的兩個字節)的值,并通過從活動電平(即低壓)到無效電平(即高壓)轉換cs引腳而結束spi幀。從外圍設備數據的單幀cs包含來自多個采集的數據讀取。單幀的cs在時間t1開始,在時間t6結束。
圖3a-3c和4的每個示出當spi模式的操作例子是定時器模式的實施例。在圖5的例子中,spi的操作模式是中斷模式(例如,基于檢測引腳上的活動電平)。
轉向圖5,圖5示出了根據本公開的一些實施例的四針數據通信接口中的每一個引腳上發送信號。圖5中四針spi的操作類似于相對于圖3a,3b和3c所述的四針spi;這里不再重復細節,僅出于簡潔。引腳504、506、508和510分別對應于引腳404、406、408和410。在本實施例中,spi在寄存器中存儲如下的特定值,cpha位被設置為零,cpol位被置零,txbytes寄存器被設置為一(例如,在從從屬數據讀之前,配置spi以傳輸2字節(即txbytes+1=1+1)),cnt寄存器被設置為三,讀出的數據脈沖串的大小(rdburstsz)寄存器被設置到零,以及引腳標識符標識miso引腳508作為在這引腳中斷當檢測到有效電平。
在圖5的例子中,spi斷言cs引腳504(即,在時間t1),并在mosi引腳306向從機發送兩個字節(例如,命令和地址)。第一個字節在時間t1和t2之間傳送。第二個字節在時間t2和t3之間傳送。spi在時間t3延緩以等待miso引腳508上的有效電平。在時間t3和t4之間的時間間隔,miso引腳508是無效電平(即,空閑高電平)。在時間t4,從機開始在miso引腳508發射有效信號到spi(即,諸如無電壓的活動低)。spi通過檢測miso引腳508上的活動電平響應于檢測到觸發條件檢測所述觸發條件時,spi讀取從屬數據。在時間t5和t6之間的間隔,spi在miso引腳508上從從機spi讀取一個字節的數據。spi再次在時間t6延緩(圖5中,標記為“rx0′)以等待miso引腳508上的活動電平。在時間t6和t7之間的時間間隔,miso引腳508是無效電平。在時間t7,從機開始在miso引腳508發射有效信號到spi(即,諸如無電壓的活動低)。在時間t8的t9之間的時間間隔,spi在miso引腳508從從機讀取數據的一個字節(圖5中,標為“rx1)。等待miso引腳上的活動電平和讀取數據的該過程在時間t9和t12之間重復。在時間t12,spi判定(已經讀對應于三個字節)總和寄存器中的值等于在所述cnt寄存器(對應于要讀取的預定的三字節數據)的值,并通過從活動電平(即,低電壓)到無效電平(即,高壓)轉換cs引腳而結束spi幀。從外圍設備數據的單幀cs包含來自多個采集的數據讀取。單幀cs在時間t1開始和在時間t12結束。
在圖3a-3c,圖4和5的實施例中,芯片選擇引腳(csn)處于活動狀態仍然(在這種情況下,低狀態是活動狀態),而主機(例如,spi)向從機(例如,選定的外圍設備,選定的傳感器,等等)發送單個讀命令(在某些情況下,對應于讀取命令的地址),和主機從從機接收傳感器值的預定數(例如,基于cnt寄存器)。該值可以從傳感器的寄存器收集,來自寄存器連續或不連續的位置。此外,通過反復從寄存器的至少一個位置檢索更新值用于添加到傳感器值,數值可以從寄存器讀取。例如,當傳感器檢測更新的傳感器值,所述值被更新依次放入在寄存器中的位置。該芯片可以選擇,并多次從寄存器中的相同的位置檢索更新值。
圖6示出根據本公開內容的一些實施例,用于與數據通信接口通信的示例性邏輯(即,邏輯600)。程序602可以符合其它邏輯、例程和/或應用程序的開始或結束點。此外,在602,數據(例如,對象,值,變量等)可初始化,檢索,或使用邏輯600。在604,微處理器向數據通信接口卸載傳感器數據的處理。微處理器可以通過配置其他硬件組件來執行傳感器數據的處理(例如,數據采集和/或預處理)而卸載處理。例如,微處理器可以配置dma控制器和/或數據通信接口(dci)的操作。該配置可包括設置寄存器值,用于控制由dci的數據處理和/或數據收集操作,而微處理器稍后休眠。微處理器可以編程dci中的本地定時器和/或間隔定時器。該編程可以包括設置(例如,在寄存器)等待間隔,定時器的時鐘頻率,或者控制本地計時器和/或間隔定時器的操作的任何其它值。當配置完成時,微處理器可指示dci收集和處理由dci從傳感器檢索的傳感器數據。在606,微處理器在睡眠模式下,并同時數據通信接口處理傳感器數據。微處理器進入睡眠模式,并保持在睡眠模式直到從dci接收中斷。在608,一旦由數據通信接口接收處理相關聯的中斷的數據,至少部分地由處理傳感器數據的數據通信接口產生訪問數據(例如,處理后的數據)。例如,微處理器從dci檢索處理后的數據(即,由dci預處理的數據)。微處理器可以執行進一步處理或函數的執行或處理數據的算法。邏輯600在610結束。610可以與其他邏輯,例程和/或應用程序的開始或結束點一致。
邏輯600可以在系統100和/或800的組件或組件的組合來實現。例如,該微處理器110(圖1中的系統100)可以執行邏輯600以經由數據采集接口(即,120,122,124)收集來自傳感器的數據(即104,106a-b,108)。作為另一示例,微處理器802(在圖8a和8b的系統800)可以執行邏輯600以經由串行外圍接口808從傳感器810收集數據。
圖7示出了根據本公開內容的一些實施例,用于通過數據通信接口用于與微處理器進行通信執行的示例性邏輯(邏輯700)。程序702可以與其它邏輯、例程和/或應用程序的開始或結束點一致。此外,在702,數據(例如,對象,值,變量等)可初始化,檢索,或訪問,用于邏輯700。在704,在數據通信接口的(dci)的至少一個引腳,啟動與外圍設備的通信會話。在706,在通信會話期間,向外圍設備發送命令。在708,從所述外圍設備接收預定數目的值。接收預定數目的值,并同時保持與在所述至少一個引腳的外圍設備的通信會話活動。在710中,值被處理。邏輯700在712結束。712可以與其他邏輯、例程和/或應用程序的開始或結束點一致。
邏輯700可以實現在系統100和/或800的組件或組件組合中。例如,一個或多個數據收集接口(即,120,122,124)(在圖1的系統100中)可以執行邏輯700以收集來自傳感器(即104,106a-b,108)的數據,而微處理器處于睡眠模式。作為另一示例,串行外圍接口(spi)808(在圖8a和8b的系統800)可以執行邏輯600以從傳感器810收集數據而微處理器802處于睡眠模式。
圖8a和8b示出一個系統(即,系統800),其中數據在片上組件和耦合到所述芯片的一個或更多個傳感器之間傳送。數據傳輸開始于圖8a,并繼續在圖8b;圖8a的標簽′8b′和圖8b的標簽′8a′標注附圖之間共同的參考點。系統800包括耦合到彼此的芯片801和傳感器810。該芯片801包括微處理器802、片上存儲器804、直接存儲器存取(dma)控制器806、和串行外圍接口(spi)808。spi808是微處理器802和傳感器810之間的數據傳輸的數據通信接口。spi808包括相對于圖2的數據通信接口200描述的組件,和執行(除其他事項外)圖7中的邏輯700。微處理器802可操作以執行指令(例如,圖6的邏輯600),當由spi808中斷,接收至少部分由spi808產生的處理數據。當由dma控制器從spi檢索的數據量超出閾值大小時,dma控制器806從spi808中的rxfifo向存儲器804的片上存儲器傳送數據。
在812,微處理器802在dma806中設置值寄存器。
在814,微處理器802在spi808設置寄存器值。例如,該微處理器802可以編程邏輯塊(和/或選擇邏輯塊形成多個駐留在spi邏輯塊),設置定時器,配置狀態機,和/或在spi808設定寄存器,在代表微處理器802的spi808采集和處理數據的整個持續時間(例如,預處理)進入睡眠模式之前。
在816,微處理器802發起由spi808的數據傳輸和/或處理。在發起之后,在818,微處理器802進入睡眠模式。代表微處理器802,微處理器802在spi808采集和處理數據(例如,預處理)的整個持續時間在休眠模式。雖然在睡眠模式,計時器-通過v802執行操作利用-被暫停,并作為結果,微處理器保持“凍結”在當前狀態,并執行任何操作。
響應于來自微處理器802接收的啟動,在820,spi808發起引腳cs上的活動信號,其耦合spi到傳感器810。spi808在對應于傳感器810的cs引腳即送該有效信號,以指示傳感器810是(潛在的多個傳感器)的選定傳感器。
在822,spi808發送命令和/或地址到傳感器810(例如,當spi是三針spi時,經過從出/從進(sosi)引腳,或當spi是四針spi時,經過主出/從進(mos)引腳)。
在824,該傳感器810在傳感器的寄存器存儲值(例如,傳感器值)。值被存儲在寄存器的位置x(即,r[x])。在826,spi808從傳感器寄存器讀取數據(例如,包括在位置r[x]的值)。在828,spi808在接收的先出緩沖器(rxfifo)存儲數據。
在830,傳感器810在寄存器中位置x+1中的寄存器存儲另一個值(即,r[x+1])。在832,spi808從傳感器寄存器讀取數據(例如,包括在位置r[x+1]的另一值)。在834,spi808在rxfifo中存儲數據。
在836,該傳感器產生和存儲值以及spi從傳感器獲取數據的過程重復任意次數。在此例中,整個重復數重復填充寄存器和由spi檢索的數據。在傳感器中的寄存器(r)包含其中存儲數據的n個位置(例如,第一位置為r[1]和最后一個位置為r[n])。在由傳感器重復存儲數據期間,寄存器中的每一個位置被反復更新,以存儲新的值(即,寄存器中每個各個位置(r[x])由新值更新)。在836之后立即,將寄存器的每個位置具有存儲在其中的值,和寄存器已滿(即,每個位置直至并包括位置r[n]的新近存儲由傳感器增加的值)。
在838,dma控制器806從spi808的rxfifo中檢索數據(例如,用于存儲在存儲器中,諸如存儲器元件804)。dma控制器可重復地從spi808檢索數據,以防止數據從spi的rxfifo中溢出。
在840,傳感器810在寄存器中的位置x寄存器存儲另一個值(即r[x])。例如,該傳感器將用新的傳感器值覆蓋在位置
在846,spi對從傳感器810檢索的數據(從傳感器810檢索)執行一個或多個數據處理邏輯塊。數據可以存儲在spi的rxfifo808或可由dma控制器轉移到不同的存儲器(例如,存儲器804)。所述一個或多個數據處理邏輯塊(當由spi執行時)檢索操作針對來自傳感器810的數據處理邏輯塊包括指令,在執行時,過程中的數據(例如,認證,驗證,或生成的數據輸出之日起)。例如,數據處理邏輯塊可以執行對數據的一個或多個的下列功能:平均函數,錯誤檢測函數,閾值函數,傳感器狀態檢查函數,濾波函數,掩蔽函數,快速傅立葉變換(fft),離散傅立葉變換(dft),數據預調節函數,用于通過一種算法來準備用于要由微處理器執行進一步處理的數據,和/或認證函數,以驗證該傳感器數據滿足的先決條件。每個數據塊處理邏輯產生由處理過的數據,例如,認證,驗證,修改數據,或者在由微處理器到位的設置指定的方式轉變的數據(即,在814)。在本實施例中,基于由一個或多個數據處理的邏輯塊所產生的輸出,spi確定需要附加數據(例如,當輸出識別出該數據不符合由微處理器802指明的預定條件時)。在848,spi從傳感器檢索附加數據(即,在相對于822至844的任何一部分描述的類似方式)。
在850,spi對從傳感器810檢索的附加數據(和/或數據和附加數據的組合)執行一個或多個數據處理邏輯塊。同樣,一個或多個數據處理邏輯檢索產生輸出塊(即指示有關調節及/或處理數據)。當spi確定附加數據(和/或數據和附加數據的組合)滿足由微處理器中的spi寄存器指定的條件時,spi通信終止與傳感器810的會話。在852,該spi通過終止spi的cs引腳上的有源信號的傳輸(例如,在cs引腳上開始發送沒有信號或不活動信號)而終止與傳感器810的通信會話。
spi保持cs引腳為來自傳感器的數據傳輸和數據的后續處理的持續時間上的活動信號,如由853總體表示。
在854,spi發送dma請求到dma控制器806。在一些實施例中,dma請求信號是在dma特定通信介質(例如,電線)發送的激活信號。dma請求的接收可以觸發dma控制器以從存儲器元件訪問其中經處理的數據(或原始數據)被存儲的地址的指針。轉向圖8b,圖8b重復854,僅為參考。
在856,dma從spi808檢索處理數據。在858,dma將處理后的數據傳送到片上存儲器804。在860,dma發送中斷請求(irq)到微處理器802。該irq從睡眠模式中斷微處理器802。在862,代表微處理器802,微處理器802退出睡眠模式(響應于irq)。微處理器802在spi采集和處理數據808的持續時間(即,從816至860)保持在睡眠模式,如由863所指示一般。
在一些實施例中,dma控制器806檢索數據、傳輸數據,并響應于所述dma請求生成irq(即,在854,由spi發送到dma)。因而,至少部分地基于由spi產生和發送的請求,中斷微處理器802。在其他實施例中,spi直接中斷微處理器808(例如,在向存儲器傳輸處理數據之后,通過發送irq到微處理器)。
在864,微處理器802加載數據處理到微處理器802的靜態隨機存取存儲器(sram)。在866,微處理器802對處理數據執行算法(至少部分使用在sram加載的數據),并產生輸出。在868,微處理器802輸出發送到另一元件。
在實施例和/或實施例的以上的討論中,測量和/或單位特定號碼的特定單元(例如,比特和/或字節的特定數目)由于是僅作為例子。本公開的教導不限于這些實施例和/或實施例(或千字節,兆字節,千兆等等例如,千位,兆,千兆位等),在其他實施方式和/或例子,計量單位和數字可被其他單位/數字代替。
在實施例的以上的討論中,電容器,時鐘,dffs,除法,電感器,電阻器,放大器,開關,數字核心,晶體管和/或其它組件可容易加入、代替、取代或否則修改,以適應特定的電路需要。此外,必須繼續應該是相輔相成即使用電子設備,硬件,軟件等。同樣實施本公開的教導可行的選擇。
在一個示例實施例中,圖中的任何數量的電路可以在相關聯的電子設備的板上實現。板可以是能夠保持電子設備的內部電子系統的各種部件,并且還提供用于其他外圍設備的連接器的通用電路板。更具體地,板可以提供電連接,系統的其他部件可以通過該電連接電通信。基于特定配置需求,處理需求,計算機設計等,任何合適的處理器(包括數字信號處理器,微處理器,支持芯片組等),計算機可讀非暫時性存儲器元件等可以適當地耦合到板。諸如外部存儲器,附加傳感器,用于音頻/視頻顯示的控制器以及外圍設備的其它組件可以作為插入卡,經由電纜附接到板或者集成到板本身中。在各種實施例中,本文描述的功能可以仿真形式被實現為在布置在支持這些功能的結構中的一個或多個可配置(例如,可編程)元件內運行的軟件或固件。提供仿真的軟件或固件可以在包括允許處理器執行那些功能的指令的非暫時性計算機可讀存儲介質上提供。
在另一示例實施例中,附圖的電路可以被實現為獨立模塊(例如,具有被配置為執行特定應用或功能的相關組件和電路的設備)或實現為應用中的插件模塊電子設備的特定硬件。注意,本公開的特定實施例可以部分地或整體地容易地包括在片上系統(soc)封裝中。soc表示將計算機或其他電子系統的組件集成到單個芯片中的ic。它可以包含數字,模擬,混合信號和通常的射頻功能:所有這些可以提供在單個芯片襯底上。其他實施例可以包括多芯片模塊(mcm),其具有位于單個電子封裝內的多個分離的ic,并且被配置為通過電子封裝彼此緊密地相互作用。在各種其它實施例中,數字濾波器可以在專用集成電路(asic),現場可編程門陣列(fpga)和其它半導體芯片中的一個或多個硅核中實現。
這是必須還要注意,所有的規格,尺寸以及本文所概述的關系(例如,微處理器,傳感器,寄存器,邏輯塊,邏輯運算,數量等)只被提供的示例的目的,只有教學。這樣的信息可以改變,而不脫離本公開的精神或所附權利要求的范圍。這些規范僅適用于非限制性的例子,因此,它們應該被解釋為這樣的。在前面的描述,已經參照處理器和/或部件的安排描述示例實施例。各種修改和改變可以在不脫離所附權利要求的范圍的前提作出。說明書和附圖相應地看作是說明性而不是在限制性的意義。
需要注意的是,參照討論的附圖的活動都適用于任何集成電路即涉及傳感器信號和/或信號處理,特別是那些能夠執行專門的軟件程序,或算法,其中一些可與處理數字化的關聯實時數據。某些實施方案可以涉及到多dsp信號處理,浮點處理,信號/控制處理,固定功能處理,單片機應用等。
在某些情況下,本文討論的特征可以適用于醫療系統,科學儀器,無線和有線通信,雷達,工業過程控制,音頻和視頻設備,電流檢測,儀器儀表(可高度精確),和其他基于數字的處理系統。
此外,某些實施方案可以討論上述技術的醫療成像,病人監護,醫療儀器和家庭醫療保健供應。這包括肺監視器,心臟速率監視器,起搏器等。其他汽車應用可涉及安全系統技術(例如,用于提供穩定性控制系統,駕駛輔助系統,制動系統,信息娛樂和任何類型的內部應用用戶輸入)。
在另一些示例方案,本發明適用的教導可以認為市場在工業過程控制系統包括幫助,推動生產力,能源效率和可靠性。在消費類應用,本發明的教導可用于用戶或輔助自動對焦以及防抖(例如,用于數碼相機,便攜式攝像機等)。其他消費應用可以包括家庭影院系統,dvd錄像機和高清電視接口。另外的其它高級消費應用涉及輸入接口(例如,用于任何類型的便攜式媒體設備)。因此,這些技術容易成為智能手機、平板電腦、安防系統、個人電腦、游戲技術、虛擬現實、模擬訓練等的一部分
注意,利用本文提供的許多示例,可以根據兩個,三個,四個或更多個電子部件來描述交互。然而,這僅僅是為了清楚和示例的目的。應當理解,系統可以以任何合適的方式合并。沿著類似的設計替代方案,附圖的任何所示的部件,模塊和元件可以以各種可能的配置組合,所有這些都明顯在本說明書的廣泛范圍內。在某些情況下,可以通過僅參考有限數量的電氣元件來更容易地描述給定的一組流的一個或多個功能。應當理解,圖中的電路及其教導是容易擴展的,并且可以容納大量部件,以及更復雜/復雜的布置和配置。因此,所提供的示例不應限制可能應用于無數其它架構的電路的范圍或抑制電路的廣泛教導。
注意,在本說明書中,引用在“一個實施例”,“示例實施例”,“實施例”“另一實施例”,“一些實施例”,“各種實施例”,“其他實施方案”,“替代實施例”等中包括的各種特征(例如,元件,結構,模塊,組件,步驟,操作,特性等)意指任何此類特征包括在本公開的一個或多個實施方案中,可或不可必然在同一實施例中組合。
許多其它改變,替換,變化,改變,和修改可以確定本領域技術人員和其意圖是本公開內容包括所有這樣的改變,替換,變化,改變,和修改落入在范圍的所附權利要求。
注意,上面描述的該裝置的所有可選功能還可相對于本文描述的方法和處理實施,和實施例的細節可用于一個或多個實施例中的任何地方。
以下實施例涉及本發明的一些實施例:
示例1是用于一個微處理器和一個或多個傳感器之間傳送數據的數據通信接口。所述數據通信接口包括:至少一個引腳,可操作地耦合到微處理器和一個或多個傳感器;傳感器寄存器,存儲標識所述一個或多個傳感器的哪一個是在所述至少一個引腳上通信的選擇傳感器的值;狀態機,配置為基于所述傳感器寄存器來生成讀取命令,向所選的傳感器傳輸讀取命令;流控制邏輯塊,經配置以一旦檢測到觸發條件,則向狀態機傳輸指令,其中狀態機被配置為至少部分基于指令,從所選擇的傳感器接收預定數目的傳感器值,并同時保持與至少一個引腳上所選傳感器的單個通信會話活動。
在示例2,示例1的主題可任選地包括:從所選擇的傳感器接收預定數目的傳感器值,并同時保持與至少一個引腳上所選傳感器的單個通信會話活動包括:基于讀出命令從寄存器反復讀取傳感器值中的一些,直到到達預定數目的傳感器值,其中,所述寄存器中的至少一個位置被重復讀出以檢索添加到傳感器值的更新值,更新值由所選擇的傳感器被連續地置于至少一個位置。
在示例3中,示例1或2的主題可任選地包括狀態機,可操作以向由微處理器訪問的片上存儲器傳輸處理過的數據,至少部分基于所述傳感器值生成處理數據
在示例4中,示例1-3的任何的主題進一步可任選的包括:耦合到狀態機的一個或多個數據處理邏輯塊,每個所述一個或多個數據處理邏輯塊可操作來生成通過對傳感器值執行函數的處理數據。
在示例5中,示例1-4的任何的主題可任選地包括:所述一個或多個數據處理邏輯塊關聯于用于存儲標準值的寄存器,以及函數包括比較器,以比較傳感器值的至少部分與標準值。
在示例6中,示例1-5的任意的主題可任選地包括從包括如下的組合中選擇的函數:平均函數、錯誤檢測功能、閾值函數、傳感器狀態檢查函數、過濾函數、掩蔽功能,快速傅立葉變換(fft),離散傅立葉變換(dft),數據預調節函數,以準備數據用于由微處理器執行的算法的進一步處理,以及認證函數以驗證該傳感器數據滿足先決條件。
在示例7中,示例1-6的任意的主題可任選進一步包括:可操作地連接到片上存儲器和一個或多個數據處理的邏輯塊的直接存儲器存取(dma)控制器,其中,所述dma控制器可操作以從任何一個或多個數據處理邏輯塊檢索處理的數據。
在示例8中,示例1-7的任何的主題可任選地進一步包括:中斷請求(irq)產生器,可操作地耦合到微處理器和一個或多個數據處理邏輯塊;其中,所述一個或多個數據處理邏輯塊的每個可操作以向irq發生器傳輸處理后的數據,和irq發生器可操作以產生中斷請求,基于從一個或多個數據處理邏輯塊的任何接收的處理,向微處理器傳輸中斷請求。
在示例9中,示例1-8的任意的主題可任選地進一步包括:狀態機寄存器,用于存儲對應于在所述至少一個引腳的數據傳輸的一個或多個操作模式的模式值,其包括定時器模式和用于從所述選擇的傳感器接收所述傳感器值的中斷模式,其中所述觸發條件對應于工作模式中選定的一個。
在示例10中,示例1-9的任何的主題可任選地包括:數據接口是串行通信接口。
在示例11中,示例1-10的任何的主題可任選地包括串行接口為從包括如下的組合中選出的:串行外圍接口(spi)、內部集成電路(iic)、1-線總線,以及uni/o總線。
在示例12中,示例1-11的任何的主題可任選地進一步包括:本地定時器,配置為產生時鐘信號;和其中,串行接口是串行外設接口(spi),以及至少一個引腳包括三個或多個引腳,其中三個或多個引腳包括:至少一個芯片選擇引腳,用于基于低信號或高信號而識別所選的傳感器,至少一個數據傳輸引腳,可操作以傳輸數據至選定的傳感器或從選定的傳感器接收數據,以及時鐘引腳,可操作以傳輸時鐘信號到所選擇的傳感器;和其中,保持與至少一個引腳上所選傳感器的單個通信會話活動包括:保持至少一個芯片選擇引腳在激活電平。
在示例13中,示例1-12的任何的主題可任選進一步包括:間隔計時器,配置為計數本地定時器的時鐘信號的等待時間間隔,其中,所述流控制邏輯塊檢測所述觸發條件包括:基于間隔計時器,流控制邏輯塊檢測所述本地計時器的等待時間的期滿
在示例14中,示例1-13的任何的主題可任選地包括:流控制邏輯塊檢測觸發條件包括流控制邏輯塊檢測所述至少一個引腳上的有效功率水平。
在示例15中,示例1-14的任何的主題可任選地進一步包括:通用輸入/輸出(gpio)耦合到數據通信接口引腳,其中,所述流控制邏輯塊檢測所述觸發條件包括數據通信接口檢測gpio引腳的活動水平。
在示例16中,示例1-15的任何的每一個的主題可以任選地包括一個或多個數據處理邏輯塊關聯于一個或多個傳感器中的至少一個。
示例17是一種系統,包括:微處理器;一個或多個傳感器;和一個數據通信接口,包括:至少一個引腳,可操作地耦合到微處理器和一個或多個傳感器;傳感器寄存器,存儲標識所述一個或多個傳感器的哪一個值是在所述至少一個引腳通信的選擇傳感器;和狀態機,被配置為基于所述傳感器寄存器產生讀取命令,傳輸讀命令到所選的傳感器;和流控制邏輯塊經配置以一旦檢測到觸發條件,向狀態機傳輸指令,其中所述狀態機配置為至少基于不同的指令而從選擇的傳感器接收預定數目的傳感器值,同時保持與至少一個引腳上所選擇的傳感器的單個通信會話活動。
在示例18中,示例1的主題可任選地包括:從所選擇的傳感器接收預定數目的傳感器值,并同時保持與至少一個引腳上所選傳感器的單個通信會話活動包括:基于讀出命令從寄存器反復讀取傳感器值中的一些,直到到達預定數目的傳感器值,其中,所述寄存器中的至少一個位置被重復讀出以檢索添加到傳感器值的更新值,更新值由所選擇的傳感器被連續地置于至少一個位置。
在示例19中,示例17或18的主題可任選地進一步包括:由微處理器訪問的片上存儲器,其中,所述狀態機可操作以向由片上存儲器傳輸處理過的數據,至少部分基于所述傳感器值生成處理數據
在示例20中,示例17-19的任何的主題進一步可任選的包括:其中所述數據通信接口進一步包括:耦合到狀態機的一個或多個數據處理邏輯塊,每個所述一個或多個數據處理邏輯塊可操作來生成通過對傳感器值執行函數的處理數據。
在示例21中,示例17-20的任何的主題的至少可任選地包括:一個或多個數據處理的邏輯塊中的至少一個關聯于存儲標準值的寄存器,以及函數包括比較器以比較至少傳感器值和標準值。
在示例22中,示例17-21的任何的主題可任選地包括從包括如下的組合中選擇的函數:平均函數,錯誤檢測功能,閾值函數,傳感器狀態檢查函數、或過濾函數、掩蔽函數、快速傅立葉變換(fft),離散傅立葉變換(dft),和/或數據預調節函數,以準備數據用于通過由通過微處理器執行的算法的進一步處理。
在示例23中,示例17-22的任何的主題可任選地進一步包括:直接存儲器存取(dma)控制器,可操作地連接到片上存儲器和一個或多個數據處理邏輯塊,其中,所述dma控制器可操作以從任何一個或多個數據處理邏輯塊檢索處理的數據。
在示例24中,示例17-23的任何的主題可任選地包括所述數據通信接口,還包括:中斷請求(irq)產生器,可操作地耦合到微處理器和一個或多個數據處理邏輯塊;其中,所述一個或多個數據處理邏輯塊的每個可操作以向irq發生器傳輸處理后的數據,和irq發生器,可操作以產生中斷請求,基于從一個或多個數據處理邏輯塊的任何接收的處理,向微處理器傳輸中斷請求。
在示例25中,示例17-24的任何的主題可任選地包括所述數據通信接口,還包括:狀態機寄存器,可操作以用于存儲對應于在至少一個引腳的數據傳輸的一個或多個操作模式的模式值,所述工作模式包括定時器模式和的中斷模式,用于從所選擇的傳感器接收傳感器值,其中,所述觸發條件對應于工作模式中選定的一個。
在示例26中,示例17-25的任何的主題可任選地包括:數據接口是串行通信接口。
在示例27中,示例17-26的任何的主題可任選地包括串行接口為包括如下的組合中選出的:串行外圍接口(spi),內部集成電路(iic),1-wire總線,以及uni/o總線。
在示例28中的任示例17-27的主題可任選地包括所述數據通信接口,還包括:本地定時器,配置為產生時鐘信號;和其中,串行接口是串行外設接口(spi),以及至少一個引腳包括三個或多個引腳,其中三個或多個引腳包括:至少一個芯片選擇引腳,用于基于低信號或高信號而識別所選的傳感器,至少一個數據傳輸引腳,可操作以傳輸數據至選定的傳感器或從選定的傳感器接收數據,以及時鐘引腳,可操作以傳輸時鐘信號到所選擇的傳感器;和其中,保持與至少一個引腳上所選傳感器的單個通信會話活動包括:保持至少一個芯片選擇引腳在激活電平。
在示例29中,示例17-28的任何的主題可任選進一步包括:間隔計時器,配置為計數本地定時器的時鐘信號的等待時間間隔,其中,所述流控制邏輯塊檢測所述觸發條件包括:基于間隔計時器,流控制邏輯塊檢測所述本地計時器的等待時間的期滿。
在示例30中,示例17-29的任何的主題可任選地包括:流控制邏輯塊檢測觸發條件包括流控制邏輯塊檢測所述至少一個引腳上的有效功率水平。
在示例31中,示例17-30的任何的主題可任選地進一步包括:通用輸入/輸出(gpio)耦合到數據通信接口引腳,其中,所述流控制邏輯塊檢測所述觸發條件數據通信接口包括檢測在gpio引腳的活動水平。
在示例32中,示例17-31的任何的主題任選可以:所述一個或多個數據處理邏輯塊的每個關聯于一個或多個傳感器中的至少一個。
示例33是一種在微處理器和一個或多個傳感器之間傳送數據的方法。該方法包括:從傳感器寄存器檢索識別所述一個或多個傳感器的哪一個是用于在至少一個引腳上通信的選定傳感器的值,所述至少一個引腳被可操作地耦合到微處理器和一個或多個傳感器;基于所述傳感器寄存器和觸發條件的檢測,產生讀取命令;一旦檢測到觸發條件,向所選的傳感器發送讀取命令;和從所選擇的傳感器接收預定數目的傳感器值,其中,接收預定數量的傳感器值,并保持與至少一個引腳上所選傳感器的的單個通信會話活動。
在示例34,示例33的主題可任選地包括:從所選擇的傳感器接收預定數目的傳感器值,并同時保持與至少一個引腳上所選傳感器的單個通信會話活動包括:基于讀出命令從寄存器反復讀取傳感器值中的一些,直到到達預定數目的傳感器值,其中,所述寄存器中的至少一個位置被重復讀出以檢索添加到傳感器值的更新值,更新值由所選擇的傳感器被連續地置于至少一個位置。
在示例35中,示例33或34的主題任選地進一步包括:將處理數據傳送到片上存儲器,所述處理數據至少部分基于傳感器值產生,其中,所述片上存儲器由微處理器可訪問。
在示例36中,示例33-35的任何的主題任選地進一步包括:可以通過在傳感器值執行函數,產生處理數據。
在示例37中,示例33-36的任何的主題任選地進一步包括:在寄存器存儲標準值,并且其中所述函數包括一個比較器,以比較至少部分所述傳感器值與標準值。
在示例38中,示例33-37的任何的主題可任選地包括從包括如下的組合選擇的函數:平均函數、錯誤檢測函數、閾值函數、傳感器狀態檢查函數、過濾函數、掩蔽函數、快速傅立葉變換(fft)、離散傅立葉變換(dft)和/或數據預調節功能,通過一種算法來準備用于進一步處理的數據要由微處理器執行。
在示例39中,示例33-38的任何的主題可任選進一步包括:將處理數據傳送到直接存儲器訪問(dma)控制器,其中所述dma控制器可操作地耦合到所述片上存儲器和一個或多個數據處理邏輯塊。
在示例40中,示例33-39的任何的主題可任選地進一步包括:向中斷請求(irq)發生器傳輸處理后的數據,其中,所述irq發生器可操作地耦合到微處理器和一個或多個數據處理邏輯塊,通過irq發生器產生中斷請求,基于從一個或多個數據處理邏輯塊的任何接收的處理,向微處理器發送所述中斷請求。
在示例41中,示例33-40的任何的主題可任選地進一步包括:在流控制寄存器中存儲對應于在所述至少一個引腳的數據傳輸的一個或多個操作模式的模式值,其包括定時模式和中斷模式,用于從所述選擇的傳感器接收所述傳感器值,其中所述觸發條件對應于工作模式中選定的一個。
在示例42中,示例33-41的任何的主題可任選地包括通過串行接口實施的方法。
在示例43中,示例33-42的任何的主題可任選地包括從包括如下的組合中選擇的串行接口:串行外圍接口(spi),內部集成電路(iic),1-線總線,以及uni/o總線。
在示例44中,示例33-43的任何的主題可任選地進一步包括:由計時器產生時鐘信號,并且其中,所述串行接口是串行外設接口(spi),以及至少一個引腳包括三個或多個引腳,所述三個或多個引腳包括:至少一個芯片選擇引腳,用于基于低信號或高信號而識別所選的傳感器,至少一個數據傳輸引腳,可操作以傳輸數據至選定的傳感器或從選定的傳感器接收數據,以及時鐘引腳,可操作以傳輸時鐘信號到所選擇的傳感器;其中,保持與至少一個引腳上所選傳感器的單個通信會話活動包括:保持至少一個芯片選擇引腳在激活電平。
在示例45中,示例33-44的任何的主題可任選地包括檢測所述觸發包括檢測計時器的等待時間的期滿。
在示例46中,示例33-45的任何的主題可任選地包括,檢測所述觸發包括:檢測所述至少一個引腳上的有效功率電平。
在示例47中,示例33-46的任何的主題可任選地包括,檢測所述觸發包括檢測在通用輸入/輸出(gpio)的活動水平。
在示例48中,示例33-47的任何的主題可任選地包括:通過對傳感器值執行函數而產生處理數據,對于所述一個或多個傳感器的每一個執行。
示例49是一種在微處理器和一個或多個傳感器之間傳送數據的系統。系統是可包括任何合適的電路、除法器、電容器、電阻器、電感器、模數轉換器、dff、邏輯門、軟件、硬件、鏈接等,其可以是任何類型的計算機,它可以進一步包括耦合到多個電子部件中的一部分的電路板。該系統包括:裝置,從傳感器寄存器檢索識別所述一個或多個傳感器的哪一個是用于在至少一個引腳上通信的選定傳感器的值,所述至少一個引腳被可操作地耦合到微處理器和一個或多個傳感器;裝置,用于基于所述傳感器寄存器和觸發條件的檢測,產生讀取命令;裝置,用于一旦檢測到觸發條件,向所選的傳感器發送讀取命令;和從所選擇的傳感器接收預定數目的傳感器值,其中,接收預定數量的傳感器值,并保持與至少一個引腳上所選傳感器的的單個通信會話活動。
在示例50中,示例49的主題可任選地包括:裝置,用于從所選擇的傳感器接收預定數量的傳感器值,同時保持與在至少一個引腳上所選傳感器的單個通信會話活動;裝置,根據讀出的命令,從寄存器反復讀取傳感器值中的一些,直到到達預定數目的傳感器值,其中在所述寄存器的至少一個位置被重復地讀出,以用于添加到傳感器值,更新值被所選擇的傳感器連續地置于至少一個位置。
在示例51中,示例49或50的主題可任選地進一步包括:裝置,用于將處理數據傳送到片上存儲器,所述處理數據基于至少部分地根據所述傳感器值產生,其中,片上存儲器由微處理器可訪問。
在示例52中,示例49-51的任何的主題任選地進一步包括:裝置,用于通過對傳感器值執行函數而產生處理數據。
在示例53中,示例49-52的任何的主題可任選地進一步包括:裝置,用于在寄存器中存儲標準值,并且其中所述函數包括比較器以比較至少所述傳感器值的一部分和標準值。
在示例54中,示例49-53的主題可任選地包括從包括如下的組合中選擇的函數:平均函數、錯誤檢測功能、閾值函數、傳感器狀態檢查函數、過濾函數、掩蔽功能,快速傅立葉變換(fft),離散傅立葉變換(dft),數據預調節函數,以準備數據用于由微處理器執行的算法的進一步處理,以及認證函數以驗證該傳感器數據滿足先決條件。
在示例55中,示例49-54的任何的主題可任選地進一步包括:裝置,用于將數據傳送到直接存儲器訪問(dma)控制器,其中所述dma控制器可操作地耦合到芯片上存儲器和一個或多個數據處理邏輯塊。
在示例56中,示例49-55的任何的主題可任選地進一步包括:裝置,向中斷請求(irq)發生器傳輸處理后的數據,其中,所述irq發生器可操作地耦合到微處理器和一個或多個數據處理邏輯塊,通過irq發生器產生中斷請求,基于從一個或多個數據處理邏輯塊的任何接收的處理,向微處理器發送所述中斷請求。
在這些實例(見上文)中,′用于′可以包括使用任何合適的(不限于)這里討論的任何合適的組件,以及任何合適的軟件、電路、集線器、計算機代碼、邏輯、算法、硬件、控制器、接口、鏈路、總線、通信通道等。在第二實例中,該系統包括存儲器,其還包括機器可讀指令在被執行時致使所述系統執行上面討論的任何活動。
為了幫助美國專利商標局(uspto)以及本申請發出的任何專利的任何讀者解釋權利要求,申請人謹指出申請:(a)不打算任何附加的權利要求援引35usc部分6的第112條款,因為它存在于申請的公布日期,除非詞語“裝置,用于”或者“步驟,用于在特定的權利要求;和(b)不打算由本說明書中的任何陳述來限制本公開內容中的任何方式,否則未在所附的權利要求所反映。
在示例57中,示例49-56的主題可任選進一步包括:在流控制寄存器中存儲對應于在所述至少一個引腳的數據傳輸的一個或多個操作模式的模式值,其包括定時模式和中斷模式,用于從所述選擇的傳感器接收所述傳感器值,其中所述觸發條件對應于工作模式中選定的一個。
在示例58中,示例49-57的任何的主題可任選地包括通過串行接口正在實施的方法。
在示例59中,示例49-58的任何的主題可任選地包括串行接口從包括如下的組合選出:串行外圍接口(spi)、內部集成電路(iic)、1-線總線以及uni/o總線。
在示例60中,示例49-59的任何的主題可任選進一步包括:由一個計時器產生時鐘信號,并且其中,所述串行接口是串行外設接口(spi),以及至少一個引腳包括三個或多個引腳,所述三個或多個引腳包括:至至少一個芯片選擇引腳,用于基于低信號或高信號而識別所選的傳感器,至少一個數據傳輸引腳,可操作以傳輸數據至選定的傳感器或從選定的傳感器接收數據,以及時鐘引腳,可操作以傳輸時鐘信號到所選擇的傳感器;和其中,保持與至少一個引腳上所選傳感器的單個通信會話活動包括:保持至少一個芯片選擇引腳在激活電平。
在示例61中,示例49-60的主題可任選地包括檢測所述觸發包括檢測計時器的等待時間的期滿。
在示例62中,示例49-61的任何的主題可任選地包括檢測所述觸發條件包括:檢測所述至少一個引腳上的有效功率電平。
在示例63中,示例49-62的任何的主題可任選地包括檢測所述觸發提交包括檢測在通用輸入/輸出(gpio)的活動電平。
在示例64中,示例49-63的任何的主題可任選地包括:通過對對于一個或多個傳感器的每一個執行的傳感器值執行函數而執行處理數據。