如不做特别说明,本文介绍的内容基于规范的21-11版本。简介EcuM模块作为基础模块之一,管理ECU状态,包括但不限于:初始化/反初始化OS,SchM,BswM以及一些其他基础软件模块当有请求时,配置ECU进入到睡眠或关闭状态管理ECU所有的唤醒事件EcuM模块还提供唤醒验证的功能,来识别“正确的”唤醒事件。并且还有这些功能:ECU部分/快速启动,仅包含有限功能,之后由应用决定其他功能启动顺序ECU以最快速度仅启动必须功能并运行RTE执行某些SWC的功能,然后再启动其他BSW模块以及其他SWC除了一般意义上定义的RUN状态(完全操作),还可以定义其他状态多核E...
作者:阿宝1990I智能座舱的存储越来越重要,容量越大越大我们都知道,中国新能源汽车逐步在迈向正轨,越来越多的用户选择具有更多智能化的新能源汽车,从最近5-10年的发展趋势来看,汽车已经从机械定义汽车到电子定义汽车,到最近的几年火的发紫的软件定义汽车。汽车硬件通用化之后,汽车软件的研发环境也变得更加容易,包括操作系统搭建、应用生态构建在内的软件应用场景,就有了施展的空间。如同PC和智能手机一样,汽车的异化主要体现软件上,即软件定义汽车,中国新能源汽车往智能汽车方向进化后,正在复制当年智能手机在中国制造业快速复制的道...
一般来说,提供Crypto模块的时候应当有一个预配置,这个预配置代表了Crypto模块的能力,能够提供什么样的加密功能。如果Crypto不能提供某种加密方式的处理,那么Csm里也不可能配置的出来。从项目角度来说,通常的配置方式是从Csm开始,然后配置CryIf,再然后配置Crypto。Csm的配置基本概念可参考从Csm开始,用户先选择好使用哪种加密方式以及对应的key。之后用户可以定义Job以及队列。在CryIf中,用户需要定义Csm需要用到的功能以及Crypro能够提供的功能之间的关联关系。在Crypto中,用户调整或者扩展预配置的算法以及密钥。以MAC为例我们来看一个消...
如不做特殊说明,本文基于21-11规范进行说明。PduR是什么在AUTOSAR的架构中,通信部分中很重要的一个模块就是PduR,它能将IPdu从不同的模块路由到对应的模块。如上图蓝色部分所示,PduR主要包括两部分:PduR路由表,以及PduR路由引擎。路由表描述了每一个IPdu的路由路径是什么样的,路由引擎则负责根据这个路由表将IPdu从源地址路由到目的地址,同时,还可以将源IPdu ID翻译为目的IPdu ID。IPdu处理PduR模块可以对IPdu做以下处理:IPdu转发无论是上层模块经由PduR转发给下层模块进行发送,还是下层模块经由PduR转发给上层模块进行接收,都可以设置1:...
作者:东晓一家如今随着智能网联、自动驾驶、新能源汽车的发展和软件定义汽车的时代要求,软件在汽车研发中的占比激增,软件质量管理的需求日益增强, ASPICE的重要性日益凸显,在这样的趋势下,一些本土企业陆续进行了ASPICE CL3评估。01通过ASPICE CL3,意味着什么?答案不言而喻,为了实现持续的高质量交付。那么,ASPICE CL3是如何驱动高质量交付的呢?让我们先看看ASPICE的基本定义。ASPICE全称“Automotive Software Process Improvement and Capability dEtermination”,即“汽车软件过程改进及能力评定”模型框架,作为汽车产业的软件流程...
如不做特殊说明,本文基于21-11规范进行解读。关于信息安全方面的大致概念,请阅读:简介SecOC模块的目的是在PDU的级别,针对关键数据作资源高效且可行的验证机制,保证数据安全,这种安全机制可以无缝集成到AUTOSAR项目当中。SecOC既可以支持对称加密方式,也能支持非对称加密方式,AUTOSAR规范主要基于对称加密方式进行说明。在对称加密过程当中,消息认证码(MAC)是关键,它能以更小长度的密钥以及实现的便利程度,达到非对称加密同样的安全等级。对于既有项目来说,这样的方式也充分考虑了过去的系统当中所能提供的有限资源,尽量将资源消耗程...
最近几个Classic AUTOSAR项目并行在做,无论我怎么切来切去,怎么好像每个项目都是S32G啊!我都快不认识别的芯片了....好吧╮(╯-╰)╭,绕不开就绕不开,谁叫S32G这么火呢---- 关键是打工人也没得选不是,咱不能挑。但是吧,在S32G上调试的代码越来越多之后,代码跑着跑着进入异常的情况也非常多(似乎暴露了我的编程水平??),调试过嵌入式的都懂,一旦进入错误或者异常,往往要面对一堆异常处理函数,而且还是汇编!虽说咱也不是不懂汇编,但是调起来肯定不如调试C代码直观。那么问题来了,怎么能够快速解决这个问题呢,对吧?现在也不知道是怎...
如果工作内容和通讯有关,在和同事或者客户交流时,基本离不开"PDU","Signal"等词语。如果没有特别的要求,只要涉及到消息,信号等的场合,说PDU, Signal准没错。不过呢,为了提高沟通效率,有的时候我们可以具体指出是说的什么模块有关的PDU,什么功能的PDU;因此,今天我们就来回顾一下PDU这个概念。PDU是Protocol Data Unit的缩写,而我们又知道,协议有很多种,不同的功能簇,分层的每一层都可能有一种协议的定义,因此PDU是一个相对广泛的概念。例如Com模块中组合了signal的PDU,CanIf模块中为使用CAN通信而创建的PDU等等。基于分层的不同,在A...
内存保护单元(MPU),是一个可以提供内存保护功能的计算机硬件单元,一般都集成在CPU内。MPU是内存管理单元(MMU)的简化版本,仅提供内存保护的支持,常常在低功耗处理器中使用,不需要诸如虚拟内存管理等功能。[1]MPU允许处于特权模式的程序定义内存区间,分配内存访问权限以及每个区间的属性,不同的处理器能够支持的内存分区都不一样,Cortex-M7系列可以拥有8个或16个内存分区,对于S32G来说,可以支持16个内存分区。Cortex-M7的MPU基于Cortex-M7的MCU存储接口如下图所示[2]:配置/操作MPU时我们都是基于分区(region)设置,每一个region都可...
最近一直在写不同车型的技术相关的文章,前几天写了蔚来EC6和比亚迪海豹的,今天来分享一下大众ID.4X的,之前也零零散散写过一些,最近刚好拿到比较完整的资料,那就比较完整的整理一下。01.ID4.X的网络架构网络架构是整车各控制器之间的交互桥梁,跟道路有一样,有高速,城区环路,国道,乡道,丰富的很,大众ID4.X的网络架构如下图所示,各个控制器之间的交互通道一目了然。▲图1 大众ID4.X的网络架构其网络架构中共使用了13个子网络:CAN-FD EV :主要连接DC/DC、BMC、AC充电机等,速率为2M/s;蓄电池CAN:用于连接电池管理单元BMC与从板CMC,速...
高度集成的解决方案促进开发下一代车辆将大陆集团的高性能计算控制器与Elektrobit经过量产验证的Classic AUTOSAR、Adaptive AUTOSAR和OTA更新软件相互结合两家公司将在CES 2023展示联合解决方案德国埃尔朗根,2022年12月20日 – Elektrobit日前宣布其软件已整合到大陆集团的Continental Automotive Edge(CAEdge)框架,为汽车制造商和一级供应商提供首款用于开发软件定义车辆的全栈式软硬件架构解决方案。CAEdge将大陆集团的高性能计算(HPC)单元与Elektrobit经过量产验证的Classic AUTOSAR、Adaptive AUTOSAR和OTA更新软件整合到同一个平台,以此...
多核OSAUTOSAR的多核OS不是虚拟ECU的概念,每一个核上都可以跑相同的代码,但是每个核可以有不同的数据结构。因此,每个核是在并行运行,每个核都独立的进行任务调度,任务的并行运行可以以下图为例:当然,由于是静态配置的,任务和中断无法在运行时被分配到另一个核上。可定位实体 Locatable Entities可定位实体必须分配到一个核上,分配情况需要在配置阶段即定义好。这个可定位实体,在AUTOSAR标准当中,是以OS-Application实现的。在一个使用多核系统的工程当中,OS-Application是必须被使用的,即使不需要任何保护机制,BSW任一模块都需要被分...
导读::本文节选自《中国汽车基础软件信息安全研究报告1.0》。智能汽车安全的底座是汽车基础软件信息安全,其所涉及的技术面非常广,需要不同领域的专家来共同研究与探讨。为此,AUTOSEMO组织了一个由21家企业与院校组成的编委会,把各家最新的研究成果和最佳实践提炼、总结、分享出来,通过撰写本《汽车基础软件信息安全研究报告》,以共同推动汽车基础软件信息安全的技术研发、标准建立、应用落地及产业化发展。公众号后台回复“AES27"下载《中国汽车基础软件信息安全研究报告1.0》PDF。随着汽车网联化和智能化,汽车不再孤立,越来越多地融入到互...
前言2021年国内新能源乘用车销量较2020年大增,2021年国内新能源乘用车终端销量达2,910,507辆,同比增长159.9%。其中纯电动车销量2,382,469辆,插电式混合动力销量528,020辆,燃料电池车销量18辆。[1]https://auto.gasgoo.com/news/202201/21I70289197C501.shtml考虑到2021年还是新能源(汽车)相关题材基金大火的一年,投资方非常青睐新能源汽车,并且看好未来的发展,几乎所有车厂都在大力推广新能源汽车。除此之外,在过去的几年间,我们还陆续看到了非常多的其他行业厂商加入了(智能)汽车大军,无论是已经布局汽车的华为和百度,还是年中刚刚...
随着 ICT 技术的发展,单 SOC 算力可以承担更多业务,网络带宽拓展及低时延、区分服务等特性使得业务部署、功能分配更加灵活,比如 : 感知、融合、规划、控制、执行可分离解耦,汽车业务功能可分可合、可软件定义。电子电气架构从分布式架构到域集中式架构,再到中央集中式架构转变,分散的 ECU功能集成到域控制器甚至车载中央计算机,这就是多域融合。汽车电子底层硬件不再是由单一芯片提供简单的逻辑计算,而是需要复杂的多核 SoC 芯片提供更为复杂控制逻辑以及强大的算力支持。但是多域业务具有不同的技术需求,比如座舱域 IVI 业务强调交互体验...
经过几年的发展,各主机厂的域控制器已经排上开发日程表了,或者是有些已经量产上车了。那基于域控制器的功能安全开发也必须开展了。今天主要来学习一下动力域控制器功能安全概念阶段需要做哪些?首先整体来讲,概念阶段的工作主要包括三项:相关项定义,危害分析和分享评估,功能安全概念设计。01.相关项定义首先来说说相关项定义,那啥是相关项呢?相关项主要包括控制器功能需求,非功能需求,法律法规要求,环境要求和控制器接口等内容,那相关项定义就很好理解了,就是要理清控制器上述列举的内容。为了更好并且直观的理解这些内容,通常要绘制...
关注公众号,精彩内容不错过[ 序 言 ] 前段时间一直在做电源相关的DIY,旨在了解电源类的软硬件的工作原理,采样电路、全桥驱动、隔离等,开发的过程中手上没有趁手的“利器”,调试起来确实累,当时现有的设备只有逻辑分析仪、万用表以及一个非常拉跨的mini示波器。分析下全桥的SVPWM驱动波形倒是还可以,查看逆变后的波形以及过零点的抖动时可太难了,一个存储深度2K的示波器,放大后的波形完全不能看。 所以,心一横,手一甩,就把我的老示波器在某鱼上二手出掉了,准备购买一个台式示波器,正儿八经的能满足开发使用的。接下...
关注公众号,精彩内容不错过[ 序 言 ] 接上文我们了解了逆变器的工作原理,下面来细化的介绍一下几种不同的SPWM调制方式,后文再使用Matlab做仿真,仿真中没有SPWM模块可以直接使用,我们可以使用三角波作为载波和50Hz频率的正弦波进行比较生成SPWM输入到H桥电路中,好了,正文开始。[ 仿 真 中 SPWM 的 生 成 ] 仿真中我们使用载波频率为20KHz,正弦波的频率就用我们国内市电的频率50Hz,比较两个波形的交点进而生成SPWM,仿真结果如下:放大了来看是这样的: 下面的方波就是SPWM了。[ SPWM 的 分 类 ] 上面的仿真已经验...
关注公众号,精彩内容不错过[ 序 言 ] 新能源、碳中和、能源危机、清洁能源、户外储能等等词汇在最近几年内的热度一直居高不下,现在看来,虽然不是什么新词,但这其中和逆变器有着不可分割的联系。【 什 么 是 逆 变 器 】 逆变器是把直流电源转换成定频定压或调频调压交流电的转换器,直流电源的输入可以是蓄电池、光伏板等,经过逆变器后出来一定功率的交流电。 它在许多电力应用中起着关键作用,特别是在太阳能电池板和风力发电机等可再生能源系统中。逆变器允许将从这些可再生能源设备产生的直流电转换为家庭或工业用途的...
关注公众号,精彩内容不错过[ 序 言 ] 上篇文章《》介绍了轻量的消息队列的实现,并提供API接口的实现代码,今天来完善一下LiteQueue的功能。新增功能如下: 1、增加队列满时再入队的策略,用户可选 2、增加队列异常的回调函数,通知上层应用 3、增加判断队列是否为满的接口 4、优化判空逻辑,解决了写入次数和队列项相同时再读出异常的bug 5、增加LiteQueue的打印开关文件目录如下: 为了以后管理方便,...
关注公众号,精彩内容不错过[ 序 言 ] 消息队列大家一定都不陌生,在RTOS、Linux等操作系统上都是必不可少的,作用也很简单,可以有效的防止丢包的发生,比如说,串口短时间内快速的接收一帧帧的消息进来到任务中去解析处理,当解析处理的时候再来一帧消息的时候,这时CPU正在解析上一帧数据,当前的这帧数据可能就会丢失,而消息队列就能很好的避免这个问题,收到消息时先把接收到的消息放到队列中,在任务中从队列获取数据,如果解析过程中再来一帧数据,这帧数据会先...
关注公众号,精彩内容不错过[序言] 做嵌入式开发的需要把需要把板载的每一个外围设备都进行初始化,有时候我们为了代码的可读性、易移植性会把每个模块单独封装,使用不同的.c和.h文件进行管理,在模块对应的.h文件中会把向外开放的API接口申明出来,方便上层调用,其中模块的初始化代码就包含在开放的API中,这样就使得上层的软件需要依赖于底层的接口,当底层变化时或头文件依赖更改时,需要重新修改代码,模块少还好点,模块多的时候就非常痛苦了。同时也带来另一个问题,软件中每增加一个模块都要在主函数中增加模块的初始化代码,每删...
关注公众号,精彩内容不错过 概要 在嵌入式系统中,按键和显示屏是最基本、最常见的用户交互方式。然而,如何设计和实现不同界面之间的交互逻辑,并让用户能够方便、快捷地完成各种操作,是一个需要深思熟虑的问题。本文将从代码的角度出发,介绍如何优化按键和显示屏之间的交互设计,以及如何利用各种技巧和策略来提升产品的市场竞争力。如果您对交互设计有兴趣,或者...
【前言】 本文将介绍如何使用ringbuff消息队列、状态机和定时器来模拟RTOS中的任务调度。我们将使用简单的算法来调度任务,并利用TIM2定时器作为任务调度器。在我们的设计中,我们将创建两个任务,一个用于发送数据,另一个用于接收和处理数据。我们将使用ringbuff来传输消息,并使用状态机来处理接收到的数据。【环形缓冲区】 由于我们需要在两个任务之间传输数据,所以我们需要使用一个消息队列。在本文中,我们将使用环形缓冲区来实现消息队列。环形缓冲区是一种特殊的缓冲区,它可以在达到缓冲区末尾时自动回到开头。下面是我们...
又来更新公众号,‘鸽’了好久的文章,他来了...---------------------------------文章背景----------------------------------- 小编是一个码农,从事嵌入式软件开发的,这份工作给了我money,同时让我付出了时间,花费的时间在代码的编写上、文件的整理上、版本的管控上等等,特别是从刚开始调试到一个个版本的输出测试、再修复bug,再回退,每一个版本再上传git备份等等都花费了我部分时间,为了让这部分变得简单化,作为一个程序员,我想是时候要做些什么了。 于是我专门研究了下windows下的批处理,有些重复的事情让他去...
前言: 应部分粉丝要求,专门抽出一个专题来讨论下链表相关的数据结构,今天这篇文章来简单探讨下单向链表,后面会陆续出单向循环链表、双向链表、双向循环链表,还没关注的小伙伴抓紧时间关注起来啦。简介: 链表也是一种数据结构,链表分为数据域和指针域 数据域:存放当前节点的数据 指针域:指向下一个节点,通过next指针把每个节点串联起来,形成一个链式的数据结构,因此得名链表。链表和数组的区别: 说到这里很多人可能都在想,链式串联起来的数据结构不是和数组很像吗?确实,他们两之间有共同点,也有...
今天来分享下项目中经常使用到的打印,应该是每个嵌入式软件工程师在日常调试项目中都需要的必备技能(并不是什么很难或者不常见的方法,其实是今天公众号没啥写的,就来简单的分享一下,也一定有人能受益)之前有关打印也在公众号中发过一篇文章,关于彩色打印的,有需要的小伙伴可以看下小编写的这篇文章的介绍。 看过文章的都知道Easylogger的方便之处是在控制台中断打印出彩色的打印信息,并且能在软件上设置打印的颜色、闪烁等效果,但是其在移植的时候势必会占用一些内存空间,其带来的好处也是不言而喻的,我现...
/* 开头寒暄 */ 白驹过隙,光阴如梭,转眼间半年过去了,也很久没有更新公众号文章,有愧于公众号的粉丝,现在他又来了。最近半年比较忙,也不知道在忙啥,就是没时间写公众号。/* 正文前言 */ 最近完成了一个项目,使用的是国产的32 + FreeRTOS + lwIP实现网络唤醒和其他七七八八的功能。项目代码转测后基本也没啥问题,但是我们公司的产品比较大,带来的困扰就是给主板上的MCU升级软件的时候就比较麻烦,还需要拆开设备,找到主板的烧录口,插上Jlink才能升级软件,多有不便,因此在代码基本完成后添加了IAP功能,原本这个功能很常...
今天来分享记录下使用Moxbaxterm这个工具来远程访问Ubuntu,上期我们介绍了使用Mobaxterm的串口助手查看了不一样的打印输出,便于定位调试代码中的问题,今天我们来看另一个方便的功能。 使用Mobaxterm远程连接Ubuntu的好处在于,我们在使用比较老的一些系统的时候像16.0.4或更之前的版本,我们在操作的时候总会觉得在虚拟机下很卡顿,甚至访问一个文件夹都很困难,再打开控制台运行shell就更费劲了,还有一个不方便的就是需要再windows和ubuntu下来回切换,效率有点低。 好嘞,废话不多说,来简单介绍下吧!...