labview實(shí)現(xiàn)串口通信
一、串口通信簡(jiǎn)介
串口按位(bit)發(fā)送和接收字節(jié)。串口通信是指外設(shè)和計(jì)算機(jī)間,通過數(shù)據(jù)信號(hào)線 、地線、控制線等,按位進(jìn)行傳輸數(shù)據(jù)的一種通訊方式。這種通信方式使用的數(shù)據(jù)線少,在遠(yuǎn)距離通信中可以節(jié)約通信成本,但其傳輸速度比并行傳輸?shù)汀?/p>
串口按位(bit)發(fā)送和接收字節(jié)。盡管比按字節(jié)(byte)的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時(shí)用另一根線接收數(shù)據(jù)。它很簡(jiǎn)單并且能夠?qū)崿F(xiàn)遠(yuǎn)距離通信。比如IEEE488定義并行通行狀態(tài)時(shí),規(guī)定設(shè)備線總長(zhǎng)不得超過20米,并且任意兩個(gè)設(shè)備間的長(zhǎng)度不得超過2米;而對(duì)于串口而言,長(zhǎng)度可達(dá)1200米。典型地,串口用于ASCII碼字符的傳輸。通信使用3根線完成,分別是地線、發(fā)送、接收。由于串口通信是異步的,端口能夠在一根線上發(fā)送數(shù)據(jù)同時(shí)在另一根線上接收數(shù)據(jù)。其他線用于握手,但不是必須的。串口通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗(yàn)。對(duì)于兩個(gè)進(jìn)行通信的端口,這些參數(shù)必須匹配。
二、LabVIEW簡(jiǎn)介LabVIEW是一種程序開發(fā)環(huán)境,由美國(guó)國(guó)家儀器(NI)公司研制開發(fā),類似于C和BASIC開發(fā)環(huán)境,但是LabVIEW與其他計(jì)算機(jī)語言的顯著區(qū)別是:其他計(jì)算機(jī)語言都是采用基于文本的語言產(chǎn)生代碼,而LabVIEW使用的是圖形化編輯語言G編寫程序,產(chǎn)生的程序是框圖的形式。 LabVIEW軟件是NI設(shè)計(jì)平臺(tái)的核心,也是開發(fā)測(cè)量或控制系統(tǒng)的理想選擇。
LabVIEW特點(diǎn)
盡可能采用了通用的硬件,各種儀器的差異主要是軟件。
可充分發(fā)揮計(jì)算機(jī)的能力,有強(qiáng)大的數(shù)據(jù)處理功能,可以創(chuàng)造出功能更強(qiáng)的儀器。
用戶可以根據(jù)自己的需要定義和制造各種儀器
三、Labview實(shí)現(xiàn)串口通信步驟1.在程序面板上添加VISA配置接口
2.添加后,開啟幫助文檔的顯示。菜單的Help-》show context help,如下圖
鼠標(biāo)選擇目標(biāo)則會(huì)顯示幫助框。如下圖所示。
3.創(chuàng)建相應(yīng)的配置
在程序面板中鼠標(biāo)移動(dòng)到對(duì)應(yīng)的引腳上,點(diǎn)擊鼠標(biāo)右鍵-》create-》control,創(chuàng)建后,界面面板上會(huì)出現(xiàn)對(duì)應(yīng)的控制框。如下圖所示,創(chuàng)建個(gè)VISA resource name。
前面板顯示如下:
4依次創(chuàng)建,波特率、停止位、數(shù)據(jù)位等
如下圖所示。
5.創(chuàng)建個(gè)while循環(huán),用于放置發(fā)送的程序
鼠標(biāo)移動(dòng)到循環(huán)條件控制的引腳上,創(chuàng)建個(gè)control。用于調(diào)試,不對(duì)條件處理,會(huì)報(bào)錯(cuò)。
6前面板放置個(gè)按鈕,用于控制數(shù)據(jù)的發(fā)送
7.創(chuàng)建個(gè)事件,用于響應(yīng)發(fā)送按鈕
鼠標(biāo)移動(dòng)到timeout的位置,鼠標(biāo)右鍵選擇edit events…如下圖所示。
操作上面后,出現(xiàn)如下界面:選擇需要響應(yīng)的控件,這里選擇“ok button”,選擇鼠標(biāo)按下
點(diǎn)擊ok后,事件的名稱也變化了。如下圖所示。
如果鼠標(biāo)點(diǎn)擊按鍵,則會(huì)進(jìn)入事件處理。
8.創(chuàng)建VISA寫函數(shù)
9連接端口和寫函數(shù)
10添加個(gè)關(guān)閉函數(shù)
11.創(chuàng)建字符串控件,傳遞給寫函數(shù),用于發(fā)送
選中VISA Write的write buffer,右鍵create-》control,
12界面如下所示
13.安裝虛擬串口,提供一個(gè)下載地址
用虛擬串口配置兩個(gè)端口,配置好后,這兩個(gè)串口之間是自動(dòng)連接上,模擬硬件上兩個(gè)串口對(duì)接上的。
14運(yùn)行串口工具
15.運(yùn)行串口工具,打開串口,運(yùn)行VI,發(fā)送數(shù)據(jù)
我的電腦配置的是COM12和COM13,vi選擇COM12
運(yùn)行VI,在write buffer里面填寫test,點(diǎn)擊OK發(fā)送。
每點(diǎn)擊一次,發(fā)送一次
16.建立接收模塊
添加個(gè)while循環(huán),
創(chuàng)建while循環(huán),用于接收。創(chuàng)建VISA Read,在Read buffer引腳上點(diǎn)擊鼠標(biāo)右鍵create-》indicator,建立個(gè)顯示控件。
17 在VISA Enable Event的event type,創(chuàng)建個(gè)常量
然后在常量的下拉列表中選擇Serial Character。這個(gè)表示串口接收到數(shù)據(jù),可以進(jìn)入幫助文檔查看詳細(xì)的說明。
18.創(chuàng)建事件等待
19.連接事件,等待事件的類型直接連接在VISA Enable Event的Event type即可。
20.添加個(gè)屬性節(jié)點(diǎn),Visa Bytes at serial port,獲取串口中的字節(jié)數(shù)
連接字節(jié)數(shù),這樣告訴需要讀取的字節(jié)數(shù)。也能保證每次都把串口中的數(shù)據(jù)讀完。