《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于虛擬儀器的鎖相放大器遠程實驗系統(tǒng)
基于虛擬儀器的鎖相放大器遠程實驗系統(tǒng)
戴志超 向 英 吳先球
摘要: 設計了基于虛擬儀器的鎖相放大器遠程實驗的軟件系統(tǒng),用LabVIEW軟件編寫了客戶機與實驗機程序,,實現(xiàn)了串口與單片機系統(tǒng)的通信,、聲卡采集信號、TCP/IP網(wǎng)絡通信等功能。用Linux中的IPtables防火墻技術實現(xiàn)實驗機與服務器間的端口映射,使得互聯(lián)網(wǎng)上的所有用戶可以通過服務器訪問實驗機,進行遠程實驗,。
Abstract:
Key words :

O 引言
    20世紀80年代末美國成功研制了虛擬儀器,虛擬儀器的發(fā)展標志著自動測試與電子測量儀器領域技術發(fā)展的一個嶄新方向,。虛擬儀器是利用PC機的顯示模擬傳統(tǒng)儀器的控制面板,,以多種形式表達輸出檢測結果,由PC機的強大軟件功能實現(xiàn)信號數(shù)據(jù)的運算,、分析,、處理,由I/O接口設備完成信號的采集,、測量與調(diào)理,,從而完成各種測試功能的一種計算機儀器系統(tǒng)。
    基于互聯(lián)網(wǎng)的遠程實驗是遠程教育的一個新的發(fā)展方向,。遠程實驗從遠程計算機上進行實驗操作和觀察,,所得到的實驗結果與本地得到的完全相同,如同在實驗室真實操作實驗設備一樣,,突破了時空限制,,極大地提高了實驗教育的靈活性。將虛擬儀器技術和網(wǎng)絡技術相結合,,實現(xiàn)網(wǎng)絡化虛擬儀器,,并結合電路其他元件的遠程控制,可實現(xiàn)基于虛擬儀器的遠程實驗,。

1 LabVIEW簡介
    LabVIEW(laboratory virtual instrument engineering workbench)是美國NI公司推出的一種基于G語言(graphics language)的虛擬儀器軟件開發(fā)工具,具有各種功能強大的函數(shù)庫,,包括數(shù)據(jù)采集,、網(wǎng)絡通信、串口控制,、數(shù)據(jù)顯示及數(shù)據(jù)存儲等,。采用旋鈕,、開關、波形圖等構造用戶界面,。
    LabVIEW提供了強大的網(wǎng)絡通信功能,,TCP/IP(transmission control protocol/internet protocol)協(xié)議是Internet最基本的協(xié)議。函數(shù)庫的Communication子模板中提供了TCP節(jié)點,,可以實現(xiàn)客戶機/服務器模式下的雙機通信,。

2 遠程實驗系統(tǒng)總體設計
    本文開發(fā)了基于虛擬儀器的鎖相放大器遠程實驗系統(tǒng),實現(xiàn)了遠程測量熱敏電阻溫度特性,,遠程實驗系統(tǒng)結構框圖如圖1所示,。


    用戶打開客戶機,運行程序,,在虛擬面板上可以設置鎖相放大器的相位調(diào)節(jié),、積分時間等參數(shù)。同時,,通過虛擬面板可以改變加熱按鈕的狀態(tài),,用戶在客戶機的虛擬面板上點擊加熱按鈕,接通加熱電源,,控制繼電器閉合,,加熱電路開始給熱敏電阻加熱,該狀態(tài)值通過Intern-et和服務器送往實驗機,。實驗機將接收到的加熱控制狀態(tài)通過串口送入單片機,,通過單片機調(diào)節(jié)繼電器的狀態(tài),從而控制熱敏電阻的加熱狀態(tài),。熱敏電阻的溫度由DSl8B20數(shù)字式溫度傳感器測得,,送往單片機系統(tǒng),通過串口將被測熱敏電阻溫度值讀入到實驗機中,;音頻輸入電纜采集信號發(fā)生器輸出的參考方波和橋式電路輸出的電壓值,,經(jīng)聲卡模/數(shù)轉換器送入實驗機。實驗機中的被測信號通過服務器和Internet反饋給客戶機,。用戶通過虛擬鎖相放大器和虛擬溫度計進行觀察和測量,,得到熱敏電阻溫度特性曲線。

3 遠程實驗系統(tǒng)的軟件設計
    遠程實驗系統(tǒng)采用C/S(client/server)模式,,其典型運作過程為:
    (1)服務器監(jiān)聽相應端口的輸入,;
    (2)客戶機發(fā)出一個請求;
    (3)服務器接收到此請求,;
    (4)服務器處理此請求,,并把結果返回給客戶機;
    (5)重復上述過程,,直至完成一次會話過程,。
    客戶機與實驗機的通信利用TCP/IP協(xié)議實現(xiàn),。TCP協(xié)議是一個可靠的、基于連接的協(xié)議,,能保證網(wǎng)絡間的可靠傳輸,。C/S模式要分別編寫客戶機和實驗機程序,采用TCP協(xié)議可正確傳送控制命令和數(shù)據(jù),。
    鎖相放大器遠程實驗系統(tǒng)需要實現(xiàn)遠程控制繼電器的狀態(tài),,聲卡采集輸入信號和參考信號,串口采集溫度值,,并用鎖相放大器測量熱敏電阻輸出電壓,,用虛擬溫度計測量熱敏電阻的溫度。在LabVIEW環(huán)境下分別編寫客戶機和實驗機程序,,實現(xiàn)測量熱敏電阻溫度特性曲線遠程實驗,。
3.1 客戶機程序
3.1.1 客戶機程序的用戶界面

    客戶機程序的用戶界面如圖2所示,集成了鎖相放大器的全部功能以及虛擬溫度計,,波形圖實時顯示了鎖相放大器工作過程中各個中間過程的波形,。熱敏電阻的溫度值也實時顯示在虛擬溫度計上。


    用戶點擊加熱按鈕,,接通加熱電源,,其狀態(tài)值經(jīng)由網(wǎng)絡送往實驗機,從而改變實驗室內(nèi)測溫電路的繼電器狀態(tài),,加熱電路開始對熱敏電阻進行加熱,。實驗電路中橋式電路的輸出信號和熱敏電阻的溫度值,經(jīng)由網(wǎng)絡反饋給客戶機,,用戶通過虛擬儀器面板觀察各個點波形的顯示,,同時讀取溫度值,完成熱敏電阻溫度特性測量,。
    服務器一欄設置為實驗室內(nèi)服務器的IP地址,,剩余時間一欄顯示用戶可用的時間。本實驗控制真實的實驗元件,,每次只能有一位用戶操作,。規(guī)定每位用戶的實驗時間為30 min。30 min后,,此客戶機與實驗機的連接自動斷開,。
3.1.2 客戶機軟件框圖程序
    軟件框圖程序如圖3所示。程序分別設置了3個While循環(huán)結構,,分別完成讀取溫度值,、讀取電壓值以及發(fā)送控制繼電器狀態(tài)的功能。循環(huán)中止的條件為下列三者之一:用戶點擊了“退出”按鈕;用戶連接時間超過了30 min,;實驗過程中TCP連接出錯,如實驗機程序先行中止,,或系統(tǒng)錯誤引起連接中止,。


    客戶端程序的軟件部分采用3個獨立的While循環(huán),每個端口分別設置了獨立的服務器端口,,依次是2322,,2323和2324。
    (1)讀取反饋的實驗數(shù)據(jù),。對于數(shù)據(jù)接收,,用2個TCP Read節(jié)點讀取實驗機發(fā)送的聲卡采集的數(shù)據(jù)長度和字符串數(shù)據(jù)。
    2322端口接收串口讀取的溫度值,,因為溫度值采集時已經(jīng)轉換為4位BCD碼表示的十進制數(shù),,因此接收時讀取的字長設置為4,讀取的溫度值送入虛擬溫度計并實時顯示出來,。
    2323端口對應接收聲卡讀取的電壓值,,因為是左、右聲道各采集一路信號,,因此設置了2個Sequence結構,,其中Sequence0接收左聲道讀取的橋式電路輸出信號,送入鎖相放大器的信號輸入端,;Sequence1接收右聲道讀取參考方波,,送入鎖相放大器的參考信號輸入端。同時將讀取的波形實時顯示在用戶界面上,。
    (2)發(fā)送繼電器控制信號,。2324端口發(fā)送加熱控制電路的繼電器狀態(tài)值,用戶可以在虛擬面板生改變加熱按鈕的狀態(tài),,并通過服務器反饋回實驗機,,從而控制加熱電路中繼電器的狀態(tài)。加熱按鈕其處于不同的位置時,,向網(wǎng)絡連接發(fā)送不同的命令字,。將命令字放在一個CASE結構中,這樣便于實現(xiàn)用戶將加熱按鈕置于不同的位置時,,發(fā)送不同的命令字,。為有效傳送數(shù)據(jù),采用2個TCP Write節(jié)點,,第1個節(jié)點發(fā)送字符長
度,,第2個節(jié)點發(fā)送字符數(shù)據(jù)。
3.2 端口映射
    服務器平臺上安裝Linux操作系統(tǒng),。利用其IPtables防火墻技術進行端口映射,,使得互聯(lián)網(wǎng)上的計算機可以通過訪問服務器,,間接訪問實驗機,進行遠程實驗,。端口號的選擇要避開系統(tǒng)保留端口,,即O~1023。假設實驗機程序的監(jiān)聽端口為2322,。在IPtahies中,,將服務器的2322端口映射到實驗機。外界計算機訪問服務器的2322端口時,,若實驗機程序正在2322端口監(jiān)聽,,與客戶機的TCP連接就會建立,客戶機與實驗機通信,,傳送控制命令與實驗數(shù)據(jù),。
3.3 實驗機程序
3.3.1 實驗機程序的用戶界面

    實驗機程序的用戶界面如圖4所示。波形顯示圖實時監(jiān)測聲卡采集的信號,;日志文件用于記錄與實驗機建立連接的客戶數(shù)目,、客戶地址和連接時間。Inputformat設置了聲卡采樣的數(shù)字聲音格式,;數(shù)據(jù)采集為立體聲格式,,樣本位數(shù)為16 b;為了防止數(shù)據(jù)溢出,,遠程數(shù)據(jù)傳送時A /D轉換率采用11 025 Hz,。Constant為聲卡采集數(shù)據(jù)的縮小倍數(shù)。溫度顯示為串口采集到的熱敏電阻的溫度,。


    實驗機程序實現(xiàn)如下功能:
    實驗機接收用戶發(fā)送來的加熱信號,,通過串口送往單片機系統(tǒng),由單片機根據(jù)預先設置的指令驅動繼電器,,從而控制熱敏電阻的加熱狀態(tài),。熱敏電阻的溫度值由串口采集,送入實驗機,;音頻輸入電纜左聲道采集熱敏電阻阻值改變后橋式電路的輸出電壓,,右聲道采集信號發(fā)生器輸出的參考方波,通過聲卡送入實驗機,。實驗機將采集到的所有信號經(jīng)由服務器和Internet反饋給客戶,。
3.3.2 實驗機軟件框圖程序
    實驗機框圖程序如圖5所示。實驗機程序的軟件部分整體采用一個While循環(huán),,其l中又包含2個While循環(huán),。其中一個While循環(huán)中設置了一個順序結構,Sequence 0中包含了2322監(jiān)聽端口,用于監(jiān)聽串口讀取溫度值,;Sequence 1中包含了2323端口,,用于監(jiān)聽聲卡讀取電壓值。
另外一個While循環(huán)中包含了一個2324監(jiān)聽端口,,用于接收客戶機發(fā)送來的當前繼電器狀態(tài)值,。當接收到閉合繼電器控制指令時,發(fā)送“30 H”到單片機,,控制繼電器閉合;當接收到斷開繼電器控制指令時,;發(fā)送“31H”到單片機,,控制繼電器斷開。單片機與實驗機通過串行口通信,,接收計算機發(fā)送的控制指令,。


    (1)實驗機與單片機的串行通信。實驗機與單片機的通信利用LabVIEW中的VISA庫(virtua|instrument software architecture)實現(xiàn),。V-ISA作為新一代程控儀器I/O軟件規(guī)范,,在接口無關性、平臺獨立性,、可擴展性和功能上都有很大提高,。本文單片機帶有RS 232接口,計算機通過串口與之通信,。單片機通過串口與實驗機相連,,VISA Configure Serial Port節(jié)點中VISA Resouce Name設為ASRL4:INSTR。參數(shù)與單片機的設置一致:傳輸速率4 800 b/s,,起始位1位,,數(shù)據(jù)位8位,停止位1位,,無校驗位,。
    (2)聲卡采集電路信號。用SI Read節(jié)點讀取聲卡采集的電路信號,,Stereo 16 b端口顯示讀取的數(shù)據(jù),。Index Array函數(shù)分別提取0列(左聲道)和1列(右聲道)的信號,縮小一定倍數(shù)后,,經(jīng)Type Cast函數(shù)轉為字符串數(shù)據(jù):Sequence 0發(fā)送音頻電纜左聲道采集的數(shù)據(jù),,即熱敏電阻兩端的電壓;Sequence 1發(fā)送音頻電纜右聲道采集的數(shù)據(jù),,即信號發(fā)生器輸出的參考方波,。信號波形同時顯示在前面板波形顯示器中顯示。

4 結語
    本文開發(fā)了基于虛擬儀器的鎖相放大器遠程實驗系統(tǒng)。用LabVIEW軟件編寫了客戶機與實驗機程序,,實現(xiàn)了遠程測量熱敏電阻溫度特性曲線,。與傳統(tǒng)實驗相比,只需要一臺計算機,、一臺信號發(fā)生器以及必要的硬件實驗電路即可進行實驗,。在此基礎上結合網(wǎng)絡技術和儀器控制技術,實現(xiàn)遠程實驗,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權禁止轉載。