唐林林,趙秋明
(桂林電子科技大學(xué) 信息與通信學(xué)院,桂林 541004)
唐林林,趙秋明
(桂林電子科技大學(xué) 信息與通信學(xué)院,桂林 541004)
在測控領(lǐng)域,儀器與計(jì)算機(jī)之間通常采用串口通信,串口通信是有線傳輸,存在傳輸距離短、可移動性差等缺點(diǎn)。本文采用串口與WiFi相結(jié)合的方式,提出了一種基于軟件LabVIEW的串口轉(zhuǎn)WiFi數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)方法,從而使串口通信擺脫了線纜的束縛。
LabVIEW;串口;WiFi;數(shù)據(jù)傳輸
在測控領(lǐng)域,儀器通常需要與計(jì)算機(jī)建立通信來傳輸測量信息以及對儀器進(jìn)行控制。在儀器上,常用的通信接口為串口,串口通信的傳輸介質(zhì)是有線電纜,雖然有線傳輸能適應(yīng)絕大多數(shù)的工業(yè)環(huán)境,但在一些特殊環(huán)境中(如強(qiáng)腐蝕性、布線困難、儀器產(chǎn)生交叉運(yùn)動等),有線傳輸由于其自身的缺陷將無法適應(yīng)。本文介紹了一種基于LabVIEW的串口轉(zhuǎn)WiFi數(shù)據(jù)傳輸實(shí)現(xiàn)方法,在LabVIEW平臺上實(shí)現(xiàn)串口通過WiFi傳輸數(shù)據(jù)。
LabVIEW是NI公司推出的一種圖形化編程語言,自問世以來經(jīng)過了快速發(fā)展,現(xiàn)被廣泛應(yīng)用于測控領(lǐng)域。LabVIEW 集成了滿足 GPIB、VXI、RS-232和RS-485協(xié)議的硬件及數(shù)據(jù)采集卡通信的全部功能,還內(nèi)置了便于應(yīng)用TCP/IP、ActiveX等軟件標(biāo)準(zhǔn)的庫函數(shù)。利用它可以方便地建立自己的虛擬儀器,其圖形化的界面使得編程及使用過程都生動有趣[1]。
LabVIEW的圖形化編程語言又稱為“G”語言,使用這種語言編程時(shí),基本上不用寫程序代碼,取而代之的是流程圖或框圖。它盡可能利用了技術(shù)人員、科學(xué)家、工程師所熟悉的術(shù)語、圖標(biāo)和概念,因此LabVIEW 是一個(gè)面向最終用戶的工具。它可以增強(qiáng)構(gòu)建科學(xué)和工程系統(tǒng)的能力,提供了實(shí)現(xiàn)儀器編程和數(shù)據(jù)采集系統(tǒng)的便捷途徑。使用它進(jìn)行原理研究、設(shè)計(jì)、測試并實(shí)現(xiàn)儀器系統(tǒng),可以大大提高工作效率。
雷凌公司生產(chǎn)的RT5350芯片集成了MIPS 24KC 360 MHz 處理器,支持IEEE802.11b/g/n標(biāo)準(zhǔn)以及WEP64/124、WPA、WPA2、WAPI加密,具有USB、GPIB、SPI、UART等接口。該芯片體積小,功能強(qiáng)大,價(jià)格低廉,并且僅需很少的外圍器件就可以正常工作,能夠?qū)崿F(xiàn)低成本開發(fā)無線WiFi產(chǎn)品。因此,選用RT5350作為串口轉(zhuǎn)WiFi硬件系統(tǒng)的核心芯片,能直接將串口數(shù)據(jù)轉(zhuǎn)成WiFi數(shù)據(jù)發(fā)送,串口轉(zhuǎn)WiFi的硬件系統(tǒng)框圖如圖1所示[2]。
圖1 串口轉(zhuǎn)WiFi硬件框圖
通過硬件電路的設(shè)計(jì)以及調(diào)試,制作出來的串口轉(zhuǎn)WiFi模塊可以實(shí)現(xiàn)串口轉(zhuǎn)WiFi服務(wù)器、串口轉(zhuǎn)WiFi客戶端、串口轉(zhuǎn)以太網(wǎng)這3種模式,可以根據(jù)需要將模塊配置成相應(yīng)的工作模式。例如簡單的點(diǎn)對點(diǎn)通信,只要將一個(gè)模塊配置成串口轉(zhuǎn)WiFi服務(wù)器模式,另一個(gè)模塊配置成串口轉(zhuǎn)WiFi客戶端模式,就能夠?qū)崿F(xiàn)串口轉(zhuǎn)WiFi點(diǎn)對點(diǎn)的數(shù)據(jù)傳輸。在實(shí)際測試中,采用的是主從模式,即主機(jī)與無線WiFi路由器連接(自身帶有無線WiFi功能的電腦無需連接路由器),將與儀器連接的串口轉(zhuǎn)WiFi模塊配置成客戶端模式,具體連接方式如圖2所示[3-4]。
圖2 網(wǎng)絡(luò)連接方式
3.1 程序設(shè)計(jì)思路
串口轉(zhuǎn)WiFi,在發(fā)送數(shù)據(jù)時(shí),是通過讀取串口上的數(shù)據(jù),將其存入緩沖區(qū),然后把數(shù)據(jù)賦值給網(wǎng)絡(luò)數(shù)據(jù)發(fā)送端,將數(shù)據(jù)發(fā)送出去;在接收數(shù)據(jù)時(shí),先讀取網(wǎng)絡(luò)接收到的數(shù)據(jù),同時(shí)存入緩存區(qū),再將數(shù)據(jù)發(fā)送給串口。
串口轉(zhuǎn)WiFi數(shù)據(jù)傳輸采用的是TCP通信協(xié)議,通常TCP通信在軟件設(shè)計(jì)上需要編寫上位機(jī)和下位機(jī),對于帶有操作系統(tǒng)的儀器,只需將編寫好的程序移植到儀器上就能實(shí)現(xiàn)數(shù)據(jù)的傳輸,這里不再討論。
在測控領(lǐng)域中,多數(shù)儀器上沒有操作系統(tǒng),上、下位機(jī)這樣的通信模式并不適用,需要編寫程序僅在PC機(jī)端就能完成數(shù)據(jù)傳輸。而串口轉(zhuǎn)WiFi數(shù)據(jù)傳輸?shù)闹攸c(diǎn)在于模塊之間通信鏈路的建立,在數(shù)據(jù)傳輸系統(tǒng)搭建完成后,所有模塊都已連接到服務(wù)器,PC機(jī)發(fā)送數(shù)據(jù)時(shí)默認(rèn)是給所有連接的模塊發(fā)送,即發(fā)送時(shí)若不指定模塊,所有連接的模塊將同時(shí)接收到PC機(jī)發(fā)送的數(shù)據(jù)。模塊是根據(jù)IP地址來區(qū)分的,即一個(gè)模塊對應(yīng)一個(gè)IP地址,因此,在發(fā)送數(shù)據(jù)時(shí)輸入IP地址就能給對應(yīng)的模塊發(fā)送數(shù)據(jù)。
3.2 主機(jī)程序設(shè)計(jì)
主機(jī)使用LabVIEW作為開發(fā)平臺,讓計(jì)算機(jī)串口、網(wǎng)口與串口轉(zhuǎn)WiFi模塊之間建立橋梁,從而實(shí)現(xiàn)串口數(shù)據(jù)的無線傳輸功能。在串口數(shù)據(jù)處理上,調(diào)用的是LabVIEW的VISA來進(jìn)行編程,它是一個(gè)標(biāo)準(zhǔn)應(yīng)用程序編程接口,集成了串口的驅(qū)動函數(shù),通過調(diào)用VISA的串口通信功能函數(shù)能夠?qū)崿F(xiàn)串口的初始化、讀寫與關(guān)閉功能。在網(wǎng)絡(luò)數(shù)據(jù)處理上,調(diào)用LabVIEW的TCP協(xié)議來進(jìn)行編程,通過調(diào)用TCP協(xié)議的功能函數(shù)實(shí)現(xiàn)打開TCP連接、建立TCP監(jiān)聽與讀寫TCP數(shù)據(jù)等功能。程序按功能可以分為兩個(gè)模塊:串口數(shù)據(jù)處理模塊和網(wǎng)絡(luò)數(shù)據(jù)處理模塊。
串口數(shù)據(jù)處理模塊的功能是為主機(jī)串口與串口設(shè)備建立連接,確保兩者之間通信順暢。調(diào)用“VISA配置串口”來配置串口號、波特率、數(shù)據(jù)位和校驗(yàn)位,完成串口的初始化;調(diào)用“VISA發(fā)送”給串口發(fā)送數(shù)據(jù);調(diào)用“VISA讀取”讀取主機(jī)串口接收到的數(shù)據(jù),并將其存入緩存區(qū)[5-6]。
網(wǎng)絡(luò)數(shù)據(jù)處理模塊功能是為主機(jī)與串口轉(zhuǎn)WiFi模塊建立網(wǎng)絡(luò)連接,調(diào)用“打開TCP連接”使主機(jī)與指定模塊建立通信鏈路,需輸入模塊的IP地址與端口;調(diào)用“寫入TCP數(shù)據(jù)”向模塊發(fā)送數(shù)據(jù);調(diào)用“讀取TCP數(shù)據(jù)”來讀取接收到的網(wǎng)絡(luò)數(shù)據(jù)。軟件的流程框圖如圖3所示。
圖3 LabVIEW程序流程框圖
LabVIEW在發(fā)送網(wǎng)絡(luò)數(shù)據(jù)時(shí),常用的方法是調(diào)用兩個(gè)“寫入TCP數(shù)據(jù)”函數(shù),第一個(gè)“寫入TCP數(shù)據(jù)”指定發(fā)送數(shù)據(jù)的大小,第二個(gè)“寫入TCP數(shù)據(jù)”發(fā)送數(shù)據(jù)(如圖4所示)。同樣,在讀取數(shù)據(jù)時(shí),調(diào)用兩個(gè)“讀取TCP數(shù)據(jù)”函數(shù),第一個(gè)“讀取TCP數(shù)據(jù)”采集數(shù)據(jù)的大小,第二個(gè)“讀取TCP數(shù)據(jù)”讀取數(shù)據(jù)(如圖5所示)[7-8]。這種方法只適用于收發(fā)都是LabVIEW程序控制,與其他平臺網(wǎng)絡(luò)數(shù)據(jù)傳輸軟件不兼容,無法正確接收數(shù)據(jù),因?yàn)樵诎l(fā)送數(shù)據(jù)時(shí)不發(fā)送數(shù)據(jù)的大小。解決的辦法是接收數(shù)據(jù)只調(diào)用一個(gè)“讀取TCP數(shù)據(jù)”函數(shù),如果數(shù)據(jù)大小固定,在函數(shù)“讀取的字節(jié)”端輸入固定值,否則,在發(fā)送數(shù)據(jù)時(shí)在結(jié)尾處加上回車。LabVIEW串口轉(zhuǎn)WiFi數(shù)據(jù)傳輸接收和讀取的后面板略——編者注。
圖4 LabVIEW發(fā)送網(wǎng)絡(luò)數(shù)據(jù)
圖5 LabVIEW接收網(wǎng)絡(luò)數(shù)據(jù)
為了測試數(shù)據(jù)傳輸?shù)目煽啃裕谥鳈C(jī)上用虛擬串口軟件產(chǎn)生一對虛擬串口COM2、COM3,打開串口調(diào)試助手軟件,把串口配置成串口號為COM2、波特率為115 200、數(shù)據(jù)位為8,LabVIEW 程序的串口配置成串口號為COM3,其余一樣,這樣兩者就建立了連接。再將串口轉(zhuǎn)WiFi模塊與另一個(gè)PC機(jī)用串口線連接,配置模塊連接主機(jī)的無線路由器,在主機(jī)LabVIEW程序中輸入模塊的IP地址與端口,并打開網(wǎng)絡(luò)連接,這時(shí)主機(jī)與模塊之間通過WiFi連接。
在PC機(jī)上打開串口調(diào)試助手,給串口發(fā)送字符“模塊測試數(shù)據(jù)”,數(shù)據(jù)會通過模塊發(fā)送到主機(jī),主機(jī)上LabVIEW程序的網(wǎng)絡(luò)數(shù)據(jù)接收框顯示“模塊測試數(shù)據(jù)”,同時(shí)主機(jī)上串口調(diào)試助手也同樣顯示。同樣,主機(jī)上串口調(diào)試助手發(fā)送字符“主機(jī)測試數(shù)據(jù)”,在LabVIEW程序的串口數(shù)據(jù)框和PC機(jī)串口調(diào)試助手都會顯示“主機(jī)測試數(shù)據(jù)”,說明數(shù)據(jù)傳輸收發(fā)正常(如圖6所示)。
圖6 LabVIEW串口轉(zhuǎn)WiFi前面板顯示
隨著無線技術(shù)的廣泛應(yīng)用,傳統(tǒng)的有線傳輸逐漸被無線傳輸所取代,無線傳輸不受線纜的束縛,設(shè)備位置改變不需要重新布線。通過基于LabVIEW的串口轉(zhuǎn)WiFi數(shù)據(jù)傳輸可以將串口數(shù)據(jù)以無線的方式進(jìn)行傳輸,使得串口設(shè)備之間的連接更加方便快捷。該方法成本低,使用方便,并且具有良好的通用性和可擴(kuò)展性。
編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www.mesnet.com.cn。
[1] 鄭樹元.精通LabVIEW虛擬儀器程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2012:4-9.
[2] 袁新娣,李秋生.基于RT5350的嵌入式無線視頻數(shù)據(jù)采集系統(tǒng)[J].安徽大學(xué)學(xué)報(bào),2014,6(38):60-65.
[3] 盧靈,周賢軍.基于WiFi的嵌入式視頻監(jiān)控系統(tǒng)設(shè)計(jì)[J].電視技術(shù),2013,37(1):157-160.
[4] 梁霄霄.基于WiFi的LED照明控制系統(tǒng)的研究與實(shí)現(xiàn)[D].杭州:杭州電子科技大學(xué),2013.
[5] 湯為,孫才紅.基于LabVIEW的串口數(shù)據(jù)采集的應(yīng)用[J].軟件,2013,11(34):24-26.
[6] 周紅霞,張恒杰,張春芳.基于LabVIEW的虛擬儀器及串口通信的實(shí)現(xiàn)[J].石家莊職業(yè)技術(shù)學(xué)院學(xué)報(bào),2007,4(19):17-19.
[7] 梁惺彥,和衛(wèi)星.LabVIEW實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)采集與傳輸[J].微機(jī)計(jì)算機(jī),2004,9(20):44-45.
[8] 陳樹學(xué),劉萱.LabVIEW寶典[M].北京:電子工業(yè)出版社,2011:438-439.
唐林林(碩士研究生),主要研究方向?yàn)闊o線通信;趙秋明(高級工程師),主要研究方向?yàn)闊o線通信技術(shù)、電路與系統(tǒng)、微電子技術(shù)等。
Data Transmission Implementation Method of Serial Port to WiFi Based on LabVIEW
Tang Linlin,Zhao Qiuming
(School of Information and Communication Engineering,Guilin University of Electronic Technology,Guilin 541004,China)
In the field of measurement and control,serial port is usually used for communication between the instrument and the computer.Serial port communication is the wired transmission,it has some shortcomings such as short distance,poor mobility and so on.Using the combination of serial port and WiFi,the paper introduces the implementation of serial port to WiFi data transmission based on LabVIEW,which makes the serial port communication to escape the shackles of cable.
LabVIEW;serial port;WiFi;data transmission
TP274.2
A
士然
2015-03-05)
“十二五”國家科技支撐計(jì)劃國家文化科技創(chuàng)新工程2013年度項(xiàng)目(項(xiàng)目編號:2013BAH40F00);絲綢之路文化主題展示服務(wù)系統(tǒng)及應(yīng)用示范資助。