ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

软件测试转行新能源汽车HiL测试:技能迁移与职业新路径

2026/9/4 10:55:01 拓冰建站 浏览量
软件测试转行新能源汽车HiL测试:技能迁移与职业新路径 从软件测试转行到新能源汽车 HiL 测试这个话题我太有发言权了。我自己就是从功能测试一步步做到台架测试再把经验迁移到 HiL 自动化方向的。很多做软件测试的朋友问过我“这俩到底沾不沾边”结论是技能迁移度极高而且行业壁垒带来的护城河比纯软件测试深得多。今天我不讲虚的就掰开揉碎说说这条“第二曲线”怎么走、有哪些坑、以及为什么我说这份工作“越老越吃香”。1. 为什么是 HiL而不是其他测试方向先说个扎心的事实纯软件测试的入门门槛越来越低工具链越来越成熟但薪资天花板和年龄焦虑也是真真切切存在的。不少做了三五年功能测试、接口测试的朋友发现自己拼不过年轻时的自己原因是经验没有被体系化沉淀很多思考方式并没有随着年限增长而升级。而新能源汽车 HiL 测试属于“硬件在环”测试简单理解就是把真实控制器VCU、BMS、MCU 等接上仿真环境模拟整车的传感器、执行器、通信网络让控制器认为自己装在一台真实车辆上然后验证它的功能逻辑、故障处理、通信表现。这个方向有几个天然优势行业缺口大整车厂、零部件供应商、第三方测试公司都在抢人知识体系深涉及控制理论、汽车电子、通信协议、自动化和软件开发多领域交叉依赖经验积累很多问题是边干边踩坑踩出来的不是网上刷几套面试题就能替代的硬件和实时系统下出问题的概率和表现与纯软件完全不同解决问题的方式和思维含量也更复杂。换句话说软件测试是“在代码里找问题”HiL 测试是“在整车的大脑里找问题”。后者显然更需要综合能力和长期积淀。从软件测试转过来其实不是“从零开始”而是把已验证过的测试思维、自动化能力、问题排查能力带到新的应用场景中。这也是我想反复强调的千万不要觉得自己是转行就低人一等。你的测试设计能力在 HiL 领域依然是稀缺资源。1.1 技能迁移到底迁移的是什么很多人一听到“汽车电子”“HiL”第一反应是“我不会硬件”“我看不懂原理图”“Simulink 模型我没碰过”。这些担心可以理解但混淆了“领域知识”和“测试能力”的权重。在真实的 HiL 测试岗位中真正让你升值的是以下几项能力测试设计能力等价类、边界值、状态迁移、场景法这些在 HiL 测试里照样是核心。你会发现在设计 BMS 馈电状态的测试用例时以前学过的场景设计法比任何工具都好用。自动化开发能力HiL 自动化很多是用 Python、CAPL、vTESTstudio 来搭的。你写过的 Pytest、Requests 脚本就像内功只是换了一套招式再打一遍。缺陷定位与日志分析能力软件测试时你会抓取日志、定位前后端问题在 HiL 中你要会看 CANoe 报文、分析模型输出、比对标定数据。思维方式是完全相通的。问题管理能力Bug 生命周期、严重程度分级、复现步骤提炼这些直接搬到 DVPR、问题追踪库如 Jira、Polarion就能用。所以我给所有想转行的软件测试朋友的建议很明确先把“测试思维”内化到骨子里再去补汽车电子知识和工具链。思维是道工具是术道比术重要得多。1.2 为什么说它“越老越吃香”年龄焦虑在互联网尤其严重但汽车行业的“资历”意味着另一种东西你踩过多少坑、积累了多少场景经验、能否在项目风险还没爆发之前提前嗅到问题。在 HiL 测试中很多场景是某条 CAN 报文在极端工况下周期抖动某个故障码重复置位导致控制器误进入跛行模式某个信号换算公式在不同标定量下精度丢失某种总线错误帧在特定拓扑下引发雪崩效应。这些问题不是靠标准规范就能发现而是靠大量的工程经验和台架时间喂出来的。一个五年经验的 HiL 测试工程师能一眼看出哪个时序异常可能导致功能安全问题一个新毕业的硕士即使理论基础扎实也需要大量训练才能敏感地发现这些。所以这个岗位不是吃青春饭而是吃“阅历饭”。你手里积累的每一个异常波形、每一份测试报告、每一条问题复现路径都是不可替代的资产。2. HiL 测试到底在测些什么把 HiL 测试比作“用一台模拟器来骗控制器”可能更接地气。你面前放着一块真实的 VCU 或 BMS 硬件但接在它身上的是一个实时仿真系统。你的任务是让这个控制器以为车子在上坡、在刹车、在快充、在低温启动然后看它的控制策略是不是正确、是够稳健、故障处理是不是及时。一个典型的 HiL 测试系统由几块组成实时处理器运行车辆模型、电池模型、电机模型IO 接口板卡模拟传感器信号电压、电流、温度、转速等采集控制器输出PWM、数字量、模拟量总线通信接口CAN、CAN FD、LIN、FlexRay甚至车载以太网故障注入单元模拟信号对地短路、对电源短路、断路、信号超限上位机软件管理测试工程、运行自动化脚本、生成测试报告。测试范畴大致可以分成三类测试类型关注点典型用例功能测试控制逻辑是否正确BMS 在 SOC 低于阈值时是否报警、VCU 是否进入跛行模式故障诊断测试故障码、故障处理策略传感器信号漂移时是否降级、CAN 通信超时是否报 DTC通信与网络测试报文收发、周期、超时、错误帧DBC 信号解析、报文丢失后的默认值处理、节点唤醒/休眠这不是一套“点几下鼠标就跑完”的测试。在开始自动执行之前有大量细致的前期工作要做信号映射检查、模型参数核实、硬件通道校准、传感器特性模拟、故障注入类型确认任何一个环节有问题跑出来的结果都不值得采信。2.1 控制器的“心理战”从模型到工况HiL 的精髓在于“让控制器信以为真”。你要做的不是测一遍故障代码有没有触发而是打造一个足够真实的“心理战场”。比如做 BMS 相关测试时电芯模型要表现不同温度下的内阻变化、不同 SOC 区间的开路电压曲线、不同老化状态下的容量衰减。如果你的模型太粗糙——温度没有迟滞特性、SOC 估算没有初值扰动——那么你测出来的控制策略表现可能和实车差异很大测试置信度就会被打折扣。再比如仿真环境中的负载特性你要模拟一个电机在爬坡时的电流需求曲线。这个曲线不是简单画一条斜坡上去而是需要有动态过程控制器发出扭矩请求的一瞬间电机电流如何上升电压跌落多少持续多久后稳定这些动态特性都会被控制器的算法“感受”到进而影响控制决策。我在实际中踩过的一个坑是对电池模型校准不到位导致 BMS 的 SOC 估算在测试过程中持续跳变最后误报了一个 SOC 传感器故障。排查了半天才发现问题不在控制器而是模型里的极化电压参数没设对。那一刻我就明白了HiL 测试的准备工作80% 的时间不是在“测”而是在“建立可信的测试环境”。2.2 从软件测试视角看 HiL 用例设计软件测试中你熟悉的那套方法在 HiL 测试里几乎都在用但“味道”略有不同。等价类划分把 SOC 0~100% 分成过放区、正常工作区、过充区把水温分成低温区、常温区、高温区、过热区。不同区间下控制器的行为策略不同你不需要每 1% 都测一遍但每个策略分界点上下必须覆盖。边界值分析换挡转速边界、温度阈值边界、电压边界、SOC 边界。这些地方的故障往往最具隐蔽性因为控制器开发时可能只在内部做了标准差值的处理没有考虑边界处的抖动。状态迁移测试从充电状态切到行驶状态时BMS 是否先断开充电继电器再到预充从行走到碰撞后VCU 是否即时下电这些状态切换的时序非常宝贵。场景法软件测试里的用户登录、下单场景在车载领域就是启动、行驶、充电、下电。更高级的场景包括低温快充、连续爬坡、高速巡航遇到前车急刹。此外比起纯粹的软件测试HiL 测试还要多考虑一层时间属性。很多问题是时间相关的信号多久没更新需要被判超时故障多久需要被确认故障消失后多久需要被清除这些延时参数一个不对就可能导致控制器误动作。2.3 为什么硬件在环不可或缺有人会问既然有纯软件仿真MIL、SIL为什么非要用 HiL原因很简单控制器硬件本身也会出错。芯片端口的电气特性不是完美的可能存在漂移或噪声引脚焊接不良、电路板阻抗不匹配会导致信号畸变底层软件和硬件结合后出现的中断问题、资源竞争问题纯虚拟环境是发现不了的编译工具链不同生成的代码行为也有差异。HiL 的价值恰恰在于把“真实控制器的表现”提前到了台架阶段。你可以不用等实车、不用承担路试风险就能发现大量集成阶段的软硬件缺陷。这比等到实车阶段再返工省下的成本不是一个量级。3. 转行 HiL需要补哪些知识体系从软件测试到 HiL需要增加的知识点不少但都有清晰的路径和优先级。我给转行朋友的建议是不要一上来就啃整车电气架构、不要直接研究 Simulink 模型那是把自己劝退的最好方式。按优先级排序一步一步来。3.1 汽车电子与控制器基础你需要对控制器有个基本认知控制器接收什么输入处理什么逻辑输出什么驱动。以 VCU 为例输入包括加速踏板信号、刹车开关、挡位传感器、电机控制器反馈、BMS 状态、车速传感器等输出包括电机扭矩命令、继电器控制、指示灯点亮、故障码存储等。这部分不用啃深但至少要知道“信号从哪里来、到哪里去”能够看懂简单的电路原理框图。推荐从 OBD 接口、CAN 总线、常用传感器原理入手很快就能建立感觉。3.2 通信协议CAN、CAN FD 与诊断协议CAN 总线是现阶段汽车电子最核心的通信手段。你要会的不是“知道有 CAN 总线”而是要能够读懂 DBC 文件理解报文周期、信号起始位、长度、换算公式通过 CANoe 或 PCAN 抓取报文分析信号值是否正确理解 CAN 错误帧、总线负载率、信号超时判断逻辑了解 UDS 诊断协议ISO 14229的基本服务比如读取故障码19 服务、清除故障码14 服务、读取数据22 服务。这部分知识是 HiL 测试的核心工具越熟练越好。我自己面试人的时候基本上一开口就能判断这个人有没有真机环境经验——张口闭口“报文周期不对”“信号发不出去”的和只背过 DBC 字段定义的人完全是两种状态。3.3 控制策略与仿真模型你不需要成为控制算法专家但至少要能理解一个简单的 PID 控制为什么会出现超调、为什么电池模型要有 RC 等效电路、为什么 PWM 波的占空比能控制电机转速。在实际工作中你会有很大一部分时间在调试仿真模型和模型工程师沟通需要什么接口检查模型运行结果是否符合预期在具体工况下微调模型参数比如不同温度下的电池内阻。软件测试出身的人有一个优势你很习惯“系统行为是否符合预期”这种思考方式而模型调试本质上就是在控制一系列输入观察输出是否在合理范围内。这个思维方式可以直接迁移。3.4 工具链与自动化别再只会 Postman 了HiL 测试的工具链和软件测试差别很大常见的是NI PXI VeriStand常用于硬件资源管理、实时测试、故障注入集成dSPACE ControlDesk / AutomationDesk常用于控制器的快速原型和自动化测试管理Vector CANoe / vTESTstudio / CAPL专精于总线通信仿真和测试Python CANalytics / python-can结合开发测试脚本ECU TestVector测试用例管理、自动执行和报告生成。对转行新手我建议从 CANoe CAPL 入手因为这是汽车电子圈最通用的“基本功”会了 CAPL 之后再去啃其他工具会顺很多。紧接着建议入手 Python因为在现代 HiL 测试中Python 正在逐渐取代一部分专用脚本语言成为自动化测试事实上的通用语言。我当时转行时的路线是先学 CANoe 基础操作和 DBC 解析然后学 CAPL 写简单测试脚本再用 Python 结合 pytest 搭自动化工程最后才去碰故障注入单元和 NI VeriStand。整个过程大概花了四个月每天在工位上闷头折腾边做边总结。4. 实操从零搭一个 BMS HiL 单体测试环境理论说再多不动手都是空中楼阁。下面结合我实际工作中的操作方法和一些现场记录梳理一遍“从零搭一个小型 BMS HiL 测试环境”的完整流程。目的是让大家对 HiL 测试的日常工作有个具体认知也知道每一步在做什么、为什么这么做。4.1 硬件层面的准备如果要测一个 BMS 控制器需要的硬件包括BMS 控制器样件被测对象实时仿真机比如 PXI 机箱跑电池模型和整车模型IO 板卡电压采集通道、电流采集通道、温度电阻模拟通道、数字输入输出通道故障注入单元用于在电气层面制造短路、断路、信号越限等故障CAN 接口卡连接控制器和上位机用于报文采集和发送可编程电源模拟电芯电压输入、模拟继电器的供电负载模拟器加热丝或电子负载模拟用电器的电流需求。硬件连接看起来复杂但对纯测试工程师来说要关心的主要是通道映射是否准确、电气特性是否符合预期、是否有短路风险。上电之前检查接线是新手最容易忽略但最不能忽略的环节。4.2 仿真模型的配置如果你要和做模型的同事协作你至少要能够看懂模型的输入输出接口。以 BMS 为例输入cell_voltage_1~n每串电芯电压、pack_current电池包总电流、cell_temperature_1~n电芯温度、charge_relay_state充电继电器状态输出insulation_resistance绝缘电阻、max_charge_power最大允许充电功率、SOC、SOH、fault_info故障信息。模型在仿真机中要按实时任务运行。这就有个关键点模型运行必须满足实时性要求。如果模型计算太复杂导致仿真机超时那所有输出都会失真测试结果不可信。这时你就要会和模型工程师沟通做一些模型降阶处理比如多电芯电池包简化成单体加等效内阻或者调整仿真步长。别小看这件事它需要你在“精度”和“实时性”之间找到平衡点。4.3 信号映射与 IO 校准硬件连上、模型跑起来后不要急着执行测试用例。首先要做的是“把模型的量程映射到真实物理量程”。比如电芯电压模型输出值范围是 0~5V模拟量但实际电芯电压是 2.5~4.2V那么你需要在 IO 映射里做线性换算。再比如温度传感器是 NTC 热敏电阻你需要用一个电阻阵列来模拟不同温度下的电阻值而不是直接输出温度值。这部分的校验非常耗时一个典型的 BMS 系统至少有几十路电压信号、十几路温度信号每一路都要验证。而这一步又恰恰是 HiL 测试和软件测试最大的区别在软件测试里你给一个输入参数值程序直接读走就行在 HiL 里信号从模型到物理引脚再到控制器内部经历了很多转换任何一环出错都会导致测试结果无效。我在第一次搭建环境的时候就因为一个温度通道的电阻值换算有误导致控制器一直读到一个恒定的 25°C后来折腾了两天才发现是映射配置出了问题。从那时起我无论多赶进度都坚持先做一次全通道的 IO 自检再开始测试。4.4 自动化测试脚本的设计自动化测试是一个 HiL 测试工程师的核心竞争力。和做 API 自动化类似也需要分层设计底层封装封装 CAN 报文发送、信号读取、故障注入、IO 控制等方法业务操作封装启动充电、结束充电、进入行驶模式等业务动作测试用例通过参数化和断言来验证控制器的行为和期望一致报告输出生成标准格式的测试报告和问题日志。以 BMS 过压保护测试为例Python Pytest 框架的核心代码大概长这样import can import time import pytest def test_charge_overvoltage_protection(bms_connector, battery_simulator): # Step 1: 初始化电池模型进入充电模式 battery_simulator.set_soc(50) battery_simulator.set_charge_mode(True) # Step 2: 逐步升高电芯电压直到超过过压阈值 threshold bms_connector.get_overvoltage_threshold() for voltage in range(3800, 4600, 10): # 单位 mV battery_simulator.set_cell_voltage(1, voltage) time.sleep(0.2) fault_status bms_connector.read_fault_code() if voltage threshold: assert fault_status overvoltage, f过压故障未触发 {voltage}mV else: assert fault_status normal, f过压故障提前触发 {voltage}mV # Step 3: 确认过压保护动作充电继电器应该断开 relay_status bms_connector.read_charge_relay_status() assert relay_status open, 充电继电器未断开这只是一个示意但可以看到 HiL 的自动化脚本和软件测试很像有断言、有前置条件、有清理动作、有参数设置。唯一不同的是你操作的对象是真实的硬件信号而不是 API 请求。这也意味着测试环境稳定性、硬件响应时间、信号噪声等都会干扰测试结果脚本里要有适当的重试和等待机制。4.5 执行测试与报告输出执行完一大自动化测试序列后你还需要把结果归档。和软件测试不同汽车行业对测试可追溯性要求很高——每条用例都要和需求关联每个问题都要关联到问题追踪库甚至要生成符合 ISO 26262 功能安全标准的证书。所以从第一天起就养成写“问题重现步骤环境状态抓包数据截图”的习惯比什么都重要。这在软件测试里叫 Bug 描述规范在 HiL 测试里叫“缺陷分析报告”。本质是一样的只是格式和粒度要求更严格。5. 常见问题与排查技巧实录这部分内容是我最想分享的因为真正工作中耗费时间的从来不是跑用例而是遇到各种莫名其妙的“疑难杂症”。下面把几种典型情况和排查思路整理出来给后面入行的朋友当参考。5.1 模型跑飞了还是控制器跑飞了现象某条用例执行时控制器直接进入一个不安全状态或者输出信号完全不对。你以为是模型 bug查了半天模型没问题你以为是控制器 bug重新刷写程序后仍然存在。排查思路先把模型输出信号记录下来确认仿真机上的模型是否运行正常再抓 CAN 总线数据看看控制器收到的输入是不是预期的最后看故障注入单元是否被误触发比如某个断路继电器意外断开。很多时候问题出在“时序”。控制器的某条逻辑要求两个信号在同一毫秒内有效但你的仿真模型输出有一个指令周期延迟导致控制器认为信号非法。这种情况下其实不是“谁的 bug”而是时序不合拍导致的系统级问题。5.2 DBC 文件更新了但测试还在用旧文件现象明明更新了 DBC 文件但信号解析还是用旧的位置和长度测试报告中数据看起来很奇怪。排查思路检查仿真环境的 DBC 路径是否更新检查通道名称是否冲突新旧 DBC 里同一个物理信号被解析成两个通道检查上位机软件是否缓存了旧的 DBC。这个问题很像软件测试里的“环境没部署最新版本”一旦发生所有测试结果作废。所以我现在的习惯是在写自动化脚本前先加一个“DBC 文件版本号校验”的步骤一旦版本不匹配就直接终止测试并报警。5.3 故障注入后控制器的反应“太慢”或“太快”现象某些故障注入之后控制器没有在预期时间内做出响应。这里要意识到故障注入并不等于“裁剪信号”。短路到地、短路到电源、断路、信号电压越限这几种故障在控制器内部触发的路径是不一样的。比如一个传感器信号对地短路控制器内部可能有滤波算法需要持续几十毫秒的异常才能确认故障而不是瞬间判定。所以测试时你需要区分到底是控制器响应时间太慢还是你的故障注入方式没有真正模拟出目标故障类型。这时候用示波器抓一下被测引脚的实际波形比对着报告猜要靠谱得多。5.4 自动化脚本偶发失败环境实时性导致现象脚本跑 20 次有 2 次失败失败时日志一切正常但控制器没有达到预期状态。最常见的原因是仿真机的实时负载太高某个任务超时导致信号更新不够及时控制器在某个执行周期没有收到预期的输入。其次是 CAN 总线负载率高报文传输出现短暂波动。对策降低模型复杂度或增大仿真步长在脚本中加入状态轮询逻辑而不是固定 sleep提高测试机优先级避免其他后台程序占用 CPU在用例设计时允许“重试 N 次”但要控制重试场景避免掩盖真实 bug。5.5 测试报告生成不了环境依赖问题现象用例跑完了但生成报告时崩溃或者报告格式不符合团队规范。我做过的处理是把报告生成做成独立的服务最终统一从测试结果库比如 SQLite 或测试管理平台提取数据而非依赖实时环境。这样哪怕环境崩了报告仍然可以在任意时刻补生成数据也不会丢。6. 转行路径与工具学习顺序聊完实操回到转行规划。很多朋友想转但不知道节奏怎么把控。我给一个大致的路线图不一定适合所有人但可以作为参考。6.1 第一阶段建立汽车电子常识1~2 个月了解汽车电子电气架构、域控制器、CAN 总线基础知识理解 VCU、BMS、MCU 三个核心控制器各自干什么自己装一个 CANoe 学习版或使用 python-can 虚拟 CAN 接口手动解析报文。这个阶段不需要上大硬件重点是形成“车载控制器之间是怎么通信”的整体认知。6.2 第二阶段学会基础工具链2~3 个月学习 CANoe 常用操作创建工程、加载 DBC、发送报文、查看信号学习 CAPL 基础语法写几个自动发送报文的脚本学习 Python 的 pytest 测试框架尝试编写数据驱动测试。如果条件允许可以买一块便宜的 CAN 卡比如 PCAN或者用树莓派 MCP2515搭建一个简单的 CAN 节点来实操。比起纯粹看书亲手把一个报文发出去看到另一端正确解析学习效率会高非常多。6.3 第三阶段接触 HiL 环境3~6 个月有条件的可以通过公司内部转岗、校企合作、或者自己组装简易台架来接触 HiL。如果暂时没有硬件条件也可以先学习一些开源或共享的仿真环境如基于 Python 的车辆动力学仿真库。这里的关键不是一步到位而是把“测试思维”迁移到“硬件信号”的世界里。你可以先模拟一个“输入信号变化—采集—判断—输出结果”的完整闭环体验一下和纯软件接口测试的区别。6.4 求职策略与简历亮点投 HiL 测试岗时多数人担心“我没有相关经验”。但据我面试工程师的经验更看重的是以下几点测试设计能力你的用例设计是否有系统性、边界是否考虑足够自动化能力是否能独立完成脚本的架构设计和调试问题定位能力遇到诡异 bug 时你如何一步步缩小范围团队协作能力你能不能用通俗的语言和研发、硬件、模型工程师沟通。所以简历上不需要只写业务层功能测试的经历而是要把测试方法论、自动化框架设计、脚本开发能力、异常问题定位能力放大来写。同时强烈建议在简历里增加自己做过的汽车电子相关学习项目比如 CAN 总线通信解析、电池充放电场景测试流程设计等哪怕是一个很小的自研小工具都能体现你的兴趣和行动力。7. 转行后的成长路径与心态建设最后聊点“软”的。这个方向虽然好但也不是没有代价。前期要啃的资料非常多而且汽车电子领域节奏普遍比互联网慢你可能要适应“做一个测试项目周期按季度计算”的节奏而不是“一周上线一个功能”的节奏。7.1 前两年多学多问积累台架时间入行头两年最重要的就是泡在台架上的时间。HiL 测试的知识不是看文档看会的而是亲手拧螺丝、接线、拽信号、盯着示波器波形慢慢琢磨出来的。很多问题你只有自己遇到一次才能真正理解为什么规范里要那样写。平时可以多和硬件工程师聊问问为什么不直接用一个电位器模拟电压而是要用程控电源也可以多和模型工程师聊为什么电池模型要用二阶 RC 而不是一阶还可以多和底层软件工程师聊为什么某个信号从请求到响应要经过这么长的链路。这些都是别人几十年的经验和踩坑记录免费获得何乐而不为。7.2 中期发展横向扩展走向系统级有三年左右经验后你可以开始从“单体控制器测试”走向“系统级测试”比如 V 字形开发中从部件级测试到系统级测试的扩展。这时候你的视角会从“BMS 控不控制得好”变成“ VCU、BMS、MCU 协同工作是否正常”。这个阶段需要具备的能力理解整车能量流和信号流的关系能设计跨控制器的交互场景能把测试结果和整车性能指标如续航、加速、安全关联起来能独立主持一个 HiL 测试项目制定计划和分配任务。7.3 长期价值是测试也是系统级质量工程做 HiL 测试的长期方向不是只会“跑用例”的测试执行者而是懂车辆系统的系统级质量工程师。你可以往外延伸的方向有很多功能安全ISO 26262、预期功能安全ISO 21448、网络安全ISO 21434、自动驾驶在环测试、整车在环验证等。这些方向的门槛都比传统软件测试高但对应的价值和薪酬也更可观。而且它们都在你的既有路径上有自然延展不是另起炉灶。从我个人的体会来说软件测试转 HiL 测试是我职业生涯中做出的最有复利效应的选择。它没有让我丢掉之前在软件开发、测试设计、自动化方面积累的所有经验反而赋予这些经验一个更有深度、更不容易被替代的承载场景。如果你也正在犹豫要不要跳不妨从小处着手先买一本 CAN 总线的书读一读 DBC 文件的结构或者装一个虚拟 CAN 工具亲手抓一抓你网购的那块开发板发出的报文。你会发现那个曾经觉得遥不可及的汽车圈其实离你已经很近了。