本公開涉及計算機應用技術領域,特別涉及一種光模塊中驅(qū)動芯片的數(shù)據(jù)寫入方法及裝置。
背景技術:
光模塊是整個光網(wǎng)絡架構(gòu)中重要的一環(huán),負責光信號和電信號的相互轉(zhuǎn)換,保證整個光網(wǎng)絡的暢通。
現(xiàn)在主流的光模塊主要采用mcu(microcontrollerunit,微控制單元)配合驅(qū)動芯片的硬件電路架構(gòu),通過mcu發(fā)送正確的配置數(shù)據(jù)給驅(qū)動芯片,從而控制激光器發(fā)射光功率和消光比符合系統(tǒng)要求的光序列。因此,驅(qū)動芯片的配置數(shù)據(jù)是保證激光器正常工作的關鍵。
例如,圖1是根據(jù)一示例性實施例示出的光模塊結(jié)構(gòu)示意圖。光模塊包括驅(qū)動芯片和配合驅(qū)動芯片的控制器。光模塊上電時,控制器通過i2c總線將數(shù)據(jù)寫入驅(qū)動芯片中,從而使激光器正常工作。
然而,由于一些外部條件,比如電源波動,靜電等影響,可能使正在運行的驅(qū)動芯片內(nèi)部配置數(shù)據(jù)被改寫,導致激光器工作異常。而工作異常的激光器若長時間處于異常工作狀態(tài),將可能被燒毀,導致光模塊的物理損壞。
技術實現(xiàn)要素:
為了解決相關技術中光模塊中配置數(shù)據(jù)被改寫導致光模塊工作異常的技術問題,本公開提供了一種光模塊中驅(qū)動芯片的數(shù)據(jù)寫入方法及裝置。
一種光模塊中驅(qū)動芯片的數(shù)據(jù)寫入方法,包括:
讀取光模塊中非易失性存儲器的預存儲數(shù)據(jù);
檢測所述預存儲數(shù)據(jù)與驅(qū)動芯片中相應的數(shù)據(jù)是否一致,若為否,則
將所述預存儲數(shù)據(jù)重新寫入所述驅(qū)動芯片中。
一種光模塊中驅(qū)動芯片的數(shù)據(jù)寫入裝置,包括:
數(shù)據(jù)讀取模塊,用于讀取光模塊中非易失性存儲器的預存儲數(shù)據(jù);
數(shù)據(jù)檢測模塊,用于檢測所述預存儲數(shù)據(jù)是否與驅(qū)動芯片中相應的數(shù)據(jù)是否一致;
數(shù)據(jù)寫入模塊,用于在預存儲數(shù)據(jù)與驅(qū)動芯片中相應的數(shù)據(jù)不一致時,將所述預存儲數(shù)據(jù)重新寫入所述驅(qū)動芯片中。
本公開的實施例提供的技術方案可以包括以下有益效果:
工作狀態(tài)的光模塊中,讀取光模塊中非易失性存儲器的預存儲數(shù)據(jù),并檢測這些預存儲數(shù)據(jù)與驅(qū)動芯片中相應的數(shù)據(jù)是否一致,若不一致,則將預存儲數(shù)據(jù)重新寫入驅(qū)動芯片中,由此使驅(qū)動芯片中的數(shù)據(jù)與對應的預存儲數(shù)據(jù)不一致時能夠迅速恢復,避免驅(qū)動芯片長時間出現(xiàn)異常,保證了驅(qū)動芯片的數(shù)據(jù)準確性,從而保證了光模塊的正常工作。
應當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性的,并不能限制本公開。
附圖說明
此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實施例,并于說明書一起用于解釋本發(fā)明的原理。
圖1是根據(jù)一示例性實施例示出的光模塊結(jié)構(gòu)示意圖;
圖2是根據(jù)一示例性實施例示出的一種光模塊中驅(qū)動芯片的數(shù)據(jù)寫入方法流程圖;
圖3是根據(jù)一示例性實施例示出的一種光模塊中驅(qū)動芯片的數(shù)據(jù)寫入方法中步驟s210的一種具體實現(xiàn)流程圖;
圖4是圖2對應實施例示出的光模塊中驅(qū)動芯片的數(shù)據(jù)寫入方法中步驟s130的一種具體實現(xiàn)流程圖;
圖5是圖4對應實施例示出的光模塊中驅(qū)動芯片的數(shù)據(jù)寫入方法中步驟s132的一種具體實現(xiàn)流程圖;
圖6是根據(jù)一示例性實施例示出的一種光模塊中驅(qū)動芯片的數(shù)據(jù)寫入具體應用場景示意圖;
圖7是根據(jù)一示例性實施例示出的一種光模塊中驅(qū)動芯片的數(shù)據(jù)寫入裝置的框圖;
圖8是根據(jù)一示例性實施例示出的初始化配置模塊210的框圖;
圖9是圖6對應實施例示出的光模塊中驅(qū)動芯片的數(shù)據(jù)寫入裝置中數(shù)據(jù)異常檢測模塊130的一種框圖;
圖10是圖9對應實施例示出的光模塊中驅(qū)動芯片的數(shù)據(jù)寫入裝置中數(shù)據(jù)寫入模塊132的一種框圖。
具體實施方式
這里將詳細地對示例性實施例執(zhí)行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發(fā)明相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
在一個實施例中,本公開涉及的實施環(huán)境包括:光模塊和裝設在光模塊中的數(shù)據(jù)寫入模組。其中,光模塊具有獨立運行空間,可以安裝軟件以及第三方服務商提供的軟件。數(shù)據(jù)寫入模組是能夠?qū)饽K中驅(qū)動芯片的配置數(shù)據(jù)進行寫入的硬件模塊。
圖2是根據(jù)一示例性實施例示出的一種光模塊中驅(qū)動芯片的數(shù)據(jù)寫入方法流程圖。如圖2所示,該光模塊中驅(qū)動芯片的數(shù)據(jù)寫入方法可以包括以下步驟。
在步驟s110中,讀取光模塊中非易失性存儲器的預存儲數(shù)據(jù)。
光模塊是整個光網(wǎng)絡架構(gòu)中重要的一環(huán),實現(xiàn)光信號和電信號的相互轉(zhuǎn)換,保證整個光網(wǎng)絡的暢通。
光模塊包括驅(qū)動芯片和配合驅(qū)動芯片的控制器,驅(qū)動芯片內(nèi)部集成有寄存器。
驅(qū)動芯片中,集成有多種不同功能的寄存器。部分寄存器存在一定的變化頻率,因此需通過控制器對這些寄存器進行實時控制;而部分寄存器在上電寫入配置數(shù)據(jù)后,整個工作過程中其配置數(shù)據(jù)保持不變,這部分寄存器即為非易失性寄存器。
例如,dac寄存器等需按需進行寫入或者讀取其配置數(shù)據(jù);而adc寄存器的配置數(shù)據(jù)經(jīng)常變化,也需按需進行讀??;對于部分控制基本功能的寄存器,在初次上電寫入配置數(shù)據(jù)后,整個工作過程中其配置數(shù)據(jù)保持不變。
預存儲數(shù)據(jù)是預先為驅(qū)動芯片保存的數(shù)據(jù),存儲于非易失性存儲器中。
非易失性存儲器中的預存儲數(shù)據(jù)在光模塊初次上電時進行配置寫入,在光模塊的后期工作過程中將保持不變。
光模塊中的非易失性存儲器可以為控制器中的flash存儲器,也可以為光模塊中的eeprom,還可以為光模塊中的其它非易失性存儲器。
相應的,預存儲數(shù)據(jù)可以存儲于控制器中的flash存儲器,也可以存儲于光模塊中的eeprom,還可以存儲于光模塊的其它非易失性存儲器中,在此不對的預存儲數(shù)據(jù)的存儲位置進行限定。
在步驟s120中,檢測預存儲數(shù)據(jù)是否與驅(qū)動芯片中相應的數(shù)據(jù)是否一致,若為是(n),則執(zhí)行步驟s130,若為是,則不作處理。
需要說明的是,預存儲數(shù)據(jù)是與驅(qū)動芯片中的數(shù)據(jù)相對應的。
在一具體的示例性實施例中,通過讀取驅(qū)動芯片中寄存器的配置數(shù)據(jù),從而獲取驅(qū)動芯片中與預存儲數(shù)據(jù)相應的數(shù)據(jù)。
導致預存儲數(shù)據(jù)與驅(qū)動芯片中相應的數(shù)據(jù)不一致的原因有很多,例如電源波動、靜電等原因使驅(qū)動芯片中的數(shù)據(jù)被改寫。
在一具體的實例性實施例中,正常工作時電源電壓典型值為3.3v,當因電壓波動等原因?qū)е露虝r間電源電壓為2.8v時,由于驅(qū)動芯片處于供電下限,驅(qū)動芯片復位,驅(qū)動芯片內(nèi)寄存器的配置數(shù)據(jù)全部改為默認值,使激光器工作異常。
通過將各預存儲數(shù)據(jù)與驅(qū)動芯片中相應的數(shù)據(jù)一一對比,檢測是否完全一致。若各預存儲數(shù)據(jù)與驅(qū)動芯片中相應的數(shù)據(jù)并非完全一致,則驅(qū)動芯片中相應的數(shù)據(jù)存在部分或全部數(shù)據(jù)被改動。
檢測驅(qū)動芯片中相應的數(shù)據(jù)是否與預存儲數(shù)據(jù)一致時,可以通過預設一定的檢測周期,進而在每個檢測周期對預存儲數(shù)據(jù)與驅(qū)動芯片中相應的數(shù)據(jù)進行一致性檢測。
在步驟s130中,將預存儲數(shù)據(jù)重新寫入驅(qū)動芯片中。
在將預存儲數(shù)據(jù)重新寫入驅(qū)動芯片時,可以通過在驅(qū)動芯片的數(shù)據(jù)中查找與對應的預存儲數(shù)據(jù)不一致的數(shù)據(jù),進而將預存儲數(shù)據(jù)重新寫入驅(qū)動芯片,重新改寫驅(qū)動芯片中與對應的預存儲數(shù)據(jù)不一致的數(shù)據(jù);也可以在檢測到預存儲數(shù)據(jù)與驅(qū)動芯片中相應的數(shù)據(jù)不一致后,對驅(qū)動芯片中與預存儲數(shù)據(jù)對應的所有數(shù)據(jù)進行預存儲數(shù)據(jù)的寫入。
利用如上所述的方法,通過讀取光模塊中非易失性存儲器的預存儲數(shù)據(jù),在預存儲數(shù)據(jù)與驅(qū)動芯片中相應的數(shù)據(jù)不一致時,將預存儲數(shù)據(jù)重新寫入驅(qū)動芯片中,使驅(qū)動芯片中的數(shù)據(jù)與對應的預存儲數(shù)據(jù)不一致時能夠迅速恢復,避免驅(qū)動芯片長時間出現(xiàn)異常,保證了驅(qū)動芯片的數(shù)據(jù)準確性,從而保證光模塊的正常工作。
根據(jù)圖2中示出的光模塊中驅(qū)動芯片的數(shù)據(jù)寫入方法流程圖,步驟s110之前,該光模塊中驅(qū)動芯片的數(shù)據(jù)寫入方法還可以包括以下步驟。
在步驟s210中,光模塊上電初始化中,對驅(qū)動芯片進行數(shù)據(jù)的寫入,完成初始化配置。
可以理解的是,光模塊上電初始化時,對驅(qū)動芯片進行初始化配置,使光模塊進入工作模式,激光器進入正常工作狀態(tài)。
在光模塊上電初始化時,對驅(qū)動芯片進行數(shù)據(jù)寫入,以在初始數(shù)據(jù)控制下,光模塊進入工作模式。
利用如上的方法,在光模塊上電初始化中,控制器進行驅(qū)動芯片中進行數(shù)據(jù)的寫入,完成初始化配置,使光模塊進入工作模式,使光模塊在控制器預存儲數(shù)據(jù)控制下進行工作,保證了光模塊的正常工作。
圖3是根據(jù)一示例性實施例示出的對步驟s210的細節(jié)的描述。該步驟s210可以包括以下步驟。
在步驟s211中,光模塊上電時,判斷驅(qū)動芯片的供電電壓是否達到驅(qū)動芯片工作電壓,若為是(y),則執(zhí)行步驟s212,若為否(n),則執(zhí)行步驟s213。
光模塊上電是將光模塊的供電電壓從0提升到正常工作電壓。
可以理解的是,光模塊中驅(qū)動芯片存在一定的工作電壓范圍,供電電壓在此工作電壓范圍內(nèi),驅(qū)動芯片進行正常工作。例如驅(qū)動芯片的工作電壓范圍為2.8-3.6v,供電電壓在2.8-3.6v內(nèi)驅(qū)動芯片正常工作。
光模塊上電時,供電電壓從0提升到正常工作電壓需要一定的時間。因此,在供電電壓未提升到正常工作電壓時,若對驅(qū)動芯片進行數(shù)據(jù)的寫入,將使驅(qū)動芯片進入非穩(wěn)定狀態(tài),導致驅(qū)動芯片出現(xiàn)異常。因此,上電時若供電電壓未達到驅(qū)動芯片的工作電壓,則不對驅(qū)動芯片進行數(shù)據(jù)寫入,避免驅(qū)動芯片工作異常。在供電電壓達到驅(qū)動芯片的工作電壓時,再對驅(qū)動芯片進行數(shù)據(jù)的寫入。
在步驟s212中,將預存儲數(shù)據(jù)寫入驅(qū)動芯片中。
在步驟s213中,繼續(xù)進行上電操作。
通過如上所述的方法,在光模塊上電中,在供電電壓達到驅(qū)動芯片的工作電壓時再對驅(qū)動芯片進行數(shù)據(jù)的寫入,避免驅(qū)動芯片進入異常工作狀態(tài)。
圖4是根據(jù)一示例性實施例示出的對步驟s130的細節(jié)的描述。該步驟s130可以包括以下步驟。
在步驟s131中,在驅(qū)動芯片中,確定與對應的預存儲數(shù)據(jù)不同的異常數(shù)據(jù)。
異常數(shù)據(jù)是與對應的預存儲數(shù)據(jù)不一致的數(shù)據(jù)。
可以理解的是,當預存儲數(shù)據(jù)與驅(qū)動芯片中相應的數(shù)據(jù)不一致時,可能是所有預存儲數(shù)據(jù)與驅(qū)動芯片中相應的數(shù)據(jù)均不同,也有可能只是部分預存儲數(shù)據(jù)與驅(qū)動芯片中相應的數(shù)據(jù)不同。
因此,在驅(qū)動芯片中與所有預存儲數(shù)據(jù)對應的數(shù)據(jù)中,通過一一對比查找與對應的預存儲數(shù)據(jù)中不同的異常數(shù)據(jù)。
在步驟s132中,將與異常數(shù)據(jù)對應的預存儲數(shù)據(jù)重新寫入驅(qū)動芯片中。
利用如上所述的方法,在預存儲數(shù)據(jù)和驅(qū)動芯片中相應的數(shù)據(jù)不一致時,確定驅(qū)動芯片中與對應的預存儲數(shù)據(jù)不同的異常數(shù)據(jù),進而將這些異常數(shù)據(jù)對應的預存儲數(shù)據(jù)重新寫入驅(qū)動芯片中,保證驅(qū)動芯片中數(shù)據(jù)的準確性,而且由于無需對驅(qū)動芯片中的所有數(shù)據(jù)進行改寫,大大提高了數(shù)據(jù)寫入的效率。
圖5是根據(jù)一示例性實施例示出的對圖5中步驟s132的細節(jié)的描述。圖6中,預存儲數(shù)據(jù)存儲于控制器,該步驟s132可以包括以下步驟。
在步驟s1321中,從控制器的預存儲數(shù)據(jù)中選取與異常非易失性寄存器對應的預存儲數(shù)據(jù)。
如前所述的,預存儲數(shù)據(jù)可以存儲于控制器中的非易失性存儲器等位置,例如,控制器中的flash存儲器。
當預存儲數(shù)據(jù)存儲于控制器時,在確定驅(qū)動芯片中與預存儲數(shù)據(jù)對應的異常數(shù)據(jù)后,從控制器的預存儲數(shù)據(jù)中選取與異常數(shù)據(jù)對應的預存儲數(shù)據(jù),從而方便對驅(qū)動芯片進行預存儲數(shù)據(jù)的寫入。
在步驟s1322中,將選取的預存儲數(shù)據(jù)重新寫入驅(qū)動芯片中。
利用如上所述的方法,預存儲數(shù)據(jù)存儲于控制器時,從控制器的預存儲數(shù)據(jù)中選取與異常非易失性寄存器對應的預存儲數(shù)據(jù),進而對異常非易失性寄存器重新進行數(shù)據(jù)的寫入,保證非易失性寄存器中數(shù)據(jù)的準確性,而且由于無需對所有非易失性寄存器進行配置數(shù)據(jù)的寫入,大大提高了數(shù)據(jù)寫入的效率。
下面結(jié)合一個具體的應用場景來詳細闡述如上的光模塊中驅(qū)動芯片的數(shù)據(jù)寫入方法。光模塊中驅(qū)動芯片的數(shù)據(jù)寫入方法運行于一光模塊中。具體的,如圖6所示。
光模塊上電時,判斷自身的供電電壓是否達到驅(qū)動芯片的工作電壓。
若供電電壓達到驅(qū)動芯片的工作電壓(y),則觸發(fā)光模塊將配置數(shù)據(jù)寫入驅(qū)動芯片中的寄存器。
若供電電壓未達到驅(qū)動芯片的工作電壓(n),則繼續(xù)進行上電操作。
通過控制器讀取光模塊中非易失性存儲器的預存儲數(shù)據(jù)。
將預存儲數(shù)據(jù)與驅(qū)動芯片中相應寄存器的配置數(shù)據(jù)進行對比。判斷預存儲數(shù)據(jù)是否和驅(qū)動芯片中相應寄存器的配置數(shù)據(jù)一致。
如果預存儲數(shù)據(jù)和驅(qū)動芯片中相應寄存器的配置數(shù)據(jù)不一致(n),則將預存儲數(shù)據(jù)重新寫入驅(qū)動芯片的相應寄存器中。
如果預存儲數(shù)據(jù)和驅(qū)動芯片中相應寄存器的配置數(shù)據(jù)相一致(y),則不對驅(qū)動芯片中寄存器的配置數(shù)據(jù)進行處理。
下述為本公開裝置實施例,可以用于執(zhí)行本上述光模塊中驅(qū)動芯片的數(shù)據(jù)寫入方法實施例。對于本公開裝置實施例中未披露的細節(jié),請參照本公開光模塊中驅(qū)動芯片的數(shù)據(jù)寫入方法實施例。
圖7是根據(jù)一示例性實施例示出的一種光模塊中驅(qū)動芯片的數(shù)據(jù)寫入裝置的框圖,該裝置包括但不限于:數(shù)據(jù)讀取模塊110、數(shù)據(jù)異常檢測模塊120及數(shù)據(jù)寫入模塊130。
數(shù)據(jù)讀取模塊110,用于讀取光模塊中非易失性存儲器的預存儲數(shù)據(jù);
數(shù)據(jù)檢測模塊120,用于檢測預存儲是否與驅(qū)動芯片中相應的數(shù)據(jù)是否一致;
數(shù)據(jù)寫入模塊130,用于在預存儲數(shù)據(jù)與驅(qū)動芯片中相應的數(shù)據(jù)不一致時,將預存儲數(shù)據(jù)重新寫入驅(qū)動芯片中。
上述裝置中各個模塊的功能和作用的實現(xiàn)過程具體詳見上述光模塊中驅(qū)動芯片的數(shù)據(jù)寫入方法中對應步驟的實現(xiàn)過程,在此不再贅述。
可選的,根據(jù)圖7中示出的光模塊中驅(qū)動芯片的數(shù)據(jù)寫入裝置框圖,該裝置還包括但不限于:初始化配置模塊210。
初始化配置模塊210,用于光模塊上電初始化中,對驅(qū)動芯片進行數(shù)據(jù)的寫入,完成初始化配置。
可選的,如圖8所示,初始化配置模塊210包括但不限于:電壓判斷單元211和數(shù)據(jù)寫入單元212。
電壓判斷單元211,用于光模塊上電時,判斷驅(qū)動芯片的供電電壓是否達到驅(qū)動芯片工作電壓;
數(shù)據(jù)寫入單元212,用于在供電電壓達到工作電壓時,將預存儲數(shù)據(jù)寫入驅(qū)動芯片中。
可選的,如圖9所示,圖7中所示的數(shù)據(jù)寫入模塊130包括但不限于:異常寄存器確定單元131和數(shù)據(jù)寫入單元132。
異常數(shù)據(jù)確定單元131,用于在驅(qū)動芯片中,確定與對應的預存儲數(shù)據(jù)不同的異常數(shù)據(jù);
數(shù)據(jù)寫入單元132,用于將與異常數(shù)據(jù)對應的預存儲數(shù)據(jù)重新寫入驅(qū)動芯片中。
可選的,如圖10所示,圖9中所示的數(shù)據(jù)寫入模塊132包括但不限于:預存儲數(shù)據(jù)選取子單元1321和數(shù)據(jù)寫入子單元1322。
預存儲數(shù)據(jù)選取子單元1321,用于從控制器的預存儲數(shù)據(jù)中選取與異常數(shù)據(jù)對應的預存儲數(shù)據(jù);
數(shù)據(jù)寫入子單元1322,用于將選取的預存儲數(shù)據(jù)重新寫入驅(qū)動芯片中。
應當理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍執(zhí)行各種修改和改變。本發(fā)明的范圍僅由所附的權利要求來限制。