terasoft

利用Simulink進行無線收發器的設計與網路建模

By Chung Wu, MathWorks

本篇文章將介紹一個Simulink®模型,它可供你做為設計無線收發器及建立無線網路的基礎架構。這個無線收發器包含了實體層(physical layer,簡稱PHY層)與媒介存取控制層(medium access control layer,簡稱MAC 層)。而無線網路的模型是由多個在衰減通道(fading channel)進行溝通的無線收發器所構成。

我們使用了一個QPSK調變的簡易PHY層,以及兩種可選擇的MAC層協定:以ALOHA為基礎的隨機補償 (ALOHA-based random back-off)和CSMA/CA (IEEE 802.11)。為了讓說明比較容易,我們省去一些常見於無線收發器的模塊,像是交錯(interleaving)、加密(scrambling)、與通道編碼(channel coding)。

你可以使用這個無線收發器模型來研究PHY與MAC行為、PHY與MAC之間的互動、或者研究整個網路。你也可以將它做為一個模板,利用通訊工具箱(Communications Toolbox™)、無線區域網路工具箱(WLAN Toolbox™)、事件模擬模塊組(SimEvents™)內的工具和演算法來設計如WLAN、V2X、與IOT等更複雜無線收發器的模板。PHY層模塊與MAC層的事件導向系統模擬軟體(Stateflow®)圖表都讓你能夠透過硬體描述語言轉碼器(HDL Coder™)產生HDL程式碼,並且以包含了SDR (AD9361)與FPGA (Xilinx® Zynq®-7000 SoC)的ADI RF SOM板作為目標硬體來即時實現無線收發器。

本文所介紹的模型可由此下載

網路架構

這個Simulink模型的頂層是由一個衰減無線電網路模塊與幾個無線收發器節點(node)所構成(圖1)。這些節點以ad hoc的方式溝通:網路中任一個節點皆可發射訊號至其他節點,也可以從其他節點接收訊號。這個無線收發器半雙向(half-duplex)模式運作。在網路架構裡面,每一個收發器節點的輸出可到達其他收發器成為輸入。依無線電通道的互換(reciprocity)原則,每兩個節點之間的兩條通道設定必須相同,而不同對無線收發器通道的通道設定可以是不一樣的。

網路架構
圖1. 無線收發器與無線電網路模型。

在無線收發器的設計,PHY層模型是以接近真實硬體實現的Simulink模塊所建立。MAC層的模型則是透過Stateflow來反映現實中有限狀態機(finite state machines)的特性。

我們現在來更仔細地查看頂層Simulink模型的每一個元件。

封包資料框架格式

