基于LabVIEW與凌陽(yáng)SPCE061A實(shí)現串口數據采集
引言
LabVIEW是一個(gè)劃時(shí)代的圖形化編程系統,應用于數據采集與控制、信號分析等方面,它為不熟悉文本語(yǔ)言編程的專(zhuān)業(yè)科技工作者在測控領(lǐng)域建立計算機儀器系統——虛擬儀器,提供了一個(gè)便捷、輕松的圖形化設計環(huán)境。由于其靈活、簡(jiǎn)單易用、開(kāi)發(fā)效率高等特點(diǎn),正逐漸成為科技工作者進(jìn)行儀器應用與開(kāi)發(fā)的得力工具。數據采集是開(kāi)發(fā)過(guò)程中一個(gè)重要的環(huán)節,NI公司提供了各種不同類(lèi)型的基于LabVIEW的數據采集卡,但是其價(jià)格昂貴,對于小型企業(yè)、實(shí)驗教學(xué)等方面仍存在著(zhù)不可避免的資金問(wèn)題。而市面上銷(xiāo)售的第三方開(kāi)發(fā)的數據采集卡,由于不具備對LabVIEW的直接支持,需要用戶(hù)開(kāi)發(fā)其驅動(dòng)程序,使用也不方便。如果采用以凌陽(yáng)16位單片機SPCE061A作為前端數據采集,通過(guò)串口進(jìn)行與LabVIEW的數據通訊,就可實(shí)現低成本、靈活方便、接口簡(jiǎn)單的數據采集系統。這對于許多信號頻率不是太高的場(chǎng)合,此方案無(wú)疑非常便利。本文所介紹的就是這樣一種利用LabVIEW 對SPCE061A的數據進(jìn)行分析處理,并通過(guò)串口實(shí)現二者之間的數據交換、經(jīng)濟實(shí)用的數據采集及分析系統。
本系統主要包含兩部分的設計:LabVIEW部分設計和SPCE061A數據采集與串口通訊部分設計。
1 LabVIEW部分設計
1.1 VISA簡(jiǎn)介
LabVIEW提供了功能強大的VISA庫。VISA(Virtual Instrument Software Architecture——虛擬儀器軟件規范,是用于儀器編程的標準I/O函數庫及其相關(guān)規范的總稱(chēng)。VISA庫駐留于計算機系統中,完成計算機與儀器之間的連接,用以實(shí)現對儀器的程序控制,其實(shí)質(zhì)是用于虛擬儀器系統的標準的API。VISA本身不具備編程能力,它是一個(gè)高層API,通過(guò)調用底層驅動(dòng)程序來(lái)實(shí)現對儀器的編程,其層次如圖1(a)所示。VISA是采用VPP標準的I/O接口軟件,其軟件結構應包含三部分,如圖1(b)所示。
(a)VISA內部機制
(b)虛擬儀器的軟件體系結構
圖1
與其它現存的I/O接口軟件相比,VISA的I/O控制功能具有如下幾個(gè)特點(diǎn):適用于各種儀器類(lèi)型如VXI儀器、GPIB儀器、RS-232 串行儀器、消息基器件、寄存器器件、存儲器器件等儀器);適用于各種硬件接口類(lèi)型;適用于單、多處理器結構或分布式網(wǎng)絡(luò )結構;適用于多種網(wǎng)絡(luò )機制。
VISA的I/O的軟件庫的源程序是唯一的,其與操作系統及編程語(yǔ)言無(wú)關(guān),只是提供了標準形式的API文件作為系統的輸出。
1.2 VISA庫中的串口函數
本文用到的主要的串口通訊函數調用路徑為:Functions→Instrument I/O→VISA→VISA Advanced→Interface→Specific→Serial中。
1) VISA Configure Serial Port節點(diǎn)(如圖2所示)
圖2 VISA Configure Serial Port.vi圖標及其端口
該節點(diǎn)主要用于串口的初始化。主要參數意義如下:
VISA resource name:設置串口號。
baud rate:設置波特率,默認值為9600。
data bits:設置數據位。該位應在5~8之間,默認值為8。
parity:奇偶校驗位,默認值為無(wú)校驗、偶校驗等。
stop bits:設置停止位,可以為1、1.5、2。
flow control:用于設置握手信號類(lèi)型。
2) VISA Read節點(diǎn)(如圖3所示)
圖3 VISA Read.vi 圖標及其端口
該節點(diǎn)為串口讀子VI,為本文中的主要節點(diǎn),將串口中的數據讀出,然后利用LabVIEW的強大數據處理功能對其進(jìn)行分析處理。主要參數意義如下:
VISA resource name:設置串口號。
byte count:設置讀取字節數。
read buffer:從串口讀取的字符。
由于LabVIEW的串行通訊子VI只允許對字符串的讀寫(xiě),因此本文中在進(jìn)行數據處理時(shí),必須要實(shí)現字符串與數字之間的正確轉換。此外,若要讀入當前串口中的所有字符,則要先執行“VISA Bytes at Serial Port”子VI,用以確定將要讀入的確切的字節數,然后將其輸出作為VISA Read節點(diǎn)的輸入即可。
2 SPCE061A數據采集與串口通訊部分設計
2.1硬件部分
SPCE061A內置8通道10位模-數轉換器,其中7個(gè)通道用于將模擬量信號 (例如電壓信號) 轉換為數字量信號, 可以直接通過(guò)引線(xiàn)(IOA[0~6])輸入。另外一個(gè)通道只用于語(yǔ)音輸入,即通過(guò)內置自動(dòng)增益控制放大器的麥克風(fēng)通道(MIC_IN)輸入。實(shí)際上可以把模數轉換器(ADC,Analog to Digital Converter)看作是一個(gè)實(shí)現模/數信號轉換的編碼器。在A(yíng)DC內,由數模轉換器DAC0和逐次逼近寄存器SAR組成逐次逼近式模-數轉換器。另外,SPCE061A內置UART模塊,UART模塊提供了一個(gè)全雙工標準接口,用于完成SPCE061A與外設之間的串行通訊。借助于IOB口的特殊功能和UART IRQ中斷,可以同時(shí)完成UART接口的接收和發(fā)送數據的過(guò)程。UART模塊的接收管腳Rx和Tx分別與IOB7和IOB10共用。
本電路采用RS-232串行接口標準,在電氣特性上,RS-232采用負邏輯,要求高低兩信號間有較大的幅度,標準為:邏輯“1”在 -5V~-15V之間,邏輯“0”在+5V~+15V之間,通常采用-1V左右為邏輯1,+10V左右為邏輯0。本電路采用符合RS-232標準的驅動(dòng)芯片MAX232EPE實(shí)現此轉換。由于SPCE061A的信號輸入輸出為T(mén)TL電平,邏輯1為3.3V左右,邏輯0為0.4V左右,而MAX232EPE 要求+5V供電,因此,在 MAX232EPE和SPCE061A之間加了電平匹配電路。
整個(gè)電路接口簡(jiǎn)單,可靠性高。硬件部分原理圖如圖5所示
圖5 硬件原理圖
2.2軟件部分
LabVIEW軟件與串口實(shí)現數據通訊的程序圖,如圖6所示,由于SPCE061A發(fā)送給Labview的是字符串數據,所以先把該字符串轉換為字符數組,然后通過(guò)一個(gè)數組索引指定數組的第一個(gè)字符顯示并形成波形。
圖6. LabVIEW串口通訊程序圖
單片機SPCE061A利用通用串行接口UART實(shí)現串口通訊部分程序:
//************************主程序*****************************************//
L_ResendData:
L_Check_TxRDY:
R2 = [P_UART_Command2];
R2 = 0x0040; //檢測輸出是否READY
JZ L_Check_RxRDY; //發(fā)送8位十六進(jìn)制數cc
R1 = [recFlag];
CMP R1,0x0000; //是否接收過(guò)數據
JZ L_Check_RxRDY;
[P_UART_Data] = R4; //發(fā)送數據
R1 = 0x0000; [recFlag] = R1;
L_Check_RxRDY:
R2 = [P_UART_Command2]; //檢測是否有數據接收
R2 = 0x0080;
JZ L_Check_RxRDY;
R4 = [P_UART_Data]; //接收數據
R1 = 0x0001;
[recFlag] = R1; //設置接收標識符
goto L_ResendData;
3.應用實(shí)例
如圖7所示,利用該數據采集系統進(jìn)行一溫度數據的采集,在圖5的硬件原理圖中,將鉑熱電阻PT100測得的溫度電壓值(該測溫電路由電壓跟隨和電壓放大電路組成)送入到SPCE061A的IOA4端口,通過(guò)該路AD轉換通道,將電壓值經(jīng)過(guò)數據處理后轉換為16進(jìn)制數據值,并將處理后的溫度數據通過(guò)串口發(fā)送給LabVIEW,經(jīng)過(guò)分析對比PT100鉑電阻準確的溫度曲線(xiàn)與所測得的溫度曲線(xiàn)可以得出在該溫度采集系統的軟件編程過(guò)程中應該對AD轉換后的數據乘以一個(gè)多大的溫度系數以及在分段溫度系數的情況下得出溫度系數轉折點(diǎn),使處理后的所得的溫度數值盡可能的接近真實(shí)溫度值。
4 結論
LabVIEW作為一個(gè)具有良好開(kāi)放性的虛擬儀器開(kāi)發(fā)平臺,為面向儀器的編程提供了強有力的支持,在LabVIEW環(huán)境下能夠開(kāi)發(fā)出各種功能強大、開(kāi)放性好的虛擬儀器軟件,構造出實(shí)用的計算機輔助測試、分析與控制系統。本文利用SPCE061A進(jìn)行前端數據采集,通過(guò)串口實(shí)現與LabVIEW的數據通訊,利用LabVIEW的強大信號分析處理功能,開(kāi)發(fā)了一套投資少、操作簡(jiǎn)便的數據采集與信號分析系統。實(shí)驗證明,該系統運行良好。
參考文獻
[1]LabVIEW User Manual.USA: National Instruments Corporation.1998
[2]楊樂(lè )平等.LabVIEW程序設計與應用.電子工業(yè)出版社,2001
[3]劉君華等.虛擬儀器圖形化編程語(yǔ)言L(fǎng)abVIEW教程.西安電子科技大學(xué)出版社,2001
[4] 李晶皎. 嵌入式語(yǔ)音技術(shù)及凌陽(yáng)16位單片機應用. 北京航天航空大學(xué)出版. 2003
模數轉換器相關(guān)文章:模數轉換器工作原理
評論