症狀:上載資料時發生逾時、資料毀損、資料遺失,及出現錯誤訊息。


原因:PC所使用的RS-232 I/O晶片(UART)只提供一個16位元組的緩衝區,若無即時的流量控制,緩衝區可能會超載而導致資料遺失。如果遺失的字元剛好是換行符號,可能會因為軟體永遠看不到行尾終止符號而發生逾時。其他遺失的字元,則可能造成傳回的資料錯誤。

Microsoft的串列驅動器並未實作真正的硬體流量控制,而是將所有的流量控制設計在軟體驅動程式中,以致容易受到PCI匯流排定鎖、較高優先順序的中斷及中斷異常的影響。使用軟體式流量控制是因為早期的硬體設計很不可靠:16550 UART有很多的複製品,其中大部份都有瑕疵。Microsoft的唯一解決方法就是開發一種盡可能使用較少功能的軟體驅動程式,硬體的流量控制因而被放入驅動程式中。目前Microsoft無法修改驅動程式以修正此問題。
這個問題目前只在可攜式電腦出現過,可能是與電源管理及/或PCMCIA轉接器有關的軟體額外處理所造成,但理論上桌上型PC也可能會發生。較快的處理器和較慢的RS-232傳輸率,對於解決這個問題並沒有太大的幫助。

解決方法:如為執行重要任務的應用,請勿使用RS-232,建議您改用34970A的GPIB埠。

  1. 82357A USB / GPIB轉換器可連接到可攜式PC的USB埠及34970A的GPIB埠。這個選項可搭配擁有USB的膝上型電腦及Windows 2000、98 SE或XP使用。Windows 3.1、95和NT並不支援USB。
  2. 使用E5810A LAN轉GPIB閘道。此閘道可連接到34970A的GPIB埠,然後連接到PC的LAN(或直接連接到PC的LAN埠)。LAN閘道與Windows(r) 98 (SE)/Me/NT/2000/XP相容。
  3. 安裝PCMCIA GPIB卡。有些廠商有供應PCMCIA GPIB卡,通常可支援Windows(r) 98 (SE)/Me/NT/2000/XP。
  4. 使用82350B GPIB卡或82357A USB-GPIB轉換器,切換到桌上型PC。82350A與Windows(r) 98 /Me/NT/2000/XP相容。RS-232的問題尚未出現在桌上型PC - 因採用相同的硬體,理論上也可能發生同樣的問題。

附註:所有這些選項都將迫使您變更控制程式。指令串仍維持不變,但通訊設定必須加以修改。儀器模式可利用SCPI指令 "SYSTem:INTerface {GPIB | RS232}" 或透過面板來設定。此外,用來初始化如傳輸率、同位元和流量控制等RS-232參數的任何程式碼,都可自程式中移除。用來開啟RS-232埠的程式碼必須予以修改,才能開啟GPIB介面,您可以在Visual Basic中利用下列指令來執行這項操作:

Dim A_34970A As AgtIOServer
Dim iomgr As KeysightIOUtilsLib.AgtIOManager
Set iomgr = New AgtIOManager
Set A_34970A = io_mgr.ConnectToInstrument ("GPIB::9").

如果GPIB位址必須改成預設值(9)以外的其他值,您只能從面板來修改。詳細的資訊,請參考使用手冊。