基于LabVIEW的泰克示波器與計算機的通信
高端示波器在測試技術(shù)中的應用日益廣泛,示波器與計算機的通信成為常需要解決的問(wèn)題。為了增強測試功能和提高測試效率,把示波器與計算機結合起來(lái)使用成為必然,這樣首先就要解決示波器與計算機的通信問(wèn)題。通信方式有多種,如 RS-232 串行通信、GPIB ...
隨著(zhù)測試技術(shù)的發(fā)展和測試要求的不斷提高,高性能示波器在測試領(lǐng)域中的應用越來(lái)越多。例如美國泰克公司生產(chǎn)的多款數字示波器,就是具有波形顯示、數據分析、數據存儲和打印,以及有通信功能的高性能示波器,在科研和工程中被廣泛使用。
然而示波器本身也有很多限制:
① 受體積大小限制,其屏幕不能很大,顯示效果不如在計算機寬屏上的效果好;
② 數據處理能力有限, 示波器本身只能做一些簡(jiǎn)單的數據分析,數據處理能力和速度都遠不如計算機;
③ 受內存的限制,示波器本身只能短期存儲有限量的數據,而計算機可以永久存儲海量的數據, 并且還有個(gè)突出的優(yōu)點(diǎn)就是這些數據可隨時(shí)方便的被調用、處理, 甚至傳輸到網(wǎng)絡(luò )上與其它人共享。
為了增強測試功能和提高測試效率, 把示波器與計算機結合起來(lái)使用成為必然。 這樣首先就要解決示波器與計算機 的通信問(wèn)題。通信方式有多種,如 RS-232串行通信、GPIB總線(xiàn)通信等。不同的示波器帶有不同的接口, 支持的通信方式也不同。具體應用時(shí),便要根據示波器的支持情況,以及應用的具體需要,選擇通信方式及其實(shí)現方法。
1、泰克示波器
美國泰克示波器由于其功能多、精度高、記錄長(cháng)、抗干擾能力強等優(yōu)點(diǎn),在測試領(lǐng)域中被廣泛應用。
本設計采用的泰克 TDS3014B 型號數字熒光示波器, 四通道輸入,彩屏顯示,美觀(guān)實(shí)用。擁有 100M 的帶寬,最大 3600波形 /秒的波形捕獲速率,并且能夠鎖定測得波形和儲存測得數據。配帶的通訊模塊上有 3種端口,能夠支持多種通信方式。當把示波器與計算機結合起來(lái)使用時(shí), 有很多途徑可以把泰克示波器測得的數據傳輸到計算機上進(jìn)行后期處理, 例如:
(1) 可使用示波器自帶的內置軟盤(pán)存儲測試數據, 然后拷貝到計算機上;
(2) TDS3014B 型號示波器配帶的通信模塊帶有 RS-232、 GPIB 和 VGA (視頻圖形陣列 ) 3個(gè)通信接口, 通過(guò)這些接口可建立示波器與計算機的通信;
(3) 泰克示波器還帶有通信軟件 OpenChoice PC Communi-cation Software , 此軟件能建立示波器與計算機的無(wú)縫聯(lián)結, 計 算機可方便地獲得示波器的拷屏、 設置和波形數據;
(4) 通過(guò)內置以太網(wǎng)和使用 e*Scope可把示波器連接到 In-ternet 上,可對示波器進(jìn)行遠程監測;
(5) 新型號示波器還帶有 USB 接口,可直接與計算機 USB 接口相連來(lái)傳輸數據。
隨著(zhù)儀器與計算機技術(shù)的發(fā)展,將會(huì )出現更多的方法,便于示波器與計算機聯(lián)合應用。
2、LabVIEW 的優(yōu)點(diǎn)和應用
LabVIEW 是美國國家儀器公司推出的一種基于圖形開(kāi) 發(fā)、 調試和運行程序的集成化環(huán)境,是目前國際上應用最廣、發(fā)展最快、功能最強的編譯型圖形化編程語(yǔ)言。它以程序流 程圖的方式編程而基本上不需要寫(xiě)程序代碼,是技術(shù)人員們 容易上手的語(yǔ)言。
LabVIEW 囊括了各種儀器通信總線(xiàn)標準的功能函數,不僅提供數百種不同接口測試儀器的驅動(dòng)程序,還支持 VISA 、 SCPI 和 IVI 等最新的程控軟件標準,為用戶(hù)設計開(kāi)發(fā)不同的 先進(jìn)測試系統提供了軟件支持。本設計中就是應用了 Lab-VIEW 中的 VISA 節點(diǎn),方便地設計出了串口通信程序。LabVIEW 可特別好地模擬真實(shí)儀器的操作面板, 能實(shí)現高級儀器測得數據的實(shí)時(shí)動(dòng)態(tài)圖形化顯示。LabVIEW 擁有有 強大的分析處理波形數據的功能,可容易得到波形的各種特征參數。這些特性使其與示波器能很好地結合使用,能在計算機上方便地模擬示波器。
LabVIEW 有強大的交互式界面設計功能, 設計的界面美觀(guān)友好,接近真實(shí),讓操作人員樂(lè )于接受。
由于以上的優(yōu)點(diǎn),LabVIEW 在本設計中被用來(lái)編寫(xiě)軟件,取得了良好效果。
3、RS-232串口通信
RS-232是美國電子工業(yè)聯(lián)盟 (EIA ) 制定的串行數據通信 的接口標準。它被廣泛用于計算機串行接口外設連接 [4]。 傳統的 RS-232接口標準有 22根線(xiàn),采用標準 25芯 D 型 插頭座,F在的大部分 PC 上使用簡(jiǎn)化了的 9芯 D 型插座。本設計中的泰克示波器上的接口也是 9芯 D 型插座。
典型地,串口用于 ASCII 碼字符的傳輸。通信使用 3根 線(xiàn)完成:地線(xiàn)、 發(fā)送、 接收。 由于串口通信是異步的, 端口能夠 在一根線(xiàn)上發(fā)送數據同時(shí)在另一根線(xiàn)上接收數據。 其它線(xiàn)用于握手, 但不是必須的。 數據的發(fā)送流程是這樣的:在發(fā)送數據之前,發(fā)送端要給出請求發(fā)送信號 CTS 。接著(zhù)接收端發(fā)出數據終端準備好信號 DTR,發(fā)送端的 DSR 接收到對方的 DTR 以后,開(kāi)始在 TXD 上送出數據。
串口通信最重要的參數是波特率、數據位、停止位和奇偶校驗。對于兩個(gè)進(jìn)行通行的端口,這些參數必須匹配: (1) 波特率:衡量通信速度的參數。它表示每秒鐘傳送的 bit 的個(gè)數。
(2) 數據位:衡量通信中實(shí)際數據位的參數。當計算機發(fā) 送一個(gè)信息包,實(shí)際的數據不會(huì )是 8位的,標準的值是 5、 7和 8位。如何設置取決于傳送的信息。比如,標準的 ASCII 碼是 0~127(7位 ) 。擴展的 ASCII 碼是 0~255(8位 ) 。如果數據使用 簡(jiǎn)單的文本 (標準 ASCII 碼 ) , 那么每個(gè)數據包使用 7位數據。 每個(gè)包是指一個(gè)字節,包括開(kāi)始 /停止位,數據位和奇偶校驗位。由于實(shí)際數據位取決于通信協(xié)議的選取,術(shù)語(yǔ) “包” 指任 何通信的情況。
(3) 停止位:表示單個(gè)包的最后一位。 典型的值為 1、 1.5和 2位。由于數據是在傳輸線(xiàn)上定時(shí)的,并且每一個(gè)設備有其自 己的時(shí)鐘,很可能在通信中兩臺設備間出現了小小的不同步。 因此停止位不僅僅是表示傳輸的結束,并且提供計算機校正 時(shí)鐘同步的機會(huì )。適用于停止位的位數越多,不同時(shí)鐘同步的容忍程度越大,但是數據傳輸率同時(shí)也越慢。
(4) 奇偶校驗位:串口通信中一種簡(jiǎn)單的檢錯方式。有 4種檢錯方式:偶、 奇、 高和低。當然沒(méi)有校驗位也是可以的。 對于偶和奇校驗的情況,串口會(huì )設置校驗位 (數據位后面的一 位 ) ,用一個(gè)值確保傳輸的數據有偶個(gè)或者奇個(gè)邏輯高位。例如, 如果數據是 011,那么對于偶校驗, 校驗位為 0,保證邏輯 高的位數是偶數個(gè)。如果是奇校驗, 校驗位位 1,這樣就有 3個(gè)邏輯高位。高位和低位不真正的檢查數據, 簡(jiǎn)單置位邏輯 高或者邏輯低校驗。 這樣使得接收設備能夠知道一個(gè)位的狀態(tài),有機會(huì )判斷是否有噪聲干擾了通信或者是否傳輸和接收 數據是否不同步。
由于 RS-232應用廣泛,硬件編程要求比較簡(jiǎn)單,價(jià)格便宜,而且大多設備中已經(jīng)內置了這種接口,故本設計也采用了 RS-232通信。
4、示波器的設置
在用 RS-232串口線(xiàn)把裝有通信模塊的示波器和計算機連起來(lái)后,要對示波器的 I/O進(jìn)行設置。其設置要根據硬件連 接情況,并與其后程序中的設置相一致。
著(zhù)重指出的是 Flagging (流控制 ) 的設置。當設為缺省值 Hard (硬件流控制 ) 時(shí),則必須將通訊兩端的 RTS 、 CTS 線(xiàn)對應相連。在編程時(shí)根據接收端緩沖區大小設置一個(gè)高位標志 (可 為緩沖區大小的 75%) 和一個(gè)低位標志 (可為緩沖區大小的 25%) , 當緩沖區內數據量達到高位時(shí),我們在接收端將 CTS 線(xiàn) 置低電平 (送邏輯 0) , 當發(fā)送端的程序檢測到 CTS 為低后,就停止發(fā)送數據,直到接收端緩沖區的數據量低于低位而將 CTS 置高電平。RTS 則用來(lái)標明接收設備有沒(méi)有準備好接收數據 。硬件流控制對硬件和軟件都有要求,增加了復雜度,在 計算機處理速度遠高于儀器的情況下,傳輸可以不用流控制 或采用簡(jiǎn)便的軟件流控制?赏ㄟ^(guò) XON/XOFF來(lái)實(shí)現軟件流 控制。其方法是:當接收端的輸入緩沖區內數據量超過(guò)設定 的高位時(shí),就向數據發(fā)送端發(fā)出 XOFF 字符 (十六進(jìn)制的 13) , 發(fā)送端收到 XOFF 字符后就立即停止發(fā)送數據;當接收端的輸入緩沖區內數據量低于設定的低位時(shí), 就向數據發(fā)送端發(fā)出 XON 字符 (十六進(jìn)制的 11) ,發(fā)送端收到 XON 字符后就立即開(kāi)始發(fā)送數據。波特率設為 9600bit/s。標志設為無(wú)。行結束設為默認值的換行。調試功能關(guān)閉,設置完畢后,可通過(guò)通信軟件 OpenChoice 或自編小程序進(jìn)行測試及調試。本設計測試結果通信順利。
5、程 序
5.1串口設置
LabVIEW 中的 VISA 節點(diǎn)用于串口通信。其中的函數可 實(shí)現串口初始化、串口寫(xiě)、串口讀、檢測和清空緩存、串口關(guān)閉 等功能。當硬件連接好、示波器設置好了,程序中的設置要 保持相一致,才能正確地通信。本設計中示波器連接的是計 算機的 COM2口,所以串口名為 COM2。終止符與示波器的行結束設置一致, 為換行, 換行的 ASCII 碼為 LF , 十六進(jìn)制碼 為 0A 。為了在數據傳輸過(guò)程中,不遺漏不混疊數據和易于檢測錯誤, 設置輸入緩存區和超時(shí),緩存區為 1024個(gè)字節,超時(shí)為 1000ms 。波特率與示波器設置一致為 9600bit/s, 8位數據 位,停止位為 1,奇偶校驗和流控制為無(wú)。
5.2寫(xiě)命令
通過(guò)程序給示波器發(fā)送命令, 以便得到波形數據和相關(guān) 參數。最終要有波形顯示,必須要獲得橫軸上的時(shí)間和豎軸 上的電壓值。命令是以字符串形式在程序中輸入,其具體命令在示波器編程手冊中可查得。注意的是從示波器輸出到計 算機的也是字符串,要把其中的有效數據提取出來(lái),并把它們 轉化成十進(jìn)制數字。輸出的字符串會(huì )附帶輸入命令的開(kāi)始部分,要把這些不需要的字符剔除掉。利用節點(diǎn) Decimal String To Number 便可實(shí)現所需的字符串到十進(jìn)制數的轉換。另外一個(gè)需要注意的是要對直接得到的數據進(jìn)行運算處理,才能得到需要的波形數據。對于太小的時(shí)間標度,如納秒級的時(shí)間,可以乘以一個(gè)轉換常數使之成為易于顯示的時(shí)間。對于電壓值, 由運算公式?jīng)Q定。
5.3獲取波形
每次傳輸的最大數據量有限 (如最多 1000個(gè)數據每次 ) ,根據每次獲取數據量和需要的總數據量,設定循環(huán)次數。得 到的數據依次存入波形數組,并由 Waveform Graph 顯示出來(lái)。其中要對得到的字符串進(jìn)行轉換,才能得到波形數據,以便顯示。另外還要根據高壓探頭的設定,最后的波形數據要乘以探頭衰減指數方可得到實(shí)際的電壓波形。
5.4運行結果
綜合以上的程序,便可得到通信的總程序。示波器實(shí)時(shí)采集的信號波形和采集后鎖存的信號波形,都可在程序運行后傳到計算機上,進(jìn)行進(jìn)一步處理。
6、結束語(yǔ)
本文系統總結了泰克示波器與計算機的通信,提出并解決了其中的疑難問(wèn)題,給出了詳細的應用程序。實(shí)驗結果表明,通信安全可靠,計算機最終得到了正確而完整的示波器測得的波形。程序對波形的后期處理功能強大,程序界面美觀(guān)友好,能滿(mǎn)足眾多測試場(chǎng)合下的要求。不足之處是傳輸速度不是很高,傳輸距離不能太遠,這是由于串行通信本身所限制。本研究示波器支持的串口傳輸速度最高為 38400位 /秒。若要提高速度,可采取其它高速通信方式。本研究中的實(shí)現方法,可類(lèi)推到其它類(lèi)型示波器及其它通信方式中。