何丹丹, 叶小平, 崔书超, 孙 灿
(北京汽车研究总院,北京101300)
网关控制器平台化设计
何丹丹, 叶小平, 崔书超, 孙 灿
(北京汽车研究总院,北京101300)
网关控制器实现车内不同网段电控单元之间的数据转发.传统的网关控制器中,任何数据变更,均会导致控制器内部软件的调整,影响整车的开发周期和成本.本文设计的网关控制器的通道使能配置、采样点控制参数、传输速率设置和网络数据转发路由表存储在非易失存储器中,网关控制器上电初始化或复位后,从非易失存储器中获取CAN通道配置参数和数据转发路由表,实现网络数据转发功能.非易失性存储器中的通道配置参数和数据转发路由表可通过诊断设备动态更新,实现不同网关控制器的数据转发功能,进而实现网关控制器的平台化设计.
网关控制器;配置参数;数据转发路由表;非易失存储器
网关控制器实现整车不同网段的通信数据转发.不同车型网关控制器CAN通道数量、传输速率、采样点或转发数据存在差异,网关控制器均需要重新独立开发;新车型在研发初始阶段,一般采用现有的车型进行改制,电控单元数量的增减及数据接口定义的变化都会导致不同网段间转发数据的变更,网关控制器需要进行软件更新;在整车开发阶段,车内电控单元的控制策略依据试验结果进行调整,网段间转发数据随之变更,网关控制器需要进行软件更新.无论是网关控制器重新开发还是软件更新都会增加整车开发成本和周期,并且变更后需要重新进行测试验证,在人力成本上也造成了极大的浪费,延缓了整车开发进度[1].
平台化网关控制器设计支持多路CAN通道之间的通信数据转发,CAN通道的使能配置、采样点控制参数、传输速率设置和数据转发路由表都存储在非易失性存储器中,且可通过诊断设备进行动态更新.在重新上电或诊断复位后,网关控制器读取非易失性存储器中CAN通道配置信息和数据转发路由表,实现数据转发功能.网关控制器平台化设计方案实现网关控制器CAN通道数目的可调性,通道传输速率和采样点的可配置性,数据转发的可动态变更性,进而实现网关控制器通用性的平台化设计.
网关控制器硬件设计系统框图如图1所示.
图1 网关控制器硬件设计系统框图
图中:控制器的MCU芯片Freescale MPC5604C支持6路CAN通道,1路作为诊断CAN通道,用于网关控制器与诊断设备之间的信息交互;3路CAN通道连接整车不同的CAN网段,用于实现通信数据转发功能;另外2路CAN通道作为预留接口,且其中1路为容错CAN接口(CAN收发器TJA1053),以兼容具有容错CAN网段的车型.系统基础芯片NXP UJA1076实现MPC5604C和CAN收发器TJA1042的电源管理和看门狗定时管理,其内部集成的高速CAN收发器用于诊断CAN通道数据的发送与接收.非易失性存储器芯片ST M95080(EEPROM)最大存储容量达8 kbit,为网关控制器数据存储扩展预留足够的空间.MPC5604C与EEPROM之间采用SPI总线传输数据,有效保证了CAN通道配置数据和数据转发路由表的读取时间,将网关控制器系统初始化过程控制在整车控制器启动允许的时间范围内[2].
3.1 网关初始化程序
网关控制器在上电或复位后执行初始化程序,网关控制器从EEPROM中读取CAN通道配置信息判断CAN通道使能状态,初始化使能CAN通道的底层寄存器,实现CAN通道的参数配置和传输速率设置.所有使能CAN通道初始化完成后,网关控制器将对应的数据转发路由表读取到MCU内部存储器中,用于数据转发路由表的快速查询,提高数据转发效率[3].
3.2 网关应用主程序
网关控制器应用主程序包含CAN通道数据检测控制程序和EEPROM数据更新处理程序,CAN通道数据检测控制程序实现CAN通道数据检测和数据转发,EEPROM数据更新处理程序实现CAN通道配置参数和数据转发路由表存储数据的更新.
3.2.1 CAN通道数据检测控制程序
平台化网关控制器数据转发基于报文路由方式实现,不进行报文信号的提取与重组,通过检测CAN通道接收报文ID确定报文转发目标网段.报文路由方式有利于整车电控单元通用化接口设计,便于整车平台化架构设计实现,随着网络通信速率的提高和网络传输可靠性的提升,其逐渐成为网关控制器实现通信数据转发功能的设计趋势.
网关控制器CAN通道数据检测控制程序依次检测CAN1、CAN2和CAN3通道,检测周期10 ms,若检测的CAN通道为使能状态,则逐一读取该通道报文接收缓冲区中报文ID,并在该通道相关的数据转发路由表中检测报文ID,若检测到则将报文转发到数据路由表指定的CAN通道上,接收缓冲区中所有报文ID完成检测后,进入下一个CAN通道的数据检测控制流程.CAN1通道数据检测控制流程如图2所示,CAN2和CAN3通道处理方式与其相同.
图2 CAN1通道数据检测控制流程图
3.2.2 EEPROM数据更新处理程序
EEPROM数据更新处理程序实现网关控制器与诊断设备之间的信息交互,完成CAN通道配置数据和数据转发路由表存储数据的更新.诊断设备对网关控制器EEPROM存储数据更新流程如下:
1)诊断设备使网关控制器进入扩展会话(0x10 0x03),网关控制器回复肯定响应(0x50 0x03 P2server, P2*server),若回复否定响应则直接退出EEPROM数据更新流程;
2)诊断设备使网关控制器进行安全访问解密(0x27 0x01/0x27 0x02 key1, key2, key3, key4),网关控制器回复肯定响应(0x67 0x01/0x02)完成安全访问验证,若回复否定响应则直接退出EEPROM数据更新流程;
3)诊断设备写入网关控制器CAN通道配置参数(0x2E 0x66 0x10 Configuration Parameters),网关控制器回复肯定响应(0x6E 0x66 0x10),并将通道配置参数存储到EEPROM中;
4)诊断设备更新数据转发路由表(0x2E 0x66 0x1X Routing Data Table),数据转发路由表对应的CAN通道配置为使能状态,网关控制器回复肯定响应(0x6E 0x66 0x1X),并将数据转发路由表存储到EEPROM中,若CAN通道为非使能状态,网关控制器回复否定响应码0x31,其中X=1..6;
5)诊断设备复位网关控制器(0x11 0x01),网关控制器回复肯定响应(0x51 0x01)并执行网关控制器复位操作;
6)网关控制器复位完成后进入初始化程序,从EEPROM中读取CAN通道配置参数和数据转发路由表更新网关数据转发功能.
网关控制器根据数据标识符访问EEPROM中CAN通道配置参数和数据转发路由表,网关控制器数据标识符分配如表1所示.
表1 数据标识符分配列表
CAN通道配置参数定义如表2所示.Byte0~Byte2定义CAN1~CAN3通道的使能状态位(Enable)、标称位时间(NBT)和传播段(ProSEG);Byte3~Byte5定义CAN1~CAN3通道的传输速率.
表2 CAN通道配置参数表
注:E-传输速率物理值;N-传输速率网络传输逻辑值.
网关控制器获取CAN通道配置参数并对使能CAN通道控制寄存器进行配置,以设置指定的传输速率和采样点.CAN通道采样点计算公式如下:
(1)
(2)
式(1)中:NBT为标称位时间;ProSEG为传播段;PSEG1为相位缓冲段1;PSEG1的计算公式如公式(2)所示. 若CAN通道配置信息中的参数NBT或ProSEG设置为0,网关控制器内部软件默认设置采样点75%.
每个CAN通道数据转发路由表占用40 Byte的存储空间,一条报文ID占用2 Byte用于存储CAN标准帧的11位ID,数据转发路由表最大可支持20条报文路由,为网关控制器转发数据功能预留足够的扩展空间.
网关控制器功能验证通过测试用例验证平台化网关控制器实现.验证测试用例中网关控制器目标状态:3路CAN通道均设置为使能状态, CAN1通道连接娱乐CAN,传输速率500 kbps,采样点80%;CAN2通道连接动力CAN,传输速率500 kbps,采样点80%;CAN3通道连接车身CAN,传输速率125 kbps,采样点75%.网关控制器在CAN2通道上接收到报文0x1A0、0x280和0x311,其中报文0x280是发动机控制单元与车身控制器认证报文,需转发到CAN3通道上,报文0x1A0和0x311是发动机转速和车速的报文,用于仪表显示和车身控制器策略判断,需转发到CAN1和CAN3通道上.诊断设备依据网关控制器的目标状态更新EEPROM中的CAN通道配置参数和数据转发路由表,网关控制器复位后读取EEPROM中存储数据完成初始化过程并开始报文检测.网关控制器在CAN2通道接收到报文0x1A0、0x280和0x311后,依次检测CAN2→CAN1和CAN2→CAN3数据转发路由表,报文0x1A0和0x311在CAN2→CAN1路由表和CAN2→CAN3路由表中检测到,则将报文0x1A0和0x311分别转发到CAN1通道和CAN3通道上,报文0x280在CAN2→CAN3路由表中检测到,则将报文0x280转发到CAN3通道上.网关控制器功能验证如图3所示.
图3 网关控制器功能验证图
平台化网关控制器将CAN通道使能配置、采样点控制参数、传输速率设置和网络数据转发路由表存储在非易失存储器中,网关控制器初始化过程中,将CAN通道配置参数和使能的CAN通道的数据转发路由表读取到应用软件内部实现数据转发功能,非易失存储器中,CAN通道配置参数和数据转发路由表可通过诊断设备动态更新,上述方式实现了网关控制器数据的可更新性,增加了网关控制器功能实现的灵活性,实现了不同车型上网关控制器的通用性,有效的降低了整车开发成本,缩短了整车开发和验证周期.
[1] 秦贵和. 车上网络技术[M]. 北京: 机械工业出版社, 2003.
[2] 周润景, 袁伟亭. 高速电路板设计与仿真[M]. 北京: 电子工业出版社, 2006.
[3] 邵贝贝. 单片机嵌入式应用的在线开发方法[M]. 北京: 清华大学出版社, 2004.
Platform Design of Gateway Controller
HE Dan-dan, YE Xiao-ping, CUI Shu-chao, SUN Can
(Beijing Automotive Technology Center, Beijing 101300)
A gateway controller unit (GCU) realizes the data forwarding between the units of different network segments in a vehicle. In a traditional GCU, any data change will cause the adjustment in the controller software architecture, affecting the development cost and research cycle of the vehicle. According to the design idea, the CAN channel-enable configuration, the sample-point control parameter, the transmission baud-rate setting and the network data forwarding routing table of the GCU are all stored in a non-volatile memory. After each GCU is powered-on for initialization or for reset, the CAN channel configuration parameters and data forwarding routing table are obtained from the non-volatile memory, implementing the function of network data forwarding. The parameters and the table can be dynamically updated, realizing the data forwarding function of different gateway controllers and the platform design of the gateway controller.
gateway controller unit (GCU); configuration parameters; data forwarding routing table; non-volatile memory
1009-4687(2017)02-0018-04
2016-12-6
何丹丹(1982-),女,硕士,研究方向为整车电器系统设计.
U472.7
A