新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于LabVIEW與凌陽SPCE061A實現(xiàn)串口數(shù)據(jù)采集

基于LabVIEW與凌陽SPCE061A實現(xiàn)串口數(shù)據(jù)采集

作者: 時間:2012-01-31 來源:網(wǎng)絡(luò) 收藏

引言

是一個劃時代的圖形化編程系統(tǒng),應(yīng)用于與控制、信號分析等方面,它為不熟悉文本語言編程的專業(yè)科技工作者在測控領(lǐng)域建立計算機(jī)儀器系統(tǒng)——,提供了一個便捷、輕松的圖形化設(shè)計環(huán)境。由于其靈活、簡單易用、開發(fā)效率高等特點(diǎn),正逐漸成為科技工作者進(jìn)行儀器應(yīng)用與開發(fā)的得力工具。是開發(fā)過程中一個重要的環(huán)節(jié),NI公司提供了各種不同類型的基于卡,但是其價格昂貴,對于小型企業(yè)、實驗教學(xué)等方面仍存在著不可避免的資金問題。而市面上銷售的第三方開發(fā)的數(shù)據(jù)采集卡,由于不具備對的直接支持,需要用戶開發(fā)其驅(qū)動程序,使用也不方便。如果采用以凌陽16位單片機(jī)作為前端數(shù)據(jù)采集,通過進(jìn)行與LabVIEW的數(shù)據(jù)通訊,就可實現(xiàn)低成本、靈活方便、接口簡單的數(shù)據(jù)采集系統(tǒng)。這對于許多信號頻率不是太高的場合,此方案無疑非常便利。本文所介紹的就是這樣一種利用LabVIEW 對的數(shù)據(jù)進(jìn)行分析處理,并通過實現(xiàn)二者之間的數(shù)據(jù)交換、經(jīng)濟(jì)實用的數(shù)據(jù)采集及分析系統(tǒng)。

本系統(tǒng)主要包含兩部分的設(shè)計:LabVIEW部分設(shè)計和數(shù)據(jù)采集與通訊部分設(shè)計。

1 LabVIEW部分設(shè)計

1.1 VISA簡介

LabVIEW提供了功能強(qiáng)大的VISA庫。VISA(Virtual Instrument Software Architecture——軟件規(guī)范,是用于儀器編程的標(biāo)準(zhǔn)I/O函數(shù)庫及其相關(guān)規(guī)范的總稱。VISA庫駐留于計算機(jī)系統(tǒng)中,完成計算機(jī)與儀器之間的連接,用以實現(xiàn)對儀器的程序控制,其實質(zhì)是用于系統(tǒng)的標(biāo)準(zhǔn)的API。VISA本身不具備編程能力,它是一個高層API,通過調(diào)用底層驅(qū)動程序來實現(xiàn)對儀器的編程,其層次如圖1(a)所示。VISA是采用VPP標(biāo)準(zhǔn)的I/O接口軟件,其軟件結(jié)構(gòu)應(yīng)包含三部分,如圖1(b)所示。

(a)VISA內(nèi)部機(jī)制

(b)虛擬儀器的軟件體系結(jié)構(gòu)


圖1

與其它現(xiàn)存的I/O接口軟件相比,VISA的I/O控制功能具有如下幾個特點(diǎn):適用于各種儀器類型如VXI儀器、GPIB儀器、RS-232 串行儀器、消息基器件、寄存器器件、存儲器器件等儀器);適用于各種硬件接口類型;適用于單、多處理器結(jié)構(gòu)或分布式網(wǎng)絡(luò)結(jié)構(gòu);適用于多種網(wǎng)絡(luò)機(jī)制。

VISA的I/O的軟件庫的源程序是唯一的,其與操作系統(tǒng)及編程語言無關(guān),只是提供了標(biāo)準(zhǔn)形式的API文件作為系統(tǒng)的輸出。

1.2 VISA庫中的串口函數(shù)

本文用到的主要的串口通訊函數(shù)調(diào)用路徑為:Functions→Instrument I/O→VISA→VISA Advanced→Interface→Specific→Serial中。

1) VISA Configure Serial Port節(jié)點(diǎn)(如圖2所示)

基于LabVIEW與凌陽SPCE061A實現(xiàn)串口數(shù)據(jù)采集

圖2 VISA Configure Serial Port.vi圖標(biāo)及其端口

該節(jié)點(diǎn)主要用于串口的初始化。主要參數(shù)意義如下:

VISA resource name:設(shè)置串口號。

baud rate:設(shè)置波特率,默認(rèn)值為9600。

data bits:設(shè)置數(shù)據(jù)位。該位應(yīng)在5~8之間,默認(rèn)值為8。

parity:奇偶校驗位,默認(rèn)值為無校驗、偶校驗等。

stop bits:設(shè)置停止位,可以為1、1.5、2。

flow control:用于設(shè)置握手信號類型。

2) VISA Read節(jié)點(diǎn)(如圖3所示)

圖3 VISA Read.vi 圖標(biāo)及其端口

該節(jié)點(diǎn)為串口讀子VI,為本文中的主要節(jié)點(diǎn),將串口中的數(shù)據(jù)讀出,然后利用LabVIEW的強(qiáng)大數(shù)據(jù)處理功能對其進(jìn)行分析處理。主要參數(shù)意義如下:

VISA resource name:設(shè)置串口號。

byte count:設(shè)置讀取字節(jié)數(shù)。

read buffer:從串口讀取的字符。

由于LabVIEW的串行通訊子VI只允許對字符串的讀寫,因此本文中在進(jìn)行數(shù)據(jù)處理時,必須要實現(xiàn)字符串與數(shù)字之間的正確轉(zhuǎn)換。此外,若要讀入當(dāng)前串口中的所有字符,則要先執(zhí)行“VISA Bytes at Serial Port”子VI,用以確定將要讀入的確切的字節(jié)數(shù),然后將其輸出作為VISA Read節(jié)點(diǎn)的輸入即可。

2 SPCE061A數(shù)據(jù)采集與串口通訊部分設(shè)計

2.1硬件部分

SPCE061A內(nèi)置8通道10位模-數(shù)轉(zhuǎn)換器,其中7個通道用于將模擬量信號 (例如電壓信號) 轉(zhuǎn)換為數(shù)字量信號, 可以直接通過引線(IOA[0~6])輸入。另外一個通道只用于語音輸入,即通過內(nèi)置自動增益控制放大器的麥克風(fēng)通道(MIC_IN)輸入。實際上可以把模數(shù)轉(zhuǎn)換器(ADC,Analog to Digital Converter)看作是一個實現(xiàn)模/數(shù)信號轉(zhuǎn)換的編碼器。在ADC內(nèi),由數(shù)模轉(zhuǎn)換器DAC0和逐次逼近寄存器SAR組成逐次逼近式模-數(shù)轉(zhuǎn)換器。另外,SPCE061A內(nèi)置UART模塊,UART模塊提供了一個全雙工標(biāo)準(zhǔn)接口,用于完成SPCE061A與外設(shè)之間的串行通訊。借助于IOB口的特殊功能和UART IRQ中斷,可以同時完成UART接口的接收和發(fā)送數(shù)據(jù)的過程。UART模塊的接收管腳Rx和Tx分別與IOB7和IOB10共用。

本電路采用RS-232串行接口標(biāo)準(zhǔn),在電氣特性上,RS-232采用負(fù)邏輯,要求高低兩信號間有較大的幅度,標(biāo)準(zhǔn)為:邏輯“1”在 -5V~-15V之間,邏輯“0”在+5V~+15V之間,通常采用-1V左右為邏輯1,+10V左右為邏輯0。本電路采用符合RS-232標(biāo)準(zhǔn)的驅(qū)動芯片MAX232EPE實現(xiàn)此轉(zhuǎn)換。由于SPCE061A的信號輸入輸出為TTL電平,邏輯1為3.3V左右,邏輯0為0.4V左右,而MAX232EPE 要求+5V供電,因此,在 MAX232EPE和SPCE061A之間加了電平匹配電路。

整個電路接口簡單,可靠性高。硬件部分原理圖如圖5所示

圖5 硬件原理圖

2.2軟件部分

LabVIEW軟件與串口實現(xiàn)數(shù)據(jù)通訊的程序圖,如圖6所示,由于SPCE061A發(fā)送給Labview的是字符串?dāng)?shù)據(jù),所以先把該字符串轉(zhuǎn)換為字符數(shù)組,然后通過一個數(shù)組索引指定數(shù)組的第一個字符顯示并形成波形。

圖6. LabVIEW串口通訊程序圖

單片機(jī)SPCE061A利用通用串行接口UART實現(xiàn)串口通訊部分程序:

//************************主程序*****************************************//

L_ResendData:

L_Check_TxRDY:

R2 = [P_UART_Command2];

R2 = 0x0040; //檢測輸出是否READY

JZ L_Check_RxRDY; //發(fā)送8位十六進(jìn)制數(shù)cc

R1 = [recFlag];

CMP R1,0x0000; //是否接收過數(shù)據(jù)

JZ L_Check_RxRDY;

[P_UART_Data] = R4; //發(fā)送數(shù)據(jù)

R1 = 0x0000; [recFlag] = R1;

L_Check_RxRDY:

R2 = [P_UART_Command2]; //檢測是否有數(shù)據(jù)接收

R2 = 0x0080;

JZ L_Check_RxRDY;

R4 = [P_UART_Data]; //接收數(shù)據(jù)

R1 = 0x0001;

[recFlag] = R1; //設(shè)置接收標(biāo)識符

goto L_ResendData;

3.應(yīng)用實例

如圖7所示,利用該數(shù)據(jù)采集系統(tǒng)進(jìn)行一溫度數(shù)據(jù)的采集,在圖5的硬件原理圖中,將鉑熱電阻PT100測得的溫度電壓值(該測溫電路由電壓跟隨和電壓放大電路組成)送入到SPCE061A的IOA4端口,通過該路AD轉(zhuǎn)換通道,將電壓值經(jīng)過數(shù)據(jù)處理后轉(zhuǎn)換為16進(jìn)制數(shù)據(jù)值,并將處理后的溫度數(shù)據(jù)通過串口發(fā)送給LabVIEW,經(jīng)過分析對比PT100鉑電阻準(zhǔn)確的溫度曲線與所測得的溫度曲線可以得出在該溫度采集系統(tǒng)的軟件編程過程中應(yīng)該對AD轉(zhuǎn)換后的數(shù)據(jù)乘以一個多大的溫度系數(shù)以及在分段溫度系數(shù)的情況下得出溫度系數(shù)轉(zhuǎn)折點(diǎn),使處理后的所得的溫度數(shù)值盡可能的接近真實溫度值。

4 結(jié)論

LabVIEW作為一個具有良好開放性的虛擬儀器開發(fā)平臺,為面向儀器的編程提供了強(qiáng)有力的支持,在LabVIEW環(huán)境下能夠開發(fā)出各種功能強(qiáng)大、開放性好的虛擬儀器軟件,構(gòu)造出實用的計算機(jī)輔助測試、分析與控制系統(tǒng)。本文利用SPCE061A進(jìn)行前端數(shù)據(jù)采集,通過串口實現(xiàn)與LabVIEW的數(shù)據(jù)通訊,利用LabVIEW的強(qiáng)大信號分析處理功能,開發(fā)了一套投資少、操作簡便的數(shù)據(jù)采集與信號分析系統(tǒng)。實驗證明,該系統(tǒng)運(yùn)行良好。

參考文獻(xiàn)

[1]LabVIEW User Manual.USA: National Instruments Corporation.1998

[2]楊樂平等.LabVIEW程序設(shè)計與應(yīng)用.電子工業(yè)出版社,2001

[3]劉君華等.虛擬儀器圖形化編程語言LabVIEW教程.西安電子科技大學(xué)出版社,2001

[4] 李晶皎. 嵌入式語音技術(shù)及凌陽16位單片機(jī)應(yīng)用. 北京航天航空大學(xué)出版. 2003

模數(shù)轉(zhuǎn)換器相關(guān)文章:模數(shù)轉(zhuǎn)換器工作原理




評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