張磊,陳齊亞,黎巍,王歡
(中國民用航空西北地區(qū)空中交通管理局,西安710082)
基于基帶Modem的報文收發(fā)軟件設(shè)計與實現(xiàn)
張磊,陳齊亞,黎巍,王歡
(中國民用航空西北地區(qū)空中交通管理局,西安710082)
引入基帶Modem作為民航氣象報文數(shù)據(jù)傳輸設(shè)備,給出單用戶的網(wǎng)絡(luò)連接結(jié)構(gòu),在此基礎(chǔ)上,結(jié)合串口服務(wù)器擴展AFTN線路用戶使用范圍。基于.NET平臺,針對兩種不同的網(wǎng)絡(luò)連接結(jié)構(gòu),設(shè)計并實現(xiàn)民航氣象報文接收發(fā)送軟件。該軟件可以靈活配置,分別以串口或者網(wǎng)口的方式完成民航氣象報文穩(wěn)定和準確的傳輸。
基帶Modem;串口服務(wù)器;收發(fā)報軟件;串口通信;網(wǎng)絡(luò)通信
隨著我國國民經(jīng)濟的持續(xù)增長及西部大開發(fā)戰(zhàn)略的實施,我國西北民航運輸業(yè)也得到快速發(fā)展。作為民航空中交通管理系統(tǒng)的重要組成部分,航空氣象保障能力是保障航空運輸安全和正常飛行的重要基礎(chǔ)之一。民航氣象報文作為民航氣象資料中的重要組成部分,報文內(nèi)容發(fā)布的及時性、準確性,以及報文發(fā)布方式的穩(wěn)定性對于民航氣象保障顯得格外重要。
由于民航報文傳輸需要通過轉(zhuǎn)報系統(tǒng)的轉(zhuǎn)報機在航空固定電信網(wǎng)(Aeronautical Fixed Telecommunication Network)[1]上進行傳輸,因此報文的接收與發(fā)送必須轉(zhuǎn)換成RS-232串口數(shù)據(jù)進行收發(fā)。目前,民航西北地區(qū)氣象中心在實際業(yè)務(wù)中用于向局域網(wǎng)用戶提供民航氣象報文數(shù)據(jù)來源的ZLXYYWYX和向觀測員發(fā)送趨勢預(yù)報的ZLXYYAYX兩條AFTN線路是使用如圖1所示的電流環(huán)轉(zhuǎn)換器接入轉(zhuǎn)報系統(tǒng)的轉(zhuǎn)報機,從而完成報文的接收與發(fā)送工作。電流環(huán)轉(zhuǎn)換器可以完成RS-232串口信號與20mA電信號的相互轉(zhuǎn)換,從而解決RS-232串口信號傳輸距離限制在15米以內(nèi)的距離問題。通過接入電流環(huán)轉(zhuǎn)換器,RS-232串口信號的傳輸距離可以延長至1000米左右。
圖1 電流環(huán)轉(zhuǎn)換器
但是,由于目前使用的電流環(huán)轉(zhuǎn)換器使用年限較長,設(shè)備已經(jīng)老化,因此存在報文傳輸穩(wěn)定性較低等安全隱患。另外,由于電流環(huán)轉(zhuǎn)換器屬于專用設(shè)備,目前正在被新一代網(wǎng)絡(luò)通信設(shè)備所逐步取代,因此市面上已經(jīng)采購不到現(xiàn)有業(yè)務(wù)中使用的電流環(huán)轉(zhuǎn)換器。
為了杜絕安全隱患,提高民航氣象報文傳輸?shù)姆€(wěn)定性和可靠性,以及傳輸設(shè)備的通用性,本文設(shè)計并實現(xiàn)了一種基于基帶Modem的報文接收發(fā)送軟件。
2.1基帶Modem簡介
基帶Modem是一種采用基帶傳輸,用于完成數(shù)字信號可靠、穩(wěn)定傳輸?shù)耐ㄐ旁O(shè)備。區(qū)別于頻帶傳輸,基帶傳輸是指在通信電纜上原封不動地傳輸由計算機或數(shù)據(jù)通信終端產(chǎn)生的數(shù)字脈沖信號,它是一種十分重要的數(shù)據(jù)傳輸方式。基帶Modem的功能則是通過形成適當?shù)牟ㄐ?,使?shù)字信號在帶寬受限的傳輸介質(zhì)上傳輸時,不會由于波形迭起而產(chǎn)生碼間干擾[2]。因此,相對于可以完成模數(shù)轉(zhuǎn)換功能的普通Modem,基帶Modem是一種用在數(shù)字線路中,可以完成數(shù)字信號到數(shù)字信號高性能傳輸?shù)耐ㄐ旁O(shè)備。通過采用基帶Modem,信號的傳輸距離可以達到2000米左右,因此,它被廣泛應(yīng)用于樓宇間、校園內(nèi),以及城市內(nèi)部的數(shù)字信號傳輸。
2.2網(wǎng)絡(luò)結(jié)構(gòu)
為了解決現(xiàn)有業(yè)務(wù)系統(tǒng)中由于設(shè)備老化落后帶來的潛在隱患,本文采用臺聯(lián)電訊設(shè)備有限公司型號為TAINET T-336Cx的基帶Modem替換現(xiàn)有業(yè)務(wù)系統(tǒng)中的電流環(huán)轉(zhuǎn)換盒作為報文接收發(fā)送終端與轉(zhuǎn)報機之間的信號傳輸設(shè)備,從而實現(xiàn)民航氣象報文穩(wěn)定、準確的傳輸。由于基帶Modem只能完成端到端的數(shù)字信號高性能傳輸,因此,在一條AFTN線路上采用基帶Modem只能實現(xiàn)一臺報文接收發(fā)送終端與轉(zhuǎn)報機之間的互聯(lián)通訊。為了擴展這種點到點的應(yīng)用為點到面的應(yīng)用,即在一條AFTN線路上可以同時實現(xiàn)多臺報文接收發(fā)送終端與轉(zhuǎn)報機之間的報文傳輸,本文采用串口服務(wù)器給出了一種多臺報文接收發(fā)送終端同時與轉(zhuǎn)報機互聯(lián)通信的設(shè)計方案。
(1)一臺報文接收發(fā)送終端與轉(zhuǎn)報機互聯(lián)
TAINET T-336Cx基帶Modem是一種高性能,能實現(xiàn)同步/異步,全雙工/半雙工,可工作于撥號式線路及兩線/四線式專線電路的多功能型Modem[3]。本文采用如圖2所示的網(wǎng)絡(luò)結(jié)構(gòu)實現(xiàn)一臺報文接收發(fā)送終端與轉(zhuǎn)報機之間的報文傳輸。
圖2 一臺報文接收發(fā)送終端與轉(zhuǎn)報機互聯(lián)的網(wǎng)絡(luò)結(jié)構(gòu)
其中,為了保證報文傳輸線路的穩(wěn)定性,以及報文傳輸內(nèi)容的準確性,本文采用兩線式的專線電路對兩個基帶Modem進行連接?;鶐odem的具體配置參數(shù)如下表所示:
表1 TAINET T-336Cx基帶Modem參數(shù)設(shè)置
(2)多臺報文接收發(fā)送終端與轉(zhuǎn)報機互聯(lián)
串口服務(wù)器是一種通信協(xié)議轉(zhuǎn)換器,它能夠自動將RS-232/485/422串口數(shù)據(jù)轉(zhuǎn)換成可以在通用網(wǎng)絡(luò)設(shè)備上傳輸?shù)腡CP/IP網(wǎng)絡(luò)數(shù)據(jù),實現(xiàn)RS-232/485/422串口與TCP/IP網(wǎng)絡(luò)接口的數(shù)據(jù)雙向透明傳輸[4-5]。串口服務(wù)器在硬件結(jié)構(gòu)上一般具備兩類接口:一類是標準的RS-232/485/422串行接口;另一類是可以接入局域網(wǎng)的以太網(wǎng)口。經(jīng)過內(nèi)部的數(shù)據(jù)格式轉(zhuǎn)換,串口服務(wù)器可以實現(xiàn)串口數(shù)據(jù)流和網(wǎng)絡(luò)數(shù)據(jù)流的相互轉(zhuǎn)化,從而將一個單獨的串口設(shè)備轉(zhuǎn)變?yōu)榫W(wǎng)絡(luò)上其他設(shè)備所共享的網(wǎng)絡(luò)設(shè)備,大大擴展了串口設(shè)備的使用范圍。
本文采用MOXA科技股份有限公司型號為Nport 5110的串口服務(wù)器搭建了如圖3所示的網(wǎng)絡(luò)結(jié)構(gòu),以實現(xiàn)多臺報文接收發(fā)送終端同時與轉(zhuǎn)報機互聯(lián)通信的目的,從而擴展了每條AFTN線路的使用范圍,并提高了使用效率。
圖3 多臺報文接收發(fā)送終端與轉(zhuǎn)報機互聯(lián)的網(wǎng)絡(luò)結(jié)構(gòu)
如圖3所示,接收民航氣象報文時,來自轉(zhuǎn)報機的報文首先經(jīng)過基帶Modem傳輸,緩存在串口服務(wù)器中;然后報文接收發(fā)送終端向串口服務(wù)器發(fā)送Socket鏈接請求,建立Socket網(wǎng)絡(luò)傳輸通道;最后報文經(jīng)過交換機、路由器等網(wǎng)絡(luò)傳輸設(shè)備,以TCP/IP數(shù)據(jù)包的形式到達用戶的接收終端。報文發(fā)送過程與報文接收過程相反,在此不再贅述。(Nport 5110串口服務(wù)器的具體配置信息如圖4所示)
圖4 Nport 5110串口服務(wù)器參數(shù)設(shè)置
2.3軟件設(shè)計與實現(xiàn)
為了達到用戶界面友好和程序?qū)崿F(xiàn)高效的目的,本文基于.NET 4.5平臺,采用C#作為程序開發(fā)語言,設(shè)計并實現(xiàn)了民航氣象報文接收發(fā)送軟件。
針對如圖2所示的一臺報文接收發(fā)送終端與轉(zhuǎn)報機互聯(lián)的網(wǎng)絡(luò)結(jié)構(gòu),由于報文接收發(fā)送終端直接與基帶Modem通過RS-232串口的方式相連,因此軟件需要具備串口通信的能力;對于如圖3所示的多臺報文接收發(fā)送終端與轉(zhuǎn)報機互聯(lián)的網(wǎng)絡(luò)結(jié)構(gòu),由于報文接收發(fā)送終端是通過以太網(wǎng)與串口服務(wù)器直接通信,因此為了同時適應(yīng)兩種不同的網(wǎng)絡(luò)結(jié)構(gòu),本文開發(fā)的軟件還需要同時具備基于Socket連接的網(wǎng)絡(luò)通信能力。
(1)串口通信
RS-232通信串口由于其良好的通用性和標準性,在計算機系統(tǒng)和工業(yè)控制領(lǐng)域中有著廣泛的應(yīng)用。從.NET 2.0開始,微軟就將所有串口操作封裝到了Serial-Port類里,以簡化與串口相關(guān)的程序設(shè)計。
采用SerialPort類的對象進行串口通信時,需要通信雙方執(zhí)行共同的協(xié)議,即通信雙方設(shè)置的串口參數(shù)相同。串口參數(shù)包括波特率,校驗方式,數(shù)據(jù)位和停止位。同時,SerialPort類支持四種事件:DataReceived事件、Disposed事件、ErrorReceived事件和PinChanged事件。其中,DataReceived事件是SerialPort類的數(shù)據(jù)接收事件,每當串口接收到新數(shù)據(jù)時,便會觸發(fā)該事件的響應(yīng)以完成數(shù)據(jù)接收操作。圖5是本文打開串口函數(shù)的部分代碼。
圖5 打開串口函數(shù)代碼
(2)網(wǎng)絡(luò)通信
Socket又稱套接字,它為程序提供了與外界通信的端口。通過建立Socket連接,可為通信雙方的數(shù)據(jù)傳輸提供通道?;赟ocket的網(wǎng)絡(luò)通信,主要可以分為TCP通信模型和UDP通信模型。前者為網(wǎng)絡(luò)通信提供了一個面向連接、可靠的數(shù)據(jù)流傳輸服務(wù),被傳輸?shù)臄?shù)據(jù)可以無差錯、無重復(fù)地發(fā)送,且按發(fā)送順序在接收端進行接收;后者則提供了一個無連接的數(shù)據(jù)包傳輸服務(wù),數(shù)據(jù)包以獨立的方式進行發(fā)送,不提供任何質(zhì)量保證。
為了保證報文準確無誤的快速傳輸,本文采用TCP通信模型。TCP通信模型一般采用客戶端/服務(wù)器模式,即有一個客戶端進程和一個服務(wù)器進程。服務(wù)器進程一直處在等待監(jiān)聽狀態(tài),直到客戶端進程主動請求連接。當服務(wù)器進程收到客戶端進程的Socket連接請求時,服務(wù)器進程就響應(yīng)客戶端的請求,建立一個新的Socket,并返回給客戶端進程,一旦客戶端確認連接,則連接建立,然后就可在該Socket連接上進行數(shù)據(jù)通信[6]。如圖4所示,串口服務(wù)器被配置為TCP服務(wù)器模式,因此本文只需要實現(xiàn)客戶端代碼即可實現(xiàn)收發(fā)報軟件與串口服務(wù)器之間的通信。圖6是本文建立Socket連接函數(shù)的部分代碼。
圖6 建立Socket連接函數(shù)代碼
針對兩類不同的網(wǎng)絡(luò)結(jié)構(gòu),本文在統(tǒng)一框架下,采用C#程序設(shè)計語言開發(fā)并實現(xiàn)了民航氣象報文接收發(fā)送軟件。該軟件可以根據(jù)實際的網(wǎng)絡(luò)結(jié)構(gòu)和數(shù)據(jù)通信要求,調(diào)整配置參數(shù),采用串口方式或者Socket網(wǎng)絡(luò)通信方式進行民航氣象報文的收發(fā)工作。圖7和圖8即為該軟件兩種通信方式的配置界面。
圖7 串口通信參數(shù)配置
圖8 網(wǎng)絡(luò)通信參數(shù)配置
圖9是在如圖3所示的網(wǎng)絡(luò)結(jié)構(gòu)環(huán)境下,采用Socket網(wǎng)絡(luò)通信方式進行民航氣象報文接收時的軟件界面。
為了驗證本文設(shè)計并實現(xiàn)的民航氣象報文接收發(fā)送軟件是否能夠準確、穩(wěn)定、快速地進行民航氣象報文的收發(fā)工作,本文采用黑盒測試的方法對該軟件進行了功能測試,測試的重點包括:軟件能否正確的連接串口服務(wù)器,并對錯誤信息進行提示;軟件能否準確、完整的接收所有民航氣象報文,并將接收到的報文顯示在軟件界面中,同時按日期分別存儲在不同的日志文件中;軟件能否成功的向轉(zhuǎn)報機發(fā)送格式正確的民航氣象請求報等。通過將實際運行測試結(jié)果和實驗預(yù)期測試結(jié)果進行對比,本文設(shè)計并實現(xiàn)的氣象報文收發(fā)軟件達到了預(yù)定的功能需求,可以替換現(xiàn)有業(yè)務(wù)中的電流環(huán)轉(zhuǎn)換盒進行民航氣象報文的接收和發(fā)送工作。
圖9 民航氣象報文接收發(fā)送軟件界面
為了杜絕由于電流環(huán)轉(zhuǎn)換盒設(shè)備老化等因素可能造成的安全隱患,提高民航氣象報文傳輸?shù)姆€(wěn)定性和準確性,本文引入基帶Modem作為數(shù)據(jù)傳輸設(shè)備,給出了一種通過基帶Modem進行報文收發(fā)的網(wǎng)絡(luò)結(jié)構(gòu),并采用C#語言基于串口通信技術(shù)實現(xiàn)了報文收發(fā)軟件。同時,為了擴展AFTN線路的用戶使用范圍,本文在原有網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上,結(jié)合串口服務(wù)器給出了多用戶的網(wǎng)絡(luò)結(jié)構(gòu),并在統(tǒng)一的程序框架下,基于網(wǎng)絡(luò)通信技術(shù)實現(xiàn)了報文收發(fā)軟件。通過用戶對軟件進行功能測試,本文設(shè)計并實現(xiàn)的民航氣象報文接收發(fā)送軟件達到了預(yù)定的功能需求,為民航飛行安全提供了有力保障。
[1]張強,于潔.亞太地區(qū)航空氣象情報交換管理[J].中國民用航空,2015(6):36-38.
[2]鄧翔宇.一種可實現(xiàn)數(shù)字基帶部分響應(yīng)系統(tǒng)的研究[J].信息技術(shù),2005,29(6):72-74.
[3]臺聯(lián)電訊設(shè)備有限公司.TAINET T-336Cx/Nx/NDx使用手冊[Z].北京,2011.
[4]王衛(wèi)峰,沈俊杰,蘇建良,江芳波,周濤.基于NPort串口服務(wù)器的座椅滑道裝配線監(jiān)控系統(tǒng)[J].機電工程,2010,27(10):98-101.
[5]陳平,郝繼飛,周曉飛,趙健,寇立強.基于串口服務(wù)器組網(wǎng)的自來水廠供水監(jiān)控系統(tǒng)[J].湖南科技大學學報:自然科學版,2011,26 (2):79-83.
[6]范勤學.一種基于Socket的可配置通信工具[C].全國冶金自動化信息網(wǎng)年會,2010.
Design and Implementation of the Civil Aviation Meteorological Message Transmission and Reception Software Based on Base Band Modem
ZHANG Lei,CHEN Qi-ya,LI Wei,WANG Huan
(Air Traffic Management Bureau of Northwest Regional of CAAC,Xi'an 710082)
Introduces base band modem to exchange civil aviation meteorological messages,designs a network structure allowing one user to send and receive messages,in order to expand the number of users,and gives another network structure based on the combination of serial device server.Uses the technique of serial communication and socket communication,designs and implements the civil aviation meteorological message transmission and reception software according to the two different network structures.Experiment shows that the software can stably and accurately transmit and receive civil aviation meteorological messages in the manner of serial communication and socket communication respectively.
Base Band Modem;Serial Device server;Message Transmission and Reception Software;Serial Communication;Socket Communication
1007-1423(2016)16-0039-05DOI:10.3969/j.issn.1007-1423.2016.16.012
張磊(1988-),男,寧夏回族自治區(qū)中衛(wèi)人,碩士研究生,助理工程師,研究方向為民航氣象數(shù)據(jù)庫系統(tǒng)維護與開發(fā)
陳齊亞(1975-),男,陜西西安人,碩士研究生,高級工程師,研究方向為計算機技術(shù)管理
黎?。?974-),男,陜西西安人,本科,高級工程師,研究方向為計算機技術(shù)管理
王歡(1989-),女,青海西寧人,碩士研究生,助理工程師,研究方向為民航氣象數(shù)值預(yù)報應(yīng)用
2016-03-29
2016-05-20