IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 基于CANoe MQTT节点仿真的T-Box远程功能自动化测试 -> 正文阅读

[嵌入式]基于CANoe MQTT节点仿真的T-Box远程功能自动化测试

1,背景

在之前一篇《案例分享| T-Box功能自动化测试方案》的案例分享中,我们介绍了一种利用安卓系统的控制交互指令,实现T-Box和手机端交互功能的自动化测试方案。但是在项目开发前期,由于T-Box、TSP后台、App可能由不同的厂家负责开发,每个产品开发的进度和完整度是不一致的。所以为了更早的对T-Box的功能进行自动化测试和验证,如果T-Box与TSP后台的通信使用了MQTT协议,则可以利用MQTT协议的特点,通过CANoe仿真另外一个Client,实现CANoe、Broker和T-Box之间的信息交互。


1.1 MQTT通信模型

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是IBM在1999年发布的一种基于发布/订阅(Publish/Subscribe)模式的"轻量级"通讯协议。该协议可用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,MQTT在物联网等领域有很广泛的应用。

MQTT也是一种基于客户端-服务器的发布/订阅消息协议,包含发布者(Publisher)、代理(Broker)、订阅者(Subscriber)三个角色。发布者和订阅者之间没有直接的连接,需要通过Broker进行消息的存储和转发,而Broker又通过主题(Topic)进行消息的发送和接收。
在这里插入图片描述

图1 MQTT通信模型

一个典型的MQTT消息通信流程如图1所示:

1)发布者(Publisher)连接到Broker;

2)订阅者(Subscribers)连接到Broker,并订阅主题“vehiclespeed”;

3)发布者(Publisher)发送给Broker一条消息,主题为“vehiclespeed”;

4)Broker收到Publisher的消息后,发现Subscriber订阅了“vehiclespeed”主题,然后将消息转发给Subscriber;

5)订阅者(Subscribers)从Broker接收发布者(Publisher)发送的消息;



2,CANoe CFS介绍和配置

CANoe的连接特性服务(Connectivity Features Service)主要用于物联网或工业领域支持MQTT协议的设备,CANoe将这些设备抽象成分布式对象(Distributed Objects),通过本地网络(Local Network)或云端代理服务器实现各客户端之间的通信。同时CANoe 15.0版本新增了一种新的通信方式,让代理(Broker)在CANoe中运行来实现通信,从而实现一些故障注入的测试。

本文主要以本地网络的形式对MQTT的仿真和测试进行介绍,其中发布者和订阅者通过CANoe仿真实现,Broker可使用真实的服务器,或者在本地电脑搭建测试用Broker,将Broker地址(需使用外网的IP或域名)和端口配置到T-Box中。

Broker搭建完成后,在CANoe的Options设置窗口中配置Broker的IP地址和端口(MQTT功能仅在连接CANoe license时可用),示例如图2所示:
在这里插入图片描述

图2 CANoe MQTT配置界面



3,MQTT环境配置

在仿真MQTT Client之前,需要在CANoe的Communication Setup环境中手动创建Distributed Objects的接口(Interfaces)和对象(Objects),或者通过vCDL文件,创建MQTT的数据库。

手动创建MQTT数据库流程如下:

1)创建需要的通信接口;

2)选择Objects,创建需要通信的对象;

3)为每个对象创建对应的数据;

4)选择创建的Data数据,在后测MQTT配置窗口中配置其属性值;

创建vCDL数据库的流程如下:

1)打开 “Open vCDL Editor”;

2)创建MQTT的接口、对象和数据;

3)定义MQTT的属性值;

4)选择import Data Source导入创建好的vCDL文件;

vCDL导入成功以后,可查看定义属性及参数,如图3所示:
在这里插入图片描述

图3 MQTT模型编辑界面

使用vCDL创建MQTT数据库的示例如图4所示:
在这里插入图片描述

图4 MQTT vCDL数据库开发界面



4,测试介绍

通过上面的配置,下面以远程解闭锁控制测试为例,为大家介绍下测试执行过程:
在这里插入图片描述

图5 T-Box测试环境

测试环境如图5所示,由于此测试方案CANoe是调用测试电脑的网卡与Broker进行通信,所以需要测试电脑可连接外网。

当CANoe运行时,会自动连接到Broker。测试数据流如下:

1) CANoe(Publisher)首先仿真TSP发送远程解锁请求给Broker;

2) Broker根据Topic,自动转发该请求给T-Box(Subscriber)。T-Box收到该远程请求后,通过CAN或Ethernet将远程解锁请求发送至车内节点;

3) CANoe仿真车内节点反馈远程解锁成功的应答;

4) 收到远程解锁成功应答后,T-Box(Publisher)把远程解锁执行结果上传至Broker,Broker根据Topic,自动转发该请求给CANoe(Subscriber)。

测试交互的数据如图6所示:
在这里插入图片描述

图6 CANoe MQTT数据监控窗口



5,总结

本方案利用MQTT协议的技术特点,无需TSP提供额外的API接口,即可实现T-Box 远程功能的自动化测试,可以在项目早期完成对T-Box的功能验证。根据不同的技术特点,北汇信息已实现在线测试、离线分析等不同的T-Box自动化测试的方案,欢迎大家进一步沟通交流。

注:文中部分图片来源于Vector。
作者:北汇信息

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-12-07 12:12:19  更:2021-12-07 12:14:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 12:52:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码