使用Python搭建网关测试台架

本文介绍了如何使用Linux系统、Python环境和相关工具搭建车载网关测试平台,涉及CAN、LIN、Ethernet等通信协议的测试。通过Python脚本实现报文收发、数据解析、ECU节点仿真、诊断指令发送等功能,并生成测试报告。
摘要由CSDN通过智能技术生成

概述

网关(CGW)是智能化汽车核心的控制器之一,其承担车载网络通信的传输与转换,是不同总线数据的交互枢纽,用于CAN、LIN、Ethernet、FlexRay等总线的数据转发路由。
正式由于网关功能的特殊性,其测试方法也与其他控制器有一定的差异,各个协议在网关上的实现也有其他的特性。本文主要介绍如何使用一些基础的测试设备,搭建脚本完成网关的通讯测试,此方案主要介绍CAN、LIN、Ethernet(RJ45),BroadR-Reach车载以太网、I/O输入 这些测试环境的搭建,具体的测试用例实施和执行还需要根据情况进行开发。

系统组成

主机部分

带有Linux系统的电脑或树莓派

软件组成

Linux操作系统(Ubuntu):作为测试主机,运行测试软件和脚本。

Python开发环境 :用于运行控制脚本,目前多数的测试设备都提供了python接口,开发简单、效率高。

open ssh:用于远程主机控制,实现测试的远程自动化管理。

expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式输入指定字符串,即可实现交互通信。

canutils : linux下的CAN通讯测试工具包,用于CAN测试的配置,数据解析。

以上只是测试实施需要的工具,如果需要进行测试任务管理,可能还需要Jekins、Redmine等系统结合实现,关于测试管理,后续再介绍分享。

硬件组成

CAN 、LIN 通讯卡:用于CAN、LIN报文的收发,支持python接口的任何接口卡即可,主流的有:Vector VN系列,Intrepidcs ValueCAN,PCAN,Kvaser等。

以太网转换设备: 用于将普通四线以太网与BroadR-Reach互相转换,可选用Intrepidcs 的Moon或Technika的设备。

USB HUB: USB接口扩展,由于网关的CAN、LIN接口较多,且还需要接入其他设备,USB接口需要扩展。

以太网交换机:多路以太网接口扩展。

arduino开发板:I/O模拟控制,模拟I/O信号,如硬线刹车信号。

定制PCB板:将网关的CAN、LIN、以太网接口、 从线束转到电路板上,方便与测试设备接口连接,并且为网关提供供电、信号指示灯。

系统示意图如下:

在这里插入图片描述

使用Python脚本实现的主要功能

  1. 通过网络接口卡提供的python库实现报文收发解析,保存Log数据。
  2. 解析DBC、ldf文件,进行ECU节点仿真,向网关发送对应报文,接收网关发送的报文。
  3. 根据测试用例,控制数据变化,识别网关反馈的数据是否正确。
  4. 发送诊断指令,确认网关对诊断路由功能是否正常。
  5. 根据测试数据判断测试结果,生成html格式的测试报告。

该系统使用到的python库参考:

https://github.com/eerimoq/cantools ,实现CAN、LIN数据库和报文信号解析

https://github.com/intrepidcs/python_ics , ValueCAN接口卡 Python库

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈_大侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值