在通訊協定軟體的開發階段初期,常會出現要開發媒體存取控制(MAC)層軟體的當下,卻還沒有真正能夠工作的實體(PHY)層可以使用。當這種情形發生時,雖然可以先將與實體層之間的介面定義好,以此為基準來開發出MAC層軟體,但開發中期仍會面對沒有實體層平台可供操作,使得整體性的功能測試無法進行。
虛擬實體層(Virtual PHY, VPHY)顧名思義為一套虛擬實體層平台的工具,在還沒有真正的實體層平台時,可以取代真正的實體層平台,作為被MAC層軟體操作的對象,如此一來,整體性的功能測試便可以進行,減輕未來將MAC層軟體介接到真正實體層平台時的開發負擔。而為了達到整體性的功能測試,VPHY必須提供以下的功能:完善的操作介面供MAC層軟體使用、模擬真實的實體層行為以符合MAC層軟體運行時的需求,以及資料連結以供端點對端點的測試。
以下會說明所設計的VPHY框架架構,再介紹依此VPHY架構所開發出的可供LTE eNode-B/UE的MAC層軟體所使用的VPHY。
解析VPHY架構
在VPHY框架(圖1)中,可同時存在多個VPHY Entity,這些實體(Entity)是透過VPHY Entity ID被MAC層軟體所識別的,通常每個VPHY Entity是被一個MAC層軟體所使用。透過圖中的Entity Manager,MAC層軟體可以指定創建模擬某種通訊協定的VPHY Entity。創建完成後,VPHY模組會提供一個VPHY Entity ID給MAC層軟體使用,之後透過傳訊的方式,可使MAC層軟體得以對該VPHY Entity進行操作。在每個VPHY Entity中都有一個模擬該通訊協定實體層行為的Protocol Part,MAC層軟體對實體層的操作實際上是反應在該Protocol Part的行為。
|
圖1 VPHY架構圖 |
在框架示意圖中的最下方為乙太網路射頻(Ethernet RF, EthRF),提供資料連結能力,並負責傳送該通訊協定下RF所應該承載的資料,採用的方法是乙太網路封包,故取名為Ethernet RF。以下針對VPHY Entity、Ethernet RF和Protocol Part做介紹。
‧ |
|
|
針對不同通訊協定所制定的VPHY,在架構中仍有其共通之處,這些共通的地方包括與MAC層之間都是以傳訊的方式來溝通,以及都是利用Ethernet RF來傳送資料。VPHY Entity的功能就在於統整這些共通之處,提供一個統一的運行架構供其下的Protocol Part和其上的MAC層軟體來使用。在傳訊方面,VPHY Entity中設有兩個佇列(Queue),一個用來儲存送抵該VPHY Entity的訊息,這些訊息包括MAC層軟體對VPHY的控制訊息,以及Ethernet RF所接收到屬於該VPHY Entity的封包,另外一個Queue則用來儲存要該VPHY Entity想傳送的訊息,包括VPHY傳送給MAC層軟體的訊息
鑑於送抵VPHY Entity的訊息必然一定要有人負責處理,因此輸入訊息的處理工作也被統整在VPHY Entity中,這部分的功能大抵上是先將訊息取出Queue,然後依據該訊息的類別來做相對應的處理,而由於Protocol Part的不同會有不一樣的訊息處理方式,因此VPHY模組內會有資料庫維護相對於各種Protocol Part的訊息處理函式。VPHY Entity透過查詢資料庫可知該訊息對應到何種處理函式,呼叫該處理函式後,該處理函式的內部行為是由Protocol Part所處理,在訊息處理完之後,便會釋放該訊息。。 |
‧ |
|
|
VPHY封包的格式可見圖2所示的VPHY。在封包格式中,若Ethernet Header內的Type欄位填為對應到VPHY Type的數值,則該封包便會是一個VPHY的封包,接著的VPHY Fragment Header是用來將無法一次傳送的VPHY Payload切割成數個較小封包進行傳送。
VPHY Payload所攜帶的內容是從VPHY Protocol Header開始,此Header主要目的是標示該資料是屬於何種Protocol Type。此外,該Header也負責兩個VPHY端點間測量時距的功能(稱之為Ping的動作)。在目前的設計中,Ping分為兩種,一種是指定某端點進行測量,另一種是指定想接收該Protocol Type的所有端點來測量。在VPHY Protocol Header之後,是VPHY Protocol Payload,這部分的格式會依不同的Protocol Type而有所差別。
EthRF所負責的是處理VPHY格式的網路封包,在動作上可分成傳送與接收。在傳送方面,EthRF將Protocol Part提供的VPHY Protocol Payload加上VPHY格式的Header後傳送出去;在接收方面,首先要先將VPHY格式的Header解讀,然後可知該封包屬於哪一種Protocol Type,接下來去詢問VPHY模組內各個歸屬於此類Protocol Type的VPHY Entity,是否有意願要接收處理此VPHY Protocol Payload。若是有意願,EthRF會將該VPHY Protocol Payload包裝成訊息傳送給該VPHY Entity。 |
‧ |
|
|
承上所述,VPHY Entity中所有與該通訊協定相關的功能都實作於Protocol Part中,為了達成這個需求,Protocol Part必須具備完善的訊息介面以供MAC層軟體操作。此外,在VPHY Protocol Payload的格式規畫上也須能承載該通訊協定所需要的資訊,而在運作行為,也必須能模擬實體層行為以符合MAC層軟體的開發需求。
|
運用LTE技術之VPHY設計
本章將描述可搭配長程演進計畫(LTE)的VPHY設計,以此為例,使讀者更容易了解VPHY概念與其功能。
支援多項功能
LTE VPHY目前提供的功能有下列幾點:支援分頻雙工(FDD)模式的Type 1 Frame Structure;支援Normal CP(Cyclic Prefix)的Radio Resource;下行方向可支援傳送主同步訊號(Primary Synchronization Signal, PSS)、輔助同步訊號(Secondary Synchronization Signal, SSS)、蜂巢網專用參考訊號(Cell-specific Resource Signal, CELL_RS)、實體控制格式指示通道(Physical Control Format Indicator Channel, PCFICH)、實體下鏈控制通道(Physical Downlink Control Channel, PDCCH)、實體混合自動請求回覆指示通道(Physical Hybrid ARQ Indicator Channel, PHICH)、實體廣播通道(Physical Broadcast Channel, PBCH)、高速實體下鏈分享通道(Physical Downlink Shared Channel, PDSCH),以及上行方向可支援傳送實體隨機存取通道(Physical Random Access Channel, PRACH)、實體上鏈控制通道(Physical Uplink Control Channel, PUCCH)、實體上鏈分享通道(Physical Uplink Shared Channel, PUSCH)。
VPHY Payload專為LTE所設計
根據圖2,對於VPHY封包的說明,可以得知VPHY封包可用來搭配傳送各種MAC層軟體資料,在此即介紹專門為LTE所設計的VPHY Protocol Payload。於下行方向,將VPHY Protocol Payload分為DL Signal和DL Channel兩類,兩者皆帶有下行資訊,下行的LTE VPHY Protocol Payload欄位可參照圖3。另外,在上行方向,將VPHY Protocol Payload分為UL Signal和UL Channel兩類。上行的LTE VPHY Protocol Payload欄位可參照圖4。
|
圖2 VPHY封包格式圖 |
|
圖3 LTE Downlink VPHY Protocol Payload |
|
圖4 LTE Uplink VPHY Protocol Payload |
eNode-B VPHY以訊息傳遞作溝通
訊息(Message)的傳遞是eNode-B VPHY(圖5)與無線電資源控制(RRC)/MAC層軟體溝通的主要方式,訊息根據傳遞方向與功能性分為請求(Request)、回應(Response)及通知(Indication)三類。請求訊息是由RRC/MAC發送至eNode-B VPHY,另外兩類訊息則是由eNode-B VPHY傳遞至RRC/MAC。訊息內容除了eNode-B VPHY的控制訊號外,也包含上行/下行資料。eNode-B VPHY訊息類型可參照表1~3。
|
圖5 eNode-B VPHY狀態圖 |
目前eNode-B VPHY設計包含End State、Ready State和Running State三種狀態(State)。初始為End,經過MAC層的組態設定後,進入Ready狀態;收到啟動訊息便進入Running狀態;收到停止訊息便進入Ready狀態。任何時候發生錯誤都會使狀態變成End,而且一旦回到End狀態時,必須設定完組態才能到Ready狀態。
接下來,依序介紹eNode-B VPHY的重要程序:初始eNode-B VPHY、副訊框前進(sub-Frame Advance)、下行資料傳送(Transmission)、上行資料接收(Receiving)。
‧ |
|
|
|
圖6 初始eNode-B VPHY流程圖 |
由於每塊硬體平台皆有其支援能力,所以eNode-B VPHY也先需要初始底層特性,並透過訊息的交換將這些特性與能力回報給RRC層,以供RRC層來選擇設定整個基地台。等到RRC層將eNode-B VPHY正確設定完成後,即可啟動eNode-B VPHY,完成eNode-B VPHY初始化程序。初始eNode-B VPHY可參照圖6。
|
‧ |
|
|
由於eNode-B VPHY須要能夠掌握副訊框前進的時機,所以eNode-B VPHY內部有專門的副訊框計時器(Timer)來計算副訊框時間。當eNode-B VPHY被啟動後,此計時器即開始運作,等到計時器期限終止(Timer Expire),則代表一個副訊框已經結束,亦同於宣告下一個副訊框開始,此時eNode-B VPHY會傳送SUBFRAME INDICATION訊息通知MAC層,來觸發MAC層開始進行資源排程程序。當eNode-B VPHY被停止時,內部的訊框計時器則被終止。
|
‧ |
|
|
Tx-Vector用來指示VPHY模組在每個Subframe的區間要傳送哪些DL Channel封包給用戶端設備(UE)。Subframe N-1收到的Tx- Vector是設定Subframe N的DL Channel,會被 VPHY模組暫存起來。當Subframe N開始後,就會取出該Subframe要使用的Tx-Vector來發送DL Channel的封包。
Tx-Vector指示VPHY模組在一個Subframe要發出哪些DL Channel的封包,包含Control Channel的PCFICH、PHICH、PDCCH,以及Share Channel的PBCH、PDCCH、PDSCH。 |
‧ |
|
|
eNode-B VPHY模組是依照Rx-Vector的設定來接收UE送出的UL Channel封包。當一個Subframe開始時,MAC模組會發出一個Rx-Vector給VPHY模組,用來設定下一個Subframe該如何接收封包。Rx-Vector的內容會指示VPHY在一個Subframe中,UE應該在哪些Resource Block上傳PUCCH或PUSCH的UL Channel資料。因此,VPHY模組在實作上會監聽一整個Subframe的時間,並且比對UL Channel封包與Rx-Vector指定的Channel條件,等到Subframe結束後,再將這次的接收結果回報給上層的MAC模組,包括成功解碼的封包以及接收失敗的錯誤回報。而切換下一個Subframe的Rx-Vector的動作則是發生在Rx-Data Indication之後。圖7為一簡略的eNode-B VPHY資料傳送與接收時序圖。
|
圖7 eNode-B VPHY資料傳送與接收 |
|
UE VPHY充當溝通橋樑
UE VPHY主要工作有兩項,一是從EthRf接收來自eNode-B VPHY的訊息,處理其Payload之後,傳送至上層;二是依據上層控制資訊的指示與資料,組出VPHY Payload,並且在正確的Frame及Sub-frame傳送至EthRF。
為了便於上述兩項工作的處理,在設計上,將UE VPHY分成以下五個狀態(State),分述如下:
‧ |
|
|
UE VPHY根據上層所設定的頻率,搜尋eNode-B的訊號狀況,並回報給上層的狀態。
|
‧ |
|
|
UE VPHY根據上層所設定的eNode-B參數,與eNode-B進行實體層同步中的暫時狀態。
|
‧ |
|
|
UE VPHY與eNode-B實體層同步後,可以正常接收並傳送的狀態。
|
|
圖8 UE VPHY狀態轉移圖 |
這五種狀態的轉換,由上層的訊息觸發後,由UE VPHY根據實際情況判斷來進行。UE VPHY狀態轉移圖的關係如圖8。原本UE VPHY處於END狀態,接收到上層傳來的「開啟」訊息後,轉換到READY狀態。在READY狀態下,接收到上層傳送「Find Cell」訊息後,UE VPHY便轉換到CELL FINDING狀態。此時,UE VPHY會自行計算一段時間,在這段時間內接收某個特定頻率下的所有eNode-B訊號。等到時間結束,再將所有接收到的eNode-B訊號資料統整,回報給上層。並自動切換回到READY狀態。
若在READY狀態下,接收到上層的訊息為「Sync Cell」,UE VPHY便會鎖定特定一台eNode-B的訊號進行同步。待收到該eNode-B的主要訊息區塊(MIB)後,完成同步,轉換到CELL SYNCED狀態。此外,由VPHY Framework可得知,EthRf接收到的VPHY Payload是否應傳送至Protocol Part,必須先經由Protocol Part的過濾程序做初步檢查。確認後,才會將該Payload送至Protocol Part。
在LTE VPHY中,主要的Payload可分成Channel Payload和Signal Payload。UE VPHY(表4、5)過濾的程序會因狀態而有所不同:
‧ |
|
|
只處理上層所設定該頻率之下的eNode-B Signal Payload。
|
‧ |
|
|
處理特定eNode-B的Signal及Channel Payload。
|
‧ |
|
|
處理特定eNode-B的Signal及Channel Payload。
|
|
圖9 上層指示UE VPHY進行Find Cell的流程 |
如圖9所示,當UE VPHY接收到由上層傳送的Find Cell指令時,會將狀態由READY轉換成CELL FINDING,並開始聆聽訊息中所指定頻率的訊號,主要聆聽的為eNode-B的CELL_RS。聆聽一段時間後,便會結束Find Cell動作,並將聆聽統計到的資料,包裝成Scan Cell Report這道訊息回傳給上層。並再度回到READY狀態。
當UE VPHY接收到上層所傳送的Sync Cell指令時,便會將狀態 由READY轉換成CELL SYNCING,並鎖定特定的eNode-B訊號進行同步。
|
圖10 上層指示UE VPHY進行Sync Cell的流程 |
等待接收到該eNode-B的CELL_RS及PBCH Payload之後,將狀態轉換為CELL SYNCED,並將剛剛接收到的PBCH中的資料傳送給上層。同時,在UE VPHY的狀態轉換為CELL SYNCED後,就會開始定期的傳送SUBFRAME INDICATION給上層,讓上層得知每個Subframe轉換的時機點上(圖10)。
在接收一般的下行資料如PDSCH時,會在同一個Subframe也接收到對應的PDCCH所攜帶針對下行資料的下鏈控制資訊(Downlink Control Information, DCI)。
|
圖11 UE VPHY接收eNode-B下行資料的流程 |
此時,會先將收到的PDSCH資料存放於UE VPHY中。而將PDCCH中所攜帶的DCI,藉由DCI HI INDICATION訊息通知上層。上層收到此DCI後,會再利用Rx HARQ CONFIG訊息通知UE VPHY,針對剛剛接收的PDSCH資料處理。待處理完後,再將PDSCH中的資料,利用RX DATA訊息傳往上層(圖11)。而關於UE VPHY傳送上鏈資料的流程中。UE VPHY會先判斷下一個Subframe是否為適合傳送上行資料的機會,再利用DCI HI INDICATION當中的欄位(Tx Chance)通知上層。而上層收到訊息後,確定下一個Subframe是傳送資料的時機點,才會將欲傳送的上鏈資料,利用Tx Vector的訊息傳送給UE VPHY,UE VPHY等待下一個Subframe到來之後,再將資料送出(圖12)。
|
圖12 UE VPHY傳送上行資料給eNode-B的流程 |
VPHY有益LTE發展
針對LTE設計的VPHY,提供開發MAC層軟體時所需的控制介面及傳輸功能,而所開發出來的MAC層軟體因可透過VPHY進行整合性測試,將大幅地提高其正確性。
(本文作者任職於資策會網路多媒體研究所)