基于CAN总线和STM32的FSAE赛车控制与显示系统设计*

2021-12-22 06:29陈斌施伟魏垂浩解国林
数字技术与应用 2021年11期
关键词:赛车串口总线

陈斌 施伟 魏垂浩 解国林

1.扬州工业职业技术学院创新创业学院;2.江苏汽车技师学院汽车工程学院

本次设计依据FSAE赛车实际运行测试中的需求,论述了一种基于CAN总线通信和STM32F103ZET6的赛车控制与显示系统的设计方案,包括系统硬件设计、软件程序开发、硬件电路板的制作与系统调试等方面。测试结果表明系统可通过各个模块的配合实现对发动机控制单元及电机的精确控制,具有相应速度快、定位误差小、运行较为稳定等特点。

0 引言

大学生方程式汽车赛事是一项以各大高校汽车专业在校生组成一支团队共同参与的赛车设计与制造竞赛。FSAE赛车未来的发展趋势是动力性能更为优越、操纵稳定性更好、结构轻量化、成本最低化,并且更加注重赛车的节能与环保。随着各大高校车队之间的竞争不断加剧,研制性能优良的赛车控制与显示系统能让赛车手更好地了解赛车的行驶状态,在比赛中为车队提供更多的优势[1]。

1 系统硬件模块总体设计

根据FSAE赛车实际运行测试中的需求,本次系统的硬件模块设计的主芯片采取ST公司的STM32F103ZET6芯片,并配置相应的外设实现报文ID的采集、传输与显示功能。赛车显示与控制系统需要显示赛车行驶速度、发动机转速、水温、蓄电池电压和档位信号等赛车数据,这些信息主要通过以下两种方式进行通讯:一部分是对Motoc M84传递过来的数据进行筛选,由CAN总线将发动机相关数据信息传递到STM32进行处理,待信号处理完成后发送给显示模块;另一部分由独立线束连接,通过档位传感器采集相关信号输出档位信息,如图1所示为仪表硬件总体结构图。

图1 赛车仪表硬件结构图Fig.1 Hardware structure diagram of racing instrument

1.1 STM32主控电路的设计

主控芯片是赛车控制与显示系统的核心部件,本次设计选用了ST公司的STM32F103ZET6微处理器作为系统的核心控制器。主芯片工作频率高达72MHz,内设有高速存储器、通用16位定时器、SPI接口等,此外,其还包含标准和先进的通信接口:CAN总线接口、USART接口和SDIO接口等,进一步简化了外设电路的设计[2]。

1.2 微控制器外围电路设计

1.2.1 电源供电模块设计

赛车上蓄电池的电源电压为12V,而本次设计采用的元器件分别是以5V和3.3V进行供电工作的,所以在设计时需要考虑电平转换,将12V电压转换成5V电压时,此次选用了一款高效率同步直流对直流降压转换器RT7272B,如图2所示。电路中采用了瞬态抑制二极管SMAJ5.0CA,其输出的5V电压经过低压差稳压器AMS 1117-3.3转换成3.3V电压,从而给元器件供电。

图2 电源供电模块电路原理图Fig.2 Schematic diagram of power supply module circuit

1.2.2 CAN接口模块设计

CAN接口电路作为发动机控制模块与STM32进行信息交互的通讯接口,它的设计好坏将直接影响实际运行中信息通信的稳定性与实用性。本次设计CAN总线接口的收发器选用的是TJA1050,它是一款由恩智浦半导体公司生产的带隔离功能的高速CAN收发器芯片[3]。本次系统CAN总线通讯使用差分信号进行信号传递,且每个节点设置了一个120Ω的电阻,以增强总线传输的稳定性和抗干扰能力,从而降低数据传输中的出错率,该硬件电路设计如图3所示。

图3 CAN接口硬件电路图Fig.3 CAN interface hardware circuit diagram

1.2.3 外接智能串口显示屏的电路设计

为了使驾驶员能更直观的了解赛车的具体车况,本次设计采用选用深圳淘晶驰电子有限公司的智能串口屏TJC8048T050_ 011R。为了与显示系统的电平匹配,这里选用+5V电源供电系统[4]。

