CN101741648A - 分布式远程测试系统、方法、以及服务器 - Google Patents
分布式远程测试系统、方法、以及服务器 Download PDFInfo
- Publication number
- CN101741648A CN101741648A CN200910265873A CN200910265873A CN101741648A CN 101741648 A CN101741648 A CN 101741648A CN 200910265873 A CN200910265873 A CN 200910265873A CN 200910265873 A CN200910265873 A CN 200910265873A CN 101741648 A CN101741648 A CN 101741648A
- Authority
- CN
- China
- Prior art keywords
- data packet
- module
- communication data
- bag
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种分布式远程测试系统、方法、以及服务器,该分布式远程测试系统包括:服务器数据封装拆解包模块,用于将指令流按照预定格式进行封装,得到通信数据包;服务器数据封包收发模块,用于发送或接收通信数据包;客户端数据封包收发模块,用于接收或发送通信数据包;客户端数据封装拆解包模块,用于根据预定格式对通信数据包进行解析,获取指令流;业务实现模块,用于根据指令流控制仪表和被测设备,获取测试输出结果。借助于本发明实施例的技术方案,能够提高系统故障的响应速度,有效利用时间,压缩故障解决周期,避免停线,同时减少出差费用,有效提高整个系统的运作效率。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种分布式远程测试系统、方法、以及服务器。
背景技术
目前,全球数字移动用户已经达到13亿,用户对移动终端的需求量也在急剧增涨,移动终端市场的竞争也越来越激烈。通讯技术从当前较普遍的基于第二代(second generation,简称为2G)通讯技术的全球移动通信系统(GlobalSystem for Mobile Communications,简称为GSM)、码分多址(Code-DivisionMultiple Access,简称为CDMA)制式,逐步过渡以第三代(3rd-generation,简称为3G)通讯技术为基础的宽带分码多工存取(Wideband Code-DivisionMultiple Access,简称为WCDMA)系统、时分同步的码分多址(TimeDivision-Synchronous Code Division Multiple Access,简称为TD-SCDMA)系统,再到更新一代的微波存取全球互通(Worldwide Interoperability for MicrowaveAccess,简称为WiMAX)系统、长期演进(Long Term Evolution,简称为LTE)系统等。
在面向国际市场的大背景下,移动终端制造商对于各代终端产品的生产测试系统、方案平台均有所差异。在现有技术中,生产测试大多采用的是使用单控制器架构的基于美国电气及电子工程师学会(Institute of Electrical andElectronics Engineers,简称为IEEE)-488的通用接口总线(General PurposeInterface Bus,简称为GPIB)标准的机架式测试系统。图1为现有技术中基于单控制器架构的测试系统的示意图,如图1所示,仪表通过GPIB与计算机相连接,不同的仪表之家可以相互触发,待测设备与仪表相连接。
从图1可以看出,由于仪表通过GPIB与计算机相连接,基于单控制器架构的测试系统过于集中,需要系统开发人员亲自到应用环境中通过计算机对系统进行维护、使用、故障分析、以及定位等,增加了时间成本以及实际的出差费用成本,同时也可能会造成产线停线无法及时恢复的制造成本。
发明内容
本发明要解决的问题是提供一种分布式远程测试系统、方法、以及服务器,以克服现有技术中基于单控制器架构的测试系统过于集中而导致成本增加的缺陷。
根据本发明的一个方面,提供了一种分布式远程测试系统,包括:
服务器数据封装拆解包模块,用于将指令流按照预定格式进行封装,得到通信数据包;
服务器数据封包收发模块,用于发送或接收通信数据包;
客户端数据封包收发模块,用于接收或发送通信数据包;
客户端数据封装拆解包模块,用于根据预定格式对通信数据包进行解析,获取指令流;
业务实现模块,用于根据指令流控制仪表和被测设备,获取测试结果。
优选地,上述分布式远程测试系统还包括:
服务器逻辑总控制模块,用于对服务器数据封装拆解包模块和服务器数据封包收发模块进行逻辑控制;
客户端逻辑总控制模块,用于对客户端数据封包收发模块和客户端数据封装拆解包模块进行逻辑控制。
优选地,上述预定格式包括:通信数据包头部、以及一个或多个指令数据包,其中,通信数据包头部包括:通信数据包标识、通信数据包长度、以及指令数据包个数,指令数据包包括:开始标识、指令数据包长度、指令类型、操作对象、具体操作、标志信息、传输数据、校验和、以及结束标识。
优选地,服务器数据封装拆解包模块具体包括:
封装模块,用于将指令流封装为指令数据包,并将指令数据包添加到通信数据包中;
检查模块,用于检查指令数据包中是否存在与指令数据包的包头、包尾、以及逃逸字节相同的相同字节;
插入模块,用于在检查模块确定存在相同字节的情况下,在相同字节前面插入逃逸字节;
运算模块,用于将相同字节与插入的逃逸字节进行异或运算,并将异或运算的运算结果替换相同字节。
优选地,客户端数据封装拆解包模块具体包括:
检验模块,用于根据通信数据包头部中的通信数据包标识、通信数据包长度、以及指令数据包个数对通信数据包的正确性进行检验;
查找模块,用于在检验模块确定通信数据包是正确的情况下,查找指令数据包中的逃逸字节;
删除模块,用于将逃逸字节删除;
恢复模块,用于将逃逸字节后面的字节与逃逸字节进行异或运算获取恢复值,并用恢复值替换逃逸字节后面的字节;
校验模块,用于根据指令数据包中的校验和、以及指令数据包长度对指令数据包的正确定进行校验。
优选地,业务实现模块具体用于:
根据指令流通过以太网或通用接口总线控制仪表;以及
根据指令流通过以太网或通用串行总线控制被测设备。
根据本发明的另一个方面,提供了一种服务器,包括:
服务器数据封装拆解包模块,用于将指令流按照预定格式进行封装,得到通信数据包;
服务器数据封包收发模块,用于发送或接收通信数据包,以使客户端根据通信数据包控制仪表和被测设备进行测试操作。
根据本发明的另一个方面,提供了一种分布式远程测试方法,包括:
接收通信数据包,其中,通信数据包是由服务器将指令流按照预定格式进行封装后发送的;
根据预定格式对通信数据包进行解析,获取指令流;
根据指令流控制仪表和被测设备,获取测试结果。
优选地,上述预定格式包括:通信数据包头部、以及一个或多个指令数据包,其中,通信数据包头部包括:通信数据包标识、通信数据包长度、以及指令数据包个数,指令数据包包括:开始标识、指令数据包长度、指令类型、操作对象、具体操作、标志信息、传输数据、校验和、以及结束标识。
优选地,根据预定格式对通信数据包进行解析包括:
根据通信数据包头部中的通信数据包标识、通信数据包长度、以及指令数据包个数对通信数据包的正确性进行检验;
在确定通信数据包是正确的情况下,查找指令数据包中的逃逸字节,并将逃逸字节删除;
将逃逸字节后面的字节与逃逸字节进行异或运算获取恢复值,并用恢复值替换逃逸字节后面的字节;
根据指令数据包中的校验和、以及指令数据包长度对指令数据包的正确定进行校验;
根据指令流控制仪表和被测设备包括:
根据指令流通过以太网或通用接口总线控制仪表;以及
根据指令流通过以太网或通用串行总线控制被测设备。
本发明有益效果如下:
本发明实施例通过远程控制仪表和被测设备进行测试操作,对测试系统进行远程管理,克服了现有技术中基于单控制器架构的测试系统过于集中而导致成本增加的缺陷,能够提高系统故障的响应速度,有效利用时间,压缩故障解决周期,避免停线,同时减少出差费用,有效提高整个系统的运作效率。
附图说明
图1为现有技术中基于单控制器架构的测试系统的示意图;
图2为本发明实施例的分布式远程测试系统的结构示意图;
图3为本发明实施例的通信数据包格式的示意图;
图4为本发明实施例的分布式远程测试系统的连接示意图;
图5为本发明实施例的仪表连接的示意图;
图6为本发明实施例的分布式远程测试系统的优选结构示意图;
图7为本发明实施例的服务器的结构示意图;
图8为本发明实施例的分布式远程测试方法的流程图;
图9为本发明实施例的分布式远程测试系统对被测设备进行测试的信令流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
系统实施例
根据本发明的实施例,提供了一种分布式远程测试系统,图2为本发明实施例的分布式远程测试系统的结构示意图,分布式远程测试系统提供多个独立的模块,可以应用于不同制式的被测试设备,实现不同制式不同平台统一的指令转译、传输、复现、逻辑控制及业务实现等处理。如图2所示,根据本发明实施例的分布式远程测试系统包括:服务器数据封装拆解包模块20、服务器数据封包收发模块22、客户端数据封包收发模块24、客户端数据封装拆解包模块26、业务实现模块28。
具体地,服务器数据封装拆解包模块20用于将指令流按照预定格式进行封装,得到通信数据包;也就是说,服务器数据封装拆解包模块20需要对各种制式下的指令流进行加壳打包,打包成统一的TCP/IP通信数据包进行传输,例如,对于英飞凌平台可以通过AT指令向被测设备发送相应的控制指令;对于高通平台的被测设备可以发送相应的DIAG控制指令,对于BECEEM平台的WIMAX终端可以利用相应的API指令进行被测设备的控制。
图3为本发明实施例的通信数据包格式的示意图,如图3所示,上述预定格式包括:通信数据包头部(Comm Packet Header)、以及一个或多个指令数据包(Instruction Packet 1至Instruction Packet N),其中,指令数据包之间用其头尾特殊标志来加以区分,在通信数据包头部中包含了整个通信数据包的长度信息,在每个指令数据包中也包含了各自指令数据包的长度信息,每条指令数据包的长度可以不相同,在实际应用中,可以根据长度信息来确定通信数据包以及指令数据包的长度,能够减少冗余信息。
优选地,在本发明实施例中,通信数据包头部包括:通信数据包标识、通信数据包长度、以及指令数据包个数;指令数据包中定义了九个字段,用来描述指令流的内容以及传递的参数,包括:开始标识、指令数据包长度、指令类型、操作对象、具体操作、标志信息、传输数据、校验和、以及结束标识。
下面,对本发明实施例中的通信数据包头部和指令数据包的格式进行具体说明。
1、通信数据包头部可以包括三个部分的内容,第一部分包括一个固定的标志,在客户端接收到通信数据包时,可以先对该字段进行判断,防止误收其他数据包;第二部分为整个通信数据包的长度,包括头部,用于通知客户端所发送的通信数据包的长度,以使客户端判断接收到的数据和服务器端发送的数据是否一致;第三部分为通信数据包头部后面连接的指令数据包的个数(NumOfInsPacket)。在本发明实施例中,通信数据包头部可采用如下的数据结构定义:
typedef struct
{
char cHead[16];
unsigned int uiPacketLength;
unsigned short usNumOfInsPacket;
}Comm_PacketHeader_Type;
整个通信数据包头部的格式可以定义如下:
typedef struct
{
Comm_PacketHeader_Type CommHeader;
BYTE buf[MAX_PKT_SIZE];
}Comm_Packet_Type;
2、指令数据包包含了9个字段,定义了一条指令所包含的操作对象、操作类型、操作参数等,以下对指令数据包中各个字段的意义以及定义进行详细说明:
(1)开始标识(Head):用于标识该指令数据包的开始,可以用一个特定的字符表示,例如:0x7F。
(2)指令数据包长度(PacketLength):用于从开始标识(Head)到结束标识(END)记录整个指令数据包的长度。
(3)指令类型(Cmd):用于表示指令的类型,在本发明实施例中,优选地,可以包括以下指令类型:
CMD_HELLO:服务器端和客户端连接刚建立时的握手命令,连接建立时由服务器端发向客户端发送;
CMD_HELLO_CONFIRM:与CMD_HELLO指令匹配,客户端收到CMD_HELLO之后回复该指令给服务器端;
CMD_LEAVE:所有的操作完成之后服务器端向客户端发送的断开连接的请求;
CMD_LEAVE_CONFIRM:与CMD_LEAVE指令匹配,客户端收到CMD_LEAVE指令后回复该指令给服务器端;
CMD_REQUEST:由服务器端发向客户端,配合操作对象、具体操作、标志信息三个字段,给客户端发出一条具体操作的指令;
CMD_ANSWER:由客户端发向服务器端,同样配合操作对象、具体操作、标志信息三个字段,表示对操作执行情况的一个答复;
需要说明的是,指令类型(Cmd)可以定义为unsigned short usCmd,其中前四个指令(CMD_HELLO指令、CMD_HELLO_CONFIRM指令、CMD_LEAVE指令、以及CMD_LEAVE_CONFIRM指令)可以忽略ParaData字段。
(4)操作对象(OperateObject):表示指令要操作的对象,目前主要包括三个:
OPERATEOBJECT_DUT:表示由具体操作、标志信息字段所表示的指令是对被测设备的操作;
OPERATEOBJECT_PC:表示由具体操作、标志信息两个字段所表示的指令是对计算机的操作;
OPERATEOBJECT_INSTRUMENT:表示由具体操作、标志信息两个字段所表示的指令是对仪表的操作;
需要说明的是,操作对象(OperateObject)字段可以定义为unsigned shortusOperateObject;此外,只有指令类型(Cmd)字段是CMD_REQUEST或者CMD_ANSWER时,操作对象(OperateObject)字段才有意义。
(5)具体操作(Operation):表示具体的操作,要按照操作对象(OperateObject)字段的操作对象来分别进行定义:
对于被测设备,具体操作(Operation)中主要包括了控制被测设备所需要的所有的操作指令,例如,在BeceemCalAPI3.0版本中总共是65个API函数,对其分别定义。
对于计算机,具体操作(Operation)中包括需要获取的一些资源,例如,可以从PC处得到仪表的IP地址。
对于仪表,具体操作(Operation)中包括了所有的对仪表的操作。在本发明实施例中,主要使用LAN口直接远程控制仪表的,该部分主要是为了以后扩展远程仪表代理时考虑。
需要说明的是,具体操作(Operation)字段也可以定义为unsigned shortusOperation,跟上操作对象(OperateObject)字段的定义密切相连。
(6)标志信息(Instruction Flag):用于保存指令的一些标志信息,包括四个信息:IndexOfPacket表示了该指令数据包在整个通讯数据包中的位置,与前面通信数据包头部中的参数NumOfInsPacket相呼应;NumberOfParas表示了这条指令数据包所包含的参数的个数;OperationFlag表示了指令数据包的操作方向,即,是需要执行的操作还是需要返回的结果,以及执行是成功还是失败的信息。在本发明实施例中,标志信息(Instruction Flag)定义如下:
typedef struct
{
unsigned char ucIndexOfPacket;
unsigned char ucNumOfParas;
unsigned char ucResultFlag;
}Instruction_Flag;
其中,ResultFlag按位来处理:
bit[2-0]:000表示操作执行失败,001表示操作执行成功,010表示接收到的指令错误,长度不符或者校验和不正确,011表示接收到的参数个数不符,100表示接收到的参数校验和错误,bit[2-0]主要针对写EEPROM的操作;
bit[3]:0表示需要执行的操作,1表示返回的结果;
需要说明的是,只有bit[3]为1时,bit[2-0]才有意义,其余bit[4-7]暂时预留。
(7)传输数据(ParaData):该字段是要传递的数据,主要是包括了Operation字段中,各种操作所要传递的参数,以及操作执行之后的返回值。
在本发明实施例中,可以使用一个联合体对其定义,联合体的成员就是要执行的各个操作所包含的参数。可以按照如下的方式定义:
typedef struct
{
UINT32u32DUTMode; //要设置的模式
UINT32u32ModulationType; //调制类型
}Dut_SetDeviceMode_Request_Paras;
typedef struct
{
UINT32u32CenterFreqKHz; //频率
UINT32u32BandwidthKHz; //带宽
}Dut_SetBandConfig_Request_Paras;
typedef struct
{
UINT32u32Debug;
UINT32u32PostCmdWaitMS;
UINT32u32PollIntMS;
UINT32u32MaxPollCountMS;
UINT32u32EepromReadDelayMS;
UINT32u32EepromVerifyDelayMS;
UINT32u32FragmentSizeBytes;
UINT32u32EepromSizeMatchBytes;
}Dut_SetDeviceOption_Request_Paras;
typedef union
{
Dut_SetDeviceMode_Request_Paras SSetDeviceModeParas;
Dut_SetBandConfig_Request_Paras SSetBandconfigParas;
Dut_SetDeviceOption_Request_Paras SSetDeviceOptionParas;
}Operation_Paras_Request_Type;
typedef union
{
Dut_SetDeviceMode_Answer_Paras SSetDeviceModeParas;
Dut_SetBandConfig_Answer_Paras SSetBandconfigParas;
Dut_SetDeviceOption_Answer_Paras SSetDeviceOptionParas;
}Operation_Paras_Answer_Type;
Typedef union
{
Operation_Paras_Request_Type URequestOperationParas;
Operation_Paras_Answer_Type UAnswerOperationParas;
}Operation_Paras_Type;
从上述描述可以看出,首先定义出各种要执行的指令的参数结构体,然后用这些结构体充当联合体中的变量,来定义Instruction_Paras结构,这样指令数据包的长度就是可变的,比较容易读取。
(8)校验和(Checksum):整个指令数据包的一个校验和,防止指令数据包出错,该校验和不包括指令数据包头和指令数据包尾。
(9)结束标识END:表示一个指令数据包的结束,可以使用一个特殊的字符来表示,例如0xEF。
综上所述,整个指令数据包的结构可定义如下:
typedef struct
{
unsigned char const ucHEAD=0x7F;
unsigned int uiPacketLength;
unsigned short usCmd;
unsigned short usOperateObject;
unsigned short usOperation;
Instruction_Flag SInstructionFlag;
Operation_Paras_Type UOperationParas;
unsigned short usCheckSum;
unsigned char const ucEND=0xEF;
}Instruction_Type。
基于上述通信数据包结构,服务器数据封装拆解包模块20在封装通信数据报时,可以具体包括以下模块:封装模块、检查模块、插入模块、运算模块。其中,封装模块用于将指令流封装为指令数据包,并将指令数据包添加到通信数据包中;检查模块用于检查指令数据包中是否存在与指令数据包的包头、包尾、以及逃逸字节相同的相同字节;插入模块用于在检查模块确定存在相同字节的情况下,在相同字节前面插入逃逸字节;运算模块用于将相同字节与插入的逃逸字节进行异或运算,并将异或运算的运算结果替换相同字节。
也就是说,服务器数据封装拆解包模块20首先完成指令数据包的内容封装,封装完成之后将指令数据包添加到Comm_Packet。这时首先要确保每个指令数据包中包头和包尾的唯一性。需要逐个字节检查看是否存在与包头0x7F、包尾0xEF以及逃逸字节0xCC相同的字节,如果有碰到相同的字节,就在该字节之前插入另外一个字节,即逃逸字节0xCC,然后将指令数据包中原来的字符和另外一个字符0x30进行异或运算,让它变成另外一个字符,把它保护起来,这样的处理直到包尾,整个指令数据包当中就只有一个包头和一个包尾。
经过上述处理之后,服务器数据封包收发模块22发送或接收该通信数据包;优选地,务器数据封包收发模块22可以通过以太网发送或接收该通信数据包。
客户端数据封包收发模块24用于接收或发送该通信数据包;
优选地,客户端数据封包收发模块24还可以发送测试输出结果。在应用于不同的测试手机时,客户端数据封包收发模块24可以采用不同的方式来获取手机的测试输出结果。通过统一的调用接口,利用成熟的TCP/IP传输协议进行通信数据包的可控传输、以及利用现有的成熟的以太网络,能够完成对指令流的远程传递,达到远程控制的目的。
客户端数据封装拆解包模块26根据上述预定格式对通信数据包进行解析,获取指令流;也就是说,客户端数据封装拆解包模块26需要对远程传输过来的通信数据包进行去壳拆包解析处理。
具体地,客户端数据封装拆解包模块26可以具体包括:检验模块、查找模块、删除模块、恢复模块、以及校验模块,其中,检验模块用于根据通信数据包头部中的通信数据包标识、通信数据包长度、以及指令数据包个数对通信数据包的正确性进行检验;在检验模块确定通信数据包是正确的情况下,查找模块查找指令数据包中的逃逸字节;删除模块将所述逃逸字节删除;恢复模块将逃逸字节后面的字节与逃逸字节进行异或运算获取恢复值,并用恢复值替换逃逸字节后面的字节;最后,校验模块根据指令数据包中的校验和、以及指令数据包长度对指令数据包的正确定进行校验。
客户端数据封包收发模块24接收到的通信数据包由通信数据包头部和N个指令数据包所组成,在接收到通信数据包以后,客户端数据封装拆解包模块26需要对通信数据包进行以下判断:
首先,解析出Comm_PacketHeader,对其中的cHead进行判断,确定是否为上述定义的包头,如果不是则丢弃此包;如果是,再读取其中的长度信息,判断和收到的通信数据包的长度是否相符,如果不符则丢弃;如果相符,继续进行指令数据包个数的判断,根据包的头尾标志位来判断通信数据包所包含的指令数据包的个数是否和通信数据包头部中所定义的个数一致,如果不一致则丢弃,一致则确定接收到的通信数据包是正确的,可以进行指令的解析。
在指令解析时,因为之前已经通过头尾标志获取了各个指令数据包,第一步需要将打包时所插入的逃逸字节去掉。遍历整个包,查找逃逸字符0xCC,每找到一个就将其去掉,然后将其后面的字节和0x30进行异或运算,恢复出原来的值,直到把每个逃逸字符都去掉为止。至此,一个指令数据包就可以完整的传递到客户端。最后,还需要判断指令数据包的长度、校验和等,保证指令数据包的正确性。
如果上述条件均满足,业务实现模块28就可以执行指令数据包所描述的内容了,其中,业务实现模块28实现具体的指令操作,也就是说,业务实现模块28可以根据上述指令流控制仪表和被测设备,获取测试输出结果。
优选地,业务实现模块28具体用于根据指令流通过以太网或通用接口总线控制仪表;以及根据指令流通过以太网或通用串行总线控制被测设备。图4为本发明实施例的分布式远程测试系统的连接示意图,如图4所示,仪表通过GPIB或LAN与客户端计算机设备连接,被测设备通过USB或LAN与客户端计算机设备连接,仪表与被测设备通过射频线缆连接,仪表和客户端计算机设备通过LAN与服务器端计算机连接。
图5为本发明实施例的仪表连接的示意图,如图5所示,直接应用成熟的局域网扩展仪表(LAN eXtensions for Instrumentation,简称为LXI)技术进行仪表的控制。基于目前LXI的应用,LXI从以下几个方面帮助测试工程师克服常规测试测量系统架构的局限性。首先,LXI系统利用以太局域网作为设备的互联通路,消除了互联设备数量上的限制。其次,几乎所有的计算机上都带有以太网接口,因此利用已有的以太网基础架构进行设备互联,能够避免增加接口适配卡所带来的高昂成本。再次,以太网接口还具有良好的扩展性,以太网也能够轻松支持物理上的分布系统。实现一个兼容LXI标准的最简以太网接口的成本很低,根据用户的需要,还可以实现高性能的以太网接口,使得低速设备和高速设备能够实现无缝的系统集成。利用以太网互连技术,不需要将设备和其控制器紧密放置在一起,从而减少了大型系统中的控制器数量,如果采用机架式系统或基于GPIB/USB/串口的互连结构来实现,那么必须要将设备和其控制器紧密放置在一起。
从上述处理可以看出,本发明实施例的分布式远程测试系统可以实现网络化管理,本发明实施例利用现有的以太网络,节省了系统搭建成本,可以直接利用以太网1000Mbytes/s的传输速率,极大地提高了测试效率。
图6为本发明实施例的分布式远程测试系统的优选结构示意图,如图6所示,在本发明实施例的分布式远程测试系统中,除了包括服务器数据封装拆解包模块20、服务器数据封包收发模块22、客户端数据封包收发模块24、客户端数据封装拆解包模块26、业务实现模块28以外,还可以包括服务器逻辑总控制模块、以及客户端逻辑总控制模块,用于实现业务逻辑层,各模块之间有机协调交互,其中,服务器逻辑总控制模块用于对服务器数据封装拆解包模块20和所述服务器数据封包收发模块22进行逻辑控制;客户端逻辑总控制模块用于对所述客户端数据封包收发模块24和所述客户端数据封装拆解包模块26进行逻辑控制。
本发明实施例提供的分布式远程测试系统具备稳定的指令加壳、传输、拆包解析重现的功能,能够实现指令的远程传递,达到远程控制的目的。
本发明实施例利用成型的以太网络实现测试工具的远程调试及测试系统的远程管理。在不改变本地计算机与终端物理连接的前提下,通过网络可以实现两地的远程跟踪和调试。测试系统的软件系统运行在A地,相关测试工具、线缆、仪表等硬件连接都在B地的环境下,通过技术人员的远程控制跟踪来实现测试系统的远程管理,保证了及时性,节省了出差成本。
整个测试系统按照模块化的方式进行设计,提供统一的操作平台和接口,各模块相互独立,通过配置可以支持多种制式的分布式远程化测试实现方式,能够适用于各种不同制式移动终端的远程测试。
装置实施例
根据本发明的实施例,提供了一种服务器,图7为本发明实施例的服务器的结构示意图,如图7所示,根据本发明实施例的服务器包括:服务器数据封装拆解包模块70、服务器数据封包收发模块72。下面,对本发明实施例的服务器进行详细说明。
服务器数据封装拆解包模块70用于将指令流按照预定格式进行封装,得到通信数据包;也就是说,服务器数据封装拆解包模块70需要对各种制式下的指令流进行加壳打包,打包成统一的TCP/IP通信数据包进行传输,例如,对于英飞凌平台可以通过AT指令向被测设备发送相应的控制指令;对于高通平台的被测设备可以发送相应的DIAG控制指令,对于BECEEM平台的WIMAX终端可以利用相应的API指令进行被测设备的控制。
上述预定格式包括:通信数据包头部(Comm Packet Header)、以及一个或多个指令数据包(Instruction Packet 1至Instruction Packet N),其中,指令数据包之间用其头尾特殊标志来加以区分,在通信数据包头部中包含了整个通信数据包的长度信息,在每个指令数据包中也包含了各自指令数据包的长度信息,每条指令数据包的长度可以不相同,在实际应用中,可以根据长度信息来确定通信数据包以及指令数据包的长度,能够减少冗余信息。
优选地,通信数据包头部包括:通信数据包标识、通信数据包长度、以及指令数据包个数;指令数据包中定义了九个字段,用来描述指令流的内容以及传递的参数,包括:开始标识、指令数据包长度、指令类型、操作对象、具体操作、标志信息、传输数据、校验和、以及结束标识。
需要说明的是,通信数据包的格式可以参照图3以及系统实施例中的相应内容进行理解,在此不再赘述。
在本发明实施例中,基于如图3所示的通信数据包结构,服务器数据封装拆解包模块70在封装通信数据报时,可以具体包括以下模块:封装模块、检查模块、插入模块、运算模块。其中,封装模块用于将指令流封装为指令数据包,并将指令数据包添加到通信数据包中;检查模块用于检查指令数据包中是否存在与指令数据包的包头、包尾、以及逃逸字节相同的相同字节;插入模块用于在检查模块确定存在相同字节的情况下,在相同字节前面插入逃逸字节;运算模块用于将相同字节与插入的逃逸字节进行异或运算,并将异或运算的运算结果替换相同字节。
也就是说,服务器数据封装拆解包模块70首先完成指令数据包的内容封装,封装完成之后将指令数据包添加到Comm_Packet。这时首先要确保每个指令数据包中包头和包尾的唯一性。需要逐个字节检查看是否存在与包头0x7F、包尾0xEF以及逃逸字节0xCC相同的字节,如果有碰到相同的字节,就在该字节之前插入另外一个字节,即逃逸字节0xCC,然后将指令数据包中原来的字符和另外一个字符0x30进行异或运算,让它变成另外一个字符,把它保护起来,这样的处理直到包尾,整个指令数据包当中就只有一个包头和一个包尾。
经过上述处理之后,服务器数据封包收发模块72将该通信数据包发送到客户端,以使客户端根据通信数据包控制仪表和被测设备;服务器数据封包收发模块72还可以接收客户端发送的通信数据包;
本发明实施例利用成型的以太网络实现测试工具的远程调试及测试系统的远程管理。在不改变本地计算机与终端物理连接的前提下,通过网络可以实现两地的远程跟踪和调试。测试系统的软件系统运行在A地,相关测试工具、线缆、仪表等硬件连接都在B地的环境下。通过技术人员的远程控制跟踪来实现测试系统的远程管理,保证了及时性,节省了出差成本。
方法实施例
根据本发明的实施例,提供了一种分布式远程测试方法,图8为本发明实施例的分布式远程测试方法的流程图,如图8所示,根据本发明实施例的分布式远程测试方法包括如下处理:
步骤801,接收通信数据包,其中,通信数据包是由服务器将指令流按照预定格式进行封装后发送的;其中,预定格式包括:通信数据包头部、以及一个或多个指令数据包,其中,通信数据包头部包括:通信数据包标识、通信数据包长度、以及指令数据包个数,指令数据包包括:开始标识、指令数据包长度、指令类型、操作对象、具体操作、标志信息、传输数据、校验和、以及结束标识。
需要说明的是,通信数据包的格式可以参照图3以及系统实施例中的相应内容进行理解,在此不再赘述。
具体地,在执行步骤801之前,还需要将指令流按照预定格式进行封装,得到通信数据包;也就是说,服务器端将不同的指令打包成统一的TCP/IP通信数据包用于传输,例如,对于英飞凌平台可能通过AT指令方式向被测设备发送相应的控制指令;对于高通平台的被测设备可能发送相应的DIAG控制指令,对于BECEEM平台的WIMAX终端可能利用相应的API指令进行被测设备的控制。
具体地,服务器端首先完成指令数据包的内容封装,封装完成之后将指令数据包添加到Comm_Packet。这时首先要确保每个指令数据包中包头和包尾的唯一性。需要逐个字节检查看是否存在与包头0x7F、包尾0xEF以及逃逸字节0xCC相同的字节,如果有碰到相同的字节,就在该字节之前插入另外一个字节,即逃逸字节0xCC,然后将指令数据包中原来的字符和另外一个字符0x30进行异或运算,让它变成另外一个字符,把它保护起来,这样的处理直到包尾,整个指令数据包当中就只有一个包头和一个包尾。
步骤802,根据预定格式对通信数据包进行解析,获取指令流;
具体地,在步骤802中,需要进行如下处理:首先,根据通信数据包头部中的通信数据包标识、通信数据包长度、以及指令数据包个数对通信数据包的正确性进行检验;在确定通信数据包是正确的情况下,查找指令数据包中的逃逸字节,并将逃逸字节删除;将逃逸字节后面的字节与逃逸字节进行异或运算获取恢复值,并用恢复值替换逃逸字节后面的字节;最后,根据指令数据包中的校验和、以及指令数据包长度对指令数据包的正确定进行校验。
也就是说,客户端接收到的通信数据包由通信数据包头部和N个指令数据包所组成,在接收到通信数据包以后,需要对通信数据包进行以下判断:
首先,解析出Comm_PacketHeader,对其中的cHead进行判断,确定是否为上述定义的包头,如果不是则丢弃此包;如果是,再读取其中的长度信息,判断和收到的通信数据包的长度是否相符,如果不符则丢弃;如果相符,继续进行指令数据包个数的判断,根据包的头尾标志位来判断通信数据包所包含的指令数据包的个数是否和通信数据包头部中所定义的个数一致,如果不一致则丢弃,一致则确定接收到的通信数据包是正确的,可以进行指令的解析。
在指令解析时,因为之前已经通过头尾标志获取了各个指令数据包,第一步需要将打包时所插入的逃逸字节去掉。遍历整个包,查找逃逸字符0xCC,每找到一个就将其去掉,然后将其后面的字节和0x30进行异或运算,恢复出原来的值,直到把每个逃逸字符都去掉为止。至此,一个指令数据包就可以完整的传递到客户端。最后,还需要判断指令数据包的长度、校验和等,保证指令数据包的正确性。
步骤803,根据指令流控制仪表和被测设备,获取测试输出结果。
具体地,在步骤803中,优选地,根据指令流通过以太网或通用接口总线控制仪表;以及,根据指令流通过以太网或通用串行总线控制被测设备。
通过上述处理,本发明实施例的分布式远程测试方法可以实现网络化管理,本发明实施例中利用现有的以太网络,节省了系统搭建成本,可以直接利用以太网1000Mbytes/s的传输速率,极大地提高了测试效率。
以下通过附图对本发明实施例中的分布式远程测试系统对被测设备进行测试的处理过程进行详细说明。图9为本发明实施例的分布式远程测试系统对被测设备进行测试的信令流程图,如图9所示,包括以下处理:
步骤1,服务器端计算机启动,等待客户端连接;
步骤2,客户端启动;
步骤3,通过用户输入或者从配置文件获取仪表的IP;
步骤4,服务器端计算机确定有客户端连接;
步骤5,服务器端计算机向客户端计算机发送CMD_HELLO指令;
步骤6,客户端计算机向服务器端计算机反馈CMD_HELLO_CONFIRM指令;
步骤7,服务器端计算机向客户端计算机发送Request Instrument IP指令,请求获取仪表IP;
步骤8,客户端计算机向服务器端计算机反馈Answer Instrument IP指令,反馈仪表IP;
步骤9,服务器端计算机获取表IP;
步骤10,服务器端计算机远程控制仪表;
步骤11,服务器端计算机向客户端计算机发送Connect DUT指令,连接被测设备;
步骤12,客户端计算机接收指令,执行指令;
步骤13,客户端计算机向服务器端计算机反馈Return Result指令;
步骤14,服务器端计算机开始测试;
步骤15,服务器端计算机向客户端计算机发送Send test Instruction指令;
步骤16,客户端计算机向服务器端计算机反馈Return Result指令;
步骤17,服务器端计算机确定测试完成;
步骤18,服务器端计算机向客户端计算机发送CMD_LEAVE指令;
步骤19,客户端计算机向服务器端计算机反馈CMD_LEAVE_CONFIRM指令;
步骤20,客户端计算机释放连接;
步骤21,服务器端计算机释放连接。
综上所述,本发明实施例通过远程控制仪表和被测设备进行测试操作,对测试系统进行远程管理,克服了现有技术中基于单控制器架构的测试系统过于集中而导致成本增加的缺陷,能够提高系统故障的响应速度,有效利用时间,压缩故障解决周期,避免停线,同时减少出差费用,有效提高整个系统的运作效率。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种分布式远程测试系统,其特征在于,包括:
服务器数据封装拆解包模块,用于将指令流按照预定格式进行封装,得到通信数据包;
服务器数据封包收发模块,用于发送或接收所述通信数据包;
客户端数据封包收发模块,用于接收或发送所述通信数据包;
客户端数据封装拆解包模块,用于根据所述预定格式对所述通信数据包进行解析,获取所述指令流;
业务实现模块,用于根据所述指令流控制仪表和被测设备,获取测试输出结果。
2.如权利要求1所述的分布式远程测试系统,其特征在于,还包括:
服务器逻辑总控制模块,用于对所述服务器数据封装拆解包模块和所述服务器数据封包收发模块进行逻辑控制;
客户端逻辑总控制模块,用于对所述客户端数据封包收发模块和所述客户端数据封装拆解包模块进行逻辑控制。
3.如权利要求2所述的分布式远程测试系统,其特征在于,所述预定格式包括:通信数据包头部、以及一个或多个指令数据包,其中,所述通信数据包头部包括:所述通信数据包标识、所述通信数据包长度、以及所述指令数据包个数,所述指令数据包包括:开始标识、所述指令数据包长度、指令类型、操作对象、具体操作、标志信息、传输数据、校验和、以及结束标识。
4.如权利要求3所述的分布式远程测试系统,其特征在于,所述服务器数据封装拆解包模块具体包括:
封装模块,用于将所述指令流封装为所述指令数据包,并将所述指令数据包添加到所述通信数据包中;
检查模块,用于检查所述指令数据包中是否存在与所述指令数据包的包头、包尾、以及逃逸字节相同的相同字节;
插入模块,用于在所述检查模块确定存在所述相同字节的情况下,在所述相同字节前面插入所述逃逸字节;
运算模块,用于将所述相同字节与插入的所述逃逸字节进行异或运算,并将所述异或运算的运算结果替换所述相同字节。
5.如权利要求4所述的分布式远程测试系统,其特征在于,所述客户端数据封装拆解包模块具体包括:
检验模块,用于根据所述通信数据包头部中的所述通信数据包标识、所述通信数据包长度、以及所述指令数据包个数对所述通信数据包的正确性进行检验;
查找模块,用于在所述检验模块确定所述通信数据包是正确的情况下,查找所述指令数据包中的所述逃逸字节;
删除模块,用于将所述逃逸字节删除;
恢复模块,用于将所述逃逸字节后面的字节与所述逃逸字节进行异或运算获取恢复值,并用所述恢复值替换所述逃逸字节后面的字节;
校验模块,用于根据所述指令数据包中的所述校验和、以及所述指令数据包长度对所述指令数据包的正确定进行校验。
6.如权利要求1所述的分布式远程测试系统,其特征在于,所述业务实现模块具体用于:
根据所述指令流通过以太网或通用接口总线控制所述仪表;以及
根据所述指令流通过以太网或通用串行总线控制所述被测设备。
7.一种服务器,其特征在于,包括:
服务器数据封装拆解包模块,用于将指令流按照预定格式进行封装,得到通信数据包;
服务器数据封包收发模块,用于发送或接收所述通信数据包,以使客户端根据所述通信数据包控制仪表和被测设备。
8.一种分布式远程测试方法,其特征在于,包括:
收通信数据包,其中,所述通信数据包是由服务器将指令流按照预定格式进行封装后发送的;
根据所述预定格式对所述通信数据包进行解析,获取所述指令流;
根据所述指令流控制仪表和被测设备,获取测试输出结果。
9.如权利要求8所述的方法,其特征在于,所述预定格式包括:通信数据包头部、以及一个或多个指令数据包,其中,所述通信数据包头部包括:所述通信数据包标识、所述通信数据包长度、以及所述指令数据包个数,所述指令数据包包括:开始标识、所述指令数据包长度、指令类型、操作对象、具体操作、标志信息、传输数据、校验和、以及结束标识。
10.如权利要求9所述的方法,其特征在于,
所述根据所述预定格式对所述通信数据包进行解析包括:
根据所述通信数据包头部中的所述通信数据包标识、所述通信数据包长度、以及所述指令数据包个数对所述通信数据包的正确性进行检验;
在确定所述通信数据包是正确的情况下,查找所述指令数据包中的逃逸字节,并将所述逃逸字节删除;
将所述逃逸字节后面的字节与所述逃逸字节进行异或运算获取恢复值,并用所述恢复值替换所述逃逸字节后面的字节;
根据所述指令数据包中的所述校验和、以及所述指令数据包长度对所述指令数据包的正确性进行校验;
所述根据所述指令流控制仪表和被测设备包括:
根据所述指令流通过以太网或通用接口总线控制所述仪表;以及
根据所述指令流通过以太网或通用串行总线控制所述被测设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910265873A CN101741648A (zh) | 2009-12-29 | 2009-12-29 | 分布式远程测试系统、方法、以及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910265873A CN101741648A (zh) | 2009-12-29 | 2009-12-29 | 分布式远程测试系统、方法、以及服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101741648A true CN101741648A (zh) | 2010-06-16 |
Family
ID=42464580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910265873A Pending CN101741648A (zh) | 2009-12-29 | 2009-12-29 | 分布式远程测试系统、方法、以及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101741648A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231685A (zh) * | 2011-06-17 | 2011-11-02 | 中兴通讯股份有限公司 | 测试方法、服务器及系统 |
CN102377505A (zh) * | 2010-08-06 | 2012-03-14 | 研祥智能科技股份有限公司 | 一种基于串口的ipmi数据包传输方法 |
CN102609353A (zh) * | 2012-01-17 | 2012-07-25 | 浪潮(北京)电子信息产业有限公司 | 对程序调试进行管理的方法、装置及系统 |
CN102958076A (zh) * | 2011-08-30 | 2013-03-06 | 深圳市汇川控制技术有限公司 | 安全监控系统及方法 |
CN103001704A (zh) * | 2011-09-08 | 2013-03-27 | 工业和信息化部电信传输研究所 | 分布式终端射频一致性自动化测试系统 |
CN104038553A (zh) * | 2010-09-21 | 2014-09-10 | 华为终端有限公司 | 一种控制方法、装置和系统 |
CN104683183A (zh) * | 2015-02-15 | 2015-06-03 | 大唐联仪科技有限公司 | 一种测控方法和系统 |
CN104714922A (zh) * | 2013-12-17 | 2015-06-17 | 致伸科技股份有限公司 | 简报遥控系统 |
CN105373028A (zh) * | 2014-09-02 | 2016-03-02 | 苏州普源精电科技有限公司 | 具有接口通信功能的测量设备及其接口通信系统和方法 |
CN106160881A (zh) * | 2015-03-27 | 2016-11-23 | 江苏艾科半导体有限公司 | 一种基于gpib总线的通用自动测试设备 |
CN106850149A (zh) * | 2017-04-21 | 2017-06-13 | 深圳怡化电脑股份有限公司 | 一种数据传输方法、装置、设备及存储介质 |
CN106878114A (zh) * | 2015-12-11 | 2017-06-20 | 北京数码视讯科技股份有限公司 | 一种数据传输的方法、服务器和终端 |
CN107529132A (zh) * | 2017-09-05 | 2017-12-29 | 北京京东尚科信息技术有限公司 | 蓝牙设备与应用程序之间传输数据的方法和装置 |
CN111601372A (zh) * | 2020-04-09 | 2020-08-28 | 出门问问信息科技有限公司 | 一种数据处理装置 |
TWI756397B (zh) * | 2017-04-24 | 2022-03-01 | 美商泰瑞達公司 | 測試通訊協定 |
-
2009
- 2009-12-29 CN CN200910265873A patent/CN101741648A/zh active Pending
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102377505A (zh) * | 2010-08-06 | 2012-03-14 | 研祥智能科技股份有限公司 | 一种基于串口的ipmi数据包传输方法 |
CN104038553A (zh) * | 2010-09-21 | 2014-09-10 | 华为终端有限公司 | 一种控制方法、装置和系统 |
CN104038553B (zh) * | 2010-09-21 | 2018-10-30 | 华为终端有限公司 | 一种控制方法、装置和系统 |
CN102231685A (zh) * | 2011-06-17 | 2011-11-02 | 中兴通讯股份有限公司 | 测试方法、服务器及系统 |
CN102958076A (zh) * | 2011-08-30 | 2013-03-06 | 深圳市汇川控制技术有限公司 | 安全监控系统及方法 |
CN103001704A (zh) * | 2011-09-08 | 2013-03-27 | 工业和信息化部电信传输研究所 | 分布式终端射频一致性自动化测试系统 |
CN102609353A (zh) * | 2012-01-17 | 2012-07-25 | 浪潮(北京)电子信息产业有限公司 | 对程序调试进行管理的方法、装置及系统 |
CN104714922B (zh) * | 2013-12-17 | 2018-01-23 | 致伸科技股份有限公司 | 简报遥控系统 |
CN104714922A (zh) * | 2013-12-17 | 2015-06-17 | 致伸科技股份有限公司 | 简报遥控系统 |
CN105373028A (zh) * | 2014-09-02 | 2016-03-02 | 苏州普源精电科技有限公司 | 具有接口通信功能的测量设备及其接口通信系统和方法 |
CN104683183B (zh) * | 2015-02-15 | 2018-07-06 | 大唐联仪科技有限公司 | 一种测控方法和系统 |
CN104683183A (zh) * | 2015-02-15 | 2015-06-03 | 大唐联仪科技有限公司 | 一种测控方法和系统 |
CN106160881A (zh) * | 2015-03-27 | 2016-11-23 | 江苏艾科半导体有限公司 | 一种基于gpib总线的通用自动测试设备 |
CN106878114A (zh) * | 2015-12-11 | 2017-06-20 | 北京数码视讯科技股份有限公司 | 一种数据传输的方法、服务器和终端 |
CN106850149A (zh) * | 2017-04-21 | 2017-06-13 | 深圳怡化电脑股份有限公司 | 一种数据传输方法、装置、设备及存储介质 |
TWI756397B (zh) * | 2017-04-24 | 2022-03-01 | 美商泰瑞達公司 | 測試通訊協定 |
CN107529132A (zh) * | 2017-09-05 | 2017-12-29 | 北京京东尚科信息技术有限公司 | 蓝牙设备与应用程序之间传输数据的方法和装置 |
CN111601372A (zh) * | 2020-04-09 | 2020-08-28 | 出门问问信息科技有限公司 | 一种数据处理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101741648A (zh) | 分布式远程测试系统、方法、以及服务器 | |
CN103428627B (zh) | 物联网系统中数据的传送方法、物联网系统及相应装置 | |
US9135130B2 (en) | Debugging method, chip, board, and system | |
CN103616592B (zh) | 一种基于iec61850的继电保护实时数字动态模拟试验系统 | |
CN103117900B (zh) | 一种可配置式工业以太网数据解析系统及解析方法 | |
CN101877659B (zh) | 一种丢包监控的方法、设备和系统 | |
CN111294235B (zh) | 数据处理方法、装置、网关及可读存储介质 | |
CN104657555A (zh) | 一种基于uvm验证方法学的toe的验证方法及平台 | |
CN105827476A (zh) | 高速PING实现方法和Ping测试方法 | |
CN103530211A (zh) | 一种基于uvm平台的pcie回环自检测的方法 | |
CN111064545B (zh) | 基于fpga实现具有spw接口的专网地检装置及方法 | |
CN110177058B (zh) | 一种基于fpga的以太网交换板卡状态监控收发装置 | |
CN104125204B (zh) | 基于mbim接口实现通信方法及其设备 | |
CN109495135A (zh) | 一种基于电力线载波通信的调试系统和方法 | |
CN111654409A (zh) | 一种智能车载终端测试装置及其测试方法 | |
CN201667661U (zh) | 一种PPPOE client路由器的辅测设备和测试系统 | |
CN108255070A (zh) | 面向电力稳控装置的半实物仿真通信方法 | |
CN110022238A (zh) | 一种以太网交换芯片的测试方法和装置 | |
CN114024598B (zh) | 前传接口测试方法及装置 | |
CN111490907A (zh) | 一种确定vxlan网络性能参数的方法及装置 | |
CN113950088B (zh) | 基站监测分析方法、装置、系统、电子装置及存储介质 | |
CN112653536B (zh) | 一种基于FPGA的SpaceFibre星载网络节点测试系统及方法 | |
CN211296738U (zh) | 一种指挥车系统节点单体检测诊断设备 | |
CN100382516C (zh) | 对IPv6主协议进行一致性测试的方法和装置 | |
CN203522776U (zh) | 一种可配置式工业以太网数据解析系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100616 |