版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、自动测试系统的消息交换GPIB器件数据标准推荐《消息交换控制协议》“协议”给出器件处理〈程控消息〉和〈响应消息〉的严格行为准则,协调控制器与器件之间的通信行为,约束器件间的消息通信。
控制器器件命令数据第一节消息交换控制协议一、自动测试系统的消息交换控制器器件命令数据第一节消息交换1第一节消息交换控制协议IEEE488.2GPIB标准IEEE488.1数据语法结构、编码标准公用命令消息交换控制协议消息交换控制协议概述第一节消息交换控制协议IEEE488.2GPIB标准IEE2第一节消息交换控制协议消息交换控制协议消息交换控制功能概念模型消息交换控制状态图消息交换控制构成机制消息交换操作流程消息交换控制协议构成第一节消息交换控制协议消息交换控制协议消息交换控制功能概念3第一节消息交换控制协议IEEE488.1总线IO控制(IOC)状态报告(SR)器件功能(DF)消息交换接口(MEI)IEEE488.1远地消息IEEE488.1器件消息和get器件特定数据器件状态IEEE488.1STBIEEE488.1istIEEE488.2reqtreqf消息状态消息二、消息交换控制功能构成模型第一节消息交换控制协议IEEE488.1总线IO控制状态报4第一节消息交换控制协议1、GPIB总线电缆和信号线驱动器——机械、电器相容2、IOC(IO控制)接口功能——功能和运行相容AHLSHTDCDT处理状态报告、消息交换DABDABDCLSDCGETGPIB接口标准GPIB器件数据标准接口功能状态报告MEI第一节消息交换控制协议1、GPIB总线AHSHDCDT处理5第一节消息交换控制协议(1)接收数据拜特^IOC置bav=1特殊处理ib_full=1IOC置bav=0<DAB><END>=>IBLACSACDSYNbav:拜特可用消息IB:输入缓冲区LACS:听者作用态ACDS:接收数据态第一节消息交换控制协议(1)接收数据拜特^IOC置ba6第一节消息交换控制协议(2)发送数据拜特^IOC置brq=1特殊处理oq_empty=1IOC置brq=0<DAB>=>BUSSGNSTACSYN已传响应结束符?RMT_sent=1后续处理NYbrq:拜特请求消息SGNS:源方产生态TACS:讲者作用态RMT_sent:响应消息结束符已发送第一节消息交换控制协议(2)发送数据拜特^IOC置br7第一节消息交换控制协议(3)响应器件清除接口消息dcas=1抑制DACDCAS接收DCL或SDC初始化器件功能初始化MEIdcas=0释放DACDCAS:器件清除作用态第一节消息交换控制协议(3)响应器件清除接口消息DCAS接8第一节消息交换控制协议(4)响应群触发GETMEI触发控制框器件功能IOCGET,*TRG软逻辑硬件同步启动单个器件同步启动多个器件执行特定操作由*DDT定义的器件动作第一节消息交换控制协议(4)响应群触发GETMEI触发控制9第一节消息交换控制协议get=1抑制DACDTASGETv*TRG启动get=0释放DACDTAS:器件触发作用态第一节消息交换控制协议DTASGETv*TRG启动ge10第一节消息交换控制协议3、器件功能接受来自MEI的合法的、可执行的器件消息单元,产生相应的远控操作。接受来自MEI的有效询问请求,并返回响应数据去MEI。向状态报告框反映有关器件功能状态消息。DFMEI命令合法命令正确执行错误命令、不可执行命令无法执行的命令第一节消息交换控制协议3、器件功能DFMEI命令合法命令11第一节消息交换控制协议4、状态报告响应串行查询和并行查询;接收来自MEI的错误状态和DF的状态消息;产生STB、ist、reqf、reqt到IOC。5、消息交换控制接口处理发到器件和从器件来的所有IEEE488.1的器件相关消息。第一节消息交换控制协议4、状态报告12第一节消息交换控制协议IEEE488.1BusIOC消息交换控制器件功能(DF)输入缓冲器(IB)语法分析程序(Parser)执行控制(EC)响应格式化程序(RF)输出序列(OQ)触发控制ponib_emptyib_fullcleareom,queryp_blockedresetec_blockedreset可执行消息元素ec_idle执行错误p_idel命令错误GETDABENDGETgetp_idel,ec_idel,ib_emptyoq_emptyoq_fullclearrf_blockedreset询问错误响应数据响应消息元素MAVSTB,reqt,reqf,ist触发bavbrqdcasgetRMT_sentIEEE488.1远地消息DABENDGET已分析消息元素消息交换控制接口第一节消息交换控制协议IEEE488.1BusIOC消13第一节消息交换控制协议(1)输入缓冲器(InputBuffer)仪器内部存储器的一部分,采用FIFO数据结构三种操作装入数据取出数据清空两个消息ib_emptyib_full有关规则深度:大于等于零溢出:不允许溢出清零:当且仅当pon或dcas消息为真第一节消息交换控制协议(1)输入缓冲器(InputBuf14第一节消息交换控制协议(2)语法分析器(Parser)作用:从IB中取出DAB、END、GET消息并将其分离为各种句法元素;将句法元素转变为内部表语,发给EC;产生eom、query消息;检查CommandError,向状态报告单元指示出有错误的句法和题头。第一节消息交换控制协议(2)语法分析器(Parser)15第一节消息交换控制协议规则检出命令错(CommandError)在一个〈程控消息〉中发现一个语法错误;发现一个不认识的题头;发现一个对应题头属错误类型的参数;在一〈程控消息〉的第一个字节与〈程控消息结束符〉之间,遇到一个GET消息。错误处理对已通过语法分析的元素,器件可选择“丢弃”或“执行”发出CommandError消息到状态报告丢弃后续的DAB和GET,直到下列条件为真,然后复位:dcas==1;pon==1;eom==1;brq==q&&ib_empty==1第一节消息交换控制协议规则16第一节消息交换控制协议语法分析器复位使Parser回到仪器程控命令的根级,等待处理将接收到的〈程控消息〉的第一个字节复位条件dcas==1;pon==1;eom==1;brq==q&&ib_empty==1第一节消息交换控制协议语法分析器复位17第一节消息交换控制协议语法分析消息已分析的消息元素被检消息的结束符eom被检消息的询问query语法分析器空闲p_idle语法分析器阻塞p_blocked第一节消息交换控制协议语法分析消息18第一节消息交换控制协议已分析的消息元素代表〈程控消息〉的全部或部分的器件内部表语被检消息的结束符eom当以下任一条件产生时,Parser设置eom=TRUE从Ib中收到<END>;分析到一个<GET消息>;<GET>出现在程控消息第一字节和<程控消息结束符>之间的情况除外。触发控制单元已将(trigger)消息传送到DF时。下列任一条件产生时,Parser设置eom=FALSEParser被复位;从Ib收到任何其它的<DAB>或<GET>消息时。第一节消息交换控制协议已分析的消息元素19第一节消息交换控制协议被检消息的询问query以下任一条件产生时,Parser设置query=TRUE:有效的<询问程控题头>;有效的<命令程控题头>:宏标记,其中包括了<询问程控题头>;<GET>或“*TRG”命令,该命令使器件执行*DDT,并且由器件设计者规定器件的触发作用会产生一个<响应消息>当Parser复位或从Ib收到任何其它<DAB>或<GET>消息时,Parser设置query=FALSE第一节消息交换控制协议被检消息的询问query20第一节消息交换控制协议语法分析器空闲p_idlep_idle=TRUEParser已分析了前面所有的消息,而且并未实际处理一个有效的<命令程控消息>或一个有效的<询问程控消息>时。p_idle=FALSE其它任何情况语法分析器阻塞p_blockedp_blocked=TRUEParser等待EC完成前面已分析的消息元素的处理时。p_blocked=FALSE其它任何情况第一节消息交换控制协议语法分析器空闲p_idle21第一节消息交换控制协议(3)执行控制(ExecutionControl)功能接收来自Parser的内部表示码,处理耦合参数、询问和器件同步命令,生成可执行的消息元素(EME)耦合参数:询问:当聚集了足以启动器件操作的消息后,将EME传给器件功能根据所执行的命令的不同,以不同的方式处理下一条消息顺序命令:重叠命令:第一节消息交换控制协议(3)执行控制(Execution22第一节消息交换控制协议错误处理EC应检测出执行错误,并向状态报告框报告执行错误:程控数据超界或与其能力不一致;一个有效的程控消息由于某些器件的状态而不能被适当地执行。EC复位以前的状态不再影响新的程控消息pon==1或dcas==1EC复位第一节消息交换控制协议错误处理23第一节消息交换控制协议执行控制消息执行控制消息元素执行控制空闲消息ec_idle所有被延迟的命令都已执行完毕,并且执行控制已准备好接收一个来自语法分析器的新命令或询问,并且执行控制被复位,或以前所有的命令都已被执行完毕执行控制阻塞消息ec_blocked当EC已准备好将一个有效询问请求发给DF时,如需等待RF和DF处理前一个有效询问请求时,EC置ec_blocked=TRUE。第一节消息交换控制协议执行控制消息24第一节消息交换控制协议器件功能包含所有特定器件的特点和功能,从执行控制接收可执行的消息元素,并执行相应的操作。规则:从执行控制接收有效询问请求,向响应格式化器发出所要求的任何响应数据;向状态报告单元报告器件信息。器件功能消息开机消息pon:MEI复位,进入IDLE态;进入“命令操作完成空闲态”;“询问操作完成空闲态”;当MEI进入IDLE态后,pon撤销。第一节消息交换控制协议器件功能25第一节消息交换控制协议(4)响应格式化程序任务:将来自器件功能的数据元素的内部表示按语法规则转变成一串数据串。规则:分隔响应〈消息单元〉;用〈响应消息结束符〉结束最后一个〈响应消息单元〉;复位:新的响应消息单元不再受复位前条件的影响dcas==1;或pon==1;复位。响应格式消息响应消息元素响应格式器阻塞rf_blocked当RF有一个〈响应消息单元〉要放入Oq,而oq_full=TRUE时,rf_blocked=TRUE第一节消息交换控制协议(4)响应格式化程序26第一节消息交换控制协议(5)输出队列存放响应消息应有足够的长度以防止死锁可以延迟对冗长响应数据的格式化到输出时进行,以降低对Oq长度的要求。当dcas==1;或pon==1时清空输出队列消息“消息可用”消息(MAV)“输出队列满”消息(oq_full)第一节消息交换控制协议(5)输出队列存放响应消息27第一节消息交换控制协议可选的功能框允许器件用硬件高速响应GET消息而不会违反命令的执行顺序规则。出发控制规则:GETib_empty^p_idle^ec_idle^get将GET直接送往DFIBParserEC器件功能DFYNYN高速硬件同步(6)触发控制第一节消息交换控制协议可选的功能框GETib_empty将28第一节消息交换控制协议(7)消息交换控制第一节消息交换控制协议(7)消息交换控制29三、消息交换控制操作1、消息交换的基本原则2、正常操作流程3、出错和违约第一节消息交换控制协议三、消息交换控制操作第一节消息交换控制协议301、消息交换的基本原则完整性对应性顺序性第一节消息交换控制协议1、消息交换的基本原则第一节消息交换控制协议31完整性保证程控消息(询问消息)、响应消息的完整性控制器启动消息交换,在传送完整的询问消息之后,才应从器件读取相应的响应消息;器件在分析完完整的询问消息后,才应产生响应消息元素;控制器接收到完整的响应消息之后,才能发出新的程控消息。---------------------------------------------------------Controller发完整的询问消息Device接受分析完整地询问消息Controller接受完整的响应消息第一节消息交换控制协议完整性第一节消息交换控制协议32对应性器件对于收到的每个完整的询问消息,应产生唯一对应的完整的响应消息。一个询问消息单元可以对应多个响应消息单元,但这些响应消息单元式固定唯一的;(个数、顺序、种类)复合询问所对应的应是唯一对应的复合响应消息;复合响应消息的顺序应对应复合询问消息的顺序。复合响应消息若超出Oq的存储能力,则MEI有关功能框进入阻塞态响应消息的产生:立即产生推迟产生:当Controller读取时才产生。第一节消息交换控制协议对应性第一节消息交换控制协议33顺序性器件必须按接收程控消息元素的次序来分析、解释执行所含的命令:可以单个执行先收到的可语法分析的消息元素,也可以到收到分界符、结束符时执行整个程控消息;先收到的先执行,在先期收到的程控消息单元执行完毕前,不应执行任何程控消息在执行连续的程控消息单元之前,应执行已知的全部程控消息顺序命令重叠命令对GET消息,器件应按执行程控消息元素相同的次序执行GET消息。如果在执行程控消息之前收到GET,则推迟执行GET。第一节消息交换控制协议顺序性第一节消息交换控制协议342、消息交换控制正常操作流程第一节消息交换控制协议2、消息交换控制正常操作流程第一节消息交换控制协议35第一节消息交换控制协议IDELREADQUERYDONERESPONSESENDbav|get|!ib_emptyqueryeom&!bav&!get&ib_empty!eom&brqeom&(!bav&!get&ib_empty)RMT_sentbav|geteomdcaspon正常的操作流程第一节消息交换控制协议IDELREADQUERYDONER36第一节消息交换控制协议助记符名称说明IDLE空闲态产生初始化动作,等待接收消息READ读态收到程控命令读、语法分析、执行消息QUERY询问态收到有效询问继续READ态动作并格式化,存储响应消息以备发送SEND发送态控制器读响应数据,但程控命令未分析完分析执行询问消息并格式化,发送响应消息RESPONSE响应态分析完完整的程控命令格式化、发送响应消息DONE完成态<响应消息结束符>已发送等待下一个消息正常的操作流程状态表第一节消息交换控制协议助记符名称说明IDLE空闲态产生初始37第一节消息交换控制协议IDEL-空闲态操作:器件等待控者消息,接收的下一个数据将被解释为新的程控消息的开始;Oq为空。INITIALIZE操作(dcas|pon=TRUE):清除Ib、Oq;复位Parser、EC、RF。状态变迁:=>READbav|get|!ib_empty=TRUE(有命令到达)第一节消息交换控制协议IDEL-空闲态38第一节消息交换控制协议READ-读态操作:IOC从总线读取<DAB><END><GET>消息,放入Ib,Parser、EC动作,Oq为空。状态变迁:=>QUERYquery=TRUE(分析出一个有效询问,需产生响应消息)=>IDELeom=TRUE(命令结束)第一节消息交换控制协议READ-读态39第一节消息交换控制协议QUERY-询问态操作:IOC从总线读取<DAB><END><GET>消息,放入Ib,Parser、EC动作,状态变迁:=>SENDbrq&!eom=TRUE(控者开始读响应数据,但还未分析完整个命令)=>RESPONSEeom&(!brq&!get&ib_empty)=TRUE(命令分析完,且没有新命令到达)第一节消息交换控制协议QUERY-询问态40第一节消息交换控制协议SEND-发送态操作Parser、EC继续工作,RF产生<响应消息>并装入到Oq,IOC从Oq取出数据发送到控制器。状态变迁=>RESPONSEeom&(!bav&!get&ib_empty)=TRUE(命令分析完,且没有新命令到达)第一节消息交换控制协议SEND-发送态41第一节消息交换控制协议RESPONSE-响应态操作RF格式化数据到Oq,IOC发送数据到控制器。状态变迁=>DONERMT_sent=TRUE(IOC已发送响应消息结束符)第一节消息交换控制协议RESPONSE-响应态42第一节消息交换控制协议DONE-完成态操作Parser、EC、RF处于非激活态,Ib、Oq为空。状态变迁=>READbav|get=TRUE(收到新命令)第一节消息交换控制协议DONE-完成态43第一节消息交换控制协议IDELREADQUERYDONERESPONSESENDeom&(bav|get|!ib_empty)!eom&!bav&!get&ib_emptyeomDEADLOCKoq_full&rf_blocked&ec_blocked&p_blocked&ib_full&(bav|get)brq&!bav&!get&ib_emptybrq&!bav&!get&ib_emptybav|get|(eom&!ib_empty)bav|get12223331:DeadLock2:Unterminated3:Interrupted出错和违约第一节消息交换控制协议IDELREADQUERYDONER44第一节消息交换控制协议原因(在QUERY态出现下面条件)oq_full&rf_blocked&ec_blocked&p_blocked&ib_full&(bav|get)=TRUE操作:向<状态报告框>报告“询问错”;Parser和EC继续工作;丢弃响应消息;可以通过清空Oq和复位RF而脱离DEADLOCK态。状态变迁=>IDELeom=TRUEdcas|pon=TRUE(执行INITIALIZE操作)MEI内部出现阻塞控制器不读响应消息,继续发程控命令置brq=FALSE;控制器读器件时不发送任何响应消息DEADLOCK-死锁第一节消息交换控制协议原因(在QUERY态出现下面条件)M45第一节消息交换控制协议UNTERMINATED原因:IDEL或READ:brq&(!bav&!get&ib_empty)=TRUESEND:!eom&!bav&!get&ib_empty=TRUE操作:在“标准事件状态寄存器”中设置“询问错误”位;清除Oq;选择地执行来自不完整消息中的任意<程控消息单元>元素。(同一消息中的前面所有消息应被执行);丢弃任意部分分析过的<程控消息单元>,以便Parser能准备好去分析一个新的<程控消息单元>;置brq=FALSE;MEC进入IDLE态。器件被设为讲者,但无话可讲询问消息不完整第一节消息交换控制协议UNTERMINATED器件被设为讲46第一节消息交换控制协议INTERRUPTED原因:QUERYeom&(bav|get|!ib_empty)=TRUESENDbav|get|(eom&!ib_empty)=TRUERESPONSEbar|get=TRUE操作:在“标准事件状态寄存器”中设置“询问错误”位;清除Oq;复位EC和RF,以便当器件收到一个新的询问消息单元时能发出正确的响应消息;置brq=FALSEMEC进入READ态;控制器没有读完完整的响应消息,又开始发新的程控命令第一节消息交换控制协议INTERRUPTED控制器没有读完47第一节消息交换控制协议总结状态(7)(IDLE)(READ)(QUERY)(SEND)(RESPONSE)(DONE)(DEADLOCK)动作(3)INTIALIZEUNTERMINATEDINTERRUPTED错误类型(3)命令错误(Parser)执行错误(EC)询问错误(MEC)(DEADLOCK)(UNTERMINATED)(INTERRUPTED)处理程控命令处理程控询问处理死锁错误第一节消息交换控制协议总结处理程控命令处理程控询问处理死48第一节消息交换控制协议MEC的设计实现举例第一节消息交换控制协议MEC的设计实现举例49一、仪器的程控消息器件的听格式功能级定义(高级)规定句法元素的功能含义;供器件指令集的设计者使用。编码级定义(低级)规定实际的编码格式;供语法分析器的设计者使用。编码句法:由句法图产生不满足句法图要求的消息序列将不能被解释为功能元素,并会产生一个“命令错”第二节程控消息句法一、仪器的程控消息第二节程控消息句法50ABC合法组合:ACCBCCCCCCCC图示句法流程第二节程控消息句法二、程控消息编码句法ABC合法组合:图示句法流程第二节程控消息句法二、程控消51端点句法元素基本的、不可分的句法结构。表示一个基本功能或者一个由编码语法表述的特定编码用椭圆表示非端点句法元素中间句法元素;总可以再展开为一个端点元素图。用方框表示。程控题头分隔符程控命令单元记号说明第二节程控消息句法端点句法元素程控题头分隔符程控命令单元记号说明第二节程控52特殊符号大小写等效END消息表示该END消息与前面的数据字节是同时传送的。Q|q^END^ENDNL在发送NL(0x0a)的同时,!ATN&EOI=TURE第二节程控消息句法特殊符号Q|q^END^ENDNL在发送NL(0x0a)的同53完整程控消息-功能句法功能:完整的控者-器件消息。可以为空序列。句法:程控消息结束符程控消息<PROGRAMMESSAGE>PMT<TERMINATEDPROGRAMMESSAGE>功能句法元素第二节程控消息句法完整程控消息-功能句法程控消息结束符程控消息PMT<TERM54程控消息单元分隔符<PROGRAMMESSAGEUNITSEPARATOR>程控消息单元<PROGRAMMESSAGEUNIT>命令消息单元<COMMANDMESSAGEUNIT>询问消息单元<QUERYMESSAGEUNIT><PROGRAMMESSAGE>功能句法<PROGRAMMESSAGEUNIT>功能句法句法分解第二节程控消息句法程控消息单元分隔符程控消息单元命令消息单元询问消息单元<PR55命令程控题头<COMMANDPROGRAMHEADER>程控题头分隔符<PROGRAMHEADERSEPARATOR>程控数据分隔符<PROGRAMDATASEPARATOR>程控数据<PROGRAMDATA><COMMANDMESSAGEUNIT>功能元素询问程控题头<COMMANDPROGRAMHEADER>程控题头分隔符<PROGRAMHEADERSEPARATOR>程控数据分隔符<PROGRAMDATASEPARATOR>程控数据<PROGRAMDATA><QUERYMESSAGEUNIT>功能元素第二节程控消息句法命令程控题头程控题头分隔符程控数据分隔符程控数据<COMMA56字符程控数据<CHARACTERPROGRAMDATA>非十进制数值程控数据<NON-DECIMALNUMERICPROGRAMDATA>十进制数值程控数据<DECIMALNUMERICPROGRAMDATA>字符串程控数据<STRINGPROGRAMDATA>表达式程控数据<EXPRESSIONPROGRAMDATA>任意块程控数据<ARBITRARYBLOCKPROGRAMDATA>后缀程控数据<SUFFIXPROGRAMDATA><PROGRAMDATA>功能元素第二节程控消息句法字符程控数据非十进制数值程控数据十进制数值程控数据字符串程控57分隔符的功能元素程控消息分隔符:在一条程控消息内,分隔<程控消息单元>元素。<空白>定义为:空白<whitespace>;空白字符<whitespacecharacter><空白字符>定义为:0x00~0x09,0x0B~0x20第二节程控消息句法分隔符的功能元素<空白>定义为:空白;空白字符<空白字符>定58程控题头分隔符:用于分割<题头元素>与<数据元素>程控数据分隔符:分隔<程控数据>元素空白<whitespace>空白<whitespace>空白<whitespace>,第二节程控消息句法程控题头分隔符:空白空白空白,第二节程控消息句法59程控消息结束符:空白<whitespace>NL^ENDNL^END0x0A第二节程控消息句法程控消息结束符:空白NL^ENDNL^END0x0A第二节60命令程控题头功能元素功能:表示器件要执行的操作,后面可跟<程控数据>简单命令题头<simplecommandprogramheader>组合命令题头<compoundcommandprogramheader>公用命令题头<commoncommandprogramheader>空白<whitespace>第二节程控消息句法命令程控题头功能元素简单命令题头组合命令题头公用命令题头空白61冒号简单命令题头组合命令题头公共命令题头程控助记符<programmnemonic>程控助记符<programmnemonic>程控助记符<programmnemonic>::程控助记符<programmnemonic>*第二节程控消息句法冒号简单命令题头程控助记符程控助记符程控助记符::程控助记符62下划线0x5F01234567890x30~0x39程控助记符:最大长度=12;优选长度=4命名应与功能相关。eg:MEASureMEAS大小写字母<upper/lowercasealpha>_大小写字母<upper/lowercasealpha>数字<digit>英文字母0x41~0x5A0x61~0x7A第二节程控消息句法下划线0123456789程控助记符:eg63询问程控题头功能元素功能:表示器件要执行的操作,并使器件产生一个响应。后面可跟<程控数据>简单询问题头<simplequeryprogramheader>组合询问题头<compoundqueryprogramheader>公用询问题头<commonqueryprogramheader>空白<whitespace>第二节程控消息句法询问程控题头功能元素简单询问题头组合询问题头公用询问题头空白64冒号简单命令题头组合命令题头公共命令题头程控助记符<programmnemonic>?程控助记符<programmnemonic>程控助记符<programmnemonic>::?程控助记符<programmnemonic>*?第二节程控消息句法冒号简单命令题头程控助记符?程控助记符程控助记符::?程控助65程控数据功能元素功能:传递与程控题头有关的各类参数字符程控数据功能:传递短字符串表示的参数信息eg: SYSTEM:HeaderON句法:程控助记符<programmnemonic>第二节程控消息句法程控数据功能元素程控助记符第二节程控消息句法66十进制数值程控数据规则:范围尾数所包含的字符数目不多于255(领头的0除外)指数:数值在–32000~+32000内取舍:程控数据精度高于器件内部精度时要进行取舍;按绝对值4舍5入;取舍过程在解释后进行。错误报告:按取舍后的译码值进行如果数值超过响应题头所允许的范围,则报告一个“执行错”第二节程控消息句法十进制数值程控数据第二节程控消息句法67尾数<mantissa>空白<whitespace>指数<exponent>-可选数字<optionaldigits>+..数字<digit>可选数字<optionaldigits>数字<digit>E|e空白<whitespace>-+数字<digit>尾数指数数字<digit>可选数字第二节程控消息句法尾数空白指数-可选数字+..数字可选数字数字E|e空白-+数68后缀程控数据在十进制程控数据之后,表示相应的单位因子,用来修改器件对程控数据的解释。第二节程控消息句法后缀程控数据第二节程控消息句法69非十进制数程控数据二进制#B八进制#Q十六进制#H第二节程控消息句法非十进制数程控数据第二节程控消息句法70字符串程控数据传送任何用7bit-ASCII表示的字符,适用于显示文本的场合。第二节程控消息句法字符串程控数据第二节程控消息句法71任意块程控数据传送8bit二进制数据,适用于大批量数据传送(1):#14<DAB><DAB><DAB><DAB>(2):#3004<DAB><DAB><DAB><DAB>(3):#0<DAB><DAB><DAB><DAB>NL^END传送4个数据字节举例:第二节程控消息句法任意块程控数据(1):#14<DAB><DAB><DAB>72表达式程控数据对标量、矢量、矩阵和字串变量进行计算,由器件来处理参数。(<expression>)第二节程控消息句法表达式程控数据(<expression>)第二节程控消息73器件的讲格式<RESPONSEHEADERSEPARATOR><RESPONSEDATA><RESPONSEHEADER><RESPONSEDATA><RESPONSEHEADERSEPARATOR><RESPONSEHEADERSEPARATOR>有题头格式无题头格式第二节程控消息句法器件的讲格式<RESPONSE<RESPONSE<RESP74第三节响应消息句法一、仪器的响应消息二、响应消息编码句法第三节响应消息句法一、仪器的响应消息75第四节状态数据报告结构一、仪器的状态数据报告改进和扩充了IEEE488.1规范SR(串行查询)PP(并行查询)定义了状态报告的完整模式仪器状态报告结构状态数据结构寄存器模式:记录器件的事件和状态的寄存器;队列模式:记录顺序状态和其它信息的队列。提供了一种器件传送IEEE488.1STB给控者的方法:串行查询公用命令第四节状态数据报告结构一、仪器的状态数据报告76第四节状态数据报告结构StatusDataStructure#0StatusDataStructure#1StatusDataStructure#2StatusDataStructure#3StatusDataStructure#4StatusDataStructure#5StatusDataStructure#7StatusByteRegister7543210RQS6MSSServiceRequestEnablingServiceRequestGeneration488.1ServiceRequestFunctionSummaryStatusSummaryStatusEnabledSummaryStatusServiceRequestIndication(rsv)MSSSRQRQS本地消息,用以驱动SR接口功能产生服务请求综合状态状态报告结构总图二、状态报告的基本结构和操作第四节状态数据报告结构StatusDataStruc77服务请求readbySerialPoll第四节状态数据报告结构7DIO8RQS6DIO7MSSESBDIO6MAVDIO53DIO42DIO31DIO20DIO1StatusSummaryMessages主汇总消息readby*STB标准事件状态输出队列三、器件状态字节结构服务请求readbySerialPoll第四节状态78第四节状态数据报告结构RQS6MSS7MAVESB23017452301X&&&&&&&ORServiceRequestGenerationStatusSummaryMessagesServiceRequestEnableregister*SRE<NRf>*SRE?readbySerialPollStatusByteRegisterreadby*STB?服务请求使能四、服务请求产生第四节状态数据报告结构RQS7MAVESB230174579ServiceRequestEnableRegisterStatusByteRegisterNewResonforServiceServiceRequestSynchronizationStatusByteLatch488.1SourceHandshake488.1ServiceRequestfunctionSTBSTBSREreqtreqf488.1APRS488.1rsv488.1SPASandSDYSorSTRS488.1STBSTBRQSSRQBUS:DIO1-6,DIO8BUS:DIO7BUS:SRQ第四节状态数据报告结构图4.21
服务请求的产生ServiceRequestEnableStatus80第四节状态数据报告结构SRWSSRISSRASreqtreqforponAPRSAPRSSRIS:空闲态SRWS:等待态SRAS:作用态APRS:确定的查 询作用态rsv=FALSErsv=FALSErsv=TRUE图4-22rsv状态图第四节状态数据报告结构SRWSSRISSRASreqtr81第四节状态数据报告结构五、推荐的器件通用状态数据结构功能:队列是一个数据结构,含有顺序的信息清单。当所有的信息都已从清单中读出时,该队列清控。读队列由器件定义的询问来读取,该询问使读出的项目放入Oq。写队列不能用<程控消息>直接写入。清除队列*CLS;读出队列中的所有项目;其它由器件指定的方法。SummaryMessagedatadatadatadatadatadataQueueQueuenotempty图4-24序列型状态数据结构第四节状态数据报告结构五、推荐的器件通用状态数据结构Su82第四节状态数据报告结构ornn-1**nn-1nn-1210***210210DeviceStatusContinuouslyMonitoredCondtionRegisterTransitionFilterSelectswhichtransitionsofconditionbitswillsetcorrespondingeventbitsEventRegister(Latchedconditions)EventenableRegisterSelectswhicheventscansettheSummaryMessage*:ororboth&&&&&SummaryMessage
图4-23寄存器型状态数据结构第四节状态数据报告结构ornn-1**nn-1nn-1283第四节状态数据报告结构图4-25标准状态数据结构六、必须实现的标准状态数据结构第四节状态数据报告结构图4-25标准状态数据结构六、84第四节状态数据报告结构PON7URQ6CME5EXE4DDE3QYE2RQE1OPC076543210&&&&&&&&ORSummaryMessageEventSummaryBit(ESB)StandardEventStatusEnableRegister*ESE<NRf>*ESE?StandardEventStatusRegister*ESR?PowerOnUserRequestCommandErrorExecutionErrorDeviceDependentErrorQueryErrorrequestcontrolOperationComplete标准事件状态寄存器模式第四节状态数据报告结构PONURQCMEEXEDDEQY85第四节状态数据报告结构标准状态事件寄存器读:*SER?写:只能清除,不能程控写入。清除:*CLS通电状态清除标志为真时的电源接通*ESR?命令第四节状态数据报告结构标准状态事件寄存器86第四节状态数据报告结构标准事件状态使能寄存器功能允许标准事件状态寄存器中的一个或几个事件反映于ESB。读:*ESE?写:*ESE<NRf>清除:*ESE0通电状态清除标志为真时,或在未执行*PSC命令的条件下接通电源;第四节状态数据报告结构标准事件状态使能寄存器87第四节状态数据报告结构标准队列模式反映于MAV读:FIFO当器件处于讲者作用态时,该队列被讲出。写:清除:第四节状态数据报告结构标准队列模式88第四节状态数据报告结构七、并行查询响应的处理第四节状态数据报告结构七、并行查询响应的处理89第五节公用命令概述规定了每个相容器件有能力执行的公用命令集。共39个命令,分10个组。其中13个公用命令要求器件必须执行,其余为可选命令。自动组态组、宏命令组、存贮设置组的命令必须被同时选用。第五节公用命令概述90第五节公用命令句法公用命令*RST*CLS公用询问*IDT?*OPC?程控助记符*程控助记符*?第五节公用命令句法程控*程控*?91第五节公用命令1自动组态*ADD*DLF2系统数据*IND?*OPT?*PUD*PUD?*RDT*RDT?3内部操作*CAL?*LRE?*RST*TST?4同步*OPC*OPC?*WAI5宏*DMC*EMC*EMC?*GMC?*LMC?*PMC6并行查询*IST?*PRE*PRE?7状态和事件*CLS*ESE*ESE?*ESR?*PSC*PSC?*SRE*SRE?*STB?8触发*DDT*DDT?*TRG9控制*RCL*SAV10保存设置*PCB分组一、公用命令和询问集第五节公用命令1自动组态*ADD*DLF2系统数据*92第五节公用命令1*ADDAcceptAddressCommand接受地址命令2*CAL?CalibrationQuery校准询问3*CLSClearStatusCommand清除状态命令4*DDTDefineDeviceTriggerCommand定义器件触发命令5*DDT?DefineDeviceTriggerQuery定义器件触发询问6*DLFDisableListenerFunctionCommand禁止听者功能命令7*DMCDefineMacroCommand定义宏命令8*EMCEnableMacroCommand使能宏命令9*EMC?EnableMacroQuery使能宏询问10*ESEStandardEventStatusEnablecommand标准事件状态使能命令11*ESE?StandardEventStatusEnableQuery标准事件状态使能询问12*ESR?StandardEventStatusRegisterQuery标准事件状态寄存器询问13*GMC?GetMacroContentsQuery获取宏内容询问14*IDN?IdentificationQuery识别询问15*IST?IndividualStatusQuery个别状态询问16*LMC?LearnMacroQuery学习宏询问17*LRN?LearnDeviceSetupQuery学习器件设置询问18*OPCOperationCompleteCommand操作完成命令19*OPC?OperationCompleteQuery操作完成询问20*OPT?OptionIdentificationQuery选用识别询问21*PCBPassControlBackCommand通过控制反馈命令22*PMCPurgeMacrocommand清除宏标记命令23*PREParallelPollRegisterEnableCommand并行查询寄存器使能命令24*PRE?ParallelPollRegisterEnableQuery并行查询寄存器使能询问25*PSCPowerOnStatusClearCommand开机状态清除命令26*PSC?PowerOnStatusClearQuery开机状态清除询问27*PUDProtectedUserDataCommand保护用户数据命令28*PUD?ProtectedUserDataQuery保护用户数据询问29*RCLRecallCommand回调命令30*RDTResourceDescriptionTransferCommand资源描述转移命令31*RDT?ResourceDescriptionTransferQuery资源描述转移询问32*RSTResetCommand复位命令33*SAVSaveCommand存储命令34*SREServiceRequestEnableCommand服务请求使能命令35*SRE?ServiceRequestEnableQuery服务请求使能询问36*STB?ReadStatusByteQuery读状态字节询问37*TRGTriggerCommand触发命令38*TST?Self-TestQuery自测询问39*WAIWait-to-ContinueCommand等待继续命令总表第五节公用命令1*ADDAcceptAddressC93第五节公用命令自动组态
*ADDAcceptAddressCommand接受地址命令
*DLFDisableListenerFunctionCommand禁止听者功能命令系统数据M*IDN?IdentificationQuery识别询问
*OPT?OptionIdentificationQuery选用识别询问
*PUDProtectedUserDataCommand保护用户数据命令
*PUD?ProtectedUserDataQuery保护用户数据询问
*RDTResourceDescriptionTransferCommand资源描述转移命令
*RDT?ResourceDescriptionTransferQuery资源描述转移询问内部操作
*CAL?CalibrationQuery校准询问
*LRN?LearnDeviceSetupQuery学习器件设置询问M*RSTResetCommand复位命令M*TST?Self-TestQuery自测询问同步M*OPCOperationCompleteCommand操作完成命令M*OPC?OperationCompleteQuery操作完成询问M*WAIWait-to-ContinueCommand等待继续命令宏
*DMCDefineMacroCommand定义宏命令
*EMCEnableMacroCommand使能宏命令
*EMC?EnableMacroQuery使能宏询问
*GMC?GetMacroContentsQuery获取宏内容询问
*LMC?LearnMacroQuery学习宏询问
*PMCPurgeMacrocommand清除宏标记命令并行查询M1*IST?IndividualStatusQuery个别状态询问M1*PREParallelPollRegisterEnableCommand并行查询寄存器使能命令M1*PRE?ParallelPollRegisterEnableQuery并行查询寄存器使能询问状态和事件M*CLSClearStatusCommand清除状态命令M*ESEStandardEventStatusEnablecommand标准事件状态使能命令M*ESE?StandardEventStatusEnableQuery标准事件状态使能询问M*ESR?StandardEventStatusRegisterQuery标准事件状态寄存器询问
*PSCPowerOnStatusClearCommand开机状态清除命令
*PSC?PowerOnStatusClearQuery开机状态清除询问M*SREServiceRequestEnableCommand服务请求使能命令M*SRE?ServiceRequestEnableQuery服务请求使能询问M*STB?ReadStatusByteQuery读状态字节询问触发
*DDTDefineDeviceTriggerCommand定义器件触发命令
*DDT?DefineDeviceTriggerQuery定义器件触发询问M2*TRGTriggerCommand触发命令控制M3*PCBPassControlBackCommand通过控制反馈命令保存设置
*RCLRecallCommand回调命令
*SAVSaveCommand存储命令M1:MandatoryifPP1M2:MandatoryifDT1M3:MandatoryifotherthanC0
分组表第五节公用命令自动
*ADDAcceptAddress94第五节公用命令1*IDN?IdentificationQuery识别询问2*RSTRestCommand复位命令3*TST?Self-TestQuery自测询问4*OPCOperationCompleteCommand操作完成命令5*OPC?OperationCompleteQuery操作完成询问6*WAIWait-to-ContinueCommand等待继续命令7*CLSClearStatusCommand清除状态命令8*ESEStandardEventStatusEnableCommand标准事件状态使能命令9*ESE?StandardEventStatusEnableQuery标准事件状态使能询问10*ESR?StandardEventStatusRegisterQuery标准事件状态寄存器询问11*SREServiceRequestEnableCommand服务请求使能命令12*SRE?ServiceRequestEnableQuery服务请求使能询问13*STB?ReadStatusByteQuery读状态字节询问必选的公用命令第五节公用命令1*IDN?IdentificationQ95第五节公用命令二、公用命令和询问语义*IDN?功能:在系统母线上唯一地识别器件。响应:<任意的ASCII响应数据>分四个场:1:制造者 必填2:型号 必填3:串号 不用则填充‘0’4:固件版本号 不用则填充‘0’eg.“NANHVA,NHA,1PP30215008,0215<NL>”第五节公用命令二、公用命令和询问语义96第五节公用命令*RST功能执行三级复位结构中的第三级,完成器件复位。操作:把器件功能置为一个已知状态,而与器件使用历史无关;用*DDT对器件规定的状态设置宏定义;禁止宏命令;器件进入OCIS态;器件进入OQIS态。第五节公用命令*RST97第五节公用命令不能影响一下功能:接口状态器件地址输出队列标准状态寄存使能寄存器标准事件使能寄存器通电状态清除标志的设置定义宏命令定义的所有宏影响器件指标的校准数据保护用户数据询问响应资源表述传输询问响应第五节公用命令不能影响一下功能:98第五节公用命令*TST?功能:要求器件进行一次内部自检测并报告是否出错。在响应消息中可以有选择地说明原因。第五节公用命令*TST?99第五节公用命令*OPC要求器件在完成当前执行的操作后,在标准事件状态寄存器的比特0位至1。*OPC?要求器件在所有操作完成后,将ASCII字符‘1’放入Oq。*WAI要求器件在完成先期全部全部命令或询问后,在继续执行在*WAI后的其它命令。第五节公用命令*OPC100第五节公用命令*CLS功能:清除器件状态报告的所有状态数据结构;清除所有悬而未决的服务请求。第五节公用命令*CLS101第五节公用命令*ESE设置标准状态使能寄存器各位*ESE<mask>;<mask>为<NRf>格式,经四舍五入转换位0~255之间的二进制数,对应使能寄存器各位。*ESE?读取器件标准状态使能寄存器设置值。响应:<mask><NL>。*ESR?读取器件标准状态寄存器内容,并清除该寄存器。响应:<status><NL><mask>使用<NR1>格式。范围:0~255<status>使用<NR1>格式。范围:0~255第五节公用命令*ESE<mask>使用<NR1>格式。<s102第五节公用命令*SRE设置服务请求使能寄存器各比特值;*SRE<mask><NL>*SRE?读取器件服务请求使能寄存器当前内容;响应:<mask><NL>*STB?读取器件的状态寄存器当前内容STB+MSS响应:<value><NL><mask>使用<NR1>格式范围:0~255<value>使用<NR1>格式。范围:0~255第五节公用命令*SRE<mask>使用<NR1>格式<va103第六节GPIB器件的初始复位操作为了使进入ATS的器件在同一状态水平上启动运行,定义了统一的复位操作第六节GPIB器件的初始复位操作为了使进入ATS的器件在104第六节GPIB器件的初始复位操作IEEE488.1IEEE488.2SCPI远地接口消息语法与数据结构公用命令与询问具体器件消息SCPIIEEE488.1IEEE488.2器件X器件Y标准化的器件数据第六节GPIB器件的初始复位操作IEEE488.1IEE105第六节GPIB器件的初始复位操作一、三级复位命令与操作GPIB标准规定了三个复位层次:GPIB接口总线初始化命令:IFC所有器件供能恢复到空闲态,撤销所有的总线器件的寻址命令,系统控者成为负责控者。消息交换控制初始化命令:DCL/SDCdcas清除Ib、Oq、清掉一切悬而未决的命令并准备接收新的命令。Parser、EC、RF复位。器件功能初始化命令:*RST器件功能设置到一个已知状态。第六节GPIB器件的初始复位操作一、三级复位命令与操作106第六节GPIB器件的初始复位操作二、电源通复位要求仪器电源接通时,器件功能产生pon本地消息(poweron),引起综合复位:等效于IFC;等效于DCL/SDC;允许替代*RST命令,使器件功能初始化。最后一次系统级操作要求的掉电时的状态值;或用户说明书规定的状态;或存储在器件内部非易失存储器中的用户定义状态。第六节GPIB器件的初始复位操作二、电源通复位要求107一、自动测试系统的消息交换GPIB器件数据标准推荐《消息交换控制协议》“协议”给出器件处理〈程控消息〉和〈响应消息〉的严格行为准则,协调控制器与器件之间的通信行为,约束器件间的消息通信。
控制器器件命令数据第一节消息交换控制协议一、自动测试系统的消息交换控制器器件命令数据第一节消息交换108第一节消息交换控制协议IEEE488.2GPIB标准IEEE488.1数据语法结构、编码标准公用命令消息交换控制协议消息交换控制协议概述第一节消息交换控制协议IEEE488.2GPIB标准IEE109第一节消息交换控制协议消息交换控制协议消息交换控制功能概念模型消息交换控制状态图消息交换控制构成机制消息交换操作流程消息交换控制协议构成第一节消息交换控制协议消息交换控制协议消息交换控制功能概念110第一节消息交换控制协议IEEE488.1总线IO控制(IOC)状态报告(SR)器件功能(DF)消息交换接口(MEI)IEEE488.1远地消息IEEE488.1器件消息和get器件特定数据器件状态IEEE488.1STBIEEE488.1istIEEE488.2reqtreqf消息状态消息二、消息交换控制功能构成模型第一节消息交换控制协议IEEE488.1总线IO控制状态报111第一节消息交换控制协议1、GPIB总线电缆和信号线驱动器——机械、电器相容2、IOC(IO控制)接口功能——功能和运行相容AHLSHTDCDT处理状态报告、消息交换DABDABDCLSDCGETGPIB接口标准GPIB器件数据标准接口功能状态报告MEI第一节消息交换控制协议1、GPIB总线AHSHDCDT处理112第一节消息交换控制协议(1)接收数据拜特^IOC置bav=1特殊处理ib_full=1IOC置bav=0<DAB><END>=>IBLACSACDSYNbav:拜特可用消息IB:输入缓冲区LACS:听者作用态ACDS:接收数据态第一节消息交换控制协议(1)接收数据拜特^IOC置ba113第一节消息交换控制协议(2)发送数据拜特^IOC置brq=1特殊处理oq_empty=1IOC置brq=0<DAB>=>BUSSGNSTACSYN已传响应结束符?RMT_sent=1后续处理NYbrq:拜特请求消息SGNS:源方产生态TACS:讲者作用态RMT_sent:响应消息结束符已发送第一节消息交换控制协议(2)发送数据拜特^IOC置br114第一节消息交换控制协议(3)响应器件清除接口消息dcas=1抑制DACDCAS接收DCL或SDC初始化器件功能初始化MEIdcas=0释放DACDCAS:器件清除作用态第一节消息交换控制协议(3)响应器件清除接口消息DCAS接115第一节消息交换控制协议(4)响应群触发GETMEI触发控制框器件功能IOCGET,*TRG软逻辑硬件同步启动单个器件同步启动多个器件执行特定操作由*DDT定义的器件动作第一节消息交换控制协议(4)响应群触发GETMEI触发控制116第一节消息交换控制协议get=1抑制DACDTASGETv*TRG启动get=0释放DACDTAS:器件触发作用态第一节消息交换控制协议DTASGETv*TRG启动ge117第一节消息交换控制协议3、器件功能接受来自MEI的合法的、可执行的器件消息单元,产生相应的远控操作。接受来自MEI的有效询问请求,并返回响应数据去MEI。向状态报告框反映有关器件功能状态消息。DFMEI命令合法命令正确执行错误命令、不可执行命令无法执行的命令第一节消息交换控制协议3、器件功能DFMEI命令合法命令118第一节消息交换控制协议4、状态报告响应串行查询和并行查询;接收来自MEI的错误状态和DF的状态消息;产生STB、ist、reqf、reqt到IOC。5、消息交换控制接口处理发到器件和从器件来的所有IEEE488.1的器件相关消息。第一节消息交换控制协议4、状态报告119第一节消息交换控制协议IEEE488.1BusIOC消息交换控制器件功能(DF)输入缓冲器(IB)语法分析程序(Parser)执行控制(EC)响应格式化程序(RF)输出序列(OQ)触发控制ponib_emptyib_fullcleareom,queryp_blockedresetec_blockedreset可执行消息元素ec_idle执行错误p_idel命令错误GETDABENDGETgetp_idel,ec_idel,ib_emptyoq_emptyoq_fullclearrf_blockedreset询问错误响应数据响应消息元素MAVSTB,reqt,reqf,ist触发bavbrqdcasgetRMT_sentIEEE488.1远地消息DABENDGET已分析消息元素消息交换控制接口第一节消息交换控制协议IEEE488.1BusIOC消120第一节消息交换控制协议(1)输入缓冲器(InputBuffer)仪器内部存储器的一部分,采用FIFO数据结构三种操作装入数据取出数据清空
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机油产品代工合同范例
- 农业灌溉租赁合同范例
- 足球培训合同范例
- 罐头原料收购合同范例
- 塘渣采购合同范例
- 买卖煤合同范例
- 钢坯购销合同范例
- 大车维修合同范例上传
- 长期生产合同范例
- 人工清包合同范例
- 每日食品安全检查记录
- 社区电动车应急预案方案
- 项目成本节约措施总结报告
- 高中化学课件:水溶液中离子平衡图像分析
- 减盐控油控制体重规章制度
- 基于Android系统的天气预报APP设计
- (完整版)员工流失文献综述
- 粉末涂料有限公司邦定搅拌机安全风险分级管控清单
- 大学生创新创业(微课版第3版)课件全套 人邮 第1-10章 了解创业规划你的职业生涯-初创企业的财务管理
- 管沟开挖安全培训课件
- Clean-PVC管道粘接施工工艺标准
评论
0/150
提交评论