聲納信號(hào)發(fā)生器通信控制模塊的設(shè)計(jì)與實(shí)現(xiàn)
摘要:文中針對(duì)某型聲納維修訓(xùn)練系統(tǒng)的通信需求,結(jié)合聲納信號(hào)發(fā)生器的特點(diǎn),提出了基于C/S模式的通信控制模塊設(shè)計(jì)方案。模塊采用Winsock網(wǎng)絡(luò)編程技術(shù)實(shí)現(xiàn)了客戶機(jī)與服務(wù)器間高速局域網(wǎng)通信,服務(wù)器響應(yīng)客戶機(jī)的請(qǐng)求后,輸出數(shù)字控制量并利用PCI-1711的12位D/A轉(zhuǎn)換功能,將數(shù)字控制量轉(zhuǎn)換為模擬信號(hào),從而實(shí)現(xiàn)聲納信號(hào)發(fā)生器任意波形產(chǎn)生。試信號(hào)發(fā)生器輸出信號(hào)的幅度、頻率、脈寬、持續(xù)時(shí)間等參數(shù)均可通過網(wǎng)絡(luò)通信方式設(shè)置,并易于調(diào)節(jié)。本系統(tǒng)控制靈活,具有較高的實(shí)用價(jià)值。
關(guān)鍵詞:C/S;Winsock;通信控制;聲納信號(hào)發(fā)生器
在聲納維修訓(xùn)練過程中,通常需要產(chǎn)生一些特殊波形,用于仿真實(shí)際信號(hào)波形。由于一般信號(hào)發(fā)生器模式固定、波形不可程控以及精度較低等問題,難以實(shí)現(xiàn)參訓(xùn)人員進(jìn)行實(shí)時(shí)信號(hào)檢測(cè)。為了滿足訓(xùn)練需求和易操作性,提高維修訓(xùn)練效率,聲納信號(hào)信號(hào)發(fā)生器的通信控制采用客戶機(jī)/服務(wù)器的網(wǎng)絡(luò)模式??蛻魴C(jī)/服務(wù)器模式發(fā)展迅速、占用資源少且通信速率高,已經(jīng)成為通信控制領(lǐng)域的主要通信標(biāo)準(zhǔn)。
1 總體結(jié)構(gòu)設(shè)計(jì)
網(wǎng)絡(luò)通信控制模塊采用局域網(wǎng)結(jié)構(gòu),如圖1所示。通過網(wǎng)線連接一臺(tái)服務(wù)器和1000/100Mbps的Ciseo3524交換機(jī),交換機(jī)輸出端口連接至客戶機(jī),保證實(shí)時(shí)數(shù)據(jù)傳輸。
網(wǎng)絡(luò)通信控制的對(duì)象是聲納信號(hào)發(fā)生器,該信號(hào)發(fā)生器基于研華公司的PCI-1711多功能數(shù)據(jù)采集卡,該卡具有16路單端模擬量輸入、12位A/D轉(zhuǎn)換器(采樣速率可達(dá)100 kHz)、兩路12位模擬信號(hào)輸出、16路數(shù)字量輸入和輸出等特點(diǎn),可通過VC++編程產(chǎn)生正弦波、方波、三角波等任意波形信號(hào),其信號(hào)幅度、頻率、脈寬、持續(xù)時(shí)間等參數(shù)在硬件允許范圍內(nèi)可根據(jù)用戶需求而設(shè)定。
PCI-1711卡使用時(shí),選用電纜PCI-10168將板卡與接線端子板ADAM-3968相連,聲納信號(hào)發(fā)生器通過服務(wù)器輸出的數(shù)字控制量。利用PCI-1711的12位D/A轉(zhuǎn)換功能,將數(shù)字控制量轉(zhuǎn)換為模擬信號(hào),從而實(shí)現(xiàn)任意波形輸出。
根據(jù)維修訓(xùn)練任務(wù),客戶機(jī)通過高速局域網(wǎng)與服務(wù)器進(jìn)行通信,將信號(hào)發(fā)生器的信號(hào)參數(shù)發(fā)送給服務(wù)器,服務(wù)器響應(yīng)客戶機(jī)的請(qǐng)求后,由接線端子板ADAM-3968輸出的相應(yīng)信號(hào),經(jīng)信號(hào)調(diào)理后供維修訓(xùn)練人員檢測(cè)。
2 網(wǎng)絡(luò)通信控制的設(shè)計(jì)
2.1 WinSock網(wǎng)絡(luò)通信
WinSock定義了一套在Windows開發(fā)標(biāo)準(zhǔn)下的TCP/IP網(wǎng)絡(luò)程序接口,并包含了針對(duì)Windows的擴(kuò)展庫(kù)函數(shù),使程序員能夠充分地利用消息驅(qū)動(dòng)機(jī)制和異步網(wǎng)絡(luò)事件選擇方式進(jìn)行編程。Windows Sockets進(jìn)行網(wǎng)絡(luò)通信通常運(yùn)用CAsyncSocket類和派生于CAsyncSocket的CSocket類兩種編程模式,這兩個(gè)類對(duì)WinSock API函數(shù)進(jìn)行了封裝,使用經(jīng)過封裝的WinSock類可減小編程工作量。在編程時(shí)通過對(duì)事件處理函數(shù)進(jìn)行重載,用戶可以在應(yīng)用程序中很方便地對(duì)套接字發(fā)送和接收數(shù)據(jù)等事件進(jìn)行處理。
所有Winsock的實(shí)現(xiàn)都支持Stream Sockets(流式套接字)和Datagram Sockets(數(shù)據(jù)報(bào)套接字),Stream Sockets提供有序的、無(wú)差錯(cuò)的、面向連接的、無(wú)長(zhǎng)度限制的雙向字節(jié)流傳輸、Datagram Sockets支持雙向的數(shù)據(jù)傳輸、提供不可靠的、無(wú)連接的數(shù)據(jù)報(bào)通信模式,不能保證數(shù)據(jù)準(zhǔn)確傳輸。
2.2 客戶端/服務(wù)器模式
利用Socket進(jìn)行網(wǎng)絡(luò)編程,涉及到C/S(客戶機(jī)/服務(wù)器)模式,即客戶靖向服務(wù)器發(fā)出請(qǐng)求,服務(wù)器接收到請(qǐng)求后提供相應(yīng)的服務(wù),首先服務(wù)器要啟動(dòng),并打開通信通道,偵聽客機(jī)方是否有連接請(qǐng)求,待客戶機(jī)發(fā)出請(qǐng)求數(shù)據(jù)后,根據(jù)請(qǐng)求數(shù)據(jù)提供相應(yīng)服務(wù)。其次客戶機(jī)要等待服務(wù)器的接收應(yīng)答數(shù)據(jù)才可繼續(xù)提出請(qǐng)求。最后,當(dāng)客戶機(jī)請(qǐng)求結(jié)束后方可關(guān)閉通信通道。
用戶可通過客戶機(jī)向服務(wù)器發(fā)送請(qǐng)求數(shù)據(jù),服務(wù)器處理該請(qǐng)求并將該數(shù)據(jù)信息提取后,將信息參數(shù)傳遞給信號(hào)發(fā)生器,實(shí)現(xiàn)波形信號(hào)的產(chǎn)生。
通信相關(guān)文章:通信原理
交換機(jī)相關(guān)文章:交換機(jī)工作原理
負(fù)離子發(fā)生器相關(guān)文章:負(fù)離子發(fā)生器原理
評(píng)論