CN117880158A - 一种物联网通信设备串行通信协议测试方法和装置 - Google Patents
一种物联网通信设备串行通信协议测试方法和装置 Download PDFInfo
- Publication number
- CN117880158A CN117880158A CN202311871718.3A CN202311871718A CN117880158A CN 117880158 A CN117880158 A CN 117880158A CN 202311871718 A CN202311871718 A CN 202311871718A CN 117880158 A CN117880158 A CN 117880158A
- Authority
- CN
- China
- Prior art keywords
- data
- test
- protocol
- tested
- analysis
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 213
- 238000004891 communication Methods 0.000 title claims abstract description 112
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000004458 analytical method Methods 0.000 claims abstract description 107
- 230000008569 process Effects 0.000 claims abstract description 25
- 238000004422 calculation algorithm Methods 0.000 claims description 35
- 235000015429 Mirabilis expansa Nutrition 0.000 claims description 12
- 244000294411 Mirabilis expansa Species 0.000 claims description 12
- 235000013536 miso Nutrition 0.000 claims description 12
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 7
- 230000000630 rising effect Effects 0.000 claims description 7
- 238000013515 script Methods 0.000 claims description 6
- 238000013481 data capture Methods 0.000 claims description 4
- 238000010998 test method Methods 0.000 abstract description 5
- 239000000523 sample Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/06—Generation of reports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
Abstract
本发明涉及通信设备测试技术领域,提供了一种物联网通信设备串行通信协议测试方法和装置。所述测试方法包括,测试板卡自动接收待测设备的数据并进行测试;根据测试用例,测试板卡接收并解析待测设备数据,记录并输出该测试用例的测试结果,直到所有用例执行测试完成;其中,解析待测设备数据的过程包括:测试板卡接收带有时间戳的缓存数据,根据导入的测试用例确认通信协议的类型;基于通信协议的类型,选择性的对缓存数据进行划分;寻找划分后数据的空闲状态、起始条件和停止条件,根据通信协议的类型对缓存数据进行解析,得到解析结果;将解析结果与预期结果进行对比,以此判断解析是否成功,生成测试报告。
Description
技术领域
本发明涉及通信设备测试技术领域,尤其涉及一种物联网通信设备串行通信协议测试方法和装置。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
在物联网通信设备串行通信协议测试中,涉及各种不同串行通信协议的参数测试,比如对UART、SPI、I2C等串行通信协议的参数测试等。目前物联网通信设备串行通信协议的测试方法是,使用指令配置待测设备串行接口参数,控制待测设备串行接口输出数据,使用示波器、逻辑分析仪等抓取数据,查看具体波形,对各种串行通信协议波形分析并确认协议参数是否与预设参数一致,协议带载数据是否正确等。
传统的测试方法需要人工配置待测设备,为各种串行通信协议进行信号捕捉和分析,并与预期参数进行对比获取测试结果,由于各待测通信协议参数多,人工分析复杂、工作量较大,降低了整体的测试效率。而且人工测试存在因人为失误、测试设备差异等导致测试结果不准确。
发明内容
为了解决上述背景技术中存在的技术问题,本发明提供一种物联网通信设备串行通信协议测试方法和装置,本发明可以自动地进行待测设备配置、待测设备输出协议数据捕获和分析并与预设协议数据进行对比,并输出测试报告,会极大提高测试效率和测试准确率。
为了实现上述目的,本发明采用如下技术方案:
本发明的第一个方面提供一种物联网通信设备串行通信协议测试方法。
一种物联网通信设备串行通信协议测试方法,包括:
将测试用例和待测设备的配置命令通过脚本导入上位机,并将测试用例和配置命令发送给测试板卡;将测试板卡与待测设备连接,测试板卡向待测设备发送配置信息,以配置待测设备的参数;上位机向测试板卡发送开始测试信号,测试板卡按照设定参数控制待测设备输出数据,测试板卡自动接收待测设备的数据并进行测试;根据测试用例,测试板卡接收并解析待测设备数据,记录并输出该测试用例的测试结果,直到所有用例执行测试完成;
其中,解析待测设备数据的过程包括:测试板卡接收带有时间戳的缓存数据,根据导入的测试用例确认通信协议的类型;基于通信协议的类型,选择性的对缓存数据进行划分;寻找划分后数据的空闲状态、起始条件和停止条件,根据通信协议的类型对缓存数据进行解析,得到解析结果;将解析结果与预期结果进行对比,以此判断解析是否成功,生成测试报告。
进一步地,所述通信协议的类型包括UART协议、SPI协议和I2C协议。
进一步地,所述基于通信协议的类型,选择性的对缓存数据进行划分的过程包括:将采用SPI协议的缓存数据划分为SCK数据、CS数据、MOSI数据和MISO数据,将采用I2C协议的缓存数据划分为SCL数据和SDA数据。
进一步地,所述根据通信协议的类型对缓存数据进行解析的过程包括:对UART协议数据的解析,具体为:在空闲状态与预设时间一致时,寻找起始位并记录时间戳,根据预期UART参数和起始位推算波特率,在波特率在误差范围内时,获取并解析数据内容,在解析结果与预期结果一致时,获取校验位,在校验位与预期校验位一致时,根据预期停止位个数,获取并解析停止位,在解析停止位与预期停止位一致时,解析成功,若前述任一个步骤失败,则解析失败。
进一步地,所述根据通信协议的类型对缓存数据进行解析的过程还包括:对SPI协议数据的解析,具体为:找到CS数据活跃边缘,根据预期SPI模式确定时钟的首个活跃边缘;在找到首个活跃边缘后,继续寻找下一个时钟活跃边缘;在找到下一个时钟活跃边缘后,计算时钟频率与预期频率进行对比,判断时钟频率是否在误差范围内,若是,根据时钟信号解析MOSI数据和MISO数据,得到解析结果,将解析结果与预期结果进行对比,判断解析是否成功;若前述任一个步骤失败,则解析失败。
进一步地,所述根据通信协议的类型对缓存数据进行解析的过程还包括:对I2C协议数据的解析,具体为:采用SCL数据找到连续两个上升沿,当时钟频率在误差范围内时,根据查询到的起始条件解析地址,将解析地址与预期地址进行对比,在解析地址准确时,后面解析读写位,解析完成读写位后再解析ACK,解析ACK即应答位,并与预期ACK进行对比,在ACK解析结果正确时,解析具体的数据内容,并将解析结果与预期结果进行对比,判断解析是否成功。
本发明的第二个方面提供一种物联网通信设备串行通信协议测试装置。
一种物联网通信设备串行通信协议测试装置,包括上位机、测试执行模块以及待测设备,所述测试执行模块均连接上位机和待测设备;
所述测试执行模块包括微处理器,所述微处理器包括协议解析模块、协议解析算法库和报告生成模块;
所述上位机,用于导入测试用例和待测设备的配置命令,并将测试用例和配置命令发送给测试板卡;
所述测试板卡,用于向待测设备发送配置信息,以配置待测设备的参数;接收上位机发送的开始测试信号,按照设定参数控制待测设备输出数据,自动接收待测设备的数据并进行测试;根据测试用例,测试板卡接收并解析待测设备数据,记录并输出该测试用例的测试结果,直到所有用例执行测试完成;
所述协议解析模块,用于接收带有时间戳的缓存数据,根据导入的测试用例确认通信协议的类型;基于通信协议的类型,选择性的对缓存数据进行划分;寻找划分后数据的空闲状态、起始条件和停止条件,根据通信协议的类型对缓存数据进行解析,得到解析结果;将解析结果与预期结果进行对比,以此判断解析是否成功;
所述报告生成模块,用于生成测试报告。
进一步地,所述测试执行模块还包括测试接口模块、电平转换模块、非易失性存储器、板卡控制接口和待测设备控制接口;
所述测试接口模块,带有多种串口接口标准的物理通信接口,用于捕获待测设备信号;
所述电平转换模块,用于提供给微控制器可用的电平信号;
所述非易失性存储器,用于负责存储测试用例和测试参数;还用于负责存储测试过程数据和测试结果;
所述板卡控制接口,用于与上位机交互;
所述待测设备控制接口,用于与待测设备进行交互。
进一步地,所述协议解析算法库中包括多种串行通信协议解析算法,包括但不限于UART协议解析算法、SPI协议解析算法和I2C协议解析算法。
进一步地,所述UART协议解析算法的过程包括:读取缓存数据,获取并解析空闲状态,在空闲状态与预设时间一致时,寻找起始位并记录时间戳,根据预期UART参数和起始位推算波特率,在波特率在误差范围内时,获取并解析数据内容,在解析结果与预期结果一致时,获取校验位,在校验位与预期校验位一致时,根据预期停止位个数,获取并解析停止位,在解析停止位与预期停止位一致时,解析成功,若前述任一个步骤失败,则解析失败。
进一步地,所述SPI协议解析算法的过程包括:读取缓存数据,对信号线数据进行划分,将缓存数据分为SCK数据、CS数据、MOSI数据和MISO数据,找到CS数据活跃边缘,根据预期SPI模式确定时钟的首个活跃边缘;在找到首个活跃边缘后,继续寻找下一个时钟活跃边缘;在找到下一个时钟活跃边缘后,计算时钟频率与预期频率进行对比,判断时钟频率是否在误差范围内,若是,根据时钟信号解析MOSI数据和MISO数据,得到解析结果,将解析结果与预期结果进行对比,判断解析是否成功;若前述任一个步骤失败,则解析失败。
进一步地,所述I2C协议解析算法的过程包括:读取缓存数据,对信号线数据进行划分,分为SCL数据和SDA数据,采用SCL数据找到连续两个上升沿,当时钟频率在误差范围内时,根据查询到的起始条件解析地址,将解析地址与预期地址进行对比,在解析地址准确时,后面解析读写位,解析完成读写位后再解析ACK,解析ACK即应答位,并与预期ACK进行对比,在ACK解析结果正确时,解析具体的数据内容,并将解析结果与预期结果进行对比,判断解析是否成功。
进一步地,所述微控制器还包括:
数据捕获模块,用于捕获协议数据;
时间戳模块,用于对协议数据添加时间戳;
数据缓存模块,用于数据缓存。
与现有技术相比,本发明的有益效果是:
本发明采用多协议解析,软件也可进行协议拓展,灵活性高,不仅包括常见的协议如UART、SPI、I2C等,还可扩展至其他自定义协议,展示了更高的灵活性和适用范围。
本发明所述的协议解析算法库使得解析协议可扩展,配置灵活。
本发明从测试用例的输入、测试环境准备、数据捕获到协议解析和报告输出的全流程自动化方案,能够大幅度提高测试效率和准确度,减少了人为误差。
本发明提供了具体的协议解析流程,包括数据捕获、时间戳添加、数据缓存(电平状态+时间戳的数据结构)、协议解析等步骤,将已知用例参数代入到解析步骤中进行判断的方法,而不是解析完成后进行数据对比的方法,提高测试效率,这些过程保证了测试的实时、高效以及准确。本发明适合批量测试和长时间的测试,适用于研发和生产的场景。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1是本发明示出的物联网通信设备串行通信协议测试方法的流程图;
图2是本发明示出的物联网通信设备串行通信协议测试装置的框架图;
图3是本发明示出的多协议数据接收与处理的框架图;
图4是本发明示出的测试某公司串口服务器产品的设计图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
需要注意的是,附图中的流程图和框图示出了根据本公开的各种实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分可以包括一个或多个用于实现各个实施例中所规定的逻辑功能的可执行指令。也应当注意,在有些作为备选的实现中,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者它们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。
实施例一
如图1所示,本实施例提供了一种物联网通信设备串行通信协议测试方法,
一种物联网通信设备串行通信协议测试方法,包括:
将测试用例和待测设备的配置命令通过脚本导入上位机,并将测试用例和配置命令发送给测试板卡;将测试板卡与待测设备连接,测试板卡向待测设备发送配置信息,以配置待测设备的参数;上位机向测试板卡发送开始测试信号,测试板卡按照设定参数控制待测设备输出数据,测试板卡自动接收待测设备的数据并进行测试;根据测试用例,测试板卡接收并解析待测设备数据,记录并输出该测试用例的测试结果,直到所有用例执行测试完成;
其中,解析待测设备数据的过程包括:测试板卡接收带有时间戳的缓存数据,根据导入的测试用例确认通信协议的类型;基于通信协议的类型,选择性的对缓存数据进行划分;寻找划分后数据的空闲状态、起始条件和停止条件,根据通信协议的类型对缓存数据进行解析,得到解析结果;将解析结果与预期结果进行对比,以此判断解析是否成功,生成测试报告。
所述通信协议的类型包括UART协议、SPI协议和I2C协议。
所述基于通信协议的类型,选择性的对缓存数据进行划分的过程包括:将采用SPI协议的缓存数据划分为SCK数据、CS数据、MOSI数据和MISO数据,将采用I2C协议的缓存数据划分为SCL数据和SDA数据。
所述根据通信协议的类型对缓存数据进行解析的过程包括:对UART协议数据的解析,具体为:在空闲状态与预设时间一致时,寻找起始位并记录时间戳,根据预期UART参数和起始位推算波特率,在波特率在误差范围内时,获取并解析数据内容,在解析结果与预期结果一致时,获取校验位,在校验位与预期校验位一致时,根据预期停止位个数,获取并解析停止位,在解析停止位与预期停止位一致时,解析成功,若前述任一个步骤失败,则解析失败。
所述根据通信协议的类型对缓存数据进行解析的过程还包括:对SPI协议数据的解析,具体为:找到CS数据活跃边缘,根据预期SPI模式确定时钟的首个活跃边缘;在找到首个活跃边缘后,继续寻找下一个时钟活跃边缘;在找到下一个时钟活跃边缘后,计算时钟频率与预期频率进行对比,判断时钟频率是否在误差范围内,若是,根据时钟信号解析MOSI数据和MISO数据,得到解析结果,将解析结果与预期结果进行对比,判断解析是否成功;若前述任一个步骤失败,则解析失败。
所述根据通信协议的类型对缓存数据进行解析的过程还包括:对I2C协议数据的解析,具体为:采用SCL数据找到连续两个上升沿,当时钟频率在误差范围内时,根据查询到的起始条件解析地址,将解析地址与预期地址进行对比,在解析地址准确时,后面解析读写位,解析完成读写位后再解析ACK,解析ACK即应答位,并与预期ACK进行对比,在ACK解析结果正确时,解析具体的数据内容,并将解析结果与预期结果进行对比,判断解析是否成功。
实施例二
本实施例提供了一种物联网通信设备串行通信协议测试装置。
如图2、图3所示,一种物联网通信设备串行通信协议测试装置,包括:上位机、测试执行模块以及待测设备,所述待测设备与测试执行模块进行数据通讯,所述测试执行模块分别与上位机进行数据通讯。
下面对本装置的各个模块进行详细描述:
上位机,用于输入测试用例、控制开始和结束测试;收集和展示测试板卡提交的测试报告。
测试执行模块,包括测试板卡,负责测试执行和数据分析,输出测试报告。具体的,所述测试执行模块包括测试接口模块、电平转换模块、微控制器、非易失性存储器、电源管理模块、板卡控制接口和待测设备控制接口。下面对测试执行模块中的各个部分进行详细描述:
测试接口模块:带有多种串口接口标准的物理通信接口,包括RS232、RS485、多个探头等,用于捕获待测设备信号。
电平转换模块:提供给微控制器可用电平信号,即为了确保与各种设备的兼容性,电平转换模块用于将从不同通讯接口接收的数据电平转换为测试板卡内部模块所能接受的统一电平。
微控制器(比如高性能单片机等),微控制器内包含:数据捕获模块(可进行多路数据的采样捕获)、时间戳模块、数据缓存模块、协议解析模块、协议解析算法库、报告生成模块。所述数据捕获模块,用于捕获协议数据;所述时间戳模块,用于添加时间戳;所述数据缓存模块,用于数据缓存;所述协议解析模块,用于对协议进行解析,所述报告生成模块,用于生成测试报告。此外,下面对协议解析算法库的内容进行详细介绍:
协议解析算法库包括独立的代码模块,在微控制器中使用独立的存储区进行存储,方便协议的更新升级;
协议解析算法库中还包含多种串行通信协议解析算法;
其中每个协议包含:协议编号、协议名称、版本号、以及对应协议解析函数和协议描述等,见表1。
表1不同协议的相关参数
非易失性存储器,用于负责存储测试用例和测试参数;还用于负责存储测试过程数据和测试结果。比如大容量Flash等。
电源管理模块,用于为各部件供电。
板卡控制接口:由以太网等接口构成的与上位机交互的接口,比如上位机通信接口。
待测设备控制接口:支持RS232、RS485、RS422、以太网口、蓝牙等,用于与待测物联网通讯设备进行交互,以配置待测设备。
所述待测设备为待测物联网通信设备。
下面对采用本实施例所述的物联网通信设备串行通信协议测试装置的实现过程进行具体描述:
(1)输入测试数据
将测试用例通过脚本导入上位机,其中,测试用例中包括待测试协议类型、协议参数、待测设备输出的数据内容等信息,(这是用例也是预期结果,后面解析的数据与这个结果进行对比)。
比如表2为测试用例输入示例:
表2测试用例输入示例
输入待测设备的脚本,脚本中包含两部分,测试用例和待测设备配置命令,其中待测设备配置命令包括AT指令等;
将以上相关数据通过测试板卡的板卡控制接口发送给测试板卡。
(2)执行测试
(2-1)准备测试环境
测试板卡待测设备控制接口与待测设备配置接口建立连接,比如通过RS232或者以太网接口,测试板卡连接到待测设备的控制端,以准备好对待测物联网通信设备进行配置。
测试板卡的测试接口模块与待测设备数据输出接口进行物理连接,需要根据不同的接口形式进行连接,比如对于SPI、I2C等通信接口可使用探头等进行多路连接,连接时无需区分信号线,UART协议测试可根据设备接口使用RS232、RS485通信接口进行连接,以准备好捕获待测设备输出的数据。
(2-2)测试板卡配置待测设备
测试板卡与待测设备配置接口建立连接,测试板卡向待测物联网设备发送配置信息,配置待测设备参数,比如以上的uart参数波特率115200,数据位8,停止位1,校验位Odd,配置待测设备成功后等待上位机的开始测试信号。
(2-3)上位机触发开始测试
上位机向测试板卡发送开始测试信号,测试板卡按照设定参数控制待测设备输出数据,比如按照测试用例1中待测设备通过UART输出数据内容为0x550x55 0x55,发送次数100次,发送间隔500ms。
(2-4)捕获待测设备数据
待测设备的通信数据经过电平转换后,微控制器内的数据捕获单元(比如GPIO采样)根据捕获条件进行数据捕获,捕获一个固定时间范围内的数据,比如进行5S钟的捕获;时间戳模块为捕获的每一段数据或事件添加精确的时间戳,从而方便后续分析数据中的时序关系;经捕获和添加时间戳的数据暂存到数据缓存模块,数据缓存模块存储的数据是带有电平状态+时间戳的数据结构组成的数组,这个数组可能是一个或者多个,这个数据即是后续用于分析的类似波形的数据。
(2-5)测试数据解析
微控制器内的协议解析模块首先根据用例输入的协议名称,调用相应协议解析算法对由电平状态+时间戳的数据结构组成的数组进行详细解析,按照协议解析算法解析成功则代表本条用例测试通过,否则代表测试失败。
整体的解析算法采用数组划分、已知参数代入的方法进行,即在确认接收数组属于哪条线路后,首先初步解析出协议数据的一些参数比如通信频率等,然后将已知用例参数逐个代入到解析步骤中进行解析,如果使用已知参数解析OK,则代表解析成功;否则解析失败,解析失败时存储当前解析数组中一段时间内的数据,用于后续失败原因分析。
整体的解析算法包括UART协议解析算法、SPI协议解析算法和I2C协议解析算法。
其中,UART协议解析算法的具体过程包括:
1)读取缓存数组中的数据;
2)寻找长时间的高电平状态,即空闲状态:
-遍历所有样本,寻找连续高电平状态。
-验证高电平状态持续时间是否满足要求,比如本实施例中数据发送间隔为500ms,则高电平持续时间在500ms左右并满足空闲状态的误差要求。
3)寻找起始位:
在找到空闲状态后,继续遍历样本直到发现电平由高转为低的样本,即起始位。
4)验证起始位的有效性:
-检查是否在样本数组中找到了起始位。
-并确认数组中剩余的样本是否足以解析完整的UART帧。
5)计算波特率:
-通过起始位到停止位的时间来计算实际波特率。
-将计算出的波特率与预期波特率进行对比,确保误差在允许的范围内。
6)解析数据位:
-跳过起始位。
-逐位读取数据。对于每一位,首先移到位的中间,然后读取电平状态。电平高代表1,电平低代表0。
-继续这个过程,直到读取完所有数据位。
7)验证数据内容:
-将接收到的数据与预期数据进行对比。
8)解析校验位(如果存在):
-移到校验位的中间,然后读取电平;
-进行校验位的计算;
9)解析停止位:
-逐个解析所有的停止位。
-移到每个停止位的中间,然后验证其电平是否为高。
10)返回结果:
-如果上述所有步骤都成功完成,返回`true`,表示UART数据解析成功。
-如果任何一步失败,返回`false`,并存储相关数据和失败原因。
其中,所述SPI协议解析算法的具体过程包括:
1)开始
2)划分SPI线路,为每个线路分配样本数组;
输入:接收缓存数据二维数组;
输出:时钟线数据(CLK)一维数组,片选线数据(CS)一维数组,MOSI线数据一维数组,MISO线数据一维数组;
3)寻找CS的活跃边缘;
->如果找不到:结束并返回失败;
->如果找到:继续下一步;
4)根据SPI模式确定时钟的首个活跃边缘;
5)寻找时钟的首个活跃边缘;
->如果找不到:结束并返回失败;
->如果找到:记录时间戳并继续下一步;
6)寻找时钟的下一个活跃边缘;
->如果找不到:结束并返回失败;
->如果找到:记录时间戳并继续下一步;
7)根据两个活跃边缘之间的时间差计算实际频率;
->如果频率偏差过大:结束并返回失败;
->如果频率正常:继续下一步;
8)解析MOSI和MISO数据;
->遍历每个数据位:
*读取当前bit位置的数据;
*寻找下一个时钟的活跃边缘;
*如果找不到:结束并返回失败;
9)对比预期数据和接收数据;
->如果数据不匹配:结束并返回失败;
->如果数据匹配:继续下一步;
10)上述步骤均成功则返回成功;
11)返回失败的存储异常数据和失败原因;
12)结束。
其中,所述I2C协议解析算法的具体过程包括:
1)初始化步骤:
-识别SCL和SDA线。
-定义一个指针或索引(例如`i`)来遍历样本。
2)计算时钟频率:
-在解析数据或地址时,记录连续两个SCL上升沿之间的时间差。
-使用此时间差来计算时钟频率。
-与期望的时钟频率进行比较。如果实测值与期望值有大于5%的偏差,则返回失败。
3)检查起始条件:
-遍历样本,直到找到起始条件。起始条件是当SDA从高变为低而SCL仍然为高。
-如果在所有样本中都没有找到起始条件,则返回失败。
4)解析地址:
-对于地址的每一位(比如7位):
-等待SCL上升沿。
-读取SDA的状态并将其添加到地址值。
-等待SCL下降沿。
-与期望的地址进行比较。如果它们不匹配,返回失败。
5)解析R/W位:
-等待SCL上升沿。
-读取SDA的状态并存储为读/写位。
-等待SCL下降沿。
-与期望的R/W位进行比较。如果它们不匹配,返回失败。
6)检查ACK:
-等待SCL上升沿。
-读取SDA的状态并检查是否为低(ACK位)。
-等待SCL下降沿。
-如果SDA为高(即没有ACK),返回失败。
7)解析数据:
-对于期望数据大小中的每一个字节:
-对于每一位(通常是8位):
-等待SCL上升沿。
-读取SDA的状态并将其添加到当前字节的值。
-等待SCL下降沿。
-与期望的数据字节进行比较。如果它们不匹配,返回失败。
-检查ACK(如上所述)。
8)完成解析:
-如果能够成功解析所有的数据并与期望的数据匹配,返回成功。
-返回失败的存储异常数据和失败原因。
(2-6)报告生成
测试板卡的报告生成模块将测试用例和数据解析的结果进行整合,生成最终的测试报告。比如表3为测试报告内容:
表3测试报告内容
如图4所示,下面以测试某公司串口服务器产品为例,,采用本实施例的技术方案的详细过程:
设备连接:将串口服务器的待测试RS232串口与测试板卡3个探头进行连接(TX,RX,GND),将测试板卡的待测设备控制接口中的RS232接口与待测设备控制接口RS232接口进行连接;
参数配置:通过上位机输入测试用例,并传送到测试板卡,比如输入表2所示的测试用例;
开始测试:上位机触发开发测试信号,测试板卡首先配置待测设备待测试串口的参数,配置完成后,控制待测设备进行连续的数据发送。
数据采集和分析:测试板卡捕捉该测试数据,按照协议解析算法进行协议解析,得出测试结论。
生成报告。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种物联网通信设备串行通信协议测试方法,其特征在于,包括:
将测试用例和待测设备的配置命令通过脚本导入上位机,并将测试用例和配置命令发送给测试板卡;将测试板卡与待测设备连接,测试板卡向待测设备发送配置信息,以配置待测设备的参数;上位机向测试板卡发送开始测试信号,测试板卡按照设定参数控制待测设备输出数据,测试板卡自动接收待测设备的数据并进行测试;根据测试用例,测试板卡接收并解析待测设备数据,记录并输出该测试用例的测试结果,直到所有用例执行测试完成;
其中,解析待测设备数据的过程包括:测试板卡接收带有时间戳的缓存数据,根据导入的测试用例确认通信协议的类型;基于通信协议的类型,选择性的对缓存数据进行划分;寻找划分后数据的空闲状态、起始条件和停止条件,根据通信协议的类型对缓存数据进行解析,得到解析结果;将解析结果与预期结果进行对比,以此判断解析是否成功,生成测试报告。
2.根据权利要求1所述的物联网通信设备串行通信协议测试方法,其特征在于,所述通信协议的类型包括UART协议、SPI协议和I2C协议。
3.根据权利要求2所述的物联网通信设备串行通信协议测试方法,其特征在于,所述基于通信协议的类型,选择性的对缓存数据进行划分的过程包括:将采用SPI协议的缓存数据划分为SCK数据、CS数据、MOSI数据和MISO数据,将采用I2C协议的缓存数据划分为SCL数据和SDA数据。
4.根据权利要求2所述的物联网通信设备串行通信协议测试方法,其特征在于,所述根据通信协议的类型对缓存数据进行解析的过程包括:对UART协议数据的解析,具体为:在空闲状态与预设时间一致时,寻找起始位并记录时间戳,根据预期UART参数和起始位推算波特率,在波特率在误差范围内时,获取并解析数据内容,在解析结果与预期结果一致时,获取校验位,在校验位与预期校验位一致时,根据预期停止位个数,获取并解析停止位,在解析停止位与预期停止位一致时,解析成功,若前述任一个步骤失败,则解析失败。
5.根据权利要求2所述的物联网通信设备串行通信协议测试方法,其特征在于,所述根据通信协议的类型对缓存数据进行解析的过程还包括:对SPI协议数据的解析,具体为:找到CS数据活跃边缘,根据预期SPI模式确定时钟的首个活跃边缘;在找到首个活跃边缘后,继续寻找下一个时钟活跃边缘;在找到下一个时钟活跃边缘后,计算时钟频率与预期频率进行对比,判断时钟频率是否在误差范围内,若是,根据时钟信号解析MOSI数据和MISO数据,得到解析结果,将解析结果与预期结果进行对比,判断解析是否成功;若前述任一个步骤失败,则解析失败。
6.根据权利要求2所述的物联网通信设备串行通信协议测试方法,其特征在于,所述根据通信协议的类型对缓存数据进行解析的过程还包括:对I2C协议数据的解析,具体为:采用SCL数据找到连续两个上升沿,当时钟频率在误差范围内时,根据查询到的起始条件解析地址,将解析地址与预期地址进行对比,在解析地址准确时,后面解析读写位,解析完成读写位后再解析ACK,解析ACK即应答位,并与预期ACK进行对比,在ACK解析结果正确时,解析具体的数据内容,并将解析结果与预期结果进行对比,判断解析是否成功。
7.一种物联网通信设备串行通信协议测试装置,其特征在于,包括上位机、测试执行模块以及待测设备,所述测试执行模块均连接上位机和待测设备;
所述测试执行模块包括微处理器,所述微处理器包括协议解析模块、协议解析算法库和报告生成模块;
所述上位机,用于导入测试用例和待测设备的配置命令,并将测试用例和配置命令发送给测试板卡;
所述测试板卡,用于向待测设备发送配置信息,以配置待测设备的参数;接收上位机发送的开始测试信号,按照设定参数控制待测设备输出数据,自动接收待测设备的数据并进行测试;根据测试用例,测试板卡接收并解析待测设备数据,记录并输出该测试用例的测试结果,直到所有用例执行测试完成;
所述协议解析模块,用于接收带有时间戳的缓存数据,根据导入的测试用例确认通信协议的类型;基于通信协议的类型,选择性的对缓存数据进行划分;寻找划分后数据的空闲状态、起始条件和停止条件,根据通信协议的类型对缓存数据进行解析,得到解析结果;将解析结果与预期结果进行对比,以此判断解析是否成功;
所述报告生成模块,用于生成测试报告。
8.根据权利要求7所述的物联网通信设备串行通信协议测试装置,其特征在于,所述测试执行模块还包括测试接口模块、电平转换模块、非易失性存储器、板卡控制接口和待测设备控制接口;
所述测试接口模块,带有多种串口接口标准的物理通信接口,用于捕获待测设备信号;
所述电平转换模块,用于提供给微控制器可用的电平信号;
所述非易失性存储器,用于负责存储测试用例和测试参数;还用于负责存储测试过程数据和测试结果;
所述板卡控制接口,用于与上位机交互;
所述待测设备控制接口,用于与待测设备进行交互。
9.根据权利要求7所述的物联网通信设备串行通信协议测试装置,其特征在于,所述协议解析算法库中包括多种串行通信协议解析算法,包括但不限于UART协议解析算法、SPI协议解析算法和I2C协议解析算法;
或,
所述UART协议解析算法的过程包括:读取缓存数据,获取并解析空闲状态,在空闲状态与预设时间一致时,寻找起始位并记录时间戳,根据预期UART参数和起始位推算波特率,在波特率在误差范围内时,获取并解析数据内容,在解析结果与预期结果一致时,获取校验位,在校验位与预期校验位一致时,根据预期停止位个数,获取并解析停止位,在解析停止位与预期停止位一致时,解析成功,若前述任一个步骤失败,则解析失败;
或,
所述SPI协议解析算法的过程包括:读取缓存数据,对信号线数据进行划分,将缓存数据分为SCK数据、CS数据、MOSI数据和MISO数据,找到CS数据活跃边缘,根据预期SPI模式确定时钟的首个活跃边缘;在找到首个活跃边缘后,继续寻找下一个时钟活跃边缘;在找到下一个时钟活跃边缘后,计算时钟频率与预期频率进行对比,判断时钟频率是否在误差范围内,若是,根据时钟信号解析MOSI数据和MISO数据,得到解析结果,将解析结果与预期结果进行对比,判断解析是否成功;若前述任一个步骤失败,则解析失败;
或,
所述I2C协议解析算法的过程包括:读取缓存数据,对信号线数据进行划分,分为SCL数据和SDA数据,采用SCL数据找到连续两个上升沿,当时钟频率在误差范围内时,根据查询到的起始条件解析地址,将解析地址与预期地址进行对比,在解析地址准确时,后面解析读写位,解析完成读写位后再解析ACK,解析ACK即应答位,并与预期ACK进行对比,在ACK解析结果正确时,解析具体的数据内容,并将解析结果与预期结果进行对比,判断解析是否成功。
10.根据权利要求7所述的物联网通信设备串行通信协议测试装置,其特征在于,所述微控制器还包括:
数据捕获模块,用于捕获协议数据;
时间戳模块,用于对协议数据添加时间戳;
数据缓存模块,用于数据缓存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311871718.3A CN117880158A (zh) | 2023-12-29 | 2023-12-29 | 一种物联网通信设备串行通信协议测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311871718.3A CN117880158A (zh) | 2023-12-29 | 2023-12-29 | 一种物联网通信设备串行通信协议测试方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117880158A true CN117880158A (zh) | 2024-04-12 |
Family
ID=90589448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311871718.3A Pending CN117880158A (zh) | 2023-12-29 | 2023-12-29 | 一种物联网通信设备串行通信协议测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117880158A (zh) |
-
2023
- 2023-12-29 CN CN202311871718.3A patent/CN117880158A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102569335B1 (ko) | 커맨드 오류 처리를 위해 하나 이상의 테스트 대상 디바이스를 테스트하기 위한 자동 테스트 장비, 하나 이상의 테스트 대상 디바이스의 자동 테스트를 위한 방법 및 컴퓨터 프로그램 | |
US12085612B2 (en) | On-chip debugging device and method | |
US10929260B2 (en) | Traffic capture and debugging tools for identifying root causes of device failure during automated testing | |
US10955461B2 (en) | Smart and efficient protocol logic analyzer configured within automated test equipment (ATE) hardware | |
US10379158B2 (en) | Real-time capture of traffic upon failure for protocol debug | |
US6735747B2 (en) | Pre-silicon verification path coverage | |
CN112148515B (zh) | 一种故障定位方法、系统、装置、介质和设备 | |
US8996928B2 (en) | Devices for indicating a physical layer error | |
CN108009065B (zh) | 监控axi总线的方法和装置 | |
CN105223889A (zh) | 一种适用于产线的自动监控pmc raid卡日志的方法 | |
CN112559267B (zh) | 集成电路间总线i2c从机以及i2c控制器测试方法 | |
CN109522263B (zh) | 一种i2c链路监控系统 | |
CN116663490A (zh) | 一种异步存储芯片的验证方法、平台、装置及介质 | |
CN117880158A (zh) | 一种物联网通信设备串行通信协议测试方法和装置 | |
CN109710480A (zh) | 一种内存镜像卡调试方法及其系统 | |
CN112462248B (zh) | 一种测试信号输出系统及其使用方法 | |
CN115328708A (zh) | 串行外设接口时序的参数测试方法及测试装置 | |
CN113009315A (zh) | 接口转换电路、芯片、芯片测试系统及方法 | |
JP2004101203A (ja) | ロジックlsiの不良解析システム及び不良解析方法 | |
CN112579334B (zh) | 基于以太网的面向处理器的信号记录方法及装置 | |
US11836059B1 (en) | System and method for testing non-volatile memory express storage devices | |
CN116820867B (zh) | 一种芯片调试方法、装置及芯片 | |
US7149954B2 (en) | Method and system for programmable field statistic for picture cyclic redundancy check (CRC) | |
KR101031641B1 (ko) | 디버깅 칩, 이를 이용한 디버깅 시스템 및 외부 칩 신호의 데이터화 방법 | |
CN116660734A (zh) | 一种数字ic芯片的功能测试的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |