Agilent 34970A使用RS-232遇到問(wèn)題
問(wèn)題:?超時(shí), 數(shù)據(jù)破壞, 數(shù)據(jù)丟失, 上傳數(shù)據(jù)的錯(cuò)誤信息
原因:?PC上使用的RS-232 I/O芯片(UART)只有16字節(jié)緩沖器。在沒(méi)有實(shí)時(shí)流量控制時(shí),可能會(huì)發(fā)生緩沖器超限,導(dǎo)致數(shù)據(jù)丟失。如果丟失的字符恰好是線路輸入,軟件一直沒(méi)有看到行尾結(jié)束符,從而可能會(huì)導(dǎo)致超時(shí)。其它字符丟失可能會(huì)導(dǎo)致返回的數(shù)據(jù)錯(cuò)誤。

微軟串行驅(qū)動(dòng)程序沒(méi)有實(shí)現(xiàn)真正的硬件流量控制功能。它完全在軟件驅(qū)動(dòng)程序中實(shí)現(xiàn)流量控制,因此很容易受到PCI總線鎖定、優(yōu)先權(quán)較高的中斷及中斷失效的影響。采用基于軟件的流量控制具有歷史原因,因?yàn)樵缙诘挠布O(shè)計(jì)很不可靠:當(dāng)時(shí)曾使用大量的克隆版16550 UART,許多設(shè)備存在缺陷。微軟唯一的解決方法是開(kāi)發(fā)一種使用盡可能少的功能的軟件驅(qū)動(dòng)程序,因此硬件流量控制在驅(qū)動(dòng)程序中完成。目前,微軟不能改變驅(qū)動(dòng)程序,修復(fù)這個(gè)問(wèn)題。

只有在筆記本電腦上才會(huì)出現(xiàn)這個(gè)問(wèn)題,可能是因?yàn)榕c功率管理和/或PCMCIA適配器有關(guān)的軟件開(kāi)銷(xiāo)所致,但從理論上講,它也可能會(huì)發(fā)生在臺(tái)式機(jī)上。提高處理器速度及降慢RS-232波特率都不足以實(shí)現(xiàn)滿意的結(jié)果。
解決方法:?對(duì)關(guān)鍵事務(wù)型應(yīng)用不要使用RS-232,而是使用34970A的GPIB端口。
可以把82357A USB / GPIB轉(zhuǎn)換器連接到便攜式PC得USB端口及34970A上的GPIB端口上。這種選項(xiàng)可以用于帶有USB 及Windows 2000, 98 SE或XP的筆記本電腦中。Windows 3.1, 95 和NT不支持USB。
使用E5810A LAN到GPIB網(wǎng)關(guān)。網(wǎng)關(guān)可以連接到34970A 上的GPIB端口上,然后連接到PC的局域網(wǎng)上(或直接連接到PC的局域網(wǎng)端口上)。局域網(wǎng)網(wǎng)關(guān)兼容Windows??98 (SE)/Me/NT/2000/XP。
安裝PCMCIA GPIB卡。許多廠商提供了PCMCIA GPIB卡,一般支持Windows?
切換到使用82350B GPIB卡或82357A USB-GPIB轉(zhuǎn)換器的臺(tái)式PC上。82350A兼容Windows??98 /Me/NT/2000/XP。臺(tái)式電腦上還沒(méi)有見(jiàn)到RS-232問(wèn)題,它們使用相同的硬件,理論上也會(huì)有相同的問(wèn)題。
注:任何選項(xiàng)都必需改變控制程序。命令串保持相同,但需要改變通信設(shè)置??梢允褂肧CPI命令"SYSTem:INTerface {GPIB | RS232}"或通過(guò)前面板,以編程方式改變儀器模式。此外,用來(lái)初始化RS-232參數(shù)的任何代碼,如波特率、奇偶性和流量控制,都可以從程序中刪除。必需改變打開(kāi)RS-232端口使用的代碼,以打開(kāi)GPIB接口。

這可以在Visual Basic中通過(guò)下述命令實(shí)現(xiàn):
Dim A_34970A As AgtIOServer
Dim iomgr As KeysightIOUtilsLib.AgtIOManager
Set iomgr = New AgtIOManager
Set A_34970A = io_mgr.ConnectToInstrument ("GPIB::9")
如果必須把GPIB地址改變?yōu)槟J(rèn)值(9)之外的其它地址,只能從前面板上改變地址。如需更多信息,請(qǐng)查看手冊(cè)。