張振國 劉紅北方工業(yè)大學(xué)
基于平面調(diào)車的VoIP網(wǎng)絡(luò)數(shù)字語音轉(zhuǎn)發(fā)器的設(shè)計
張振國 劉紅
北方工業(yè)大學(xué)
針對鐵路平面調(diào)車調(diào)度室進行優(yōu)化整合,原有數(shù)字調(diào)車區(qū)長臺由于無線電波的通訊距離受限,無法滿足調(diào)車區(qū)長對調(diào)車組人員進行遠程指揮和遠程監(jiān)控的需求,設(shè)計了VoIP(Voice over IP)網(wǎng)絡(luò)數(shù)字語音轉(zhuǎn)發(fā)器,通過本設(shè)計將數(shù)字區(qū)長臺和數(shù)字控制盒接入同一局域網(wǎng),對數(shù)字調(diào)車區(qū)長臺的操控距離進行了拓展,實現(xiàn)了調(diào)車區(qū)長對平面調(diào)車組人員的遠程指揮和遠程監(jiān)控的能力。本設(shè)計給出了以S5PV210為核心,以Linux為操作系統(tǒng),采用VoIP為通信技術(shù)的軟件硬件設(shè)計方法。該產(chǎn)品應(yīng)用于數(shù)字平面調(diào)車作業(yè)系統(tǒng)中,解決了遠程操控數(shù)字調(diào)車區(qū)長臺的難題,開創(chuàng)了VoIP技術(shù)在數(shù)字平面調(diào)車作業(yè)中的應(yīng)用先例。
Linux VoIP 調(diào)車區(qū)長臺 調(diào)車作業(yè)
數(shù)字調(diào)車區(qū)長臺是數(shù)字平面無線調(diào)車系統(tǒng)中的必備通信設(shè)備之一,調(diào)車區(qū)長通過它下達、變更作業(yè)計劃,呼叫調(diào)車組人員,監(jiān)聽調(diào)車現(xiàn)場作業(yè)情況。為了適應(yīng)我國鐵路平面調(diào)車的快速發(fā)展和中長期發(fā)展的需要,從2014年開始鄭州局等開始對平面調(diào)車指揮中心進行優(yōu)化整合,廢棄原有的信息化水平低、交通不便的調(diào)度室,將原調(diào)度室功能轉(zhuǎn)移到新的調(diào)度指揮中心。由于新的調(diào)度指揮中心距離調(diào)車作業(yè)現(xiàn)場的距離遠,數(shù)字調(diào)車區(qū)長臺不能搬遷到新的調(diào)度中心。調(diào)車區(qū)長如何在新的調(diào)度中心使用原有數(shù)字調(diào)車區(qū)長臺成了急需解決的問題。
鐵路平面調(diào)車地形復(fù)雜,天氣多變,涉及部門眾多,需要多方協(xié)調(diào),所使用的調(diào)車設(shè)備較多,其中的數(shù)字無線平面調(diào)車設(shè)備一直都是國內(nèi)外研究的熱門課題。針對以上問題,作者設(shè)計了基于平面調(diào)車的VoIP網(wǎng)絡(luò)數(shù)字語音轉(zhuǎn)發(fā)器,通過本設(shè)計將數(shù)字調(diào)車區(qū)長臺和數(shù)字控制盒接入網(wǎng)絡(luò),通過數(shù)字控制盒遠程操作數(shù)字調(diào)車區(qū)長臺,實現(xiàn)了調(diào)車區(qū)長對數(shù)字調(diào)車區(qū)長臺的遠程控制,使鐵路運輸部門可以對現(xiàn)有的調(diào)車室進行優(yōu)化整合,提高了鐵路調(diào)車的信息化、智能化水平。目前國內(nèi)還沒有相關(guān)VoIP設(shè)備可以直接將數(shù)字調(diào)車區(qū)長臺連接到網(wǎng)絡(luò),本設(shè)計的成功研制正好填補這一空白。
本設(shè)計利用網(wǎng)絡(luò)數(shù)字語音轉(zhuǎn)發(fā)器分別將數(shù)字控制盒和摩托羅拉數(shù)字區(qū)長臺接入網(wǎng)絡(luò),這樣調(diào)車區(qū)長就可以使用數(shù)字控制盒遠程操控摩托羅拉數(shù)字區(qū)長臺,拓展了調(diào)車區(qū)長與調(diào)車組的通話距離。本系統(tǒng)主要包含數(shù)字控制盒、數(shù)字調(diào)車區(qū)長臺、VoIP網(wǎng)絡(luò)數(shù)字語音轉(zhuǎn)發(fā)器、數(shù)字機控器和數(shù)字手持臺。通過操控數(shù)字控制盒可以對數(shù)字調(diào)車區(qū)長臺的信道進行切換,以便可以與多個調(diào)車組分別進行通信。數(shù)字控制盒、數(shù)字機控器和數(shù)字手持臺三者之間可以相互通話;數(shù)字控制盒通過數(shù)字調(diào)車區(qū)長臺可以向數(shù)字機控器和數(shù)字手持臺傳送數(shù)據(jù)。
利用鐵路現(xiàn)有的網(wǎng)絡(luò),通過VoIP網(wǎng)絡(luò)數(shù)字語音轉(zhuǎn)發(fā)器延伸數(shù)字區(qū)長的收受話及數(shù)據(jù)的傳輸距離,從而實現(xiàn)遠程控制調(diào)車組的目的。
2.1VoIP網(wǎng)絡(luò)數(shù)字語音轉(zhuǎn)發(fā)器功能
通過VoIP網(wǎng)絡(luò)數(shù)字語音轉(zhuǎn)發(fā)器實現(xiàn)遠程操控數(shù)字調(diào)車區(qū)長臺的目的,本設(shè)計需要實現(xiàn)以下三個功能。
可以傳輸控制命令:以實現(xiàn)對數(shù)字調(diào)車區(qū)長臺的信道進行切換,通話的接通、掛斷等操作??梢詡鬏攲崟r數(shù)據(jù):以實現(xiàn)數(shù)字調(diào)車作業(yè)單的發(fā)送及鉤確認的操作。可以傳輸實時話音數(shù)據(jù):以保障調(diào)車區(qū)長與調(diào)車組人員的順利溝通。
2.2VoIP網(wǎng)絡(luò)數(shù)字語音轉(zhuǎn)發(fā)器組成
VoIP網(wǎng)絡(luò)數(shù)字語音轉(zhuǎn)發(fā)器主要有電源模塊、網(wǎng)絡(luò)模塊、話音模塊、數(shù)據(jù)通信模塊、USB模塊、SD卡模塊及接口電路組成。話音模塊又分為話音數(shù)據(jù)采集、話音數(shù)據(jù)傳輸、話音數(shù)據(jù)處理三個部分。數(shù)據(jù)通信模塊又分為RS232和RS485兩個部分。
2.3VoIP網(wǎng)絡(luò)數(shù)字語音轉(zhuǎn)發(fā)器工作原理
VoIP網(wǎng)絡(luò)數(shù)字語音轉(zhuǎn)發(fā)器主要完成將數(shù)據(jù)和話音從網(wǎng)絡(luò)的一端傳輸?shù)搅硪欢?。本設(shè)計中通過網(wǎng)絡(luò)模塊實現(xiàn)對話音和數(shù)據(jù)的端到端的傳輸;話音模塊完成對話音的采集、壓縮、解壓和播放的功能;數(shù)據(jù)通信模塊完成對串口指令數(shù)據(jù)的接收、傳輸和寫入。
為了縮短開發(fā)時間,節(jié)省開發(fā)成本,本設(shè)計采用核心板加底板的方法進行硬件設(shè)計,核心板采用了華天正公司的E210COREV2核心板,底板上添加電源模塊、SD卡模塊和設(shè)備接口等電路。
該核心板使用了S5PV210為主控芯片進行設(shè)計。它集成了2 個USB2.0接口,一個100M以太網(wǎng)接口,四組UART,一個AC97接口HIFI聲卡。在外設(shè)資源方面能夠滿足本設(shè)計的要求。
下面主要對硬件電路中的網(wǎng)絡(luò)模塊、話音模塊和數(shù)據(jù)通信模塊三個關(guān)鍵模塊進行介紹。
3.1 網(wǎng)絡(luò)數(shù)字語音轉(zhuǎn)發(fā)器網(wǎng)絡(luò)模塊設(shè)計
本設(shè)計中,網(wǎng)絡(luò)模塊電路使用的網(wǎng)絡(luò)芯片是DM9000A,網(wǎng)絡(luò)變壓器使用的是HS9016。 DM9000A與S5PV210的接線示意圖如圖3.1所示。
圖3.1 DM9000A接線示意圖
3.2 網(wǎng)絡(luò)數(shù)字語音轉(zhuǎn)發(fā)器話音模塊設(shè)計
本設(shè)計的話音模塊主芯片采用的是WM9713,它的主要功能是實現(xiàn)A/D轉(zhuǎn)換和D/A轉(zhuǎn)換,由數(shù)字控制盒輸入的話音是雙端信號,而WM9713是單端輸入,所以加入了1:1的音頻變壓器進行信號的轉(zhuǎn)換。為了防止話音信號的指標變差,在電路設(shè)計上采用了模擬地和數(shù)字地分離的方法。圖3.2是音頻接口電路的原理圖。
圖3.2音頻接口電路原理圖
圖3.3網(wǎng)絡(luò)數(shù)字語音轉(zhuǎn)發(fā)器與數(shù)字控制盒的數(shù)據(jù)通信模塊設(shè)計
3.3與數(shù)字控制盒及數(shù)字調(diào)車區(qū)長臺的數(shù)據(jù)通信模塊設(shè)計
為實現(xiàn)本設(shè)計與數(shù)字控制盒和摩托羅拉數(shù)字調(diào)車區(qū)長臺的控制命令和數(shù)據(jù)的通信,摩托羅拉數(shù)字調(diào)車區(qū)長臺的數(shù)據(jù)接口是由與其配套的選項板上的RS232提供的。由于數(shù)字控制盒與網(wǎng)絡(luò)數(shù)字語音轉(zhuǎn)發(fā)器在使用時放置距離較遠,采用了RS485進行數(shù)據(jù)傳輸。網(wǎng)絡(luò)數(shù)字語音轉(zhuǎn)發(fā)器與區(qū)長臺的連接很簡單,故連線圖略。網(wǎng)絡(luò)數(shù)字語音轉(zhuǎn)發(fā)器與數(shù)字控制盒的數(shù)據(jù)通信模塊設(shè)計如圖3.3所示。
以嵌入式Linux為操作平臺,進行驅(qū)動程序和應(yīng)用程序的開發(fā)。
4.1 嵌入式Linux操作系統(tǒng)
嵌入式Linux的開發(fā)包括開發(fā)環(huán)境的搭建(Fedora14、交叉編譯工具arm-linux-gcc)、Linux內(nèi)核的移植、構(gòu)建根文件系統(tǒng)、設(shè)備驅(qū)動程序的開發(fā)及應(yīng)用程序的開發(fā)。主要任務(wù)在設(shè)備驅(qū)動程序的開發(fā)[8]和應(yīng)用程序的開發(fā)。設(shè)備驅(qū)動程序主要涉及到字符設(shè)備開發(fā),在網(wǎng)上有很多資料可供參考,此文篇幅有限只對應(yīng)用程序部分進行介紹。
4.2應(yīng)用程序的開發(fā)
應(yīng)用程序部分共七個模塊。完成了從軟件配置、數(shù)據(jù)和命令的收發(fā),音頻數(shù)據(jù)的采集,播放等功能。
圖 4.1 應(yīng)用程序模塊框圖
4.2.1應(yīng)用程序模塊概述
根據(jù)本設(shè)計要完成的功能,應(yīng)用程序模塊框圖如圖4.1所示。主控模塊負責(zé)啟動和維護另外幾個模塊的功能,另外程序中使用了部分Linux開源代碼作為程序的函數(shù)庫(portaudio庫和ortp庫),音頻數(shù)據(jù)的采集播放的相關(guān)函數(shù)放于portaudio庫中,音頻數(shù)據(jù)傳輸?shù)南嚓P(guān)函數(shù)放于ortp庫中。下面主要對主控模塊、話音模塊、通信模塊及配置文件讀取模塊作詳細介紹。
4.2.2主控模塊流程
主控模塊起到了組織、管理其它模塊的功能。首先建立程序所需的信號量、然后讀取配置文件,對內(nèi)存變量(如ip地址,串口參數(shù),采樣參數(shù))進行設(shè)置,并啟動http server線程和串口監(jiān)聽服務(wù)線程。
當(dāng)用戶按下CTRL+C時,程序就會收到信號SIGQUIT,程序就會關(guān)閉串口監(jiān)聽服務(wù)線和http server線程,退出程序的執(zhí)行。
當(dāng)程序收到的并非SIGQUIT信號,而是配置信息改動的信號時,程序?qū)詣又匦缕饎印?/p>
4.2.3話音模塊流程
話音模塊主要完成音頻數(shù)據(jù)的采集、傳輸及播放,其主要工作過程描述如圖圖4.2所示。
圖4.2話音模塊工作進程描述圖
發(fā)送端首先打開默認的錄音設(shè)備,按照預(yù)設(shè)的錄音參數(shù),開啟錄音過程。錄音開啟后,通過開啟時注冊的錄音回調(diào)函數(shù),周期性的獲得數(shù)字化后的音頻數(shù)據(jù),使用RTP協(xié)議對其進行打包封裝,發(fā)送給預(yù)設(shè)的目標主機。同時,在整個音頻會話過程中,我們還可以周期性的發(fā)送RTCP(發(fā)送)狀態(tài)報告給目標主機,以便在此次會話結(jié)束后,統(tǒng)計此次音頻傳輸?shù)馁|(zhì)量。
接收端主機首先根據(jù)會話開始時接收到的音頻播放參數(shù)打開默認的放音設(shè)備,注冊放音回調(diào)函數(shù)。而后當(dāng)它周期性的從網(wǎng)絡(luò)上接收到RTP音頻封包時,先從封包中提取出音頻數(shù)據(jù),而后直接寫入到放音回調(diào)緩存中,從而播放出聲音。同時在整個音頻會話過程中,我們還可以周期性的發(fā)送RTCP(接收)狀態(tài)報考給源主機,以便在此次會話結(jié)束后,統(tǒng)計此次音頻傳輸?shù)馁|(zhì)量。
4.2.4通信模塊流程
通信模塊主要完成串口指令數(shù)據(jù)的接收、傳輸、寫入,其主要工作過程描述如下:
(1) 根據(jù)預(yù)設(shè)的串口名稱、波特率打開串口及串口監(jiān)聽服務(wù)程序。
(2) 監(jiān)聽串口指令數(shù)據(jù)。
(3) 獲取到一條合法的串口指令數(shù)據(jù)后,如果是話音指令,則交給“話音模塊”處理;如果是普通指令,則封裝HTTP POST報文,發(fā)送給預(yù)設(shè)的目標主機并等待響應(yīng)回復(fù)。
(4)目標主機收到HTTP POST請求后,解析指令,如果是話音指令,則交給“話音模塊”處理;如果是普通指令,則寫入本地已打開的串口,并發(fā)送響應(yīng)回復(fù)。
(5) 當(dāng)接收到程序退出信號后,關(guān)閉串口監(jiān)聽服務(wù)程序,并關(guān)閉已打開的串口。
4.2.5配置文件讀取模塊
為了設(shè)置和調(diào)試的便利,在程序中編寫了配置文件,可以對網(wǎng)絡(luò)語音數(shù)據(jù)轉(zhuǎn)發(fā)器的本機和遠端IP地址進行設(shè)置,數(shù)據(jù)收發(fā)延時時間進行設(shè)定。
當(dāng)VoIP網(wǎng)絡(luò)數(shù)字語音轉(zhuǎn)發(fā)器的軟硬件設(shè)計完成后,需要將轉(zhuǎn)發(fā)器接入系統(tǒng)中,根據(jù)功能要求進行測試,找出設(shè)計不足進行改進。
5.1 測試環(huán)境搭建
測試中用到的主要設(shè)備有數(shù)字控制盒一個,摩托羅拉數(shù)字區(qū)長一臺,VoIP網(wǎng)絡(luò)數(shù)字語音轉(zhuǎn)發(fā)器兩臺, 摩托羅拉數(shù)字手持臺一臺,路由器一臺(帶RG-45網(wǎng)口),網(wǎng)線兩根,另配數(shù)字控制盒連接線和數(shù)字區(qū)長連接線各一根,通過VoIP網(wǎng)絡(luò)數(shù)字語音轉(zhuǎn)發(fā)器分別將數(shù)字控制盒和數(shù)字調(diào)車區(qū)長臺接入網(wǎng)絡(luò)。
連接前摩托羅拉數(shù)字調(diào)車區(qū)長臺和摩托羅拉數(shù)字手持臺都必須通過摩托羅拉公司提供的寫頻軟件對其進行設(shè)置,添加要使用的數(shù)字信道,并保證數(shù)字調(diào)車區(qū)長臺和數(shù)字手持臺頻點的一致性。
5.2 主要功能測試
控制信令數(shù)據(jù)傳輸測試。通過數(shù)字控制盒的數(shù)字按鍵發(fā)送切換信道命令,如果摩托羅拉數(shù)字調(diào)車區(qū)長臺的LCD屏幕顯示的當(dāng)前信道號與所按下的數(shù)字鍵一致,說明信令數(shù)據(jù)傳輸成功。
發(fā)送語音功能測試。拿起數(shù)字控制盒手柄,按下PTT按鍵,對著話筒說話,如果數(shù)字對講機可以接收到話音,說明語音語音可以從數(shù)字控制盒端通過網(wǎng)絡(luò)傳送到數(shù)字調(diào)車區(qū)長臺一端,發(fā)送語音功能工作正常。
接收語音功能測試。按下數(shù)字手持臺的PTT按鍵,并對著MIC講話,如果數(shù)字控制盒有講話音,說明語音可以從數(shù)字調(diào)車區(qū)長臺一端通過網(wǎng)絡(luò)傳送到數(shù)字控制盒端,接收語音功能工作正常。
VoIP適用于基于IP網(wǎng)絡(luò)的語音通信,結(jié)合Linux操作系統(tǒng)的優(yōu)勢提出了VoIP網(wǎng)絡(luò)語音數(shù)字轉(zhuǎn)發(fā)器的軟硬件實現(xiàn),通過此設(shè)備將數(shù)字控制盒與數(shù)字調(diào)車區(qū)長臺分別接入網(wǎng)絡(luò),實現(xiàn)了通過數(shù)字控制盒遠程控制數(shù)字調(diào)車區(qū)長臺的目的。為區(qū)長室集中優(yōu)化中的數(shù)字調(diào)車區(qū)長臺的升級改造提出了可行方案。本文下一步工作研究如何消除系統(tǒng)通話過程中的背景音,提高用戶體驗。本文對數(shù)字調(diào)車區(qū)長的遠程操作提出了解決方案是值得推廣的。
[1]王本良VoIP技術(shù)現(xiàn)狀及發(fā)展分析《商業(yè)現(xiàn)代化》,2005年第5期
[2]三星 S5PV210[EB/OL].http://baike.baidu.com/ view/8123492.htm
[3]嵌式入 linux[EB/OL].http://baike.baidu.com/ view/1195294.htm
[4] REAL210 LINUX用戶手冊.廣州華天正科技有限公司.2011
[5]袁安富. 夏生鳳.基于ARM和Linux的DM9000網(wǎng)絡(luò)接口設(shè)計及驅(qū)動實現(xiàn)[J].計算機工程與科學(xué).2011,33(2)
[6]WM9713L-AC97 Audio+TouchpanelCODEC.Wolfson Microelectronics plc.2004.1~14
[7]ADM3488 Datasheet.ADCorp.1994.1~15
[8]曹忠明程姚根編著《從實踐中學(xué)嵌入式Linux操作系統(tǒng)》北京電子工業(yè)出版社 2012年
[9]陳剛馮利美編著《從實踐中學(xué)嵌入式Linux應(yīng)用程序開發(fā)》北京電子工業(yè)出版社 2012年
[10]oRTP:A Real-time Transport Protlcol stack[J]. http://www.linephone.org
張振國,1977-,男,北方工業(yè)大學(xué),在讀工程碩士研究生,主要研究方向:嵌入式計算機、鐵路平面調(diào)車、智能卡、物聯(lián)網(wǎng)。劉紅,1967-,女,北方工業(yè)大學(xué)電子信息工程學(xué)院,副教授、主要研究方向:信號分析、信息處理、嵌入式系統(tǒng)開發(fā)、基于Web的大型系統(tǒng)開發(fā)、計算機應(yīng)用技術(shù)。