打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
车规芯片启动浅谈

车规芯片的启动流程往往相较于手机等消费类芯片有较为明显的差异,主要体现在构建安全的芯片运行环境需要比消费芯片花更多的时间,做更细致的检查。且受到汽车智能化浪潮推动的影响,芯片的启动流程随着硬件技术的迭代也在不断地衍化。

01 Boot流程

总的来说车规芯片的启动流程分成固件启动部分软件启动部分两大类。固件部分即BootRom,也叫Firmware, 优先于软件部分启动,目的是搭建起一个可以执行基础程序指令的硬件环境,主要包含:芯片唤醒,系统复位,BootRom程序执行等几大步骤。
软件启动部分主要负责硬件环境的典型设置和安全检查,目的是为操作系统及应用程序提供一个安全可靠的软件运行环境。主要由启动程序执行,Bootloader,应用程序执行几大部分组成。
下面我就以英飞凌TC3xx系列的唤醒流程为例来简单介绍一下芯片的启动流程:
02 芯片唤醒

熟悉整车电子电气架构的朋友一定知道,连接在整车CAN网路及电源网络的控制器,可以通过KL15点火信号唤醒源,来激活ECU上的SBC电源管理芯片的唤醒引脚,从而达到芯片启动的目的。而唤醒时芯片所需的工作电压则由KL30供电信号经过外部电源转换电路最终供给到芯片模拟端口。
同时一般的车规芯片上同时配备了CAN 网络接口模块,例如我们在英飞凌电源管理那一讲中提到的SCR模块,其中就有可以检查外部CAN唤醒报文的外设,哪怕芯片工作在静态电流模式下,可以将芯片唤醒。有兴趣的同学可以翻阅一下之前介绍静态功耗管理的文章。车规芯片概览系列(四)-- 德国半导体工业上的明珠 “英飞凌”- 系统功耗篇
03 系统复位

其实系统复位和上面所提到的唤醒源是紧密相关的,譬如K15唤醒可以认为是英飞凌系列的cold reset,这里根据外部的唤醒源,会执行不同范围大小的复位操作,并且在全局复位后在一定的时间内释放相关的启动设备。
当然这里的唤醒源还可以来自系统软件的自复位或者是看门狗等安全逻辑,比如在监控到软件程序跑飞后对CPU进行复位,CPU启动后依然跳转到设置的应用程序首地址执行,在这种情况下芯片可以跳过大量的启动流程,因为在应用程序复位的时候PLL,SMU等其他跟软件程序不相关的器件不会被重置。
04 BootRom

BootRom也常常被叫做启动固件,操作步骤相对复杂,根据不同客户的要求,配置顺序一般也有所不同。这里简单以英飞凌系列为例,主要包含了:
  • 上电复位后的状态校验,包括default startup core是否释放,当前是否工作在测试模式下
  • 部Flash配置,包括外设时钟以及启动地址等加载程序所需配置
  • RAM的配置,包括RAM的初始值及ECC校验功能检查
  • 加载启动模式的配置,这些配置一般固化在ROM中有特定的获取地址,包括RAM的初始化地址范围,LBIST是否执行,是否执行security boot, 是否执行boot loader等等
  • 执行LBIST用以测试内部电路是否良好
  • 检查Debug配置及决定Debug模式是否上锁
  • 选择SSW进入Bootloader时的模式,可以跳过Bootloader直接进入用户程序,也可以进入Bootloader mode(ASC或CAN接口)或者Alternative boot mode等

05 Startup SW

软件启动的运行过程是将PFLASH中的程序代码搬入芯片内部RAM执行。在进入用户代码之前,为了更好的服务于不同的操作系统及相关应用,需要提前设置好一些基础的,通用的软件运行环境,所以也可以将这段代码即Startup SW理解为芯片软件启动过程中的第一环。主要包括的流程有:
  • LBIST和MBIST自检

  • 内核的堆栈初始化

  • 安全管理单元SMU和看门狗等相关功能安全模块的使能

  • 中断模块的初始化

  • PLL的升频及时钟树的切换

  • 其余内核的时钟和复位

  • 如果选择了HSM即安全启动模式,还需要执行Flash中软件的安全验签流程

因为这块的寄存器的配置因客户需求和芯片应用场景不同而略有区别,比如因为安全需要,LBIST自检可以固化到Firmware里面提前执行,从而在软件启动的时候可以跳过此环节,或者是在Bootrom和程序中分别执行不同硬件单元的检查。

06 Bootloader

在进入最后的用户main函数之前,如果在上述固件程序中选择了Bootloader的任意一种模式,就需要执行Bootloader程序,而最常见的操作就是软件刷写。Bootloader程序常常通过CAN接口接收上位机例如UDS设备发来的刷写指令和程序,按照顺序需要经历初始化阶段,确认阶段和数据传输阶段,在刷写流程的最后Bootloader会跳转到客户应用程序的首地址。
如此一个简单的车规芯片启动流程就介绍完了。
写在最后:
通过对英飞凌TC3xx系列Boot流程的简单阐述,相信大家对车规芯片的启动已经有了大致的概念,后续我会再开一篇关于“Security Boot”安全启动的技术问答,在此先挖个坑,感兴趣的伙伴可以点赞关注收藏,多多转发文章,也是对小编辛苦码字的认可和鼓励~


END

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
CPU上电后加载程序的流程 | 基于RK3399
AVR通过串口给芯片烧录程序(ATMega16)
Bootloader开发:uC如何烧录第一个程序?
ISP和IAP区别
STM32固件IAP程序实现
精品! 我们如果了解单片机Bootloader程序
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服