National Central University
Uedu Main Site
Explore Uedu
Student Console
Register as Member/Login
Research Informed Consent Center
Survey Center
Educational Big Data Challenge
Claim or create a course
Try an AI Scenario Task
Support & Messages
Uptime Data

UeduGPTs

--

Jupyters

3

Local AI

--

Uedu Code

--

中央大學 AQI 80 24°C PM2.5 21
AI Reply Desktop Notifications

Show a desktop notification when the AI TA finishes replying

Chat Message Notifications

Notify me when classmates post messages in the forum

Sound notification

Play an alert sound whenever there is a new notification

Unit 03

儀器的通訊介面

RS-232、USB(USBTMC)、LAN(LXI)、GPIB 的特性與選擇
Interaction 25 minute(s)

Learning Objectives

  • 比較 RS-232、USB、LAN、GPIB 在距離、速度、台數、設定與隔離上的差別
  • 依量測情境選擇合適的介面,說出取捨
  • 看懂 VISA 資源字串:介面種類、位址與 INSTR
  • 知道 GPIB 的位址範圍、串接方式與台數、線長的限制

電腦和儀器之間的那條線

上一課認識了儀器,這一課看電腦和儀器怎麼連起來。儀器背板上常見四種介面:

介面 標準 一句話
RS-232(序列埠) TIA-232(前身是 EIA RS-232) 最老、最簡單,一條線接一台,速度慢
USB USB-IF 的 USBTMC(Test and Measurement Class) 插上就能用,適合桌上的一兩台儀器
LAN(乙太網路) LXI(LAN eXtensions for Instrumentation) 可以很遠、可以很多台,網路天生有電氣隔離
GPIB IEEE 488 專為儀器設計的匯流排,一條線串很多台,舊型與高階儀器常見

GPIB 最早是惠普(HP)在 1960 年代發展的 HP-IB,1975 年成為 IEEE 488 標準,1987 年的 IEEE 488.2 又規定了共同的訊息格式與指令(第 05 課的 *IDN? 就來自這裡)。 LXI 聯盟成立於 2004 年,把網路連線的儀器規格統一起來。四種介面現在都還在用:新儀器多半同時有 USB 與 LAN,GPIB 與 RS-232 則在既有的測試系統裡繼續服役。

對寫程式的人來說,好消息是 VISA 把這些差異包起來了:不管是哪一種線,程式都是 open_resource(資源字串) 之後 write、query, 只有資源字串不同。

資源字串:從名字看出接在哪裡

VISA 用資源字串(resource string)指定一台儀器,各段用 :: 分隔:

介面 資源字串範例 各段的意思
序列埠 ASRL3::INSTR ASRL=非同步序列埠,3=COM3
USB USB0::0x5544::0x0001::PS0001::INSTR USB 介面 0、廠商 ID、產品 ID、序號
LAN(VXI-11) TCPIP0::192.168.1.20::INSTR 網路介面 0、儀器的 IP 位址
LAN(HiSLIP) TCPIP0::192.168.1.20::hislip0::INSTR 較新的網路儀器協定(TCP 埠 4880)
LAN(原始 socket) TCPIP0::192.168.1.20::5025::SOCKET 直接連到儀器的 TCP 埠,LXI 規格列的 SCPI 埠是 5025
GPIB GPIB0::22::INSTR GPIB 介面卡 0、儀器位址 22

最後的 INSTR 表示「一台儀器」。程式拿到的資源字串是普通的 Python 字串,可以用 split("::") 拆開來判斷介面種類。 (原始 socket 的埠號各廠牌可能不同,以手冊為準。)

逐步看:列出所有儀器,從資源字串判斷介面

模擬工作台上有四台儀器:電源供應器接 USB、數位電錶同時接 GPIB 與序列埠(COM3)、函數產生器與示波器接網路。 看 list_resources() 回傳的元組,以及迴圈怎麼用第一段判斷介面。

GPIB:一條線串很多台

GPIB 的線兩端接頭可以堆疊:一台儀器的接頭上再插下一條線,一台串一台(也可以接成星狀)。所有儀器共用同一組訊號線, 所以每台儀器要有自己的位址,電腦送指令時先指定位址,只有那一台會回應。常見的限制:

  • 位址 0~30,同一條匯流排上不能重複;電腦端的介面卡(控制器)通常用位址 0。
  • 一條匯流排含控制器最多 15 台。
  • 線的總長不超過 20 m,也不超過「2 m × 台數」。

位址設錯時,VISA 找不到那台儀器,PyVISA 會丟出 VisaIOError,錯誤代號 VI_ERROR_RSRC_NFOUND(資源不存在)。下一個範例故意先用錯的位址。

逐步看:位址錯了會怎樣

電錶的 GPIB 位址是 22。程式先試 9,再試 22;用 try/except 接住找不到儀器的錯誤,程式不會中斷。

互動練習:選介面、排 GPIB 位址

上半部勾選需求,四種介面會依適合程度排序;下半部是一條 GPIB 匯流排,可以加儀器、改位址、改線長。依序完成任務。

選介面的幾個實務考量

  • 距離:USB 每段 5 m、RS-232 約 15 m、GPIB 總長 20 m;要跨房間就用網路。
  • 台數:一個序列埠一台;GPIB 一條匯流排最多 15 台;USB 靠集線器;網路靠交換器。
  • 設定:RS-232 要兩邊參數一致(下一課的鮑率等),GPIB 要設位址,網路要設 IP,USB 最省事。
  • 隔離與雜訊:USB、RS-232、GPIB 的電腦與儀器共地,接地不良時可能有雜訊;乙太網路埠依規格有電氣隔離。
  • 資安:網路連線的儀器放在受保護的實驗室網路,不要直接暴露在網際網路上。
  • 轉接器:USB 轉 RS-232、USB 轉 GPIB 都很常見,讓新電腦也能接舊儀器;VISA 會把它們當成對應的介面。

小測驗:資源字串

1.

資源字串 GPIB0::7::INSTR 中的 7 是什麼?

2.

下面的程式會印出什麼?

name = "TCPIP0::192.168.1.20::INSTR"
parts = name.split("::")
print(len(parts), parts[1])
3.

程式開啟 GPIB0::9::INSTR 時得到 VI_ERROR_RSRC_NFOUND。下面哪一個不是可能的原因?

第 1 次作答

小測驗:介面的取捨

1.

一套舊的測試系統用 GPIB 串了 8 台儀器,要再加一台新電錶。新電錶的位址應該怎麼設?

2.

示波器要把一百萬點的波形傳回電腦,而且儀器就在電腦旁邊。下面哪一個介面最不適合?

第 1 次作答

重點整理

  • 四種介面:RS-232(簡單、慢、一對一)、USB(即插即用、5 m)、LAN(遠、多台、有隔離)、GPIB(儀器匯流排、15 台、20 m)。
  • VISA 把介面差異包起來,程式只差在資源字串:ASRL3::INSTR、USB0::廠商::產品::序號::INSTR、TCPIP0::IP::INSTR、GPIB0::位址::INSTR。
  • GPIB 位址 0~30 不能重複;位址錯誤得到 VI_ERROR_RSRC_NFOUND。
  • 網路儀器放在受保護的實驗室網路裡。

下一課從最簡單的序列埠開始:鮑率、資料格式、終止字元與逾時,用 pyserial 和儀器第一次對話。

這一課完成了!
Next lesson:序列通訊與 pyserial
你目前沒有登入,學習進度只存在這個瀏覽器。 Login 後,進度會跟著帳號,換電腦也看得到。