智能电能表实时操作系统驱动测试方法及装置与流程

文档序号:23767743发布日期:2021-01-29 20:50阅读:159来源:国知局
智能电能表实时操作系统驱动测试方法及装置与流程

[0001]
本发明属于电力计量技术领域,具体涉及智能电能表实时操作系统驱动测试方法及装置。


背景技术:

[0002]
由于针对嵌入式设备的软件功能测试往往比较困难,目前大多数测试方法是依赖开发单位对于软件功能的声明,或者第三方见证试验而开展的。因此,在测试智能电能表实时操作系统驱动程序的过程中虽然也可以通过硬件厂家声明的方式开展,即不进行完整驱动功能的测试,但只能保证智能电能表在现场稳定运行。当需求变更软件升级时,无法确保软件能够兼容现场的各类硬件设备,增大了后续运维工作量。
[0003]
新一代智能电能表搭载统一的嵌入式实时操作系统,形成软硬件解耦的系统平台,具备远程软件在线升级的功能,可以满足后续在智能电能表的功能要求变化时,方便地进行运维管理。为了实现硬件平台化、软件app化的目标,各硬件厂家严格按照规范的硬件驱动接口要求及功能要求开发相应的驱动程序。
[0004]
在建设开放式、跨硬件的智能电能表软件生态系统的过程中,开展驱动程序测试是非常重要的一个环节。针对驱动程序测试需求,目前没有针对智能电能表驱动程序的测试方法,无法对应用于智能电能表的驱动程序进行功能符合性以及性能可靠性验证。


技术实现要素:

[0005]
针对现有技术的不足,本发明提供智能电能表实时操作系统驱动测试方法及装置,以解决现有技术中因为缺少智能电能表实时操作系统驱动测试方法及装置而难以开展测试工作的问题。
[0006]
第一方面,本发明提供一种智能电能表实时操作系统驱动测试方法,包括:配置客户端和服务端;将被测智能电能表与外设仿真器连接,其中,被测智能电能表安装有硬件驱动程序及测试主应用;所述测试主应用运行在被测智能电能表的实时操作系统上;客户端根据从服务端获取的驱动测试方案中记载的各测试用例的顺序,依次控制所述外设仿真器和所述测试主应用执行各测试用例,直到完成针对被测智能电能表的驱动测试。
[0007]
具体地,所述驱动测试方案包括针对驱动测试而设置的测试用例、和用于执行测试用例的测试子应用;客户端通过控制外设仿真器及测试主应用初始化被测智能电能表;客户端通过所述外设仿真器将与各测试用例对应的测试子应用发送至被测智能电能表;所述测试主应用安装控制测试子应用,并控制测试子应用执行测试,以及在测试子应用完成测试后,将测试子应用从被测智能电能表卸载;
及在测试用例执行结束后,测试主应用将与当前测试对应的测试结果发送至客户端保存。
[0008]
具体地,所述客户端通过控制外设仿真器及测试主应用初始化被测智能电能表,包括:客户端向外设仿真器发送测试复位命令,以使得外设仿真器通过i/o控制关闭被测智能电能表管理模组电源,并在复位管理模组的所有i/o口后,再开启管理模组电源,其中,管理模组电源再次开启后,测试主应用加载并运行;客户端向测试主应用发送定制应用卸载指令,以使得测试主应用将安装在实时操作系统中的定制应用卸载,并计算时间统计功能的补偿值,擦除eeprom及外部flash,并向客户端上报初始化执行结果;客户端通过外设仿真器向测试主应用发送修改波特率命令;测试主应用通过外设仿真器向客户端发送链路心跳请求,并根据客户端返回的时间戳将自身时间进行校准;客户端通过外设仿真器向测试主应用发起应用连接参数协商,并利用协商后的参数在客户端与测试主应用之间建立通信链路,并通过应用层协议进行数据交互。
[0009]
具体地,还包括:客户端将从服务器获取的与当前测试用例对应的测试子应用,利用建立的通信链路通过应用层协议分块发送给测试主应用,并发送安装测试子应用指令。
[0010]
具体地,还包括:测试主应用在管理模组的本地保存该测试子应用的副本、安装该测试子应用并运行测试子应用;在测试子应用运行期间,测试主应用接收测试子应用返回的测试数据并实时上报给客户端;在检测到该测试子应用执行的测试任务完成后,测试主应用将该测试子应用卸载及清理该测试子应用的副本,并将记录的测试子应用运行前后的时间戳和内存信息追加到测试结果中发送给客户端。
[0011]
具体地,所述被测智能电能表包括运行实时操作系统的管理模组、实现计量功能的计量模组及运行定制应用的多个扩展模组、备份存储区、eeprom和外部flash;其中,管理模组设置有显示模块。
[0012]
具体地,测试子应用执行的测试包括:计量模组spi口读写资源占用测试、帧长步进测试、超长帧攻击测试、通信响应延时步进测试;秒同步口读取资源占用测试、脉冲周期步进测试、脉冲占空比步进测试;管理模组插拔口读取资源占用测试、脉冲周期步进、脉冲占空比步进测试;外部flash读写擦除资源占用测试、跨页访问测试、越界访问测试、随机访问测试、多线程并行读写测试;eeprom读写资源占用测试、跨页读写测试、越界读写测试、随机读写测试、多线程并行读写测试;扩展模组收发资源占用测试、波特率范围测试、波特率裕度测试、i/o读写资源占用测
试、输入i/o占空比和周期步进测试、输出i/o脉宽测试、多线程并行读写测试;上行通信模组收发资源占用测试、波特率范围测试、波特率裕度测试、i/o读写资源占用测试、输入i/o占空比和周期步进测试、输出i/o脉宽测试、多线程并行读写测试;管理模组用蓝牙模组收发资源占用测试、蓝牙连接测试、多主多从并发通信测试、透明收发测试、误差检定测试、广播帧过滤测试。
[0013]
具体地,测试子应用执行的测试包括:备份存储区读写资源占用测试、越界读写测试、掉电保存测试、多线程并行读写测试;实时时钟驱动读写资源占用测试、非法时间设置测试、多线程并行读写测试;显示模块lcd驱动操作资源占用测试、越界刷新测试、多线程并行读写测试;针对管理模组与计量模组接口的io脉冲脉冲通道输出选择操作资源占用测试、多线程并行输出测试;背光控制资源占用测试、多线程并行控制测试;计量模组收发资源占用测试、波特率范围测试、波特率裕度测试、i/o读写资源占用测试、输入i/o占空比和周期步进测试、输出i/o脉宽测试、多线程并行读写测试;掉电信号资源占用测试、掉电信号脉宽测试、降频功能和功耗测试。
[0014]
第二方面,本发明提供一种智能电能表实时操作系统驱动测试装置,包括:客户端、服务端和服务器;客户端与服务端之间采用长连接的tcp/ip的通信方式,采用请求/应答和上报/确认的会话方式,并采用json格式文本进行数据交互;客户端从服务端获取针对不同被测智能电能表的驱动测试方案;客户端根据驱动测试方案,通过控制安装有被测智能电能表的外设仿真器及被测智能电能表的测试主应用,执行驱动测试方案;客户端还实时接收测试主应用实时返回的测试结论和测试明细,并保存在服务器内;客户端的操作界面用于数据展示和报告打印;服务端管理驱动测试方案、保存及更新测试子应用。
[0015]
本发明提供的智能电能表实时操作系统驱动测试方法及装置,针对带有统一嵌入式实时操作系统的智能电能表,提供了驱动程序测试方法,能够开展应用于智能电能表开发生产阶段或正式挂网运行之前的任一检测阶段,用于测试开发者是否严格按照驱动接口及功能规范开发智能电能表驱动程序,及测试智能电能表硬件的具体性能指标是否满足使用要求。其系统架构简洁、功能合理,执行测试完整全面,测试效率高、测试结果可信度高。
[0016]
本发明提供的智能电能表实时操作系统驱动测试方法及装置,能够保障不同硬件厂家的智能电能表硬件能够提供给顶层应用软件一套统一的接口,最终可以实现未来智能电能表在现场运行时应用程序的灵活、可互换。
附图说明
[0017]
通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:图1为本发明优选实施方式的智能电能表实时操作系统驱动测试方法的流程示意图;图2为本发明优选实施方式的智能电能表实时操作系统驱动测试装置的组成示意图;图3为本发明优选实施方式的智能电能表的硬件示意图;
图4为本发明优选实施方式的智能电能表用外设仿真器的结构示意图;图5为本发明优选实施方式的智能电能表实时操作系统驱动测试装置的软件架构示意图。
具体实施方式
[0018]
现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。
[0019]
除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。
[0020]
应用软件,也即应用,也即app。
[0021]
实时操作系统, real-time operating system,简称rtos。
[0022]
目前,智能电能表功能越来越复杂,其上集成有传统计量基础功能、高级管理功能以及扩展功能。在硬件上,采用多芯代替传统单芯;使用rtos代替裸机系统。具体地,多芯方案的智能电能表中的管理模组(也即管理芯)运行rtos。
[0023]
由于智能电能表当前应用的嵌入式实时操作系统将顶层应用与底层驱动彻底剥离,实现了软硬件完全解耦合。顶层的软件系统不依赖于硬件来进行开放式的开发;顶层软件通过调用驱动程序来访问底层的硬件;驱动程序是屏蔽底层硬件差异的关键。
[0024]
驱动程序(简称驱动)是各硬件厂商按照规范独立开发的软件程序,在挂表运行之前,需要依附于实时操作系统内核对其功能及性能进行测试。
[0025]
在软件上,智能电能表运行国产rtos,并将rtos与应用软件彻底分离,实现了顶层应用app化。这种架构模式使得将底层硬件、驱动程序及实时操作系统内核作为整体进行黑盒测试成为可能。
[0026]
目前公开的驱动测试方法,包括:针对控制流、数据流、表达式和接口的静态代码质量检查;针对圈复杂度、lcsaj密度、扇入扇出数的静态代码复杂度检查;针对内存泄漏、空指针引用、缓冲区溢出、数组越界等运行时静态缺陷检测;针对分支覆盖率、语句覆盖率和返回点覆盖率的白盒和分支覆盖率测试等。这些方法是嵌入式软件的通用测试方法,同样适用于智能电能表驱动测试。但只能孤立地对驱动进行通用性测试,缺少针对具体硬件实例的功能符合性、实时性和健壮性的关键技术指标的测试。
[0027]
本发明实施例的智能电能表实时操作系统用驱动测试方法及装置,在智能电能表挂网运行之前对其驱动程序进行全面/充分验证,从而保障硬件厂家开发的驱动程序满足功能以及性能要求。
[0028]
如图1所示,本发明实施例的智能电能表实时操作系统驱动测试方法,包括:步骤s100:配置客户端和服务端;步骤s200:将被测智能电能表与外设仿真器连接,其中,被测智能电能表安装有硬件驱动程序及测试主应用;所述测试主应用运行在被测智能电能表的实时操作系统上;
步骤s300:客户端根据从服务端获取的驱动测试方案中记载的各测试用例的顺序,依次控制所述外设仿真器和所述测试主应用执行各测试用例,直到完成针对被测智能电能表的驱动测试。
[0029]
该智能电能表实时操作系统驱动测试方法,针对带有统一嵌入式实时操作系统的智能电能表,提供了驱动程序测试方法,能够开展应用于智能电能表开发生产阶段或正式挂网运行之前的任一检测阶段,用于测试开发者是否严格按照驱动接口及功能规范开发智能电能表驱动程序,并且测试智能电能表硬件的具体性能指标是否满足使用要求。其系统架构简洁、功能合理,执行测试完整全面,测试效率高、测试结果可信度高。
[0030]
该智能电能表实时操作系统驱动测试方法,能够保障不同硬件厂家的智能电能表硬件能够提供给顶层应用软件一套统一的接口,最终可以实现未来智能电能表在现场运行时应用程序的灵活、可互换。
[0031]
具体地,所述驱动测试方案包括针对驱动测试而设置的测试用例、和用于执行测试用例的测试子应用;客户端通过控制外设仿真器及测试主应用初始化被测智能电能表;客户端通过所述外设仿真器将与各测试用例对应的测试子应用发送至被测智能电能表;所述测试主应用安装控制测试子应用,并控制测试子应用执行测试,以及在测试子应用完成测试后,将测试子应用从被测智能电能表卸载;及在测试用例执行结束后,测试主应用将与当前测试对应的测试结果发送至客户端保存。
[0032]
具体地,所述客户端通过控制外设仿真器及测试主应用初始化被测智能电能表,包括:客户端向外设仿真器发送测试复位命令,以使得外设仿真器通过i/o控制关闭被测智能电能表管理模组电源,并在复位管理模组的所有i/o口后,再开启管理模组电源,其中,管理模组电源再次开启后,测试主应用加载并运行;客户端向测试主应用发送定制应用卸载指令,以使得测试主应用将安装在实时操作系统中的定制应用卸载,并计算时间统计功能的补偿值,擦除eeprom及外部flash,并向客户端上报初始化执行结果;客户端通过外设仿真器向测试主应用发送修改波特率命令;测试主应用通过外设仿真器向客户端发送链路心跳请求,并根据客户端返回的时间戳将自身时间进行校准;客户端通过外设仿真器向测试主应用发起应用连接参数协商,并利用协商后的参数在客户端与测试主应用之间建立通信链路,并通过应用层协议进行数据交互。
[0033]
具体地,还包括:客户端将从服务器获取的与当前测试用例对应的测试子应用,利用建立的通信链路通过应用层协议分块发送给测试主应用,并发送安装测试子应用指令。
[0034]
具体地,还包括:测试主应用在管理模组的本地保存该测试子应用的副本、安装该测试子应用并运行测试子应用;
在测试子应用运行期间,测试主应用接收测试子应用返回的测试数据并实时上报给客户端;在检测到该测试子应用执行的测试任务完成后,测试主应用将该测试子应用卸载及清理该测试子应用的副本;并将记录的测试子应用运行前后的时间戳和内存信息追加到测试结果中发送给客户端。
[0035]
具体地,所述被测智能电能表包括运行实时操作系统的管理模组、实现计量功能的计量模组及运行定制应用的多个扩展模组、备份存储区、eeprom和外部flash;其中,管理模组设置有显示模块。
[0036]
具体地,测试子应用执行的测试包括:计量模组spi口读写资源占用测试、帧长步进测试、超长帧攻击测试、通信响应延时步进测试;秒同步口读取资源占用测试、脉冲周期步进测试、脉冲占空比步进测试;管理模组插拔口读取资源占用测试、脉冲周期步进、脉冲占空比步进测试;外部flash读写擦除资源占用测试、跨页访问测试、越界访问测试、随机访问测试、多线程并行读写测试;eeprom读写资源占用测试、跨页读写测试、越界读写测试、随机读写测试、多线程并行读写测试;扩展模组收发资源占用测试、波特率范围测试、波特率裕度测试、i/o读写资源占用测试、输入i/o占空比和周期步进测试、输出i/o脉宽测试、多线程并行读写测试;上行通信模组收发资源占用测试、波特率范围测试、波特率裕度测试、i/o读写资源占用测试、输入i/o占空比和周期步进测试、输出i/o脉宽测试、多线程并行读写测试;管理模组用蓝牙模组收发资源占用测试、蓝牙连接测试、多主多从并发通信测试、透明收发测试、误差检定测试、广播帧过滤测试。
[0037]
具体地,测试子应用执行的测试包括:备份存储区读写资源占用测试、越界读写测试、掉电保存测试、多线程并行读写测试;实时时钟驱动读写资源占用测试、非法时间设置测试、多线程并行读写测试;显示模块lcd驱动操作资源占用测试、越界刷新测试、多线程并行读写测试;针对管理模组与计量模组接口的io脉冲脉冲通道输出选择操作资源占用测试、多线程并行输出测试;背光控制资源占用测试、多线程并行控制测试;计量模组收发资源占用测试、波特率范围测试、波特率裕度测试、i/o读写资源占用测试、输入i/o占空比和周期步进测试、输出i/o脉宽测试、多线程并行读写测试;掉电信号资源占用测试、掉电信号脉宽测试、降频功能和功耗测试。
[0038]
如图2和图5所示,该发明实施例的智能电能表实时操作系统驱动测试系统,包括:客户端、服务端和服务器;客户端与服务端之间采用长连接的tcp/ip的通信方式,采用请求/应答和上报/确认的会话方式,并采用json格式文本进行数据交互;客户端从服务端获取针对不同被测智能电能表的驱动测试方案;客户端根据驱动测试方案,通过控制安装有被测智能电能表的外设仿真器及被测智能
电能表的测试主应用,执行驱动测试方案;客户端还实时接收测试主应用实时返回的测试结论和测试明细,并保存在服务器内;客户端的操作界面用于数据展示和报告打印;服务端管理驱动测试方案、保存及更新测试子应用。
[0039]
具体地,所述外设仿真器包括:模拟用计量模组、第一外设仿真控制板、第二外设仿真控制板、第一连接排针、第二连接排针、第三连接排针、第四连接排针和上位机通信口;通过上位机通信口、第二外设仿真控制板、第二连接排针、第一外设仿真控制板、第一连接排针、模拟用计量模组的路径,向模拟用计量模组发送通信指令,对其进行控制并产生通信数据;通过上位机通信口、第二外设仿真控制板、第四连接排针、被测管理模组的路径,模拟电能表计量模组的i/o功能;通过上位机通信口、第二外设仿真控制板、第三连接排针、被测管理模组的路径,模拟电能表扩展模组的通信功能和i/o功能;该模拟用计量模组,包括:电源模块、分流器、端子;在端子施加电压及电流,经分流器到模拟用计量模组,模拟真实工况计量场景。
[0040]
如图3智能电能表的硬件框图所示。计量模组通过uart、spi和输出输出i/o与管理模组连接和交互,其中,计量模组完成电能表的传统计量功能。扩展模组通过uart、spi和输出输出i/o与管理模组连接和交互,实现除外计量和管理之外的其他应用功能。管理模组完成电能表高级功能,是电能表最复杂的部件,其嵌入式软件部署有rtos,并且其rtos与管理模组与其他模组的接口深度绑定。
[0041]
rtos运行在管理模组之上,在管理模组的rtos在系统层面将管理模组与其他模组之间的通信或i/o接口抽象成各类接口,因此在进行驱动测试时直接测试实施在中间层上的各硬件接口服务即可,例如上行模组接口、计量模组接口即可。
[0042]
如图2和图5所示,该智能电能表实时操作系统驱动测试装置包括外设仿真器和测试软件两部分。应该理解为,依附于管理模组的实时操作系统,对各硬件驱动程序进行运行测试。
[0043]
如图4所示,外设仿真器的电气插接及硬件结构如图4所示。管理模组连接有管理模组显示模块。模拟电能表模块,包括:模拟用计量模组、电源模块、分流器、端子和其他元件;在端子施加电压、电流,经分流器到模拟用计量模组,模拟真实工况时计量场景;该模拟用计量模组还可以产生虚拟信号,实现真实计量功能。
[0044]
也即,外设仿真器包括:计量模组通信仿真模块、扩展模组通信仿真模块、i/o仿真模块和上位机通信模块。其中,计量模组通信仿真模块用于仿真计量模组的通信接口,实现通信转接,并在通信线路上施加干扰应力;扩展模组通信仿真模块用于仿真扩展模组的通信接口;i/o仿真模块用于仿真扩展模组及计量模组的i/o接口;上位机通信模块与驱动测试装置中的上位机进行通信。
[0045]
应该理解为,这里的外设是相对于管理模组来言的。电能表采用模块化设计,因此为了测试管理模组,需要搭建管理模组周边的外设环境。
[0046]
具体地,计量模组通信仿真模块,在驱动测试过程中,模拟计量模组与管理模组进
行数据通信;具体地,扩展模组通信仿真模块,在驱动测试过程中,模拟扩展模组与管理模组进行数据通信;具体地,i/o仿真模块,在驱动测试过程中,模拟计量模组和扩展模组与管理模组之间的i/o输入及控制。
[0047]
具体地,上位机通信模块,在驱动测试过程中,与测试软件的客户端及管理模组进行通信。
[0048]
具体地,客户端控制外设仿真器的通信仿真模块和i/o仿真模块,使得通信仿真模块和i/o仿真模块分别模拟与管理模组间的通信功能及i/o功能,其中,该通信功能及i/o功能与当前测试用例相对应。
[0049]
通过上位机通信口(为上位机通信模块的组件)——外设仿真控制板2—连接排针2—外设仿真控制板1—连接排针1—模拟用计量模组的路径,可向模拟用计量模组发送通信指令,对其进行控制并产生通信数据,例如抄读当前电量、获取或修改时间、设置参数等,验证通信驱动接口正常。
[0050]
通过上位机通信口——外设仿真控制板2—连接排针4—管理模组的路径,可模拟计量模组的i/o功能;通过上位机通信口——外设仿真控制板2—连接排针3—管理模组的路径,可模拟扩展模组的通信功能和i/o功能。
[0051]
应该理解为,外设仿真控制板1和2用于将模拟用计量模组、管理模组链接,实现通信连接及i/o连接功能。
[0052]
如图5所示,测试软件包括客户端和服务端,其中客户端完成测试执行功能,服务端完成测试方案、结论、明细和报告的管理功能。
[0053]
应该理解为,这里的客户端软件及硬件在下文简称为客户端。服务端软件及硬件则简称为服务端。
[0054]
客户端和服务端可以部署在同一台上位机中。以及,上位机是相对于外设仿真器而言的“上位”, 可本地或远程部署服务端程序。
[0055]
系统软件架构图如图5所示,客户端和服务端的连接技术细节如表1所示。
[0056]
表1 客户端和服务端的连接技术细节
具体地,在进行驱动测试时,包括以下步骤:步骤11、客户端从服务端获取测试方案,该测试方案中多个测试子app。
[0057]
步骤12、客户端通过管理模组的实时操作系统上运行的测试主app,将测试主app安装到被测管理模组。
[0058]
应该理解为,所述测试主app安装在管理模组之上,与管理模组的操作系统以及驱动程序进行通信。
[0059]
步骤13、客户端软件与测试主app通信,卸载除测试主app以外的所有应用app(也即定制应用)。
[0060]
应该理解为,所述应用app为电能表正常使用时的各项功能app,与驱动测试无关,因此,需要预先卸载。
[0061]
步骤14、客户端软件与测试主app配合,依次安装各个测试子app。
[0062]
具体地,各个测试子app的安装顺序根据测试用例依次下载,由上位机控制。
[0063]
步骤15、客户端软件控制外设仿真器,仿真各外设功能,与各个测试子app配合依次完成测试任务。
[0064]
应该理解为,每完成一项测试任务,自动输出测试结论和数据明细,将结论和明细数据与过程中输出的日志信息一起保存到服务端。具体地,一个测试子app可以对应多个测试用例。
[0065]
步骤16、卸载当前测试子app,安装下一测试子app进行下一项目测试。直到测试方案所包含的测试项目全部完成。
[0066]
客户端获取测试项目和配置参数后,按以下流程依次执行各测试用例:21、客户端向外设仿真器发送测试复位命令。
[0067]
22、外设仿真器通过i/o控制关闭被测管理模组的电源;复位管理模组的所有i/o口后,再开启被测管理模组的电源。
[0068]
23、被测管理模组os启动运行后,加载测试主app运行。
[0069]
应该理解为,被测管理模组os在上电后自动启动运行,不再需要额外开机命令。
[0070]
24、测试主app卸载除自身以外所有所有应用app(也即定制应用),计算时间统计功能的补偿值,擦除eeprom及外部flash,上报执行结果。
[0071]
应该理解为,由测试主app或rtos应用精准的时间来计算各类性能测试数据,例如打开串口的具体时间。
[0072]
应该理解为,擦除eeprom及外部flash是为了保证外部存储器没有遗留数据。
[0073]
25、客户端通过外设仿真器向测试主app发送修改波特率命令,将波特率改为115200-8-e-1,以保证被测管理模组采用该典型波特率进行通信,保证通信效率及可靠性。
[0074]
26、测试主app通过外设仿真器向客户端发送请求链路心跳命令,并根据获取的客户端心跳返回时间戳将自身时间进行精确校准。
[0075]
27、客户端通过外设仿真器向测试主app发起应用连接协商,将收发帧尺寸协商到4k字节,最大可处理接收apdu协商到16k字节,以利用协商参数建立连接,后续进行应用层数据交互。
[0076]
28、客户端从服务器获取对应的测试子app,利用建立的通信链路通过应用层协议分块发送给测试主app,并发送安装测试子app命令。
[0077]
29、测试主app将测试子app在被测管理模组的本地保存、安装并运行后,等待测试子app执行测试任务并在完成测试后返回。
[0078]
测试期间,测试主app接收测试子app的测试过程数据并实时上报给客户端;测试主app还记录测试子app运行前后的时间戳和系统内存信息。
[0079]
应该理解为,系统内存信息包括 rtos的动态内存信息、外部存储器的使用信息等。测试主app与rtos交互可以获取这些信息。
[0080]
30、测试子app返回后,测试主app计算测试子app运行时间和内存占用值,并整理测试子app传回的数据和测试结论,并上报给客户端。
[0081]
31、客户端将测试过程数据及测试结论保存到服务器。
[0082]
服务端还用于根据测试子app运行时间和内存占用值、测试子app传回的数据和测试结论,出具测试报告。
[0083]
具体地,被测智能电能表驱动测试的各测试用例如表2所列。
[0084]
各测试用例具体说明如下:41、计量模组spi口读写资源占用测试、帧长步进测试、超长帧攻击测试、通信响应延时步进测试a)打开、读取、写入、关闭多次循环,记录测试前后内存占用和每次操作前后时间,测出内存占用和每种操作的平均/最大/最小耗时;b)依次向计量模组(设置在外设仿真器内的模拟计量模组)写入长度步进的数据帧,并读取返回帧,直到通信失败,测出最大发送帧长;c)向该计量模组写入超长数据帧,延时后再次写入正常长度数据帧,查看计量模组是否有正常回应;d)循环读写该计量模组,步进调整计量模组帧响应时间,直到读写失败,测出超时时间。应该理解为,计量模组设置有一个spi口,该该接口用于与管理模组通信。
[0085]
42、秒同步口读取资源占用测试、脉冲周期步进测试、脉冲占空比步进测试
a)外设仿真器按正常频率和占空比发送秒同步信号。测试子app打开、查询、读取、关闭多次循环,判断成功读取到脉冲数是否满足预期值,并记录测试前后内存占用和每次操作前后时间,测出内存占用和每种操作的平均/最大/最小耗时;b)外设仿真器按频率步进发送秒同步信号,测试子app读取脉冲并累加,判断实发脉冲数与实收脉冲数是否相等,测出能正确读取脉冲数的频率上下限值;c)外设仿真器按占空比步进发送秒同步信号,测试子app读取脉冲并累加,判断实发脉冲数与实收脉冲数是否相等,测出能正确读取脉冲数的占空比上下限值。
[0086]
43、管理模组插拔口读取资源占用测试、脉冲周期步进、脉冲占空比步进测试a)外设仿真器按正常频率和占空比发送管理芯插拔信号。测试子app打开、查询、读取、关闭多次循环,判断成功读取到插拔信号数是否满足预期值,并记录测试前后内存占用和每次操作前后时间,测出内存占用和每种操作的平均/最大/最小耗时;b)外设仿真器按频率步进发送插拔信号,测试子app读取插拔信号并累加,判断实发插拔次数数与实收插拔次数数是否相等,测出能正确读取插拔次数的频率上下限值;c)外设仿真器按占空比步进发送插拔信号,测试子app读取插拔信号并累加,判断实发插拔次数数与实收插拔次数数是否相等,测出能正确读取插拔次数的占空比上下限值。
[0087]
44、外部flash读写擦除资源占用测试、跨页访问测试、越界访问测试、随机访问测试、多线程并行读写测试a)对外部flash裸地址分区设备进行打开、擦除、定位、读取、写入、关闭操作多次循环,比对擦除后读取数据和写入后读取数据,并记录测试前后内存占用和每次操作前后时间,测出内存占用和每种操作的平均/最大/最小耗时;b)对设备进行跨多页擦除、写入、读取操作,比对擦除后读取数据和写入后读取数据是否符合预期;c)对设备进行首地址超出范围和首地址加长度后超出范围的地址进行擦除、写入、读取操作,测试驱动是否能拒绝操作;d)对设备进随机地址、随机长度行擦除、写入、读取操作,比对擦除后读取数据和写入后读取数据是否符合预期;e)两个线程并行,以打开、发送、上位机接收比对、关闭的顺序测试读写数据是否相同;再以两个线程并行,打开后不关闭,发送、上位机接收比对的顺序读写数据是否相同。
[0088]
45、eeprom读写资源占用测试、跨页读写测试、越界读写测试、随机读写测试、多线程并行读写测试a)对eeprom裸地址分区设备进行打开、定位、读取、写入、查询状态、关闭操作多次循环,比对写入和读取的数据是否相同,并记录测试前后内存占用和每次操作前后时间,测出内存占用和每种操作的平均/最大/最小耗时;b)对eeprom进行跨多页写入、读取操作,比对写入和读取的数据是否相同;c)对eeprom进行首地址超出范围和首地址加长度后超出范围的地址进行写入、读取操作,测试驱动是否能拒绝操作;d)对设备进随机地址、随机长度行擦除、写入、读取操作,比对写入和读取的数据是否相同;e)两个线程并行,均以打开、指定地址、写入、读取比对、关闭的顺序测试读写数据是否
相同;两个线程并行,打开后不关闭,以指定地址、写入、读取比对的顺序读写数据是否相同。
[0089]
46、上行模组(为多个扩展模组中的一个)收发资源占用测试、波特率范围测试、波特率裕度测试、i/o读写资源占用测试、输入i/o占空比和周期步进测试、输出i/o脉宽测试、多线程并行读写测试a)分别以阻塞和非阻塞方式对uart进行打开、查询、读取、写入、关闭操作多次循环,比对读取后写入的数据是否正确,并记录测试前后内存占用和每次操作前后时间,测出内存占用和每种操作的平均/最大/最小耗时;b)分别以2400、4800、9600、19200、38400、115200bps对设备进行多次读写,测试出设备支持的波特率和每种波特率下通信成功率;c)设置为9600典型波特率,并在该波特率基础上正负偏后进行通信测试,测出波特率裕度范围;d)外设仿真器按正常频率和占空比发送到位和sta信号,测试子app分别以阻塞和非阻塞方式对输入i/o进行打开、查询(如查询输入i/o是否被占用)、读取、关闭操作多次循环,判断成功读取到插拔信号数是否满足预期值,并记录测试前后内存占用和每次操作前后时间,测出内存占用和每种操作的平均/最大/最小耗时;e)打开、写入、关闭操作多次循环,分别对插拔、eventout、set、reset信号输出i/o写入指定脉宽信号,外设仿真器接收i/o输出信号,测试出信号脉冲数量和脉宽是否符合预期,并记录测试前后内存占用和每次操作前后时间,测出内存占用和每种操作的平均/最大/最小耗时;f)外设仿真器按频率步进分别发送到位信号,测试子app读取信号并累加,判断实发插拔次数数与实收插拔次数数是否相等,测出能正确读取预期次数的频率上下限值;g)两个线程并行,以打开、发送、上位机接收比对、关闭的顺序测试读写数据是否相同;再以两个线程并行,打开后不关闭,发送、上位机接收比对的顺序读写数据是否相同。
[0090]
47、扩展模组收发资源占用测试、波特率范围测试、波特率裕度测试、i/o读写资源占用测试、输入i/o占空比和周期步进测试、输出i/o脉宽测试、多线程并行读写测试a)分别以阻塞和非阻塞方式对uart进行打开、查询、读取、写入、关闭操作多次循环,比对读取后写入的数据是否正确,并记录测试前后内存占用和每次操作前后时间,测出内存占用和每种操作的平均/最大/最小耗时;b)分别以2400-4800-9600-19200-38400-115200bps对设备进行多次读写,测试出设备支持的波特率和每种波特率下通信成功率;c)设置为9600典型波特率,并在该波特率基础上正负偏后进行通信测试,测出波特率裕度范围;d)打开、写入、关闭操作多次循环,分别对插拔和reset信号输出i/o写入指定脉宽信号,外设仿真器接收i/o输出信号,测试出信号脉冲数量和脉宽是否符合预期,并记录测试前后内存占用和每次操作前后时间,测出内存占用和每种操作的平均/最大/最小耗时;e)两个线程并行,以打开、发送、上位机接收比对、关闭的顺序测试读写数据是否相同;再以两个线程并行,打开后不关闭,发送、上位机接收比对的顺序读写数据是否相同。
[0091]
48、蓝牙模组(设置在管理模组中)收发资源占用测试、蓝牙连接测试、多主多从并
发通信测试、透明收发测试、误差检定测试、广播帧过滤测试a)按打开、查询、查询通道、选择通道、读取、选择通道、写入、关闭操作多次循环,比对读取后写入的数据是否正确,并记录测试前后内存占用和每次操作前后时间,测出内存占用和每种操作的平均/最大/最小耗时;b)设置蓝牙配对密码、主从mac地址等参数后进行连接测试;c)两主三从全部连接后,2个主通道并行主动上报,3个从通道并行抄读数据进行测试,分别测试数据从app写入驱动到客户端收到以及客户端发出到app收到数据的通信时延;d)客户端能否正确收发非698帧数据;e)设置误差检定参数后,通过i/o口发送脉冲,测试客户端能否正确收到蓝牙脉冲信号帧;f)设置广播过滤地址和设备类别后,发送多帧非过滤地址和过滤地址,测试蓝牙是否上报过滤出的mac。
[0092]
49、备份存储区读写资源占用测试、越界读写测试、掉电保存测试、多线程并行读写测试a)对备份存储区设备进行打开、定位、读取、写入、关闭操作多次循环,比对写入和读取的数据是否相同,并记录测试前后内存占用和每次操作前后时间,测出内存占用和每种操作的平均/最大/最小耗时;b)备份存储区设备进行首地址超出范围和首地址加长度后超出范围的地址进行写入、读取操作,测试驱动是否能拒绝操作;c)备份存储区写入数据,掉电再上电,读取数据与写入数据比对;d)两个线程并行,均以打开、指定地址、写入、读取比对、关闭的顺序测试读写数据是否相同;两个线程并行,打开后不关闭,以指定地址、写入、读取比对的顺序读写数据是否相同。
[0093]
50、rtc(实时时钟, real time clock,简称rtc)驱动读写资源占用测试、非法时间设置测试、多线程并行读写测试a)对rtc进行打开、写入、读取、关闭操作多次循环,比对写入和读取的数据是否相同,并记录测试前后内存占用和每次操作前后时间,测出内存占用和每种操作的平均/最大/最小耗时;b)对rtc设备写入非法日期和非法时间值,测试驱动是否能拒绝并返回错误;c)两个线程并行,均以打开、写入、读取比对、关闭的顺序测试读写数据是否相同;两个线程并行,打开后不关闭,以指定地址、写入、读取比对的顺序读写数据是否相同。
[0094]
51、lcd(对应于被测管理模组显示模块)驱动操作资源占用测试、越界刷新测试、多线程并行读写测试a)对lcd进行打开、刷新、关闭操作多次循环,查看是否正常显示,并记录测试前后内存占用和每次操作前后时间,测出内存占用和每种操作的平均/最大/最小耗时;b)对lcd进行超出行列范围进行数据刷新,再对正常行列范围进行数据熟悉,测试驱动的健壮性;c)两个线程并行,均以打开、刷新、关闭的顺序刷新显示;两个线程并行,打开后不关闭,第二个线程再次打开,测试驱动是否能拒绝。
[0095]
52、脉冲通道(对应于管理模组与计量模组接口的脉冲io通道)输出选择操作资源占用测试、多线程并行输出测试a)客户端控制模拟用计量模组和测试工装输出电能脉冲、秒脉冲。对脉冲通道进行打开、设置通道、写脉冲、关闭操作多次循环,通过工装测试是否正常输出脉冲和脉冲宽度,并记录测试前后内存占用和每次操作前后时间,测出内存占用和每种操作的平均/最大/最小耗时;b)两个线程并行,均以打开、设置通道、写脉冲、关闭操作;两个线程并行,打开后不关闭,第二个线程再次打开,测试驱动是否输出脉冲。
[0096]
53、背光控制资源占用测试、多线程并行控制测试a)对背光进行打开、点亮、熄灭、关闭操作多次循环,通过观察正常点亮和熄灭,并记录测试前后内存占用和每次操作前后时间,测出内存占用和每种操作的平均/最大/最小耗时;b)两个线程并行,均以打开、点亮、熄灭、关闭操作;两个线程并行,打开后不关闭,第二个线程再次打开,测试驱动是否输出脉冲。
[0097]
54、计量模组收发资源占用测试、波特率范围测试、波特率裕度测试、i/o读写资源占用测试、输入i/o占空比和周期步进测试、输出i/o脉宽测试、多线程并行读写测试a)分别以阻塞和非阻塞方式对uart进行打开、查询、读取、写入、关闭操作多次循环,比对读取后写入的数据是否正确,并记录测试前后内存占用和每次操作前后时间,测出内存占用和每种操作的平均/最大/最小耗时;b)分别以2400、4800、9600、9200、38400、115200bps对设备进行多次读写,测试出设备支持的波特率和每种波特率下通信成功率;c)设置为9600典型波特率,并在该波特率基础上正负偏后进行通信测试,测出波特率裕度范围;d)打开、写入、关闭操作多次循环,分别对插拔和reset信号输出i/o写入指定脉宽信号,外设仿真器接收i/o输出信号,测试出信号脉冲数量和脉宽是否符合预期,并记录测试前后内存占用和每次操作前后时间,测出内存占用和每种操作的平均/最大/最小耗时;e)两个线程并行,以打开、发送、上位机接收比对、关闭的顺序测试读写数据是否相同;再以两个线程并行,打开后不关闭,发送、上位机接收比对的顺序读写数据是否相同。
[0098]
55、掉电信号资源占用测试、掉电信号脉宽测试、降频功能和功耗测试a)分别以阻塞和非阻塞方式对掉电信号(当智能电能表产生掉电工况时,该i/o信号端会发出脉冲)进行打开、查询、读取、关闭操作多次循环,客户端控制计量仿真模组和控制工装掉电信号和15v信号输出,比对读取到的状态是否与输出值相同,并记录测试前后内存占用和每次操作前后时间,测出内存占用和每种操作的平均/最大/最小耗时;b)客户端控制计量仿真模组和控制工装输出脉宽步进的掉电信号,测试除驱动检测掉电的脉宽;c)开启一线程实时读写flash和eeprom,再开启一线程实时与客户端通信。再通过掉电驱动,分别设置运行模式、待机模式、睡眠模式和空闲模式,客户端通过工装测量15v的电流值,并测试降频是否对flash读写,eeprom读写和通信有影响。
[0099]
综上,该智能电能表实时操作系统驱动测试方法及装置,针对带有统一嵌入式实
时操作系统的智能电能表,提供了驱动程序测试方法,能够开展应用于智能电能表开发生产阶段或正式挂网运行之前的任一检测阶段,用于测试开发者是否严格按照驱动接口及功能规范开发智能电能表驱动程序,并且测试智能电能表硬件的具体性能指标是否满足使用要求。其系统架构简洁、功能合理,执行测试完整全面,测试效率高、测试结果可信度高。
[0100]
该智能电能表实时操作系统驱动测试方法及装置,能够保障不同硬件厂家的智能电能表硬件能够提供给顶层应用软件一套统一的接口,最终可以实现未来智能电能表在现场运行时应用程序的灵活、可互换。
[0101]
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例的可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例的可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd——rom、光学存储器等)上实施的计算机程序产品的形式。
[0102]
本发明实施例的是参照根据本发明实施例的实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0103]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0104]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0105]
以上已经通过参考少量实施方式描述了本发明。然而,本领域技术人员所公知的,正如附带的发明权利要求所限定的,除了本发明以上公开的其他的实施例等同地落在本发明的范围内。
[0106]
通常地,在权利要求中使用的所有术语都根据他们在技术领域的通常含义被解释,除非在其中被另外明确地定义。所有的参考一个//该[装置、组件等]都被开放地解释为装置、组件等中的至少一个实例,除非另外明确地说明。这里公开的任何方法的步骤都没必要以公开的准确的顺序运行,除非明确地说明。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1