基于AUTOSAR的电机驱动系统报告
一、电动汽车的电机控制软件基于 AUTOSAR开发的意义
二、旋变解码研究
对于电机矢量控制而言,往往需要获取电机的转子位置角度,角度的测量常用的方法有磁性编码器、光电码盘、电涡流传感器和旋转变压器等。其中,磁编码器是基于磁阻效应或霍尔效应的轴角传感器,输出信号是基于转子位置的正余弦函数,其结构简单鲁棒性强,不受潮湿环境影响,但受高温和气隙限制;光电码盘体积小,分辨率高,抗电磁干扰能力强,但转速受限,最高可测转速在 3000rpm 左右;电涡流传感器灵敏度高,响应速度快,受环境影响较小,但其精度有限;旋转变压器可靠性高,不同环境适应能力强,不受温度和振动等因素影响,因此广泛应用于电梯、雷达、机载仪器等伺服系统和工业自动化领域。
旋转变压器输出一组包含转子位置信息的正余弦信号,需要对此信号进行适当的处理,才能得到相应的转子位置。对于旋转变压器输出模拟信号的处理可以由专用的集成电路将其转换为数字信号,即 RDC电路,又称为旋变解码芯片,目前常见的有美国 AD公司的 AD2S(AD2S1210)系列芯片以及日本多摩川公司的 AU6802系列芯片,它们可以产生激励信号发送给旋变的激励绕组,然后将返回绕组的模拟信号处理得到转子位置信号,以编码器或 SPI 等形式输出。除此之外,还有一种方法是利用 DSP和外围调理电路产生激励信号并对旋变输出的信号进行调制、滤波等处理以及角度辨识算法得到转子位置信号。采用 DSP 对角度信号处理省去了专用的解码芯片,极大地降低了开发成本。
三、基于 AUTOSAR 的电机驱动控制系统开发
本节主要研究AUTOSAR 标准对电机控制系统软件进行软件分层,包括应用层、基础软件层和实时运行环境。其中,应用层通过MATLAB/Simulink 搭建电机控制模型并生成软件代码,基础软件层通过调用英飞凌底层驱动软件包编程实现外设功能模块驱动,实时运行环境通过自定义接口函数实现不同软件层之间的数据交流和服务调用。
传统的电机控制,尤其在自动化领域,软件开发分层不明显,软件和硬件之间的嵌套关系耦合严重,这就使得软件在开发过程中一旦遇到问题和缺陷,难以确定问题产生的原因在于硬件驱动程序还是软件算法设计,影响软件开发效率,提高开发成本,同样也会使软件存在潜在的风险。AUTOSAR 是以软件分层和模块划分的方式实现软硬件分离的汽车开放式架构标准,将系统软件架构划分为应用软件层(APP)、基础软件层(BSW)和实时运行环境层(RTE)。如下图所示:
在电机控制系统中,与电机控制功能相关的电机控制算法、电机状态检测、安全监控等功能可作为应用程序与 AUTOSAR 架构中的应用软件层相对应,应用软件层中又将不同的功能模块以软件组件 SWC的形式进行封装,便于设计者的进一步开发。基础软件层对应于与电机控制相关的如控制器外设驱动、通信服务和中断服务等,将控制器硬件功能以模块化进行封装,有利于其在不用硬件平台间的移植。应用软件层与基础软件层之间的数据交流和服务调用则是通过实时运行环境层实现,RTE 相当于虚拟功能总线,使得开发者在设计应用软件时可以不必考虑底层硬件和通信网络,专注于功能软件的设计。下图为本文对电动汽车驱动电机 ECU 软件架构的分层设计。下文将在此架构的基础之上对每层软件进行详细设计。
四、应用层软件设计(ASW)
应用层软件是电机控制算法及其安全监控等功能的具体实现,需要先确定系统的输入和输出数据,系统所包含的软件组件 SWC 及其系统约束等。本系统的 ECU 即为电机控制器,并且根据相应功能可将其软件组件划分为:电机控制算法 SWC、数据解算 SWC、安全监控功能 SWC等软件组件,如图 2.3 所示,同时需要确定各软件组件的数据输入和输出以及软件组件之间的数据交流和服务调用。在应用软件层 APP 中,软件组件划分的目的是通过功能模块划分减少耦合,有利于系统软件的更新与升级。
完成各个软件组件设计后,需要设计其中的运行实体RE(Runnable Entity),运行实体是软件组件的最小代码片段,是软件组件功能的具体实现。其中,数据解算软件组件 SWC中,输入数据包括从基础软件层获得的电流采样、转子位置传感器信号等,需要通过电流计算、转速和转子位置解算的运行实体 RE 得到相应的电机相电流、转速和转子位置等信号。
应用软件层的设计是利用 Matlab/Simulink 环境建模,按照所设计的软件组件及其运行实体搭建模型,利用 Simulink/Configuration Parameters-Code Generation 进行相应配置生成软件代码,然后可在 Tasking 编译器中将相应的代码文件添加到系统工程中。
五、基础软件层设计(BSW)
本文以英飞凌 AURIX 系列三核单片机 TC297 为硬件开发平台,基于英飞凌底层驱动软件对系统基础软件层进行相关开发与设计。其中,AURIX 系列芯片是英飞凌推出的满足汽车行业标准(如 AUTOSAR 标准、ISO26262)的高性能 32 位微控制器,集成三个 CPU 内核,主频 300MHz,可应用于汽车发动机控制、电动/混合动力汽车、底盘、制动系统、电动助力转向系统和先进辅助驾驶系统等各类场合。本文选用的 TC297 单片机具有丰富的外设资源和强大的数据处理能力,完全可以满足车用电机控制需求。
系统与电机控制相关的控制器外设模块包括 CCU6、GTM、ADC、GPIO、ASCLIN等,主要用于实现 PWM 驱动、AD 采样、IO 信号输入输出、通信等功能。其中,CCU6是一个具有特定应用模式的16位高分辨率捕获和比较单元,主要用于AC驱动控制。特殊操作模式支持使用霍尔传感器或反电动势检测的无刷DC电机。
此外,支持多相电机的块整流和控制机制。它也支持同步启动几个定时器,这是包含多个CCU6模块的设备的一个重要特性。
永磁同步电机的控制需要六路 PWM波来驱动三相逆变器,则可以利用定时器 CCU6 的多路定时器T12输出模块生成三相六路中心对称的 PWM 波。另外,为满足三相电流的同步采样,还需一个定时器作为同步触发信号 Trigger 来触发 AD 采样,这样CCU6 模块一共需要T12、T13两个定时器。
VADC 模数转换模块包含 8 个独立的转换单元,每个转换单元含有 8 个输入采样通道,AD采样转换时间小于 1μs。在电机控制中,三相电流需进行同步采样,而 VADC 模块的同步转换功能可支持多达四个采样通道的同步转换。因此,可利用 VADC 的转换单元进行同步采样转换,以实现电机相电流的同步采样。同时,AD 采样频率也要与 PWM 频率一致,采用硬件触发 AD采样可以降低软件开销,减轻 CPU 负载率,则可利用上文 T13设计中预留的 Trigger作为触发信号触发 AD 采样。
底层驱动软件为 TC297 各个外设功能模块的寄存器配置以结构体和功能函数的形式进行封装,从一个定时器到三相驱动 PWM 波的产生,都可以通过手动编写寄存器实现,把相关 PWM输出的寄存器配置以结构体和功能函数的形式进行封装,供开发者调用,通过调用 CCU6 模块PWM 配置的结构体和函数,并将相关参数赋值,如频率、死区时间、互补通道对数等,即可完成对电机控制所需的 PWM 波配置。在进行 AD 电流采样配置时,利用 VADC 模块初始化函数可实现对 AD 采样的转换单元和采样通道的初始化配置,包括与电流采样相关的同步转换通道的设置以及 AD 采样结果中断的设置。
6、基运行时环境设计(RTE)