文鐘華,劉海森
(中國民用航空桂林空中交通管理站,廣西 桂林 541106)
在實際應用中,串口通信通常使用電纜直接傳輸,隨著近年網(wǎng)絡的飛速發(fā)展,基于網(wǎng)絡傳輸?shù)拇诜掌靼l(fā)展迅速,相比于普通串口通信,串口服務器具有防雷、傳輸距離長等優(yōu)點。目前國內大部分機場的氣象數(shù)據(jù)庫通信分系統(tǒng)接收AWOS和AFTN報文數(shù)據(jù)都是通過串口卡接收的,串口卡需要安裝在通信機的PCI插槽上,由串口轉接頭分成多路串口,串口的數(shù)量是固定的,且目前國內絕大部分氣象數(shù)據(jù)庫通信分系統(tǒng)都是單機運行的,若需更換串口卡,需要通信機停機,通信機停機影響氣象數(shù)據(jù)交換,對氣象業(yè)務影響較大。而串口服務器可以解決這些問題,通過簡單配置,可任意增減串口服務器數(shù)量,因串口服務器與通信機是通過網(wǎng)絡連接的,串口服務器的安裝或更換不需要通信機停機,且網(wǎng)絡的傳輸方式具有防雷和傳輸距離長的優(yōu)點。與串口卡相比,該方案的安裝和維護更加安全、便捷。
串口卡需要安裝在通信機的PCI插槽上,串口數(shù)量由安裝的串口卡型號決定,如需更換串口卡,需要通信機停機,方可從通信機的PCI插槽上對串口卡進行拆裝,因為串口卡與通信機之間是通過電纜線連接的,一般通信距離不會超過15 m[1],串口卡方案示意圖如圖1所示。
圖1 串口卡方案示意圖
串口服務器只需要與通信機接入到同一網(wǎng)絡中即可,通過簡單修改驅動程序的配置文件,可任意增加或減少串口服務器數(shù)量。由于串口服務器基于網(wǎng)絡通信,不依賴通信機的PCI插槽,因此,在進行維護時,通信機不需要停機就可完成。串口服務器與通信機之間通過網(wǎng)絡連接,普通雙絞線的傳輸距離達到100 m[2],傳輸距離長,而且具有防雷等特點,串口服務器方案示意圖,如圖2所示。
圖2 串口服務器方案示意圖
本文使用moxa的NPort 5150串口服務器為例進行討論(下同)。使用串口服務器默認IP進行網(wǎng)頁登陸,點擊“Network Settings”菜單,根據(jù)實際網(wǎng)絡情況配置“IP address”、“Netmask”等選項,使得串口服務器能夠與通信機進行網(wǎng)絡通信;點擊“Serial Settings”菜單,根據(jù)實際情況設置串口通信參數(shù);點擊“Operating Settings”菜單,“Operation mode”設置為“Real COM Mode”;點擊“Save/Restart”對串口服務器進行保存重啟即可完成配置。
訪問moxa官網(wǎng)的驅動下載頁(https://www.moxa.com.cn/support/search.aspx?type=soft),選擇對應的串口服務器型號進行驅動下載,根據(jù)通信機的Linux內核型號選擇對應驅動下載,根據(jù)民航第一期氣象數(shù)據(jù)庫系統(tǒng)的通信機Linux系統(tǒng)內核版本,本文選擇NPort Real TTY Driver for Linux (Linux 2.4.x,2.6.x)驅動版本,把下載好的驅動tgz壓縮包拷貝至通信機,解壓壓縮包,進入解壓后的驅動程序目錄,運行安裝程序“./mxinst”,等待驅動安裝完成,安裝完成后會在“/usr/lib/npreal2/driver”目錄下生成一些程序文件、配置文件和README.TXT說明文件。
進入安裝生成的驅動程序目錄“/usr/lib/npreal2/driver”,運行命令“mxaddsvr [NPort IP Address] [Total Ports] ([Data port] [Cmd port])”,即可添加串口服務器到通信機串口中,其中NPort IP Address為串口服務器IP,Total Ports為串口服務器串口數(shù)量,Data port和Cmd port為串口服務器的通信端口,例如運行 “mxaddsvr 10.22.130.123 1 4002 966”命令即可添加一個IP為10.22.130.123的一路串口服務器。當前目錄下查看配置文件npreal2d.cf,可以看到已經(jīng)多了一條配置記錄(見圖3)。其中“TTYName”即新生成的串口設備名稱。根據(jù)通信機的mssini.ini配置文件,可以查詢到AWOS自觀接收和AFTN報文接收的串口設備名稱,把npreal2d.cf配置文件的“TTYName”改成mssini.ini文件對應的串口名稱即可。例如把npreal2d.cf配置文件中的“TTYName”名由“ttyr00”改為AFTN數(shù)據(jù)接收串口“ttyM0”,最后運行“mxloadsvr”命令使得配置文件生效。
圖3 npreal2d.cf配置文件
當需要安裝多路串口服務器時,只需要重復上述操作即可。
登錄通信機,使用命令“echo “abc”>/dev/ttyM0”(ttyM0為串口服務器對應創(chuàng)建的串口名稱)向串口發(fā)送字符串“abc”,在串口服務器的串口端可接收數(shù)據(jù)“abc”。往串口服務器的串口端發(fā)送字符串“abc”,在通信機端使用命令“cat /dev/ttyM0”[3]可打印接收到的串口數(shù)據(jù)“abc”。
使用串口服務器作為氣象數(shù)據(jù)庫通信分系統(tǒng)的串口通信設備,安裝和配置都較為簡單,增加或減少串口數(shù)量只需要對驅動進行簡單配置即可,對串口服務器進行維護時,通信機也無需停機,串口服務器與通信機通過網(wǎng)絡連接,具有防雷和傳輸距離長的特點,便于維護管理。與使用串口卡方案相比,該方案具有較為明顯的優(yōu)勢,能夠較好地提高氣象數(shù)據(jù)庫通信分系統(tǒng)的可靠性和可維護性。