一、基础概念
1. 什么是AUTOSAR?
AUTOSAR(AUTomotive Open System ARchitecture,汽车开放系统架构)是一种全球性的开放式软件架构标准,旨在为汽车电子控制单元(ECU)的开发提供统一的软件平台。它由汽车制造商、供应商和工具开发商共同制定,以提高汽车软件的可重用性、可扩展性和可维护性,同时降低开发复杂度。
2. 什么是MCAL?
MCAL(Microcontroller Abstraction Layer,微控制器抽象层)位于AUTOSAR软件架构的最底层,与微控制器的内部单元及其外设相关,主要包括微控制器驱动、存储器驱动、通信驱动和IO驱动四个部分。MCAL为汽车ECU的软件开发提供了硬件无关的接口,是连接底层硬件与上层应用的关键模块。
3. 什么是CDD?
CDD(Complex Device Drivers,复杂设备驱动)用于处理MCAL无法直接支持的复杂外设或非标准硬件,通常位于MCAL之上或与MCAL并行,在AUTOSAR架构中二者互补。
4. 什么是硬测软件开发?
硬件测试软件开发是指为验证ECU硬件功能而编写专用软件的过程,需要掌握MCAL和CDD各模块的使用方法、理解原理图、熟悉IDE(Integrated Development Environment,集成开发环境)、掌握基于HSI(Hardware-Software Interface,硬件-软件接口)的软件配置、掌握测试工具的使用(包括PCB的布局设计Layout、万用表、示波器、仿真器等)。
5. 基础软件研究室的工作主要涉及哪些方面?
MCAL开发、CDD开发、硬测软件开发、BT(BootLoader,BT拥有通信接口和擦写内部存储空间的功能,可将需要更新的APP擦除,写入新的APP)开发、AUTOSAR OS开发等。
6. 什么是HSI?
HSI是硬件软件接口规范,是用来定义硬件和软件的交互,比如规定硬件的功能在软件中应该如何配置,配置什么参数等。是软硬件协同输出的,在硬测软件开发过程中也需要用到,比如配置TIC12400的唤醒源就需要根据HSI配置引脚类型(DIO/ADC_SAMP)是否唤醒、湿润电流、上下拉、高低边唤醒等参数。
二、已开发项目的基本信息
1. 项目概述:某型号汽车ZCU(Zone Control Unit,区域控制单元)左舱硬测软件开发项目、某品牌汽车座椅控制硬测软件开发项目。
2. MCU型号:
(1)英飞凌(Infineon)的SAK-TC377TP-96F300S,属于AURIX™TC3xx系列,可以简称为TC377;
(2)恩智浦(NXP)的FS32K164HRT0VLQR,基于ARM Cortex-M4架构,可以简称为S32K164。
3. IDE:
(1)UDE STK5.0:UDE 是一款用于汽车电子系统诊断、开发和测试的集成化工具,连接好板子后,将编译后的.elf文件进行烧录,通过诊断测试工具Watches,实时监控和修改各变量,实现功能控制和数据监控等任务,仿真器使用的是InfineonMiniWiggler(小白盒);
(2)S32 Design Studio for ARM:S23DS是NXP官方推出的免费集成开发环境(IDE),专为基于ARM架构的S32K、KEA、MAC57D54H等微控制器设计,适用于汽车电子和嵌入式开发。,仿真器使用的是JLINK。
4. 工具软件(需配合专业硬件):
(1)INTEWORK-VBA:VBA(Vehicle Bus Analyzer)车载总线监控分析及仿真工具,是由经纬恒润自主研发的一款专业、易用的车载总线工具。VBA集监控分析、节点仿真、测量标定、故障诊断、自动化测试等核心功能于一体,支持CAN、LIN、ETH等多种总线类型;
(2)ZCANPRO:是广州致远电子(ZLG)器件有限责任公司出品的CAN/CANFD产品系列的配套设施软件,可以实现CAN总线发送、监控、诊断等功能,也通常称为 “周立功”。
三、开发过程中使用的芯片或自搭电路
1. TIC12400:主要用于读取AD值,TIC12400是德州仪器公司推出的汽车级多通道开关检测接口芯片,支持 24路开关检测通道,每个通道可独立设置为唤醒源,用于低功耗模式下的系统唤醒;
2. FS2620:主要用于电源管理和安全功能,FS2620是一款专为汽车电子系统设计的安全系统基础芯片(System Basis Chip, SBC),集成了电源管理、通信接口及安全监控功能,适用于高可靠性的车载应用;
3. TAC9539:主要用于GPIO扩展,TAC9539是一款I²C接口的GPIO扩展芯片,用于为主控器(如MCU、CPU)提供额外的通用输入/输出(GPIO)引脚,解决主控芯片I/O资源不足的问题;
4. BCM89834:主要用于以太网通信;
5. TPS1HB08/TPS2HB16:主要用于高边驱动,可以简称为TPS,主要用于汽车电子、工业控制等场景的负载驱动与保护,直接连接电源和负载,避免负载短路到地的风险。以上两种芯片分别为单通道和多通道;
6. DRV8908:主要用于驱动电机,DRV8908 是德州仪器推出的一款集成式 H 桥电机驱动器,专为驱动直流电机、步进电机或其他感性负载设计;
7. VN9D30Q100:主要用于高边驱动,简称VN9D,是STM公司推出的N沟道功率MOSFET,具有高边驱动能力、低压驱动、PWM控制、LED驱动等多种功能;
8. DRV871X:DRV8714、DRV8718主要用于电机驱动,是德州仪器推出的步进电机驱动器,专为精密控制和高效驱动步进电机设计,可以实时反馈故障状态,便于实时调试。
9. LSD电路(自搭建):主要用于低边驱动,适用于直流电机控制、LED调光、继电器驱动等低精度场景。
10. BTS70012:主要功能为高边开关,BTS70012是一款集成诊断和保护功能的高边开关,适用于驱动电阻、电感、电容负载。 其特点包括反向电流保护、过温及过载保护,并具备电容负载切换模式。
11.TCAN1043、TCAN1145:TCAN1043和TCAN1145是德州仪器(TI)推出的两款汽车级CAN(控制器局域网)收发器芯片,主要作用是在CAN协议控制器与物理总线之间提供稳定的信号转换和接口功能,在项目中可以实现指定帧ID唤醒功能。
四、在硬测软件开发过程中的收获
1. 养成良好的工作习惯:在开发过程中应该适当添加注释,便于后续的调试和迭代更新。
2. 做好版本管理:此外还应做好版本管理,使用SVN(Subversion,集中式版本控制系统)在每一个模块的代码修改后即使上传新版本,并做好修改日志,便于后续回查问题。
3. 基于历史版本修改习惯:基于历史版本代码的修改,如部分模块需要变更,最好将变更前进行注释,再重新编写相关代码,尽量不要直接删除。
4. 善于使用调试工具:在进行调试过程中,如果遇到结果不符合预期的情况,要结合原理图,通过测量TP点电压、波形等,结合IDE中的变量数组监控功能、断点功能,分析问题所在。
5. 需要做好操作手册:无论是使用IDE,还是通过CAN、LIN的数据收发对变量和工作状态进行控制和监控,都应当制作操作手册,详细说明IDE中变量的控制策略、监控逻辑,CAN、LIN报文的ID、数据位代表的意义,并随着开发过程完善更新。
五、各岗位在本项目中扮演的角色
1. 项目经理:负责与客户对接项目,确定产品的技术流程,协调安排相关人员解决产品问题。
2. 项目策划:根据确定客户需求,制定项目的硬测软件需求,如:要求某些引脚高低可控、某些通道可以正常读取AD、可通过哪些方式唤醒、指定通道在正常状态下读PWM占空比和频率,短路情况下读取IO等。后续如果有新增的测试需求,一般项目经理会联系并提出。
3. 产品设计(硬件工程师):参与售前技术沟通,明确客户基本和潜在需求,和策划一起制定硬测软件需求。负责硬件的整体设计、器件选型,并完成硬件原理图绘制等,是对整个板子最懂的人(貌似单独有一个EDA工程师,负责PCB Layout设计),在后续硬测软件开发过程中,如果对需求不理解,或者不清楚可以通过什么方式验证功能,可以去咨询产品设计。后续测试过程中如果出现硬件问题,需要根据其进行修改,并制定后续的针对性硬测需求。
4. 产品软件(产品软件工程师):产品软件是直接嵌入车辆或车载系统的功能性软件,和硬测软件可能使用相同的接口,但软件的性质不同,硬测软件是验证硬件和接口的可靠性,产品软件则是面向用户,通过接口实现具体功能。还有部分产品软件负责将AUTOSAR和CDD等接口进行集成,以保障后续的开发顺利进行。
5. 硬测软件:根据需求,调用接口,输出测试软件,由硬测执行验证具体功能是否实现(其中大部分功能可以自行验证)。
6. 硬测执行(硬件测试工程师)根据测试用例进行测试,并完成记录,撰写报告。硬测执行会在测试过程中反馈大量测试问题,需要针对问题对硬测软件进行调整,然后重新测试(目前我遇到反馈的问题基本上都是软件编写逻辑等导致,没遇到硬件本身的问题)。

575

被折叠的 条评论
为什么被折叠?



