为什么选择学习FreeRTOS和单片机?
1、作为一名打杂的硬件工程师,与机器人的接触的时间也比较多,但我们的单片机工程师使用的是裸奔的方式与ROS打交道;使用的是SMT32单片机作为主IC,因为项目的需求需要用到室外,项目的功能安全问题不容忽视,这里引发了我对目前项目的担忧和一些思考。
2、关于功能安全问题
单片机在汽车功能安全中实现的主要手段包括以下几个方面:
-
软件设计和开发:单片机上运行的软件需要经过严格的设计和开发,确保其功能安全性。软件开发过程中通常采用安全开发标准和最佳实践,包括规范化的编程风格、代码审查、单元测试等,以减少软件中的漏洞和错误。
-
故障检测和容错处理:单片机可以实现故障检测和容错处理功能,通过监测系统状态、检测传感器数据异常以及执行自检程序等方式来及时发现和处理潜在的故障。一旦发现故障,单片机可以采取相应的措施,如切换到备用系统、触发警报或执行紧急停机操作,以保障汽车功能的安全性。
-
安全通信和数据处理:单片机负责处理传感器和执行器的数据,并与其他汽车系统进行通信。在数据传输过程中,单片机可以采用加密、认证和完整性检查等技术,确保数据的安全性和可靠性,防止恶意攻击对汽车系统造成损害。
-
硬件监测和保护措施:除了软件层面的安全性保障,单片机还可以实现硬件监测和保护措施,如电源电压监测、温度监测、电流监测等。单片机可以根据监测到的信息采取相应的措施,如降低系统负载、减少功耗或执行紧急停机操作,以防止硬件故障对汽车系统造成不良影响。
-
遵循功能安全标准和规范:在单片机的设计和开发过程中,制造商需要遵循相关的功能安全标准和规范,如ISO26262等。这些标准和规范提供了针对汽车电子系统的功能安全管理流程、安全性评估方法和安全性要求,有助于确保单片机在设计、开发和应用过程中满足功能安全的要求。
3、安全单片机选型
以下是一些生产安全单片机的厂家和一些型号:
-
Infineon Technologies:
Aurix系列:例如TC27x、TC29x、TC37x、TC39x等常用型号。
-
STMicroelectronics:
SPC5系列
-
NXP Semiconductors:
S32系列:例如S32K等。
其中 Infineon 的单片机如果开发软件的附加成本是非常昂贵的,必须采购第三方软件进行适配开发,目前ST的单片机没有尝试过开发,但NXP的开发环境目前相对来说会比较友好一点。除了这一点外,大家有必要了解下 AUTOSAR。
以下是AUTOSAR标准的主要特点和组成部分:
-
软件架构:AUTOSAR定义了一种模块化的软件架构,以支持汽车电子系统的分布式开发和集成。该架构将汽车软件系统划分为应用层、运行时环境、基础设施和MCAL(Microcontroller Abstraction Layer)等组件,以实现软件功能的模块化设计和可重用性。
-
通信协议:AUTOSAR标准定义了一系列通信协议,如CAN(Controller Area Network)、FlexRay、Ethernet等,用于汽车电子系统之间的数据交换和通信。
-
配置和描述文件:AUTOSAR引入了一种称为ARXML(AUTOSAR XML)的XML格式文件,用于描述汽车电子系统的配置信息、软件组件、通信接口等,以支持系统的配置管理和自动化工具的开发。
-
标准化接口:AUTOSAR定义了一系列标准化的软件接口,包括应用程序接口(API)、通信接口、驱动程序接口等,以促进不同供应商的软件组件之间的互操作性和可替换性。
-
安全和可靠性:AUTOSAR关注汽车电子系统的安全性和可靠性,在标准中包含了一些安全机制和建议,如软件故障管理、数据保护、通信安全等。
-
工具链支持:AUTOSAR提供了一系列工具链和开发工具,用于支持汽车电子系统的设计、开发、测试和集成。
总得来说是汽车联盟开发了一套标准的套件,里面规定一些标准用来加速开发和帮助软件开发的稳定,其中也有Simulink开发(即基于模型开发),一种通过描述模型来生成代码的方式进行开发的方式。
4、为什么使用FreeRTOS?
当使用ROS2进行机器人的开发的底层驱动时候,例如控制机器人的运动和一些传感器的读取上传到ROS端,比如轮速计和超声波等数据就可以通过单片机上发。我们之前在ROS1的时候使用的是rosserials通过串口与ROS主机通信,但是目前ROS2的到来变成了分布式的方式,使用的DDS通信解决了很多ROS1的缺点。这里就不得不提一下 micro-ROS ,本着不重复造轮子的原则,网址为 Micro ROS。
我们看到他为了实时性支持的实时操作系统为如下三种:
而我们为了学习为主,现在我们硬件工程师常用的的单片机(STM32)的IDE大多数情况下都支持 FreeRTOS。
再者SafeRTOS和FreeRTOS 中 SafeRTOS 是符合汽车功能安全的要求的,SafeRTOS基于 FreeRTOS 内核的功能模型,他们共享相同的功能模型,升级非常容易。我们即使后面使用商业稳定的目的时候,使用 FreeRTOS 内核进行原型设计,并在正式开发阶段开始时转换为SafeRTOS即可,成本非常低。
作者:Nautiluss