国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

多通道接收設(shè)備數(shù)據(jù)并行處理方法

2021-09-30 08:58:27周謙江燕董宜豐
關(guān)鍵詞:板卡線程中斷

周謙 江燕 董宜豐

隨著計(jì)算機(jī)技術(shù)的發(fā)展,信號接收設(shè)備大量運(yùn)用于計(jì)算機(jī)進(jìn)行設(shè)備控制、數(shù)據(jù)處理和人機(jī)交互。在接收設(shè)備完成天線信號接收、模數(shù)轉(zhuǎn)換和解調(diào)處理后,人機(jī)交互和后續(xù)數(shù)據(jù)處理顯示工作由計(jì)算機(jī)應(yīng)用軟件來完成。通常設(shè)備要求體積小、功耗低,編寫的軟件需充分發(fā)揮CPU性能,以提升設(shè)備效率。本文結(jié)合多通道接收設(shè)備,討論多線程技術(shù)在利用CPU資源方面的應(yīng)用。

設(shè)備情況

多通道接收設(shè)備用于0.1~30 MHz頻率范圍內(nèi)的短波無線電信號的接收和解調(diào)。接收設(shè)備采用CPCI總線化設(shè)計(jì),可滿足固定臺、站等不同場合下的應(yīng)用。接收設(shè)備可獨(dú)立完成常規(guī)信號的解調(diào),同時將解調(diào)的基帶I/Q和語音數(shù)據(jù)通過總線傳輸?shù)缴衔粰C(jī),實(shí)現(xiàn)上層網(wǎng)控處理。

多通道接收設(shè)備由CPCI主控單元、8塊接收板卡和CPCI機(jī)箱組成,如圖1所示。

接收設(shè)備主控單元采用CPCI主板,該產(chǎn)品是一款基于第三代低壓Intel i7雙核四線程(TDP 25 W、主頻2.5 GHz)的CPCI刀片式計(jì)算機(jī)。接收板卡包括信道電路、本振電路、信號處理電路和音頻功放電路。無線電信號經(jīng)過接收板卡處理后,轉(zhuǎn)換為基帶I/Q和語音數(shù)據(jù),再由驅(qū)動以中斷的形式通知操作系統(tǒng),將數(shù)據(jù)傳至應(yīng)用層軟件。應(yīng)用軟件把收到的數(shù)據(jù)處理后顯示為波形圖、頻譜圖,同時將數(shù)據(jù)以文件形式保存至硬盤,并通過網(wǎng)絡(luò)分發(fā)到后端臺位。

問題現(xiàn)象

由底層上傳的8路音頻數(shù)據(jù)最大采樣率為153.6 kbps,采用拉格朗日插值法實(shí)現(xiàn)任意可變采樣率時,運(yùn)算量非常大,應(yīng)用軟件出現(xiàn)卡頓現(xiàn)象,任務(wù)管理器的CPU使用約為28 %,并且CPU的線程1已接近滿載,如圖2所示。將數(shù)據(jù)存儲后用cooledit軟件打開時,發(fā)現(xiàn)保存在硬盤中的文件數(shù)據(jù)出現(xiàn)不連續(xù),如圖3所示,直接影響到后續(xù)的分析處理結(jié)果。

原因分析

監(jiān)視CPU使用情況,發(fā)現(xiàn)隨著使用路數(shù)的增加,CPU線程1的使用率隨之增加,但其他三路占用率變化不大。理想狀況下,每塊接收板卡的中斷到來后,應(yīng)用軟件立即接收數(shù)據(jù)并及時進(jìn)行處理。但是當(dāng)多路接收板卡同時工作時,由于各個接收板卡的硬件是相互獨(dú)立的,不同板卡產(chǎn)生中斷的時間間隔不確定,有可能非常接近。當(dāng)應(yīng)用軟件正在處理其中一塊接收卡數(shù)據(jù)時,另一塊接收卡產(chǎn)生中斷,造成數(shù)據(jù)阻塞。大量的阻塞發(fā)生后,導(dǎo)致CPU某一路占用度過高,影響系統(tǒng)的整體性能,造成數(shù)據(jù)處理和保存的異常。

解決辦法

由于數(shù)據(jù)處理需要占用部分CPU資源,當(dāng)8路接收卡的數(shù)據(jù)處理都是在主線程中完成時,無法充分利用CPU資源,因此采用多線程技術(shù)的應(yīng)用程序可以更好地利用系統(tǒng)資源。該方法主要優(yōu)勢在于充分利用了CPU的空閑時間片,用盡可能少的時間來對用戶的要求做出響應(yīng),使得進(jìn)程的整體運(yùn)行效率得到較大提高,同時增強(qiáng)了應(yīng)用程序的靈活性。

為此,在軟件中給8路接收卡的數(shù)據(jù)處理部分創(chuàng)建獨(dú)立的線程,并將未處理的數(shù)據(jù)緩存到數(shù)據(jù)池中,在各個線程中進(jìn)行數(shù)據(jù)處理與保存到硬盤的操作。使用AfxBeginThread函數(shù)創(chuàng)建線程,在線程中使用WaitForSingleObject等待事件被觸發(fā),處理完數(shù)據(jù)后調(diào)用ResetEvent復(fù)位事件信號,退出軟件時調(diào)用AfxEndThread函數(shù)結(jié)束線程。經(jīng)過調(diào)整后的軟件運(yùn)行時的CPU使用效率得到提升,資源分配均勻,如圖4所示;未出現(xiàn)卡頓現(xiàn)象,保存在文件中的數(shù)據(jù)連續(xù),如圖5所示。

通過對比增加數(shù)據(jù)處理多線程前后的CPU使用情況,可以明顯看到效率的提高和資源利用更加均衡。應(yīng)用軟件的多線程實(shí)現(xiàn)多路接收信號的并行處理與保存時,可提升CPU的處理效率,避免中斷影響數(shù)據(jù)處理和文件保存,保證了數(shù)據(jù)的連續(xù)性和有效性。

猜你喜歡
板卡線程中斷
基于PCI9054的多總線通信板卡的研制
基于FPGA的多通道模擬量采集/輸出PCI板卡的研制
跟蹤導(dǎo)練(二)(5)
千里移防,衛(wèi)勤保障不中斷
解放軍健康(2017年5期)2017-08-01 06:27:44
淺談linux多線程協(xié)作
一種基于光纖數(shù)據(jù)傳輸?shù)亩喟蹇ㄜ浖绦驘龑懠夹g(shù)
一種通用模擬量及開關(guān)量信號采集板卡的設(shè)計(jì)
AT89C51與中斷有關(guān)的寄存器功能表解
Linux線程實(shí)現(xiàn)技術(shù)研究
FPGA內(nèi)嵌PowerPC的中斷響應(yīng)分析
海晏县| 吴江市| 思南县| 浦县| 弋阳县| 阿鲁科尔沁旗| 瑞昌市| 巴南区| 玉龙| 滁州市| 东阿县| 宜川县| 依安县| 隆回县| 扶风县| 大同县| 仪征市| 哈尔滨市| 菏泽市| 牡丹江市| 周宁县| 同江市| 赤峰市| 阿鲁科尔沁旗| 封丘县| 灌南县| 千阳县| 汕头市| 赤峰市| 四川省| 广平县| 长垣县| 宣汉县| 太谷县| 深圳市| 布尔津县| 始兴县| 文昌市| 双流县| 武隆县| 万年县|