樊昕昕,黃 同,樊延虎
(延安大學(xué)1)信息學(xué)院;2)西安創(chuàng)新學(xué)院 理工系,陜西 延安 716000)
短波這一傳統(tǒng)的通信方式,是唯一不受網(wǎng)絡(luò)樞紐和有源中繼制約的遠(yuǎn)程通信手段,盡管短波通信因電離層的高度和密度容易受晝夜、季節(jié)、氣候等因素的影響,穩(wěn)定性較差,噪聲較大且當(dāng)前新型無(wú)線電通信系統(tǒng)不斷涌現(xiàn),但其通信距離、抗毀能力和機(jī)動(dòng)性的優(yōu)勢(shì),仍然受到全世界普遍重視,不僅沒(méi)有被淘汰,還在快速發(fā)展。目前,它廣泛應(yīng)用于國(guó)防、軍事和國(guó)民經(jīng)濟(jì)等重要部門的通信,本文設(shè)計(jì)了一套計(jì)算機(jī)管理系統(tǒng)軟件,通過(guò)短波調(diào)制解調(diào)器,控制數(shù)字短波電臺(tái)進(jìn)行各類文件的收發(fā),實(shí)現(xiàn)數(shù)據(jù)通信。不但擴(kuò)充其通信功能,而且在相同信噪比下,提高了可通率。
短波SSB數(shù)字傳輸管理系統(tǒng)由計(jì)算機(jī)管理軟件、短波調(diào)制解調(diào)器、短波電臺(tái)組成,其連接如圖1所示。
圖1 系統(tǒng)組成框圖
圖1中短波調(diào)制解調(diào)器是用于短波數(shù)據(jù)通信的一種無(wú)線調(diào)制解調(diào)器,是短波數(shù)據(jù)通信系統(tǒng)中的關(guān)鍵設(shè)備,其性能直接關(guān)系到數(shù)據(jù)傳輸速率和質(zhì)量[1,2]。本系統(tǒng)中的短波調(diào)制解調(diào)器為自制設(shè)備,它運(yùn)用最新數(shù)字信號(hào)處理技術(shù),由高速DSP芯片完成全部時(shí)域、頻域信號(hào)處理和軟判決譯碼,具有較強(qiáng)的抗信道衰落和多徑干擾的能力,能克服電離層非平穩(wěn)變化及多普勒頻率偏移效應(yīng),且在標(biāo)準(zhǔn)2.4 KHz短波單邊帶SSB信道中可靠傳送300b/s至1200b/s的數(shù)據(jù)。
系統(tǒng)工作基本原理為:發(fā)送時(shí),計(jì)算機(jī)管理軟件通過(guò)RS232串行接口將文件發(fā)送給短波調(diào)制解調(diào)器,調(diào)制解調(diào)器將數(shù)據(jù)處理后經(jīng)電臺(tái)發(fā)送到遠(yuǎn)方工作站;接收時(shí),短波調(diào)制解調(diào)器自適應(yīng)接收數(shù)據(jù)并在達(dá)到一個(gè)數(shù)據(jù)幀后經(jīng)RS232串行接口由計(jì)算機(jī)管理軟件接收和分析處理。
軟件系統(tǒng)由短波調(diào)制解調(diào)器控制軟件(以下記為DSPsoft)和運(yùn)行于計(jì)算機(jī)的管理軟件(以下記為PCsoft)兩部分組成,這兩個(gè)程序必須協(xié)同配合才能完成實(shí)際的數(shù)據(jù)收發(fā)工作。DSPsoft負(fù)責(zé)編解碼、幀處理、鏈路拆建和電臺(tái)控制,使用匯編語(yǔ)言編寫。短波調(diào)制解調(diào)器及其控制軟件對(duì)上位機(jī)透明,本文不予介紹。PCsoft負(fù)責(zé)對(duì)系統(tǒng)的工作模式、串口通信等配置,數(shù)據(jù)鏈路管理、幀同步和流程控制,是整個(gè)系統(tǒng)工作流程控制的中心。該管理軟件基于VC++工具開(kāi)發(fā),首先建立與調(diào)制解調(diào)器間的串口異步通信基礎(chǔ),然后嚴(yán)格按照二者之間的自定義協(xié)議的約定,在工作者線程中自適應(yīng)地進(jìn)行幀處理。
在VC++中,串口和磁盤文件可以統(tǒng)一的方式來(lái)簡(jiǎn)單讀寫[5],MFC對(duì)于串口作為文件設(shè)備處理,用CreateFile()打開(kāi)串口,獲得一個(gè)串口句柄。打開(kāi)后SetCommState()進(jìn)行端口設(shè)置,包括緩沖區(qū)設(shè)置,超時(shí)設(shè)置和數(shù)據(jù)格式等。成功后就能調(diào)用函數(shù)ReadFile()和WriteFile()進(jìn)行數(shù)據(jù)的讀寫,用Wait-CommEvent()監(jiān)視通信事件,CloseHandle()用于關(guān)閉串口。
在ReadFile()和WriteFile()讀寫串口時(shí),能采取同步執(zhí)行方式,也能采取重疊I/O方式。同步執(zhí)行時(shí),函數(shù)直到執(zhí)行完畢才返回,因而同步執(zhí)行的其他線程會(huì)被阻塞,效率下降;而在重疊方式下,調(diào)用的讀寫函數(shù)會(huì)即時(shí)返回,I/O操作在后臺(tái)進(jìn)行,這樣線程就能處理其他事務(wù)。這樣,線程能在同一串口句柄上實(shí)現(xiàn)讀寫操作,實(shí)現(xiàn)"重疊"。
使用重疊 I/O方式時(shí),線程要?jiǎng)?chuàng)建 OVERLAPPED結(jié)構(gòu)供讀寫函數(shù)使用,該結(jié)構(gòu)最重要的成員是hEvent事件句柄。他將作為線程的同步對(duì)象使用,讀寫函數(shù)完成時(shí)hEvent處于有信號(hào)狀態(tài),表示可進(jìn)行讀寫操作;讀寫函數(shù)未完成時(shí),hEvent被置為無(wú)信號(hào)。
本管理軟件直接在VC中使用API,采用層疊I/O工作方式,在工作者線程中控制收發(fā)全過(guò)程。
自定義通信協(xié)議主要包括握手協(xié)議、幀格式和收發(fā)流程。
握手協(xié)議:上位機(jī)發(fā)【%】ASC碼,下位機(jī)回【%】ASC碼,6秒收不到回信號(hào),提示“請(qǐng)檢查調(diào)制解調(diào)器是否連接好”并彈出“是否’選擇鈕,點(diǎn)“是”重新“握手”,點(diǎn)”否”返回“退出系統(tǒng)”正常進(jìn)入系統(tǒng)主界面。
文件參數(shù)幀:標(biāo)志位1字節(jié),【*】ASC碼,參數(shù)16字節(jié);格式:標(biāo)志1位+本機(jī)地址1字節(jié)+文件屬性4字節(jié)+文件長(zhǎng)度2字節(jié) +斷點(diǎn)續(xù)傳2字節(jié)+保留6字節(jié),下位機(jī)收到正確,返回【*】ASC碼,下位機(jī)接收錯(cuò)誤返回【$】。
數(shù)據(jù)幀:1.短幀:標(biāo)志位1字節(jié),【&】ASC碼;數(shù)據(jù)32字節(jié);格式:標(biāo)志+數(shù)據(jù)32字節(jié),下位機(jī)收到正確,返回【&】ASC碼,下位機(jī)接收錯(cuò)誤返回【$】;2.長(zhǎng)幀:標(biāo)志位1字節(jié),【#】ASC碼;數(shù)據(jù)64字節(jié);格式:標(biāo)志+數(shù)據(jù)64字節(jié),下位機(jī)收到校驗(yàn)正確,返回【#】ASC碼,下位機(jī)接收錯(cuò)誤返回【$】。
文件結(jié)束幀:標(biāo)志位1字節(jié),【end】ASC碼。
計(jì)算機(jī)端的管理軟件PCsoft負(fù)責(zé)對(duì)整個(gè)系統(tǒng)的配置和數(shù)據(jù)收發(fā)管理,點(diǎn)擊“進(jìn)入系統(tǒng)”按鈕打開(kāi),系統(tǒng)設(shè)置即系統(tǒng)工作模式和通信設(shè)置界面,如圖2所示。系統(tǒng)默認(rèn)為發(fā)送模式;串口參數(shù)默認(rèn)COM1,速率:9600b/s,8位數(shù)據(jù)和1位校驗(yàn)位(偶校驗(yàn))。
圖2 系統(tǒng)設(shè)置
如果選擇發(fā)送模式,則此時(shí)系統(tǒng)處于半雙工通信模式,如圖3所示。選擇開(kāi)始發(fā)送后,軟件啟動(dòng)一個(gè)發(fā)送工作者線程,其流程為:先發(fā)送文件參數(shù)幀;待下位機(jī)要數(shù)據(jù)時(shí)發(fā)送【@】ASC碼,上位機(jī)管理軟件收到【@】
圖3 發(fā)送文件界面
ASC碼后,逐幀發(fā)送完數(shù)據(jù)幀;最后則發(fā)送文件結(jié)束幀,退出發(fā)送工作者線程,結(jié)束發(fā)送周期。
如果選擇接收模式,則此時(shí)系統(tǒng)也處于半雙工通信模式,如圖4所示。選擇開(kāi)始接收后,軟件啟動(dòng)一個(gè)接收工作者線程,實(shí)時(shí)監(jiān)聽(tīng)串口狀態(tài)和數(shù)據(jù),一旦檢測(cè)到下位機(jī)發(fā)來(lái)的文件參數(shù)幀后,系統(tǒng)等待并接收隨后的數(shù)據(jù)幀,同步顯示進(jìn)度,直至收到文件結(jié)束幀,保存文件并繼續(xù)下個(gè)監(jiān)聽(tīng)周期。
圖4 接收文件界面
如果選擇收發(fā)送模式,則此時(shí)系統(tǒng)處于全雙工通信模式。不論系統(tǒng)當(dāng)前處于哪種模式,均可以停止當(dāng)前動(dòng)作,通過(guò)切換模式轉(zhuǎn)換到其他工作模式。
本軟件在VC++6.0下編譯調(diào)試通過(guò),經(jīng)過(guò)與短波調(diào)制解調(diào)器和模擬短波電臺(tái)的聯(lián)調(diào)聯(lián)試,系統(tǒng)可以成功發(fā)送和接收*.txt、*.doc和*.zip等格式文件。
經(jīng)實(shí)驗(yàn)室調(diào)試和實(shí)驗(yàn)?zāi)M表明,整個(gè)短波SSB數(shù)字傳輸終端管理系統(tǒng)軟硬件配合良好,運(yùn)行正常,管理軟件界面友好,使用簡(jiǎn)便,傳輸速度快,可靠性高。另外在這套管理軟件的基本功能上稍加擴(kuò)展(例如加密、解密;校頻),可以很容易地構(gòu)成更加強(qiáng)大的短波數(shù)據(jù)通信系統(tǒng),可應(yīng)用到常規(guī)電臺(tái)。
[1]李延軍,馬連強(qiáng).無(wú)線調(diào)制解調(diào)器應(yīng)用于短波通信[J].現(xiàn)代電子技術(shù),2002(3):63-65.
[2]王亞軍,任小偉.基于TMS320VC33的短波調(diào)制解調(diào)器的設(shè)計(jì)[J].探測(cè)與定位,2005(1):95-100.
[3]王曉宇,謝維信.短波電臺(tái)無(wú)線數(shù)據(jù)傳輸網(wǎng)絡(luò)的組建[J].現(xiàn)代電子技術(shù).2004(3):56-58.
[4]項(xiàng)劍鋒,吳海榮.窄帶短波調(diào)制解調(diào)器發(fā)送端基帶數(shù)據(jù)流成形研究及關(guān)鍵技術(shù)探討[J].現(xiàn)代電子技術(shù),2009(5):47-49.
[5]溫婷,程緒建,劉曉方.基于ARM的智能多串口板監(jiān)控軟件的設(shè)計(jì)與實(shí)現(xiàn)[J].微電子學(xué)與計(jì)算機(jī),2010(11):177-180.