基于STM32的无人驾驶电动方程式赛车整车控制器设计
2020-07-23闫丰雨杨善卿
闫丰雨 杨善卿
摘 要:使用STM32芯片、通讯芯片和电子开关器件完成整车控制器硬件设计,然后使用Matlab/Simulink完成整车控制器硬基础接口模块进行设计,最后通过STM公司的stm32MX cube编译软件直接生成可以满足控制器使用的应用层代码。而且该控制器配备了EBS模块,用于满足整个无人驾驶方程式赛车在执行无人任务时,保证整车安全。
关键词:无人驾驶;电动方程式;整车控制器
0 引言
整车控制器是整个纯电动无人驾驶方程式赛车的核心控制部件,整車控制器主要功能为运行智能算法,通过CAN总线通讯、RS485通讯、RS232串口通讯以及普通IO口通讯对整车的执行部件进行智能控制。EBS(紧急制动系统)则是通过监测整车的通讯状态、运行状态以及硬件的工作状态后对整车进行安全状态判断,做出主动处理,实现紧急制动,确保整车以及驾驶员的安全。整车控制器采用意法半导体的STM32F4系列的芯片STM32F405RGT6,内核为ARM Cortex-M4。内核处理速度高,车辆信息处理迅速。该芯片不仅内核主频高,而且还具有非常丰富的外设。例如有bxcan控制器,nvic中断控制器,串口,DMA,SPI,IIC,GPIO等。针对控制器的要求会使用的功能主要集中在CAN通讯,串口通讯及DMA,GPIO等开关量控制。
1 硬件设计
1.1 通用I/O接口设计
丰富的输入输出接口增加了控制器的功能性。对整车的开关部件控制、传感器数据的采集、开关量数据的采集以及对PWM信号控制的舵机进行精准控制。
(1)输入接口主要包括模拟量输入与开关量输入,主要为了采集外部开关信号与模拟量的大小,满足整车控制信息采集与监测。
(2)输出接口主要为模拟量输出、开关量输出与PWM输出方式,为满足无人驾驶赛车的指示灯与开关控制,并且PWM信号可以满足无人驾驶方程式赛车上的制动舵机控制。
1.2 通讯模块设计
CAN通讯、485通讯和232通讯,多种通讯方式可以提高控制器的兼容性,方便匹配各种通讯方式的其他控制器来对整车进行控制。
1.3 紧急制动模块设计
(1)逻辑处理单元。主要由两个74系列或非门芯片对整车的供电状态进行监控,当发生故障时,该芯片通过逻辑判断出故障设备,并直接通过输出电平变化来驱动继电器控制电磁阀开关。直接触发紧急制动机械系统实现停车。电路原理图如图3所示:
(2)状态锁存单元。该装置不仅可以对故障进行判断处理,而且还可以将故障状态锁存住,只有将整车关闭后,修复故障,才可以解除安全状态。主要实现由三个双路继电器搭成的锁存电路,如图所示:
(3)自身供电保护单元。如果处于无人驾驶状态期间,EBS自身供电出现故障,将无法监测整车的安全状态。所以这种危险我们一定要进行处理。因此在该装置上添加了自身供电自检,并通过电容放电的方式来给EBS提供足够的能量实现整车断电并执行紧急停车。
(4)机械气缸制动驱动单元。当逻辑单元对故障判断后,会输出相应的错误电平控制继电器电平变化,驱动电磁阀触发气缸,实现紧急停车。
有人驾驶时,该装置不参与紧急制动的控制,完全由人对整车的制动状态进行控制。所以通过继电器来将有人与无人驾驶状态区分开,防止该装置紧急停车后,对驾驶员的操纵性影响。
(5)EBS装置的特性。实时性:该装置从整车进入无人驾驶状态,实时对整车的硬件电路、通讯状态进行监控。快速性:机械部分采用高压气体带动气缸工作,硬件部分使用电磁阀控制开关。保证了该装置的实时性。安全性:为防止硬件板自身供电故障,加入了自身安全检查,当自身故障时同时可以实现紧急停车,大大提高了该装置的安全性。机械执行机构:紧急制动系统的机械部分,由高压气瓶提供制动的能量,气缸作为执行机构,拉动制动踏板瞬间抱死四个车轮实现紧急制动。
1.4 数据采集模块设计
数据采集模块主要是为了满足我们无人驾驶赛车正常行驶过程中的数据记录,方便整个车辆控制算法的验证与调试。
本设计采用Nand Flash存储器K9F1G08UOB芯片,我们使用FAT文件系统进行存储数据。
存储的数据在车辆运行结束后,使用USB接口将数据传输到电脑上位机中,也可以将数据存储在内存中,通过excel表格的形式存储。然后我们直接从内存中调取表格中的数据,在电脑中显示。
2 软件设计
基础软件接口模块设计主要根据硬件要求,使用MATLAB/Simulink封装成simulink基础模块并且安装在simulink库中,接口主要包括通用输入输出接口、串行通讯接口、CAN通讯接口。
我们使用STM32MX cube和Simulink联合生成控制器标准代码,首先我们在STM32MX cube软件中将芯片的各个引脚功能定义完成,接下来配置时钟模块,根据系统工作要求我们选用72MHZ的最大时钟频率。整个功能配置完成之后我们使用simulink加载配置文件,然后使用simulink将各个引脚封装成基础模块。最后直接通过存库的方式将这些基础模块封装成库安装在simulink中方便用户使用。我们还为EBS、数据采集与USB通讯设计了几个直接可以调用的基础模块,这样方便后期使用,缩短开发周期。
3 结束语
(1)该控制器在满足无人驾驶方程式赛车的整车控制功能以外,还将EBS功能与数据采集功能集成在一个控制器内部,这样设计节省了空间,提高了控制器性能。
(2)数据采集功能为调车工作提供了大量的数据支持,通过采集到的数据,我们可以快速定位算法的问题所在,并且解决它。
参考文献:
[1]付文杰.基于自动代码生成的低速柴油机电控系统软件设计[D].哈尔滨工程大学,2019.
[2]陈攀,张承瑞,罗映.利用MATLAB/RTW的嵌入式代码自动生成与整合[J].小型微型计算机系统,2018,39(04):738-741.
[3]洪晓君,朱磊.基于MATLAB/RTWEC自动代码生成技术整车控制器快速原型开发[J].机电一体化,2014,20(08):47-52.
[4]熊宇舟,刘平,杨嘉陵.新的基于全自动代码模型设计的整车控制器软件开发方法[J].电子测量技术,2018,41(24):127-133.
[5]许保同,杨国亮,吴奇.基于Simulink的纯电动汽车VCU控制策略设计方法[J].汽车工程师,2016(05):19-21.
作者简介:闫丰雨(1995-),男,黑龙江克山人,研究生在读,研究方向:纯电动汽车控制与驱动控制。