郝向新,張星海,王 懿,孫建軍
(內(nèi)蒙古電力(集團(tuán))有限責(zé)任公司鄂爾多斯電業(yè)局,鄂爾多斯 014399)
超遠(yuǎn)距離通信需要傳輸很遠(yuǎn)的距離需要支持自適應(yīng)編碼和調(diào)制,可以基于鏈路狀態(tài)實時改變編碼速率和調(diào)制方式。這個特性極大地提高了有效載荷能力和鏈路利用率。當(dāng)鏈路的SNR很高,例如天氣比較好時,可以將所有的應(yīng)用都打開,鏈路進(jìn)行滿負(fù)荷的運(yùn)作。如果鏈路的SNR下降得比較厲害,例如下大雨,鏈路的載荷能力和利用率就會降低。
圖1 信道容量改變
我們的遠(yuǎn)距離無線支持8個不同的MCS,MCS索引(由0至8)由上至下排列每一個MCS包含有許多的特性,包括星座映射,編碼速率,激活的分支,每一個分支的帶寬分配等。系統(tǒng)根據(jù)均衡后的符號的MSE值及糾錯碼的誤塊率(BLER),判定采用何種編碼及調(diào)制方式,并自動調(diào)節(jié)兩端通信節(jié)點的編碼及調(diào)制方式,使系統(tǒng)獲得較高的頻帶利用率和信息傳輸速率。
描述收端ACM控制單元判斷切換條件需要使用的指標(biāo)。
(1)均衡后一幀數(shù)據(jù)的全部數(shù)據(jù)符號都參與計算的MSE的統(tǒng)計。
(2)只有均衡后一幀數(shù)據(jù)的前導(dǎo)頭符號、控制信令符號及導(dǎo)頻符號參與MSE的統(tǒng)計(PMSE)。
(3)上述兩種MSE計算出來后,取PMSE和MSE中較大值作為ACM模塊輸入,擁有ACM切換。為簡便,將“MSE或PMSE中較大值”稱為MSE。
(4)MSE的變化速率定義為當(dāng)前幀和前一幀的MSE的比值。MSE的變化速率計算可以按照當(dāng)前幀的MSE和上一幀的MSE乘上某個門限來比較。
BLE(block error)是指線性分組碼根據(jù)自身的校驗仿真計算出來的,指示該編碼塊在一定范圍內(nèi)是否正確的一個標(biāo)記。包含LDPC譯碼前BLE,LDPC譯碼后BLE。
(1)LDPC譯碼前的BLE,記為LDPC_BLE_BD。LDPC譯碼器在更新接收到的一個碼塊的LLR之前,根據(jù)接收LLR的符號值,進(jìn)行校驗計算,當(dāng)?shù)男r灧匠蘳um(H*c)大于等于設(shè)定的門限值(門限值配置為0),說明碼塊出錯(需要統(tǒng)計WLB幀內(nèi)的BLE數(shù)值:譯碼前的BLE統(tǒng)計需體現(xiàn)對信道長期穩(wěn)定性進(jìn)行統(tǒng)計,因此,建議WLB盡量大一些)。WLB建議配置為1~65536幀。
(2)LDPC譯碼后的BLE,記為LDPC_BLE_AD。LDPC譯碼器通過譯碼過程,更新完一個碼塊的LLR之后,根據(jù)更新后的LLR的符號值,進(jìn)行校驗計算,碼后LDPC碼塊的校驗方程sum(H*c)大于等于設(shè)定的門限值,說明碼塊出錯(需要統(tǒng)計WLA幀內(nèi)的BLER數(shù)值:譯碼后的BLER統(tǒng)計需體現(xiàn)對信道變化的快速響應(yīng),因此,建議不超過10)。WLA軟件可配,為了硬件實現(xiàn)的簡便,WLA可配置為1幀2幀4幀8幀可選。
系統(tǒng)能夠根據(jù)ACM控制單元發(fā)出的切換指示自動進(jìn)行切換,并且約定ACM控制單元可以發(fā)出的切換指示類型,以及手動切換功能的描述。
上切,為了保證切換無誤碼,上切的準(zhǔn)則是:要保證在信道足夠好時才向上切換。切換時需謹(jǐn)慎一些。上切的方式只能是逐級切換,上切的依據(jù)可以配置成下面兩種中一種:一是只根據(jù)MSE值;二是同時根據(jù)“MSE值及譯碼后的BLE及譯碼前的BLE”。
(1)譯碼后必須無誤碼,即BLE_AD=0;譯碼前的誤塊率要小于一個門限,即BLE_BD<A,表示在一個WLA統(tǒng)計窗之內(nèi),錯誤要低于A個碼塊才能保證信號質(zhì)量足夠好,這時才啟動上切機(jī)制;A的位寬為16。
(2)為了保證切換無誤碼,發(fā)射端需要收到對端的連續(xù)K個“上切”請求,才能上切。K可軟件配置,K值建議在1~16范圍。位寬4比特。
下切,為了保證切換無誤碼,下切的準(zhǔn)則是:需要快速響應(yīng),并且防患于未然。下切支持逐級下切也支持一步切到最低MCS的切換。
3.2.1 逐級下切
逐級切換:依據(jù)可以配置成下面兩種中一種:一是只根據(jù)MSE值;二是根據(jù)MSE值或者譯碼后的BLE。(這里譯碼后BLE是“一幀內(nèi)的BLE”,一幀中只要有碼塊出錯就下切一級)。
3.2.2 一步切到最低MCS
一步切到最低MCS可以配置成下面兩種中一種:一是根據(jù)MSE的速率,當(dāng)MSE變化速率(這里是指變差的速率,MSE越大表示鏈路質(zhì)量越差)大于一個門限值。二是只根據(jù)譯碼后的BLE(譯碼后的BLE_AD>B,B可軟件配置(16bits),表示在一個WLB統(tǒng)計窗之內(nèi),錯誤高于B個碼塊說明信道質(zhì)量已經(jīng)足夠差,此時需要一步切到最低MCS)。
最低MCS是一個可配置的MCS,并不一定配置為MCS0,在存在訓(xùn)練幀模式下,可以配置為MCS1。
本章主要描述在收端如何根據(jù)相關(guān)檢測條件發(fā)送出切換指示,以及發(fā)端的切換流程。
圖2 收端ACM主控制流程
收端系統(tǒng)首先檢測目前是否滿足ACM開啟的條件,在達(dá)到ACM開啟的條件之后,首先是T1幀的保護(hù)時間是不能進(jìn)行切換的;T1幀時間過后,進(jìn)行ACM切換判斷和切換時間保護(hù)操作,其中切換時間保護(hù)操作主要針對是上切切換時間保護(hù),和保護(hù)模式整體切換時間保護(hù);然后系統(tǒng)等待MCS改變,則認(rèn)為一次切換指示完成;同時為了仿真某次切換指示未被發(fā)端收到,而設(shè)置保護(hù)幀,計數(shù)至T2幀本次切換仍沒有完成后認(rèn)為對端發(fā)端未收到切換指示,則再次進(jìn)行ACM切換判斷。其他說明如下:
(1)N_ACM_on_p該參數(shù)表示在ACM啟動之后,要進(jìn)行T1幀時間保護(hù),T1可配置范圍是0~255幀。參考配置為約20ms左右的時間。
(2)所有計數(shù)器清0操作,所有的計數(shù)器包含這里的N_ACM_on_p開啟保護(hù)時間計數(shù)器、Nsp未收到切換指示保護(hù)時間計數(shù)器、Ndc下切保護(hù)時間計數(shù)器、MCS_uk連續(xù)上切請求計數(shù)器、Nuc上切保護(hù)時間計數(shù)器等。當(dāng)切換指示不為00的時候,在等待MCS響應(yīng)之前,各計數(shù)器累加功能均不工作。
(3)圖2中判斷條件滿足ACM開啟、ACM_On判斷條件是相同的。
(4)該流程圖中的每個判斷都要每一幀進(jìn)行一次,幀指示可以由幀同步給出。保護(hù)模式下,默認(rèn)由工作板的幀同步指示給出,如果工作板斷鏈則有保護(hù)板的幀同步指示給出。
(5)當(dāng)收端檢測切換請求在預(yù)設(shè)的幀數(shù)T2之后仍然沒有得到響應(yīng),則進(jìn)行下一次切換判斷。T2可以配置為1~4095幀等,建議配置為16幀。該時間是防止某次切換請求未被對端接收到,從而對端發(fā)送端一直認(rèn)為無切換請求。
圖3 ACM開啟條件判斷
系統(tǒng)的ACM開啟考慮保護(hù)模式以及訓(xùn)練幀模式。在保護(hù)模式下,總體原則是有一塊單板的給出開啟指示則認(rèn)為系統(tǒng)開啟;無論是訓(xùn)練幀模式下的建鏈還是非訓(xùn)練幀模式下的建鏈都認(rèn)為系統(tǒng)建鏈,開啟ACM模塊。
交互過程結(jié)構(gòu)如下:
圖4 AMC Change Path
按照圖4所示步驟分解為:
(1)對于B節(jié)點而言,在每次發(fā)送新的幀數(shù)據(jù)之前,判斷AMC引擎的輸出是否需要切換MCS,AMC引擎每隔20ms打開一次,決定切換到相應(yīng)的next profile(軟件可對其進(jìn)行配置)。
(2)如果需要切換,則在新的數(shù)據(jù)幀中添加相應(yīng)的改變MCS(CHN_REP)信息;否則不予理會。然后關(guān)掉AMC引擎。
(3)B節(jié)點的ctrl_gen發(fā)送攜帶相應(yīng)的改變MCS(CHN_REP)消息的數(shù)據(jù)幀;
(4)當(dāng)A節(jié)點的de_frm收到CHN_REP消息后,將CHN_REP消息中的預(yù)通知MCS(preferred MCS)傳送給發(fā)送方向的ctrl_gen。
(5)A節(jié)點的ctrl_gen模塊發(fā)現(xiàn)得到的新的MCS與本地MCS不匹配,則啟動本地計數(shù)器來計數(shù)幀數(shù)目;當(dāng)ctrl_gen模塊看到來自FPGA的新的MAC幀頭(sync信號),則把接受到的MCS送給FPGA,此時FPGA發(fā)現(xiàn)來自Modem的MCS與本地不相同,也啟動計數(shù)器來技術(shù)幀數(shù)目。預(yù)通知的幀數(shù)目是在上電時已經(jīng)配置。當(dāng)Modem中ctrl_gen模塊中計數(shù)到幀數(shù)目時,在發(fā)送的幀上會攜帶AMC_CFG消息告訴B節(jié)點:下個物理幀會改變被要求的MCS。而FPGA的計數(shù)器會比Modem計數(shù)器晚一幀,故當(dāng)FPGA計數(shù)到幀數(shù)目時,直接改變?yōu)樾碌腗CS方式即可。
(6)B節(jié)點的解幀模塊(de_frm)解析出此AMC_CFG消息后,通知同步模塊將要在下一幀切換成的swithched MCS,同步模塊根據(jù)此消息在下一幀標(biāo)記導(dǎo)頻的位置。同時,de_frm也會通知FPGA,方法是:將寫入FIFO的數(shù)據(jù)擴(kuò)充1bit,表示下一幀的MCS,de_frm將AMC串行寫入這一bit,按照bit0-bit3的順序,在SUF后的若干字節(jié)開始寫,持續(xù)有效四個字節(jié)。
AMC切換流程:
圖5 Frame Consume
B_tx和A_tx分別為A、B兩端的發(fā)送端;AMC引擎每隔20ms打開一次檢測是否切換MCS;Modem_cnt和FPGA_cnt分別為Modem和FPGA本地的預(yù)通知幀數(shù)目計數(shù)器。
設(shè)定在B節(jié)點發(fā)送第二幀之前打開AMC引擎發(fā)現(xiàn)需要切換MCS,則通過發(fā)送端通知A節(jié)點切換。
我們在超遠(yuǎn)距離通信中使用ACM技術(shù)實現(xiàn)了從64QAMBPSK等8種調(diào)制方式的切換,使得重要的業(yè)務(wù)得也在天氣變化的過程中得到更好的傳輸保障。