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机器人查看与主机的通信过程,包含时间戳
示例场景:
测试系统通过查看所有接收及发送的消息判断通信是否保持应答
示例命令:
对于I2C通信测试的命令可以参考文档《总线测试协议及测试命令介绍.pdf》
下面介绍IIC主机仿真测试专用命令
UTP总线测试系统支持对端口的操作。
示例场景:
打开或者关闭端口
示例命令:打开或者关闭端口
startFlag为打开端口表记,作为I2C主机时startFlag只能设置为0
UTP系统支持向模拟主控单元选择向从机发送数据。
示例场景:
通过I2C主机选择从机地址进行通信
示例命令:选择通信的从机地址
设置I2C主机每次接收数据的长度。
示例场景:
主机需要从从机接收一次信息
示例命令:
设置I2C主机每次接收数据的长度-固定消息类型。
示例场景:
主机需要从从机接收一次固定类型的信息。
示例命令: