一种测试采集终端远程通信单元互换性的方法
技术领域
本发明属于涉及一种测试方法,具体将涉及一种测试采集终端远程通信单元互换性的方法。
背景技术
目前,中国正在进行用电信息采集系统建设,由于系统规模大,国内各终端厂家通信模块、通信协议都是由厂家自行开发,各设备之间相互独立运行,各种通信模块、各种通信协议格式存在着较大的差异性,因而各系统中设备间的互换性及通信存在着诸多障碍,在很大程度上制约了采集系统的推广和应用。
采集终端远程通信单元是实现采集终端和用电信息采集系统主站之间数据通信的通信单元,信道端口即通信传输的端口,具有模拟调制信号和内在通信机理的特征,是实现远程通信的前提。远程通信单元的接口参数、通信协议、通信时序和各厂家根据标准自行编写的通信协议和通信时序将直接影响通信单元的工作质量。随着用电信息采集系统建设的深入推进,国家电网公司制订了《Q/GDW1376.3-2013电力用户用电信息采集系统通信协议第3部分:采集终端远程通信模块接口协议》对采集终端远程接口协议进行了规范,并在《Q/GDW1375.1-2013电力用户用电信息采集系统型式规范第1部分:专变采集终端型式规范》和《Q/GDW1374.3-2013电力用户用电信息采集系统技术规范第3部分:通信单元技术规范》中对远程通信单元的互换功能提出了型式要求和技术要求,因此需要对远程通信单元的外型尺寸、通信协议、接口管脚定义及电气要求进行全面测试。
发明内容
为了克服上述现有技术的不足,本发明提供一种测试采集终端远程通信单元互换性的方法,解决了用电信息采集系统建设和运行过程中数据通信兼容的问题,实现采集终端远程通信单元互联互换的功能。实现了采集终端远程通信单元通信信道及通信协议的在线检测及分析功能,为检测人员提供直观、准确的检测数据和图形及一体化检测分析手段,不仅便于通信过程定性和定量的分析,而且可用于采集终端远程通信的故障诊断,为通信差错定位和处理提供有效依据。
为了实现上述发明目的,本发明采取如下技术方案:
提供一种测试采集终端远程通信单元互换性的方法,所述方法包括以下步骤:
步骤1:外型结构互换性测试;
步骤2:接口管脚电气性能测试;
步骤3:进行采集终端远程通信单元互换性测试,包括接口通信协议一致性测试和信息交互测试。
所述步骤1中,通过标准外型尺寸接口模型检测远程通信单元外型尺寸,以完成外型结构互换性测试;
所述标准外型尺寸接口模型是可嵌入多种远程通信单元,并与远程通信单元接口相匹配,完成采集终端的数据采集功能。
所述步骤2中,通过标准控制源测试远程通信单元的接口管脚,以完成电气性能测试;
所述标准控制源是为被测的远程通信单元提供其工作的交直流电源,输出状态变位信号,并检测终端是否能正确识别,监测被测模块控制输出状态,与被测通信单元进行数据交换的设备。
所述接口管脚包括工作电源管脚、控制信号管脚、状态信号管脚和通信信号管脚。
所述步骤3中,通过通信协议模拟器测试远程通信单元与采集终端的通信协议,以完成接口通信协议一致性测试和信息交互测试;
所述通信协议模拟器是指内置1376.3标准的协议库,可依据协议和交互流程对被测通信单元发送数据帧,并接收被测通信返回的数据帧与内置协议库进行比较。
所述步骤3包括以下步骤:
步骤3-1:进行通信协议一致性测试;
通信协议一致性测试的测试顺序为:测试标准指令集、测试拓展指令集、测试非透明数据传输指令集、测试透明数据传输命令集、测试主动上报命令集、测试FTP功能指令集、测试锁频相关指令集和测试GPS定位相关命令;
步骤3-2:信息交互测试;
信息交互测试的测试顺序为:GPRS模块上电测试、非透明模式的UDP应用测试、非透明模式的TCP客户端应用测试、透明模式的UDP应用测试、透明模式的TCP客户端应用测试、外部堆栈测试、FTP测试和波特率自适应测试。
测试标准指令集具体包括以下步骤:
(1)测试模块厂商信息
发送命令ATI,查询响应结果,通过<CR><LF>对返回的结果进行分割,根据分割的数据,判断<module_info>有数据,并且包含OK信息;
(2)测试模块软件版本信息
当测试命令和查询命令的返回结果同时正确时,才判定此规约验证通过;
2-1)测试命令
发送命令AT+GMR=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断中间的数据为OK,返回<CR><LF>OK<CR><LF>结果;
2-2)查询命令
发送命令AT+GMR,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断根据分割的数据,分别包含<revision>和OK数据;
(3)测试信号强度
当测试命令和查询命令的返回结果同时正确时,才判定此规约验证通过;
3-1)测试命令
发送命令AT+CSQ=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,根据分割的数据,分别包含+CSQ:和OK数据;
3-2)查询命令
发送命令AT+CSQ,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断根据分割的数据,分别包含+CSQ:和OK数据;
(4)测试当前网络注册状态
当设置命令和查询命令的返回结果同时正确时,才判定此规约验证通过;
4-1)设置命令
发送命令AT+CREG=2,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断中间的数据为OK;
4-2)查询命令
发送命令AT+CREG?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断根据分割的数据,分别包含+CREG:和OK数据;
(5)测试通信模块IMEI号
当测试命令和查询命令的返回结果同时正确时,才判定此规约验证通过;
5-1)测试命令
发送命令AT+CGSN=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断中间的数据为OK;
5-2)查询命令
发送命令AT+CGSN,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断根据分割的数据,分别包含+CGSN:和OK数据;
(6)测试重启模块
当设置命令、测试命令和查询命令的返回结果同时正确时,才判定此规约验证通过;
6-1)设置命令
发送命令AT+CFUN=1,1,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断中间的数据为OK;
6-2)测试命令
发送命令AT+CFUN=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断根据分割的数据,分别包含+CFUN:和OK数据;
6-3)查询命令
发送命令AT+CFUN?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断根据分割的数据,分别包含+CFUN:和OK数据;
(7)测试串口多路复用功能
设置命令:发送命令AT+CMUX=0,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断中间的数据为OK。
测试拓展指令集包括以下步骤:
(1)测试通信模块软件关机
发送命令AT$MYPOWEROFF,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断中间的数据为OK;
(2)测试网络同步信号灯控制
发送命令AT$MYSOCKETLED=1,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断中间的数据为OK;
(3)测试模块软件和硬件版本信息
发送命令AT$MYGMR,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含7行非空数据,另外最后一个非空数据为OK;
(4)测试SIM卡序列号
发送命令AT$MYCCID,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYCCID:,第二个非空数据为OK;
(5)测试内置协议栈主动上报开关
当设置命令和查询命令的返回结果同时正确时,才判定此规约验证通过;
5-1)设置命令
发送命令AT$MYNETURC=0,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
5-2)查询命令
发送命令AT$MYNETURC?,查询响应结果,通过<CR><LF>对返回的结果进行分割,然后判断至少包含2行非空数据,第一个非空数据包含$MYNETURC:,第二个非空数据为OK;
(6)测试远程通信单元类型
发送命令AT$MYTYPE?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYTYPE:,第二个非空数据为OK;
(7)测试网络连接初始化参数
当设置命令和查询命令的返回结果同时正确时,才判定此规约验证通过。
7-1)设置命令
发送命令AT$MYNETCON=0,USERPWD,user,passwd,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
7-2)查询命令
发送命令AT$MYNETCON?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYNETCON:,第二个非空数据为OK;
(8)测试网络连接
当设置命令、查询命令和测试命令的返回结果同时正确时,才判定此规约验证通过;
8-1)设置命令
发送命令AT$MYNETACT=0,1,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
8-2)查询命令
发送命令AT$MYNETACT?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYNETACT:,第二个非空数据为OK;
8-3)测试命令
发送命令AT$MYNETACT=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYNETACT:,第二个非空数据为OK;
(9)测试IP访问控制
当设置命令、查询命令和测试命令的返回结果同时正确时,才判定此规约验证通过;
9-1)设置命令
发送命令AT$MYIPFILTER=0,1,192.168.0.23,255.255.255.255,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
9-2)查询命令
发送命令AT$MYIPFILTER?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYIPFILTER:,最后一个非空数据为OK;
9-3)测试命令
发送命令AT$MYIPFILTER=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYIPFILTER:,第二个非空数据为OK。
测试非透明数据传输指令集包括以下步骤:
(1)测试服务参数
当设置命令、查询命令和测试命令的返回结果同时正确时,才判定此规约验证通过;
1-1)设置命令
发送命令AT$MYNETSRV=0,0,0,0,“172.22.33.2:5000”,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
1-2)查询命令
发送命令AT$MYNETSRV?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYNETSRV:,最后一个非空数据为OK;
1-3)测试命令
发送命令AT$MYNETSRV=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
(2)测试开启服务
当设置命令、查询命令和测试命令的返回结果同时正确时,才判定此规约验证通过;
2-1)设置命令
发送命令AT$MYNETOPEN=0,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYNETOPEN:,最后一个非空数据为OK;
2-2)查询命令
发送命令AT$MYNETOPEN?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYNETOPEN:,最后一个非空数据为OK;
2-3)测试命令
发送命令AT$MYNETOPEN=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
(3)测试读取数据
当设置命令和测试命令的返回结果同时正确时,才判定此规约验证通过;
3-1)设置命令
发送命令AT$MYNETREAD=0,1408,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYNETREAD:,最后一个非空数据为OK;
3-2)测试命令
发送命令AT$MYNETREAD=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
(4)测试发送数据
当设置命令和测试命令的返回结果同时正确时,才判定此规约验证通过;
4-1)设置命令
发送命令AT$MYNETWRITE=0,10,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYNETWRITE:,最后一个非空数据为OK;
4-2)测试命令
发送命令AT$MYNETWRITE=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
(5)测试关闭连接
当设置命令、查询命令和测试命令的返回结果同时正确时,才判定此规约验证通过;
5-1)设置命令
发送命令AT$MYNETCLOSE=0,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYNETCLOSE:,最后一个非空数据为OK;
5-2)查询命令
发送命令AT$MYNETCLOSE?,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
5-3)测试命令
发送命令AT$MYNETCLOSE=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
(6)测试设置TCP ACK查询
设置命令:发送命令AT$MYNETACK=0,查询响应结果,查询通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYNETACK:,最后一个非空数据为OK;
(7)测试接收侦听请求
当设置命令、查询命令和测试命令的返回结果同时正确时,才判定此规约验证通过;
7-1)设置命令
发送命令AT$MYNETSRV=0,2,1,0,127.0.0.1:5100,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
7-2)查询命令
发送命令AT$MYNETACCEPT?,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
7-3)测试命令
发送命令AT$MYNETACCEPT=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK。
测试透明数据传输指令集中,测试开启服务,当设置命令、查询命令和测试命令的返回结果同时正确时,才判定此规约验证通过;
1)设置命令
发送命令AT$MYNETCREATE=1,2,2,172.22.44.123,5300,3000,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为CONNECT;
2)查询命令
发送命令AT$MYNETCREATE?,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
3)测试命令
发送命令AT$MYNETCREATE=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK。
测试主动上报命令集中,当数据到来主动上报、链路断开主动上报和网络连接状态主动上报的返回结果同时正确时,才判定此规约验证通过;
1)测试数据到来主动上报
发送命令$MYURCREAD,查询响应结果,返回值为
<CR><LF>$MYURCREAD:<SocketID><CR><LF>为OK;
2)测试链路断开主动上报令
发送命令$MYURCCLOSE,查询响应结果,返回值为
<CR><LF>$MYURCCLOSE:<SocketID><CR><LF>为OK;
3)测试网络连接状态主动上报
发送命令$MYURCACT,查询响应结果,返回值为
<CR><LF>$MYURCACT:<channel>,<type><CR><LF>为OK。
测试FTP功能指令集包括以下步骤:
(1)测试启动文件服务
当设置命令、查询命令和测试命令的返回结果同时正确时,才判定此规约验证通过;
(1-1)设置命令
发送命令AT$MYFTPOPEN=1,someftpsite.com,anonymous,qwertysomemail.com,1,30,1,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
1-2)查询命令
发送命令AT$MYFTPOPEN?,查询响应结果,通过<CR><LF>对返回的结果进行分割,然后判断至少包含2行非空数据,第一个非空数据包含$MYFTPOPEN:,最后一个非空数据为OK;
1-3)测试命令
发送命令AT$MYFTPOPEN=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
(2)测试关闭文件服务
发送命令AT$MYFTPCLOSE,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
(3)测试获取FTP文件大小
发送命令AT$MYFTPSIZE=//myfile/ftp_file.txt,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYFTPSIZE:,最后一个非空数据为OK;
(4)测试文件下载
发送命令AT$MYFTPGET=//myfile/ftp_download.txt,0,18,查询响应结果,通过<CR><LF>对返回的结果进行分割,然后判断至少包含2行非空数据,第一个非空数据包含CONNECT,最后一个非空数据为OK;
(5)测试文件上传
发送命令AT$MYFTPPUT=//myfile/ftp_upload.txt,18,1,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含CONNECT,最后一个非空数据为OK.
测试锁频相关指令集包括以下步骤:
(1)测试BCCH信道锁定
当设置命令、查询命令和测试命令的返回结果同时正确时,才判定此规约验证通过;
1-1)设置命令
发送命令AT$MYBCCH=1,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
1-2)查询命令
发送命令AT$MYBCCH?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYFTPOPEN:,最后一个非空数据为OK;
1-3)测试命令
发送命令AT$MYBCCH=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYFTPOPEN:,最后一个非空数据为OK。
(2)测试锁定指定频段
当设置命令和查询命令的返回结果同时正确时,才判定此规约验证通过;
2-1)设置命令
发送命令AT$MYBAND=1,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
2-2)查询命令
发送命令AT$MYBAND?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYBAND:,最后一个非空数据为OK。
测试GPS定位相关命令集中,测试获取GPS NMEA数据,发送命令AT$MYGPSPOS=0,查看响应结果,通过<CR><LF>对返回的结果进行分割,然后判断至少包含2行非空数据,第一个非空数据包含$MYGPSPOS:,最后一个非空数据为OK。
GPRS模块上电测试包括:
(1)执行远程模块开机操作;
(2)发送一次指令:AT<CR><LF>;
(3)等待判断是否有回码,超时时间为6s;
(4)若有回码:<CR><LF>OK<CR><LF>,判定为成功;否则,判定为失败;
(5)测试结束。
非透明模式的UDP应用测试包括:
(1)执行远程模块开机操作;
(2)执行模块初始化完成后的设置操作;
(3)设置APN;
(4)设置GPRS认证用户名和密码;
(5)激活第1个通道;
(6)查询模块获取到的公网IP;
(7)设置链接号2为UDP连接,HEX模式;
(8)使用链接号2建立连接;
(9)模块通过链接号2发送12个字节数据;
(10)模块从链接号2读取10个数据;
(11)关闭链接号2;
(12)反注册网络,来测试网络连接状态主动上报;
(13)去激活第1号通道;
(14)测试结束。
非透明模式的TCP客户端应用测试包括:
(1)执行远程模块开机操作;
(2)执行模块初始化完成后的设置操作;
(3)设置APN;
(4)设置GPRS认证用户名和密码;
(5)激活第2个通道;
(6)设置链接号1为TCP连接,文本模式;
(7)使用链接号1建立连接;
(8)主站通过模块与主站之间建立的Socket连接发送19个字节的数据,来测试数据到来主动上报;
(9)模块从链接号1读取100个数据;
(10)模块通过1号Socket发送12个字节数据给主站;
(11)设置TCP ACK查询;
(12)主站主动断开与模块之间的Socket连接,测试链路断开主动上报;
(13)去激活第2号通道;
(14)测试结束。
透明模式的UDP应用测试包括:
(1)执行远程模块开机操作;
(2)执行模块初始化完成后的设置操作;
(3)设置APN;
(4)设置GPRS认证用户名和密码;
(5)激活第1个通道;
(6)使用链接号2建立UDP的透明通道;
(7)输入+++,模块返回OK表示回到命令模式;
(8)关闭链接号2;
(9)去激活第1号通道;
(10)测试结束。
透明模式的TCP客户端应用测试包括:
(1)执行远程模块开机操作;
(2)执行模块初始化完成后的设置操作;
(3)设置APN;
(4)设置GPRS认证用户名和密码;
(5)激活第2个通道;
(6)查询模块获取到的公网IP;
(7)使用链接号1建立TCP的透明通道;
(8)输入+++,模块返回OK表示回到命令模式;
(9)关闭链接号1;
(10)去激活第2号通道;
(11)测试结束。
外部堆栈测试包括:
(1)执行远程模块开机操作;
(2)执行模块初始化完成后的设置操作;
(3)如果是GPRS网络,则进行GPRS网络测试,如果是CDMA网络,则进行CDMA网络测试;
(4)测试结束。
FTP测试包括:
(1)执行远程模块开机操作;
(2)执行模块初始化完成后的设置操作;
(3)设置APN;
(4)激活第1个通道;
(5)查询模块获取到的公网IP;
(6)启动FTP服务,让模块连接主站的FTP服务器;
(7)上传一个文件到主站的FTP服务器;
(8)查询上传到主站FTP服务器上的这个文件的大小;
(9)下载此文件;
(10)关闭FTP服务,让模块关闭FTP连接;
(11)启动FTP服务,让模块连接主站的FTP服务器;
(12)反注册网络,来测试FTP连接断开主动上报;
(13)测试结束。
波特率自适应测试中,按照Q/GDW1376.3—2013条款4.1中要求模块支持的波特率数值9600、19200、38400、57600、115200bit/s,8位数据位,1位停止位,无校验位,按波特率由小到大的顺序,依次更改计算机和模块之间通信口的波特率;
(1)执行远程模块开机操作;
(2)发送一次指令:AT<CR><LF>;
(3)等待判断是否有回码,超时时间为6s;
(4)若有回码:<CR><LF>OK<CR><LF>,判定为支持当前波特率;否则,判定为不支持当前波特率;
(5)跳回至步骤24.1,直至9600、19200、38400、57600、115200bit/s这些波特率数值全部测试过一遍;
(6)测试结束。
与现有技术相比,本发明的有益效果在于:
实现了采集终端远程通信单元通信信道及通信协议的在线检测及分析功能,为检测人员提供直观、准确的检测数据和图形及一体化检测分析手段,不仅便于通信过程定性和定量的分析,而且可用于采集终端远程通信的故障诊断,为通信差错定位和处理提供有效依据。通过远程通信单元互换性能测试,规范远程通信单元设计要求,进一步提高了用电信息传输的安全性、稳定性和可靠性,为更好的满足电力企业的实际需求、加快推进用电信息采集系统和智能电网建设提供技术支撑。
附图说明
图1是测试采集终端远程通信单元互换性的方法流程图。
具体实施方式
下面结合附图对本发明作进一步详细说明。
如图1,本发明提供一种测试采集终端远程通信单元互换性的方法,所述方法包括以下步骤:
步骤1:外型结构互换性测试;
步骤2:接口管脚电气性能测试;
步骤3:进行采集终端远程通信单元互换性测试,包括接口通信协议一致性测试和信息交互测试。
所述步骤1中,通过标准外型尺寸接口模型检测远程通信单元外型尺寸,以完成外型结构互换性测试;
所述标准外型尺寸接口模型是可嵌入多种远程通信单元,并与远程通信单元接口相匹配,完成采集终端的数据采集功能。
所述步骤2中,通过标准控制源测试远程通信单元的接口管脚,以完成电气性能测试;
所述标准控制源是为被测的远程通信单元提供其工作的交直流电源,输出状态变位信号,并检测终端是否能正确识别,监测被测模块控制输出状态,与被测通信单元进行数据交换的设备。
所述接口管脚包括工作电源管脚、控制信号管脚、状态信号管脚和通信信号管脚。
所述步骤3中,通过通信协议模拟器测试远程通信单元与采集终端的通信协议,以完成接口通信协议一致性测试和信息交互测试;
所述通信协议模拟器是指内置1376.3标准的协议库,可依据协议和交互流程对被测通信单元发送数据帧,并接收被测通信返回的数据帧与内置协议库进行比较。
所述步骤3包括以下步骤:
步骤3-1:进行通信协议一致性测试;
通信协议一致性测试的测试顺序为:测试标准指令集、测试拓展指令集、测试非透明数据传输指令集、测试透明数据传输命令集、测试主动上报命令集、测试FTP功能指令集、测试锁频相关指令集和测试GPS定位相关命令;
步骤3-2:信息交互测试;
信息交互测试的测试顺序为:GPRS模块上电测试、非透明模式的UDP应用测试、非透明模式的TCP客户端应用测试、透明模式的UDP应用测试、透明模式的TCP客户端应用测试、外部堆栈测试、FTP测试和波特率自适应测试。
测试标准指令集具体包括以下步骤:
(1)测试模块厂商信息
发送命令ATI,查询响应结果,通过<CR><LF>对返回的结果进行分割,根据分割的数据,判断<module_info>有数据,并且包含OK信息;
(2)测试模块软件版本信息
当测试命令和查询命令的返回结果同时正确时,才判定此规约验证通过;
2-1)测试命令
发送命令AT+GMR=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断中间的数据为OK,返回<CR><LF>OK<CR><LF>结果;
2-2)查询命令
发送命令AT+GMR,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断根据分割的数据,分别包含<revision>和OK数据;
(3)测试信号强度
当测试命令和查询命令的返回结果同时正确时,才判定此规约验证通过;
3-1)测试命令
发送命令AT+CSQ=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,根据分割的数据,分别包含+CSQ:和OK数据;
3-2)查询命令
发送命令AT+CSQ,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断根据分割的数据,分别包含+CSQ:和OK数据;
(4)测试当前网络注册状态
当设置命令和查询命令的返回结果同时正确时,才判定此规约验证通过;
4-1)设置命令
发送命令AT+CREG=2,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断中间的数据为OK;
4-2)查询命令
发送命令AT+CREG?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断根据分割的数据,分别包含+CREG:和OK数据;
(5)测试通信模块IMEI号
当测试命令和查询命令的返回结果同时正确时,才判定此规约验证通过;
5-1)测试命令
发送命令AT+CGSN=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断中间的数据为OK;
5-2)查询命令
发送命令AT+CGSN,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断根据分割的数据,分别包含+CGSN:和OK数据;
(6)测试重启模块
当设置命令、测试命令和查询命令的返回结果同时正确时,才判定此规约验证通过;
6-1)设置命令
发送命令AT+CFUN=1,1,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断中间的数据为OK;
6-2)测试命令
发送命令AT+CFUN=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断根据分割的数据,分别包含+CFUN:和OK数据;
6-3)查询命令
发送命令AT+CFUN?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断根据分割的数据,分别包含+CFUN:和OK数据;
(7)测试串口多路复用功能
设置命令:发送命令AT+CMUX=0,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断中间的数据为OK。
测试拓展指令集包括以下步骤:
(1)测试通信模块软件关机
发送命令AT$MYPOWEROFF,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断中间的数据为OK;
(2)测试网络同步信号灯控制
发送命令AT$MYSOCKETLED=1,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断中间的数据为OK;
(3)测试模块软件和硬件版本信息
发送命令AT$MYGMR,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含7行非空数据,另外最后一个非空数据为OK;
(4)测试SIM卡序列号
发送命令AT$MYCCID,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYCCID:,第二个非空数据为OK;
(5)测试内置协议栈主动上报开关
当设置命令和查询命令的返回结果同时正确时,才判定此规约验证通过;
5-1)设置命令
发送命令AT$MYNETURC=0,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
5-2)查询命令
发送命令AT$MYNETURC?,查询响应结果,通过<CR><LF>对返回的结果进行分割,然后判断至少包含2行非空数据,第一个非空数据包含$MYNETURC:,第二个非空数据为OK;
(6)测试远程通信单元类型
发送命令AT$MYTYPE?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYTYPE:,第二个非空数据为OK;
(7)测试网络连接初始化参数
当设置命令和查询命令的返回结果同时正确时,才判定此规约验证通过。
7-1)设置命令
发送命令AT$MYNETCON=0,USERPWD,user,passwd,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
7-2)查询命令
发送命令AT$MYNETCON?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYNETCON:,第二个非空数据为OK;
(8)测试网络连接
当设置命令、查询命令和测试命令的返回结果同时正确时,才判定此规约验证通过;
8-1)设置命令
发送命令AT$MYNETACT=0,1,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
8-2)查询命令
发送命令AT$MYNETACT?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYNETACT:,第二个非空数据为OK;
8-3)测试命令
发送命令AT$MYNETACT=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYNETACT:,第二个非空数据为OK;
(9)测试IP访问控制
当设置命令、查询命令和测试命令的返回结果同时正确时,才判定此规约验证通过;
9-1)设置命令
发送命令AT$MYIPFILTER=0,1,192.168.0.23,255.255.255.255,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
9-2)查询命令
发送命令AT$MYIPFILTER?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYIPFILTER:,最后一个非空数据为OK;
9-3)测试命令
发送命令AT$MYIPFILTER=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYIPFILTER:,第二个非空数据为OK。
测试非透明数据传输指令集包括以下步骤:
(1)测试服务参数
当设置命令、查询命令和测试命令的返回结果同时正确时,才判定此规约验证通过;
1-1)设置命令
发送命令AT$MYNETSRV=0,0,0,0,“172.22.33.2:5000”,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
1-2)查询命令
发送命令AT$MYNETSRV?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYNETSRV:,最后一个非空数据为OK;
1-3)测试命令
发送命令AT$MYNETSRV=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
(2)测试开启服务
当设置命令、查询命令和测试命令的返回结果同时正确时,才判定此规约验证通过;
2-1)设置命令
发送命令AT$MYNETOPEN=0,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYNETOPEN:,最后一个非空数据为OK;
2-2)查询命令
发送命令AT$MYNETOPEN?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYNETOPEN:,最后一个非空数据为OK;
2-3)测试命令
发送命令AT$MYNETOPEN=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
(3)测试读取数据
当设置命令和测试命令的返回结果同时正确时,才判定此规约验证通过;
3-1)设置命令
发送命令AT$MYNETREAD=0,1408,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYNETREAD:,最后一个非空数据为OK;
3-2)测试命令
发送命令AT$MYNETREAD=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
(4)测试发送数据
当设置命令和测试命令的返回结果同时正确时,才判定此规约验证通过;
4-1)设置命令
发送命令AT$MYNETWRITE=0,10,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYNETWRITE:,最后一个非空数据为OK;
4-2)测试命令
发送命令AT$MYNETWRITE=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
(5)测试关闭连接
当设置命令、查询命令和测试命令的返回结果同时正确时,才判定此规约验证通过;
5-1)设置命令
发送命令AT$MYNETCLOSE=0,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYNETCLOSE:,最后一个非空数据为OK;
5-2)查询命令
发送命令AT$MYNETCLOSE?,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
5-3)测试命令
发送命令AT$MYNETCLOSE=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
(6)测试设置TCP ACK查询
设置命令:发送命令AT$MYNETACK=0,查询响应结果,查询通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYNETACK:,最后一个非空数据为OK;
(7)测试接收侦听请求
当设置命令、查询命令和测试命令的返回结果同时正确时,才判定此规约验证通过;
7-1)设置命令
发送命令AT$MYNETSRV=0,2,1,0,127.0.0.1:5100,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
7-2)查询命令
发送命令AT$MYNETACCEPT?,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
7-3)测试命令
发送命令AT$MYNETACCEPT=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK。
测试透明数据传输指令集中,测试开启服务,当设置命令、查询命令和测试命令的返回结果同时正确时,才判定此规约验证通过;
1)设置命令
发送命令AT$MYNETCREATE=1,2,2,172.22.44.123,5300,3000,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为CONNECT;
2)查询命令
发送命令AT$MYNETCREATE?,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
3)测试命令
发送命令AT$MYNETCREATE=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK。
测试主动上报命令集中,当数据到来主动上报、链路断开主动上报和网络连接状态主动上报的返回结果同时正确时,才判定此规约验证通过;
1)测试数据到来主动上报
发送命令$MYURCREAD,查询响应结果,返回值为
<CR><LF>$MYURCREAD:<SocketID><CR><LF>为OK;
2)测试链路断开主动上报令
发送命令$MYURCCLOSE,查询响应结果,返回值为
<CR><LF>$MYURCCLOSE:<SocketID><CR><LF>为OK;
3)测试网络连接状态主动上报
发送命令$MYURCACT,查询响应结果,返回值为
<CR><LF>$MYURCACT:<channel>,<type><CR><LF>为OK。
测试FTP功能指令集包括以下步骤:
(1)测试启动文件服务
当设置命令、查询命令和测试命令的返回结果同时正确时,才判定此规约验证通过;
(1-1)设置命令
发送命令AT$MYFTPOPEN=1,someftpsite.com,anonymous,qwertysomemail.com,1,30,1,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
1-2)查询命令
发送命令AT$MYFTPOPEN?,查询响应结果,通过<CR><LF>对返回的结果进行分割,然后判断至少包含2行非空数据,第一个非空数据包含$MYFTPOPEN:,最后一个非空数据为OK;
1-3)测试命令
发送命令AT$MYFTPOPEN=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
(2)测试关闭文件服务
发送命令AT$MYFTPCLOSE,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
(3)测试获取FTP文件大小
发送命令AT$MYFTPSIZE=//myfile/ftp_file.txt,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYFTPSIZE:,最后一个非空数据为OK;
(4)测试文件下载
发送命令AT$MYFTPGET=//myfile/ftp_download.txt,0,18,查询响应结果,通过<CR><LF>对返回的结果进行分割,然后判断至少包含2行非空数据,第一个非空数据包含CONNECT,最后一个非空数据为OK;
(5)测试文件上传
发送命令AT$MYFTPPUT=//myfile/ftp_upload.txt,18,1,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含CONNECT,最后一个非空数据为OK.
测试锁频相关指令集包括以下步骤:
(1)测试BCCH信道锁定
当设置命令、查询命令和测试命令的返回结果同时正确时,才判定此规约验证通过;
1-1)设置命令
发送命令AT$MYBCCH=1,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
1-2)查询命令
发送命令AT$MYBCCH?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYFTPOPEN:,最后一个非空数据为OK;
1-3)测试命令
发送命令AT$MYBCCH=?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYFTPOPEN:,最后一个非空数据为OK。
(2)测试锁定指定频段
当设置命令和查询命令的返回结果同时正确时,才判定此规约验证通过;
2-1)设置命令
发送命令AT$MYBAND=1,查询响应结果,通过<CR><LF>对返回的结果进行分割,中间的非空数据为OK;
2-2)查询命令
发送命令AT$MYBAND?,查询响应结果,通过<CR><LF>对返回的结果进行分割,判断至少包含2行非空数据,第一个非空数据包含$MYBAND:,最后一个非空数据为OK。
测试GPS定位相关命令集中,测试获取GPS NMEA数据,发送命令AT$MYGPSPOS=0,查看响应结果,通过<CR><LF>对返回的结果进行分割,然后判断至少包含2行非空数据,第一个非空数据包含$MYGPSPOS:,最后一个非空数据为OK。
GPRS模块上电测试包括:
(1)执行远程模块开机操作;
(2)发送一次指令:AT<CR><LF>;
(3)等待判断是否有回码,超时时间为6s;
(4)若有回码:<CR><LF>OK<CR><LF>,判定为成功;否则,判定为失败;
(5)测试结束。
非透明模式的UDP应用测试包括:
(1)执行远程模块开机操作;
(2)执行模块初始化完成后的设置操作;
(3)设置APN;
(4)设置GPRS认证用户名和密码;
(5)激活第1个通道;
(6)查询模块获取到的公网IP;
(7)设置链接号2为UDP连接,HEX模式;
(8)使用链接号2建立连接;
(9)模块通过链接号2发送12个字节数据;
(10)模块从链接号2读取10个数据;
(11)关闭链接号2;
(12)反注册网络,来测试网络连接状态主动上报;
(13)去激活第1号通道;
(14)测试结束。
非透明模式的TCP客户端应用测试包括:
(1)执行远程模块开机操作;
(2)执行模块初始化完成后的设置操作;
(3)设置APN;
(4)设置GPRS认证用户名和密码;
(5)激活第2个通道;
(6)设置链接号1为TCP连接,文本模式;
(7)使用链接号1建立连接;
(8)主站通过模块与主站之间建立的Socket连接发送19个字节的数据,来测试数据到来主动上报;
(9)模块从链接号1读取100个数据;
(10)模块通过1号Socket发送12个字节数据给主站;
(11)设置TCP ACK查询;
(12)主站主动断开与模块之间的Socket连接,测试链路断开主动上报;
(13)去激活第2号通道;
(14)测试结束。
透明模式的UDP应用测试包括:
(1)执行远程模块开机操作;
(2)执行模块初始化完成后的设置操作;
(3)设置APN;
(4)设置GPRS认证用户名和密码;
(5)激活第1个通道;
(6)使用链接号2建立UDP的透明通道;
(7)输入+++,模块返回OK表示回到命令模式;
(8)关闭链接号2;
(9)去激活第1号通道;
(10)测试结束。
透明模式的TCP客户端应用测试包括:
(1)执行远程模块开机操作;
(2)执行模块初始化完成后的设置操作;
(3)设置APN;
(4)设置GPRS认证用户名和密码;
(5)激活第2个通道;
(6)查询模块获取到的公网IP;
(7)使用链接号1建立TCP的透明通道;
(8)输入+++,模块返回OK表示回到命令模式;
(9)关闭链接号1;
(10)去激活第2号通道;
(11)测试结束。
外部堆栈测试包括:
(1)执行远程模块开机操作;
(2)执行模块初始化完成后的设置操作;
(3)如果是GPRS网络,则进行GPRS网络测试,如果是CDMA网络,则进行CDMA网络测试;
(4)测试结束。
FTP测试包括:
(1)执行远程模块开机操作;
(2)执行模块初始化完成后的设置操作;
(3)设置APN;
(4)激活第1个通道;
(5)查询模块获取到的公网IP;
(6)启动FTP服务,让模块连接主站的FTP服务器;
(7)上传一个文件到主站的FTP服务器;
(8)查询上传到主站FTP服务器上的这个文件的大小;
(9)下载此文件;
(10)关闭FTP服务,让模块关闭FTP连接;
(11)启动FTP服务,让模块连接主站的FTP服务器;
(12)反注册网络,来测试FTP连接断开主动上报;
(13)测试结束。
波特率自适应测试中,按照Q/GDW1376.3—2013条款4.1中要求模块支持的波特率数值9600、19200、38400、57600、115200bit/s,8位数据位,1位停止位,无校验位,按波特率由小到大的顺序,依次更改计算机和模块之间通信口的波特率;
(1)执行远程模块开机操作;
(2)发送一次指令:AT<CR><LF>;
(3)等待判断是否有回码,超时时间为6s;
(4)若有回码:<CR><LF>OK<CR><LF>,判定为支持当前波特率;否则,判定为不支持当前波特率;
(5)跳回至步骤24.1,直至9600、19200、38400、57600、115200bit/s这些波特率数值全部测试过一遍;
(6)测试结束。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。