<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

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

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

          引言

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

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

          1 LabVIEW部分設(shè)計(jì)

          1.1 VISA簡(jiǎn)介

          LabVIEW提供了功能強(qiáng)大的VISA庫(kù)。VISA(Virtual Instrument Software Architecture——軟件規(guī)范,是用于儀器編程的標(biāo)準(zhǔn)I/O函數(shù)庫(kù)及其相關(guān)規(guī)范的總稱。VISA庫(kù)駐留于計(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)程序來(lái)實(shí)現(xiàn)對(duì)儀器的編程,其層次如圖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控制功能具有如下幾個(gè)特點(diǎn):適用于各種儀器類型如VXI儀器、GPIB儀器、RS-232 串行儀器、消息基器件、寄存器器件、存儲(chǔ)器器件等儀器);適用于各種硬件接口類型;適用于單、多處理器結(jié)構(gòu)或分布式網(wǎng)絡(luò)結(jié)構(gòu);適用于多種網(wǎng)絡(luò)機(jī)制。

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

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

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

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

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

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

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

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

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

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

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

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

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

          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ù)處理功能對(duì)其進(jìn)行分析處理。主要參數(shù)意義如下:

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

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

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

          由于LabVIEW的串行通訊子VI只允許對(duì)字符串的讀寫,因此本文中在進(jìn)行數(shù)據(jù)處理時(shí),必須要實(shí)現(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è)計(jì)

          2.1硬件部分

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

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

          整個(gè)電路接口簡(jiǎn)單,可靠性高。硬件部分原理圖如圖5所示

          圖5 硬件原理圖

          2.2軟件部分

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

          圖6. LabVIEW串口通訊程序圖

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

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

          L_ResendData:

          L_Check_TxRDY:

          R2 = [P_UART_Command2];

          R2 = 0x0040; //檢測(cè)輸出是否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]; //檢測(cè)是否有數(shù)據(jù)接收

          R2 = 0x0080;

          JZ L_Check_RxRDY;

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

          R1 = 0x0001;

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

          goto L_ResendData;

          3.應(yīng)用實(shí)例

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

          4 結(jié)論

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

          參考文獻(xiàn)

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

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

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

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

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




          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();