劉亞軍
摘 要:文中簡要介紹了以太網在音頻領域的通信特點。提出了一種簡單、可靠的數據收發設計方案,該方案能夠實現無中心通信,解決傳輸抖動問題,提供溢出最優處理機制。
關鍵詞:以太網;無中心通信;傳輸抖動;溢出最優處理機制
中圖分類號:TP393.03 文獻標識碼:A 文章編號:2095-1302(2018)04-00-02
0 引 言
以太網總線是國際上應用最廣泛的通信總線之一[1],在音頻通信領域得到了廣泛應用。相比其他通信領域,音頻通信自身的特點決定了其需解決以下三方面的問題:
(1)因音頻實時性較強,需要周期性地進行數據收發,為提高各終端設備的靈活性和系統的可靠性,需要采用分布式無中心通信機制,使各終端設備不依賴某個中心節點設備的同步控制,可自主完成數據收發;
(2)為保證音頻的連續性,需要采用一種防抖動機制,解決以太網交換機在數據交換時引起的數據抖動問題;
(3)當出現異常情況導致接收緩沖區溢出時,對需丟棄數據的位置和長度需有合理的設計,使損失降到最小。
1 無中心通信機制
無中心通信機制設備連接示意如圖1所示。
無中心通信機制是相對有中心通信機制而言的,有中心通信機制指在一個通信系統中須有一個終端設備作為整個通信系統的中心控制設備,對其他各終端設備的通信(即數據收、發)時隙進行控制,使整個通信系統處于同步通信方式。該方式在半雙工總線型通信總線(如RS 485)下[2],可解決多個終端同時進行數據發送引起的碰撞沖突問題。但在以太網全雙工星型通信總線下會失去其原有意義,并且還會因為整個系統通信依賴一個特定的中心設備而降低可靠性和靈活性。
為解決有中心通信機制在以太網總線通信下的弊端,文中設計了一種無中心分布式通信機制[3],該通信機制是在以太網全雙工通信的基礎上建立的一種無中心異步收發機制。發送時,不依賴其他中心設備,以自身運行時鐘為基準,定時周期性發送數據包;接收時,建立首尾連接的環形接收緩沖區,如圖2所示。接收到數據包后,會按照存入指針位置存入緩沖區,同時存入指針將移位至下一個位置[4]。
需要對接收到的數據包進行處理時,按照取出指針的位置取出緩沖區中的數據包,同時取出指針移位至下一個位置。
存入指針與取出指針處于同一位置時,表示緩沖區為空,沒有接收到數據包,存入指針與取出指針之間的間隔數表示緩沖區中已接收到的數據包數量。
基于上述方案實現的無中心異步收發機制可保證在通信系統內任意一個終端設備發生故障時其他設備的正常通信,提高了系統的可靠性。同時,無需特定的中心設備,可任意連接兩個或多個終端設備,實現相互之間的通信,提高了系統的靈活性。
2 防抖動設計
以太網交換機自身的特性決定了其在傳輸數據,尤其在多路以太網接口同時頻繁傳輸數據時,很難保證數據轉發的平穩性,易出現數據包轉發周期不均勻的現象,即抖動現象[5]。為防止抖動引起的音頻斷續問題,文中設計一定長度的cache,如圖3所示。
圖中cache長度設為m,當存入指針和取出指針之間的數據大于等于m時,開始處理接收到的數據包,并按照取出指針的位置取出緩沖區中的數據包,同時取出指針移位至下一個位置。由此可保證接收緩沖區有m個數據包的緩沖,而當抖動小于m個周期時,接收緩沖區仍有數據可供處理,不會導致音頻出現斷續。
m值的選定由具體產品的抖動時間和產品對音頻傳輸延時的要求綜合決定。m值過大,會引起音頻傳輸延時增大。m值過小(小于抖動時間),則無法達到防抖動的目的,導致音頻出現傳輸斷續。因此需要在音頻傳輸連續和延時兩個指標之間進行平衡,一般原則是在保證m值周期時間大于抖動時間的前提下,越小越好。
3 異常溢出處理
在異常情況下,當存入指針加1后與取出指針位置相同時,表示接收緩沖區已滿,為避免繼續接收數據導致接收緩沖區溢出[6],同時防止最新接收的數據先被處理,較早接收的數據后被處理,導致音頻前后顛倒。在接收緩沖區已滿時,取出指針跳至加m后的位置,將最早接收的m個數據丟棄,使損失降到最小,并保證數據按照正常的順序處理。接收緩沖區溢出示意圖如4所示,溢出處理后示意如圖5所示。
該處理方案僅用于異常溢出時的特殊處理,將不良后果的危害降到最小,避免出現音頻前后顛倒而無法保證音頻的連續性。為保證后續正常通信,必須丟掉若干音頻數據。
要避免異常狀況發生,還需從整個緩沖區大小和各終端設備的時鐘精確度兩個方面考慮。根據具體產品的硬件特性,在設計初期盡量減小各終端設備之間的時鐘偏差,擴大接收緩沖區容量。
4 結 語
該以太網數據收發設計方案原理簡單,易于理解和實現,解決了無中心通信、傳輸抖動、異常溢出處理等三個問題。并對避免異常溢出的發生提出了設計建議。在以太網總線的通信系統中,尤其是需要周期性地進行數據收發的音頻通信系統中,應用該方案可保證音頻傳輸的連續性并有效提高各終端設備的靈活性和系統的可靠性。
參考文獻
[1]郭其一,黃世澤.現場總線與工業以太網應用[M].北京:科學出版社,2016.
[2]王苒,湯冬誼.基于RS 485總線主從通信協議及其實現[M].北京:清華大學出版社,2002.
[3] [德]厄茲敘 Valduriez.P.分布式數據庫系統原理[M].周立柱,譯.北京:清華大學出版社,2014.
[4] [美]Kenneth A.ReeK.C和指針[M].徐波,譯.北京:人民郵電出版社,2008.
[5]王龍水,李勇.光傳輸網的抖動和漂移[M].北京:北京郵電大學出版社,2002.
[6] [美]福斯特.緩沖區溢出攻擊——檢測、剖析與預防[M].蔡勉,譯.北京:清華大學出版社,2006.
[7]霍群松.基于以太網技術的通信數據采集分析[J].信息通信,2014(10):259-260.
[8]劉龍啟,李銀.基于LabVIEW的以太網數據監聽與通信[J].國外電子測量技術,2012,31(7):62-65.