基于LabVIEW與USB接口的實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:本文設(shè)計(jì)了一種基于LabVIEW與STC12C5410AD單片機(jī)的數(shù)據(jù)采集系統(tǒng)。單片機(jī)采集到的數(shù)據(jù)通過CH341T芯片的USB轉(zhuǎn)串口的功能,實(shí)現(xiàn)了只用一條USB線就可以把數(shù)據(jù)傳輸?shù)絃abVIEW中進(jìn)行顯示和分析。從下位機(jī)和上位機(jī)兩個(gè)部分闡述了系統(tǒng)的設(shè)計(jì)。實(shí)驗(yàn)證明,系統(tǒng)能實(shí)時(shí)精確的再現(xiàn)單片機(jī)采集的低頻信號(hào)。
關(guān)鍵詞:LabVlEW;數(shù)據(jù)采集;STC單片機(jī);USB
1 數(shù)據(jù)采集系統(tǒng)
工程上使用具有PCI、PXI、USB、并口以及串口的計(jì)算機(jī)來獲取測試數(shù)據(jù),稱為基于PC的數(shù)據(jù)采集系統(tǒng)。其中一種是通過插入式的數(shù)據(jù)采集卡直接獲取數(shù)據(jù)傳輸給計(jì)算機(jī)。鑒于數(shù)據(jù)采集卡的價(jià)格昂貴,且安裝不方便等缺點(diǎn),本文提出使用STC單片機(jī)作為前端的數(shù)據(jù)采集系統(tǒng),利用CH341T芯片的USB總線轉(zhuǎn)異步串口的功能,將采集數(shù)據(jù)只通過一條USB線傳輸給PC機(jī),最后在LabVIEW平臺(tái)下進(jìn)行數(shù)據(jù)的顯示、分析、處理。
1.1 系統(tǒng)組成與工作原理
本系統(tǒng)總體結(jié)構(gòu)框圖如圖1所示。主要包括有STC12C5410AD單片機(jī)和CH341T轉(zhuǎn)換芯片組成的數(shù)據(jù)采集、轉(zhuǎn)換、傳輸部分,以及基于PC機(jī)的LabVlEW軟件構(gòu)成的數(shù)據(jù)處理部分。首先,被測電壓模擬信號(hào)通過電平變換電路進(jìn)入STC單片機(jī)的AD轉(zhuǎn)換通道,待轉(zhuǎn)換完成后利用CH341T芯片的USB轉(zhuǎn)串口的功能,通過USB接口傳輸給PC機(jī),最后由LabVIEW軟件分析處理。
2 下位機(jī)系統(tǒng)設(shè)計(jì)
2.1 硬件設(shè)計(jì)部分
系統(tǒng)硬件原理圖如圖2所示。系統(tǒng)采用的MCU為STC12C5410AD,采用的USB接口芯片為CH- 341T,利用該芯片的USB轉(zhuǎn)串口的功能將數(shù)據(jù)傳輸?shù)缴衔粰C(jī),從而構(gòu)成數(shù)據(jù)采集系統(tǒng)。
2.1.1 STC12C5410AD單片機(jī)
STC12C5410AD系列單片機(jī)是單時(shí)鐘/機(jī)器周期(1T)的兼容8051內(nèi)核單片機(jī),是高速/低功耗的新一代增強(qiáng)型8051單片機(jī),內(nèi)部集成MAX810專用復(fù)位電路。10KBFLASH程序存儲(chǔ)器,512字節(jié)SRAM,有8路10位高速A/D轉(zhuǎn)換器,速度可達(dá)100KHz。實(shí)際工作頻率可達(dá)48MHz。在應(yīng)用時(shí),需根據(jù)實(shí)際情況設(shè)定晶振頻率,本系統(tǒng)采用11.0592MHz的晶振。本例中采用P1.0作為A/D轉(zhuǎn)換通道。由于各A/D轉(zhuǎn)換通道的輸入電壓范圍為0~5V,對(duì)于雙極性信號(hào)來說,直接輸入會(huì)被削掉負(fù)半波。為了解決上述問題,采用了高速低噪聲雙運(yùn)算放大器NE5532,根據(jù)運(yùn)放電路的虛短、虛斷原則,其輸出OUT=2.5-IN??梢詫?2.5v~2.5V的電平轉(zhuǎn)換到0~5v,這樣滿足了輸入信號(hào)的雙極性要求。
2.1.2 CH341T芯片
隨著計(jì)算機(jī)通訊技術(shù)的不斷發(fā)展,串口的通訊速度越來越不能滿足現(xiàn)在的通信要求。因此越來越多的計(jì)算機(jī),尤其是筆記本電腦都不再保留串行接口,取而代之的是方便、高速、標(biāo)準(zhǔn)的USB接口。然而對(duì)于需要用串口通信的設(shè)備來說,是個(gè)麻煩的問題。為了解決這個(gè)問題,本系統(tǒng)采用CH341T芯片將單片機(jī)通過USB接口直接連接到PC機(jī)上,方便了沒有串口的上位機(jī)與下位機(jī)的通信,解決了上位機(jī)沒有串行接口的問題。CH341T芯片的特點(diǎn)如下:
(1)仿真標(biāo)準(zhǔn)串口,用于升級(jí)原串口外圍設(shè)備,或者通過USB增加額外串口。
(2)計(jì)算機(jī)端Windows操作系統(tǒng)下的串口應(yīng)用程序完全兼容,無需修改。
(3)硬件全雙工串口,內(nèi)置收發(fā)緩沖區(qū),支持通訊波特率50b/s~2Mb/s。
(4)支持5、6、7或者8個(gè)數(shù)據(jù)位,支持奇校驗(yàn)、偶校驗(yàn)、空白、標(biāo)志以及無校驗(yàn)。
2.2 軟件設(shè)計(jì)部分
本系統(tǒng)將STCl2C5410AD的P1.0口作為A/D轉(zhuǎn)換的通道,要使用A/D轉(zhuǎn)換功能就必須進(jìn)行相應(yīng)的寄存器設(shè)置。STC單片機(jī)的寄存器見表1所示。
1)P1M0,P1M1:P1口工作模式設(shè)置PlM0=0x01,P1M1=0x01。將P1口設(shè)置為開漏模式。
2)ADC CONTR:A/D轉(zhuǎn)換控制器
ADC_POWER:ADC電源控制位。
ADC_ POWER=0:關(guān)閉ADC電源。ADC POWER=1:打開A/D轉(zhuǎn)換器電源,初次打開內(nèi)部A/D轉(zhuǎn)換模擬電源,需適當(dāng)延時(shí),等內(nèi)部模擬電源穩(wěn)定后,再啟動(dòng)A/D轉(zhuǎn)換。
ADC_START:模數(shù)轉(zhuǎn)換器(ADC)轉(zhuǎn)換啟動(dòng)控制位,設(shè)置為1時(shí),開始轉(zhuǎn)換,轉(zhuǎn)換結(jié)束后為0。
SPEED1,SPEED0:模數(shù)轉(zhuǎn)換器轉(zhuǎn)換速度控制位。
ADC_FLAG:模數(shù)轉(zhuǎn)換器轉(zhuǎn)換結(jié)束標(biāo)志位,當(dāng)A/D轉(zhuǎn)換完成后,ADC_FLAG=1,一定要軟件清0。
CHS2/CHS1/CHS0:模擬輸入通道選擇如表2所示。
下位機(jī)程序流程圖如圖3所示。下位機(jī)的程序主要包括三個(gè)部分:串口初始化子程序、A/D轉(zhuǎn)換初始化子程序、串口發(fā)送子程序。其中A/D轉(zhuǎn)換初始化子程序主要是設(shè)置ADC CONTR、P1M0、P1M1等寄存器。
3 上位機(jī)系統(tǒng)設(shè)計(jì)
3.1 CH341T驅(qū)動(dòng)程序
在與上位機(jī)通信之前,必須安裝CH341T的驅(qū)動(dòng)程序,這可從公司網(wǎng)站下載。待其驅(qū)動(dòng)程序安裝完成后,會(huì)自動(dòng)在計(jì)算機(jī)設(shè)備管理器的端口欄虛擬出一個(gè)串口,這個(gè)虛擬串口與計(jì)算機(jī)原有的COM口對(duì)應(yīng)用程序來說是一樣的。通過選擇這個(gè)虛擬串口,就可與下位機(jī)通信了。
3.2 LabVIEW程序設(shè)計(jì)
VISA(Virtual Instrument Software Architecture)是美國國家儀器公司開發(fā)的一種用來與各種儀器總線進(jìn)行通信的高級(jí)應(yīng)用編程接口。VISA庫駐留于計(jì)算機(jī)系統(tǒng)中,完成計(jì)算機(jī)與儀器之間軟件的連接,用以實(shí)現(xiàn)對(duì)儀器的程序控制,其實(shí)質(zhì)是用于虛擬儀器系統(tǒng)的標(biāo)準(zhǔn)的API,VISA本身不具備編程能力,它是一個(gè)高層API,通過調(diào)用底層驅(qū)動(dòng)程序來實(shí)現(xiàn)對(duì)儀器的編程。
本設(shè)計(jì)采用了LabviEW的VISA的串行通訊子VI來開發(fā)串行通信軟件。其中包括VISA(Configure Serial Port.Vi:將指定的串口按特定設(shè)置初始化。VISA Write.Vi:將寫入緩沖區(qū)的數(shù)據(jù)寫入指定的設(shè)備或接口中。VISA Read.vi:從指定的設(shè)備或接口中讀取指定數(shù)量的字節(jié),并將數(shù)據(jù)返回至讀取緩沖區(qū)。VISA Close.Vi:將打開的串口關(guān)閉。首先利用VISA Conf- igure Serial Port.vi進(jìn)行串口初始化,其中設(shè)置讀取和寫入操作的超時(shí)為10s,波特率為9600,8位數(shù)據(jù)位,無奇偶校驗(yàn)位,1為停止位,無流控制。然后打開串口,將讀取緩沖區(qū)的數(shù)據(jù)傳輸?shù)讲ㄐ螆D表進(jìn)行實(shí)時(shí)顯示,同時(shí)利用移位寄存器和連接字符串控件將采集的數(shù)據(jù)存儲(chǔ)在接收數(shù)據(jù)區(qū)中,當(dāng)采集的數(shù)據(jù)達(dá)到950個(gè)時(shí),對(duì)其進(jìn)行幅值譜變換并顯示。同時(shí)清空接收數(shù)據(jù)區(qū),為下一次采集做準(zhǔn)備。LabVIEW程序框圖如圖4所示。
4 系統(tǒng)測試與結(jié)果
為了測試系統(tǒng)的可靠性,將系統(tǒng)的P1.0口和電源地與DG 2041A數(shù)字信號(hào)發(fā)生器連接進(jìn)行測試。信號(hào)發(fā)生器產(chǎn)生頻率為100Hz,峰峰值為3V,其中高電平1.5V,低電平-1.5V的正弦波信號(hào),通過電平變換電路得到低電平為1v、高電平為4V的正弦波。將A/D轉(zhuǎn)換后的數(shù)據(jù)傳到Lab- VIEW中,在顯示之前要減去2.5V電壓的A/D轉(zhuǎn)換值128,同時(shí)還要設(shè)置波形圖表Y軸的縮放比例為0.02,這樣就可以正確顯示了。通過設(shè)計(jì)的系統(tǒng)進(jìn)行采集在LabVIEW軟件上顯示的結(jié)果如圖5所示。
5 結(jié)束語
本文將STC單片機(jī)作為數(shù)據(jù)采集的前端,經(jīng)過CH341T芯片的轉(zhuǎn)換,利用USB接口與LabVIEW完成通訊。同時(shí)利用LabVIEW強(qiáng)大的信號(hào)分析處理能力,對(duì)信號(hào)進(jìn)行了實(shí)時(shí)顯示,并對(duì)信號(hào)進(jìn)行了頻譜分析。經(jīng)過對(duì)系統(tǒng)的調(diào)試和完善,實(shí)驗(yàn)證明,采集的信號(hào)可以滿足要求,系統(tǒng)運(yùn)行良好。