嵌入式系统与单片机|技术阅读
登录|注册

您现在的位置是:嵌入式系统与单片机 > 技术阅读

技术阅读

  • BLDC驱动中级篇:增量式PID

    2024-07-02

    -- The Start --前言:在《BLDC驱动中级篇:位置式PID》文中,我们学习了PID控制原理、位置式PID及其使用方法。针对位置式PID的缺点,也提出了增量式PID。于是,本文再对增量式PID作梳理。1. PID控制原理请见《BLDC驱动中级篇:位置式PID》,本文不再赘述。2. 增量式PID根据《BLDC驱动中级篇:位置式PID》文中内容,在数字化的位置式PID的输出控制量Uout(k)的公式,请见公式(1)。Uout(k)=Kp*E(k)+Ki*∑E(kT)+Kd*((E(k)-E(k-1))/T)  --(1)T为采样周期,k为采样序号,k= 1,2,3......,E(k)为第k时刻的偏差值,E(k-1)为第(k-1)时刻的偏差值。∑E...

  • BLDC驱动中级篇:补充相电流的来龙去脉

    2024-07-02

    -- The Start --前言:有位同学在学习文中内容后,私信说想知道“U相电流阶段3和阶段4电流增长速度不一样的原因”。请见下图1。图1能在晚上10点还坚持学习的同学提问肯定是认真的。于是,我也不能含糊。我的回复和该位同学的最终理解,请见下图2。图2图2中,红色下划线是该同学的笔误,该同学的本意是1/3*Vm。从该同学的最终回复可知:(1)该同学并不认同我回复的内容,甚至有可能认为我是在敷衍了事。(2)该同学不能肯定自己理解正确,仍在期待正确答案。本文就针对该同学提出的问题,梳理一下。1. 复习相电流的来龙去脉相电流的来龙去脉,请回...

  • BLDC驱动中级篇:恒转矩、恒转速和恒功率控制

    2024-07-02

    -- The Start --前言:做BLDC驱动,学会怎么启动BLDC之后,下一步就得学习怎么控制BLDC。常见控制BLDC的方法包括:恒转矩、恒转速和恒功率控制。本文就对"三恒"控制理论做简要梳理。1. 恒转矩控制的理论恒转矩,就是保持电机转动力矩恒定不变。负载特性如下:(1)负载增加,转速会下降,电流会增加。(2)负载减小,转速会上升,电流会减小。看到这里,细心的同学立马反应过来:这不就是保持PWM占空比不变吗?是的,就是这么简单。PWM占空比保持不变,转矩就一定恒定了吗?答案当然是否定的。根据《BLDC驱动基础篇:在六步换相法中,转矩为什么会...

  • Classic AUTOSAR模式管理指南(1)— 和模式管理有关的术语

    2024-07-01

    mode模式,mode,是运行在车辆上不同的状态机(不只是EcuM)的一组状态的集合,和一个实体,一个应用,或者整车都有关state状态,state,是各自BSW组件内部定义的内容,对应用不可见;因此状态只会被BSW内部状态机所使用。EcuM定义的状态构建了phase,并处理模式。phase阶段,phase,是EcuM的动作和时间在逻辑上或时间上的组合,例如STARTUP,SHUTDOWN,SLEEP等。mode switch port用来接收(或者发送)模式切换通知的port,类型为ModeSwitchInterface。mode request interface类型为SenderReceiverInterface,通过VariableDataPrototype携带所请求的模...

  • [Classic AUTOSAR] AUTOSAR架构中的模式管理

    2024-07-01

    模式间的关系一个系统在不同级别的颗粒度上包含众多模式,如下图所示,包含车辆模式,应用模式,ECU本地BSW模式。这些模式会互相作用/影响。他们之间可以有这些相互作用:在不同的车辆模式下,应用可能处于不同的应用模式(比如是否处于激活状态)反过来,某些应用的操作状态可能会触发车辆模式的改变在不同的车辆和应用模式下,BSW模式也可能会变化。比如应用对于通信的需求,可能触发某一路通信网络BSW模式的变化与此同时,BSW模式变化同样可能影响应用模式或者车辆模式,例如通信网络不可用时,依赖于此通信网络工作的应用可能需要进入limp-home...

  • PNC部分网络管理中EIRA和ERA的理解

    2024-07-01

    PNC部分网络管理的基本介绍,可参考:EIRA和ERA的使用场景EIRA:如果某个ECU对应的PN组由内部请求或者外部请求,那么这个ECU需要将对应的I-PDU开启。如果PN被释放了,那么I-PDU将被关闭。ERA:网关收集外部PN请求,将此外部PN请求镜像到请求的总线上。不管是EIRA还是ERA,CanNm模块中会对应有数组记录EIRA和ERA状态。网络管理报文的过滤对于收到的网络管理报文,如果和当前ECU无关,那么应当由CanNm进行过滤,丢弃这些无关报文。CanNm的过滤方法,就是对网络管理报文中的用户数据中的PN请求进行判断,在进行掩码运算之后,能够得出此报文中是否有相...

  • Elektrobit 宣布推出首款适用于英飞凌 AURIX TC4x 微控制器的车规级嵌入式操作系统和虚拟机监控程序

    2024-07-01

    这项合作将助力 OEM 和一级供应商为 AURIX TC4x MCU 开发基于 Classic AUTOSAR 的 E/E 架构新版本 EB tresos Embedded Hypervisor 支持核心分离和 AUTOSAR协议栈并行运行,从而降低硬件和认证成本德国埃尔朗根,2022 年 10 月 24 日 – Elektrobit 今天宣布推出首款适用于英飞凌科技公司 (Infineon Technologies AG )出品的新型 AURIX TC4x 微控制器(MCU)的车规级嵌入式实时操作系统(OS)和虚拟机监控程序(hypervisor)。EB tresos AutoCore OS 和新版本 EB tresos Embedded Hypervisor 支持 OEM 和一级供应商更轻松地开发和部署基于 AUTOSAR...

  • C/C++包管理Conan教程【18】Package ID

    2024-07-01

    我们已经知道,conan会根据设定的构建选项或者其他设置(也即package info)来完成pacakge ID的计算,这个过程是自动的。如果出现这样一种情况,比如用户设置了使用4.9版本的gcc编译器进行构建整个工程,但是其中有一个包我们没有使用gcc 4.9构建过,找不到对应的二进制文件,那么我们就可以做一次fallback:from conans import ConanFileclass Pkg(ConanFile): settings = "os", "compiler", "arch", "build_type" def package_id(self): if self.settings.compiler == "gcc" and self.settings.compiler.version == "4.9": ...

  • 浅析核间通讯 —— 以NXP IPCF为例

    2024-07-01

    作者:苏健出品:汽车电子与软件01前言随着汽车电子的高速发展,电控单元的复杂性越来越高,对芯片的算力要求也迅速提高,于是,例如ARM架构这样的异构处理器的应用也更为普遍。对于多核异构处理器而言,核间通讯是一项至关重要的特性。核间通讯的性能往往能对整个处理器的性能释放起到决定性的作用。本文将以NXP的IPCF为例,并简单对比一些其他方案,浅析核间通讯的设计与实现。IPCF的官方网站:https://www.nxp.com/design/automotive-software-and-tools/inter-platform-communication-framework-ipcf:IPCF其代码托管于https://github.com/nxp-au...

  • C/C++包管理Conan教程【17】版本管理

    2024-07-01

    Versioning:废话不多说,我们先从练习入手:进入到version_ranges中,conan create hello hello/0.1@user/testingconan create chat user/testing在hello/src/hello.cpp中做一个改动(我这里加了一个v0.2)再次执行:conan create hello hello/0.2@user/testingconan create chat user/testing你能看到输出有所不同。现在,我们看一下chat的recipe:你会注意到这里的requires,hello包的版本在0.0到1.0范围内。这里还可以写成这种形式,如上图。Revisions要使用revisions需要先使能这个功能:conan config set general.revisions_enabled=True然后设...

  • 基于Ubuntu的EB corbos Linux免费版本现已可供开发人员使用

    2024-07-01

    面向高性能计算的开源软件操作系统基于Ubuntu的EB corbos Linux是一款面向高性能计算开源操作系统,它既能够调用Linux的丰富功能,又同时满足信息安全和行业的相关法规。立即下载保障安全,防止攻击基于Ubuntu的EB corbos Linux是一款支持定制的云就绪软件包,其中附带了SDK、工具和源代码。它通过整合及配置高度模块化的二进制包来防止攻击和漏洞。针对常见漏洞和暴露(CVE)以及软件缺陷的管理保障了内置安全性,而广泛的测试、验证和校验为推出更新提供了支持。您可以在x86-64 PC架构或Raspberry Pi上下载带仿真支持(QEMU)功能的EB corbos Linu...

  • AUTOSAR中的入侵检测系统(IDS)

    2024-07-01

    什么是汽车IDS?ISO/SAE 21434(道路车辆-网络安全工程)是车辆安全标准,定义了当攻击发生时如图所示的5个步骤。汽车制造商必须对车辆中出现的安全漏洞做出响应。但是,只有在这些漏洞已知的情况下,才能执行此操作。汽车IDS由车载IDS和后端组成。[1]IDS检测针对ECU和网络的外部攻击,将其收集后发送到汽车制造商的后端-安全运营中心(SOC)。汽车制造商对数据进行评估并决定如何应对。[1]分布式车载IDS架构主要由四部分组成:[2]安全传感器入侵检测系统管理器(IdsM)安全事件存储入侵检测系统报告器(IdsR)安全传感器和安全事件AUTOSAR的BSW,CD...

  • 基于TriCore TC V1.8架构的MCU(TC4xx)虚拟化特性

    2024-07-01

    我们已在上篇文章中介绍了基于Cortex-R52架构的MCU虚拟化特性,本文将继续针对MCU上的虚拟化特性,研究下新一代Aurix芯片TC4xxx是如何设计的。关于TC4xxAurix TC4xx系列是英飞凌为车载实时应用所设计生产的第三代多核微控制器平台,28nm规格,采用增强型TriCore v1.8架构,最多支持6核,频率可高达500MHz。[1]TC4系列芯片最高支持25MB片上存储,支持低延时Nvm访问。链接方面,支持5Gbps以太网,PCIe,10Mbit T1S以太网和CanXL,同时拥有硬件级的数据路由引擎加速器。安全方面,支持ASIL-D功能安全等级且遵循ISO21434信息安全要求。TC4系列另外一大亮...

  • 通过云工作流和汽车操作系统加速代码部署

    2024-07-01

    引言现在,汽车行业正在经历范式转移,这就要求OEM采用基于云的工作流程和汽车操作系统等新方法和解决方案加快车载软件交付。客户需求表明,汽车需要更加网联化、智能化、共享化和电动化(新四化)。麦肯锡报告显示,到2030年,95%的新车将具备联网功能,64%的客户会为获得更好的自动驾驶体验而更换OEM。从2035年起,欧盟法律将要求所有新车实现零排放;未来两年内,三分之二的美国客户表示选择共享出行的几率会增加。向软件定义汽车(SDV)转型是OEM及其供应商构建和支持新四化特定功能的范式转移,例如数字座舱(如车载信息娱乐、安全显示和内部监...

  • 基于Cortex-R52架构的MCU虚拟化特性

    2024-07-01

    关于ARM CortexARM Cortex系列分为三类:Cortex-A,Cortex-R,Cortex-M。其中,基于Cortex-A的处理器适合运行对性能有极高要求的系统,如果是有比较高性能的同时,还需要保证实时性,则适合采用Cortex-R架构的处理芯片,Cortex-M则适合其他应用于嵌入式系统的微控制器芯片。[1]关于ARM Cortex-R52作为基于ARMv8-R架构下的第一款R核处理器,Cortex-R52拥有4个核心,采用16纳米工艺,最高时钟频率为1.6GHz。[2]R52是一款32位的高性能实时处理器,拥有极高的功能安全标准,同时也极具灵活性,4个核心既可以独立运行,也可以配置为至多4核锁步或者split-...

  • C/C++包管理Conan教程【16】如何重用recipe中的python代码

    2024-07-01

    conan recipe是基于python编写的,在一个项目当中我们如何能够利用其他包中recipe的函数,做到代码重用,提高代码质量呢?接下来,我们首先进入到python_requires练习当中。python_requires下有两个子目录,一个是consumer,一个是mytools,我们目标是在consumer中使用mytools编写好的函数。先进入到mytools文件夹:先看一下conanfile.py是怎么写的:这里有一个mymsg函数,接收conanfile作为输入参数。然后执行:(conan export的作用是将recipe(conanfile.py以及相关文件)拷贝到本地缓存目录中)conan export . user/testing然后我们再去consumer目...

  • [Classic AUTOSAR学习] Crypto模块里的Key/KeyType/KeyElement

    2024-07-01

    之前研究了下crypto stack以及初步了解了下配置,不过在crypto模块(这里以EB crypto software为例)里,AUTOSAR定义的Key/KeyType/KeyElement的关系以及Element是如何在加密过程中被使用的,没法一下子理解。今天抽空再次阅读了下AUTOSAR规范,理了下思路。规范中的解释我们先来看下规范中对于这几个术语是如何解释的:Key: 可以被Csm的job关联;在Crypto驱动模块中,Key会关联到一个Key Type。Key Type: 包含Key Element的关联信息;一般由Crypto驱动提供商做好预配置。Key Element: 用来存储数据,这个数据既可以是Key Material,也可以是AES加密...

  • 汽车操作系统技术 | 汽车Linux文件系统断电可靠性的确定性黑盒测试

    2024-07-01

    1.文件系统断电可靠性问题“一切皆是文件”,这是Linux生态系统中最常被引用的经验法则之一。这体现了文件以及文件系统可靠性对Linux操作系统的重要性。提高可靠性最简单的方法就是把文件系统设置为只读状态。即禁止对其中的内容作任何修改。这样,文件系统便不会因写入操作期间发生故障而受损。当然,您也可以不这么做。配置数据、日志文件、临时信息及其他数据需要一个可靠的可写文件系统。图1:Linux内核中的文件系统考虑到汽车应用的独特需求,断电时确保系统的可靠性非常重要。汽车嵌入式系统面临两种高风险:意外失电以及意外失电时处理不当导...

  • [Classic AUTOSAR学习] 简单理解Crypto Stack的配置以及执行流程

    2024-07-01

    一般来说,提供Crypto模块的时候应当有一个预配置,这个预配置代表了Crypto模块的能力,能够提供什么样的加密功能。如果Crypto不能提供某种加密方式的处理,那么Csm里也不可能配置的出来。从项目角度来说,通常的配置方式是从Csm开始,然后配置CryIf,再然后配置Crypto。Csm的配置基本概念可参考从Csm开始,用户先选择好使用哪种加密方式以及对应的key。之后用户可以定义Job以及队列。在CryIf中,用户需要定义Csm需要用到的功能以及Crypro能够提供的功能之间的关联关系。在Crypto中,用户调整或者扩展预配置的算法以及密钥。以MAC为例我们来看一个消...

  • [Classic AUTOSAR学习]AUTOSAR定义的几种加密服务

    2024-07-01

    AUTOSAR规定了几种加密服务,我们在配置Primitive的时候会涉及到它,如果不记得Primitive是什么概念了,可以先回顾下:服务有以下几种(以ASR4.3为例),我们分别来看看是每种服务用来做什么:它们对应接口的输入输出参数要求如下(注:Secure Counter的内容在后续ASR版本中已删除,不在讨论范围之内)Csm_Hash哈希算法可以接收一组任意长度的输入数据,经过算法后返回固定长度的字符串输出。哈希是单向的,只有“加密过程”,不可逆,即使输入数据只有一个字母不同,计算得出的哈希值也会完全不一样。所以使用哈希可以比较方便的比较传送数据的发送...

  • CAN周期波动优化方法

    2024-07-01

    对于车载控制器来说,CAN周期的波动通常是有严格的标准,国标要求如下,基于国标,各个主机厂在这一块稍微有些差异,不过大部分要求是不超过10%,比如10ms的报文,周期波动范围是9~11ms。▲图1 GBT 34658-2017中要求那如果遇到报文周期偏大的问题该从何下手,或者说有哪些解决办法呢?首先来梳理一下CAN报文的发送流程,CAN通信协议栈的整体架构如下图所示,包括应用层,交互层,网络层,数据链路层,物理层。▲图2 CAN通信从应用层到硬件的流程(来源CSDN)从各层的交互接口来看,报文接收polling接收方式的流程如下图所示。Can_MainFunction_Read...

  • 基于Ubuntu的EB corbos Linux构筑隐形容器壁垒

    2024-07-01

    1.摘要汽车高性能计算(HPC)的一大优势是能够将各种功能整合到单个ECU上,并利用其产生的协同效应,同时仍能保证各功能的独立性。一种显而易见的解决方案是利用企业和云计算中已成熟的一组特性,即所称的“容器”。为实现最大回报,最重要的是遵守在所有重大实现项目中广泛落实的开放容器计划(OCI)行业标准。对许多应用程序而言,最常用的实现方案之一是以Linux为基础的。2.引言基于Linux的容器是一种概念,软件集成商利用这种容器将运行时环境与主机操作系统隔离。它经常被用于在封闭环境内运行软件。在汽车行业中,由不同公司提供最终产品的某...

  • C/C++包管理Conan教程【12】解决冲突

    2024-07-01

    在requirescon_flict项目中,有两个子文件夹,如果分别进行conan create操作创建lib a 和lib b,然后再在根目录执行conan install,是会报错的:conan create lib_a user/testingconan create lib_b user/testingconan install .lib a 和lib b分别依赖zlib的两个版本,这样就导致如果还有一个包同时依赖lib a 和lib b的时候,是无法成功的。要解决这个问题,可以在conanfile.txt中显式设置依赖,例如在[requires]中增加add zlib/1.2.11然后再conan install:就成功解决冲突了。还有一种冲突,即:你可以通过在conanfile.txt中修改[options]字段,在co...

  • [Classic AUTOSAR学习]PDU Flow/什么是PDU/如何理解PDU

    2024-07-01

    如果工作内容和通讯有关,在和同事或者客户交流时,基本离不开"PDU","Signal"等词语。如果没有特别的要求,只要涉及到消息,信号等的场合,说PDU, Signal准没错。不过呢,为了提高沟通效率,有的时候我们可以具体指出是说的什么模块有关的PDU,什么功能的PDU;因此,今天我们就来回顾一下PDU这个概念。PDU是Protocol Data Unit的缩写,而我们又知道,协议有很多种,不同的功能簇,分层的每一层都可能有一种协议的定义,因此PDU是一个相对广泛的概念。例如Com模块中组合了signal的PDU,CanIf模块中为使用CAN通信而创建的PDU等等。基于分层的不同,在A...

  • 锁步,冗余执行,以及分核锁

    2024-07-01

    本文翻译并整理自Comparing Lock-Step, redundant execution & Split-Lock - Embedded blog - Arm Community blogs - Arm Community根据ISO26262,功能安全是指不存在因电气和电子系统故障行为引起的危害而导致的不合理风险。无论垂直市场如何,这个定义都意味着对任何安全相关系统有很多非常具体的要求。各种安全标准还定义了不同级别的安全完整性,即特定系统需要有多“安全”。例如,控制车辆制动器的系统将具有最高级别的安全性,因为这种系统的故障可能是灾难性的。然而,控制驾驶员座椅电机的系统虽然仍具有安全要求,但相对没有那么高的要求...

  • [Classic AUTOSAR学习] SWC设计与应用(二)-- Port and Interface

    2024-07-01

    VFB的概念解释了不同SWC之间的通信范式:基于操作通信的client/server,以及基于数据通信的sender/receiver。由此需要定义不同的PortInterface,例如SenderReceiverInterface和ClientServerInterface。什么是Port Interface如果你对面向对象的编程语言有了解,Interface在PHP,JAVA等中都有类似的概念。在AUTOSAR中,PortInterface描述了交换信息的静态结构,当然,你看到静态这两个字,可能会问还有动态数据可以交换吗?你说的没错,只是这个动态数据并不由PortInterface来定义,而是需要定义在PortPrototype当中。当isService属性设置为false时,P...

  • Elektrobit 宣布推出首款适用于英飞凌 AURIX TC4x 微控制器的车规级嵌入式操作系统和虚拟机监控程序

    2024-07-01

    这项合作将助力 OEM 和一级供应商为 AURIX TC4x MCU 开发基于 Classic AUTOSAR 的 E/E 架构新版本 EB tresos Embedded Hypervisor 支持核心分离和 AUTOSAR协议栈并行运行,从而降低硬件和认证成本德国埃尔朗根,2022 年 10 月 24 日 – Elektrobit 今天宣布推出首款适用于英飞凌科技公司 (Infineon Technologies AG )出品的新型 AURIX TC4x 微控制器(MCU)的车规级嵌入式实时操作系统(OS)和虚拟机监控程序(hypervisor)。EB tresos AutoCore OS 和新版本 EB tresos Embedded Hypervisor 支持 OEM 和一级供应商更轻松地开发和部署基于 AUTOS...

  • 简析英飞凌TC3XX QSPI模块配置

    2024-06-30

    接着之前的英飞凌TC3XX的文章,今天来梳理一下SPI模块的信息。01.QSPI模块简介首先什么是QSPI呢?QSPI中的Q是“Queue”的缩写,指的是一块通用的内存,其中包含两种数据,分别为配置数据和传输数据,配置数据就是寄存器的配置,传输数据就是实际要发送的数据,最简单的Queue组成如下图所示,一个4byte的配置数据以及一个4byte的传输数据组成。那QSPI有什么好处呢?Queue 使得不同格式的SPI数据的传输更高效,例如:1. 使用一个DMA通道就可以完成Queue和QSPI外围设备的数据传输;2. 通过Queue的数据就可以自动改变SPI数据格式及延时时间配置而不需要C...

  • 对于S32G xRDC(扩展资源域控制器)的理解

    2024-06-30

    xRDC简介项目上,有很多外设和内存资源都可以被利用,例如核心,总线,内存区域,从外设等等。为了能够将这些资源划分到不同的分区或者域中,我们需要借助xRDC完成,由xRDC来管理访问权限,系统内存保护和外设隔离等等。划分的域,可以为每种特权等级定义访问权限策略,关于Arm的特权等级介绍,可以参考:基于xRDC分配不同的资源,可以为同一芯片上的应用强制应用FFI。常见的应用场景有:隔离实时应用和非实时应用隔离安全代码和非安全代码隔离第三方非可信应用和可信应用xRDC没有自己的中断,如果监测到非法访问,在M核上会引发Bus Fault异常,在A...

  • [Classic AUTOSAR学习] SecOC通信安全模块(入门篇)

    2024-06-30

    如不做特殊说明,本文基于21-11规范进行解读。关于信息安全方面的大致概念,请阅读:简介SecOC模块的目的是在PDU的级别,针对关键数据作资源高效且可行的验证机制,保证数据安全,这种安全机制可以无缝集成到AUTOSAR项目当中。SecOC既可以支持对称加密方式,也能支持非对称加密方式,AUTOSAR规范主要基于对称加密方式进行说明。在对称加密过程当中,消息认证码(MAC)是关键,它能以更小长度的密钥以及实现的便利程度,达到非对称加密同样的安全等级。对于既有项目来说,这样的方式也充分考虑了过去的系统当中所能提供的有限资源,尽量将资源消耗程...