《電子技術應用》
您所在的位置:首頁 > 其他 > 業界動態 > 基于GPIB總線的無線電頻譜監測系統的設計

基于GPIB總線的無線電頻譜監測系統的設計

2009-09-24
作者:楊建軍 龔曉峰 劉佳嘉 張

  摘? 要: 在進行基于GPIB總線接口的無線電信號監測軟件的設計中,利用C++設計了GPIB接口卡,以增強系統對硬件接口的適應性和擴展性。

  關鍵詞: GPIB總線? 短波監測? 接收機? 線程

?

  隨著通信技術的發展,無線電資源作為公共資源的一種,需要國家有關部門對其進行有效的分配和監控。設計界面友好、運行穩定、實時反應迅速的監測軟件是對無線電資源進行有效配置的重要環節,也是國家和公眾信息安全保障的重要環節。本文以Rohde-Schwarz公司的ESVN40作為頻譜監測接收機來進行無線電監測軟件的設計。

1? 系統的工作原理及組成

1.1 工作原理

  系統以工控機、監測接收機及天線系統為主組建無線電監測軟件系統。監測接收機通過其上的天線接口來采集無線電信號,然后通過監測機自帶的通用接口總線(General-Purpose Interface Bus,GPIB),由安裝在工控機上的PCI插槽中的PCI-GPIB卡傳輸到工控機,最后由工控機實現對采集到的信號樣本的顯示、分析和保存等操作功能。

1.2 系統的硬件組成

  無線電信號監測系統的結構框圖如圖1所示。該系統由工控機、PCI-GPIB卡、GPIB接口電纜、ESVN40測試接收機和帶有天線選擇轉換器的9k~3 000MHz的多模天線系統組成。

?

1.3 ESVN40測試接收機的特點

  ESVN40作為功能較為強大的場強監測及掃描接收機,覆蓋了9k~2.75GHz的頻率范圍,可以完成以下的無線電監測任務:(1)單頻點的ITU(International Telecommunication Union)測量,包括電平、調制深度、頻率偏移、相位偏移及頻率補償量的測量。(2)單頻點的頻譜分析。(3)頻段的掃描。該方式支持多種掃描方式,以滿足用戶對掃描速度和返回數據的要求。在與主控機的通信方式上ESVN40采用GPIB總線方式與主控機進行控制信息和數據信息的交換,其控制較靈活。同時GPIB卡的接口方式使得主控機對遠程設備的控制變得較為容易。

1.4 GPIB接口方式的優越性

  GPIB工業總線是NI公司的產品。它在軟件方面提供了完全的兼容性,為用戶軟件的升級節約了成本,提高了開發效率。GPIB系統的特點如下。

  (1)GPIB板卡軟件的成熟性。NI公司提供了具有良好兼容性能的API函數。NI提供的每一代驅動軟件都保持與現有的NI-488應用底層的兼容性。無論開發者是使用NI-488.2的函數,還是使用LabVIEW或LabWindows/CVI(C for Virtual Instruments)等應用開發環境,NI-488.2軟件結構都能提供一種穩定的GPIB控制。同時NI-488.2軟件也在不斷地更新,以取得最優的性能。

  (2)系統的可擴充性。如果要在該軟件的基礎上增加測向的功能,利用GPIB作為一種標準總線形式,則只要加入帶有GPIB接口的儀器,便可以將該系統擴展為一個功能較完備的監測系統。

1.5 軟件系統的設計

  本系統軟件在結構上采用了模塊化的設計思想。同時為了提高系統的實時速度,充分利用了Windows軟件設計的多線程技術,采用Windows的消息環來完成多個線程之間的信息交流。系統應用了2個線程:(1)底層取數據線程,其流程如圖2所示。它用于實時地通過GPIB卡與ESVN40進行控制與數據的采集。(2)上層用戶界面線程,其流程如圖3所示。它用于用戶界面的顯示,響應用戶的測量任務,對實時數據進行顯示、分析和保存等操作。這樣,可以使2個線程并行,從而提高整個軟件系統的實時響應速度。取數據線程,采用VC++開發,這主要是考慮到C++語言易于實現對硬件的控制;而用戶界面處理的線程主要用Delphi來完成,主要是考慮到Delphi語言對界面的設計非常便利和靈活,可以大大提高開發效率。

?

  二個線程的工作機理:在用戶程序初始化的過程中,創建以上的2個線程,同時它們都處于等待的狀態。當用戶在程序界面開始各種測量任務時,由界面線程以消息的形式發給下層取數線程,各種任務號在消息參數中進行傳遞。下層取數線程在接到任務消息后,根據具體的任務,通過GPIB卡把任務翻譯為ESVN40的命令字符串傳送給接收機,同時對測量參數進行有針對性的設置,然后通過具體的命令啟動儀器來完成測量任務。當監測到儀器把相應的數據準備好,且狀態寄存器標識為有效后,通過GPIB卡讀入測量數據。讀數線程將讀到的數據進行解析,然后放入某個內存區中并以消息的形式通知用戶界面線程數據已經準備好,而數據塊的地址包含在消息參數中。用這種方式發送儀器控制命令和讀取儀器的測量結果,用戶界面線程負責完成相應的測量結果的顯示、分析及保存。2條線程的處理在時間上完全分開,從而儀器在實時信號分析的時候,幾乎是在連續地進行采樣,這樣大大提高了整個系統的實時響應性能。

2?軟件設計中擴展性問題的解決方案

  在該系統中,為了加強系統的功能,就要對系統進行擴展,但是儀器與控制計算機不一定都采用GPIB接口。為了提高底層取數線程的可擴展性,底層充分利用C++中類的思想進行設計,為此可以創建一個通信接口類ICommDevice作為通信接口。接口方法如下:

  (1)打開一個通信接口。

????(2)向該通信接口寫一個字符串。

  (3)從該通信接口讀一個字節。

  (4)從該通信接口讀一個字符串。

  (5)關閉已打開的通信接口。

  在系統中,GPIB卡作為該通信接口類的子類,其實現以上方法的關鍵代碼和具體方法的功能如下:

  ①在打開GPIB卡的方法中,主要完成對GPIB卡的初始化,同時獲得ESVN40和GPIB卡的控制句柄。

  BOOL CGPIB∷Open(int BdIndx,int pad,int sad,int tmo,int eot,int eos)

{??? if (m_bOpened==TRUE)

    return TRUE;

  m_ctrl=ibfind(″GPIB0″);//獲得GPIB卡的控制句柄

  if (m_ctrl<0)

?    return FALSE;

  ibconfig(m_ctrl,IbcAUTOPOLL,0);//禁止AutoPoll

  eot=1;

  eos=0x0C0A;

  m_dev=ibdev(BdIndx,pad,sad,tmo,1,eos);

               //獲得ESVN40的控制句柄

  if (ibsta & ERR)

  { sprintf(ErrString,″打開GPIB卡出錯!錯誤號:ibsta=

               0x%x iberr=%d\n″,ibsta,iberr);

?    this->SetError(ErrString);

?    return FALSE;

  }

  ibbna(m_dev,″GPIB0″);  //將ESVN40分配給GPIB卡

  setGPIBEos(0x0C0A);

  m_bOpened=TRUE;

  return m_bOpened;

  }

  ②GPIB類中向儀器寫字符串的方法主要用于完成從控制計算機向儀器發送控制字符串的功能,可以用異步或者同步方式進行傳送。在寫之前,要對超時進行合理的設置。通常,如果字符串較長,可以把超時設定得大一些。其關鍵代碼如下:

int CGPIB∷SendData(const char*buf,int DataLength)

{???? string tmpbuf;

  tmpbuf=buf;

  tmpbuf +=10;

  ibeot(m_dev,1);

  ibwrta(m_dev,(void*)tmpbuf.c_str( ),tmpbuf.size( ));

               //異步寫字符串到儀器

  ibwait(m_dev,0x4100);   //等待寫操作完成

  ibwait(m_dev,0x0000);   //讀出GPIB的狀態

  if(ibsta & ERR)

  {

????????????? return FALSE;

  }

  return ibcntl;

  }

  ③從儀器接收字節的方法主要用于完成從ESVN40的數據緩沖區中讀入一個字節。該方法對于讀取儀器的狀態寄存器非常有用。

int CGPIB∷ReadChar(char*ch)

{

  if(!(m_bOpened)||(m_dev==NULL))

????????????? return FALSE;

  int i=1;

  RecvData((void*)ch,i);

  return TRUE;

}

  ④從儀器讀入數據的方法主要用于完成讀入儀器的測量結果。對于ESVN40而言,預期返回數據的長度與實際返回的數據長度是有差別的。在設定預期返回數據長度時,應該盡量設置得大一些,以保證每次測量數據不被認為丟失。對于超時參數的設置,與寫操作的原則是相同的。該方法的實現代碼如下:

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);

              ?//從儀器異步讀數據到Buffer

  ibwait(m_dev,0x4100);  //等待異步讀完成

  int nLocCount=ibcntl;

  if(ibsta & ERR)

????????????? return FALSE;

  ibwait(m_ctrl,0x0000);

  if(ibsta & ERR)

????????????? return -1;

????     return nLocCount;

  }

  ⑤關閉儀器的方法主要用于將儀器置為本地測量方式,同時使儀器處于離線狀態。其關鍵代碼如下:

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狀態

  return 1;

}

3? 程序運行界面

  該系統可以進行無線電信號的監測,其中包括某個頻點的電平、調整深度、頻率補償和頻率偏移等。此外,系統還能對單頻點的頻譜進行分析,對給定的頻段進行信號掃描。在實際應用中,采用雙線程的工作機理,可以很大程度地提高數據采集的速度。系統對信號進行頻率掃描時的運行界面如圖4所示。在界面中,由于ESVN40只是返回掃描駐點的電平值,因此在軟件中對該掃描功能進行了擴充。在界面上只要設定一個電平閾值(用戶可以認為超過該閾值的電平,可能存在信道占用)和一個用戶認為每個信道應該占用的最大帶寬或法定的最大帶寬,則通過軟件設計對采樣的樣本進行分析后,可以對占用信道的中心頻點進行初步定位。用戶根據在測量結果表中顯示的值,可以進一步分析該中心頻點的頻譜或測量其他的調制特征值。可見,通過虛擬儀器的思想,將軟硬件結合使用,可以極大地擴充硬件的功能。

?

?

4? 結束語

  在系統的開發中,采用了C++中類的思想,使得系統具備了良好的擴展性,對于不同的儀器接口方式,可以最大限度地利用已開發的代碼段。同時,也增強了系統的可維護性,在實際應用中取得了不錯的效果。在采用了雙線程工作機制后,充分發揮了儀器的性能,比單線程的速度提高了50%。

?

參考文獻

1?NI Corp.NI-488.2 User Manual for Windows.1999

2?NI Corp.NI-488.2 Function Reference Manual for?Windows.1999

3?ROHDE&SCHWARZ Corp.ESVN40 Operating Manual. 1999

4?Lippman S B,Lajoie J.C++ Primer,Third Edition.Prentice Hall Inc,1998

5 國家無線電監測中心.頻譜監測手冊.1997

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
99视频超级精品| 欧美不卡视频一区| 亚洲欧洲精品一区二区三区不卡 | 亚洲一区二区伦理| 亚洲免费观看高清完整版在线观看| 久久精品欧美日韩| 久久精品水蜜桃av综合天堂| 午夜视频在线观看一区二区三区| 亚洲素人一区二区| 一区二区三区 在线观看视频| 亚洲精品美女在线| 亚洲免费电影在线观看| 亚洲精品中文字| 亚洲精品一区二区在线| 亚洲九九精品| 夜夜夜精品看看| 亚洲网站在线看| 亚洲综合国产| 欧美一乱一性一交一视频| 午夜视频精品| 久久精品午夜| 亚洲精品美女在线观看| 99ri日韩精品视频| 亚洲一级片在线看| 午夜老司机精品| 欧美综合国产精品久久丁香| 久久久福利视频| 六十路精品视频| 欧美精品一区三区| 欧美视频中文一区二区三区在线观看 | 欧美中文日韩| 久久综合伊人| 欧美激情一二三区| 国产精品黄视频| 国产一区二区三区久久久| 伊人成人网在线看| 日韩午夜在线播放| 亚洲欧美日本日韩| 亚洲国产成人在线| 一区二区三区四区精品| 午夜精品理论片| 久久综合色综合88| 欧美视频一区二区| 国产专区精品视频| 亚洲欧洲在线免费| 亚洲一区bb| 亚洲二区在线| 亚洲一区在线播放| 久久精品人人做人人综合| 免费在线欧美视频| 欧美性天天影院| 极品尤物av久久免费看| 日韩一二三区视频| 欧美在线观看视频一区二区三区 | 欧美精品在线看| 国产精品乱码妇女bbbb| 国内精品写真在线观看| 日韩视频精品在线| 欧美一区二区三区免费在线看 | 国产欧美一区二区白浆黑人| 亚洲国产电影| 亚洲一区二区三区国产| 亚洲国产视频直播| 亚洲一区二区三区高清不卡| 久久综合一区二区| 欧美午夜理伦三级在线观看| 狠狠色综合播放一区二区 | 99国产精品久久久久老师| 欧美中文字幕精品| 亚洲一区二区三区在线看| 麻豆成人在线| 国产精品日本精品| 亚洲国产一区二区三区青草影视 | 亚洲午夜在线观看视频在线| 久久久蜜桃精品| 欧美视频在线观看免费网址| 一区精品在线| 亚洲综合另类| 一区二区三区毛片| 免费成人在线视频网站| 国产精品一区在线观看| 亚洲免费高清| 亚洲人体1000| 久久先锋资源| 国产日韩精品一区二区三区| 一区二区成人精品| 日韩视频中午一区| 久久综合狠狠综合久久激情| 国产精品嫩草久久久久| 亚洲美女中文字幕| 亚洲人成7777| 久久欧美肥婆一二区| 国产精品一二一区| 99视频在线观看一区三区| 亚洲日本成人网| 久久亚洲精品一区二区| 国产欧美一区二区精品婷婷| 99在线热播精品免费| 亚洲欧洲在线观看| 蜜桃av噜噜一区| 又紧又大又爽精品一区二区| 午夜精品亚洲| 欧美一区二区三区精品电影| 国产精品久久精品日日| 日韩网站免费观看| 亚洲另类自拍| 欧美国产高清| 亚洲国产精品999| 亚洲激情一区二区三区| 久久久久久久一区| 国产一区二区中文字幕免费看| 亚洲一二三区精品| 亚洲欧美日韩成人| 国产精品美女在线观看| 中日韩美女免费视频网址在线观看 | 一区二区日韩伦理片| 欧美国产日本在线| 亚洲国产免费| 亚洲精品免费一二三区| 欧美国产亚洲精品久久久8v| 亚洲国产精品成人| 亚洲卡通欧美制服中文| 欧美xx视频| 亚洲人成在线观看| 日韩午夜精品| 欧美日韩一区二| 一区二区高清视频| 亚洲一区精品视频| 国产精品区一区二区三区| 中文日韩在线视频| 亚洲欧美中文字幕| 国产老肥熟一区二区三区| 欧美一级一区| 久久亚洲图片| 亚洲激情不卡| 一区二区精品在线观看| 国产精品黄色在线观看| 午夜精品久久久久影视| 久久久久久一区| 亚洲国产第一| 亚洲一区二区精品| 国产日韩一区二区三区在线| 久久精品免视看| 欧美激情一区三区| 在线亚洲欧美视频| 久久av在线看| 在线日本欧美| 亚洲网站在线看| 国产精品自拍一区| 亚洲高清视频一区| 欧美日韩八区| 亚洲免费中文| 免费不卡在线视频| 99精品视频一区二区三区| 欧美一区二区精美| 激情亚洲一区二区三区四区| 9久草视频在线视频精品| 国产精品久久久一区麻豆最新章节 | 一本大道久久a久久精品综合 | 最新高清无码专区| 亚洲欧美国产va在线影院| 国产亚洲美州欧州综合国| 亚洲精品国产精品国自产观看| 欧美日韩国产影院| 性色av一区二区三区| 欧美阿v一级看视频| 亚洲婷婷免费| 久久偷窥视频| 一区二区三区福利| 久久久久国产精品午夜一区| 亚洲国产欧美在线| 午夜宅男久久久| 在线免费观看成人网| 亚洲综合大片69999| 樱桃国产成人精品视频| 亚洲一区自拍| 影音欧美亚洲| 午夜久久久久久久久久一区二区| 一区二区亚洲精品国产| 亚洲欧美另类久久久精品2019| 激情av一区| 亚洲欧美视频一区| 亚洲电影免费在线| 欧美一区二区三区精品电影| 亚洲国产日韩综合一区| 欧美在线一二三区| 亚洲卡通欧美制服中文| 久久久精品日韩| 中日韩在线视频| 欧美成人免费视频| 午夜精品视频| 国产精品成人一区二区网站软件 | 久久黄色网页| 99在线精品观看| 免费观看久久久4p| 羞羞答答国产精品www一本| 欧美日韩欧美一区二区| 亚洲国产精品999| 国产精品综合不卡av| 制服丝袜激情欧洲亚洲|