相關申請的交叉引用
沒有。
背景
1.公開領域
本公開大體上涉及集成電路接口協議,并且更具體地涉及內部集成電路(i2c)串行通信。
2.相關技術的描述
存在其中主器件通過串行總線與從器件進行通信的多個集成電路接口協議。接口協議i2c是其中主器件通過共享串行總線與一個或更多個從器件進行通信的示例性接口協議。主器件啟動與從器件的通信。因此,從器件不能與主器件進行通信,例如,將主器件從低功耗睡眠模式喚醒。
概述
本發明在其一個形式中針對具有i2c時鐘引腳和i2c數據引腳的i2c從器件。該i2c從器件被配置為在i2c時鐘引腳和i2c數據引腳處接收命令,并作為響應重復地切換i2c數據引腳,直到i2c從器件檢測到終止事件的發生。切換與i2c時鐘引腳異步。
本發明在其另一形式中針對具有電源引腳、i2c時鐘引腳和i2c數據引腳的i2c從器件。該i2c從器件被配置為經由電源引腳被供電,并使用i2c時鐘引腳和i2c數據引腳接收經由i2c傳輸的命令,然后重復地切換i2c數據引腳,直到電源引腳被斷電。切換與i2c時鐘引腳異步。
本發明在其又一形式中針對操作具有i2c時鐘引腳和i2c數據引腳的i2c從器件的方法。該方法包括:(a)經由i2c時鐘引腳和i2c數據引腳接收命令,(b)在第一持續時間將i2c數據引腳驅動為邏輯低,(c)在第二持續時間不將i2c數據引腳驅動為邏輯低,以及(d)重復地交替(b)和(c)直到終止事件發生。(b)和(c)與i2c時鐘引腳的轉變不是同步的。
本發明在其另一形式中涉及具有i2c時鐘引腳、i2c數據引腳和輸入引腳的i2c器件。該i2c器件被配置為通過在將i2c數據引腳驅動為邏輯低和不將i2c數據引腳驅動為邏輯低之間交替來響應于經由i2c時鐘引腳和i2c數據引腳接收i2c命令,直到i2c器件檢測到終止事件。交替與i2c時鐘引腳的轉變不是同步的。
附圖簡述
被納入在說明書中而且形成說明書的一部分的附圖示出了本公開的數個方面,并且和描述一起用于解釋本公開的原理。
圖1是i2c通信的信號時序圖。
圖2是根據本公開的一個方面的信號時序圖。
圖3是根據本公開的另一方面的示意圖。
圖4是根據本公開的另一方面的操作i2c從器件的方法的流程圖。
詳細描述
在以下的描述中,參照了其中相似的數字代表相似的元素的附圖。實施例被充分詳細描述,以使得本領域技術人員能夠實施本公開。將了解到的是,其它實施例亦可被利用,并且過程、電性以及機械上的改變等等都可加以進行,而不脫離本公開的范圍。示例僅僅是代表可能的變化。某些實施例的部分及特征可以被包括于其它實施例中或是代替其他實施例的部分及特征。因此,以下的描述不應該被視為限制性的涵義,并且本公開的范圍僅由所附的權利要求及其等同物來加以界定。
參照附圖,特別是參照圖1,其示出了本領域已知的i2c通信的信號時序圖。i2c數據線和i2c時鐘線顯示為邏輯高、邏輯低,并在邏輯高和邏輯低之間轉變。起始條件被定義為數據線從邏輯高轉換為邏輯低,即下降轉變,而時鐘線為邏輯高。此后,數據線僅在時鐘線為邏輯低時轉變。因此,數據線的轉變與時鐘線的下降轉變同步。當時鐘線從邏輯低轉變為邏輯高時,即上升轉變時,數據線的狀態被讀取。如圖所示,位b0在數據線的上升轉變中被讀取。隨后的位b1-bn在時鐘線的隨后的上升轉變中被讀取。注意的是,位可由主器件或從器件讀取。位可以對i2c地址、通信是從從器件讀取還是寫入到從器件的指示、以及諸如命令的數據進行編碼。例如,位b0-b6可以是從器件地址,位b7可以是讀/寫指示符,位b8-b15可以是命令,位b16-b23可以是作為命令的一部分的數據。通信由停止條件終止,該停止條件被定義為數據線的上升轉變,同時時鐘線為邏輯高。停止條件與傳輸最后位之后發生的時鐘線同步。
現有技術的i2c通信與由主器件驅動的時鐘線同步。因此,從器件不能與主器件進行通信,例如,將主器件從低功耗睡眠模式喚醒。圖2示出了根據本公開的一個實施例的信號時序圖,其克服了現有技術的i2c通信系統的這些缺陷,而沒有添加額外的連接和相關聯的成本。
圖2的左側部分205示出了與圖1的波形類似的以起始條件開始并以停止條件結束的i2c通信。在該示例中,i2c通信包含從主器件到從器件的命令。該命令是用于從器件切換數據線,直到終止事件發生。圖2的右側部分207示出了,響應于i2c通信,從器件通過在第一持續時間210將數據線驅動到邏輯低來切換數據線,然后釋放數據線,使得上拉電阻器(未示出)使數據線在第二持續時間212變為邏輯高。切換包含下降沿和上升沿二者。數據線的下降轉變(例如,下降轉變214)和上升轉變(例如,上升轉變216)與時鐘線異步發生。在該示例中,時鐘線在切換期間為邏輯高。切換重復多個周期。
第二持續時間212與第一持續時間210的比率被稱為占空比。從器件可以調整切換的占空比來傳送信息,即脈寬調制(pwm)。切換的占空比可例如與耦合到從器件的傳感器(例如,溫度傳感器)的電壓輸出成比例。耦合到主器件和從器件外部的數據線的電路可讀取占空比,以讀取溫度傳感器的值。
循環時間(即,第一持續時間210加第二持續時間212)確定切換的頻率。諸如例如濕度傳感器的一些傳感器輸出頻率。循環時間可與傳感器的輸出頻率成比例。
命令可包括頻率值,并且從器件可以以由頻率值指定的頻率執行切換。這例如在從器件響應于傳感器輸出對切換的占空比進行調整時是有用的。頻率可基于耦合到數據線的低通濾波器的截止頻率來設置。命令可包括占空比值,并且從器件可以以由占空比值指定的占空比執行切換。這例如在從器件響應于傳感器輸出對切換頻率進行調整時是有用的。
從器件繼續切換i2c數據線,直到終止事件發生。終止事件可以是時鐘線的下降沿220。在終止事件之后,時鐘線變為邏輯高222,并且i2c總線可用于諸如圖1中所示的i2c通信。主器件必須具有將時鐘線驅動為邏輯低的能力,因為i2c通信需要該能力。因此,對于主器件通過操縱時鐘線來生成終止事件來說并不是負擔。
終止事件可能是切換超過最大持續時間218。命令可包括最大持續時間的值。通過這種方式,一旦發生最大持續時間,從器件就將自動放棄對數據線的控制。這消除了主器件生成終止事件的負擔。終止事件可以是切換超過邏輯電平的最大轉變次數,并且命令包括最大轉變次數的值。類似地,這也消除了主器件生成終止事件的負擔。可選地,從器件可僅僅繼續切換i2c數據線,直到從器件被斷電。一旦從器件被重新通電,它就可用于i2c通信。
切換數據線而不是時鐘線是有利的,這樣i2c總線上的其他器件不會將切換解釋為i2c傳輸。由于i2c時鐘線在切換期間為高,因此其他i2c從器件會將切換解釋為一系列的i2c起始條件和i2c停止條件。i2c從器件將不會對這些事件做出反應,因為它們將不會接收到對它們的i2c地址尋址的命令。
經由i2c時鐘引腳和i2c數據引腳接收命令可在終止事件發生之后發生。在該實施例中,從器件可在上電之后自動開始切換數據線。
圖3示出了根據本公開的另一方面的示意圖。串行通信系統300具有i2c主器件302和i2c從器件304。主器件302具有連接到與從器件304的i2c時鐘引腳308連接的i2c時鐘線306的開路集電極i/o。主器件302具有連接到與從器件304的i2c數據引腳312連接的i2c數據線310的開路集電極i/o。從器件304具有連接到系統接地的接地引腳314和連接到與電壓供給320(例如,3.3v)連接的開關318的電源引腳316。開關318可以是例如晶體管。耦合到主器件302的控制線322控制開關318。上拉電阻器324和326將開關318的輸出端連接到時鐘線306和數據線310。主器件302可使用開關318來給從器件304通電和斷電。
數據線310也連接到被配置為單位增益緩沖器的運算放大器328的輸入端。運算放大器328的輸出端連接到由串聯的電阻器330和接地的電容器332構成的低通濾波器。低通濾波器的輸出端連接到比較器334的輸入端。比較器334的另一輸入端連接到電壓參考336。比較器334的輸出端連接到主器件的喚醒輸入端338,該喚醒輸入端338被配置為當其被驅動為高時將主器件從睡眠中喚醒。
從器件包含模數轉換器(adc)340。adc輸入引腳342經由上拉電阻器346連接到由開關318的輸出端偏置的熱敏電阻器344。adc輸入引腳342處的電壓與熱敏電阻器344的電阻有關,該熱敏電阻器的電阻與熱敏電阻器344的溫度有關。adc的數字輸出端連接到占空比寄存器348,該占空比寄存器可以是例如硬件寄存器、存儲器單元等。
在操作中,主器件經由控制線322接通開關318,向從器件發送命令,然后進入低功耗睡眠模式。命令是經由時鐘線306和數據線310被發送到從器件的i2c通信。作為響應,從器件通過如圖2中所示在將i2c數據引腳312驅動為邏輯低和不將i2c數據引腳驅動為邏輯低之間交替來切換i2c數據引腳312。主器件進入睡眠,并且因此忽略數據線310的切換。切換的占空比與占空比寄存器348成比例。運算放大器328驅動低通濾波器,其將ac信號轉換為dc信號,因為低通濾波器的截止頻率遠低于切換的頻率。如果低通濾波器的輸出大于對應于由熱敏電阻器測量的過高溫度的電壓參考336,則比較器334的輸出變為高,喚醒輸入338變為高,并且主器件302從睡眠中喚醒。主器件302通過使時鐘線306脈沖為低來響應,從器件304檢測該事件并停止切換數據引腳312,并且數據線326通過上拉電阻器326被拉到邏輯高。主器件現在可以在時鐘線306和數據線310上發起i2c通信。
串行通信系統300使用相同的i2c數據線310用于與i2c時鐘線306同步的i2c通信,并用于pwm信息到模擬電路的異步傳輸。i2c數據線310的這種雙重使用使主器件能夠基于數據線pwm信號進入睡眠和喚醒。
注意的是,低通濾波器截止頻率可被設置為遠低于i2c時鐘頻率,例如截止頻率可以是100hz,并且i2c時鐘頻率可以是100khz。在該配置中,i2c數據引腳的切換可連續發生,并且i2c通信可在i2c數據引腳為邏輯高時發生。相對短的持續時間,i2c通信的高頻突發將不會顯著改變低通濾波器的輸出。在該示例中,i2c通信與i2c數據引腳的切換同步。
圖4示出了根據本公開的另一方面的操作i2c從器件的方法400。i2c從器件具有i2c時鐘引腳和i2c數據引腳。
在塊402處,從器件經由i2c時鐘引腳和i2c數據引腳接收命令。在塊404處,從器件在第一持續時間內將i2c數據引腳驅動為邏輯低。在塊406處,從器件在第二持續時間內不將i2c數據引腳驅動為邏輯低。不驅動i2c數據引腳將導致邏輯高,因為在i2c系統中,數據引腳具有到邏輯高電壓的上拉電阻器。重復塊404和406將產生圖2的右側部分207中所示的波形。
在塊408處,從器件確定終止事件是否發生。如果沒發生,則重復塊404和406。如果終止事件確實發生,則方法在塊410處結束。終止事件可以是例如i2c時鐘引腳轉變為邏輯低,i2c時鐘引腳為邏輯低等。命令可包括最大持續時間,并且終止事件可以是塊404和406發生的總時間超過最大持續時間。命令可包括塊404和406發生的最大發生次數,并且終止事件可以是塊404和406發生超過最大發生次數。終止事件可能是i2c從器件被斷電。
命令可包括頻率值,并且塊404和406以由頻率值指定的頻率重復。命令可包括持續時間值,并且第一持續時間可基于持續時間值。可選地,命令可包括持續時間值,并且第一持續時間和第二持續時間的和可基于持續時間值。
注意的是,塊402可代替塊410在塊408之后發生。在該實施例中,i2c數據引腳被切換直到終止事件發生,然后從器件經由i2c時鐘引腳和i2c數據引腳接收命令。在該實施例中,從器件可在供電周期之后自動開始切換i2c數據引腳,直到終止事件發生。這在其中主器件在供電周期之后在睡眠模式下開始并如上所述切換喚醒主器件的系統中將是有用的。
前述描述示出的是本公開的各方面和示例。其并非旨在窮舉。而是,其被選擇以示出本公開的原理及其實際的應用,以使得本領域中的普通技術人員能夠利用本公開,包含其各種自然而得的修改。所有的修改及變化被認為是在由所附的權利要求所確定的本公開的范圍內。相當明顯的修改包括將各種實施例的一個或更多個特征與其它實施例的特征進行組合。