基于GPIB總線的無線電頻譜監(jiān)測系統(tǒng)的設計
int CGPIB∷RecvData(void*Buffer,int limitLength)
{ if(!(m_bOpened)||(m_dev==NULL))
return FALSE;
ibeot(m_dev,1);
ibtmo(m_ctrl,T3s);
ibtmo(m_dev,T3s);
ibrda(m_dev,Buffer,limitLength);
//從儀器異步讀數(shù)據(jù)到Buffer
ibwait(m_dev,0x4100); //等待異步讀完成
int nLocCount=ibcntl;
if(ibsta ERR)
return FALSE;
ibwait(m_ctrl,0x0000);
if(ibsta ERR)
return -1;
return nLocCount;
}
?、蓐P閉儀器的方法主要用于將儀器置為本地測量方式,同時使儀器處于離線狀態(tài)。其關鍵代碼如下:
BOOL CGPIB∷Close( )
{ if(!(m_bOpened)||(m_dev==NULL))
return TRUE;
ibloc(m_dev); //置ESVN40為本地測量方式
ibonl(m_dev,0); //置ESVN40為離線方式
if(ibsta ERR)
return FALSE;
m_bOpened=FALSE;
ibonl(m_ctrl,0); //設置GPIB卡為OFF-Line狀態(tài)
return 1;
}
3 程序運行界面
該系統(tǒng)可以進行無線電信號的監(jiān)測,其中包括某個頻點的電平、調(diào)整深度、頻率補償和頻率偏移等。此外,系統(tǒng)還能對單頻點的頻譜進行分析,對給定的頻段進行信號掃描。在實際應用中,采用雙線程的工作機理,可以很大程度地提高數(shù)據(jù)采集的速度。系統(tǒng)對信號進行頻率掃描時的運行界面如圖4所示。在界面中,由于ESVN40只是返回掃描駐點的電平值,因此在軟件中對該掃描功能進行了擴充。在界面上只要設定一個電平閾值(用戶可以認為超過該閾值的電平,可能存在信道占用)和一個用戶認為每個信道應該占用的最大帶寬或法定的最大帶寬,則通過軟件設計對采樣的樣本進行分析后,可以對占用信道的中心頻點進行初步定位。用戶根據(jù)在測量結果表中顯示的值,可以進一步分析該中心頻點的頻譜或測量其他的調(diào)制特征值??梢?通過虛擬儀器的思想,將軟硬件結合使用,可以極大地擴充硬件的功能。
4 結束語
在系統(tǒng)的開發(fā)中,采用了C++中類的思想,使得系統(tǒng)具備了良好的擴展性,對于不同的儀器接口方式,可以最大限度地利用已開發(fā)的代碼段。同時,也增強了系統(tǒng)的可維護性,在實際應用中取得了不錯的效果。在采用了雙線程工作機制后,充分發(fā)揮了儀器的性能,比單線程的速度提高了50%。
評論