一種處理i2c通信對接延時方法及數字光處理投影裝置的制造方法
【專利摘要】本發明涉及電子通信領域,尤其涉及一種處理I2C通信對接延時的方法及數字光處理投影裝置,用于解決現有技術中有可能出現光機驅動器系統還未處理完該次的指令,而主設備會認為從設備的數據傳輸失敗的問題。所述方法包括:主控器向光機驅動器發送寄存器地址報文后,若所述主控器和所述光機驅動器之間的串行時鐘SCL信號為低電平信號,則監控所述SCL信號;所述主控器在所述SCL信號變為高電平信號后,若接收到所述光機驅動器發送的針對所述寄存器地址報文對應的響應報文,則向所述光機驅動器發送數據報文。本發明實施例能夠更加準確的獲得從設備向主設備發送響應報文的時間,使得主控器與光機驅動器之間的通訊更加準確及時。
【專利說明】
一種處理12C通信對接延時方法及數字光處理投影裝置
技術領域
[0001]本發明涉及電子通信領域,尤其涉及一種處理I2C通信對接延時方法及數字光處 理投影裝置。
【背景技術】
[0002] I2C(Inter - Integrated Circuit)總線是由PHILIPS公司開發的兩線式串行總 線,I2C總線由一根串行時鐘總線SCL和一根串行數據總線SDA組成,用于連接微控制器及其 外圍設備。I2C總線是微電子通信控制領域廣泛采用的一種總線標準。它是同步通信的一種 特殊形式,具有接口線少,控制方式簡單,器件封裝形式小,通信速率較高等優點。
[0003] 在數字光處理(DLP,Digital Light Processing)投影裝置中,包括主控器和光機 驅動器系統,光機驅動器系統包括光機驅動器、光機驅動器電源、光源、數字微鏡晶片(DMD, Digital Micromirror Device)、透鏡模塊等,光機驅動器作為主控器的從設備,與主控器 通過第一 I2C總線進行通信,同時,光機驅動器還可以作為主設備,通過第二I2C總線與光機 電源驅動器、光源驅動器、數字微鏡晶片、透鏡模塊等進行I2C通信,在數字光處理投影裝置 中,每個器件都有一個唯一的地址,無論是主控器、光機電源驅動器、光源驅動器、存儲器或 鍵盤接口都有一個唯一的地址。光機驅動器是數字光處理投影裝置中的主控器的從設備, 又是光機系統中的主設備,而光機系統中的其它器件,例如光機電源驅動器、光源驅動器、 數字微鏡晶片、透鏡模塊等為光機系統中的從設備。在主控器作為主設備發送完寄存器地 址給光機驅動器后,光機驅動器并不會立即返回應答給主控器,而是在光機驅動器處理完 光機系統的指令后才會回應應答信號,此時主控器與光機驅動器之間不能通過標準I2C模 式完成。
[0004] 現有技術中,通過在標準的I2C通訊過程中增加固定的延時間隔以使主設備在發 送完指令后等待固定的延時時間,來匹配可能會出現的光機驅動器沒有立即回應應答信號 的問題,但是由于光機驅動器每次處理的指令不同,光機驅動器處理每次指令產生的時延 不同,而主設備等待固定的延時間隔,有可能出現下列情況:光機驅動器系統還未處理完該 次的指令,而延時間隔已到時,使得主設備認為未接收到從設備發送的響應報文,確定此時 與從設備的數據傳輸失敗。
【發明內容】
[0005] 本發明提供一種處理I2C通信對接延時方法及數字光處理投影裝置,用于解決現 有技術中有可能出現光機驅動器系統還未處理完該次的指令,而主設備會認為光機驅動器 的數據傳輸失敗的問題。
[0006] 本發明提供一種處理I2C通信對接延時的方法,用于數字光處理投影裝置,所述方 法包括:
[0007] 主控器向光機驅動器發送寄存器地址報文后,若所述主控器和所述光機驅動器之 間的串行時鐘SCL信號為低電平信號,則監控所述SCL信號;
[0008] 所述主控器在所述SCL信號變為高電平信號后,若接收到所述光機驅動器發送的 針對所述寄存器地址報文對應的響應報文,則向所述光機驅動器發送數據報文。
[0009] 本發明實施例中,當主控器向光機驅動器發送寄存器地址報文后,若此時主控器 和光機驅動器之間SCL信號為低電平,即光機驅動器已接收到主控器發送的寄存器地址報 文,并且光機驅動器已經開始處理光機驅動器內部系統的指令,則主控器監控SCL信號,當 主控器監控到SCL信號變為高電平時,即光機驅動器已經處理完內部系統的指令后釋放了 SCL信號,主控器判斷是否接收到了光機驅動器發送的響應報文,若主控器接收到了光機驅 動器發送的響應報文,則主控器開始向光機驅動器發送數據報文。主控器根據監控的SCL信 號的變化能夠及時獲得光機驅動器釋放SCL信號的時間,能夠更加準確的獲得光機驅動器 向主設備發送響應報文的時間,使得主控器與光機驅動器之間的通訊更加準確及時。
[0010] 本發明還提供一種數字光處理投影的裝置,包括:
[0011] 主控器和光機驅動器,所述主控器和所述光機驅動器之間通過I2C進行通信,所述 主控器包括:
[0012] 監控單元,用于向光機驅動器發送寄存器地址報文后,若所述光機驅動器的串行 時鐘SCL信號為低電平信號,則監控所述SCL信號;
[0013] 發送單元,用于在所述SCL信號變為高電平信號后,若接收到所述光機驅動器發送 的針對所述寄存器地址報文對應的響應報文,則向所述光機驅動器發送數據報文。
【附圖說明】
[0014] 為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使 用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本 領域的普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其 他的附圖。
[0015] 圖1為本發明實施例提供的一種處理I2C通信對接延時的方法的流程示意圖;
[0016] 圖2為本發明實施例中主控器與光機驅動器之間通訊結構示意圖;
[0017] 圖3為本發明實施例提供的另一種處理I2C通信對接延時的方法的流程示意圖;
[0018] 圖4為本發明實施例提供的一種主控器與光機驅動器之間通過I2C總線通信的流 程不意圖;
[0019] 圖5為本發明實施例提供的另一種主控器與光機驅動器之間通過I2C總線通信的 流程示意圖;
[0020] 圖6為本發明實施例提供的一種主控器與光機驅動器之間通過I2C總線獲取SCL信 號解決對接延時的方法流程示意圖;
[0021 ]圖7為本發明實施例提供的一種數字光處理投影的裝置的結構示意圖;
[0022] 圖8為本發明實施例提供的主控器的結構示意圖;
[0023] 圖9為本發明實施例提供的另一種數字光處理投影的裝置的結構示意圖。
【具體實施方式】
[0024]為了使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明作進 一步地詳細描述,顯然,所描述的實施例僅僅是本發明一部份實施例,而不是全部的實施 例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的 所有其它實施例,都屬于本發明保護的范圍。
[0025] 現有技術中主控器與從設備通過標準I2C通訊協議進行通訊,主控器與從設備通 過第一I2C總線進行通信,但是在數字光處理(DLP,Digital Light Processing)投影裝置 中,包括主控器和光機驅動器系統,光機驅動器系統包括光機驅動器、光機驅動器電源、光 源、數字微鏡晶片(DMD,Digital Micromirror Device)、透鏡模塊等,光機驅動器作為主控 器的從設備,與主控器通過第一 I2C總線進行通信,同時,光機驅動器還可以作為主設備,通 過第二I2C總線與光機驅動器電源、光源、數字微鏡晶片、透鏡模塊等進行I2C通信,,對于主 控器而言,在標準的I2C通訊過程中主設備在發送完指令后等待固定的延時時間,來匹配可 能會出現的光機驅動器沒有立即回應應答信號的問題,但是由于光機驅動器每次處理的指 令不同,光機驅動器處理每次指令產生的時延不同,主設備增加固定延時間隔時會造成光 機驅動器系統還未處理完該次的指令,而已達到主設備等待的固定時長,主設備會認為此 時與從設備的數據傳輸失敗的問題。
[0026]為了解決上述問題,本發明提供一種處理數字光處理投影裝置中I2C通信對接延 時的方法,如圖1所示,所述方法包括:
[0027] 步驟101,主控器向光機驅動器發送寄存器地址報文后,若所述主控器和所述光機 驅動器之間的串行時鐘SCL信號為低電平信號,則監控所述SCL信號;
[0028] 步驟102,所述主控器在所述SCL信號變為高電平信號后,若接收到所述光機驅動 器發送的針對所述寄存器地址報文對應的響應報文,則向所述光機驅動器發送數據報文。
[0029] 在步驟101中,主控器可以是投影儀中的主控器設備,也可以是智能電視、激光電 視、LED智能微型投影儀等設備的主控模塊。光機驅動器為一種將光按照一定路徑傳輸并形 成圖像輸出的顯示系統,在本發明實施例中光機驅動器可以為智能微型中的顯示裝置,也 可以為智能電視、激光電視、LED智能微型投影儀等設備中的顯示系統,光機驅動器一般由 顯示核心、光源、鏡頭光路、散熱器組成。
[0030] 在本發明實施例中,主控器與光機驅動器都是位于數字光處理投影裝置中,該投 影裝置中光機驅動器是數字光處理投影裝置中的主控器的從設備,又是光機系統中的主設 備,而光機系統中的其它器件,例如光機電源驅動器、光源驅動器、數字微鏡晶片、透鏡模塊 等為光機系統中的從設備。在本發明實施例中,所述數字光處理投影裝置用于解決裝置中 存在至少兩級驅動的架構而產生的光機驅動器系統還未處理完該次的指令,而主設備會認 為光機驅動器的數據傳輸失敗的問題。在本發明實施例中,所述數字光處理投影裝置可以 為LED微型投影儀或者其它具有至少兩級驅動的架構的投影儀裝置。
[0031] 在智能電視或者激光電視、LED智能微型投影儀等設備中主控器與光機驅動器以 及其他從設備之間通過I2C進行通訊。如圖2所示,若干個從設備中,從設備A3就是光機驅動 器,其他從設備可以是調頻器、電源管理器或者LED驅動器。主控器與光機驅動器、從設備 A1、從設備A2通過第一 I2C總線進行通訊,而光機驅動器與從設備B1、從設備B2、從設備B3通 過第二I2C總線進行通訊。
[0032]可選的,在本發明實施例中,還可以為三級驅動或者三級以上驅動的構架,則主控 器與光機驅動器之間通過第一 I2C總線進行通信,光機驅動器與其他從設備通過第二I2C總 線進行通信,若從設備也是其他從設備的主控器,則通過第三I2C總線進行通信等等。
[0033] 主控器通過第一 I2C總線向光機驅動器發送寄存器地址報文的目的是為了使光機 驅動器根據寄存器地址報文中的寄存器地址進行指令操作。其中,寄存器地址不同,執行的 指令操作也不同。
[0034] 比如主控器發送的寄存器地址報文是為了通知光機驅動器進行寫操作,則光機驅 動器在接收到主控器發送的寫操作指令后,通知其他從設備執行寫操作指令;
[0035] 還比如主控器發送的寄存器地址報文是為了通知光機驅動器進行讀操作,則光機 驅動器在接收到主控器發送的讀操作指令后,通知其他從設備執行讀操作指令。
[0036] 在光機驅動器通知其他從設備進行讀操作或者是寫操作后,其他從設備需要完成 光機驅動器的操作指令,在完成操作指令后,其他從設備會向光機驅動器發送完成指令的 消息,光機驅動器在接收到其他從設備發送的完成指令的消息后,才會向主控器發送針對 寄存器地址的響應報文。
[0037] 在本發明實施例中,主控器與光機驅動器的SCL信號就是第一I2C總線中的SCL信 號,主控器監控的SCL信號就是第一I2C總線的SCL信號。在本發明實施例中,光機驅動器接 收到寄存器地址報文后,光機驅動器會將第一 I2C總線的SCL線拉低,表示第一 I2C總線為占 用狀態,光機驅動器會通過第二I2C總線通知與寄存器地址報文對應的從設備處理讀取數 據命令,例如從設備B1為讀取數據,從設備B2為寫入數據,當寄存器地址報文為讀取數據, 則光機驅動器通知從設備B1進行讀取數據操作。當從設備在處理讀取數據的操作完成后, 會向光機驅動器發送完成指令消息,光機驅動器在接收到從設備發送的完成指令消息后, 釋放第一 I2C總線的SCL信號(即將第一 I2C總線的SCL信號拉高),表示第一 I2C總線的狀態 為非占用狀態,光機驅動器釋放完SCL信號后,準備向主控器發送響應報文(需要將SDA線拉 低后才能發送)。
[0038] 在步驟102中,由于主控器一直監控SCL信號的變化,在第一I2C總線的SCL從高電 平的位置被拉低后,主控器若監控到第一 I2C總線的SCL信號從低電平的位置又變化為高電 平的位置,主控器認為光機驅動器已經處理完寄存器地址報文對應的指令,準備向主控器 發送響應報文,則判斷是否接收到所述光機驅動器發送的響應報文,若接收到所述光機驅 動器發送的針對所述寄存器地址報文對應的響應報文,主控器認為與光機驅動器之間通訊 正常,可以向光機驅動器發送數據報文。
[0039] 在本發明實施例中,當光機驅動器釋放第一I2C總線的SCL信號后,光機驅動器需 要將第一 I2C總線的SDA信號拉低,才向主控器發送響應報文,所以主控器在第一 I2C總線的 SCL信號變為高電平信號后,等待第一時長;在主控器在第一時長后,判斷在第一時長內是 否接收到所述光機驅動器發送的針對所述寄存器地址報文對應的響應報文;
[0040] 若主控器若在第一時長內接收到所述光機發送的針對所述寄存器地址報文對應 的響應報文,則向所述光機發送數據報文。
[0041] 在本發明實施例中,第一時長可以設置為主控器向光機發送數據的時鐘周期的倍 數,例如一個時鐘周期為l〇ys,則可以設置第一時長為500ii S,即50個時鐘周期,也可以設置 為其它時間。
[0042] 在步驟102中,所述主控器在確定所述主控器在所述SCL信號變為高電平信號后, 停止監控所述SCL信號;
[0043] 所述主控器判斷在第一時長內是否接收到所述光機驅動器發送的針對所述寄存 器地址報文對應的響應報文之后,還包括:
[0044] 所述主控器若在第一時長內未接收到所述光機驅動器發送的針對所述寄存器地 址報文對應的響應報文,則返回監控所述SCL信號的步驟。
[0045] 在本發明實施例中,主控器監控第一I2C總線的SCL信號的目的是確定光機驅動器 在何時處理完寄存器地址報文對應的指令,即何時光機驅動器拉高第一 I2C總線的SCL信 號,當主控器在確定第一I2C總線的SCL信號變為高電平信號時,即光機驅動器已經拉高了 第一 12C總線的SCL信號,則此時主控器停止監控第一 12C總線的SCL信號。
[0046] 可選的,若主控器在第一時長內未接收到所述光機驅動器發送的針對所述寄存器 地址報文對應的響應報文,則返回重新監控SCL信號的步驟,繼續監控SCL信號的電平。
[0047] 為了防止返回主控器監控所述SCL信號的步驟超出主控器與光機驅動器所處的系 統的處理能力,造成死循環,一種可選的方式是:
[0048] 主控器在返回主控器監控所述SCL信號的步驟之前,判斷返回的次數是否大于循 環閾值,在確定主控器返回監控所述SCL信號的步驟的次數不大于預設循環閾值后,返回主 控器監控所述SCL信號的步驟;
[0049] 在確定主控器返回監控所述SCL信號的步驟的次數大于預設循環閾值后,不再返 回主控器監控所述SCL信號的步驟,主控器會確定與光機驅動器之間通訊失敗,不再向光機 驅動器發送任何的數據報文。
[0050] 在本發明實施例中,循環閾值可以根據系統的處理能力進行設置,例如根據光機 驅動器或者主控器的型號,設置不同的循環閾值;也可以根據第一時長與循環閾值的對應 關系進行設置,例如第一時長與循環閾值有對應關系表,則根據設置的第一時長,在對應關 系表中查找到循環閾值的值。
[0051] 可選的,在主控器與光機驅動器之間通訊失敗后,有很多種處理方式。本發明實施 例給出一種處理方式:
[0052]主控器會生成一個錯誤報文,提示用戶主控器與光機驅動器之間存在故障,以使 用戶根據錯誤報文顯示的錯誤代碼,查找故障原因以及尋找解決辦法。
[0053]例如,錯誤代碼與故障原因的對照表如表1所示:
[0056]表1:錯誤代碼與故障原因的對照表
[0057]本發明還提供一種處理I2C通信對接延時的方法,如圖3所示,所述方法包括:
[0058] 步驟301,主控器向光機驅動器發送寄存器地址報文后,等待第二時長;
[0059]步驟302,若所述主控器在所述第二時長內沒有接收到所述光機驅動器發送的針 對所述寄存器地址報文的響應報文,則返回向所述光機驅動器發送寄存器地址報文的步 驟;
[0060] 其中,所述主控器與所述光機驅動器通過第一I2C總線進行數據傳輸,所述光機驅 動器與其它至少一個從設備通過第二I2C總線進行數據傳輸。
[0061] 在步驟301中,第二時長可以設置為主控器向光機驅動器發送數據的時鐘周期的 倍數,例如一個時鐘周期為l〇ys,則可以設置第二時長為500ys,即50個時鐘周期,也可以設 置其它時間,以使主控器在發送寄存器地址報文后等待第二時長。
[0062] 在步驟301中,主控器向光機驅動器發送寄存器地址報文的目的是為了通知光機 驅動器中對應的寄存器進行指令操作,例如主控器發送的寄存器地址報文是為了通知光機 驅動器進行寫操作,則光機驅動器在接收到主控器發送的寫操作指令后,通知光機驅動器 的系統中的其它從設備執行寫操作指令,或者主控器發送的寄存器地址報文是為了通知光 機驅動器進行讀操作,則光機驅動器在接收到主控器發送的讀操作指令后,通知光機驅動 器的系統中的其它從設備執行讀操作指令。
[0063] 在步驟301前,主控器還需要向光機驅動器發送硬件地址,以便通知光機驅動器需 要開始進行數據傳輸,在本發明實施例中,光機驅動器的硬件地址為16進制數,例如為 0x34,主控器發送硬件地址報文,該報文中包括尋找的光機驅動器的硬件地址為0x34,則光 機驅動器在接收到主控器發送的硬件地址報文后,發送一個對應的響應報文給主控器,以 使主控器繼續發送寄存器地址報文。
[0064]在步驟302中,主控器在第二時長內判斷是否接收到光機驅動器發送的針對所述 寄存器地址報文的響應報文,如果主控器在第二時長沒有接收到響應報文,則說明此時光 機驅動器的內部系統并沒有處理完成指令,例如,主控器發送的光機驅動器的寄存器地址 報文是通知光機驅動器進行寫操作,則在主控器等待第二時長內,光機驅動器的系統中還 沒有執行完寫操作的指令,則主控器則返回向光機驅動器發送寄存器地址報文的步驟,在 發送完寄存器地址報文后,繼續等待第二時長后判斷是否接收到響應報文。
[0065] 在步驟302中,所述主控器確定向所述光機驅動器發送寄存器地址報文的次數不 大于預設第二循環閾值。
[0066] 本發明實施例中,主控器在返回發送寄存器地址報文的步驟時,需要判斷返回的 此時是否大于第二循環閾值,設定第二循環閾值以防止主控器向光機驅動器發送寄存器地 址報文的次數超出主控器與光機驅動器所處的系統的處理能力,造成死循環的問題。在本 發明實施例中,第二循環閾值可以根據系統的處理能力進行設置,也需要考慮延時的第二 時長。
[0067] 在步驟302中,所述主控器根據收到的指令對所述第二時長進行更新;
[0068] 若更新后的所述第二時長增加,則所述主控器減少所述第二循環閾值;或者若更 新后的所述第二時長減少,則所述主控器增加所述第二循環閾值。
[0069] 其中,本發明實施例調整所述第二循環閾值的方式有很多,下面列列舉三種:
[0070] 方式一、第二時長的增加或減少時,根據設置的調整比例對第二循環閾值進行調 整,例如,調整比例為1:2,則主控器獲得的更新后的第二時長比更新前的第二時長增加了 3ms,則第二循環閾值減少6ms。
[0071] 方式二、第二時長的增加或減少時,根據第二時長與第二循環閾值之間的對應關 系對第二循環閾值進行調整。
[0072] 例如,如表2為一種對應關系,第二時長為0.85ms時,對應的第二循環閾值為105, 當第二時長減少為0.05ms時,對應的第二循環閾值為185。
[0074]表2:第二時長與第二循環閾值之間對應關系表
[0075]方式三、設置第二時長與第二循環閾值的乘積為一固定值,則當第二時長增加或 減少時,用固定值除以第二時長就可以得到調整后的第二循環閾值,從而知道需要將當前 的第二循環閾值增加多少或減少多少。
[0076]例如設置第二時長與第二循環閾值的乘積的固定值為40ms,若設置第二時長為 lOOOys,即100個時鐘周期,則根據固定值40ms除以第二時長的lOOOys,就可以確定應該設 置的第二循環閾值為4。
[0077]若將第二時長增加為100ys,即10個時鐘周期時,則根據固定值40ms除以第二時長 的100ys,可以確定應該設置的第二循環閾值為40。
[0078] 在本發明實施例中,若所述主控器未接收到所述光機驅動器發送的針對所述寄存 器地址報文對應的響應報文,且向所述光機驅動器發送寄存器地址報文的次數大于所述預 設第二循環閾值,則所述主控器確認與所述光機驅動器之間通訊失敗,停止向所述光機驅 動器發送報文。
[0079] 本發明上述實施例中,若主控器在經過等待第二時長后,仍未接收到光機驅動器 發送的響應報文,此時主控器需要再進行一次循環,返回到發送寄存器地址報文的步驟,在 返回之前,主控器需要判斷返回次數是否已經大于循環閾值,若大于循環閾值,則主控器就 確認了于光機驅動器之間的通訊失敗,認為光機驅動器是無法接收到主設備發送的數據報 文的,則主控器停止向光機驅動器發送報文,可以減少對第一I2C總線數據信道的占用,也 可以及時停止向光機驅動器發送報文,繼續執行下一個任務,并且及時報錯,以使光機驅動 器與主設備之間的通訊錯誤能夠及時得到解決。
[0080] 為了方便便于本領域技術人員的理解,在此舉例說明。
[0081 ] 實施例一
[0082] 在本發明實施例中,主控器向光機驅動器發送硬件地址報文,光機驅動器向主控 器發送響應報文,以使主控器能夠開始向光機驅動器發送寄存器地址報文,光機驅動器的 硬件地址為0x34,如圖4所示,包括:
[0083] 步驟401,主控器向光機驅動器發送硬件地址報文,其中硬件地址報文中包括光機 驅動器的硬件地址0x34;
[0084]步驟402,主控器判斷是否接收到光機驅動器發送的針對硬件地址報文的響應報 文,若接收到了光機驅動器發送的針對硬件地址報文的響應報文,則執行步驟403;若未接 收到光機驅動器發送的針對硬件地址報文的響應報文,則執行步驟404;
[0085] 步驟403,主控器向光機驅動器發送寄存器地址報文,進行讀取光機驅動器數據的 操作,執行步驟405;
[0086] 步驟404,主控器確認與光機驅動器之間通訊失敗,不再向光機驅動器發送報文; [0087]步驟405,主控器等待第二時長,在本發明實施例中,設定第二時長為50倍的時鐘 周期,即0.5ms;
[0088]步驟406,主控器判斷在0.5ms內是否接收到從光機驅動器發送的針對寄存器地址 報文的響應報文,若接收到了光機驅動器發送的響應報文,則執行步驟407;否則,執行步驟 408;
[0089] 步驟407,主控器向光機驅動器發送數據報文,執行步驟409;
[0090] 步驟408,主控器判斷返回到發送寄存器地址到光機驅動器的次數是否大于預設 的第二循環閾值,在本發明實施例中,預設第二循環閾值為500,若大于預設的第二循環閾 值,則執行步驟404,若不大于預設的第二循環閾值,則執行步驟403;
[0091]步驟409,主控器判斷是否接收到數據報文對應的響應報文,若接收到光機驅動器 發送的響應報文,則執行步驟410;否則執行步驟404;
[0092] 步驟410,主控器確認與光機驅動器之間通訊完成。
[0093] 實施例二
[0094]與實施例一相比,為了減少主控器在未接收到響應報文后向光機驅動器發送的次 數,在本發明實施例中總延時時間為40ms不變的前提下,可以增加主控器等待第二時長的 時間,在本發明實施例中,設置為4ms,即400個時鐘周期,循環閾值為10,則如圖5所示,所述 方法包括:
[0095] 步驟501,主控器向光機驅動器發送硬件地址報文,其中硬件地址報文中包括光機 驅動器的硬件地址0x34;
[0096]步驟502,主控器判斷是否接收到光機驅動器發送的針對硬件地址報文的響應報 文,若接收到了光機驅動器發送的針對硬件地址報文的響應報文,則執行步驟503;若未接 收到光機驅動器發送的針對硬件地址報文的響應報文,則執行步驟504;
[0097] 步驟503,主控器向光機驅動器發送寄存器地址報文,進行讀取光機驅動器數據的 操作,執行步驟505;
[0098] 步驟504,主控器確認與光機驅動器之間通訊失敗,不再向光機驅動器發送報文; [0099]步驟505,主控器等待第二時長,在本發明實施例中,設定第二時長為400倍的時鐘 周期,即4ms;
[0100]步驟506,主控器判斷在4ms內是否接收到從光機驅動器發送的針對寄存器地址報 文的響應報文,若接收到了光機驅動器發送的響應報文,則執行步驟507;否則,執行步驟 508;
[0101] 步驟507,主控器向光機驅動器發送數據報文,執行步驟509;
[0102]步驟508,主控器判斷返回到發送寄存器地址到光機驅動器的次數是否大于第二 循環閾值,在本發明實施例中,第二循環閾值為10,若大于第二循環閾值,則執行步驟504, 若不大于第二循環閾值,則執行步驟503;
[0103] 步驟509,主控器判斷是否接收到數據報文對應的響應報文,若接收到光機驅動器 發送的響應報文,則執行步驟510;否則執行步驟504;
[0104] 步驟510,主控器確認與光機驅動器之間通訊完成。
[0105] 實施例三
[0106] 在本發明實施例中,主控器向光機驅動器發送硬件地址報文,光機驅動器向主控 器發送響應報文,以使主控器能夠開始向光機驅動器發送寄存器地址報文,光機驅動器的 硬件地址為0x34,主控器在獲取SCL信號變為高電平后,判斷是否接收到光機驅動器發送的 響應報文,如圖6所示,包括:
[0107] 步驟601,主控器向光機驅動器發送硬件地址報文,其中硬件地址報文中包括光機 驅動器的硬件地址0x34;
[0108] 步驟602,主控器判斷是否接收到光機驅動器發送的針對硬件地址報文的響應報 文,若接收到了光機驅動器發送的針對硬件地址報文的響應報文,則執行步驟603;若未接 收到光機驅動器發送的針對硬件地址報文的響應報文,則執行步驟604;
[0109] 步驟603,主控器向光機驅動器發送寄存器地址報文,進行讀取光機驅動器數據的 操作,執行步驟605;
[0110] 步驟604,主控器確認與光機驅動器之間通訊失敗,不再向光機驅動器發送報文;
[0111] 步驟605,主控器監控SCL信號的信號變化,獲取SCL信號變為高電平的變化時間;
[0112] 步驟606,主控器等待第一時長,在本發明實施例中,設置第一時長為lms,即100個 時鐘周期;
[0113] 步驟607,主控器判斷在lms內是否接收到從光機驅動器發送的針對寄存器地址報 文的響應報文,若接收到了光機驅動器發送的響應報文,則執行步驟608;否則,執行步驟 604;
[0114] 步驟608,主控器向光機驅動器發送數據報文;
[0115] 步驟609,主控器判斷是否接收到數據報文對應的響應報文,若接收到光機驅動器 發送的響應報文,則執行步驟610;否則執行步驟604;
[0116] 步驟610,主控器確認與光機驅動器之間通訊完成。
[0117] 實施例三與實施例一以及實施例二相比,主控器能夠根據SCL信號的電平的變化 準確獲知光機驅動器系統處理完指令的時間點,即光機驅動器釋放SCL信號的時間點,則若 光機驅動器與主控器之間通訊正常,則主控器一定能夠接收到光機驅動器發送的響應報 文,減少了實施例一以及實施例二中返回向光機驅動器發送寄存器地址報文的次數,即主 控器只需要執行一次向寄存器地址報文,就可以獲得光機驅動器發送的響應報文。
[0118] 基于同樣的構思,本發明實施例還提供一種數字光處理投影裝置,如圖7所示,包 括:
[0119] 主控器701和光機驅動器702,所述主控器701和所述光機驅動器702之間通過I2C 進行通信;
[0120] 所述主控器701,如圖8所示包括:
[0121 ] 監控單元801,用于向光機驅動器發送寄存器地址報文后,若所述光機驅動器的串 行時鐘SCL信號為低電平信號,則監控所述SCL信號;
[0122]發送單元802,用于在所述SCL信號變為高電平信號后,若接收到所述光機驅動器 發送的針對所述寄存器地址報文對應的響應報文,則向所述光機驅動器發送數據報文。 [0123] 進一步地,所述發送單元802,具體用于:
[0124] 在所述監控單元監控SCL信號變為高電平信號后,等待第一時長;
[0125] 在等待第一時長后,判斷在第一時長內是否接收到所述光機驅動器發送的針對所 述寄存器地址報文對應的響應報文;
[0126] 若在第一時長內接收到所述光機驅動器發送的針對所述寄存器地址報文對應的 響應報文,則向所述光機驅動器發送數據報文。
[0127] 進一步地,所述監控單元801,還用于:
[0128] 在確定所述主控器在所述SCL信號變為高電平信號后,停止監控所述SCL信號;
[0129] 所述發送單元802,還用于:
[0130] 若在第一時長內未接收到所述光機驅動器發送的針對所述寄存器地址報文對應 的響應報文,則觸發所述監控模塊繼續監控所述SCL信號。
[0131] 進一步地,所述發送單元802,還用于:
[0132]確定觸發所述監控模塊繼續監控所述SCL信號的次數不大于預設循環閾值。
[0133] 進一步地,所述發送單元802,還用于:
[0134] 若確定觸發所述監控模塊繼續監控所述SCL信號的次數大于預設循環閾值,則確 定與所述光機驅動器之間通訊失敗。
[0135] 本發明實施例還提供一種處理I2C通信對接延時的投影裝置,如圖9所示,包括:
[0136] 等待單元901,用于向光機驅動器發送寄存器地址報文后,等待第一時長;
[0137] 循環單元902,用于若在所述第一時長內沒有接收到所述光機驅動器發送的針對 所述寄存器地址報文的響應報文,則返回向所述光機驅動器發送寄存器地址報文的步驟;
[0138] 其中,所述投影裝置與所述光機驅動器通過第一 I2C總線進行數據傳輸,所述光機 驅動器與其它至少一個光機驅動器通過第二I2C總線進行數據傳輸。
[0139] 進一步地,所述循環單元902,還用于:
[0140] 確定向所述光機驅動器發送寄存器地址報文的次數不大于預設循環閾值。
[0141] 進一步地,所述裝置還包括:
[0142] 更新單元903,用于所述根據收到的指令對所述第一時長進行更新;
[0143] 若更新后的所述第一時長增加,則減少所述循環閾值;或者若更新后的所述第一 時長減少,則增加所述循環閾值。
[0144] 進一步地,所述裝置還包括:
[0145] 停止單元904,用于若未接收到所述光機驅動器發送的針對所述寄存器地址報文 對應的響應報文,且向所述光機驅動器發送寄存器地址報文的次數大于所述預設循環閾 值,則確認與所述光機驅動器之間通訊失敗,停止向所述光機驅動器發送報文。
[0146] 本發明是參照根據本發明實施例的方法、設備(系統)、和計算機程序產品的流程 圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流 程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序 指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產 生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用于實 現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0147] 這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特 定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指 令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或 多個方框中指定的功能。
[0148] 這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計 算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或 其他可編程設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一 個方框或多個方框中指定的功能的步驟。
[0149] 盡管已描述了本發明的優選實施例,但本領域內的技術人員一旦得知了基本創造 性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優 選實施例以及落入本發明范圍的所有變更和修改。
[0150] 顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精 神和范圍。這樣,倘若本發明的這些修改和變型屬于本發明權利要求及其等同技術的范圍 之內,則本發明也意圖包含這些改動和變型在內。
【主權項】
1. 一種處理I2C通信對接延時的方法,用于數字光處理投影,其特征在于,所述方法包 括: 主控器向光機驅動器發送寄存器地址報文后,若所述主控器和所述光機驅動器之間的 串行時鐘SCL信號為低電平信號,則監控所述SCL信號; 所述主控器在所述SCL信號變為高電平信號后,若接收到所述光機驅動器發送的針對 所述寄存器地址報文對應的響應報文,則向所述光機驅動器發送數據報文。2. 根據權利要求1所述的方法,其特征在于,所述主控器在所述SCL信號變為高電平信 號后,若接收到所述光機驅動器發送的針對所述寄存器地址報文對應的響應報文,則向所 述光機驅動器發送數據報文,包括: 所述主控器在SCL信號變為高電平信號后,等待第一時長; 所述主控器在等待第一時長后,判斷在第一時長內是否接收到所述光機驅動器發送的 針對所述寄存器地址報文對應的響應報文; 所述主控器若在第一時長內接收到所述光機驅動器發送的針對所述寄存器地址報文 對應的響應報文,則向所述光機驅動器發送數據報文。3. 根據權利要求2所述的方法,其特征在于,所述主控器在SCL信號變為高電平信號后 還包括: 所述主控器在確定所述主控器在所述SCL信號變為高電平信號后,停止監控所述SCL信 號; 所述主控器判斷在第一時長內是否接收到所述光機驅動器發送的針對所述寄存器地 址報文對應的響應報文之后,還包括: 所述主控器若在第一時長內未接收到所述光機驅動器發送的針對所述寄存器地址報 文對應的響應報文,則返回監控所述SCL信號的步驟。4. 根據權利要求3所述的方法,其特征在于,所述主控器返回所述主控器監控所述SCL 信號的步驟之前,還包括: 所述主控器確定所述主控器返回監控所述SCL信號的步驟的次數不大于預設循環閾 值。5. 根據權利要求4所述的方法,其特征在于,該方法還包括: 所述主控器若確定所述主控器返回監控所述SCL信號的步驟的次數大于預設循環閾 值,則確定與所述光機驅動器之間通訊失敗。6. -種數字光處理投影裝置,其特征在于,包括:主控器和光機驅動器,所述主控器和 所述光機驅動器之間通過I2C進行通信,所述主控器包括: 監控單元,用于在主控器向光機驅動器發送寄存器地址報文后,若所述主控器和所述 光機驅動器之間的串行時鐘SCL信號為低電平信號,則監控所述SCL信號; 發送單元,用于在所述監控單元監控所述SCL信號變為高電平信號后,若接收到所述光 機驅動器發送的針對所述寄存器地址報文對應的響應報文,則向所述光機驅動器發送數據 報文。7. 根據權利要求6所述的裝置,其特征在于,所述發送單元具體用于: 在所述監控單元監控SCL信號變為高電平信號后,等待第一時長; 在等待第一時長后,判斷在第一時長內是否接收到所述光機驅動器發送的針對所述寄 存器地址報文對應的響應報文; 若在第一時長內接收到所述光機驅動器發送的針對所述寄存器地址報文對應的響應 報文,則向所述光機驅動器發送數據報文。8. 根據權利要求7所述的裝置,其特征在于,所述監控單元,還用于: 在確定所述主控器在所述SCL信號變為高電平信號后,停止監控所述SCL信號; 所述發送單元,還用于: 若在第一時長內未接收到所述光機驅動器發送的針對所述寄存器地址報文對應的響 應報文,則觸發所述監控單元繼續監控所述SCL信號。9. 根據權利要求8所述的裝置,其特征在于,所述發送單元,還用于: 確定觸發所述監控單元繼續監控所述SCL信號的次數不大于預設循環閾值。10. 根據權利要求9所述的裝置,其特征在于,所述發送單元還用于: 若確定觸發所述監控單元繼續監控所述SCL信號的次數大于預設循環閾值,則確定與 所述光機驅動器之間通訊失敗。
【文檔編號】G06F13/42GK105893313SQ201610256768
【公開日】2016年8月24日
【申請日】2016年4月21日
【發明人】石新利
【申請人】青島海信寬帶多媒體技術有限公司