智能驾驶硬件计算平台及CAN通信软件设计

2022-07-21 20:17李升凯吴长水
软件工程 2022年7期

李升凯 吴长水

摘  要:为了给智能驾驶功能软件提供高算力、实时性强、接口丰富的软硬件解决方案,以实现超声波和视觉融合泊车为硬件平台开发目标,选取TI的TDA系列作为平台系统级芯片,选取英飞凌的TC277芯片作为实时控制芯片,设计了一款智能驾驶计算平台。所设计的硬件平台成功实现了12路超声波雷达、四路广角摄像头的数据采集,支持CAN、车载以太网、LIN通信。基于此硬件平台,按照AUTOSAR标准开发了计算平台与汽车底盘域控制器的高速CAN通信软件,可实现多报文周期性稳定收发,满足通信需求。本文所开发的智能驾驶计算平台为后续相关开发提供了基础。

关键词:智能驾驶;计算平台;TC277芯片;CAN通信;AUTOSAR

中图分类号:TP393     文献标识码:A

Intelligent Driving Hardware Computing Platform and

CAN Communication Software Design

LI Shengkai, WU Changshui

(School of Mechanical and Automotive Engineering, Shanghai University of Engineering Science, Shanghai 201620, China)

1443828638@qq.com; yantz_wu@163.com

Abstract: In order to provide software and hardware solutions with high computing power, strong real-time performance and rich interfaces for intelligent driving function software, this paper proposes to design an intelligent driving computing platform, which aims to realize the hardware platform development goal of parking with ultrasonic and visual fusion. TI's TDA (Texas Instruments' TDA) series is selected as the platform system-level chip, and Infineon's TC277 chip is used as a real-time control chip. The proposed hardware platform successfully realizes data acquisition of 12-channel ultrasonic radar and four-channel wide-angle camera, and it supports CAN (Controller Area Network), vehicle Ethernet, LIN (Local Interconnect Network) communication. Based on this hardware platform, the high-speed CAN communication software between the computing platform and the vehicle chassis domain controller is developed based on AUTOSAR standard, which realizes the periodic and stable sending and receiving of multiple messages, and meets the communication requirements. The proposed intelligent driving computing platform provides the basis for the follow-up related development.

Keywords: intelligent driving; computing platform; TC277 chip; CAN communication; AUTOSAR

1   引言(Introduction)

隨着智能驾驶的迅速发展,软件定义汽车的时代已经到来。传统汽车的分布式电子电气架构已不能满足软件快速更新迭代的要求,汽车电子电气架构由分布式向集中式发展,形成了以域为单位的计算及控制单元,大大简化了汽车以往复杂的内部电子电气架构[1]。

在此背景下,全球各大传统车企、新势力车企、零部件供应商、半导体供应商及软件公司开始投身于智能驾驶的开发。而智能驾驶计算平台作为智能驾驶领域的“大脑”,对其软硬件进行开发具有战略意义。智能驾驶计算平台是结合车辆线控平台和大量多类型传感器的核心,须具有多接口类型的特点。多传感器数据融合、人工智能算法等技术对计算平台的接口及算力都有着更高的要求,因此目前智能驾驶计算平台都采用异构多核芯片作为核心处理器[2]。市面上已量产的计算平台采用的核心处理器主要分为三个流派,即以英伟达、特斯拉、高通为代表的CPU+GPU+ASIC架构,以Mobileye、华为、地平线等为代表的CPU+ASIC架构,以百度、Waymo为代表的CPU+FPGA架构。本文以实现自动泊车功能为目标,选取TI的TDA2P及英飞凌的TC277为主控芯片,设计了一款高性能智能驾驶计算平台,并按照AUTOSAR标准开发了CAN通信软件,可实现基本的数据收发,为国内智能驾驶计算平台的开发提供了参考方案。

2 计算平台硬件设计(Computing platform hardware design)

2.1   开发目标

本文旨在开发一款基于视觉传感器和雷达传感器结合的智能驾驶计算平台,可支持多种ADAS(Advanced Driver Assistance System)功能、部分智能网联功能(L2+),实现包括主动安全系统、环视系统及自动泊车辅助系统的功能。主动安全系统采用前视摄像头和毫米波雷达作为感知层方案,环视系统采用环视摄像头方案,自动泊车辅助系统采用超声波和环视摄像头融合方案。本计算平台开发的功能如下:

(1)与车上其他控制器进行CAN/ETH通信,以实现数据的交互。

(2)具备多路车载摄像头采集接口,以实现多角度图像采集与处理。

(3)能够进行视频图像数据的输出,以实现人机交互。

(4)能够实现与12路超声波雷达的数据交互。

(5)能够实现与组合导航系统(IMU、RTK、GNSS高精度接收机)进行数据交互。

(6)能够实现与一路毫米波雷达进行数据交互。

(7)具备以太网接口,以实现与计算平台外部进行通信。

(8)支持两路LIN总线通信。

2.2   芯片选型

文本采用德州仪器的TDA2P视觉处理芯片进行复杂算法的执行及大量数据的计算,其采用多核异构的设计架构,既有助于视觉加速的EVE单元,又有助于数字信号处理的DSP,更重要的是其具备十分完善的基于嵌入式系统车载视觉系统技术开发的应用软件[3],为开发者提供完备的系统开发工具及必备的应用软件。采用英飞凌TC277芯片作为计算平台的控制芯片,该芯片具有三个处理核心,支持四路CAN通信、车载以太网通信、LIN通信,满足开发目标。此外为满足大量的数据处理需求,计算平台采用NXP公司的SJA1105五端口以太网交换机方案,实现了计算平台内部的高速通信,同时对外提供两路100 Mbits/s及一路千兆RJ45接口。

2.3   硬件电路架构

本文按照开发目标在完成芯片选型后设计了计算平台的硬件架构,如图1所示,以两块主控芯片为核心模块设计了数据采集、数据通信、显示、存储等各个子模块。

其中各处理器的主要任务如下:

(1)TDA2P负责完成自动泊车的数据融合、规划决策等算法运行、四路广角摄像头数据采集、组合定位系统数据采集及运行Linux等复杂操作系统。

(2)TC277负责完成控制算法、12路超声波雷达数据采集、与底盘域进行CAN通信等对实时性要求较高的任务。

在显示模块的设计中,设计了一路HDMI接口用来进行摄像头的调试,留有一路视频输出接口用于连接汽车中控大屏显示环视影像。在存储模块设计中,主要包含存储ROM及运行RAM的设计。由于TDA2P[4]支持多种方式启动,本文分别设计了eMMC及TF卡作为存储ROM。SOC芯片需运行复杂操作系统Linux、自动泊车的感知和规划决策算法,并采集处理大量摄像头数据,所以需外接大容量运行内存。本文对满足泊车功能所需的运行内存进行充分验证,最终得出结论,系统至少需提供1.1 GB的运行空间,才能保证泊车功能的正常运行。基于此,本文设计平台的运行内存为2 GB,选用MICRON公司的DDR3L-MT41K256M16TW芯片。TC277支持四路CAN通信,本文将四路都引出接口,一路用于和底盘域通信,其他几路用于诊断、标定及硬件在环测试。主控芯片通信方案按照冗余原则进行设计,采用了SPI、UART及车载以太网通信方式,为软件冗余设计提供了选择。

如图2所示为本文开发的智能驾驶计算平台实物,基于此硬件平台进行CAN软件设计并测试。

3  CAN通信软件设计(CAN communication software design)

3.1   CAN通信模块软件架构

按照AUTOSAR分层思想,本平台开发所涉及的CAN通信模块各层分布如图3所示,CAN Driver位于微控制器通信抽象层,CAN Interface位于通信硬件抽象层,PDU Router与AUTOSAR COM位于通信服务层,OSEK OS位于系统服务层,在通信模块中负责提供周期调度服务[5]。

CAN Driver位于通信功能模块最底层,是访问CAN硬件资源的唯一接口,主要负责设置通道的位速率、位定时参数及CAN控制器的工作模式,设定数据的存放位置,访问CAN模块相关寄存器等[6]。

CAN Interface将硬件资源抽象化,使得软硬件分离,其上层模块必须经过CAN Interface处理才能访问硬件[7]。

PDU Router主要起到过渡兼容的作用,根据I-PDU标识符实现其上层与下层不同模块之间信息的路由。此外,PDU Router还可提供网关功能,使得不同总线之间进行通信。本文按照AUTOSAR标准开发通信模块,目前仅限于与底盘域控制器进行CAN通信,所以PDU Router仅于COM层交互。

AUTOSAR COM主要起到信号接口与数据网关的作用,负责发送上层的信号组,解析从下层接收的数据并通知上层[8]。

3.2   CAN底层收发过程实现

在CAN发送模塊初始化后,具体的发送判断逻辑如图4所示。首先设置发送状态为CAN_OK,CPU判断发送请求标志位TXRQ是否为零,如果TXRQ置位则说明之前的报文因CAN总线繁忙或离线等问题未被发送,此时CPU需要将发送状态设置为CAN_BUSY。反之,TXRQ为零说明此时对应的报文对象处于可发送报文状态,CPU首先需清除报文有效状态位MSGVAL,Multican停止对报文对象的写访问,此时CPU可重新配置报文对象,不受Multican的干扰。接下来将要发送报文的报文数据、ID、DLC、IDE等信息赋值给报文对象控制寄存器,此时CPU将对应报文对象的新数据标志位NEWDAT置位以表明报文对象内容为新。设置完报文对象后要将报文有效状态位MSGVAL置位才能实现报文的发送,最后将发送请求控制位TXRQ置位实现报文的发送。因存在总线忙碌或断线的可能,本文设置发送等待次数最多为三次,最终将CAN帧的发送状态通过回调函数返回给CAN接口层再向上层通知,实现报文可靠发送。

