CN117785720A - 一种用于can数据一致性的测试方法及装置 - Google Patents
一种用于can数据一致性的测试方法及装置 Download PDFInfo
- Publication number
- CN117785720A CN117785720A CN202410067796.6A CN202410067796A CN117785720A CN 117785720 A CN117785720 A CN 117785720A CN 202410067796 A CN202410067796 A CN 202410067796A CN 117785720 A CN117785720 A CN 117785720A
- Authority
- CN
- China
- Prior art keywords
- message
- module
- test
- time
- data consistency
- 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 89
- 238000000034 method Methods 0.000 title claims abstract description 18
- 238000005070 sampling Methods 0.000 claims abstract description 23
- 238000010276 construction Methods 0.000 claims description 5
- 238000010998 test method Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 abstract description 5
- 230000004044 response Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Maintenance And Management Of Digital Transmission (AREA)
Abstract
本发明公开一种用于CAN数据一致性的测试方法及装置,方法包括:按照预设的时间进行计时,并在每一次计时结束时进入中断;若是第一次进入中断,则设置GPIO输出值,并利用GPIO输出口向被测CAN模块发送测试报文;若不是第一次进入中断且达到设置的采样点,则将被测CAN模块发送至GPIO输入口的报文与预设的校验报文进行比较,以判断CAN模块是否满足CAN数据一致性测试。本发明利用GPIO口模拟CAN端口,并通过GPIO与定时器的配合实现测试报文的发送和接收,能够实现所有的CAN数据一致性测试项,且无需CAN接收器,无需示波器或其他波形查看设备进行报文查看。
Description
技术领域
本发明属于汽车电子应用领域,更具体地,是一种用于CAN数据一致性的测试方法及装置,以保证数据收发的准确性以及可靠性。
背景技术
CAN的一致性测试主要分为两大类:
第一类是送去第三方通过第三方设备进行测试,需要用到专用的制造报文的设备;
第二类是个人或者企业利用两个CAN结点进行通信从而进行一致性测试,该测试需要利用示波器或者其他波形设备进行报文查看。
对于个人或公司而言,第一类测试虽然能正确制造出报文并只利用少量的人力成本,但是需要消耗大量的资金进行测试。
第二类测试利用多平台通信的方式难以模拟某些测试项,从而导致不是所有一致性测试项均可完成。同时,利用多平台进行测试需要消耗大量的人力进行测试,加大了人力资源的投入,同时提高了人为误差对测试结果的影响。
发明内容
本发明的目的是针对现有技术存在的问题,提供一种用于CAN数据一致性的测试方法及装置,利用GPIO口模拟CAN端口,并通过GPIO与定时器的配合实现测试报文的发送和接收,能够实现所有的CAN数据一致性测试项,且无需CAN接收器,无需示波器或其他波形查看设备进行报文查看。
根据本发明说明书的一方面,提供一种用于CAN数据一致性的测试方法,包括:
按照预设的时间进行计时,并在每一次计时结束时进入中断;
若是第一次进入中断,则设置GPIO输出值,并利用GPIO输出口向被测CAN模块发送测试报文;
若不是第一次进入中断且达到设置的采样点,则将被测CAN模块发送至GPIO输入口的报文与预设的校验报文进行比较,以判断CAN模块是否满足CAN数据一致性测试。
作为进一步的技术方案,所述方法还包括:构建测试报文和校验报文,所述测试报文与校验报文相对应。
作为进一步的技术方案,在第一次进入中断时,还包括:将模拟CAN的GPIO输出口的电位配置为测试电位,并保持若干个中断周期,其中,若干个所述中断周期的时间和小于或等于一个比特的时间。
作为进一步的技术方案,所述方法还包括:若不是第一次进入中断,则判断是否达到每个比特内设置的采样点处。
作为进一步的技术方案,所述方法还包括:若未达到设置的采样点处,则判断当前中断周期是否为比特内的最后一个中断周期。
作为进一步的技术方案,所述方法还包括:若不是当前比特内的最后一个中断周期,则重新进行计时,直至进入下一中断周期。
作为进一步的技术方案,将被测CAN模块发送至GPIO输入口的报文与预设的校验报文进行比较,还包括:若比较结果显示报文正确,则重新进行计时,直至进入下一中断周期;若比较结果显示报文不正确,则结束测试。
根据本发明说明书的一方面,提供一种用于CAN数据一致性的测试装置,包括:
计时模块,用于按照预设的时间进行计时,并在每一次计时结束时进入中断;
判断模块,用于在发生中断时判断是否为第一次进入中断,以及在非第一次进入中断时判断是否达到比特内设置的采样点处;
发送模块,用于在第一次进入中断时,设置GPIO输出值,并利用GPIO输出口向被测CAN模块发送测试报文;
接收模块,用于利用GPIO输入口接收被测CAN模块发送的报文;
测试模块,用于在非第一次进入中断且达到设置的采样点时,将被测CAN模块发送至GPIO输入口的报文与预设的校验报文进行比较,以判断CAN模块是否满足CAN数据一致性测试。
作为进一步的技术方案,所述装置还包括:构建模块,用于构建测试报文和校验报文,所述测试报文与校验报文相对应。
作为进一步的技术方案,所述判断模块,还用于在未达到采样点时判断是否为最后一个中断周期。
与现有技术相比,本发明的有益效果是:
本发明通过GPIO与定时器进行配合,设置计时一段时间后进入中断,在进入中断时选择是否进行GPIO口输出电位的修改,达到在特定速率(特定波特率)发送特定报文的效果,从而模拟出一个可以任意编辑报文的CAN模块,以解决现有CAN数据一致性测试中所存在的问题。
本发明GPIO端口发送的报文是由PC端构建并直接进行写入,只需保证代码对报文的构造是正确的就能保证发送给CAN模块的报文是测试所需报文,无需通过示波器等设备在总线上查看波形,也能保证模拟CAN接口发送报文的正确性。
本发明无需人工从总线判断报文的正确性,降低了查看时的人为错误以及人为操作的时间成本,大大提高了检测效率和正确性。
附图说明
图1为根据本发明实施例的用于CAN数据一致性的测试方法的流程示意图。
图2为根据本发明实施例的CAN模块接收测试验证结构示意图。
图3为根据本发明实施例的CAN模块发送测试验证结构示意图。
图4为根据本发明实施例的CAN一致性测试环境示意图。
图5为根据本发明实施例的测试流程图。
具体实施方式
针对现有CAN数据一致性测试成本高、人为误差大等问题,本发明提供一种CAN一致性测试思路,采用GPIO口模拟CAN端口来模拟两个模块间的通信,通过GPIO与定时器的配合实现被测CAN模块与模拟CAN模块间报文的发送和接收,能够保证制造出特定的错误报文、构建不同的报文故障,且可自动检测被测设备的报文和响应的正确性,并提高CAN一致性测试效率,减少误测率、降低人工成本。
需要说明的是,本发明所指的bit分为四个段:同步段、传播时间段、相位缓冲段1、相位缓冲段2。这些段由Time quantum构成,Time Quantum是构成一个bit的最小单位。本发明在说明书及权利要求书中所描述的中断周期即为一个Time Quantum的时间,用于测试的多个Time Quantum时间的和小于或等于一个bit的时间。
下面将结合本发明中的附图,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动条件下所获得的所有其它实施例,都属于本发明保护的范围。
实施例1
如图1所示,本实施例提供一种用于CAN数据一致性的测试方法,包括:
步骤S1,按照预设的时间进行计时,并在每一次计时结束时进入中断。
在步骤S1之前,还包括:构建需要发送的测试报文以及用于check的校验报文,所述校验报文与测试报文相对应。
步骤S1还包括:对定时器的计时进行判断,若计时结束,则进入中断;若计时未结束,则继续计时。
步骤S2,若是第一次进入中断,则设置GPIO输出值,并利用GPIO输出口向被测CAN模块发送测试报文。
在发送测试报文后,重新进行计时,直至下一中断。
步骤S2进一步包括:若不是第一次进入中断,则判断是否达到bit内设置的采样点处。
步骤S3,若不是第一次进入中断且达到设置的采样点,则将被测CAN模块发送至GPIO输入口的报文与预设的校验报文进行比较,以判断CAN模块是否满足CAN数据一致性测试。
进一步地,若没有达到bit内设置的采样点处,则判断是否为最后一个中断周期。如果是,则结束测试;如果不是,则重新进行计时,直至下一中断。
进一步地,若比较结果显示报文正确,则重新进行计时,直至进入下一中断周期;若比较结果显示报文不正确,则结束测试。
图2与图3分别为CAN模块接收和发送结构示意图,其中,使用GPIO口模拟CAN的TX与RX,与MCU中CAN模块的TX、RX进行直接连接,无需经过CAN收发器进行数模转换。
GPIO端口发送的报文是由PC端直接进行写入的,所以只需保证代码对报文的构造是正确的就能保证发送给CAN模块的报文是测试所需报文,无需通过示波器等设备在总线上查看波形,也能保证模拟CAN接口发送报文的正确性。
图4为ISO 16845-1标准给与的测试环境图。其中LT(Lower tester)的作用是:模拟CAN一个CAN端口对IUT(Implementation under test)执行合适的测试项,即发送需要测试的测试报文,例如正常通信报文、制造某bit错误的报文或者bit内含错误的报文等。同时LT还负责对IUT产生的反应给予裁决,即确认IUT收到测试报文的反应是否符合行业标准。而IUT则代表被测试对象,在测试中表示为芯片的CAN模块。
在一种实施方式中,利用图2所示结构测试CAN模块的接收功能是否符合协议规定,可以看到GPIO口与CAN模块进行了TX、RX的直连,中间没有连接收发器,直接让GPIO向CAN模块进行信号的发送。
利用图2所示结构测试CAN模块的接收功能的操作步骤如图5所示,包括:
步骤1,利用PC制造一帧正确或者带有特定错误的报文,以及后续需要的校验报文,该校验报文对应着,在符合协议的情况下,被测CAN模块应该做出的反应。
步骤2,定时器计时结束进入中断。该步骤用于制造特定波特率的通信。假设每次进入中断为一个tq(即上文的Time Quantum),一个bit由80个tq构成。那么如果6.25us进入一次中断,那么一个bit的时间为:
ttotal=6.25us*80
=500us
那么波特率可计算得到
从而可以制造出通信需要的波特率。
上述tq的数量不作为对本发明的限制,在其他实施中,也可是例如100个tq,对应的则是每5us进入一次中断。
步骤3,进入中断后,利用模拟CAN(LT)的GPIO Output口向被测CAN模块发送报文。以步骤2中的例子而言,在第一次进入中断时,将GPIO口的电位配置为测试电位(0或1),并保持80个tq的时间(也可以小于80个tq,即在一个bit内构造错误)。那么就制造了所需要的报文。
如果不是第一次进入中断,则直接进入步骤4。
步骤4,被测CAN模块RX脚接收到报文。
步骤5,被测CAN模块根据RX脚接收到的报文做出反应,并通过TX发出响应报文到模拟CAN的RX中。
步骤6,模拟CAN通过GPIO Input口接收到由CAN模块发送来的反应报文,在每个bit内设置的采样点处进行采样(逐个bit对比报文),并将其与步骤1中构建的校验报文进行比较,判断报文正确性,从而判断CAN模块是否满足CAN一致性测试。
在一种实施方式中,利用图3所示结构测试CAN模块的发送功能是否符合协议规定,具体包括如下步骤:
步骤10,被测CAN模块的TX脚发送报文。
步骤20,模拟CAN通过GPIO Input口接收所述报文,并在接收的同时,将所述报文通过GPIO Output口发送给被测CAN的RX脚。
步骤30,模拟CAN将接收的报文在每个bit内设置的采样点处进行采样(逐个bit对比报文),并将其与步骤10中被测CAN模块发送的报文进行比较,判断报文正确性,从而判断CAN模块是否满足CAN一致性测试。
本实施例通过GPIO与定时器Timer进行配合,设置计时一段时间后进入中断,在进入中断时选择是否进行GPIO口输出电位的修改,达到在特定速率(特定波特率)发送特定报文的效果,从而模拟出一个可以任意编辑报文的CAN模块。
实施例2
基于与实施例1相同的发明构思,本实施例提供一种用于CAN数据一致性的测试装置,包括:
计时模块,用于按照预设的时间进行计时,并在每一次计时结束时进入中断;
判断模块,用于在发生中断时判断是否为第一次进入中断,以及在非第一次进入中断时判断是否达到比特内设置的采样点处;
发送模块,用于在第一次进入中断时,设置GPIO输出值,并利用GPIO输出口向被测CAN模块发送测试报文;
接收模块,用于利用GPIO输入口接收被测CAN模块发送的报文;
测试模块,用于在非第一次进入中断且达到设置的采样点时,将被测CAN模块发送至GPIO输入口的报文与预设的校验报文进行比较,以判断CAN模块是否满足CAN数据一致性测试。
上述各模块可参照实施例1的方式来实现,需要特别指出的是:
所述装置还包括:构建模块,用于构建测试报文和校验报文,所述测试报文与校验报文相对应。
所述判断模块,还用于在未达到采样点时判断是否为最后一个中断周期。
综上实施例,本发明利用GPIO口和定时器Timer配合模拟CAN接口与CAN模块进行直接通信,无需借助第三方设备,并能够实现所有一致性测试项。
本发明可软件构建任意CAN报文,不用经过收发器,规避了收发器可能造成的干扰。且不需要人为利用示波器或其他设备观察构造的报文的正确性,提高了检测效率。
本发明会在每个bit的第一次中断发送报文,在采样点处进行报文检验。一帧普通CAN报文大概有100个左右bit,所以会重复上述过程直到整个报文发送结束。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (10)
1.一种用于CAN数据一致性的测试方法,其特征在于,包括:
按照预设的时间进行计时,并在每一次计时结束时进入中断;
若是第一次进入中断,则设置GPIO输出值,并利用GPIO输出口向被测CAN模块发送测试报文;
若不是第一次进入中断且达到设置的采样点,则将被测CAN模块发送至GPIO输入口的报文与预设的校验报文进行比较,以判断CAN模块是否满足CAN数据一致性测试。
2.根据权利要求1所述一种用于CAN数据一致性的测试方法,其特征在于,所述方法还包括:构建测试报文和校验报文,所述测试报文与校验报文相对应。
3.根据权利要求1所述一种用于CAN数据一致性的测试方法,其特征在于,在第一次进入中断时,还包括:将模拟CAN的GPIO输出口的电位配置为测试电位,并保持若干个中断周期,其中,若干个所述中断周期的时间和小于或等于一个比特的时间。
4.根据权利要求1所述一种用于CAN数据一致性的测试方法,其特征在于,所述方法还包括:若不是第一次进入中断,则判断是否达到每个比特内设置的采样点处。
5.根据权利要求4所述一种用于CAN数据一致性的测试方法,其特征在于,所述方法还包括:若未达到设置的采样点处,则判断当前中断周期是否为比特内的最后一个中断周期。
6.根据权利要求5所述一种用于CAN数据一致性的测试方法,其特征在于,所述方法还包括:若不是当前比特内的最后一个中断周期,则重新进行计时,直至进入下一中断周期。
7.根据权利要求1所述一种用于CAN数据一致性的测试方法,其特征在于,将被测CAN模块发送至GPIO输入口的报文与预设的校验报文进行比较,还包括:若比较结果显示报文正确,则重新进行计时,直至进入下一中断周期;若比较结果显示报文不正确,则结束测试。
8.一种用于CAN数据一致性的测试装置,其特征在于,包括:
计时模块,用于按照预设的时间进行计时,并在每一次计时结束时进入中断;
判断模块,用于在发生中断时判断是否为第一次进入中断,以及在非第一次进入中断时判断是否达到比特内设置的采样点处;
发送模块,用于在第一次进入中断时,设置GPIO输出值,并利用GPIO输出口向被测CAN模块发送测试报文;
接收模块,用于利用GPIO输入口接收被测CAN模块发送的报文;
测试模块,用于在非第一次进入中断且达到设置的采样点时,将被测CAN模块发送至GPIO输入口的报文与预设的校验报文进行比较,以判断CAN模块是否满足CAN数据一致性测试。
9.根据权利要求8所述一种用于CAN数据一致性的测试装置,其特征在于,所述装置还包括:构建模块,用于构建测试报文和校验报文,所述测试报文与校验报文相对应。
10.根据权利要求8所述一种用于CAN数据一致性的测试装置,其特征在于,所述判断模块,还用于在未达到采样点时判断是否为最后一个中断周期。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410067796.6A CN117785720A (zh) | 2024-01-17 | 2024-01-17 | 一种用于can数据一致性的测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410067796.6A CN117785720A (zh) | 2024-01-17 | 2024-01-17 | 一种用于can数据一致性的测试方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117785720A true CN117785720A (zh) | 2024-03-29 |
Family
ID=90385669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410067796.6A Pending CN117785720A (zh) | 2024-01-17 | 2024-01-17 | 一种用于can数据一致性的测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117785720A (zh) |
-
2024
- 2024-01-17 CN CN202410067796.6A patent/CN117785720A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107222362B (zh) | 一种整车can网络自动化测试平台及其优化方法 | |
US6675328B1 (en) | System and method to determine data throughput in a communication network | |
US7324913B2 (en) | Methods and apparatus for testing a link between chips | |
US8347153B2 (en) | Protocol aware error ratio tester | |
CN105515893B (zh) | 一种确定采样点位置的方法 | |
CN114268556B (zh) | 一种用电信息采集系统中宽带微功率mac层一致性测试系统 | |
CN111381150A (zh) | 芯片自动验证系统及其方法 | |
CN117709251A (zh) | 基于sv的arinc429接口自动化验证系统及方法 | |
CN111459143A (zh) | 多串口通信自闭环检测系统及方法 | |
CN110968004B (zh) | 一种基于FPGA原型验证开发板的Cable测试系统 | |
CN117785720A (zh) | 一种用于can数据一致性的测试方法及装置 | |
CN101159492A (zh) | 一种用于sdh逻辑设计的仿真验证系统及其方法 | |
CN115173929B (zh) | 星地高速数据双站接力传输测试方法和系统 | |
CN115657646B (zh) | 一种can控制器的测试方法及装置 | |
CN116827839A (zh) | 基于dma数据定制实现lin一致性测试的方法及装置 | |
CN116306479A (zh) | 基于uvm的以太网phy通用验证平台及验证方法 | |
CN110943759A (zh) | 一种基于深度优先搜索算法的电力通信链路数据校核方法 | |
CN105430678A (zh) | Ptn设备接口测试的方法及装置 | |
CN111858781B (zh) | 一种基于预设通信协议的仿真方法及装置 | |
CN114325355A (zh) | 一种芯片测试系统和方法 | |
CN114422126A (zh) | 一种量子密钥管理软件模块的联调测试系统及方法 | |
CN109981394B (zh) | 基于增强型can总线协议分析仪的通信方法和装置 | |
CN109870640A (zh) | 一种基于ate的usb接口类芯片测试方法 | |
CN113342732B (zh) | 多通道高速数据通路任意互联装置、方法及系统 | |
CN115542136B (zh) | 基于fpga的线缆测试方法及设备 |
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 |