ESP概念EPS功能框图和接口定义

张开发
2026/4/13 5:14:01 15 分钟阅读

分享文章

ESP概念EPS功能框图和接口定义
汽车EPSEPS基本概念首先EPS是英文Electoric Power Steering 的缩写也就是电动势转向系统区别于传统的机械式转向直接通过电控来助力转向在汽车的架势中转向系统是汽车在行驶过程中非常重要的系统之一能够影响汽车的性能具体EPS如下图所示。汽车的转向系统经历了几个发展时期具体如下所示。机械转向早期的机械转向当时系统没有任何辅助全靠机械连接这个时期对于驾驶员力气有着要求液压转向通过使用液压系统来减少驾驶员操控方向盘的力气但是这种转向仍然存在效率跟环境问题也就是在液压系统运转时会消耗发动机马力同时当液压油泄露的时候会污染环境。电控液压助力转向通过结合电子系统来控制转向效率但是存在复杂性跟成本问题但是这种技术仍在没有解决液压系统的能耗问题。电控助力转向采用电机提供精确的转向助力同时提高系统的效率跟可靠性。ESP基本结构具体的转向系统实物图如下图所示。转向系统的首先是方向盘然后再到扭矩传感器来测量当前方向盘的方向跟力矩将这个机械信号转换为电信号给到下面的ECU同时ECU接受当前信号跟车速信号来输出数据控制电机来影响车的转向这些数据的输入跟输出在ECU内是要通过算法函数进行转换的具体的系统功能如下图所示。EPS电机安装位置根据助力电机位置的安装位置不同EPS系统也被称为不同的名称EPS主要分为转向管注意力EPS、小齿轮助力EPS、齿条式助力EPS对应的电机安装位置具体如下图所示。EPS处理方向盘输入信号逻辑EPS系统是一个典型的电机一体化闭环控制系统类似于PID调剂这个系统通过内置算法对当前输入数据进行调节然后进行输出。扭矩传感器实时检测方向盘操作力矩跟转向方向将方向盘的机械信号转化为电信号主流转换传感器包含接触式跟非接触式后者因为无磨损逐渐成为主流。车速传感器发送关键的车速信号给ECU让ECU进行数据计算转换为电机驱动控制信号。电子控制单元ECU内置助力特性曲线将该曲线转换为程序收集传感器发送数据将该数据经过函数转换通过PID控制算法实时调节数据输出保证电机在转向的稳定控制。减速电机通过涡轮杠杆或行星齿轮将电机扭矩进行放大5-20倍然后传递给机构。EPS功能规范EPS常用功能随速转向助力不同车速下EPS系统回馈不同的转向助力低速大转向高速低转向保证车身的稳定性。主动回正当方向盘松开时通过电机事假扭矩来让方向盘主动会正到中心位置。阻尼控制主要应用于主动回正高速转向提高转向的稳定性回正性。摩擦补偿用来补偿机械摩擦保证转向力的舒适性保证机械摩擦对手感的降低。惯性补偿用来改善电机硬气的惯性感提高应答性。主控芯片使用RH的芯片来作为主控然后内置EMC芯片来抗电磁干扰然后还有一块内置的ASIC芯片为了满足IOS26262法规具体的电气原理图简图如下图所示。然后EPS会接收ABS的轮速信息跟车辆的横摆角速度、加速度、汽车档位、油门档位等等数据来完成数据的转换。功能状态管理EPS唤醒状态当EPS的IGN信号为ON的时候系统进入唤醒状态。EPS睡眠状态当IGN信号为OFF同时车速小于7跟没有启动信号的时候EPS进入断电同时辅助电源保持10s之后辅助电源关闭直到下一个点火周期。S32K144GPIO配置S32DS软件配置GPIO介绍芯片外设的GPIO分别不同的端口(Port)每个端口下分配引脚也就是GPIO在芯片配置中以端口为大单位下每个小单位是引脚分别输出0跟1GPIO有着不同的配置的模式这里不在进行精讲解。S32DS对于S32芯片进行开发是通过S32DS内置的配置界面进行配置然后生成代码的类似于STM32的CubleMX这种配置软件进行的。S32DS对GPIO进行配置如果是头次下载S32DS需要再窗口里面将组件窗口打开具体如下图所示。在右边芯片的外设中找到GPIO然后选择需要配置的引脚。在选择到对应的引脚之后对Pin列右键选择对应引脚然后选择需要配置的输入跟输出具体如下图所示。然后这里配置了两个引脚具体如下图所示。然后需要注意的是如果需要配置GPIO中断或者需要配置GPIO的DMA、复用、上拉下拉、默认输出高低电平、这些需要再GPIO菜单中进行配置选择GPIO菜单具体介绍如下图所示。这里是引脚的上下拉、跟引脚的初始值。然后这里在对引脚配置完成之后会有*号显示代表配置没有保存这里需要ctrls进行保存然后再生成配置引脚的初始化代码具体如下图所示。然后选择左边的生成按钮进行生成具体如下图所示。然后这里等待生成完成就行了配置生成的代码放在工程文件中的 中能够进行查看。对应配置引脚生成代码文件。S32DS手写代码小技巧S32DS中手写逻辑代码如果使用到工程中的库函数文件IDE这边是不会进行提示的如果需要提示可以通过输入部分函数名字然后ctrl空格进行提示具体如下图所示。同时可以通过拖拽的方法将GPIO库函数文件进行拖拽到main.c中进行使用。然后Init函数中会自动填写对应GPIO的初始化Pin数量跟GPIO的外配置然后Pin数量的宏跟配置结构体都是配置代码生成的。然后这里拖拽Pin输出高低电平函数来对引脚的值进行配置输出电平。然后这里面的部分逻辑代码如下(PINS_DRV_ReadPins(PTC)12)0x01这行PINS_DRV_ReadPins读的是整个GPIO端口如果需要知道端口里面位对应引脚的数值需要按位运算来获取。CLOCK_SYS_Init(g_clockManConfigsArr, CLOCK_MANAGER_CONFIG_CNT,g_clockManCallbacksArr, CLOCK_MANAGER_CALLBACK_CNT); CLOCK_SYS_UpdateConfiguration(0U, CLOCK_MANAGER_POLICY_AGREEMENT);//更新时钟 delay_init(); PINS_DRV_Init(NUM_OF_CONFIGURED_PINS, g_pin_mux_InitConfigArr); PINS_DRV_WritePin(PTD,0,led_2_value); PINS_DRV_WritePin(PTD,1,0); PINS_DRV_WritePin(PTD,15,1); PINS_DRV_WritePin(PTD,16,1); while(1) { if((PINS_DRV_ReadPins(PTC)12)0x01) { //判断key1是否按下 delay_ms(50); if((PINS_DRV_ReadPins(PTC)12)0x01) { if(led_flag) { //让代码执行一次 led_flag0u; PINS_DRV_TogglePins(PTD,(10)|(11)|(115)|(116)); } } if((PINS_DRV_ReadPins(PTC)12)0x0) { led_flag1u; }然后PINS_DRV_TogglePins(PTD,(10)|(11)|(115)|(116))这行是对GPIO端口写入电平函数PINS_DRV_TogglePins是对整个端口写的需要将数据对应到引脚在的位这里也是使用按位运算俩进行的。然后这里编译工程进行烧录就行了。Enable Automatic重置GPIO配置在对GPIO的配置完成之后如果不需要使用这个引脚了想恢复这个引脚的默认配置只需要选中该引脚右键选择Enable Automatic就能够恢复引脚的默认配置。具体如下图所示S32DS调试功能介绍这里在烧录代码完成之后是默认进入调试页面的这个时候芯片程序不会进行运行如果需要终止调试点击这个按钮就行了其他的调试按键功能可以看以前的文章同时如果需要添加变量到窗口观看具体配置如下。添加变量到watch窗口观看选项。这个弹出的窗口里面输入变量的名字就行了。编写不易请勿搬运希望对你有所帮助

更多文章