本發(fā)明涉及一種光模塊數(shù)據(jù)處理技術(shù)領(lǐng)域,具體地說,是涉及一種防止光模塊舊數(shù)據(jù)覆蓋新數(shù)據(jù),保證協(xié)議數(shù)據(jù)完整的方法。
背景技術(shù):光通信領(lǐng)域INF-8077i協(xié)議中A0的110、111字節(jié),SFF-8472協(xié)議中A2的110字節(jié)(下文稱為協(xié)議字節(jié))包含的數(shù)據(jù)有控制位和狀態(tài)位??刂莆皇侵钢鳈C通過I2C總線發(fā)送給光模塊、控制光模塊工作的比特位。狀態(tài)位是光模塊檢測自身狀態(tài)并隨時更新的比特位。但是,控制位和狀態(tài)位是存儲在一個字節(jié)中的。光模塊會定時更新協(xié)議字節(jié)的狀態(tài)位。主機可以讀取協(xié)議字節(jié),了解光模塊當(dāng)前的狀態(tài)信息和被控狀態(tài),也可以向光模塊寫協(xié)議字節(jié)的控制位,控制光模塊工作狀態(tài)。協(xié)議字節(jié)的控制位只有主機通過I2C向協(xié)議字節(jié)寫數(shù)據(jù)時才可以更改。協(xié)議字節(jié)的狀態(tài)位只有光模塊可以更改。光模塊為了提高對主機的響應(yīng)速度,都會將I2C總線的處理優(yōu)先級設(shè)為最高級中斷,即光模塊優(yōu)先處理主機發(fā)送過來的信息。由于光模塊和主機都可以對光模塊內(nèi)部的協(xié)議字節(jié)進行寫操作,因而,有可能出現(xiàn)協(xié)議字節(jié)的控制位被寫回舊的控制位的問題,導(dǎo)致新的控制位丟失,使光模塊數(shù)據(jù)不完整。
技術(shù)實現(xiàn)要素:本發(fā)明的目的在于提供一種保證光模塊數(shù)據(jù)完整的方法,解決了現(xiàn)有光模塊控制位和狀態(tài)位在一個協(xié)議字節(jié)中,可能出現(xiàn)協(xié)議字節(jié)的控制位被寫回之前的控制位,出現(xiàn)控制信息丟失,導(dǎo)致主機判定光模塊不正常的技術(shù)問題。為解決上述技術(shù)問題,本發(fā)明采用以下技術(shù)方案予以實現(xiàn):一種保證光模塊協(xié)議數(shù)據(jù)完整性的方法,所述光模塊獲取自身的狀態(tài)信息并將其單獨保存,所述光模塊接收主機發(fā)送的控制信息并將其單獨保存。進一步的,所述光模塊獲取自身的狀態(tài)信息并將其保存在內(nèi)存中的狀態(tài)信息存儲單元,所述光模塊接收主機發(fā)送的控制信息并將其保存在內(nèi)存中的控制信息存儲單元。更進一步的,所述光模塊獲取自身的狀態(tài)信息并更新內(nèi)存中的狀態(tài)信息存儲單元的存儲數(shù)據(jù),所述光模塊接收主機發(fā)送的控制信息并更新內(nèi)存中的控制信息存儲單元的存儲數(shù)據(jù)。優(yōu)選的,所述光模塊獲取自身的狀態(tài)信息并將其保存在狀態(tài)位變量A中,所述光模塊接收主機發(fā)送的控制信息并將其保存在控制位變量B中。進一步的,所述光模塊獲取自身的狀態(tài)信息并更新狀態(tài)位變量A,所述光模塊接收主機發(fā)送的控制信息并更新狀態(tài)位變量B。其中,當(dāng)主機要獲取光模塊的狀態(tài)信息時,將控制信息和光模塊自身的狀態(tài)信息進行邏輯運算形成協(xié)議字節(jié),將該協(xié)議字節(jié)返回給主機優(yōu)選的,協(xié)議字節(jié)由控制信息和光模塊自身的狀態(tài)信息進行按位或運算得到。優(yōu)選的,主機通過I2C總線與光模塊通信?;谏鲜霰WC光模塊協(xié)議數(shù)據(jù)完整性的方法的設(shè)計,本發(fā)明還提出了一種光模塊,包括:狀態(tài)信息存儲單元:用于存儲光模塊的自身狀態(tài)信息;控制信息存儲單元:用于存儲主機發(fā)送的控制信息;以及邏輯運算單元:用于將狀態(tài)信息存儲單元和控制信息存儲單元存儲的信息進行邏輯運算形成協(xié)議字節(jié)。優(yōu)選的,邏輯運算單元將狀態(tài)信息存儲單元和控制信息存儲單元存儲的信息進行按位或運算形成協(xié)議字節(jié)。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點和積極效果是:本發(fā)明對光模塊自身的狀態(tài)信息和主機發(fā)送的控制信息分別單獨保存,當(dāng)接收到新的光模塊自身的狀態(tài)信息和主機發(fā)送的控制信息后分別對原存儲數(shù)據(jù)進行更新。光模塊自身的狀態(tài)信息和控制信息均不會丟失,而當(dāng)主機要獲取光模塊的狀態(tài)信息時,將控制信息和光模塊自身的狀態(tài)信息進行按位或運算得到的協(xié)議字節(jié)發(fā)送給主機即可。因而,本發(fā)明可以保證協(xié)議字節(jié)中包含的控制位和狀態(tài)位的正常更新,不會出現(xiàn)控制位更新不成功的問題,可以保證光通信系統(tǒng)的正常運行。結(jié)合附圖閱讀本發(fā)明實施方式的詳細(xì)描述后,本發(fā)明的其他特點和優(yōu)點將變得更加清楚。附圖說明圖1為現(xiàn)有技術(shù)中正常狀態(tài)1下協(xié)議字節(jié)更新的流程圖;圖2為現(xiàn)有技術(shù)中正常狀態(tài)2下協(xié)議字節(jié)更新的流程圖;圖3為現(xiàn)有技術(shù)中正常狀態(tài)3下協(xié)議字節(jié)更新的流程圖;圖4為現(xiàn)有技術(shù)中異常情況下協(xié)議字節(jié)更新的流程圖。圖5本發(fā)明具體實施例協(xié)議字節(jié)更新的流程圖。圖6為本發(fā)明光模塊的原理框圖。具體實施方式下面首先對現(xiàn)有技術(shù)中光模塊協(xié)議字節(jié)更新過程以及存在的問題進行說明,以便進一步說明本發(fā)明的技術(shù)方案?,F(xiàn)有技術(shù)中,光模塊為了提高對主機的響應(yīng)速度,都會將對I2C總線的處理優(yōu)先級設(shè)為最高級中斷,即優(yōu)先處理主機發(fā)送過來的控制信息。如圖1所示,當(dāng)主機沒有向光模塊發(fā)送控制信息,光模塊僅僅獲取自身的狀態(tài)信息時,協(xié)議字節(jié)更新正常,其協(xié)議字節(jié)更新過程如下:1、光模塊獲取自身的狀態(tài)信息。2、光模塊獲取協(xié)議字節(jié)當(dāng)前值。3、光模塊將協(xié)議字節(jié)當(dāng)前值的狀態(tài)位更新為新獲取的光模塊自身的狀態(tài)信息,并存儲回協(xié)議字節(jié)。當(dāng)主機要獲取光模塊的狀態(tài)信息時,將該協(xié)議字節(jié)返回給主機即可,協(xié)議字節(jié)表達(dá)的完全是光模塊的最新狀態(tài)信息。如圖2所示,當(dāng)主機向光模塊發(fā)送控制信息,且發(fā)送控制信息的過程發(fā)生在光模塊協(xié)...