由于所选用的智能显示屏自带显示和触屏驱动电路,并对外提供连接插,其相关参数如表1所示。因此,此次设计的硬件电路图只需用排针将芯片的控制及数据引脚接出即可,如图4所示。

表1 工作环境和可靠性参数数据表Tab.1 Working environment and reliability parameter data table

图4 外接智能串口显示屏(USART HMI)接口的电路原理图Fig.4 Circuit schematic diagram of external smart serial port display (USARTHMI) interface

1.3 挡位显示器的设计制作

由于本次赛车采用的发动机是CBR600CC,因此在本次采用开关式挡位显示器,本装置由以下几部分组成,它们分别是挡位检测开关、编码电路、BCD-7段字形译码电路、数码管等,如图5所示。档位传感器根据赛车所处的挡位,接触所对应的接点0~5,通过SW1、D1、D2、D3、D4组成了如图所示的编码电路,得到相应的BCD反码。经过74LS47译码器输出7段字形码电平来驱动数码管,将对应的挡位数字显示出来。

图5 档位显示器电路原理图Fig.5 Schematic diagram of gear display circuit

1.4 PCB板设计

在AltiumDesigner14.0的软件环境下对电路原理图和PCB板图进行绘制,为考虑其元件的布局和排放是否合理,用软件的3D显示功能来进行检查,从而尽可能减少因元件布局不当造成的失误。

2 系统软件开发

2.1 设计原则及流程

本次软件设计核心思路在于接收MotoC M84发动机控制模块发送的CAN数据包,采集需要显示车速、转速、水温、电池电压的数据,并将实时数据传输给智能串口屏,从而让驾驶员直观的了解赛车的具体车况。整个程序编写设计的流程如下[5]:

(1)根据赛车实际运行过程中显示的需求,合理规划设计任务,确保能够完成赛车实际运行时数据的采集与显示功能。(2)根据设计方案确定主控芯片的外设并设置其工作模式,调用相应的库函数实现底层基础硬件的配置。(3)根据所选发动机控制单元的通讯协议的相关内容,编写相关的通信协议栈代码。(4)在智能串口屏的USART HMI上位机软件编译相关程序。(5)将相应的部件匹配完成后,进行调试工作,使之协调工作,达到预期功能。

2.2 基于STM32F103ZET6的系统主程序设计

ECU接收传感器的信号进行运算处理,集成一个数据包供后期主控芯片采集数据时使用,由于Can通讯协议中包含有176位数据ID,其中所需要了解的赛车车况的数据信息有:车速、转速、发动机温度、蓄电池电压、档位信号等。因此,在编写主程序时,需要考虑从若干数据包中采集与核实相关数据的ID,由Motoc M84的Can通讯协议可知,转速(RPM)的ID为4∶5,发动机温度(Engine Temperature)的ID为12∶13,蓄电池电压(Battery Voltage)的ID是48∶49,车速(Drive Speed)的ID是60∶61,在编写主程序时,将相关的库函数头文件调用申明写在其中,相应的主程序编写如图6所示。

图6 主函数代码Fig.6 Main function code

3 系统硬件性能测试

在测试过程中,发动机控制模块会将从发动机运行中的实际数据信息进行处理,并发出一个176字节的数据包,此时所设计的系统即可用主控芯片STM32通过CAN总线通讯从发送过来的这些数据包中进行筛选,采集实际所需的数据ID。当采集到赛车实际所需的相关数据后传输到智能显示屏做出相应的显示。

4 总结

本次设计根据FSAE赛车实际运行测试中的需求,论述了一种基于CAN总线通信和STM32的赛车控制与显示系统的设计与研究,在系统各模块硬件电路设计基础上,编写了从MotoC M84发动机控制模块采集数据的CAN总线收发程序,实现了对USART HMI智能串口屏等仪表关键器件的控制测试结果表明系统可通过各个模块的配合实现对发动机控制单元及电机的精确控制,具有相应速度快、定位误差小、运行较为稳定等特点。

猜你喜欢
赛车串口总线
赛车
浅谈AB PLC串口跟RFID传感器的通讯应用
云上赛车
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
加油吧,赛车!
我家的小赛车
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
多通道ARINC429总线检查仪