• 沒有找到結果。

4.3 閘道節點(Gateway)

4.3.1 DVB_RCS_GW 模組

4.6.1.3 發送需求封包

RCST_CTL模組會透過與RCS_MAC_RCST模組中的Queue Manager溝通,

得知下層Queue的需求後,發送需求封包給網路控制中心節點要求時槽。在此

發送需求封包與分配時槽的問題也是實作的一大重點之一,因為

RCS_MAC_RCST模組中的Queue有四種之多,每種Queue的特性不同,要求 時槽及分配時槽的方式也不一樣,因此在此不做詳述。

4.6.2 MPE 模組

此模組在服務提供商節點節點的模組介紹已經介紹過,在此不再贅述。

4.6.3 SECTION 模組

此模組在網路控制中心節點的模組介紹已經介紹過,在此不再贅述。

44

4.6.4 MPEG2_TS_RCST 模組

MPEG2_TS_RCST模組收到DVB_S2_RCST模組送上來的MPEG2 Transport Stream封包時,它會由該封包的表頭取得Packet ID,之後會把這個封包放到對 應到該Packet ID的緩衝空間中。

在衛星地面接收站節點中的MPEG2_TS_RCST模組,每一個Packet ID都會 有一個對應的緩衝空間,其用途是暫存那些還無法組成一個Section的MPEG2 Transport Stream封包,在MPEG2_TS_RCST模組收到每一個MPEG2 Transport Stream封包時,都會由該封包表頭的取出Packet ID,嘗試將這個封包與那些在 緩衝空間中,有相同Packet ID的MPEG2 Transport Stream封包組合成一個 Section,當一個Section成功的組合回來時,MPEG2_TS_RCST模組就會把這個 Section送往SECTION模組。

4.6.5 DVB_S2_RCST 模組

DVB_S2_RCST模組收到正向通道上的訊號後,會先分析同部訊號

(Preamble),由同部訊號中可以得知這個訊號的格式,包含調變與正向糾錯碼 類型、訊框長度和指示區塊(Pilot Block)。若收到的是一個虛設訊框,則將其丟 棄,反之則要依據由同部訊號所得到的資訊來做相對應的處理。

解調變與正向糾錯解碼的部分與饋送者節點中DVB_S2_FEEDER模組的部分相 對稱。在正向糾錯解碼中LDPC碼本身的特性,會因為解碼過程中解碼階段

(Decoding Phase)重複次數的不同,而會有不同的解碼能力,但是在真實世界 中會因為重複次數的增加而使解碼的運算時間延長,但是在我們的模擬中,解碼 的運算時間是不做計算的,這部分在重複次數很多的設定下,可能會與真實世界 有所出入,但是一般真實世界中為了良好的系統反應時間,解碼階段的重複次數

45

都不高,所以在我們的設計中,忽略這個部分的模擬是可以接受的。在BCH碼 的部份,可更正錯誤的能力會依照設定而有8、10與12 bits的差別。

在DVB_S2_RCST模組完成解調變與正向糾錯解碼處理後會得到原始的資

料訊匡,即可由此訊框的標頭中取得該訊框的長度和一些用來把此訊框還原成 MPEG2 Transport Stream封包的訊息,之後DVB_S2_RCST模組就會將這個訊框 依照表頭中的訊息切割成數個MPEG2 Transport Stream封包並且送往

MPEG2_TS_RCST模組,這部份的動作即為解多工的動作。在把MPEG2 Transport Stream封包送給MPEG2_TS_RCST模組前會依照訊框的標頭中的界面欄位的 值,將這個封包相對應的介面告訴MPEG2_TS_RCST模組。

4.6.6 RCS_ATM_RCST 模組

在收到RCST_CTL模組送下來的IP封包後,RCS_ATM_RCST模組會依照 AAL5規格中的定義在這個IP封包後面加上一個AAL5的表尾,其中包含這個 IP封包原始的長度以及CRC32的訊息,如圖4-2。之後把這段資料填滿成48 bytes 的倍數,並以每48 bytes為一個單位切割這個封包。在切割完成後,每一個48 bytes 的封包會依據ATM規格中的定義加上5 bytes的ATM表頭,如圖4-3,在其中 有一個bit是用來表示該ATM封包是否為這一串ATM封包的最後一個,另外 CRC8的訊息也會在ATM表頭中。

圖 4-2 (AAL5)ATM Adaptation Layer 5 封包格式

46

User Data(IP封包) Padding AAL5 表尾 48 bytes

48 bytes 48 bytes

Cell Payload ATM 表頭

5B

圖 4-3 AAL5的切割與封裝

4.6.7 RCS_MAC_RCST 模組

RCS_MAC_RCST模組會先向RCST_CTL模組取得一個Burst所包含的ATM 封包個數,這可能是1、2或4個ATM封包,然後再向RCST_CTL模組取得反 向通道的特性與可以使用的時槽,有了這些資訊後RCS_MAC_RCST模組就可 以由緩衝空間中取出適當數量的ATM封包,在這些封包集合的前面加上同部訊 號之後即為一個Burst,最後等到剛剛取得之時槽的時間點到來,就可以把這個 Burst送到DVB_RCS_RCST模組做實體層的處理。

在一個Burst傳送結束時,RCS_MAC_RCST模組會檢查緩衝空間,若是裡 面還有未送出的ATM封包,就再進行一次傳送的程序,若是該緩衝空間已經沒 有任何待傳送的ATM封包,那RCS_MAC_RCST模組會回到閒置的狀態。

當RCS_MAC_RCST模組向RCST_CTL模組要求可以使用的時槽時,若是拿不 到任何的時槽,RCS_MAC_RCST模組就會等待一個訊框的時間之後向

RCST_CTL模組再次要求。這個動作會一直重複,直到取得可用的時槽為止。

此模組在實做時,需要有一塊緩衝空間來存放要傳送出去的封包,我們在這裡實

47

作了四種在規格中所定義的Queue,執行時可以依據不同流量樣式來導入到不同 的QUEUE。RCS_MAC_RCST模組透過Queue Manager來管理所有的Queue, RCST_CTL也是透過Queue manager來與QUEUE溝通

4.6.8 DVB_RCS_RCST 模組

DVB_MAC_RCST模組會在RCST_CTL模組取得可以使用的時槽時,也會 得知這些時槽所應該要使用的編碼率,這個訊息在DVB_MAC_RCST模組把 Burst送到DVB_RCS_RCST模組時,也會把這個Burst所使用的編碼率一同帶給 DVB_RCS_RCST模組,所以DVB_RCS_RCST模組就可以用這個資訊以正確的 編碼率來做通道編碼。

48

相關文件