- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
融合LXI和脚本的优点(上)
Part I:什么是脚本?多年来,可编程仪器表现为一种形式或另一种形式。虽然具体功能有所不同,但可编程仪器允许用户在仪器中创建和保存一组指令(或程序),并且按需运行指令。通常,早期可编程仪器的能力和容量都非常有限,这使可编程性的使用局限于相对小而简单的应用。较大或较复杂的应用需要使用单独计算机或控制器通过通信接口(常常是GPIB)控制可编程仪器。 计算技术和编程语言的进步以及嵌入式计算容量成本的稳定下降带来了新一代可编程仪器。新型仪器突破了旧的限制,极大提高了性能和灵活性。这些仪器的一个关键进步是采用脚本语言提供可编程性。本文详细介绍了脚本以及如何利用脚本简化测试与测量并且提高速度。 那什么是脚本呢?测试仪器的脚本与我们说的PC脚本又有什么区别呢? 简单地说,脚本是用脚本语言编写的程序以便管理一系列的动作。 脚本远优于常规使用的宏或记录序列。脚本能充分利用脚本语言,其中包括循环、转移和数据处理。虽然宏可以通过基本循环控制方法实现重复,但是脚本能提供完全执行环境,其中数值可以保存在变量中。然后,这些变量可用于控制循环和转移判定。 脚本语言与其它编程语言的主要区别在于在运行脚本程序之前无需预编译。如果需要,脚本环境可以直接中断程序或自动编译程序。此外,脚本语言还具有编程语言的全部能力,包括存储变量值和创建存储的程序(函数)以便代码重用。 由于脚本无需单独进行编译,所以脚本语言非常适合于测试与测量设备的嵌入式应用。脚本可以下载到仪器上,无需额外的准备工作就能为用户提供更多便利。 PC上运行的脚本语言和嵌到仪器中的脚本语言之间的关键不同在于环境。当脚本语言运行在PC上时,它通常能访问文件系统、几乎无限制的存储器、图形显示以及键盘和鼠标。当脚本语言运行在仪器上时,它不必访问任一种设备,但这些设备通常也不需要。 明天我们会对测量仪器中的脚本进行细化介绍,敬请期待吧! PartII: 测量仪器中运用的脚本流行的脚本语言包括Perl、Python、VBScript和JavaScript。Lua脚本语言特别适于嵌入式应用,因为它比多数其它脚本语言运行速度更快并采用占代码空间非常小的库实现。吉时利选择Lua用于支持测试脚本处理器(TSP)的仪器系列。当测试测量仪器增加了脚本支持时,最困难的选择是什么呢?对拉,是如何向用户介绍脚本! 这种困难包括需要回答的一些难题,例如:"如何集成仪器指令集和脚本环境?""用户如何将脚本载入仪器中?"吉时利选择将脚本环境和指令集完全集成,这意味着所有仪器指令都是完全合法的Lua语句。基本上,送到仪器上的每条指令消息都作为Lua程序执行。 这种选择使用户很容易地从使用单条指令控制仪器过渡到使用脚本控制仪器,因为不需要学习整个新指令集。与脚本中使用的命令相同,指令可以通过GPIB或LXI接口发送到仪器。这极大地简化了从基于指令的简单控制到基于脚本的控制的过渡过程。用户能简单地发送较大的脚本而不是单独的指令到仪器。下面我们用代码来举例说明一下: 案例分析这种选择的缺点是仪器指令可能对于第一次使用的用户有点陌生。举一些例子有助于说明这一缺点。这些例子比较了吉时利2400型源表(基于SCPI的单元)和吉时利2602型双通道数字源表(基于TSP的单元)。 让2400的源输出电流的指令是:::SOUR:FUNC CURR 2602对应的指令是:smua.source.func = smua.DC_AMPS smua前缀指定双通道仪器2602的通道A。除了等号外,其余的指令类似于SCPI指令。这是Lua的赋值运算,将mua.source.func属性设为smua.DC_AMPS的值。 查询指令有一些陌生。因为指令是有效的Lua语句,所以使用print函数产生输出。SCPI查询返回到2400的源函数是::SOUR:FUNC? 2602对应的指令是:print(smua.source.func) 正如SCPI仪器通过分号分隔单独指令以支持复合指令,基于脚本的仪器也能通过语句分隔符分隔指令以支持复合指令。在Lua中,语句分隔符是空白字符。 假设我们的仪器已经配置为电压源。对于2400,以下指令消息将设置输出电平,然后打开输出::SOUR:VOLT 1.0; :OUTP 1 对于2602,相应指令消息是:smua.source.levelv = 1.0 smua.source.output = 1 上述例子说明脚本仪器可以表现得与传统设备非常类似。仅指令语法稍;有改变。为了利用脚本引擎的全部能力,用户只用发送消息来使用脚本语言功能。 PartIII 仪器测试中脚本案例分析以及LXI 今天我们会介绍实际操作时的一些案例和经验,并且介绍一下LXI和脚本。通过发送以下脚本,用户能让仪器执行二分查找法搜索能输出1mA电流的电压源:<代码略> 这种脚本的好处是避免了读取每个结果和发送指令输出新电平所需的通信时间。虽然有理由询问发送较长消息需要多长时间,但是通常发送一条较长的消息比来回通信许多条较短消息快得多。然而,脚本环境的一个优点是前述代码可以封装为函数定义,然后重用,用的时候就能完全避免发送长消息。例如:<代码略> 前面的指令不会让仪器立刻执行,但是它创建了一个命名为"Search(搜索)"的存储程序,之后可以用搜索指令调用:Search(2.5, 0.001) 仪器有一些特点能补充脚本引擎。如果脚本环境提供仪器前面板的编程访问,那么用户就能创建交互式脚本提示用户在前面板输入参数或显示结果。仪器还能提供非易失的板上脚本存储,因此当仪器上电时,这些存储的脚本就能自动执行。这允许执行预先载入的应用,无需任何用户动作,只需要打开仪器的电源。 嵌入式脚本为测试和测量仪器用户提供显著的优点。虽然嵌入式脚本具有一些次要的缺点,例如前面介绍的对查询陌生,但是大多数用户都能很容易使用或者适应。 脚本语言通常能自动管理内存,所以用户无需分配和释放用于字符串或矩阵的存储区。虽然这对用户很方便,但是脚本引擎需要周期性地重新声明不再使用的内存,这个过程被称为"垃圾收集"。虽然垃圾收集能自动进行,但是这得花费时间,而且如果在测试序列的关键时间段上发生垃圾收集就会出现问题。这些问题是可以预防的,但是首先用户必须理解垃圾收集器的影响并且知道如何在测试序列的关键时间段上避免垃圾收集。 下面介绍一下LXI和脚本 现行的测试仪器LXI标准不要求仪器可编程或实现脚本。然而,LXI标准中的许多特点预先考虑了可编程仪器,并提供有用的功能性以增强LXI标准仪器的脚本性能。 LXI标准要求Class A和Class B仪器通过LAN消息支持对等消息传送,并允许Class C仪器支持这种消息传送。LAN消息能用于通知其它LXI仪器事件或者触发另一台仪器执行某些功能。在接收到LAN消息时,用户必须能指明采取什么动作。为了实现这个,最灵活的方法以及LXI标准推荐的方法是允许用户下载可执行代码(即脚本或程序)到仪器中,然后在接收到适合的LAN消息时执行该代码。这提供了极大灵活性,因为用户不被局限于一组预定动作集。 此外,LXI定义的LAN消息格式包含一个小空间,用于包括任意数据作为消息的一部分。可以传送可执行代码(例如一个短脚本)作为LAN消息的一部分。这允许一台仪器通过LAN消息控制另一台仪器,无需预先设置回应。例如,假定一台仪器能对被测器件(DUT)进行测量。基于测量的结果,第一台仪器必须能改变由另一台仪器施加到DUT上的激励。基于第一次测量计算新的激励值,所以在之前第一台仪器并不知道。在这种情况下,第一台仪器可以发送包含一个短脚本的LAN消息至第二台仪器以调整激励值。 Part IV测试和测量中应用脚本的优点 下面介绍基于脚本的仪器的优点。当仪器也符合LXI标准时,许多优点被加强。 对于许多测试和测量应用,非常适合采用PC作为控制器用于与单独仪器通信或使用带有积分型控制器的基于时隙的系统。但对于其它情况,那些方法或者由于大材小用而过于昂贵,或者不能胜任此任务。这些应用可以受益于基于脚本的仪器提供的额外能力和灵活性。这部分描述了在测试和测量应用中脚本的优点。 1. 结构的灵活性构建带少量仪器的小型测试系统可以不带单独控制器;其中一台仪器用作控制器,管理其它仪器的工作。大系统能被划分为各含少量仪器的子系统,其中每个子系统被基于脚本的仪器管理。这简化了系统设计并且有助于提高性能。例如在装配线、科学应用或射频测试应用中,这类子系统使用基于LXI脚本的仪器就能很大程度地在物理上分开。 2. 提高性能由基于脚本的仪器管理将大系统划分为子系统,这扩展了跨多处理器的控制和数据处理功能,从而提升了系统可用的总处理能力并且常常提升整体速度和吞吐量。此外,这种工作划分支持并行测试:当中心控制器忙于其它任务时,仪器或子系统不必保持空闲状态。 因为当传输命令或数据时,由于与控制器通信造成的延时更少,所以仪器上运行的脚本能以最大速度运行。当仪器执行重复测试序列时,这尤其重要。如果用单独的控制器,即使同样的序列被运行了几百次或者几千次,每次通过时都要传送一次指令序列到仪器。对比使用脚本的方法,仅需传输一次脚本,然后使用短指令可以运行任意多的次数。 条件处理(例如当一个测量的结果确定下一个要执行的函数时)提供了另一种提高性能的手段。在脚本中,本地进行条件检查能去除由发送第一结果至控制器,等待控制器处理,然后发送下一个指令给仪器这个过程产生的延时。 在包含高数据率和/或大数据集的系统中,通信延迟、带宽限制和控制器吞吐量都可能是严重的瓶颈。基于脚本的仪器能压缩数据以降低带宽要求和/或缓冲数据,当带宽可用时再通过后台传输。基于脚本的仪器还能过滤数据,例如通过仅传送超出正常限度的数据。如前面所提到的,脚本还降低了消耗的通信带宽,从控制器发送命令至仪器,从而提高带宽受限应用的性能并且最小化由于通信延迟引起的时延。 3.降低成本使用基于脚本的仪器构建较小或较低复杂度的测试系统不需要单独的控制器,从而节省了控制器的成本并节省了用于控制仪器的任意单独测试运行软件的成本。当从基于脚本的仪器构建子系统时,构建大的测试系统同样可以实现节约成本。
闂傚倸鍊搁崐宄懊归崶顒夋晪鐟滃繘骞戦姀銈呯疀妞ゆ棁妫勬惔濠囨⒑瑜版帒浜伴柛鐘冲浮瀹曟垿骞橀幇浣瑰兊濡炪倖鍔戦崹鍦矈椤曗偓濮婃椽妫冨☉娆樻闂佺ǹ锕ら…鐑界嵁閹达箑绀嬫い鎺戝€婚幊婵嗩渻閵堝棛澧痪鏉跨Т閳诲秵绻濋崶銊㈡嫽婵炴挻鍩冮崑鎾寸箾娴e啿娲﹂弲顒勭叓閸ャ劎鈽夐柣鎺戠仛閵囧嫰骞掗幋婵愪患闂佽棄鍟伴崰鏍蓟閺囥垹閱囨繝鍨姈鏁堥梻浣呵归鍐礉瀹ュ桅闁告洦鍨伴崘鈧梺闈涒康婵″洤鈻撻妶鍡欑瘈闁冲皝鍋撻柛鏇ㄥ墰椤︿即姊洪崫鍕効缂傚秳绶氶悰顔嘉熼崗鐓庢瀭闂佸憡娲﹂崢褰掑焵椤掆偓閿曨亜顫忓ú顏呭仭闁哄瀵т簺婵$偑鍊栭崹鐢杆囬悽绋课ュù锝呭濞笺劑鏌嶈閸撶喖鐛崘顔碱潊闁靛牆鎳庣粣娑欑節閻㈤潧孝閻庢凹鍘奸埢鎾活敊閸撗咃紳闂佺ǹ鏈懝楣冨焵椤掑嫷妫戠紒顔肩墛缁楃喖鍩€椤掑嫨鈧線寮介鐐殿吅闂佹寧娲嶉崑鎾剁磼閻欌偓閸ㄥ爼寮婚妸鈺傚亞闁稿本绋戦锟� | More...
闂傚倸鍊搁崐宄懊归崶顒夋晪鐟滃繘骞戦姀銈呯疀妞ゆ棁妫勬惔濠囨⒑瑜版帒浜伴柛鐘冲浮瀹曟垿骞橀幇浣瑰兊濡炪倖鍔戦崹鍦矈椤曗偓濮婃椽妫冨☉娆樻闂佺ǹ锕ら…鐑界嵁閹达箑绀嬫い鎺戝€婚幊婵嗩渻閵堝棛澧痪鏉跨Т閳诲秵绻濋崶銊㈡嫽婵炴挻鍩冮崑鎾寸箾娴e啿娲﹂弲顒勭叓閸ャ劎鈽夐柣鎺戠仛閵囧嫰骞掗幋婵愪患闂佽棄鍟伴崰鏍蓟閺囥垹閱囨繝鍨姈鏁堥梻浣呵归鍐礉瀹ュ桅闁告洦鍨伴崘鈧梺闈涱槶閸庮噣宕戦幘璇插唨妞ゆ劗鍠庢禍鐐叏濡厧浜鹃悗姘炬嫹濠电姷鏁告慨鐑藉极閹间礁纾婚柣鎰惈閸ㄥ倿鏌涢锝嗙缂佺姴缍婇弻宥夊传閸曨剙娅i梺绋胯閸旀垿寮婚敐澶婄疀闂傚牊绋戦埛鎺戔攽閻愯尙澧旂紒顔界懇瀵濡搁埡鍌氫簽闂佺ǹ鏈粙鎴︻敂閿燂拷闂傚倸鍊搁崐鎼佸磹閻戣姤鍤勯柛鎾茬劍閸忔粓鏌涢锝嗙闁汇倗鍋撶换婵嬫濞戝崬鍓梺閫炲苯鍘搁柣鎺炲閹广垹鈹戠€n亞鍊為梺鑲┣归悘姘枍閹剧粯鈷掑ù锝呮啞閸熺偞绻涚拠褏鐣电€规洘绮岄埥澶愬閳锯偓閹稿啴姊洪崨濠冨闁稿繑绋撻幑銏ゅ幢濞戞瑧鍘梺鍓插亝缁诲啴宕崇憴鍕╀簻闊洦鎸鹃幗鐘睬庨崶褝韬い銏℃礋椤㈡鎷呴崜韫处
闂傚倸鍊搁崐宄懊归崶顒夋晪鐟滃繘骞戦姀銈呯疀妞ゆ棁妫勬惔濠囨⒑瑜版帒浜伴柛鐘冲浮瀹曟垿骞橀幇浣瑰兊濡炪倖鍔戦崹鍦矈椤曗偓濮婃椽妫冨☉娆樻闂佺ǹ锕ら悘婵嬫偩闁垮闄勭紒瀣仢瀹撳棝姊虹紒妯哄妞ゆ梹鐗曞嵄婵炲樊浜濋悡鐔兼煟閺傛寧鎲搁柣顓炶嫰椤儻顦虫い銊ョ墦瀵偊顢氶埀顒勭嵁閹烘绫嶉柍褜鍓熷鍐测堪閸喓鍘甸梺璇″灡濠㈡ǹ顣块梻浣虹帛閹搁箖宕伴幇鏉课﹂柛鏇ㄥ灱閺佸啯銇勯幇鈺佺仼缂佺姾宕电槐鎾存媴閻ゎ垰鍘¢梺绋跨箲閿曘垹顕f繝姘櫜濠㈣埖蓱閺咃綁姊虹紒妯哄缂佷焦鎸抽獮鎰板礃椤旇В鎷洪梺鑽ゅ枑濠㈡ê危缂佹ǜ浜滈柟瀛樼箥濡偓闂佺粯渚楅崳锝夌嵁鐎n喗鏅濋柍褜鍓涚划璇测槈閵忊檧鎷婚梺鍓插亞閸犳捇鍩婇弴銏$厱濠电姴鍊块崣鍕叏婵犲嫮甯涢柟宄版嚇閹煎綊鐛惔鎾充壕濠电姴娲﹂悡娑㈡煕濞戝崬鏋ょ紒鐘靛仱閺屾洟宕遍弴鐘插缂備胶绮换鍫濈暦閸洘鍤嬮柛顭戝亝閻濓箓姊婚崒娆戭槮闁规祴鈧秮娲晝閸屾艾鍋嶉梺浼欑到婢跺洭宕戦幘鎰佹僵妞ゆ挾鍋涢幗鐢告⒑閸濆嫭婀伴柣鈺婂灦閻涱喖螣娓氼垱瀵岄柣鐘叉穿瀵挻绔熼弴銏♀拻濞达絽鎲¢幆鍫ユ煟椤撶儐妯€妤犵偛绻橀弫鎾绘晸閿燂拷
闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗ù锝堟缁€濠傗攽閻樻彃鈧绱撳杈ㄥ枑闁哄啫鐗勯埀顑跨窔瀵粙顢橀悙鑼垛偓鍨攽閿涘嫬浠х紒顕呭灦瀵偊鎮╃紒妯锋嫼闂備緡鍋嗛崑娑㈡嚐椤栨稒娅犳い鏂款潟娴滄粍銇勯幘璺轰沪闁稿鍎抽埀顒冾潐濞叉粓骞婇幘璇茬叀濠㈣泛艌閺嬪酣鏌熼柇锕€鏋涚紒鎻掓健濮婂宕掑▎鎴濆闂佽鍠栭悥鐓庣暦閹版澘鍗抽柣蹇氼嚙缂嶅﹪骞冨⿰鍫熷癄濠㈣泛鐭堥崬鐢告⒑鐠囨彃鍤辩紓宥呮瀹曚即寮介銈勭瑝闂佸搫琚崕鏌ユ偂濞嗗緷褰掓偂鎼达絾鎲煎┑鐐村毆閸ャ劎鍘靛銈嗘瀹曠數绮i弮鈧幈銊︾節閸涱噮浠╅梺鍛婄墬閻楃姴顕i幘顔藉亜闁告縿鍎辩徊鍨攽閿涘嫬浜奸柛濠冨灴瀹曠銇愰幒鎾存珖濡炪倕绻愰悧鍕焵椤戣法顦﹂柍璇查叄楠炴ê鐣烽崶鑸敌у┑锛勫亼閸婃牠骞愭ィ鍐ㄧ獥閹兼番鍔嶉崑鐔访归悡搴f憼闁抽攱鍨块弻娑樷槈濮楀牊鏁鹃柣搴$仛閻熲晠寮诲鍫闂佸憡鎸鹃崰搴敋閿濆棛绡€婵﹩鍘藉▍銏ゆ⒑鐠恒劌娅愰柟鍑ゆ嫹
濠电姷鏁告慨鐑藉极閸涘﹥鍙忓ù鍏兼綑閸ㄥ倻鎲搁悧鍫濈瑲闁稿﹤鐖奸弻娑㈩敃閻樻彃濮庨梺姹囧€楅崑鎾舵崲濠靛顥堟繛鎴濆船閸撲即姊洪崨濠呭缂傚秴锕悰顕€寮介妸锔剧Ф闂佸憡鎸嗛崥閿嬪灦缁绘繂鈻撻崹顔句哗闂侀潧鐗婇幃鍌氼嚕婵犳碍鍋勯柣鎴灻弸鍌炴⒑閸涘﹥澶勯柛瀣椤ゅ倿姊婚崒娆戭槮闁硅绻濆畷娲礃椤旇偐锛涢梺鐟板⒔缁垶鎮¢悢鐓庣婵烇綆鍓欓埀顑惧€曞玻鍧楀箛閻楀牏鍘靛銈嗘閸嬫劙宕洪敐鍥e亾鐟欏嫭绀冩繛鑼枛閻涱喗鎯旈妸锕€鐧勬繝銏f硾閼活垶鐛幒妤佲拻濞达絿枪閹垹绱掓担瑙勫唉鐎殿喗褰冮オ浼村醇濠靛洩绶㈡繝鐢靛Т閿曘倝鎮ф繝鍥ㄥ亗闁哄洨鍠嗘禍婊堟煙閺夊灝顣抽柟顔垮亹缁辨帡鎮╃粵纭呪偓鍧楁煛鐏炲墽鈽夋い顐g箞椤㈡﹢鎮╅崘鍙夌彴闂傚倷娴囬鏍窗濞戭澁缍栧璺虹灱缁犳棃鏌i弮鍌氬付闁绘劕锕﹂幉绋款吋閸モ晙绗夐梺鑽ゅ枛閸嬪﹤銆掓繝姘厪闁割偅绻傞弳娆忊攽閿涘嫭娅曠紒杈ㄥ浮椤㈡瑦绺界粙鍨強婵°倗濮烽崑娑⑺囬婵堜簷闂備礁鎲℃笟妤呭窗濡も偓閳诲秹濮€閵堝棌鎷洪柣鐘充航閸斿苯鈻嶉幇鐗堢厵闁告垯鍊栫€氾拷