如图5所示,当接收到新的CAN帧后接收挂起位RXPND被硬件置位进入中断程序,首先CPU需软件复位接收挂起位RXPND,接着判断新数据标志位NEWDAT是否置位,如果NEWDAT未置位表明此时查询的报文对象无数据更新,将返回接收状态为Recv_Empty;而如果NEWDAT置位则表明此报文对象接收到新的数据,接下来读取此报文对象的数据(数据场、报文ID、报文长度码DLC)到接收缓冲区,为了降低报文丢失的概率缓存报文对象的状态用于后续的数据一致性判断。由于在读取数据的过程中存在数据被再次开始更新的可能,使得最终读取到的接收缓冲区的数据是新旧数据的组合,这样会导致数据不一致,所以Multican具有保持其与CPU之间数据一致性的机制,通过联合判断NEWDAT和RXUPD状态位可有效解决数据不一致的问题。在读取数据后,要判断接受更新状态位RXUPD是否置位,如果置位表明此时发生了数据更新,需返回接收状态为报文丢失Msg_Lost;而如果RXUPD未发生置位,则表明刚刚读取到的接收缓冲区的数据有效,再检查报文丢失标志位MSGLST是否为零,如果MSGLST为零表明报文顺利接收,如果MSGLST置位表明报文数据丢失。最终将CAN帧的接收状态通过回调函数返回给CAN接口层再向上层通知,实现报文可靠接收。

4  计算平台CAN收发功能测试(CAN transceiver function test of computing platform)

此处采用虹科公司的CAN卡PCAN-USB对CAN通信电路及CAN通信软件进行功能测试。如图6所示为设备的实物图,此设备通过USB接口将PC连接到CAN网络,可用于监控CAN网络[9],发送、保存、过滤CAN报文,且价格较Vector工具链更低,满足本文测试CAN网络的需求。

本文定义收发报文各五条,如图7所示定义了各报文的ID、发送报文内容及发送周期。使用PCAN进行CAN报文的收发测试,如图8所示为IDE及PCAN-View上位机软件界面。先对本计算平台的CAN报文接收功能进行测试,使用PCAN-View分别周期性发送ID为0x106、0x107、0x108、0x109、0x110的CAN报文,在IDE中观测收到各报文的数量,由图8可知计算平台可保证报文不丢包。再对计算平台的CAN报文发送功能进行测试,如图8所示在PCAN-View软件中开启报文滤波,只接收ID为0x101、0x102、0x103、0x104、0x105的CAN报文,上位机软件可按定义的发送周期及内容接收来自计算平台发送的CAN报文。

5   结论(Conclusion)

本文以实现自动泊车为开发目标,设计了一款智能驾驶硬件计算平台,具有丰富的通信接口,可实现大量传感器数据的采集及复杂泊车算法的运行。基于此平台,按照AUTOSAR标准设计了CAN通信软件,经测试,可保证此计算平台与汽车底盘域控制器的CAN通信稳定运行,为后续智能驾驶计算平台的研发提供了基础。

参考文献(References)

[1] 冯晓辉,王哲,李雅琪.智能驾驶领域发展态势与展望[J].人工智能,2018(06):26-36.

[2] 王敏,付建宽,宗岩,等.高级别自动驾驶汽车计算平台综述[J].时代汽车,2021(22):30-32.

[3] 王振宇.基于TDA2x的疲劳驾驶监测及行为识别算法研究与应用[D].成都:电子科技大学,2021.

[4] SANKARAN J, ZORAN N. TDA2X, a SoC optimized for advanced driver assistance systems[C]// IEEE. International Conference on Acoustics, Speech and Signal Processing(ICASSP). Florence, Italy: IEEE, 2014:2204-2208.

[5] 董碧成,石春,吴刚.基于AUTOSAR的电动汽车中央控制单元CAN通信软件开发[J].仪表技术,2021(04):65-70.

[6] 宋波,王安军,王正树.符合AUTOSAR规范的MCU驱动设计和实现[J].汽车零部件,2011(03):55-56,60.

[7] 李艷明,倪永亮,李申,等.基于AUTOSAR标准的车辆电气系统CAN通信协议栈研究[J].计算机测量与控制,2017,25(11):239-243.

[8] 冯川,胡杰,颜伏伍,等.符合AUTOSAR标准的CAN底层通信研究[J].武汉理工大学学报(信息与管理工程版),2013,35(06):842-845,855.

[9] 余其涛.基于AUTOSAR标准的CAN通信栈设计与实现[D].上海:上海交通大学,2016.

作者简介:

李升凯(1996-),男,硕士生.研究领域:汽车电子嵌入式.

吴长水(1978-),男,博士,副教授.研究领域:汽车电子控制.