999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于BB60C的IQ數(shù)據(jù)采集與存儲(chǔ)系統(tǒng)設(shè)計(jì)

2019-04-04 01:46:10江弘杰賈維敏
現(xiàn)代電子技術(shù) 2019年2期

江弘杰 賈維敏

關(guān)鍵詞: BB60C; 虛擬儀器; IQ數(shù)據(jù)采集; 存儲(chǔ)方案; 函數(shù)庫(kù); 雙緩沖技術(shù)

中圖分類號(hào): TN919?34; TP274 ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼: A ? ? ? ? ? ? ? ? ? 文章編號(hào): 1004?373X(2019)02?0147?03

Design of IQ data acquisition and storage system based on BB60C

JIANG Hongjie, JIA Weimin

(Rocket Force University of Engineering, Xian 710025, China)

Abstract: An IQ data acquisition and storage scheme is designed taking the BB60C product of Signal Hound Company as the main hardware, so as to design a virtual instrument with high performance and broad application. Data acquisition relies on the API function library of the BB60C. Data storage relies on the SQL database. The double buffering technology is adopted to conduct batch data plotting by means of the Visual Studio control. A large quantity of data can be obtained conveniently and rapidly by means of the API function library, which has a high accuracy. The call of the SQL database can ensure the storage rate of the data. Some notes collected during the long?term development process, technologies that can be adopted, and part of core codes attached can facilitate the latter deep development and utilization of the module.

Keywords: BB60C; virtual instrument; IQ data acquisition; storage scheme; function library; double buffering technology

隨著信息科學(xué)的不斷發(fā)展,國(guó)內(nèi)外不斷涌現(xiàn)出各種各樣的儀器用于數(shù)字信號(hào)處理。但是主流還是以虛擬儀器為主,廠家只是負(fù)責(zé)將硬件做得盡可能完善,具體功能交由程序員完成。而當(dāng)前在該領(lǐng)域較為領(lǐng)先的是Signal Hound公司的BB60C產(chǎn)品,該產(chǎn)品具備數(shù)據(jù)處理精度高、開(kāi)發(fā)域廣、便攜等優(yōu)點(diǎn),非常適用于工程中項(xiàng)目的開(kāi)發(fā)[1?5]。

1 ?硬件構(gòu)成及注意事項(xiàng)

鑒于精度要求,本文采用Signal Hound公司的BB60C產(chǎn)品作為硬件的主要模塊,該模塊相比于同類產(chǎn)品,主要有以下幾點(diǎn)特性:

1) 采用USB 3.0連接,既能快速獲得大量IQ數(shù)據(jù)[6],也能滿足供電要求,無(wú)需單獨(dú)供電;

2) 對(duì)應(yīng)豐富易用的應(yīng)用程序編程接口(API),便于開(kāi)發(fā)員盡快熟悉;

3) 后續(xù)還可利用該模塊進(jìn)行頻譜分析或頻譜監(jiān)測(cè)。

在搭建硬件平臺(tái)時(shí),首先在自己的電腦上安裝對(duì)應(yīng)系統(tǒng)的驅(qū)動(dòng),目前該公司提供的最新的驅(qū)動(dòng)為CDM v2.12.00 WHQL Certified。要求計(jì)算機(jī)操作系統(tǒng)為Windows 7/8/10,以保證高速大量數(shù)據(jù)(高達(dá)每秒4×107個(gè)IQ樣本)的處理速度。處理器要求至少為第三代或更新的英特爾i系列雙/四核處理器。計(jì)算機(jī)自帶USB 3.0接口。此外,若要進(jìn)行存儲(chǔ)操作,提前確保內(nèi)存空間足夠,避免發(fā)生不必要的錯(cuò)誤。

2 ?軟件設(shè)計(jì)

作為虛擬儀器,在某種程度上,軟件的設(shè)計(jì)就能夠決定整套系統(tǒng)的性能,因?yàn)橛布谏a(chǎn)定型之后,功能已經(jīng)固化,而軟件的設(shè)計(jì)才是產(chǎn)品最終的衡量標(biāo)準(zhǔn)[7?9]。

2.1 ?Visual C#開(kāi)發(fā)環(huán)境設(shè)置

鑒于C#是微軟主推的面向?qū)ο蟮恼Z(yǔ)言,且據(jù)StackOverFlow的年度調(diào)查顯示,C#語(yǔ)言的受歡迎程度僅次于Java語(yǔ)言,這里就選擇C#進(jìn)行軟件開(kāi)發(fā)。首先,為使軟件可以調(diào)用API函數(shù)庫(kù),需要C#連接Signal Hound提供的動(dòng)態(tài)鏈接庫(kù)(bb_api.dll)和API庫(kù)(bb_api.lib)。具體方法是:將提供的bb_api.dll、bb_api.lib以及ftd2xx.dll鏈接庫(kù)拷貝至項(xiàng)目工程的bin子文件夾下的Debug子文件夾中。然后需要添加API頭文件(bb_api.h),該過(guò)程需要在C#窗體應(yīng)用程序中進(jìn)行,在解決方案資源管理器中右擊項(xiàng)目工程,選擇添加現(xiàn)有項(xiàng),然后將bb_api.h選中即可。

2.2 ?數(shù)據(jù)庫(kù)存儲(chǔ)與CSV文件

對(duì)于數(shù)據(jù)存儲(chǔ)的操作方式有許多,這里主要介紹SQL,即Structured Query Language(結(jié)構(gòu)化查詢語(yǔ)言)。SQL是專門為數(shù)據(jù)庫(kù)而建立的操作命令集,因此,它的功能強(qiáng)大、簡(jiǎn)單易學(xué)且使用方便,此外,現(xiàn)在幾乎所有的數(shù)據(jù)庫(kù)均支持SQL[10?12]。下面介紹的是Visual Studio(VS)連接SQL數(shù)據(jù)庫(kù)并存儲(chǔ)數(shù)據(jù)的過(guò)程。首先,需要下載安裝數(shù)據(jù)庫(kù),然后以Windows身份驗(yàn)證方式登錄SQL Server Management Studio,在添加個(gè)人登錄名并在配置管理器中啟用TCP/IP協(xié)議后,即可通過(guò)VS軟件在數(shù)據(jù)庫(kù)中新建個(gè)人的數(shù)據(jù)庫(kù)并進(jìn)行后續(xù)的存儲(chǔ)操作。在這些動(dòng)作完成后,可以通過(guò)打開(kāi)SQL里面的表格,直觀地看到操作后表格的內(nèi)容。主要的存儲(chǔ)操作包括:將SqlConnection類實(shí)例化后用open語(yǔ)句連接自己創(chuàng)建的數(shù)據(jù)庫(kù);分別將“create table”與“alter table”語(yǔ)句,寫入SqlCommand命令字符串,以此實(shí)現(xiàn)表格的創(chuàng)建與數(shù)據(jù)的插入動(dòng)作;鑒于每次都是批量數(shù)據(jù)的插入,調(diào)用SqlBulkCopy類,一次插入一個(gè)數(shù)組;存儲(chǔ)完成后,關(guān)閉與數(shù)據(jù)庫(kù)的連接,釋放占用資源。

此外,若是存儲(chǔ)次數(shù)不高的話,完全可以通過(guò)StreamWriter語(yǔ)句,將數(shù)據(jù)保存為.CSV文件(逗號(hào)分隔值文件格式)。該文件是以純文本形式存儲(chǔ)表格數(shù)據(jù),且對(duì)數(shù)據(jù)量沒(méi)用要求,因此對(duì)于存儲(chǔ)操作或者后期查看數(shù)據(jù)都非常方便。

2.3 ?雙緩沖技術(shù)與Measurement Studio

在采集完數(shù)據(jù)后,需要將數(shù)據(jù)以表格的形式表現(xiàn)在窗體內(nèi)。最簡(jiǎn)單的操作就是將工具箱內(nèi)的PictureBox直接拉到界面上,然后在PictureBox上按比例畫坐標(biāo)軸并繪圖。由于每次繪制數(shù)據(jù)多且繪制次數(shù)頻繁,往往會(huì)造成閃爍現(xiàn)象,這時(shí)就需要用到雙緩沖技術(shù),即把圖形先繪制到緩沖區(qū),然后一次性繪制到PictureBox上。具體操作分為5步:引用BufferedGraphicsContext類并實(shí)例化;調(diào)用BufferedGraphicsContext.Allocate方法創(chuàng)建BufferedGraphics類的實(shí)例;通過(guò)設(shè)置BufferedGraphics.Graphics屬性,將圖形繪制到圖形緩沖區(qū);緩沖完成后,調(diào)用BufferedGraphics.Render方法將緩沖區(qū)的內(nèi)容繪制到PictureBox上;繪圖完成后,對(duì)BufferedGraphics的實(shí)例對(duì)象調(diào)用Dispose方法,以此釋放系統(tǒng)資源[13?15]。

