I2C主机仿真测试介绍

开关

I2C主机仿真测试介绍

UTP自动化测试系统支持对I2C通信进行自动化测试,支持自动仿真各类I2C外设同被测控制板的通信。

支持对7bit地址和10bit地址进行验证。

支持不同时钟频率的主机传输。

本文以USB接口的I2C硬件模块为例进行I2C通信测试的介绍。具体关系参考下图

快速入门

硬件连接与配置

请参考硬件测试模块手册进行硬件连接

获取硬件模块和相应文档,请在点击下面连接获取

硬件配置及资料获取

测试工具下载

安装包下载前请先注册并登录UTP测试平台,登录后才可以下载

点击链接下载页面,进入安装包下载页面,选配测试工具,并提交下载

下载完成,解压,双击文件夹中的“AntbotBoxRTC.exe”启动测试工具

登录并配置测试机器人

双击“AntbotBoxRTC.exe”启动测试工具

启动软件后出现如下界面,在此界面输入用户名密码进行登录:

登录完成,弹出测试机器人盒子界面:

右键点击“I2C主机仿真测试机器人”下方的I2CMasterAnbot节点,在弹出的菜单中点击“添加Antbot”:

弹出基本信息设置界面,根据需要修改测试机器人名称,然后点击“确定”按钮:

进入更多信息设置界面,下面是对此界面的介绍:

USB端口:为机器中连接的I2C测试硬件连接顺序,如有多个I2C硬件连接,第一个为0,第二个为1,依次类推;

I2C速率:根据实际情况进行I2C速率选择;

配置完成后点击“OK”按钮:

新创建的测试机器人显示如下图:

如需要对某个已创建的测试机器人的配置信息进行调整,可以先在“测试机器人列表”中选中该测试机器人,

然后在右侧的页面进行调整,可以修改测试机器人名称,修改配置信息。

创建测试用例并执行

打开网页客户端,点击“登录”按钮:

输入用户名密码进行登录:

然后点击“立即登录”,即可进入测试工作区::

导入协议:点击协议管理或者相同图标,进入协议管理界面

点击导入按钮选择“I2C通信协议.json”打开,示例协议在下载的UtpEmbTestSuite内的示例协议中,然后点击“确定”按钮,

新建项目:点击“新建项目”按钮创建测试项目:

填写项目基本信息,然后点击“提交”按钮:

项目创建成功:

点击“进入项目”按钮,进入测试项目:

点击“用例管理”页面右侧的“测试机器人管理”,进行测试机器人配置:

点击测试机器人管理中的“+”,新建测试机器人:

先选择“嵌入式测试”,再选择“I2C主机仿真测试”类型的测试机器人,再填写测试机器人名称,进行协议文件选择 协议类型选择genericBusFrame,协议文件选择“I2C通信协议.json”,在下载的UtpEmbTestSuite内的示例协议中,然后点击“确定”按钮,完成测试机器人的配置:

机器人配置完成:

然后,再次点击“测试机器人管理”,收起该页面:

剩下步骤参考如下介绍

用例管理中可以进行测试用例的编辑,点击界面左侧“功能 1 测试”,进入该测试用例组,然后双击“测试用例 1-1”进入测试用例:

进入测试用例编辑界面:

点击“基本信息”,进行测试用例基本信息修改:

修改完成即可进行测试用例编辑,点击“编辑用例”:

点击“命令”按钮,插入测试命令:

先选择测试机器人,然后选择测试命令“选择通信的从机”、“打开端口”、“关闭端口”以及“发送消息(指定消息字段)”,作为I2C主机,打开端口的startFlag必须设置成0,与对应的从机通信时需要插入选择从机的配置命令,最后点击“插入”按钮:

通过拖拽,调整命令顺序:

当前用例的含义为:先选择从机,打开通信端口,向被测设备发送消息,然后关闭通信端口。 点击“保存”按钮,保存测试用例:

弹出“消息帧结构设置”页面,选择要发送的消息,并根据实际情况选择要修改的消息字段,修改完成,点击“提交”按钮:

后续步骤请参考"总线通用快速入门"中的编辑测试用例

点击此链接查看如何进行测试用例创建与执行查看

此链接为总线通用快速入门操作,仅供参考

功能介绍

UTP测试系统封装了通用的测试命令,用户只需要进行测试命令的插入组合即可完成测试用例的编辑。

下面将介绍UTP测试系统中提供的I2C通信测试命令,用户可以通过这些命令的组合完成与被测设备的通信测试。

I2C通信测试属于总线通信测试的一种,关于总线命名请参考附录


向被测单元发送数据

UTP系统支持直接发送十六进制数,也支持通过协议消息自动构建数据进行发送。

示例场景1:

通过I2C主机向I2C从机发送构建数据

示例命令:

示例场景2:

通过I2C主机向I2C从机发送十六进制数

示例命令:

周期发送数据包

UTP系统支持向被测单元发送周期性数据。

示例场景:

主机向从机按一定频率发送信号进行识别

示例命令:

检查被测单元数据包

接收被测系统发出的I2C数据包并进行检查。

示例场景:

接收并检查数据帧,检查数据包中的字段值是否满足条件,检查数据包是否满足预设条件,检查数据包的时序和接收到的时间等。

示例命令:检查接收到的消息的字段值是否同预期一致

示例命令:检查被测系统是否在规定时间内发出预期消息

自动回复主控单元数据包

可以通过I2C主机通信测试机器人对被测系统发出I2C数据包进行自动回复。

示例场景:

被测系统发出消息A,I2C测试机器人接收到A后自动回复消息B。

下图中先定义了"I2C消息2"的ID为"messagelD紧接着将"messagell配置为"I2C消息1“的回复消息

示例命令:自动回复

查看通信的数据时序

可以通过I2C机器人查看与主机的通信过程,包含时间戳

示例场景:

测试系统通过查看所有接收及发送的消息判断通信是否保持应答

示例命令:

对被测系统进行监控

UTP系统支持采集并监视被测系统指定通道输出的信号,支持用户自定义监控集。

示例场景:

I2C测试机器人监控被测设备具体某一指标的变化。

监控方式

附录 测试机器人命令

对于I2C通信测试的命令可以参考文档《总线测试协议及测试命令介绍.pdf》

下面介绍IIC主机仿真测试专用命令

端口操作

UTP总线测试系统支持对端口的操作。

示例场景:

打开或者关闭端口

示例命令:打开或者关闭端口

startFlag为打开端口表记,作为I2C主机时startFlag只能设置为0

选择通信的从机

UTP系统支持向模拟主控单元选择向从机发送数据。

示例场景:

通过I2C主机选择从机地址进行通信

示例命令:选择通信的从机地址

设置接收数据长度

设置I2C主机每次接收数据的长度。

示例场景:

主机需要从从机接收一次信息

示例命令:

设置接收数据长度2

设置I2C主机每次接收数据的长度-固定消息类型。

示例场景:

主机需要从从机接收一次固定类型的信息。

示例命令: