CH13 GPIB 介 面 IEEE488 1
1968 年 Intel 才 剛 成 立,1981IBM PC 才 剛 出 來 以 HP 工 作 站 控 制 儀 器 GPIB History 1965 年 HP 發 展 了 一 種 稱 為 HP interface bus (HPIB) 的 介 面 來 控 制 它 的 儀 器 由 於 廣 受 歡 迎,1975 年 IEEE 將 該 介 面 訂 為 IEEE488.1 規 格 進 一 步 發 展 共 用 指 令 及 資 料 傳 輸 規 格 1987 訂 為 IEEE488.2 規 格, 並 改 名 為 GPIB (General Purpose Interface Bus) 1990:SCPI(Standard Commands for Programmable Instrumentation ),IEEE488.2 加 入 新 的 規 格, 讓 同 類 儀 器 定 義 相 同 的 指 令, 以 便 互 通 因 此 GPIB=HPIB=IEEE488 2
GPIB 特 色 可 同 時 將 十 五 台 儀 器 (0~31 位 址 可 用 ) 連 接 到 電 腦 ( 控 制 器 ), 電 腦 負 責 控 制 Bus 上 的 通 訊 8bit 平 行 傳 輸, 可 達 8Mbit/s 通 訊 速 度 控 制 器 到 儀 器 可 長 20m( 儀 器 間 2m) 多 使 用 純 文 字 (7bit data) 指 令 ( 易 於 判 別 ) 使 用 3 控 制 線 於 交 握 (handshake), 確 認 資 料 正 確 傳 輸 除 資 料 BUS 外 還 有 其 他 控 制 線 :SRQ, IFC, EOI, ATN 等 3
GPIB 的 使 用 GPIB 使 用 目 標 用 電 腦 同 時 整 合 多 台 儀 器 的 控 制 動 作 或 資 料 收 集 十 分 適 合 於 量 測 或 測 試 系 統 架 設 一 般 而 言 高 級 儀 器 (>3 萬 元 ) 支 援 GPIB 低 價 儀 器 支 援 RS232 雖 然 儀 器 傳 輸 速 度 只 有 8Mbit/s, 但 大 部 分 儀 器 都 夠 用 仍 然 通 用 2% 高 速 資 料 傳 輸 儀 器 Ethernet TCP/IP 100M~1Gbit/s Or USB 2.0 480Mbit/s 4
GPIB 基 本 架 構 把 儀 器 分 成 Talker, Listener, controller 三 種 角 色 Talker 發 命 令 或 送 資 料 者 Listener 接 收 資 料 或 接 受 命 令 者 Controller 控 制 訊 號 接 收 發 送 秩 序 ( 可 當 Talker or listener) 界 面 上 只 可 以 有 一 個 System controller 同 時, 只 有 一 個 Talker, 但 可 以 有 多 個 Listener 5
GPIB 基 本 訊 息 分 類 儀 器 相 關 訊 息 : 稱 為 Data( 資 料 ), 此 儀 器 相 關 資 料 也 包 括 送 給 儀 器 的 指 令 ( 與 下 者 不 可 混 肴 ) 介 面 管 理 相 關 訊 息 ( 與 儀 器 無 關 ): 又 稱 為 Commands( 指 令 ), 例 如 : 清 除 重 設 GPIB, 設 定 儀 器 是 可 搖 控 (remote) 或 面 板 控 制 (Local) 介 面 控 制 線 ATN 是 控 制 器 用 來 控 制 目 前 資 料 是 指 令 還 是 資 料 用 的 * 代 表 反 的 邏 輯 電 位 關 係 : 高 電 位 為 False 低 電 位 為 TRue ATN*: TRUE Commands False DATA 6
GPIB 基 本 溝 通 架 構 如 何 用 電 腦 控 制 很 多 台 儀 器? 而 且 可 以 讓 儀 器 間 相 互 溝 通? 教 室 裡, 若 很 多 人 同 時 講 話 聽 不 到 例 : 說 話 者 宣 佈 命 令, 聽 者 準 備 抄 寫 1. 確 定 聽 者 都 拿 筆 準 備 好 2. 講 命 令 3. 每 講 一 句 便 確 認 寫 好 的 舉 手 了 嗎? 4. 確 定 全 部 的 人 都 舉 手 5. 萬 一 有 人 出 問 題 老 師 出 面 下 號 令 因 此,GPIB 有 3 條 Handshaking line 搖 ( 握 ) 手 線 便 是 為 了 多 儀 器 確 認 資 料 傳 送 之 用 還 有 八 條 資 料 線 ( 傳 資 料 命 令 用 ) 此 外, 還 有 五 條 控 制 介 面 訊 號 管 理 的 線 ( 多 是 給 系 統 控 制 7者 用 )
GPIB 訊 號 線 GPIB 共 有 16 條 訊 號 線 ( 及 八 條 接 地 線 ) 使 用 獨 特 的 雙 面 ( 一 公 一 母 )24Pin 接 頭 接 線 的 特 色 是, 把 儀 器 與 電 腦 通 通 連 起 來 便 可 以 了 其 中 16 條 訊 號 線 是 共 用 的 ( 接 在 一 起 ): 三 條 handshaking line 八 條 data line( 資 料 線 ) 五 條 interface manage line 8
Linear or Star 式 接 線 法 ( 也 可 混 用 ) 9
GPIB 訊 號 接 點 10
www.keithley.com11
3 條 handshaking line Talker 和 多 個 listener 間, 以 3 條 handshaking line 作 為 確 認 資 料 指 令 傳 輸 之 用 NRFD (not ready for data, 還 沒 準 備 好 ) Listener 控 制 NDAC (not data accepted, 還 沒 收 到 ) Listener 控 制 DAV (data valid) Talker 控 制, 送 好 了 12
GPIB 基 本 溝 通 架 構 如 何 用 電 腦 控 制 很 多 台 儀 器? 而 且 可 以 讓 儀 器 間 相 互 溝 通? 教 室 裡, 若 很 多 人 同 時 講 話 聽 不 到 例 : 說 話 者 宣 佈 命 令, 聽 者 準 備 抄 寫 1. 確 定 聽 者 都 拿 筆 準 備 好 2. 講 命 令 3. 每 講 一 句 便 確 認 寫 好 的 舉 手 了 嗎? 4. 確 定 全 部 的 人 都 舉 手 5. 萬 一 有 人 出 問 題 老 師 出 面 下 號 令 因 此,GPIB 有 3 條 Handshaking line 搖 ( 握 ) 手 線 便 是 為 了 多 儀 器 確 認 資 料 傳 送 之 用 還 有 八 條 資 料 線 ( 傳 資 料 命 令 用 ) 此 外, 還 有 五 條 控 制 介 面 訊 號 管 理 的 線 ( 多 是 給 系 統 控 制 13者 用 )
GPIB 3-wire Hankshaking 資 料 傳 送 1.Talker 要 送 資 料 了 (ATN false=data) Controller Data line Data Vadid Not Ready for Data 3. 資 料 放 上 去 4. 資 料 傳 好 了 2. 等 大 家 全 準 備 接 收 Talker Talker Listener Not Data Accepted 5. 等 大 家 全 接 到 了 * 表 示 在 此 的 高 電 位 表 示 false 14
8 條 Data line( 資 料 線 ) DIO1~DIO8 通 常 GPIB 只 用 到 7bit, 因 為 它 送 資 料 或 介 面 指 令 時, 都 以 文 字 型 態 發 送, 而 文 字 的 ASC 碼 都 是 在 127 以 內 ATN 線 控 制 DATA line 是 送 介 面 指 令 (TRUE) 還 是 儀 器 資 料 (FALSE) 15
5 條 界 面 管 理 線 ATN (attention) 決 定 DIO 式 資 料 或 指 令 IFC (interface clear) 由 控 制 器 發 送, 表 示 清 除 介 面, 變 成 為 主 控 者 REN (remote enable) 控 制 器 設 定 某 儀 器 是 Local or remote SRQ (service request) 由 儀 器 設 定, 表 示 要 求 某 些 服 務, 請 控 制 器 關 照 一 下,controller 使 用 Serial poll( 一 個 一 個 詢 問 ) 來 確 認 儀 器 狀 態 EOI (end or identify) Talker 用 以 確 認 資 料 傳 輸 結 束 或 controller 用 以 確 認 Parallel Poll( 略 之, 有 些 機 器 已 不 太 使 用 ) 16
ADDRESS 位 址 0~31 位 址 可 設 通 常 用 1~15( 有 些 卡 內 定 16~31 是 未 連 接, 要 軟 體 再 設 定 ) 可 在 儀 器 中 設 ( 高 級 ) 或 在 儀 器 背 後 設 Dip switch(010101 ) 不 可 重 複 定 了 之 後, 程 式 便 依 據 該 位 址 呼 叫 該 機 器 ( 有 些 可 以 自 己 命 名, 配 合 所 附 的 程 式 呼 叫, 各 廠 不 同 ) 17
1 2 4 8 16 18
GPIB 卡 常 用 的 National Instrument PCI 版 (~14000NT) ISA/AT 版 ( 電 腦 多 已 經 沒 了 ) 國 產 購 買 時 注 意 是 PCI 或 ISA/AT 介 面 還 有 許 多 介 面 可 以 使 用 如 PCMCIA, Ethernet, RS232 GPIB, 19
14000~25000? 20
<6000?~1 萬 21
22
程 式 控 制 GPIB 我 們 怎 麼 知 道 要 如 何 做? 如 何 做 手 冊 都 有 寫 ( 甚 至 有 範 例 ) 實 際 上,GPIB 介 面 的 溝 通 的 細 節 是 由 控 制, 我 們 要 做 的 工 作 其 實 很 簡 單 1. 啟 動 GPIB 功 能 2. 送 資 料 命 令 給 儀 器 去 動 作 3. 確 認 機 器 狀 態 ( 如 有 SRQ 時 用 Serial poll 將 代 表 儀 器 狀 態 的 資 料 抓 回 來 ) 4. 若 有 資 料 回 應 時, 將 資 料 接 收 回 來 5. 結 束 GPIB 很 多 人 忽 略 這 一 步, 使 得 程 式 變 成 很 容 易 當 機 因 為 機 器 有 時 候 反 應 速 度 不 一, 若 他 還 沒 準 備 好 資 料 你 硬 像 他 抓 資 料 抓 到 部 份 資 料 或 錯 誤 資 料 程 式 便 當 在 那 裡 TIMEOUT( 超 過 時 間 ) 23
早 期 HPIB 指 令 規 格 早 期 很 方 便 的 HPIB 指 令 傳 送 方 式 BASIC 架 構 使 用 Output 12; V=10 將 V=10 指 令 送 到 ADDR=12 儀 器 Enter 12; ss 將 12 的 資 料 傳 回 SS A=SPOLL(12) 傳 回 儀 器 狀 態 資 料 Remote 12 將 12 儀 器 設 為 搖 控 只 適 用 於 HP 早 期 機 器 24
25
安 裝 驅 動 程 式 並 設 定 各 家 廠 不 同 驅 動 方 式 不 同 因 此 需 安 裝 驅 動 程 式 通 常 附 有 如 GPIB.DLL 等 程 式 庫, 以 呼 叫 內 部 支 援 GPIB 各 種 指 令 難 怪 Lab view 可 以 發 展 因 為 指 令 太 多 太 麻 煩 了 26
相 當 於 SPOLL 功 能 27 Declare Function ibsre32 Lib "Gpib-32.dll" Alias "ibsre" (ByVal ud As Long, ByVal v As
開 發 HPIB 語 言 支 援 NI VB 程 式 庫 需 要 用 到 五 個 檔 案 ( 加 進 來 ) NIGLOBAL.BAS VBIB-32.BAS HJSSUB_V1a.BAS NIPCI488.BAS NIPCI488.FRM ( 及 其 相 關 檔 NIPCI488.FRX) 因 為 VB3.0 便 開 發, 表 單 可 能 會 用 到 舊 的 control 如 DBGRID32 有 缺 請 用 上 次 講 的 方 法 設 定 28
29
表 單 測 試 程 式 輸 入 output 12;v=12 Enter 12 資 料 放 回 buffer 30
OPEN Gpoutput output 12;v=12 S=GPEnter(12) 31
OUTPUT GPOUTPUT Output 12;v=10 GPOUTPUT Remote 12 GPOUTPUT SPOLL 12 SPOLL 資 料 放 入 buffer IBBUF 32
ENTER S=gpenter( enter 12 ) 33
SPOLL 抓 回 代 表 儀 器 狀 態 的 byte 看 手 冊 34
例 K2000 35