上述方法思路簡(jiǎn)單,但是繪圖操作較為復(fù)雜,在實(shí)踐過(guò)程中,還可嘗試使用NI公司專門開(kāi)發(fā)的Measurement Studio編程平臺(tái)。該工具可以通過(guò)插入的方式內(nèi)嵌到VS軟件中,然后通過(guò)在工具箱內(nèi)以添加選項(xiàng)卡的方式,將圖表插入窗體,具體的使用方法可通過(guò)例程學(xué)習(xí)熟悉,這里就不再多做介紹。

2.4 ?多線程數(shù)據(jù)采集與存儲(chǔ)軟件設(shè)計(jì)

IQ數(shù)據(jù)的實(shí)時(shí)高速獲取與存儲(chǔ),一方面要求系統(tǒng)不停獲取由API函數(shù)輸出的數(shù)據(jù);另一方面又要盡快將數(shù)據(jù)以圖像的形式展現(xiàn)在界面上,或者將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中,這些動(dòng)作必須同時(shí)進(jìn)行,否則會(huì)造成數(shù)據(jù)溢出丟失。為此,利用Thread語(yǔ)句定義多個(gè)線程,各線程相互之間互相配合,流程見(jiàn)圖1。

圖1中,主線程IQ_data_process用于獲取IQ數(shù)據(jù),IQ_paint_process線程用于每次獲取數(shù)據(jù)后立刻將其繪制到界面上,IQ_save_process線程用于存儲(chǔ)模式下,數(shù)據(jù)及時(shí)存儲(chǔ)于數(shù)據(jù)庫(kù)中,鑒于繪圖線程與存儲(chǔ)線程占用過(guò)多內(nèi)存,建議兩者不要同時(shí)進(jìn)行。

2.5 ?軟件實(shí)現(xiàn)

鑒于篇幅所限,這里給出程序中的部分核心代碼。

1) 調(diào)用bb_api.h頭文件,獲取IQ數(shù)據(jù)

status = bb_api.bbGetIQUnpacked(id, iqData, iqCount, triggers, triggerCount, purge, ref dataRemaining, ref sampleLoss, ref sec, ref nano); ? ? ? ? ? ? ? ? ? ? ? ? //其中iqData為所需的IQ數(shù)組

2) 數(shù)據(jù)庫(kù)建表完成后,批量存儲(chǔ)數(shù)據(jù)

using(SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(group[0], SqlBulkCopyOptions.UseInternalTransaction))

//group[0]為連接SQL字符串

{ ? ? ?try ? ? ?{

sqlBulkCopy.DestinationTableName = group[1];

//group[1]為表名

sqlBulkCopy.BatchSize = batchSize; ? //一次事務(wù)插入的行數(shù)

for (int i = 0; i < sourceDataTable.Columns.Count; i++)

{

sqlBulkCopy.ColumnMappings.Add(sourceDataTable.Columns[i].ColumnName, sourceDataTable.Columns[i].ColumnName);

//將數(shù)據(jù)先寫入sqlBulkCopy中

} ? ? ? ? ?sqlBulkCopy.WriteToServer(sourceDataTable);

//將數(shù)據(jù)寫入SQL服務(wù)器

} ? ? ? catch (Exception ex)

{

MessageBox.Show(ex.ToString()); ? ? ? ? ? //異常拋出

} ? ? }

3) 雙緩沖技術(shù)繪圖

BufferedGraphicsContext current = BufferedGraphicsManager.Current; ? ? ? ?//獲得對(duì) BufferedGraphicsContext 類的實(shí)例的引用

BufferedGraphics bg;

bg = current.Allocate(pictureBox1.CreateGraphics(), pictureBox1.DisplayRectangle); ? ? ? ? //創(chuàng)建 BufferedGraphics 類的實(shí)例

Graphics g = bg.Graphics; ? ? ? ? //將圖形繪制到圖形緩沖區(qū)

PaintImage(g); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //繪圖

bg.Render(pictureBox1.CreateGraphics());

//完成圖形緩沖區(qū)中的繪制后,將緩沖區(qū)的內(nèi)容呈現(xiàn)到

指定的繪圖圖面pictureBox1

bg.Dispose(); ? ?//完成呈現(xiàn)圖形之后,對(duì)實(shí)例釋放系統(tǒng)資源

3 ?性能評(píng)估

為了驗(yàn)證該系統(tǒng)的性能,對(duì)數(shù)據(jù)采集、數(shù)據(jù)庫(kù)存儲(chǔ)以及畫圖顯示功能進(jìn)行了測(cè)試和分析。在測(cè)試中,使用自行設(shè)計(jì)的信號(hào)源(簡(jiǎn)單的鋸齒波信號(hào)),模擬硬件接收到的信號(hào)。將該信號(hào)分別接入示波器與設(shè)計(jì)的軟件后,發(fā)現(xiàn)軟件顯示的圖像與示波器顯示的圖像并無(wú)差異,證明數(shù)據(jù)采集以及信號(hào)顯示并無(wú)問(wèn)題。而后,在一段時(shí)間內(nèi)(30 s內(nèi)),打開(kāi)數(shù)據(jù)庫(kù)存儲(chǔ)線程,同時(shí)對(duì)示波器進(jìn)行錄像,數(shù)據(jù)庫(kù)存儲(chǔ)完成后,調(diào)用存儲(chǔ)的數(shù)據(jù)進(jìn)行畫圖,并與錄像進(jìn)行對(duì)比,結(jié)果仍一樣。由此,可以判定該系統(tǒng)在IQ數(shù)據(jù)采集與存儲(chǔ)方面可以正常工作。但是由于缺少大存儲(chǔ)介質(zhì),無(wú)法驗(yàn)證對(duì)于長(zhǎng)時(shí)間的數(shù)據(jù)存儲(chǔ)是否會(huì)發(fā)生故障。

4 ?結(jié) ?語(yǔ)

本文介紹的數(shù)據(jù)采集與存儲(chǔ)方案主要是基于BB60C硬件的軟件開(kāi)發(fā)方案,在達(dá)到硬件每秒處理產(chǎn)生4×107個(gè)IQ樣本的基本要求的基礎(chǔ)上,完成數(shù)據(jù)的顯示與存儲(chǔ)功能,后期經(jīng)FFT變換,即可用于頻譜分析。文中對(duì)于開(kāi)發(fā)過(guò)程進(jìn)行詳細(xì)的描述,并給出了核心代碼,便于后續(xù)開(kāi)發(fā)。

參考文獻(xiàn)

[1] 楊宇宸,向海生.一種高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].雷達(dá)科學(xué)與技術(shù),2016,14(5):526?530.

YANG Yuchen, XIANG Haisheng. Design and implementation of high speed data acquisition system [J]. Radar science and technology, 2016, 14(5): 526?530.

[2] 連杰,田小超.基于STM32的高精度、大容量、多通道同步數(shù)據(jù)采集存儲(chǔ)系統(tǒng)的設(shè)計(jì)[J].電子制作,2015(7):28.

LIAN Jie, TIAN Xiaochao. Design of high precision, large capacity and multi?channel synchronous data acquisition and storage system based on STM32 [J]. Practical electronics, 2015(7): 28.

[3] 韋偉.基于FPGA的高速數(shù)據(jù)采集與存儲(chǔ)設(shè)備的實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2014.

WEI Wei. Implementation of high speed data acquisition and storage equipment based on FPGA [D]. Xian: Xidian University, 2014.

[4] 王楊云逗,李斌,亓亮.基于單片機(jī)的高精度海量數(shù)據(jù)采集與存儲(chǔ)系統(tǒng)[J].現(xiàn)代電子技術(shù),2013,36(8):128?129.

WANG Yangyundou, LI Bin, QI Liang. High accuracy mass data acquisition and storage system based on single chip microcomputer [J]. Modern electronics technique, 2013, 36(8): 128?129.

[5] 汪志剛.大容量數(shù)據(jù)采集存儲(chǔ)系統(tǒng)的研究與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2010.

WANG Zhigang. Research and implementation of large capacity data acquisition and storage system [D]. Chengdu: University of Electronic Science and Technology of China, 2010.

[6] National Instruments. What is I/Q data? [EB/OL]. [2018?09?12]. http://www.ni.com/tutorial/4805/en/.

[7] 李欣,謝宏.虛擬儀器技術(shù)在通信原理教學(xué)中的應(yīng)用[J].實(shí)驗(yàn)室研究與探索,2014,33(5):155?159.

LI Xin, XIE Hong. Application of virtual instrument technology in communication principle teaching [J]. Research and exploration in laboratory, 2014, 33(5): 155?159.

[8] 王超,李可,杜奔新.虛擬儀器技術(shù)在實(shí)驗(yàn)室的應(yīng)用研究[J].實(shí)驗(yàn)技術(shù)與管理,2013,30(12):105?107.

WANG Chao, LI Ke, DU Benxin. Research on application of virtual instrument technology in laboratories [J]. Experimental technology and management, 2013, 30(12): 105?107.

[9] 伍星華,王旭.國(guó)內(nèi)虛擬儀器技術(shù)的應(yīng)用研究現(xiàn)狀及展望[J].現(xiàn)代科學(xué)儀器,2011(4):112?116.

WU Xinghua, WANG Xu. Present situation and prospect of application research on domestic virtual instrument technology [J]. Modern scientific instruments, 2011(4): 112?116.

