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