問題: 超時, 數據破壞, 數據丟失, 上傳數據的錯誤信息
原因: PC上使用的RS-232 I/O芯片(UART)只有16字節緩沖器。在沒有實時流量控制時,可能會發生緩沖器超限,導致數據丟失。如果丟失的字符恰好是線路輸入,軟件一直沒有看到行尾結束符,從而可能會導致超時。其它字符丟失可能會導致返回的數據錯誤。
微軟串行驅動程序沒有實現真正的硬件流量控制功能。它完全在軟件驅動程序中實現流量控制,因此很容易受到PCI總線鎖定、優先權較高的中斷及中斷失效的影響。采用基于軟件的流量控制具有歷史原因,因為早期的硬件設計很不可靠:當時曾使用大量的克隆版16550 UART,許多設備存在缺陷。微軟唯一的解決方法是開發一種使用盡可能少的功能的軟件驅動程序,因此硬件流量控制在驅動程序中完成。目前,微軟不能改變驅動程序,修復這個問題。
只有在筆記本電腦上才會出現這個問題,可能是因為與功率管理和/或PCMCIA適配器有關的軟件開銷所致,但從理論上講,它也可能會發生在臺式機上。提高處理器速度及降慢RS-232波特率都不足以實現滿意的結果。
解決方法: 對關鍵事務型應用不要使用RS-232,而是使用34970A的GPIB端口。
- 可以把82357A USB / GPIB轉換器連接到便攜式PC的USB端口及34970A上的GPIB端口上。這種選項可以用于帶有USB 及Windows 2000, 98 SE或XP的筆記本電腦中。Windows 3.1, 95 和NT不支持USB。
- 使用E5810A LAN到GPIB網關。網關可以連接到34970A 上的GPIB端口上,然后連接到PC的局域網上(或直接連接到PC的局域網端口上)。局域網網關兼容Windows? 98 (SE)/Me/NT/2000/XP。
- 安裝PCMCIA GPIB卡。許多廠商提供了PCMCIA GPIB卡,一般支持Windows? 98 (SE)/Me/NT/2000/XP。
- 切換到使用82350B GPIB卡或82357A USB-GPIB轉換器的臺式PC上。82350A兼容Windows? 98 /Me/NT/2000/XP。臺式電腦上還沒有見到RS-232問題,它們使用相同的硬件,理論上也會有相同的問題。
注:任何選項都必需改變控制程序。命令串保持相同,但需要改變通信設置。可以使用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)之外的其它地址,只能從前面板上改變地址。如需更多信息,請查看手冊。
-
WINDOWS
+關注
關注
3文章
3524瀏覽量
88419 -
數據采集器
+關注
關注
1文章
128瀏覽量
14896
發布評論請先 登錄
相關推薦
評論