gpon接入—狀態機分析
在g984.3和g987.3中定義了onu啟用的步驟。其狀態分別是:
o1:初始狀態
o2-3:序列號處理
o4:時間調整
o5:正常操作狀態
o6:間歇的下行失步狀態
o7:緊急停止狀態
onu在上電以後,或者onu收到deactivationploam訊息以後,或者從o7狀態出來後,都要先進入初始狀態,在這一狀態下,onu上行關閉,下行接收從olt來的下行幀,檢測其同步字段,從而獲取同步。在這個狀態下,之前的alloc-id,xgem port-id, burst profile和equalization delay全部失效,需要重新獲取;
在獲得同步以後,onu就可以接收olt下行幀的資料了。在olt下行幀中,會有乙個特殊的廣播的profile, 告訴onu可以上報其序列號了。onu在收到這個訊息後,會在xgtc幀的幀頭位置上報序列號ploam訊息。這時候,由於onu上行沒有同步,所以在收到olt的下行幀以後,就可以傳送了。這時候,如果有多個onu要上報,則會出現衝突;而且正常工作的onu也會收到影響。為了正確的接收onu的序列號資訊,首先olt定義了乙個靜默視窗,在這個視窗,所有正常工作的onu都不能傳送上行資料;需要上報序列號的onu,在收到olt的下行資料後,隨機延遲一段時間(0~48 us)在傳送上行資料。olt收到序列號後,會給onu分配乙個onu-id.
在o4狀態,olt傳送乙個調整時間的命令給乙個onu,同時進入延遲測量狀態;onu收到這條訊息,會發乙個registration的訊息給olt。olt根據收到的時間,計算出鏈路延遲。並把延遲通過ranging_time訊息發給onu,這時候onu就獲得了上行同步。進入正常操作狀態。當狀態機進入o4時,會有啟動乙個定時器to1(一般為10s),如果在to1的時間內不能進入o5,onu會丟棄分配的onu-id,imc-xgem port-id,重新回到o2-3狀態。如果在o4狀態,收到了deactivation的訊息,則進入o1.
o5狀態是乙個正常模式,onu可以根據olt的排程正常收發資料。
在o5狀態,如果下行失步, 進入o6;如果o6時間超過了to2(一般為100ms),則進入o1狀態.
o7是乙個特殊的狀態,一般onu收到olt傳送的disable_serial_number訊息後進入o7狀態,並把上行傳送停止。如果在o7收到enable sn,則進入o1狀態。這個狀態是為了防止壞的onu不聽指揮,上行胡亂傳送資料,從而干擾其他onu。
以上基本上是協議的翻譯,在我看來,固網接入和無線的接入其實原理是一樣的。首先,終端裝置要獲取下行同步,解碼廣播資訊;然後通過接入通道傳送一條訊息;根據訊息的時延,獲取上行同步資訊,並發給終端裝置。這時候,上下行同步都已經建立,就可以通訊了。而且在正常的o5狀態,上行同步還可以微調。在無線接入領域,我們考慮的是終端的移動;在固網,我們考慮的是溫度的變化,提供更精確的同步。
後面我們會涉及到靜默視窗的大小設定,時間調整等。
狀態機 狀態機0
近半年都忙於做專案,沒有太多的時間去整理和總結在專案中用過的技術 個人還是覺得技術需要總結提煉和沉澱的,忙到沒時間去總結提公升其實不 是什麼好事,這次講下狀態機,在戰鬥型別的遊戲中角色有多種不同的狀態,而狀態的切換錯綜複雜,23種設計模式中有一種模式叫做狀態模式,不過 這種模式是把狀態切換條件放到各...
python 狀態機 Python 狀態機
class statemachine def init self self.handlers 狀態轉移函式字典 self.startstate none 初始狀態 self.endstate 最終狀態集合 引數name為狀態名,handler為狀態轉移函式,end state表明是否為最終狀態 de...
狀態機小記
工作上有個功能模組用到了類似狀態機的東東,於是上網科普了一番。狀態機是由一系列輸入驅動,然後系統由其中一種狀態轉換為另一種狀態並產生某種輸出,這樣子的乙個系統叫做狀態機。狀態機分為兩種,一種是輸出只和系統狀態有關,叫做摩爾狀態機,另一種是輸出和輸入以及系統狀態都相關,叫做公尺莉狀態機。有關輸入 狀態...