Skip to content

ATEMall/can-test-tool

Repository files navigation

CAN Test Tool

License: MIT Python GitHub Stars ATEMall

一款面向汽车测试工程师的 CAN 总线测试工具,支持 UDS 诊断服务测试、CAN 报文收发与自动化测试脚本编写。

功能特性

  • UDS 诊断服务测试 — 支持多种 UDS 服务,一键发送诊断请求
  • CAN 报文收发 — 实时发送与接收 CAN 报文,支持多通道
  • 自动化测试脚本 — 基于 Python 编写测试用例,自动执行并生成报告
  • DTC 读取与清除 — 快速读取/清除故障码
  • 数据记录与回放 — 记录总线数据并支持回放分析

支持的 UDS 服务

服务 ID 服务名称 说明
0x10 DiagnosticSessionControl 诊断会话控制
0x11 ECUReset ECU 复位
0x22 ReadDataByIdentifier 按标识符读数据
0x23 ReadMemoryByAddress 按地址读内存
0x24 ReadDTCInformation 读取 DTC 信息
0x27 SecurityAccess 安全访问
0x28 CommunicationControl 通信控制
0x2E WriteDataByIdentifier 按标识符写数据
0x31 RoutineControl 例程控制
0x34 RequestDownload 请求下载
0x36 TransferData 数据传输
0x37 RequestTransferExit 结束数据传输
0x3E TesterPresent 心跳保活
0x85 ControlDTCSetting DTC 设置控制
0x19 ReadDTCInformation 读取 DTC 详细信息

持续更新中,更多 UDS 服务即将支持...

快速开始

安装依赖

pip install -r requirements.txt

基本使用

from can_test_tool import UDSClient

# 创建 UDS 客户端
client = UDSClient(channel='can0', bitrate=500000)

# 切换到扩展会话
response = client.send_service(0x10, [0x03])
print(response)

# 读取数据标识符
response = client.send_service(0x22, [0xF1, 0x90])
print(response)

自动化测试

from can_test_tool import TestRunner, TestCase

# 定义测试用例
test = TestCase("UDS Session Test")
test.add_step("切换扩展会话", 0x10, [0x03], expected_rc=[0x50])
test.add_step("读取VIN", 0x22, [0xF1, 0x90], expected_rc=[0x62])

# 执行测试
runner = TestRunner()
runner.run(test)
runner.generate_report("test_report.html")

截图

截图即将补充

主界面 UDS 测试面板
主界面 UDS面板

项目结构

can-test-tool/
├── src/                # 核心源码
├── tests/              # 测试用例
├── docs/               # 文档与截图
├── examples/           # 使用示例
├── requirements.txt    # 依赖
└── README.md

贡献

欢迎提交 Issue 和 Pull Request!

  1. Fork 本仓库
  2. 创建功能分支 (git checkout -b feature/new-service)
  3. 提交更改 (git commit -m 'Add new UDS service')
  4. 推送到分支 (git push origin feature/new-service)
  5. 发起 Pull Request

许可证

本项目基于 MIT License 开源。


🔗 更多资源

  • 🤖 ATEMall AI知识库 — 汽车测试工程师的AI助手
  • 💬 免费使用AI问答,覆盖 HIL / CAN / UDS / EMB 测试领域
  • 📋 注册即可获取完整测试模板和DBC文件库
  • ⭐ 如果这个工具对你有帮助,欢迎 Star 支持我们!

About

PeakCAN based CAN/CAN-FD automated test framework with DBC parsing, ISO-TP, and UDS support

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors