一文搞懂自动驾驶芯片TDA4 启动流程

这篇具有很好参考价值的文章主要介绍了一文搞懂自动驾驶芯片TDA4 启动流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

TDA4架构简介

TDA4是德州仪器推出的一款高性能、超异构的多核SoC,拥有ARM Cortex-R5F、ARM Cortex-A72、C66以及C71内核,可以部署AUTOSAR CP系统、HLOS(Linux或QNX)、图像处理以及深度学习等功能模块,从而满足ADAS对实时性、高运算能力、环境感知及深度学习等方面的需求。

TDA4凭借着出色的运算能力、有竞争性的价格,赢得了越来越多汽车主机厂以及零部件供应商的青睐。对于ADAS行业的从业人员或者对ADAS领域感兴趣的人都有必要来了解一下TDA4这颗芯片。

TDA4的架构如下图,可以分为MAIN域、MCU域和WKUP域(DMSC)。

MAIN域集成了2个A72核,4个R5F核,2个C66核和1个C71核。环境感知(图像感知和超声感知),传感器融合(图像和超声信号融合),智能驾驶算法(路径规划),深度学习等会部署到MAIN域,也就是智能驾驶的主要功能逻辑会部署到MAIN域。

一文搞懂自动驾驶芯片TDA4 启动流程,ADAS,域控制器,ADAS,智能驾驶,自动驾驶

TDA4启动流程

像这种多核异构SoC,启动过程相比MCU来说都比较复杂。SoC的成功启动是之后正常处理各种智能驾驶功能的基础,下面就来介绍一下TDA4的具体启动流程。

一文搞懂自动驾驶芯片TDA4 启动流程,ADAS,域控制器,ADAS,智能驾驶,自动驾驶

上图中的1和2是上电和上电复位(Power On Reset),3是启动之前SoC内部会做一个硬件电路自测(Built-in Self-Test)。4是DMSC内部的ROM程序,这部分程序对开发者不可见,是出厂时就固化在芯片内部的。

DMSC ROM阶段

DMSC ROM是上电后最先运行的程序,它的主要作用如下图紫色部分所示。配置看门狗、PLL时钟,基于启动模式配置防火墙,配置MCU安全代理、环形加速器,发送消息给MCU域的R5核告知其启动模式。最后释放MCU域R5核的Reset,此后MCU域R5核开始启动。

一文搞懂自动驾驶芯片TDA4 启动流程,ADAS,域控制器,ADAS,智能驾驶,自动驾驶

MCU域R5 ROM阶段

MCU域R5核启动之后运行的是R5核的ROM,也是固化在芯片内部的一段程序。下图的黄色部分显示了R5 ROM所做的事情,首先判断是否只启动MCU,由于我们需要启动MAIN域的A核、R5核及DSP核,所以MCU-only Boot的选择是No。

MCU域R5核会完成一些基础的引导工作,然后从启动模式PIN(SoC用来设置启动模式的PIN脚)获取启动模式(可以从OSPI, EMMC, UART等启动)。接下来MCU域R5核ROM会配置PLL以及初始化用来启动的外设(比如OSPI Flash,EMMC等),初始化之后才能从这些外部存储器中读取各个核的image。

之后MCU域R5核ROM会从OSPI Flash中读取SBL的image文件并load到RAM中,然后请求DMSC的ROM去校验SBL image的完整性。如果校验通过,DMSC会重启MCU域R5核,此时MCU域R5核开始执行SBL程序。

一文搞懂自动驾驶芯片TDA4 启动流程,ADAS,域控制器,ADAS,智能驾驶,自动驾驶

SBL阶段

下图是SBL的执行过程以及与DMSC的交互。

SBL首先会加载DMSC的firmware,这个firmware是DMSC最终会执行的程序,它主要提供一些SCI的服务给MCU域和主域,这些服务主要包含PM(Power Management),RM(Resource Management)及Security(cyber security)。PM主要是用来控制一些设备的ON/OFF,RM用来请求外设资源,Security用来实现secure boot以及信息安全等。

SBL加载DMSC的firmware到RAM后会通知DMSC ROM去校验firmware的完整性,校验通过后DMSC就会开始执行它的firmware,并提供服务(PM,RM,Security)给其他核。然后SBL会load一些配置数据到RAM,然后通过SCI Message发给DMSC供DMSC使用。

最后SBL会配置DDR,然后加载MAIN域R5核的image和MAIN域A72、R5、DSP的image到DDR。一般会在MCU域的R5核上部署CP AUTOSAR,MAIN域的R5核上部署以太网Switch的firmware以及超声波雷达的USS驱动等。MAIN域的A72核上一般会用来部署Linux或QNX等操作系统,它们的启动需要ATF/Uboot等引导程序,因此需要加载引导程序的image和Linux内核或QNX内核的image。

加载各个核的image到DDR后,SBL会请求DMSC释放MCU域R5核以及MAIN域各个核的reset line,之后MCU域及MAIN域的各个核即开始执行各自的软件,整个系统就启动完成了。

一文搞懂自动驾驶芯片TDA4 启动流程,ADAS,域控制器,ADAS,智能驾驶,自动驾驶

文中缩略词解释

• DMSC – Device Management. & Security Controller:
– Controller that runs the first set of instructions on any Jacinto 7 family device
– Executes the DMSC ROM code after reset
• MCU R5 – Boot Controller:
– Cortex-R5F core in the MCU island that controls the rest of the boot flow of the device, after it has been released from reset by the DMSC.
– Executes the MCU R5 ROM code after reset
• R5 SPL or SBL – Secondary bootloader:
– Code loaded by MCU R5, via the selected boot method, and authenticated by the DMSC.
– MCU R5 runs this code after the ROM execution to start the flow for booting all the other cores on the device.
• SYSFW – System Firmware (for DMSC):
– DMSC “steady-state” firmware loaded by the MCU R5 and imported & authenticated by the DMSC.
After the SYSFW image has been verified, the DMSC starts executing it.
• SCI - System Control Interface:
– Interfaces through which other cores request RM, PM and Security ralated services to DMSC.文章来源地址https://www.toymoban.com/news/detail-617997.html

到了这里,关于一文搞懂自动驾驶芯片TDA4 启动流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【FUSA笔记-001】TDA4VM安全手册:安全机制实现

    软件安全机制分类 1. 与软件本身、基础软件或者操作系统失效探测、指示和减轻有关的自检或监控功能 软件程序流监控 输入输出合理性检测:软件回读写入数据、软件回读传输数据等、传感器合理性检查 基础软件自检:软件自检 2. 与安全相关硬件要素故障探测、指示和减

    2024年02月03日
    浏览(33)
  • tda4 videnc-test-app: CONTINUOUS and STEPWISE FRAMEINTERVALS not supported

    /* videnc-test-app */ https://git.ti.com/cgit/jacinto7_multimedia/ git clone https://git.ti.com/git/jacinto7_multimedia/videnc-test-app.git // 编译 ./autogen.sh ./configure --enable-maintainer-mode --build=i386-linux --host=aarch64-none-linux CC=/home/share/work/tda4/linux-sdk/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/aarch64-none-linux-gnu-gcc // 运

    2024年02月11日
    浏览(33)
  • 一文搞懂用户登录验证流程(附图)

    本文通过图示及代码的方式介绍用户登录流程及技术实现,内容包括用户登录,用户验证,如何获取操作用户的信息以及一些黑名单及匿名接口如何免验证相关的实现。 结合网关相关知识食用更佳 对于用户登录来说、涉及到了用户注册、登录验证几个方面,通过流程图演示

    2024年02月02日
    浏览(25)
  • 一文搞懂Secure Boot (安全启动)

    随着汽车新四化的发展,尤其是网联化及自动驾驶的推进,汽车网络信息安全显得越来越重要。 随着高级驾驶辅助(ADAS)及自动驾驶的推出,车辆动力及制动控制需要部分或全部授权给智能驾驶系统,而车辆又暴露在互联网当中,此时如果智能驾驶系统被黑客攻破,后果将不堪

    2024年04月28日
    浏览(30)
  • 一文详解自动驾驶的运行设计域(ODD)| 自动驾驶系列

    文章版权所有,未经授权请勿转载或使用   相关标准全文下载,关注本公众号回复“210901”即可  2021年4月30日, SAE发布了第四版J3016《驾驶自动化分级》 ,这是即2014年1月16日、2016年9月30日、2018年6月15日之后,J3016的又一次迭代更新。 2021年7月, ISO发布了ISO 22737《预定路线

    2024年02月06日
    浏览(53)
  • 【SpringMVC】一文带你彻底搞懂SpringMVC的工作流程(最强详解!!)

    目录 首先来说明一下,SpringMVC的各个组成部分 DispatcherServlet  HandlerMapping Handler(通常就是Controller)  HandlerAdapter  ViewResolver View  SpringMVC具体的工作流程  是SpringMVC的核心部分,是 一种前端控制器 ,由框架所提供 作用:统一处理请求和响应。除此之外也是 整个控制流程的

    2024年02月11日
    浏览(39)
  • 一文看懂自动驾驶中的坐标变换

    在自动驾驶任务中,我们通过各种传感器对周围环境进行感知,获取图片。点云等各种数据,由于传感器的位置、数据的形式、不同数据的含义等差异,在进行环境感知任务前,需要进行坐标、数据形式的统一,其中坐标变换是极其重要的一环。 根据参照物的不同,坐标系主

    2024年02月05日
    浏览(36)
  • 详解自动驾驶安全软件开发流程

    1 引言 自动驾驶汽车开发越来越重视性能、质量和性价比,自动驾驶口碑成为新技术应用取得市场成功的关键,而口碑的建立依赖于相关软件开发流程、周期、时间和质量。一家汽车企业只有拥有或者其软件开发供应商具有成熟的软件开发团队、软件开发流程、可复用的软件

    2024年02月08日
    浏览(45)
  • 【Python | 人工智能】一文讲清AI赋能自动驾驶的底层原理

    引言 人工智能引领现代,智能AI赋能未来。 它在当今社会和科技领域中具有重要性。 本文将着重探讨人工智能对自动驾驶技术的深度赋能和应用场景等。 有时我们乘坐网约车的时候,能打到无人驾驶汽车,全程均为AI语音播报: 自动驾驶是指通过使用 各种传感器 、 计算机

    2024年02月04日
    浏览(55)
  • springboot启动流程 (3) 自动装配

    在SpringBoot中,EnableAutoConfiguration注解用于开启自动装配功能。 本文将详细分析该注解的工作流程。 启用SpringBoot自动装配功能,尝试猜测和配置可能需要的组件Bean。 自动装配类通常是根据类路径和定义的Bean来应用的。例如,如果类路径上有tomcat-embedded.jar,那么可能需要一个

    2024年02月09日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包