這個無線收發器所使用的封包資料框架格式與 MATLAB範例:Packetized Modem with Data Link Layer (https://www.mathworks.com/help/comm/examples/packetized-modem-with-data-link-layer.html)定義的格式相同。如圖所示,PHY的表頭資料(Header)有4個區塊,這裡負載長度(Payload Length)表示了資料連結單元(Data Link Unit)的總位元長度,並且由Header CRC覆蓋。而MAC的表頭資料有七個區塊,框架CRC (Frame CRC)覆蓋了MAC表頭資料(MAC Header)和框架主體(Frame Body)。框架有兩種:資料框架(Data frame)與認可框架(Ack frame)。認可框架的框架主體長度為零。資料框架與認可框架都有如同在IEEE 802.11所定義的格式。

利用Simulink進行無線收發器的設計與網路建模
圖2. 使用在這個無線收發器的封包資料框架格式

無線收發器

無線收發器節點模型使用了半雙向(half-duplex)的Tx/Rx模式(圖3)。它由一個PHY層、一個MAC層、一個邏輯鏈路控制(Logic Link Control,LLC)層組成。PHY層有三個主要的模塊:發射器、接收器、與Tx/Rx切換開關。這三個模塊皆以Simulink建模。MAC和LLC層則透過Stateflow圖表來建模,以顯示無線收發器MAC和LLC層的狀態變遷與邏輯運作。

利用Simulink進行無線收發器的設計與網路建模
圖3. 無線收發器模型

發射器

在無線收發器的發射器模型,TxOn輸出控制了RF雙向切換開關來決定發射或接收,而TxSymbl輸出在發射時讓經過調變的訊號流出至雙向切換開關(圖4)。輸入訊號TxDataOn和TxAckOn分別控制了資料框架(Data frame)和認可框架(Ack frame)發射期間長短。資料框架與認可框架分別載入至查找表TxData_LUT和TxAck_LUT。查找表變數的變更將改變被發射出去的內容。發射器的符元速率(symbol rate)為10M symbols/sec,而位元速率(bit rate)為20 Mbit/sec。如果沒有符元要發射,或者節點處於接收模式時,TxSymbl會被設定為零。發射與接收的脈衝成形濾波器(pulse shaping filter)則在Tx/Rx Switch模塊裡面。

利用Simulink進行無線收發器的設計與網路建模
圖4. 無線收發器的發射器模型。

接收器

無線收發器的接收器有三個主要的功能模塊:訊號偵測(Signal Detection,SD)、決策回授等化器(Decision Feedback Equalizer,DFE)、解調器CRC (DCRC)(圖5)。SD模塊監控接收到訊號的功率等級。一旦功率等級超出界限,SD模塊會產生一個訊號來啟動DFE與DCRC模塊,並開始將收到的訊號給DFE。DFE會以每個符元取樣兩次做為間隔。訓練參考前言被儲存在REF_LUT模塊。訓練資料會在等化訓練期間的一開始被呼叫出來。DCRC模塊負責將經過等化的符號流解調為一個位元流,辨認負載長度(Payload Length)區塊的定界符號(delimiter),以及執行表頭CRC來取得無錯誤的負載長度。當負載長度被取得,模塊會執行負載(payload)的CRC操作,辨認收到的封包是資料框架(Data frame)還是認可框架(Ack frame),並且將框架類型資料提供給MAC層。如果任一個CRC失敗了,框架會被捨棄,且接收器會轉換回備用狀態。

利用Simulink進行無線收發器的設計與網路建模
圖5. 無線收發器的接收器模型

訊號偵測器

圖6所示的訊號偵測器(signal detector,SD)被使用來偵測訊號何時抵達無線收發器。SD的波形呈現如圖7。訊號的絕對值會透過一個兩段指數移動平均濾波器(two-stage exponential moving average filter)來過濾。當移動平均濾波器的輸出超出界限,偵測器會產生啟動訊號SigDe來開啟DFE和DCRC模塊。位於輸出SigOut的緩衝模塊會產生二維(取樣)資料給部分的DFE。

利用Simulink進行無線收發器的設計與網路建模
圖6. 訊號偵測模型
利用Simulink進行無線收發器的設計與網路建模
圖7. 來自訊號偵測器的訊號波形

決策回授等化器(Decision Feedback Equalizer)

無線收發器的DFE扮演了相當重要的角色。DFE的功能為移除符間干擾(intersymbol interference,ISI)、符元計時的同步、框架範圍的排列、頻率偏差(frequency offset)的補償[1], [2]。如圖8所示,DFE以符元速率來操作,並且在等化器權重的每一次疊代取兩個新的樣本。

利用Simulink進行無線收發器的設計與網路建模
圖8. DFE模型

由於前饋細胞(DFE_Cell_FFW)的輸入維度為2,每一個DFE_Cell_FFW模塊會執行兩個前向開關的過程。因此,在DFE的向前部分,9個Cell_FFW模塊被用來實現18個前向開關。在回授的部分,每一個DFE_Cell_FBW有一個一維輸入,並處理一個回饋開關。因此DFE有6個回饋開關。訓練的長度是在DFE內的N-Sample Switch模塊來設定。轉換器權重純量是在DFE內由”mu”命名的常數模塊設定。圖9為DFE前後的星座圖。

利用Simulink進行無線收發器的設計與網路建模
圖9. 說明了ISI上通道等化效果的圖表

解調器CRC

DCRC模塊(圖10)將來自於DFE經過等化的符號流解調為位元流。它接下來檢查表頭框架CRC並解碼負載框架的長度。當取得負載框架的長度,DCRC內的Payload CRC模塊會啟動。當負載CRC通過,RxType Gen模塊會檢查MAC Header的To Address欄位。若To Address欄位符合節點的位址,模塊會依MAC Header的Type欄位產生RxDataOk或RxAckOk的訊號給MAC層。只要CRC失敗,或者是位址或資料類型不適當,則框架會被捨棄。

利用Simulink進行無線收發器的設計與網路建模
圖10. 解調器與CRC模塊

MAC層

MAC對無線收發器執行有智慧的控制。MAC實現兩個可選擇的MAC功能:ALOHA-based (MAC_Sel=1)與CSMA/CA (MAC_Sel=0)。ALOHA-based MAC較為直接,而CSMA/CA MAC則更有效率。

對於以ALOHA為基礎的MAC (圖11與12),當一個節點發射出一個資料框架時,它會期待在AckW定義的期間之內收到一個來自接收端節點的認可框架。如果在AckW內沒有接收到Ack,MAC會進入隨機的補償(back-off)程序。這一個補償程序會重複直到資料框架成功送出或者達到最大的重試次數。

利用Simulink進行無線收發器的設計與網路建模
圖11. 在ALOHA-Based MAC的資料框架傳輸
利用Simulink進行無線收發器的設計與網路建模
圖12. ALOHA-based MAC的Stateflow圖表

對於CSMA/CA MAC (圖13與14),媒介在DIFS發射之前這段期間必須靜止,接下來節點會開始隨機的競爭視窗(Contention Window,CW)期。當CW結束,如果媒介仍為靜止,節點會開始發射一個資料框架(Data frame),否則,節點會等到另一個靜止的DIFS期。當發射的節點在SIFS期收到認可框架(Ack frame),它會發射出下一個資料框架;否則會再一次進入DIFS期間。

利用Simulink進行無線收發器的設計與網路建模
圖13. 在CSMA/CA MAC的資料框架傳輸
利用Simulink進行無線收發器的設計與網路建模
圖14. CSMA/CA MAC的Stateflow圖表

圖15為有兩種MAC功能可選擇的MAC層結構。

利用Simulink進行無線收發器的設計與網路建模
圖15. 具有可選MAC功能的MAC層結構

邏輯鏈路控制層(Logical Link Control Layer)

LLC層掌管較上層與無線收發器之間的隨機資料封包(圖16)。它產生隨機抵達的資料封包。對於一個很長的資料封包,LLC層會把它分割為幾個資料框架。LLC層也控制資料框架的排列,以及監控資料封包的傳送狀態。

利用Simulink進行無線收發器的設計與網路建模
圖16. 邏輯鏈路控制層(Logical Link Control layer)的Stateflow圖表

結果與呈現

本文描述的Simulink模型有三個以輪替的方式(round-robin fashion)溝通的無線收發器節點:節點1 →節點3→節點2→節點1。在每一個節點,由LLC層產生的資料封包抵達時間是隨機的。一個資料封包可能有多達四個資料框架。資料框負載長度設定為126 bytes。系統位元率為20 Mbit/Sec。通道模型是透過一個雙路徑瑞利通道模式(two-path Rayleigh channel mode)搭配50 Hz的都卜勒頻率擴展(Doppler frequency spreading)和25 dB SNR (Eb/No)的AWGN來建立。

在ALOHA-based MAC (圖17),上面三個圖表為來自三個節點的發射波形,而底下的圖表為節點1的補償計數值。在這個圖表,持續時間較寬的訊號為資料框,而持續時間較窄的訊號為認可框。圖18描繪了CSMA/CA MAC相似的圖表。

利用Simulink進行無線收發器的設計與網路建模
圖17. 有ALOHA MAC的節點波形。上:網路節點的發射器波形。下:節點1的補償計數值。
利用Simulink進行無線收發器的設計與網路建模
圖18. CSMA/CA MAC的節點波形。上:網路節點的發射器波形。下:節點1的補償計數值。

從圖17與18呈現的結果,我們可以歸納出以下結論:

圖19為2.8 ms到3.4 ms這段期間媒介傳輸的放大圖。我們可以看到Data1與Data2這兩個資料框架發生衝突,因此節點2和節點3都沒有辦法產生認可框架。在AckW這段等待期間之後,節點1和節點3知道它們的資料框並沒有通過。接著在一段短暫的補償(back-off)時期之後,節點1重新送出Data1,這次資料框成功通過,並且接收到節點 3傳回的認可。

利用Simulink進行無線收發器的設計與網路建模
圖19. 圖17之2.8 ms至3.4 ms期間的放大圖

總結

在這個範例,我們建立了一個包含了多個無線收發器與衰減通道的無線網路的Simulink模型。這個模型是由Simulink模塊與Stateflow圖表所組成,展現了模型化基礎設計(Model-Based Design)的效率。無線收發器有PHY和MAC層。PHY層模型提供了一般PHY的基本功能:調變、解調變、訊號偵測、同步、等化、位元操作(bitwise manipulation)、表頭CRC、框架CRC。MAC層模型是透過Stateflow來建立。它可以使用ALOHA-based MAC或CSMA/CA (IEEE 802.11) MAC。這個模型也有助於進行HDL實現與SDR原型化。

有了這個模型,我們可以在考慮了所有系統元件的網路環境下研究無線收發器的幾種行為,包含了:

藉由使用通訊工具箱(Communications Toolbox)、事件模擬模塊組(SimEvents)附加的功能模塊,你可以將這個Simulink模型延伸運用到更先進的無線收發器上,如WLAN、V2X與無線IOT。