发明内容
本发明提供了一种测试工装的数字输入输出口扩容装置,可以扩展数据采集卡的输入输出线的数量使其满足下位机的传输线的需要。
一种测试工装的数字输入输出口扩容装置,包括译码器、多个下行锁存器;所有下行锁存器组成下行锁存器组;数据采集卡通过输入输出线分别与译码器的输入端和下行锁存器的输入端连接;数据采集卡与译码器输入端连接的输入输出线称为地址线,数据采集卡与下行锁存器输入端连接的输入输出线称为数据线;所有下行锁存器的输入端相互并联再与数据采集卡的数据线相连接;译码器的至少一部分输出端与各下行锁存器的锁存端通过反相器一一对应连接;译码器能将其输入端的M条地址线译码为其输出端的2M位地址,且使得所述2M位地址中有且仅有一位地址为低电平,控制下行锁存器组在同一时刻仅有一个下行锁存器能被打开;至少一部分下行锁存器的输出端与下位机连接。
优选地,还可以包括多个总线收发器;至少一部分总线收发器的输入端与下位机分别连接;所有与下位机连接的总线收发器组成总线收发器组;所有总线收发器的输出端并联再与数据采集卡的数据线相连;所述数据采集卡的数据线是双向数据线,输入端并联的下行锁存器的输入端与输出端并联的总线收发器的输出端并联并与数据采集卡的双向数据线连接;译码器的输出端还包括上行输出端,所述译码器的上行输出端与各总线收发器的使能端一一对应连接,通过对译码器的上行输出端的至多一位地址置低电平打开相应的总线收发器,总线收发器组在同一时刻至多仅有一个总线收发器能被打开。
优选地,还可以包括多个上行锁存器,每个与下位机连接的总线收发器的输入端均通过一个上行锁存器与下位机分别连接。
优选地,下位机可以通过多条控制线分别与每个上行锁存器的锁存端连接。
优选地,数据采集卡可以通过控制线与下行锁存器的使能端连接,控制下行锁存器的通断。
一种用于上述测试工装的数字输入输出口扩容装置的扩容方法,包括:
S110:执行一个任务时,上位机向数据采集卡发送待传输的数据;与第一下行锁存器相连的译码器输出端设置为唯一的低电平,经反相器后电平翻转变为高电平,控制第一下行锁存器的锁存端为高电平,所述第一下行锁存器的输入端从数据采集卡获取数据并传送到其输出端;
S120:下一时刻,与任务中的下一设定顺序号对应的下行锁存器相连的译码器输出端设置为唯一的低电平,经反相器后电平翻转变为高电平,控制该下行锁存器的锁存端为高电平,该下行锁存器的输入端从数据采集卡获取数据并传送到其输出端;
S130:重复步骤S120,直到该任务涉及到的下行锁存器组的所有需要改变数据的下行锁存器都经过上述的数据传输和数据保持过程;
S140:由下位机获取下行锁存器组中缓存的数据。
一种用于上述数字输入输出口扩容装置的扩容方法,包括:
S110:执行一个任务时,上位机向数据采集卡发送待传输的数据;与第一下行锁存器相连的译码器输出端设置为唯一的低电平,经反相器后电平翻转变为高电平,控制第一下行锁存器的锁存端为高电平,所述第一下行锁存器的输入端从数据采集卡获取数据并传送到其输出端;
S120:下一时刻,与任务中的下一设定顺序号对应的下行锁存器相连的译码器输出端设置为唯一的低电平,经反相器后电平翻转变为高电平,控制该下行锁存器的锁存端为高电平,该下行锁存器的输入端从数据采集卡获取数据并传送到其输出端;
S130:重复步骤S120,直到该任务涉及到的下行锁存器组的所有需要改变数据的下行锁存器都经过上述的数据传输和数据保持过程;
S140:由下位机获取下行锁存器组中缓存的数据;
S200:执行一个任务时,数据采集卡通过译码器控制下行锁存器选择下位机的需要上传数据的存储单元的地址,使下位机准备好需要上传的数据;将译码器输出端的置低电平的地址设置在上行输出端的地址范围内;
S210:将总线收发器组的所有总线收发器的使能端均置高电平;将下行锁存器的使能端置高电平;
S220:对需要打开的上行锁存器使其锁存端置高电平,使下位机的数据传输到所述上行锁存器的输出端,再对所述上行锁存器置低电平;
S230:与第一总线收发器相连的译码器的上行输出端设置为唯一的低电平,使第一总线收发器的使能端为低电平打开第一总线收发器,数据采集卡通过所述第一总线收发器从第一上行锁存器获取其缓存的下位机数据;
S240:下一时刻,与上行任务中的下一接收顺序号对应的总线收发器相连的译码器的上行输出端设置为唯一的低电平,使该总线收发器的使能端为低电平打开该总线收发器;数据采集卡通过该总线收发器从与之相连的上行锁存器获取其缓存的下位机数据;
S250:重复上述步骤S240,直到数据采集卡通过总线收发器组获取了所述上行任务的设定时间内的所有需要的下位机数据。
一种用于上述数字输入输出口扩容装置的扩容方法,包括:
S200:执行一个任务时,数据采集卡通过译码器控制下行锁存器选择下位机的需要上传数据的存储单元的地址,使下位机准备好需上传的数据;将译码器输出端的置低电平的地址设置在上行输出端的地址范围内;
S210:将总线收发器组的所有总线收发器的使能端均置高电平;将下行锁存器的使能端置高电平;
S220:对需要打开的上行锁存器使其锁存端置高电平,使下位机的数据传输到所述上行锁存器的输出端,再对所述上行锁存器置低电平;
S230:与第一总线收发器相连的译码器的上行输出端设置为唯一的低电平,使第一总线收发器的使能端为低电平打开第一总线收发器,数据采集卡通过所述第一总线收发器从第一上行锁存器获取其缓存的下位机数据;
S240:下一时刻,与上行任务中的下一接收顺序号对应的总线收发器相连的译码器的上行输出端设置为唯一的低电平,使该总线收发器的使能端为低电平打开该总线收发器;数据采集卡通过该总线收发器从与之相连的上行锁存器获取其缓存的下位机数据;
S250:重复上述步骤S240,直到数据采集卡通过总线收发器组获取了所述上行任务的设定时间内的所有需要的下位机数据。
本发明的有益效果:本发明的测试工装的数字输入输出口扩容装置和方法,在数据采集卡的输入输出线数量少于下位机传输线数量的情况下,能够有效扩充数据采集卡的输入输出线总量,使其满足实际测试过程中的下位机传输线的需求。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明确,下面结合实施例以及附图对本发明实施例中的技术方案做进一步详细说明。显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。在此,本发明的示意性实施方式及其说明主要用于解释本发明,但并不作为对本发明的限定。
一种测试工装的数字输入输出口扩容装置,包括译码器、多个下行锁存器;下行锁存器的输入端的输入输出线(简称I/O线)的数量与其输出端的传输线(即下行锁存器与下位机相连的传输线,在本实施例的向下位机写数据的过程中也称为输出线)数量相同;所有下行锁存器组成下行锁存器组;数据采集卡(简称DAQ)通过输入输出线分别与译码器的输入端和下行锁存器的输入端连接;数据采集卡与译码器输入端连接的输入输出线称为地址线,数据采集卡与下行锁存器输入端连接的输入输出线称为数据线;所有下行锁存器的输入端相互并联再与数据采集卡的数据线相连接;译码器的至少一部分输出端与各下行锁存器的锁存端(简称LE端)通过反相器一一对应连接;译码器能将其输入端的M条地址线译码为其输出端的2M位地址,且使得所述2M位地址中有且仅有一位地址为低电平,控制下行锁存器组在同一时刻仅有一个下行锁存器能被打开(通过控制下行锁存器的锁存端来实现);至少一部分下行锁存器的输出端的传输线分别与下位机连接。
锁存器可用于缓存数据,首先将其使能端(简称OE端)置低电平打开锁存器,此时将其锁存端(LE端)置成高电平,锁存器输入端的数据才能传到其输出端;然后将锁存端置成低电平,此时锁存器输出端的数据将被保持不变,即LE端置低电平时锁存器的输出端数据不会因其输入端数据的改变而改变,即实现了缓存数据的功能。
上位机通过PCIe接口与DAQ连接,如图1所示。DAQ通过所述地址线与译码器的输入端连接,比如图1的实施例中使用了如表1所示的3条地址线与译码器连接。译码器能将其输入端的M条地址线译码为其输出端的2M位地址,且使得所述2M位地址中有且仅有一位地址为低电平,即表1、表2中相应于“仅为0的输出”列的内容,而同一时刻其余位均为高电平,以此对与译码器输出端连接的电子元件进行唯一控制。译码器作为常用电子元件有3-8译码器、4-16译码器、5-32译码器等。本发明图1所示的实施例中的译码器为3-8译码器,即图1的实施例中的3-8译码器可以同时控制8个下行锁存器。当然,本领域技术人员可以理解,基于本发明的思想采用不同的译码器的类型(比如4-16译码器或5-32译码器)或多个3-8译码器扩展成具有16个或32个地址的方式也能得到与本发明实施例类似的技术方案,根据M条地址线能够最多控制2M个下行锁存器的原理,可以分别控制16个或32个下行锁存器甚至更多的下行锁存器,因此这些扩展的技术方案也应在本发明的保护范围之内。由译码器在同一时刻仅输出一位低电平的特性,能够在同一时刻控制仅有一个下行锁存器能被打开。下行锁存器的输入端的I/O线(即DAQ的数据线)的数量应与下行锁存器的输出端的传输线的数量相同,在本实施例中即也为8根。
表1 3地址线译码器真值表
表2 4地址线译码器真值表
图1的实施例中,8个下行锁存器的输入端并联再与DAQ的8条数据线连接,而每个下行锁存器均具有8根输出线,即8个下行锁存器(对应于8根数据线,再加上3根地址线,共需要11根DAQ的I/O线)对下位机具有共8×8=64根输出线,从而实现了DAQ向下位机端扩容的功能。在图1的实施例中,将8个下行锁存器的OE端(图中未画出)均置低电平(比如直接接地),使其均为打开状态,使其工作。
DAQ的数据线也可以设定为16根,相应地,总线收发器和上行锁存器的输入端和输出端也均为16位,此时,DAQ的24根I/O线除去用于数据线的16根和预留1根备用线外,还剩7根,最多可以控制27=128组总线收发器和上行锁存器(由于该过程是下位机的数据通过上行锁存器、总线收发器将数据传输给DAQ,因此每组总线收发器和上行锁存器可称为一条上行链路,128组总线收发器和上行锁存器即128条并行的上行链路),则这128个总线收发器的输出端并联再与DAQ的16条数据线连接,如前所述本实施例中的每条上行链路均具有16根输出线,那么128条上行链路向下位机最多具有128×16=2048根传输线,也就是说,只要下位机对外的传输线(包括下位机数据线、下位机地址线、下位机控制线)少于2048根(实际应用中通常用不到这么多传输线),用本发明的具有24根I/O线的DAQ就能满足要求。
本发明的测试工装的数字输入输出口扩容装置的一个实施例可以实现上位机指令对下位机的控制,每条指令是向某个特定的下行锁存器传输其需要缓存的数据。具体而言,通过DAQ获取上位机的指令,先从该指令中解析出需要传输数据的下行锁存器的地址线,并由译码器将该地址线转换为译码器输出端的地址,通过控制相应地址的下行锁存器的锁存端打开该下行锁存器,再从该指令中解析出需要传输的数据,在该下行锁存器的使能端置为低电平的情况下,通过数据线将所述需要传输的数据传输给该地址对应的下行锁存器。
若实现一个任务需要按设定顺序实现若干指令。对指令按照设定顺序编号,由于每条指令仅向一个下行锁存器传输数据(即每条指令仅针对一个下行锁存器),则执行一个任务时各指令的顺序号分别为该条指令对应的下行锁存器的编号。也就是说,执行任务就是按照该任务中的设定顺序号(即该指令的顺序号,也即该指令对应的下行锁存器的编号)将需要传输的数据依次缓存到对应的下行锁存器中。
下位机可以在下行锁存器组缓存完毕数据以后一次性获取下行锁存器组中缓存的数据(不要求下行锁存器组中的所有下行锁存器均被使用),可以设定该过程为一个任务,即以下位机接收一次下行锁存器组的缓存数据认为是一个任务。这样,下行锁存器组的各下行锁存器在每个任务中至多仅缓存一次数据(即每个下行锁存器在一个任务中可以缓存一次数据或者不缓存数据);否则,被缓存在下行锁存器中的数据还未传输给下位机即会被替换掉,会影响下位机接收数据的准确性。
图1所示的实施例中,先将所有下行锁存器的OE端均置为低电平,也就是打开全部下行锁存器。执行一个任务时,与第一下行锁存器(所述“第一下行锁存器”为执行该任务时对应于第一条指令的下行锁存器)相连的译码器输出端为唯一的低电平,经反相器后电平翻转变为高电平,控制第一下行锁存器的锁存端为高电平,即此时的8个下行锁存器仅所述第一下行锁存器的输入端从DAQ获取的数据能传送到其输出端;此时由于其余的下行锁存器的锁存端为低电平,它们的输出端保持原来的数据不变,不受此时DAQ的数据线上数据的影响。下一时刻,地址线使与任务中的下一设定顺序号对应的下行锁存器(即图1中的第二下行锁存器)相连的译码器输出端为唯一的低电平,经反相器后电平翻转变为高电平,控制该下行锁存器的锁存端为高电平,即此时的8个下行锁存器中仅该下行锁存器的输入端从DAQ获取的数据能传送到其输出端;而由于此时上述第一下行锁存器的锁存端已变为低电平,则第一下行锁存器的输出端保持上一步骤的数据不变,不受此时DAQ数据线上数据的影响(即输出端缓存了上一步骤的数据),处于等待状态。以此类推,通过DAQ和译码器将下位机使用到的与任务中的设定顺序号依次对应的各下行锁存器的锁存端依次置高电平,同时通过DAQ经数据线向下行锁存器组输入数据,则仅其锁存端被置高电平的下行锁存器能将DAQ的数据从输入端传送到其输出端,并在下一步骤中使该下行锁存器的锁存端被置低电平从而使其输出端的数据被保持(或称数据被缓存);直到该任务涉及到的下行锁存器组的所有需要改变数据的下行锁存器(即在该任务中,被下位机使用到的所有下行锁存器)都经过上述的数据传输和数据保持过程。然后由下位机通过传输线获取下行锁存器组中缓存的数据:可以通过下行锁存器组中的至少一路输出数据控制下位机获取下行锁存器中缓存的所有数据(即该路数据作为下位机获取数据的地址线决定下位机是否接收下行锁存器组的数据,参见图2b和上述关于图2b的说明文字),也可以通过单独的控制线通知下位机获取下行锁存器中缓存的所有数据(比如由DAQ或译码器中的单独控制线控制下位机获取下行锁存器组的数据);还可以通过所有被下位机使用到的所有下行锁存器中的一路或几路输出数据共同控制下位机获取下行锁存器中缓存的所有数据;或者还可以通过设定下位机与下行锁存器之间的协议设置固定时间使下位机按照协议中的固定时间获取下行锁存器组缓存的所有数据,等等。
作为一个优选实施例,本发明的测试工装的数字输入输出口扩容装置,还包括多个总线收发器。至少一部分总线收发器的输入端与下位机分别连接,用于将下位机的数据发送给DAQ进而发送给上位机。所有与下位机连接的总线收发器组成总线收发器组。所有总线收发器的输出端并联再与数据采集卡的数据线相连。总线收发器与上行锁存器之间的连接线的数量与总线收发器输出端的I/O线(即DAQ的数据线)的数量相同,可以是8根或16根。
译码器的输出端还包括上行输出端,所述译码器的上行输出端与各总线收发器的使能端一一对应连接。总线收发器起到开关的作用,由于DAQ每次仅能读取一个总线收发器的数据(8根或16根数据线),当需要DAQ读取下位机的数据时,通过对译码器的上行输出端的至多一位地址置低电平打开相应的总线收发器获取下位机数据;在改变译码器的上行输出端的地址选择从其它总线收发器获取下位机数据时,上述总线收发器的使能端自然被置高电平从而关闭,使得总线收发器组在同一时刻至多仅有一个总线收发器打开并向DAQ传输数据,从而在一段时间内通过仅有的8或16根数据线将具有最多64根传输线或128根传输线的下位机的数据通过DAQ上传至上位机。
所述数据采集卡的数据线是双向数据线;输入端并联的下行锁存器的输入端与输出端并联的总线收发器的输出端并联并与数据采集卡的双向数据线连接,即下行链路(数据从DAQ通过下行锁存器组向下位机方向传输)与上行链路(数据从下位机通过总线收发器向DAQ方向传输)通过分时复用的方式共用数据采集卡的双向数据线,这必然使得下行锁存器与DAQ之间的I/O线的数量与总线收发器的输出端I/O线数量相同,且与DAQ的数据线的数量相同。可以通过控制每个上行锁存器的锁存端置高电平(前提是将所有上行锁存器的OE端置为低电平将其全部打开)将下位机的数据传输到上行锁存器的输出端,再对其锁存端置低电平使其保持输出端的数据不变,达到选择性缓存下位机数据的目的。为了避免上下行数据发生混乱,本发明通过采用DAQ的R/W线(由DAQ的I/O线模拟的地址线,详细说明参见后面描述)参与编辑地址线、通过R/W线的取值使总线接收器组(上行链路)和下行锁存器组(下行链路)的导通互斥来实现。具体而言,在需要向下位机传输数据时,通过地址线控制译码器从而控制下行锁存器组打开下行链路(比如通过R/W线为0设定为下行链路打通同时上行链路关闭(即高阻态),即对应于表2中的前8行数据);在需要从下位机获取数据时,通过地址线控制译码器从而控制总线收发器组打开上行链路(比如通过R/W线为1设定为上行链路打通同时下行链路关闭,即对应于表2中的后8行数据)将下位机的数据通过DAQ传输到上位机。则同一时刻上行链路和下行链路只有一路能导通,从而避免上下行数据的混乱。而且从表2的R/W线可以很直观的看出哪路链路导通哪路链路关闭。这是采用DAQ的R/W线参与编辑地址线的优点。
在总线收发器需要获取数据时,通过对总线收发器的使能端置低电平打开总线收发器从而获取与其相连的上行锁存器缓存的数据,从而对下位机传输的数据进行安全控制和选择读取。
在上述实施例的基础上,还包括多个上行锁存器,每个与下位机连接的总线收发器的输入端均通过一个上行锁存器与下位机分别连接,如图2a所示。
对于上行锁存器的锁存端的控制,可以由下位机的控制线控制,也可以由译码器的输出线、DAQ的输入输出线模拟的控制线进行控制。
作为一个优选实施例,在上述实施例的基础上,如图2a所示,下位机通过多条控制线分别与每个上行锁存器的锁存端连接,在下位机需要传输数据时,将上行链路打开同时将下行链路关闭,再通过控制线将需要打开的上行锁存器的锁存端置高电平将数据从上行锁存器的输入端传输到输出端,再将这些上行锁存器的锁存端置低电平从而缓存下位机的数据;在上位机需要获取下位机的数据时,通过地址线控制译码器的上行输出端使需要接收数据的总线收发器的使能端以设定顺序逐个置低电平,获取缓存在上行锁存器输出端的数据。
DAQ仅具有输入输出线(简称I/O线)。但下位机的传输线分为下位机数据线、下位机地址线、下位机控制线三种类型。为了使DAQ与下位机的传输线对应连接,本发明将DAQ的I/O线分别模拟出数据线、地址线与下位机连接。常用的DAQ有24根I/O线,也有的DAQ有32根、64根、96根、甚至一百多根I/O线。本发明的实施例采用具有24根I/O线的DAQ。该DAQ将24根I/O线按每组8根分为3组,分别命名为P0、P1、P2。一般将P0组的8根I/O线用来模拟数据线(模拟的8根数据线称为D0~D7,也即本发明中定义的数据线),将P2组的I/O线模拟地址线(比如,表1和图1的实施例中采用P2组的3根I/O线模拟地址线通过译码器生成23=8个地址)或P1组的I/O线与P2组的I/O线混合模拟地址线(比如,表2和图2a的实施例中采用P1组的1根I/O线(称为R/W线)与P2组的3根I/O线模拟4根地址线通过译码器生成24=16个地址。对应于译码器的真值表分别如表1、表2所示。当然也可以单独使用P1组或其它任意方式混合P1组和P2组的I/O线模拟地址线。本领域技术人员应当理解,由DAQ的I/O线以任意方式模拟成地址线、数据线用于本发明的技术方案,均应在本发明的保护范围之内)。本发明所说的数据采集卡的地址线为DAQ的I/O线模拟的地址线,本发明所说的数据采集卡的数据线为DAQ的I/O线模拟的数据线。需要注意的是,本发明所说的数据线、地址线并非必须与下位机数据线、下位机地址线、下位机控制线的名称相对应,比如图2b是图2a的实施例向下位机传输数据和对下位机进行控制的一个示例的示意图,在图2b中,以第八下行锁存器输出的3根传输线作为下位机内部的一个3-8译码器的输入端的下位机地址线,而该3-8译码器的输出地址中有一个地址与下位机锁存器的锁存端连接,且该下位机锁存器的输入端与第一下行锁存器的输出端连接用以接收第一下行锁存器的数据,并将其存储到该3-8译码器的所述地址对应的下位机的存储单元,或准备向第一上行锁存器发送该下位机输出地址对应的存储单元中的数据。因此可以用某个或某些下行锁存器的输出端的传输线作为下位机的地址线和/或控制线对下位机进行综合地寻址、控制,将数据线中的数据存储到下位机的相应地址或将下位机相应地址的数据通过数据线发送给DAQ。
本发明还提供了一种用于上述的测试工装的数字输入输出口扩容装置的扩容方法,包括:
S110:执行一个任务时,上位机向数据采集卡发送待传输的数据;与第一下行锁存器(所述“第一”为执行该任务时对应于第一条指令的下行锁存器)相连的译码器输出端设置为唯一的低电平(可以由DAQ的地址线选择将译码器输出端的哪一位地址置为唯一的低电平,比如表1第一行数据,P2_2=0、P2_1=0、P2_0=0时,Y0输出为唯一的低电平;再比如表2第三行数据,R/W=0、P2_2=0、P2_1=1、P2_0=0时,Y2输出为唯一的低电平;下同),经反相器后电平翻转变为高电平,控制第一下行锁存器的锁存端为高电平,即此时的8个下行锁存器仅所述第一下行锁存器的输入端从数据采集卡获取数据并传送到其输出端;此时由于其余的下行锁存器的锁存端为低电平,它们的输出端保持原来的数据不变,不受其输入端数据的影响;
S120:下一时刻,与任务中的下一设定顺序号对应的下行锁存器(即第二条指令对应的下行锁存器)相连的译码器输出端设置为唯一的低电平,经反相器后电平翻转变为高电平,控制该下行锁存器的锁存端为高电平,即此时的8个下行锁存器中仅该下行锁存器的输入端从数据采集卡获取数据并传送到其输出端;而由于此时上述第一下行锁存器的锁存端也为低电平,则第一下行锁存器的输出端保持上一步骤的数据不变(即输出端缓存了上一步骤的数据),处于等待状态;
S130:重复步骤S120,通过DAQ和译码器将下位机使用到的与任务中的设定顺序号依次对应的各下行锁存器的锁存端依次置高电平,同时通过DAQ经数据线向下行锁存器组输入数据,则仅其锁存端被置高电平的下行锁存器能将DAQ的数据从输入端传送到其输出端,并在下一步骤中使该下行锁存器的锁存端被置低电平从而使其输出端的数据被保持(或称数据被缓存);直到该任务涉及到的下行锁存器组的所有需要改变数据的下行锁存器(即在该任务中,被下位机使用到的所有下行锁存器)都经过上述的数据传输和数据保持过程;将这些下行锁存器中缓存的所有数据传送到下位机;
S140:由下位机获取下行锁存器组中缓存的数据:可以通过下行锁存器组中的至少一路输出数据控制下位机获取下行锁存器中缓存的所有数据(即该路数据作为下位机获取数据的地址线决定下位机是否接收下行锁存器组的数据),也可以通过单独的地址线路通知下位机获取下行锁存器中缓存的所有数据(比如由数据采集卡或译码器中的单独地址线控制下位机获取下行锁存器组的数据);还可以通过所有被下位机使用到的所有下行锁存器中的一路或几路数据共同控制下位机获取下行锁存器中缓存的所有数据;或者还可以通过设定下位机与下行锁存器之间的协议设置固定时间使下位机按照协议中的固定时间获取下行锁存器组缓存的所有数据。
本发明还提供了一种用于上述的测试工装的数字输入输出口扩容装置的扩容方法,包括:
S110:执行一个任务时,上位机向数据采集卡发送待传输的数据;与第一下行锁存器(所述“第一”为执行该任务时对应于第一条指令的下行锁存器)相连的译码器输出端设置为唯一的低电平,经反相器后电平翻转变为高电平,控制第一下行锁存器的锁存端为高电平,所述第一下行锁存器的输入端从数据采集卡获取数据并传送到其输出端;
S120:下一时刻,与任务中的下一设定顺序号对应的下行锁存器相连的译码器输出端设置为唯一的低电平,经反相器后电平翻转变为高电平,控制该下行锁存器的锁存端为高电平,该下行锁存器的输入端从数据采集卡获取数据并传送到其输出端,使得下行锁存器的输出端保持数据不变;
S130:重复步骤S120,直到该任务涉及到的所有下行锁存器都经过上述的数据传输和数据保持过程;
S140:由下位机获取下行锁存器组中缓存的数据;至此,下位机根据下行锁存器组的数据进行处理分析,将处理分析后的数据作为准备上传给上位机的数据。
以上步骤与上一实施例相对应的步骤类似,细节不赘述。
以下为从下位机的某个存储单元读取数据的过程,以下步骤既可以结合上述步骤,也可以作为独立的读数据步骤:
S200:执行一个任务时,数据采集卡通过译码器控制下行锁存器选择下位机的需要上传数据的存储单元的地址,使下位机准备好需要上传的数据(具体方式可参考图2b所示实施例,当然图2b仅是一种用于说明的示例性方式);将译码器输出端的置低电平的地址设置在上行输出端的地址范围内(比如可以由表2的R/W线加以区别和控制,R/W线为1设定为上行链路打通同时下行链路关闭,即对应于表2中的后8行数据);
S210:将总线收发器组的所有总线收发器的使能端均置高电平,即先关闭所有总线收发器。将下行锁存器的使能端置高电平,即通过使能端关闭下行链路,防止上下行数据串扰。本实施例可以通过DAQ输出的多个控制线分别直接控制各下行锁存器的使能端,使其置高电平,将下行锁存器关闭。
S220:对需要打开的上行锁存器使其锁存端置高电平,使下位机的数据传输到所述上行锁存器的输出端,再对所述上行锁存器置低电平;从而实现了对下位机数据的缓存,即使下位机数据发生改变,也不会影响已缓存的下位机数据。可以由下位机的控制线直接控制上行锁存器的锁存端,如图2a所示;或者由上位机的控制线控制上行锁存器的锁存端;如不需要缓存下位机数据则可将上行锁存器处于常开状态,即可以将所有或选定的上行锁存器的锁存端均置高电平。
本实施例中,上位机通过指令获取下位机处理分析后的数据,每条指令是上位机向某个特定的总线收发器发出的打开或关闭的指令。具体而言,通过DAQ获取上位机的指令,从该指令中解析出对应的总线收发器的地址线,并由译码器将该地址线转换为译码器上行输出端的地址,接收该地址对应的总线收发器所获取的下位机的数据并传输给DAQ。
下位机向上位机传输数据的任务称为上行任务。实现一个上行任务需要按接收顺序实现若干接收指令。对接收指令按照接收顺序号,由于每条接收指令仅接收一个总线收发器中的数据(即每条接收指令仅对应一个总线收发器),则执行一个上行任务时各接收指令的接收顺序号为该条接收指令对应的总线收发器的编号。也就是说,执行上行任务就是按照该上行任务中的接收顺序号(即该接收指令的顺序号,也即该接收指令对应的总线收发器的编号)将下位机需要上传的数据依次接收到DAQ中。
上行锁存器的作用是将在不同时刻下位机上传的数据先缓存起来,在总线收发器接收到DAQ的接收指令时通过打开的总线收发器将缓存的下位机数据传输给DAQ。在设定时间内,下位机将需要上传的数据传输并缓存到与其相连的上行锁存器中(可以是向多个上行锁存器或一个上行锁存器缓存数据),然后由总线收发器在所述设定时间之后接收上行锁存器中缓存的下位机数据。所述设定时间由上位机与下位机之间的协议规定,使得在总线收发器接收上行锁存器时,上行锁存器中缓存的数据没有被下位机新上传的数据替代。所述设定时间内发送的所有接收指令定义为一个上行任务,即在所述设定时间内按接收顺序实现若干接收指令。
S230:与第一总线收发器(所述“第一总线收发器”为执行该上行任务时对应于第一条接收指令的总线收发器)相连的译码器的上行输出端设置为唯一的低电平,使第一总线收发器的使能端为低电平打开第一总线收发器,如图2a所示,即此时的8个总线收发器中仅第一总线收发器处于打开状态,数据采集卡通过所述第一总线收发器从第一上行锁存器获取其缓存的下位机数据;
S240:下一时刻,与上行任务中的下一接收顺序号对应的总线收发器(即图1中的第二总线收发器)相连的译码器的上行输出端设置为唯一的低电平,使该总线收发器的使能端为低电平打开该总线收发器,同时第一总线收发器的使能端为高电平关闭第一总线收发器;数据采集卡通过该总线收发器从与之相连的上行锁存器获取其缓存的下位机数据(即DAQ从总线收发器中读取数据的过程);
S250:重复上述步骤S240,直到数据采集卡通过总线收发器组获取了所述上行任务的设定时间内的所有需要的下位机数据。
上述步骤S200至S250,可以作为单独的读取下位机数据的步骤,而不一定与步骤S100至S140的向下位机的存储单元写数据的步骤一起使用。
本发明的有益效果:本发明的测试工装的数字输入输出口扩容装置,在数据采集卡的输入输出线数量少于下位机传输线数量的情况下,能够有效扩充数据采集卡的输入输出线总量,使其满足实际测试过程中的下位机传输线的需求。
本发明的数据采集卡可以选用NI的PCIe6361,译码器可选用74AHC138,锁存器可选用74AHC573,总线收发器可选用SN74AHC245。当然也可以选用能实现本发明目的的其它型号电子元器件,因此,不应以上述电子元器件的型号限制本发明的技术方案。
总之,以上所述仅为本发明技术方案的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。