原帖 | zzz | 2026-08-16 13:14 | 👍0 | 阅读约1
零基础如何转行汽车电子?应届生和嵌入式工程师该怎么准备
最近想进入汽车电子行业的人越来越多。
其中既有准备找工作的应届生,也有已经从事消费电子、工业控制、物联网等方向,想转入汽车电子的嵌式工程师。
今天就结合实际岗位需求,聊一聊这两类人应该如何准备汽车电子相关技术,以及 AUTOSAR 到底应该在什么阶段学习。
一、汽车电子的门槛到底高在哪里?
很多人认为汽车电子的门槛高,是因为它的技术特别复杂。实际上,汽车电子真正的门槛并不完全在技术深度,而在于学习成本。
首先,汽车电子涉及的知识范围比较广,包括:
MCU及底层驱动
RTOS
CAN、LIN和车载以太网
UDS诊断
Bootloader
AUTOSAR
功能安全
ASPICE开发流程
Vector、EB、ETAS等工具链
其次,AUTOSAR架构、车规级MCU以及商业工具链的公开资料相对有限。很多工具价格昂贵,个人学习者很难获得完整的软件、配置工程和技术文档。
所以,学习汽车电子最重要的不是一开始就追求“大而全”,而是先建立正确的学习顺序。
二、应届生应该先打好嵌入式基础
对于应届生来说,不建议一开始就直接学习 AUTOSAR。
如果连 C 语言、MCU 外设和 RTOS 都没有掌握,直接学习 AUTOSAR,很容易变成只会记忆模块名称,却无法理解底层代码为什么这样运行。
建议先掌握以下通用嵌入式基础:
1.C语言基础
至少需要掌握:
指针和数组
结构体和联合体
函数指针
位运算
宏定义
内存管理
编译与链接基础
汽车电子项目中会大量使用结构体、函数指针、宏和位操作。如果这些基础不扎实,后续阅读 AUTOSAR 生成代码会非常吃力。
2.MCU和常用外设
基础外设建议重点学习:
GPIO
UART
ADC
PWM
定时器
输入捕获
I²C
SPI
Flash
Watchdog
与汽车电子联系比较紧密的外设,需要进一步重点掌握:
CAN
LIN
ADC
PWM
SPI
Watchdog
学习外设时,还要理解中断、DMA、超时、错误状态和异常恢复。
3.RTOS基础
RTOS至少需要掌握:
任务创建与调度
任务优先级
队列
信号量
互斥锁
事件
软件定时器
中断与任务通信
死锁和优先级反转
任务栈与看门狗监控
可以先通过 FreeRTOS 建立实时操作系统的基本概念,再去学习 AUTOSAR OS。两者的接口和配置方式不同,但任务调度、事件、资源保护等底层思想是相通的。
三、协议栈不要全部自己设计
在学习阶段,建议至少掌握两类通用协议:
一种文件传输协议,例如 Ymodem
一种命令或设备通信协议,例如 Modbus
除非课程或项目明确要求,否则不建议把大量时间花在设计自定义通信协议上。
原因很简单:学习阶段的核心目标不是证明自己能够“发明一种协议”,而是掌握经过市场验证、企业认可并且具备成熟工具支持的通用方案。
自己设计的协议即使看起来很完善,如果没有经过大量设备、异常场景和长期运行验证,企业也很难据此判断你的工程能力。
相比之下,完成一个基于 Modbus 的设备控制项目,或者基于 Ymodem 的 Bootloader 升级项目,更容易体现你的实际开发能力。
四、要不要专门学习车规级MCU?
如果时间充足,可以进一步接触车规级 MCU,例如:
NXP S32K系列
Infineon AURIX TC3xx系列
Renesas RH850系列
ST SPC5系列
对于个人学习者,我更推荐优先选择资料丰富、开发板容易购买、示例工程较多的平台,例如 S32K。
选择芯片时,不要只看是不是国产,也不要盲目追求最新型号。个人学习最重要的是:
能否找到数据手册
是否有开发板
是否有驱动示例
是否有调试工具
是否有完整的学习路径
能否最终完成一个可展示的项目
部分国产车规芯片的公开资料、社区生态和个人开发工具还不够完善,学习路径相对陡峭。对于刚入门的同学,不建议在资料不完整的平台上投入过多时间。
五、真正进入汽车电子,建议先从协议开始
完成 MCU、RTOS 和基础协议学习后,就可以进入汽车电子专项技术。
我的建议是先从汽车通信与诊断协议入门,因为这部分公开资料相对较多,学习成本也比完整的 AUTOSAR 工具链低。
建议按照下面的顺序学习:
CAN基础
→ CAN报文收发
→ ISO-TP多帧传输
→ UDS诊断
→ Bootloader刷写流程
→ CANoe上位机测试
→ AUTOSAR通信与诊断模块
这里需要重点掌握:
CAN报文格式与仲裁机制
CAN位时序和波特率
CAN错误状态与Bus-Off恢复
ISO-TP单帧与多帧传输
UDS请求与响应格式
诊断会话控制
安全访问
数据读取
故障码读取与清除
Flash擦除与数据下载
ECU复位与程序跳转
符合UDS流程的Bootloader设计
学习完这些内容以后,再看 AUTOSAR 中的 Can、CanIf、PduR、CanTp 和 DCM,就会容易很多。
主流 AUTOSAR 平台与工具链的对比另见 最近有学员问:Vector、EB、普华、小满、QSAR;OBD/UDS 诊断的实战取舍可参考 OBD诊断仪项目为什么以OBD。
六、汽车电子主要有哪些软件岗位?
从软件开发角度看,常见岗位可以大致分为以下几类。
1.应用软件开发
应用层主要负责车辆具体功能和控制逻辑,例如:
车灯控制
热管理控制
电机控制
车身功能控制
故障降级
状态机管理
信号处理
部分公司使用 C 语言手写应用代码,也有很多主机厂和 Tier 1 采用基于模型的开发方式。
如果想从事应用层开发,可以学习:
C语言
MATLAB/Simulink
Stateflow
控制算法基础
AUTOSAR SWC
Runnable、Port和Interface
RTE接口
信号有效性及故障降级
如果时间有限,可以优先学习 Stateflow。汽车控制逻辑中存在大量状态切换、故障处理和模式管理,Stateflow非常适合表达这类逻辑。
2.诊断与刷写开发
诊断开发主要涉及:
CAN和CAN FD
LIN诊断
车载以太网
ISO-TP
UDS
DTC故障管理
Bootloader
ECU刷写
CANoe和CAPL
这个方向对转行人员相对友好,因为协议资料较多,功能边界也比较清晰。
建议至少独立完成一个“UDS诊断+Bootloader升级”项目,并能够讲清楚:
进入编程会话
→ 安全访问
→ Flash擦除
→ 请求下载
→ 数据传输
→ 传输退出
→ 完整性校验
→ ECU复位
3.BSW基础软件开发与集成
BSW主要负责 AUTOSAR 基础软件模块的配置、集成、调试和问题定位,常见内容包括:
MCAL配置与集成
AUTOSAR OS
CAN、LIN及以太网通信栈
COM、PduR、CanIf、CanTp
DCM、Dem和FiM
NvM及存储栈
EcuM、BswM和ComM
网络管理
休眠唤醒
配置生成与集成编译
严格来说,MCAL通常由芯片厂商或专业供应商提供。很多公司的主要工作不是从零开发MCAL,而是完成配置、适配、集成和问题定位。
BSW与商业工具链强绑定,涉及Vector DaVinci、EB tresos、ETAS ISOLAR等工具,因此个人学习成本相对较高。
对于转行人员,可以先学习通用的 AUTOSAR Classic 架构,再结合开源 AUTOSAR 项目了解模块关系、配置结构和代码调用链。现阶段不需要追求掌握所有工具,重点是先理解:
硬件
→ MCAL
→ ECU抽象层
→ 服务层
→ RTE
→ SWC
以及一条CAN信号、一条诊断请求和一次任务调度分别经过哪些模块。
4.CDD开发
CDD的完整名称是Complex Device Driver,也就是复杂设备驱动。
它通常用于处理标准 AUTOSAR 模块难以覆盖的功能,例如:
特殊芯片驱动
复杂传感器驱动
特殊通信接口
高时序要求的控制
直接访问硬件的功能
厂商自定义硬件模块
CDD在架构上属于基础软件的一部分,但由于它和具体硬件、芯片及产品功能联系非常紧密,很多公司会安排单独的团队或工程师负责。
CDD岗位比较适合有传统嵌入式、BSP或驱动开发经验的转行人员。因为原有的寄存器、中断、SPI、ADC、PWM和外部器件驱动经验,都可以继续复用。
七、不同人群应该如何选择方向?
如果你是应届生,建议按照下面的路线准备:
C语言
→ MCU外设
→ FreeRTOS
→ CAN
→ ISO-TP
→ UDS
→ Bootloader
→ AUTOSAR基础
→ 项目与面试
如果你已经是嵌入式工程师,就没有必要重新做大量点灯、按键和温湿度采集项目。
可以直接从原有能力向汽车电子迁移:
原有MCU与RTOS经验
→ CAN与车载通信
→ UDS与Bootloader
→ 车规级MCU
→ AUTOSAR架构
→ 选择应用、诊断、BSW或CDD方向
有驱动开发经验,可以重点考虑CDD和MCAL相关岗位;有通信协议经验,可以考虑诊断、Bootloader和通信栈;有控制算法经验,可以考虑应用层和模型开发;有系统集成经验,可以进一步向BSW集成方向发展。
八、最后的建议
转行汽车电子,不需要一开始就把 AUTOSAR 所有模块全部学完。
更现实的方式是先建立嵌入式基础,再通过 CAN、UDS 和 Bootloader进入汽车电子,最后根据目标岗位选择 AUTOSAR 应用层、诊断、BSW或CDD中的一个方向深入。
相关笔记