[10] 王巖.基于SQL數(shù)據(jù)庫(kù)的性能優(yōu)化探討[J].通訊世界,2015(22):221.

WANG Yan. Research on performance optimization based on SQL database [J]. Telecom world, 2015(22): 221.

[11] 余鵬.基于SQL數(shù)據(jù)庫(kù)的性能優(yōu)化研究[J].中國(guó)科技信息,2014(2):76?77.

YU Peng. Research on performance optimization based on SQL database [J]. Chinese science and technology information, 2014(2): 76?77.

[12] 肖念.淺析SQL數(shù)據(jù)庫(kù)的設(shè)計(jì)[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2013,16(6):201?202.

XIAO Nian. Analysis of the design of SQL database [J]. Computer CD software and applications, 2013, 16(6): 201?202.

[13] 江建國(guó),溫少營(yíng),張瑞楠.基于雙緩沖技術(shù)的GDI+無(wú)閃爍繪圖[J].計(jì)算機(jī)應(yīng)用,2012,32(z2):136?139.

JIANG Jianguo, WEN Shaoying, ZHANG Ruinan. Flicker?free GDI+ drawing based on double buffering [J]. Journal of computer applications, 2012, 32(S2): 136?139.

[14] 周建伙,顧申申.基于Visual C#和Measurement Studio混合編程的數(shù)據(jù)采集分析和繪圖軟件[J].工業(yè)控制計(jì)算機(jī),2015,28(9):24?25.

ZHOU Jianhuo, GU Shenshen. Data collection and graphing software based on Visual C# and Measurement Studio [J]. Industrial control computer, 2015, 28(9): 24?25.

[15] 張兵,楊岳.基于Visual C#和Measurement Studio融合的虛擬示波器設(shè)計(jì)開(kāi)發(fā)[J].企業(yè)技術(shù)開(kāi)發(fā),2010,29(1):6?7.

ZHANG Bing, YANG Yue. The virtual oscilloscope development based on the integration of Visual C# and Measurement Studio [J]. Technological development of enterprise, 2010, 29(1): 6?7.

主站蜘蛛池模板: 手机在线免费毛片| 日本一本在线视频| 香蕉色综合| 中文字幕啪啪| 欧美日本在线观看| 亚洲一道AV无码午夜福利| 婷婷开心中文字幕| 天天综合网色| 六月婷婷综合| 在线播放真实国产乱子伦| 老色鬼久久亚洲AV综合| 一级爆乳无码av| AV在线天堂进入| 九色视频一区| 夜精品a一区二区三区| 亚洲最新网址| 国产欧美日韩精品第二区| 香蕉久人久人青草青草| 欧美三级自拍| 久久综合五月婷婷| 亚洲国产欧美国产综合久久| 精品国产毛片| 无码中文AⅤ在线观看| 沈阳少妇高潮在线| 日韩午夜伦| 久久香蕉国产线看精品| 亚洲精品日产AⅤ| 久久视精品| 9999在线视频| 高清码无在线看| 日本高清免费不卡视频| a毛片在线免费观看| 天天躁狠狠躁| 国产一区二区三区在线精品专区| 日本一本在线视频| 中文字幕在线观看日本| 国产人妖视频一区在线观看| 青青草91视频| 凹凸精品免费精品视频| 久久不卡国产精品无码| 91福利国产成人精品导航| 国产在线拍偷自揄观看视频网站| 午夜毛片免费看| 黄色不卡视频| 99在线观看免费视频| 久久久久88色偷偷| 找国产毛片看| 91蜜芽尤物福利在线观看| 亚洲男人的天堂网| 久久永久精品免费视频| 亚洲成a人片| 亚洲美女操| 精品国产福利在线| 华人在线亚洲欧美精品| 午夜精品久久久久久久无码软件| 麻豆精品在线播放| 国产无套粉嫩白浆| 丁香五月婷婷激情基地| 国产欧美日韩精品第二区| 97影院午夜在线观看视频| 在线人成精品免费视频| 国产日本视频91| 四虎永久在线精品影院| 国产成人精品综合| 亚洲人成网7777777国产| 国产欧美视频综合二区| 国产精品原创不卡在线| 九九久久精品国产av片囯产区| 国产素人在线| 欧美亚洲日韩不卡在线在线观看| 91无码人妻精品一区| 在线观看无码av五月花| 美女被操黄色视频网站| 91年精品国产福利线观看久久 | 99爱在线| 日韩a在线观看免费观看| 红杏AV在线无码| 爱做久久久久久| 国产一区在线视频观看| 亚洲欧洲日产国码无码av喷潮| 国产成人h在线观看网站站| 四虎永久在线视频|