專利名稱:控制串行數(shù)據線的狀態(tài)轉換的定時的方法和設備的制作方法
控制串行數(shù)據線的狀態(tài)轉換的定時的方法和設備 相關專利申請的交叉引用本申請要求2007年1月23日在韓國知識產權局提交的韓國專利申請 No.10-2007-0007240的優(yōu)先權,通過引用將其公開全部合并于此。技術領域符合本發(fā)明的方法和設備涉及智能接口控制器(I2C),并更具體地,涉 及用于在I2C控制器中控制串行數(shù)據線(SDA)的狀態(tài)轉換的定時的方法和— 設備。
背景技術:
I2C總線是通過僅使用兩條信號線來連接外圍設備而在外圍設備之間提 供通信鏈路的標準雙向串行總線。I2C總線包括串行時鐘線(SCL)和串行 數(shù)據線(SDA)。 12C總線目前是嵌入式裝置的實際標準解決方案。圖1圖示了 I2C總線的基本協(xié)議。參考圖1,將通過SDA傳輸?shù)拇袛?shù)據格式化為包括9比特數(shù)據,該9 比特數(shù)據包含1比特確認(ACK)和8比特數(shù)據。主裝置(master)生成用于數(shù)據傳送的時鐘信號。開始信號和結束信號 用于指明數(shù)據傳送的開始和結束。當主裝置從從裝置收到每8比特數(shù)據傳送 的ACK信號時,它確定數(shù)據傳送成功。當要求在數(shù)據傳送結束之前再次傳 送數(shù)據時,可以使用重新開始。當主裝置啟動開始(START)條件時,連接到I2C總線的從裝置等待隨 后的數(shù)據。在開始條件下,SCL和SDA二者為高的狀態(tài)轉換到SCL為高而 SDA為低的狀態(tài)。當所有操作結束時,主裝置啟動停止(STOP)條件。在停止條件下, SDA從低轉換到高,同時SCL為高。在實際數(shù)據傳送中,數(shù)據的狀態(tài)轉換必須僅在SCL為低的時間段中發(fā) 生,而在SCL為高的時間段中的任何時間都可對SDA信號進行采樣。這里,數(shù)據是8比特數(shù)據,并且首先傳送最高有效位(MSB )。圖2A和2B圖示了其中使用12C總線連接主裝置和從裝置的電路。 參考圖2A和2B,首先在裝置內部以數(shù)字形式生成與I2C總線相關聯(lián)的 SDA信號和SCL信號。然而,在傳送期間,這些信號由于上拉電阻、串聯(lián) 電阻、布線電容、和橫向溝道(cross channel)電容而失真。該失真主要是 由在每個裝置或在電路板中生成的寄生電阻和寄生電容引起的。因此,出現(xiàn)各種問題。例如,所傳送數(shù)據的狀態(tài)轉換時間過分增加,以 及信號電壓不足以被作為數(shù)字信號來處理,這是因為電荷沒有被充分地充電 和放電。圖3是圖示了如下情況的時序圖,其中當由于在SCL中存在大的RC分 量而使得SCL的時鐘信號的下降時間增加時,SCL的狀態(tài)轉換發(fā)生在SDA 的狀態(tài)轉換之后。參考圖3,圖解為好像SDA在SCL為高的時間段中從高轉換為低,并 且I2C控制器可將此識別為生成重新開始信號。在傳送8比特數(shù)據和1比特ACK的時間段中,如果將所傳送的數(shù)據識 別為數(shù)據傳送的開始信號或結束信號,則I2C控制器和外圍設備不能滿足 I2C的定時標準,并因此發(fā)生故障或者陷于錯誤狀態(tài)。此外,難以精確地預測實際裝置的寄生分量。而且,上面的問題通常出 現(xiàn)在完全配置好電路板之后??赡苁褂醚a償電路或替換所述裝置,但是這些 方法需要很多時間和成本。發(fā)明內容本發(fā)明的示范實施例克服了上面的缺點以及上面沒有描述的其它缺點。 此外,不需要本發(fā)明克服上述缺點,并且本發(fā)明的示范實施例可能沒有克服 上述問題中的任一個。本發(fā)明提供了 一種用于在I2C控制器中控制串行數(shù)據線(SDA )的狀態(tài) 轉換的定時的方法和設備,以便通過在I2C控制器中控制SDA的狀態(tài)轉換 的定時來防止I2C通信中的故障,而無需使用需要大量時間和成本的補償電 路。根據本發(fā)明的一方面,提供了一種用于控制串行數(shù)據線(SDA)的狀態(tài) 轉換的定時的設備,所述設備包括串行時鐘線(SCL)邊沿檢測器,用于檢測SCL的時鐘信號的邊沿;計數(shù)器,用于當SCL邊沿檢測器檢測到SCL 的時鐘信號的下降沿時,對SDA的狀態(tài)轉換的保持時間進行計數(shù);SDA發(fā) 生器,用于如果保持時間的計數(shù)結束,則轉換SDA的狀態(tài);以及處理器, 用于對接SCL邊沿檢測器、計數(shù)器和SDA發(fā)生器。所述設備還可包括I2C從接口 ,其通過從中央處理單元(CPU)接收保 持時間來設置計數(shù)器的保持時間。所述處理器可確定SDA的狀態(tài)轉換是為了傳送數(shù)據傳送的開始信號或 結束信號、還是為了實際數(shù)據傳送。如果SDA的狀態(tài)轉換是為了傳送數(shù)據傳送的開始信號或結束信號,則 SDA發(fā)生器可轉換SDA的狀態(tài),而沒有對保持時間進行計數(shù)。所述計數(shù)器可與從I2C控制器的外部接收的系統(tǒng)時鐘信號同步地進行 計數(shù)。所述計數(shù)器可執(zhí)行從保持時間開始向下計數(shù)到0。 如果SCL邊沿檢測器檢測到時鐘信號的上升沿,則計數(shù)器可初始化保 持時間。所述I2C從接口可包括用于保持時間使能設置的寄存器。 可以根據從裝置的傳送速度,而將計數(shù)器設置為不同的保持時間。 所述保持時間可以小于時鐘信號的上升沿與SDA的狀態(tài)轉換之間的時 間間隔。根據本發(fā)明的又一方面,提供了一種在I2C控制器中控制串行數(shù)據線 (SDA)的狀態(tài)轉換的定時的方法,所述方法包括檢測串行時鐘線(SCL) 的時鐘信號的下降沿;如果檢測到所述下降沿,則對SDA的狀態(tài)轉換的保 持時間進行計數(shù);以及如果保持時間的計數(shù)結束,則轉換SDA的狀態(tài)。根據本發(fā)明的又一方面,提供了 一種用于存儲程序的計算機可讀記錄介 質,該程序用于運行在I2C控制器中控制串行數(shù)據線(SDA)的狀態(tài)轉換的 定時的方法,所述方法包括檢測串行時鐘線(SCL)的時鐘信號的下降沿; 如果4企測到所述下降沿,則對SDA的狀態(tài)轉換的保持時間進行計數(shù);以及 如果保持時間的計數(shù)結束,則轉換SDA的狀態(tài)。
通過接下來參考附圖詳細描述其示范實施例,本發(fā)明的上面和其它方面有符號打包雙字的寄存器內表示515類似于無符號打包雙字的寄存器內表示514。注意,符號位("s")是每個雙字數(shù)據元素的第 32位(MSB)。圖6還分別示出了無符號和有符號打包四字的寄存器內格式516 和517。無符號打包四字的寄存器內表示516示出了擴展寄存器210 怎樣存儲2個四字(每個64位)的數(shù)據元素。四字0存儲在寄存器 的位63到位0。四字1存儲在寄存器的位127到位64。有符號打包四字的寄存器內表示517類似于無符號打包四字的 寄存器內表示516。注意,符號位("s")是每個四字數(shù)據元素的第 64位(MSB)。一個(或多個)邏輯比較-和-交換、設置-零-和-進位-標志操作對于本發(fā)明的至少一個實施例,SRC1寄存器可以保存打包數(shù)據 或非打包雙四字數(shù)據(Sourcel),并且DEST寄存器也可以保存打包 數(shù)據或非打包雙四字數(shù)據(Dest)。對于至少一個實施例,在DEST 寄存器中的Dest值或在SRC1寄存器中的Sourcel值可以是要用作逐 位掩碼值的雙四字非打包數(shù)據。通常,在LCSZC指令的第一步中,執(zhí)行兩個比較操作。通過對 Sourcel中的每個位與Dest的相應位執(zhí)行獨立的邏輯比較(逐位AND 操作),產生第一中間結果。通過對Sourcel中的每個位與Dest的相 應位的反碼執(zhí)行獨立的邏輯比較(逐位AND操作),產生第二中間 結果。這些中間結果可以存儲在臨時存儲單元(比如,例如,寄存器) 或者可以根本不由處理器存儲。圖7a是根據本發(fā)明的至少一個實施例的執(zhí)行LCSZC操作的一般 方法700的流程圖。這里所公開的處理700和其它處理由多個處理塊 來執(zhí)行,所述處理塊可以包括專用硬件或可由通用機器或由專用機器 或由它們的組合執(zhí)行的軟件或固件操作碼。在下面的段落中,將參考 圖la討論圖7a到7d。圖7a示出了方法700開始于"開始"處,并且進行到處理塊701。 在處理塊701,解碼器165對處理器109接收的控制信號進行解碼。 因此,解碼器165對LCSZC指令的操作碼進行解碼。然后處理從處 理塊701進行到處理塊702。SCL邊沿檢測器404檢測SCL的時鐘信號的上升沿和下降沿,并將檢 測信號傳送到處理器402。 SCL的時鐘信號是由SCL發(fā)生器(未示出)生成的。當傳送實際數(shù)據(而不是數(shù)據傳送的開始信號或結束信號)時,在SCL 邊沿檢測器404檢測到SCL的時鐘信號的下降沿時,可能進行SDA的狀態(tài) 轉換(因為SCL為低)。處理器402確定SDA的狀態(tài)轉換是為了傳送數(shù)據 傳送的開始信號或結束信號還是為了傳送實際數(shù)據。當SCL邊沿檢測器404檢測到SCL的時鐘信號的下降沿時,計數(shù)器406 對SDA的狀態(tài)轉換的保持時間進行計數(shù)。所述保持時間指明在發(fā)生SCL的如圖3所示,當由于SCL中的大RC分量使得SCL的時鐘信號的下降 時間增加時,需要保持時間,來防止從裝置414識別出SCL的狀態(tài)轉換發(fā) 生在SDA的狀態(tài)轉換之后。計數(shù)器406與從I2C控制器外部接收的系統(tǒng)時鐘信號(即,圖5和6中 的PCLK)同步地對保持時間進行計數(shù)。因此,當SCL的時鐘信號的下降沿 出現(xiàn)時,與PCLK同步地對保持時間進行計數(shù)。當結束保持時間的計數(shù)時, 計數(shù)器406將其報告給SDA發(fā)生器408。 SDA發(fā)生器408改變SDA狀態(tài)。當SCL邊沿檢測器404檢測到SCL的時鐘信號的上升沿時,處理器402 初始化計數(shù)器406的保持時間。SDA發(fā)生器408根據SCL的時鐘信號將數(shù)據記錄到從裝置414并從該 從裝置414讀取數(shù)據。當計數(shù)器406結束保持時間的計數(shù)時,SDA發(fā)生器 408改變SDA狀態(tài)。然而,當SDA的狀態(tài)轉換是為了傳送數(shù)據傳送的開始信號或結束信號 時,SDA發(fā)生器408在沒有對保持時間進行計數(shù)的情況下改變SDA的狀態(tài)。 這是因為,當生成數(shù)據傳送的開始信號或結束信號時,如果SDA的狀態(tài)轉 換延遲,則可以減少數(shù)據傳送的開始或結束所需要的定時裕度。因此,處理器402確定SDA的狀態(tài)轉換是為了傳送數(shù)據傳送的開始信 號或結束信號還是為了傳送實際數(shù)據,并僅僅在傳送實際數(shù)據時對保持時間 進行計數(shù)。用于控制SDA的狀態(tài)轉換的定時的設備400可包括在片上系統(tǒng) (system-on-chip )內。圖4B是圖示了根據本發(fā)明又一示范實施例的用于控制SDA的狀態(tài)轉換 的定時的設備的框圖。參考圖4B,根據本發(fā)明又一示范實施例的用于控制SDA的狀態(tài)轉換的 定時的設備400包括處理器402、 SCL邊沿檢測器404、計數(shù)器406、 SDA 發(fā)生器408、和I2C從接口410。圖4B中的處理器402、 SCL邊沿檢測器404、計數(shù)器406、和SDA發(fā) 生器408等同于它們在圖4A中的對應部分,并因此將為了簡明而省略其詳I2C從接口 410與中央處理單元(CPU) 412對接。I2C從接口 410可允 許通過從CPU412接收保持時間并存儲該保持時間,來設置計數(shù)器406的保 持時間。12C從接口 410可包括用于保持時間使能設置的寄存器,以便打開/關閉 通過對保持時間進行計數(shù)所實現(xiàn)的延遲功能。CPU 412控制I2C從接口 410來設置計數(shù)器406的保持時間。可根據從 裝置的傳送速度來不同地設置計數(shù)器406的保持時間。期望該保持時間小于在SCL的時鐘信號的上升沿與SDA的狀態(tài)轉換之 間的時間間隔。作為在SCL的時鐘信號的下降沿與SDA的狀態(tài)轉換之間的 時間間隔的保持時間通常很小,但是作為在SCL的時鐘信號的上升沿與SDA 的狀態(tài)轉換之間的時間間隔的建立時間(setup time )需要相對大的定時裕度。圖5是圖示了根據本發(fā)明示范實施例的在SCL的時鐘信號的下降沿之 后在保持時間期間延遲SDA的狀態(tài)轉換的情況的時序圖。參考圖5,本示范實施例中的保持時間設置為6。 PCLK是從I2C控制 器的外部接收的系統(tǒng)時鐘信號。I2C—CLK是用于傳送SDA數(shù)據的SCL的時 鐘信號。12C^DATA是通過SDA傳送的數(shù)據。在I2C—DATA為低時,計數(shù)器406在I2C—CLK從高改變?yōu)榈蜁r開始對 保持時間進行計數(shù)。在本示范實施例中,計數(shù)器406從保持時間開始執(zhí)行向 下計數(shù)到0。在結束向下計數(shù)之后,SDA發(fā)生器408改變I2C—DATA的狀態(tài)。盡管 在保持時間期間延遲了 I2C—DATA的狀態(tài)轉換,但是總系統(tǒng)的操作不受影 響,因為PCLK的頻率實際上比I2C—CLK的頻率高很多。此外,可通過狀 態(tài)轉換的延遲來防止I2C通信中的故障。圖6是圖示了根據本發(fā)明示范實施例的在SCL的時鐘信號的上升沿之 后初始化計數(shù)器的定時的時序圖。參考圖6,將保持時間設置為6,計數(shù)器406從保持時間開始執(zhí)行向下 計數(shù)到0。在傳送實際數(shù)據的時間段中,在SCL的時鐘信號的上升沿出現(xiàn)之后, 沒有出現(xiàn)SDA的狀態(tài)改變。因此,如果SCL邊沿檢測器404檢測到SCL的 時鐘信號的上升沿,則根據預定的保持時間來初始化計數(shù)值。在確定了到從裝置414的I2C傳送速度、并且配置了與I2C相關聯(lián)的所 有電路之后,可通過測量通過觀察所配置的電路所獲取的12C模擬信號的定 時,來設置保持時間。12C從接口 410可包括用于保持時間使能設置的寄存器。該寄存器使得 有可能打開/關閉保持時間設置。圖7是圖示了根據本發(fā)明示范實施例的用于控制SDA的狀態(tài)轉換的定 時的方法的流程圖。參考圖7,在操作701中,12C控制器檢測SCL的時鐘信號的下降沿。 當傳送實際數(shù)據(而不是數(shù)據傳送的開始信號或結束信號)時,在檢測到 SCL的時鐘信號的下降沿并且SCL的數(shù)據為低的情況下,可能進行SDA的 狀態(tài)轉換。在操作702中,當檢測到SCL的時鐘信號的下降沿時,對SDA的狀態(tài) 轉換的保持時間進行計數(shù)。與從I2C控制器的外部接收的系統(tǒng)時鐘信號(即, 圖5和6中的PCLK)同步地對保持時間進行計數(shù)。因此,如果SCL的時鐘 信號的下降沿出現(xiàn),則與PCLK對應地計數(shù)保持時間。在操作703中,12C控制器確定保持時間的計數(shù)是否結束。在操作704 中,在計數(shù)結束時,12C控制器改變SDA的狀態(tài)。圖8是圖示了根據本發(fā)明又一示范實施例的用于控制SDA的狀態(tài)轉換 的定時的方法的流程圖。參考圖8,在操作801中,12C控制器通過從CPU412接收SDA的狀態(tài) 轉換的保持時間,來建立保持時間。例如,可以經由I2C從接口 410而從 CPU 412接收所述保持時間。圖8中的操作802到805分別對應于圖7中的操作701到704,并因此 將為了筒明而省略其詳細描述。在操作806中,I2C控制器檢測SCL的時鐘信號的上升沿。在操作807 中,12C控制器在檢測到SCL的時鐘信號的上升沿時初始化保持時間。在傳 送實際數(shù)據(而不是數(shù)據傳送的開始信號或結束信號)的時間段內,在SCL 的時鐘信號的上升沿出現(xiàn)之后,沒有出現(xiàn)SDA的狀態(tài)轉換。因此,12C控制 器此時初始化所述保持時間(即,計數(shù)值)。圖9是圖示了根據本發(fā)明又一示范實施例的用于控制SDA的狀態(tài)轉換 的定時的方法的流程圖。參考圖9,在操作901中,I2C控制器確定SDA的狀態(tài)轉換是為了傳送 數(shù)據傳送的開始信號或結束信號還是為了傳送實際數(shù)據。這是因為,如果在 數(shù)據傳送的開始信號或結束信號出現(xiàn)時延遲了 SDA、的狀態(tài)轉換,則減少用 于傳送數(shù)據傳送的開始信號或結束信號所需要的定時裕度。當SDA的狀態(tài)轉換是為了傳送數(shù)據傳送的開始信號或結束信號時,在 操作902中檢測到SCL的時鐘信號的下降沿之后,在搡作903中改變SDA 的狀態(tài),而沒有對保持時間進行計數(shù)。然而,如果SDA的狀態(tài)轉換是為了傳送實際數(shù)據,則在操作904到907 中,12C控制器對保持時間進行計數(shù)并改變SDA的狀態(tài)。圖9中的操作904 到907分別對應于圖7中的操作701到704,并因此將為了簡明而省略其詳 細描述。圖10是圖示了根據本發(fā)明又一示范實施例的用于控制SDA的狀態(tài)轉換 的定時的方法的流程圖。參考圖10,在操作1001中,12C控制器確定是否設置了保持時間使能 設置。提供I2C控制器的確定操作是為了允許用戶自由地確定保持時間使能 設置的采用,因為用戶可能不想使用保持時間使能設置。如果設置了保持時間使能設置,則在操作1002中,I2C控制器確定SDA 的狀態(tài)轉換是為了傳送數(shù)據傳送的開始信號或結束信號還是為了傳送實際 數(shù)據。圖10中的操作1003到1007分別對應于圖9中的操作902到907,并 因此將為了筒明而省略其詳細描述。然而,如果沒有設置保持時間使能設置,則在操作1008中檢測到SCL 的時鐘信號的下降沿之后,在操作1007中在沒有計數(shù)保持時間的情況下改 變SDA的狀態(tài)。在操作1009中,I2C控制器檢測SCL的時鐘信號的上升沿。在操作1010中,如果檢測到SCL的時鐘信號的上升沿,則12C控制器初始化保持時間。還可以將本發(fā)明實施為計算機可讀記錄介質上的計算機可讀代碼。所述 計算機可讀記錄介質是可以存儲其后可由計算機系統(tǒng)讀取的數(shù)據的任何數(shù) 據存儲裝置。計算機可讀記錄介質的示例包括只讀存儲器(ROM )、隨機存取存儲器 (RAM)、 CD-ROM、磁帶、軟盤、光學數(shù)據存儲裝置、和載波(諸如通 過因特網進行的數(shù)據傳送)。計算機可讀記錄介質還可以分布在通過網絡耦 接的計算機系統(tǒng)上,從而以分布式方式存儲并運行所述計算機可讀代碼。根據本發(fā)明的用于控制SDA的狀態(tài)轉換的定時的設備可包括在I2C控 制器中或包括在片上系統(tǒng)中。如上所述,根據本發(fā)明的用于在I2C控制器中控制SDA的狀態(tài)轉換的 定時的設備和方法,利用計數(shù)器將SDA的狀態(tài)轉換的定時控制為保持預定 時間。因此,可以在沒有使用需要很多時間和成本的補償電路的情況下,防 止I2C通信中的故障。盡管已經參考本發(fā)明的示范實施例而具體示出并描述了本發(fā)明,但是本 領域的普通技術人員將理解,在不脫離由接下來的權利要求所限定的本發(fā)明 的精神和范圍的情況下,可以對本發(fā)明進行形式和細節(jié)上的各種改變。
權利要求
1.一種用于控制串行數(shù)據線(SDA)的狀態(tài)轉換的定時的設備,所述設備包括串行時鐘線SCL邊沿檢測器,用于檢測SCL的時鐘信號的邊沿;計數(shù)器,用于當該SCL邊沿檢測器檢測到SCL的時鐘信號的下降沿時,對SDA的狀態(tài)轉換的保持時間進行計數(shù);SDA發(fā)生器,用于如果保持時間的計數(shù)結束,則轉換SDA的狀態(tài);以及處理器,用于對接所述SCL邊沿檢測器、計數(shù)器和SDA發(fā)生器。
2. 根據權利要求l的設備,還包括智能接口控制器(I2C)從接口,用 于通過從中央處理單元(CPU)接收保持時間,來設置計數(shù)器的保持時間。
3. 根據權利要求l的設備,其中所述處理器確定SDA的狀態(tài)轉換是為 了傳送數(shù)據傳送的開始信號或數(shù)據傳送的結束信號、還是為了實際數(shù)據傳 送。
4. 根據權利要求3的設備,其中,如果SDA的狀態(tài)轉換是為了傳送數(shù) 據傳送的開始信號或數(shù)據傳送的結束信號,則SDA發(fā)生器改變SDA的狀態(tài), 而無需對保持時間進行計數(shù)。
5. 根據權利要求1的設備,其中,所述計數(shù)器與從I2C控制器的外部 接收的系統(tǒng)時鐘信號同步地進行計數(shù)。
6. 根據權利要求1的設備,所述計數(shù)器執(zhí)行從保持時間開始向下計數(shù)到0。
7. 根據權利要求l的設備,其中,如果該SCL邊沿檢測器檢測到時鐘 信號的上升沿,則該計數(shù)器初始化保持時間。
8. 根據權利要求2的設備,其中所述I2C從接口包括用于保持時間使 能設置的寄存器。
9. 根據權利要求1的設備,其中根據從裝置的傳送速度而將計數(shù)器設 置為不同的保持時間。
10. 根據權利要求l的設備,其中所述保持時間小于時鐘信號的上升沿 與SDA的狀態(tài)轉換之間的時間間隔。
11. 一種在I2C控制器中控制串行數(shù)據線(SDA)的狀態(tài)轉換的定時的方法,所述方法包括檢測串行時鐘線(SCL )的時鐘信號的下降沿;如果檢測到SCL的時鐘信號的下降沿,則對SDA的狀態(tài)轉換的保持時 間進行計數(shù);以及如果保持時間的計數(shù)結束,則傳送SDA的狀態(tài)。
12. 根據權利要求11的方法,還包括通過從中央處理單元(CPU)接 收SDA的狀態(tài)轉換的保持時間,來設置該保持時間。
13. 根據權利要求ll的方法,還包括確定SDA的狀態(tài)轉換是為了傳送 數(shù)據傳送的開始信號或數(shù)據傳送的結束信號、還是為了傳送實際數(shù)據。
14.根據權利要求13的方法,還包括,如果SDA的狀態(tài)轉換是為了傳 送數(shù)據傳送的開始信號或數(shù)據傳送的結束信號,則改變SDA的狀態(tài),而無 需對保持時間進行計數(shù)。
15. 根據權利要求11的方法,其中所述對保持時間進行計數(shù)的步驟包 括與從I2C控制器的外部接收的系統(tǒng)時鐘信號同步地進行計數(shù)。
16. 根據權利要求11的方法,其中所述對保持時間進行計數(shù)的步驟包 括執(zhí)行/人保持時間開始執(zhí)行向下計數(shù)到0。
17. 根據權利要求ll的方法,還包括 檢測SCL的時鐘信號的上升沿;以及 如果檢測到時鐘信號的上升沿,則初始化保持時間。
18. 根據權利要求ll的方法,還包括確定是否設置保持時間使能設置。
19. 根據權利要求11的方法,其中所述對保持時間進行計數(shù)的步驟包 括根據從裝置的傳送速度而不同地設置計數(shù)器的保持時間。
20. 根據權利要求11的方法,其中所述保持時間小于時鐘信號的上升 沿與SDA的狀態(tài)轉換之間的時間間隔。
21. —種用于存儲程序的計算機可讀記錄介質,該程序用于運行在I2C 控制器中控制串行數(shù)據線(SDA)的狀態(tài)轉換的定時的方法,所述方法包括檢測串行時鐘線(SCL )的時鐘信號的下降沿;如果檢測到SCL的時鐘信號的下降沿,則對SDA的狀態(tài)轉換的保持時 間進行計數(shù);以及如果保持時間的計數(shù)結束,則傳送SDA的狀態(tài)。
22. —種用于控制串行數(shù)據線(SDA)的狀態(tài)轉換的定時的I2C控制器,所述I2C控制器包括串行時鐘線SCL邊沿檢測器,用于檢測SCL的時鐘信號的邊沿; 計數(shù)器,用于當SCL邊沿檢測器檢測到SCL的時鐘信號的下降沿時,對SDA的狀態(tài)轉換的保持時間進行計數(shù);SDA發(fā)生器,用于在保持時間的計數(shù)結束時轉換SDA的狀態(tài);以及處理器,用于對接所述SCL邊沿檢測器、計數(shù)器和SDA發(fā)生器。
23. —種用于控制串行數(shù)據線(SDA)的狀態(tài)轉換的定時的片上系統(tǒng),所述片上系統(tǒng)包括串行時鐘線SCL邊沿檢測器,用于檢測SCL的時鐘信號的邊沿; 計數(shù)器,用于當該SCL邊沿檢測器檢測到SCL的時鐘信號的下降沿時,對SDA的狀態(tài)轉換的保持時間進行計數(shù);SDA發(fā)生器,用于在該保持時間的計數(shù)結束時,轉換SDA的狀態(tài);以及處理器,用于對接所述SCL邊沿檢測器、計數(shù)器和SDA發(fā)生器。
全文摘要
提供了一種用于在I2C控制器中控制串行數(shù)據線(SDA)的狀態(tài)轉換的定時的方法和設備。所述設備包括處理器、串行時鐘線(SCL)邊沿檢測器、計數(shù)器和SDA發(fā)生器。所述處理器控制I2C控制器。所述SCL邊沿檢測器檢測SCL的時鐘信號的邊沿。如果該SCL邊沿檢測器檢測到SCL的時鐘信號的下降沿,則所述計數(shù)器對SDA的狀態(tài)轉換的保持時間進行計數(shù)。如果保持時間的計數(shù)結束,則所述SDA發(fā)生器轉換SDA的狀態(tài)。因此,可以在不使用需要大量時間和成本的補償電路的情況下,防止I2C通信中的故障。
文檔編號G06F13/42GK101231628SQ20071015249
公開日2008年7月30日 申請日期2007年10月15日 優(yōu)先權日2007年1月23日
發(fā)明者李桐洙, 金起募 申請人:三星電子株式會社