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