徽州骆驼 · 2022年08月26日 · 北京市

基于FlexRay总线的汽车电控系统单元设计

摘要

为了满足下一代汽车电子控制系统单元的成本,PCB空间对高性能、高可靠性和高稳定性的要求有限。本文设计了一个16位的飞思卡尔MCU MC9S12XF512作为汽车电控系统单元的主控芯片。它以FlexRay总线技术为基础,针对车身布局和车身控制要求。本文详细介绍了汽车电控系统结构单元的设计,包括控制模块的主控芯片、FlexRay总线通信模块及其外围电路的硬件设计和软件设计过程。通过实际设计和开发,制作了多个汽车电控系统单元,并通过软件编程实现了基于FlexRay总线的通信测试。该设计的控制单元具有独立的总线控制器,可以方便地与其他ECU连接进行高速数据传输。

I.简介

如今汽车电子技术发展越来越快,传统的汽车总线系统已经不能满足汽车高速传输的可靠性要求,随着汽车电子控制单元(ECU)的出现,多个子系统之间要共享的大容量数据信息要求越来越高,对汽车控制系统的信息传输的实时性和可靠性要求也越来越高。目前流行的汽车总线网络由LIN总线和can总线网络以及最新的FlexRay总线网络组成,而车载以太网总线网络只是被提及,目前还没有车载以太网,只有欧洲的几个机构开发,FlexRay网络在今天的实际应用还不成熟,在国内还不普及,而相对而言,车载网络总线中,CAN总线应用最广泛,应用技术也比较成熟和完善。

但在汽车电控系统中的一些重要环节,特别是对实时性要求极高的传输速度、安全性,汽车电控系统中的网络、CAN已经不能满足要求,所以基于FlexRay总线单元的汽车电控系统设计是非常有意义的。

基于FlexRay总线技术,本文设计了一个电子控制系统单元,可应用于网络系统中的车辆速度控制。

II.电控系统单元FlexRay通信模块的设计

基于FlexRay总线协议和FlexRay通信原理,该装置的电控系统设计主要由FlexRay总线收发器和微控制器、独立的总线接口和一些外围电路组成。一般的FlexRay通信系统是利用PCI芯片的FPGA模块来控制MFR4310,通过TJA1080芯片来实现FlexRay总线节点的数据传输,但这种FlexRay通信系统使用的体积较大,而且成本较高,硬件电路模块又比较复杂。因此,本文采用嵌入式由FlexRay总线接口控制器MC9S12XF512芯片和TJA1080ATS/2总线驱动电路及一些外围电路组成的汽车电控系统单元。作为一个独立的总线FlexRay通信调节器的MC9S12XF512微控制器芯片里面包含三个部分,分别是FlexRay通信控制器、速度12内核和独立总线控制器,FlexRay总线收发器TJA080ATS/2包含两个部分,分别是总线驱动模块和总线监控模块。FlexRay通信模块的硬件图如图1所示。

image.png

MC9S12XF512单片机是飞思卡尔嵌入式双路FLexRay V2.1系列的新型汽车单片机,包括高速、低功耗、高稳定性、低价格、小体积等特点,具有2路FlexRay。实践证明,采用MC9S12XF512和TJA1080ATS/2的FlexRay通信模块,外围扩展能力强,抗干扰能力强,体积小,并具有高性能、高可靠性和稳定性的特点。

电控系统单元的具体介绍,如图2所示。其主要由单片机控制的最小系统模块、双FlexRay总线收发电路模块、时钟模块、复位和BDM调试接口电路模块、电源模块和独立总线接口电路模块等组成。

image.png

A.FlexRay通信模块

FlexRay通信模块是由微控制器的单片机MC9S12XF512的FlexRay总线接口和NXP公司的双FlexRay收发器TJA1080ATS/2组成的电路和一些滤波电容电阻组成,本文为FlexRay总线通信模块设计了两条路,一条路是通过微控制器上的PH1和PH2、PH5、PJ5、PH3、PJ3的TXD引脚与FlexRay总线收发器,TXEN、RXD、RXEN、ENSTBN连接在一起,另一路是通过单片机PH4、PH5、PH6、PH7、PJ4、PJ6的六个端口引脚与另一个TJA1080ATS/2引脚连接在一起,两种方式由BP和PM引脚通过滤波电路分别连接到FlexRay总线的输出和FlexRay总线的B节点,两个节点实现FlexRay总线的数据通信。设计滤波电路是为了增加FlexRay总线通信模块的电磁干扰和抗干扰能力。

B.外围模块

外围模块包括时钟电路、电源电路和复位电路模块、BDM。

电源电路可以有很多方案,本文用LM2940搭建的电源电路,就是用来给微控制器、时钟、FlexRay总线收发器等提供电源电压。

时钟电路主要是给单芯片微控制器提供足够的时钟频率,使单芯片微机能够高速工作。

复位、BDM电路主要采用单片机的后台调试(Background was Debugging Mode,BDM)功能,不需要模拟器,可以实现所有硬件断点、条件断点、在线调试、总线调试,为单片机程序在总线上写入调试FlexRay提供方便。

C.独立总线接口模块

独立总线接口模块主要是将单片机与外部传感器、执行器等连接,独立总线接口电路主要实现驱动、总线信号匹配功能。

III.电控系统单元的软件设计

本文中汽车电控系统单元的设计,其应用软件主要是在MC9S12XF512芯片上编写的。对每个电子控制单元的FlexRay总线通信进行开发编程,默认的FlexRay触发方式是基于时间触发的总线通信。微控制器可以通过轮询或中断驱动的方式发出相应指令,供内部FlexRay控制器进行数据处理。图3是一个完整的FlexRay总线通信单元开发编程层次结构。

image.png

图3 FlexRay总线通信单元开发与编程结构

本设计将网络中的电子控制系统单元在FlexRay车体中按照规则集和FlexRay总线协议的要求,将数据时隙规则定期发送给FlexRay总线节点,同时,根据需要获得所需的FlexRay总线节点时隙数据。虽然每个电控系统单元的程序不尽相同,但在FlexRay通信模块的设置和初始化方面的通用功能是一致的,可以分为:初始化设置、发送数据、接收数据。

A.初始化程序

初始化模块包含锁相环(PLL)初始化模块、FlexRay系统初始化模块、实时中断模块初始化和FlexRay系统时钟模块初始化以及输入/输出模块初始化。汽车电控系统单元在中断驱动模式下,其FlexRay系统初始化模块包括:FlexRay控制器可以强制进入节点配置状态,初始化FlexRay控制器的协议配置参数,初始化所有消息缓冲区,设置回调函数、定时器,结束节点配置状态,初始化启动,初始化消息缓冲区为0,启动,启动定时器T1,启动定时器T2的相应中断等。FlexRay的初始化流程图如图4所示。

image.png

图4 FlexRay初始化流程图单元

B.发送数据程序

初始化微控制器和FlexRay模块成功后,可以用它来发送或接收相应的FlexRay节点ID插槽数据信息。微控制器通过FlexRay总线收发器节点准确地提供具体信息实施过程:单片微控制器将根据FlexRay协议的数据格式发送每个时隙的一个ID号数据信息,发送时隙的数据信息写入缓存区;将开始发送的功能指令、时隙节点信息发送至总线。FlexRay的数据流程图如图5所示。

image.png

图5 FlexRay数据传输流程图

image.png

图6 FlexRay数据接收流程图

C.接收数据程序

FlexRay的数据时隙接收节点既可以在旋转驱动模式下训练,也可以在中断驱动模式下工作,本文设定的电子控制单元工作在中断驱动模式下接收数据,例如[7]。FlexRay接收数据的流程图如图6所示。

IV.汽车电控系统单元通信测试结果的分析

在汽车电控系统单元的设计中,两个电控系统单元通过FlexRay通信模块连接到FlexRay节点,实现了FlexRay总线的数据发送和接收测试。当给予+12v电压使其工作时,FlexRay总线节点中的两个电控系统单元分别按照设定的ID和CRC发送和接收相应的测试数据。

在这两个电子控制系统单元的FlexRay通信中,使用示波器的波形有节点总线,因为FlexRay总线是双绞线,两个BM和BP的FlexRay总线连接是差异信号,提供

双轨示波器来比较这两个测试,其波形图见下图7。

image.png

图7 FlexRay通信节点波形图

在狭小时间里,得到了如图8所示的部分波形图。

image.png

图8 FlexRay总线通信数据帧部分波形图

V.总结

实践证明,本设计基于FlexRay总线技术,以MC9S12XF512为核心的汽车车身电控系统单元体积小、功耗低、稳定性高、价格便宜。特别是FlexRay数据通信具有更高的传输速度,更高的可靠性和稳定性,以及更好的抗干扰能力。

微控制器的设计采用了协同处理器,它可以为任何外围模块服务,这些无疑减轻了CPU的工作负担,使电子控制系统单元能够在重负荷下正常运行。但是,电子控制系统单元还需要进一步的研究和改进,如果投入到实际的汽车应用中,通信网络的应用、数据监控和数据存储的动态部分还需要进一步研究和改进。

作者:Jie Liu
来源:公众号:智能汽车开发者平台

推荐阅读:

更多汽车电子干货请关注汽车电子与软件专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
5706
内容数
441
汽车电子与软件行业的相关技术报道及解读。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息