ADAS系统安全架构设计及安全等级的分解

2023-05-16

已剪辑自: https://mp.weixin.qq.com/s/PaFQDUR_iOnEeueYQ82m_w

笔者从事功能安全领域工作八年有余,结合个人经验分享一下对系统安全架构设计的理解,希望能够解决部分同行对于安全架构设计的痛点。

图片

注:图片来源于网络,如有侵权,请及时联系作者删除。

➡本文主要内容分为6个部分(约7700字,30分钟阅读)

随着汽车行业电气化智能化的快速发展,功能安全标准ISO 26262逐渐被各大汽车制造企业及零部件供应商重视。近期,《智能网联汽车生产企业及产品准入指南》明确将功能安全和预期功能安全作为汽车制造和生产的准入要求,体现了国家对于汽车安全的重视,功能安全的实施与否已经成为了衡量汽车制造企业及零部件供应商造车能力的关键性指标。

然而,功能安全标准的发布和实施历史并不悠久。根据笔者观察,尤其国内大部分汽车制造和零部件供应商企业,基本从2014年起才开始关注功能安全设计。因此功能安全在国内的发展其实还远未达到成熟期,可以说目前依然处于概念建立期或者快速发展期。

因此,面对日新月异的汽车电子电气系统的发展,如何正确地理解或者考虑该产品的安全设计给很多同行带来了困惑。对于一个系统,架构设计通常决定了该系统的整体性能表现,而功能安全标准对架构设计的要求及安全分析方法论引用比较复杂,如何在系统设计之初,合理并充分的考虑其安全设计成为了当前很多同行在做安全设计的一个难点。

笔者从事功能安全领域工作八年有余,有过多家外企合资企业的三电系统,ADAS系统相关产品的安全开发设计经验。此次受SESETECH安全技术论坛邀请,结合个人经验分享一下对系统安全架构设计的浅薄理解,希望能够解决部分同行对于安全架构设计的痛点。限于个人认知,此文仅供各位同行交流讨论,不针对任何企业或者产品安全提出设计建议。

内容框架:

安全架构设计必须了解的术语及安全方法说明

E-GAS三层架构的理解及使用约束

ADAS系统安全架构设计及安全等级的分解

02 安全架构设计必须了解的

术语及安全方法说明

在ISO 26262的第三部分,第四部分及第九部分,提到了很多关于系统或者相关项的安全术语,包括故障类型判断,安全分解策略,故障控制/避免措施,等。如何正确地理解并应用这些术语及背后的方法论,对于安全架构设计尤为重要。本文主要针对涉及到系统安全架构设计的必要术语进行一些系统性阐述,帮助大家理解其中关系。

故障控制措施(Fault control)

和故障避免措施(Fault avoidance)

在功能安全标准或者一些教学中,经常会提到系统性失效和随机硬件失效两个概念作为电子电气系统的两大失效来源。在安全设计时,我们应当理解,并非所有的失效都能够通过安全机制来诊断或者控制,例如,基于系统层面FMEA或者FTA分析,导出可能违背安全目标的可能失效来源后,需要基于具体的失效原因制定对应的安全措施。

对于某个器件的随机硬件失效或者某个功能的系统性失效,如果可以通过特定安全机制进行诊断或者控制达到安全状态的,我们把这一类安全措施归纳为故障控制措施。(本文提到的故障控制措施包含故障诊断以及容错(fault tolerance))

对于某个算法或者安全控制逻辑设计如果没有可以采用的安全机制能够对它合理性进行诊断及控制,那么就应该功能实现本身设计为对应的安全等级以对该功能的系统性失效进行覆盖,我们把它归纳为故障避免措施。

需要注意的是,从安全分解的角度,对于故障控制措施的安全需求,我们通常无需考虑进一步分解,对该功能直接进行对应安全级别的设计即可;对于故障避免措施的安全需求,如果有必要,我们才需要考虑进行进一步ASIL分解,进行冗余设计。(本文提到的故障避免措施,仅指代在功能设计时应当考虑的通过符合该功能安全设计流程和方法用于降低故障发生概率,其广泛含义还包含各阶段的安全分析,确认等标准要求的安全活动。)

安全分解(Decomposition)

和分配(Allocation)

对于安全分解和分配,通常在上游安全需求往下游设计细化时考虑。其中,安全分解并非是必须的,而安全分配则是必须的。在考虑安全分解或者分配时,需要有一定程度细化的系统初始架构,包括物理和逻辑架构。结合系统安全分析FTA, FMEA识别的故障控制措施或者故障避免措施,将安全相关的诊断或者控制需求分配到架构元素中去。

进行安全分配和分解考虑时需要注意:

分配最简原则:如果对于某个安全目标或者故障控制措施,能够由系统架构中的一个单独元素完成。则将该安全功能完全分配到该元素中去,并保持该功能元素与其他非安全功能之间的独立性。

分配最后原则:如果对于某个安全目标或者故障控制措施,能够由一条安全关键路径的最后一个元素来实施,那么可以将该安全功能分配到该路径的最后一个元素中去。需要保证该元素对安全需求的实现不受前级输入影响。

分解最大可用性原则:充分利用初始架构中已经存在的冗余元素进行安全需求的分解,而不是去新增新的冗余元素。这里的冗余元素不局限于相同的传感器或者控制器执行机构等,只要两者之间有固定的算法或者合理性关系皆可以考虑构成分解。

分解最简原则:考虑安全分解时,如果实现安全目标或者故障避免措施的诊断或者实施过程比较复杂,那么采用分解策略时,应当采取更为简单有效的安全设计对预期的功能进行分解,并给其分配更高的安全等级,通常推荐QM(X)+X(X)方式进行分解。

冗余(Redundant)

和独立性 (Independent) 设计

基于标准描述,进行安全分解后,需要保证分解后的两个功能具备对上级安全需求的实现的冗余并且完全独立。

冗余理解为:分解后的两个或者多个功能能够分别独立地完成上游安全需求。注意,通常预期功能和其安全机制不能直接构成冗余,除非该安全机制能够完全执行预期功能的安全要求并能独立的控制系统进入安全状态。

例如,MCU的功能控制与外部看门狗不能构成安全分解的关系,因为外部看门狗并不能取代MCU单独的完成所有安全诊断和控制任务;而对于CAN通讯的E2E安全机制可以与CAN总线协议的诊断功能构成安全分解,因为E2E机制可以通过CRC和Rolling Counter覆盖信号传输过程中的信号安全诊断要求,并且独立于CAN总线协议使系统进入安全状态。(E2E诊断要求可以作为安全控制措施成为FSR,而对通讯整体不提安全要求,这种情况下则无需考虑分解,将该控制措施直接按照对应的安全级别实施即可。)

独立性理解为:

分解后的两个或者多个功能之间不存在共同的导致初始安全需求被违背的失效来源或者该类型的失效能够被合理的安全机制覆盖;

注意,标准不仅要求对分解后的安全功能之间做共因失效分析,用于评估安全机制的有效性也需要做分析(预期功能与安全机制之间的独立性)。

要素共存的需要,如果在系统或者软件层面存在不同安全级别或非安全的功能运行在同一块资源区间,则需要保证低安全等级的功能失效不会导致高安全等级的功能失效,或者该失效类型能够被合理的安全机制覆盖。

以上独立性的要求,可以被概括为避免共因失效(Common Cause Failure)和避免级联失效(Cascading Failure),这两类失效通常由FTA及FFI分析后识别,通过DFA分析才能确认分解后的元素完全独立。

失效安全(Fail safe)

失效静默(Fail silent)

失效运行(Fail operational)

及紧急运行(Emergency operation)

在考虑不同产品的功能失效时,需要基于产品功能的可用性要求,在行业内,经常会有如下几个关于安全架构概念阶段的名词,用于定义产品架构级别的失效属性,从而判断该采取哪一种设计作为安全状态。

失效安全(Fail safe):是指一个系统失效后特定功能关闭能够让系统维持在安全状态。例如,对于发动机管理系统的避免非预期扭矩输出这个安全目标,可以考虑采用关闭发动机扭矩输出作为安全状态。或者对于L2及以下的自动驾驶系统功能,也通常考虑采用关闭该特定功能作为安全状态。

失效静默(Fail silent):失效静默类似于失效安全,但是通常理解为系统失效后的一种状态属性,失效静默表示系统失效后对外表现为静默状态,不对其他的功能和输出产生干扰。该词汇用于描述功能失效后的影响,不常用于安全状态定义。

失效运行(Fail operational):如果一个安全状态无法通过功能关闭来实现,而是要保证系统的可用性,那么就需要选择失效运行作为其安全状态。例如对于L4及以上的自动驾驶系统,如果设计要求系统失效后车辆依然可以按照既定的操作进行自动驾驶,则需要设计一套冗余的控制系统,在主控制系统失效后,Fallback系统能够及时接管车辆在既定的ODD运行。类似失效运行的概念,还有失效降级(fail degraded, fail partial),通常对于有失效后可用性要求,又不需要完整的冗余接管的系统,例如,对于车辆灯光控制系统的防止近光灯非预期的完全关闭,这个安全目标需要考虑通过双电源和日间行车灯对近光灯的冗余,保证失效后至少有一个近光灯或者日间行车灯对路面进行照明。

紧急运行(Emergency operation):这个术语不等同于失效运行。紧急运行是指如果安全状态无法在可接受的时间内实现,则需要定义一个紧急操作,让系统在FTTI时间之内能够顺利的过渡到安全状态。这里的安全状态可能是指fail silent或者fail operational。例如,对于L3级别的自动驾驶系统,如果MRC作为系统的安全状态(fail silent),那么fallback系统的MRM功能则可以定义为紧急运行。

限于篇幅,对于概念和系统阶段其他的术语笔者不作展开,主要阐述在安全架构设计时应当考虑的几个基本点,即:

如何分配安全需求;

如何考虑安全分解;

如何考虑安全状态设计。

在开展具体的安全架构设计时,还需要充分地参考安全标准具体要求。

03 E-GAS三层架构的理解及使用约束

早期从事功能安全的同行对汽油发动机管理系统的E-GAS三层安全架构应该都有了解。虽然该架构并非为实现功能安全而专门设计,但是该架构提供了一个很好的应用安全分解的解决方案。基于目前市场上的类似电控系统设计,该架构基于Lockstep Core设计可以支持到最高ASIL D级别的设计要求。

图片

图3.1-E-GAS三层安全架构带LC示意图

(图片来源参考文献[3])

对于三层架构,如果运用安全分解策略,我们应该要注意:

a. L2层级的安全控制功能的输入需要独立于L1层级,以保证两者的独立性;

b. L2可以对L1层级的输出信号进行诊断,诊断输出控制应该独立于L1的输出控制,能够直接对系统进行关断控制,以保证安全状态控制的独立性;

c. L2 也可以通过输入信号进行独立的功能诊断,诊断输出控制应该独立于L1的输出控制,能够直接对系统进行关断控制,以保证安全状态控制的独立性。

外部监控设备需要能够独立的对系统进行关断控制而不必依赖于L1或者L2的控制指令,用于避免L1和L2的相关性失效。

在考虑应用E-GAS架构时,对其安全分解策略并无固定要求,但是通常推荐采用QM(X) + X(X)的分解策略。主要考虑:

a. 如果系统功能设计已经比较成熟,而引入功能安全后,对该系统进行功能重构复杂程度高。因此采用QM(X) + X(X)的分解能够让系统设计本身保持QM的等级,而只是对安全要求进行冗余的设计,这样能够最小化的影响功能的稳定性。

b. 系统功能安全需求数量不多,并且该系统能够采用相对简单的策略对故障避免措施进行额外的冗余设计。这样能够最小化地增加开发成本。

c. L2 也可以通过输入信号进行独立的功能诊断,诊断输出控制应该独立于L1的输出控制,能够直接对系统进行关断控制,以保证安全状态控制的独立性。

例如,传统的三电系统,发动机管理系统,变速箱控制系统及车身控制系统皆可以采用上述架构。通过E-GAS三层架构,对安全的功能和系统控制功能进行合理的分解,再配合目前主流的英飞凌AURIX(带Lockstep)+SBC(ASIL D)硬件解决方案,能够高效快速的实现高等级的功能安全设计。除此之外,对于VCU, MCU等新能源汽车上的一些控制器,通过E-GAS三层架构来实现ASIL D等级的设计也是很多主机厂和供应商的优先选择。

需要注意的是,对于一个复杂的新系统开发,或者系统功能安全需求数量大且不易做安全分解的,则不建议首先采用E-GAS三层架构。例如,对于自动驾驶系统的域控制器及备份控制器开发,安全需求除了MCU本身控制功能之外,对于感知,定位和规划算法均有涉及,而SoC和MCU之间很难采取统一的安全监控架构。因此,即使采用E-GAS架构实施安全分解策略后,也需要做大量冗余功能及独立性设计,并不能获得很好的时间或者成本的收益。对于这样的系统,可以考虑直接对安全的功能路径进行对应级别的开发,并做好独立性设计。

04 ADAS系统安全架构设计

及安全等级的分解

在考虑ADAS系统的安全设计时,应当首先考虑该系统的自动驾驶等级以帮助判断该系统安全状态,参考SAE J3016定义:

图片

图4.1-SAE J3016自动驾驶功能等级定义

(图片来源参考文献[2])

基于定义来看,如果一个ADAS功能定义在SAE LEVEL 2及以下,则驾驶员需要时刻监督系统的运行用于保证驾驶安全。那么在定义该系统安全状态时,可以考虑采用失效静默架构,当系统失效时,对功能进行关闭即可满足该要求。

而对于SAE LEVEL 3级别的ADAS功能,由于系统定义在发生失效后的一定时间内(通常规定10s及以上),系统仍然需要正确的执行DDT,或者进行功能降级运行状态。因此在考虑该系统的安全架构时,需要设计紧急操作或者失效运行功能(L4及以上)。当主控制器发生安全相关失效而又无法进入安全状态时,备份系统至少需要在规定时间以内保持动态驾驶任务并提示驾驶员接管。

值得注意的是,SAE 并没有要求自动驾驶系统设计必须要做完全的失效运行,只要求接管系统在系统失效时一定时间内能够让车辆到达最小风险状态。因此在考虑ADAS架构设计时,不一定需要考虑系统失效时还能执行完整DDT的能力,只需要考虑接管系统是否有能力通过功能降级及驾驶员未接管后由紧急运行使车辆最小风险状态即可。

L3及以上级别自动驾驶系统安全等级评估

从功能安全的角度出发,由于高安全等级自动驾驶系统允许驾驶员脱眼或者脱手,在评估某系统的功能安全目标时,部分危害事件S,E,C会评定为最高分,继而得到ASIL D级别的安全目标。而当安全目标被违背时,系统又无法通过功能静默直接进入安全状态,因此对于控制信号的可用性设计也会要求满足ASIL D。

当前市场上ADAS系统的设计有很多,各家都在自研架构,但是整体的功能安全目标及最高级别通常均为ASIL D。为了实现最小成本的解决方案,我们需要从系统架构层级,在满足安全要求的前提下尽量简化系统的设计。因此建议在基于SAE标准下的系统架构要素,用于功能安全需求的分解。例如,将fallback系统与Main系统进行冗余,将控制指令可用性失效需求分解由fallback和Main系统实现,考虑两者之间的独立性设计,及可以将部分的安全指标降级。本文将引入一个抽象的ADAS系统架构,用于描述功能安全ASILD级别在架构上的分解及分配关系。假设该ADAS架构抽象为如下图:

图片

图4.2-L3+ADAS自动驾驶系统抽象架构

注意:在图4.2 架构中,为实现ADAS域控制指令的独立性,实现安全分解,将ADAS指令仲裁功能分配给底盘动力域控制器。在实际项目中,指令仲裁功能也可能由ADAS Main控制器实现,通过一定的机制实现自动指令转换,基于此结构,运动域控可以不需要;另外指令仲裁功能也可以集成在底盘域控系统中。对于执行器端的冗余设计,可以基于不同的ADAS功能和安全降级的要求进行必要冗余,而非横纵向完全冗余。执行器端具体方案在本文不做详细展开。

如果定义ADAS系统的整体安全目标简化为:

防止非预期的不能提供控制指令,ASIL D:

基于图4.2,Fallback系统作为Main系统的冗余系统,通过完全的冗余和独立可以将安全指令的可用性需求分解为ASIL B(D)即:

\1. Main 系统需要提供正确的横向和纵向控制指令ASIL B(D)

\2. Fallback 系统需要提供正确的横向和纵向控制指令ASIL B(D)

\3. Main 系统和Fallback系统的控制指令需要完全独立 ASIL D(独立性要求)

需要注意的是,Fallback和Main控制器需要”热冗余”。热冗余是指在Main运行过程中,Fallback也应当同时运行,主要用于减少主控制器失效时指令切换的时间。同时,从安全角度,两者对自身失效进行诊断以防止非预期的失效导致自身控制指令不可用,无论哪个控制器诊断出自身失效,ADAS系统需要在一次驾驶循环内进行MRM或者不允许ADAS功能下次激活

防止非预期的发出错误控制指令,ASIL D

基于图4.2,由于ADAS系统运行时主要由Main系统进行仲裁及整车控制,因此对于Main系统,其安全诊断级别应当做到ASIL D。

由于 Fallback的整车接管控制在Main失效后才会启动。因此,在考虑Fallback系统安全级别时,可以从如下角度考虑适度降低:

例如,如果我们定义SAE ADAS L4系统,在主系统失效后,Fallback系统接管后最大有效运行时间为1小时, 对Fallback接管功能做HARA分析:

\1. Fallback系统的失效造成严重度与Main系统失效相同 (S3);

\2. Fallback系统失效后可控度与Main系统失效相同 (C3);

\3. 在评估暴露度时,基于Fallback功能控车总共时长不超过1小时,相比较Main系统失效场景暴露度E,可以降低其指标,分析过程如下表:

图片

表4.1-1 Fallback系统暴露度指标评估参考

➡发生永久性故障后接管系统的最大操作时间: 假定在最坏情况下,Main控制器在其操作时间内失效。

➡假定系统运行过程由于瞬态切换而累积的接管操作持续时间:假定主系统由于系统性原因或者SOTIF影响短暂切换到Fallback系统,恢复后退回Main控制器。考虑在1000小时的ADAS操作时间内,每小时切换3s。

基于以上分析,我们可以看到,对于fallback系统,其实际的operation time只占ADAS系统operation time不到1%, 因此,可以将其E值由E4降为E2。 继而,对Fallback系统发出错误的控制指令ASIL级别由ASIL D降为 ASIL B。

备注:1. 以上分析假定的前提为Main控制器与Fallback控制器完全独立,其指令仲裁在底盘系统中实施;2. HARA分析中对暴露度E值的评估方法与本文提及的降低策略有偏差,从本文的角度,实际上基于产品Operation time定义来降解,更多的是从降低随机硬件失效概率。对于Fallback控制器系统性失效,很多同行会认为需要按照原始等级(ASIL D)来实施。该分析仅做参考。

基于以上两点,可以简单总结ADAS系统的安全概念:

FSR-1: 在ADAS系统运行过程中,如果Fallback控制器诊断出自身失效,导致无法发出控制指令,Main控制器应当基于Fallback状态,控制系统运行一段时间或者进入MRC*。ASIL B(D) (FSR a,可用性设计,*这里也可以考虑在一个驾驶循环内持续进行DDT);

FSR-2: 在ADAS系统运行过程中,如果Main控制器诊断出自身失效,导致无法发出控制指令,Fallback控制器应当基于当前失效状态,控制系统运行或者降级一段时间或者紧急操作进入MRC。ASIL B(D) (FSR a,可用性设计);

FSR-3: Main控制器应当监控并正确的发出横纵向控制指令,如果Main控制器失效导致无法发出正确的控制指令,Main控制器应当关闭控制输出。ASIL D(FSR b, 防止提供错误的控制指令);

FSR-4: Fallback系统在进行紧急操作或者接管系统驾驶任务过程中,如果Fallback系统监测到自身失效,导致无法发出正确的控制指令,则应当停止发送控制指令 ASIL B (FSR b, 防止提供错误的控制指令)。

由于目前行业内ADAS系统设计,国内外还没有一个权威且受认可的方案,因此以上分析及见解仅作为参考。

本文基于ISO 26262标准的定义,并结合当前部分汽车零部件供应商或者主机厂对于产品的功能安全架构设计实践以及笔者个人经验,尝试对功能安全产品架构设计进行了一些浅薄的描述。希望能够对各位同行解答一部分疑惑或者难点。

【参考文献】

[1] Road vehicles-Functional safety-ISO-26262-X: 2018(E), International Standard, 2018-12.

[2] Surface vehicle recommended practice- J3016 TM, SAE International, 2021-04.

[3] Standardized E-Gas Monitoring Concept for Gasoline and Diesel Engine Control Units – Version 6.0, Audi, BWM, DAIMLER, PORSCHE, VW,2015-07.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ADAS系统安全架构设计及安全等级的分解 的相关文章

  • Qt Designer基础控件介绍

    已剪辑自 https blog csdn net qq 37631516 article details 104786627 1 布局类 xff08 4种 xff09 2 固定弹簧类 2种 xff08 不随布局变化 xff09 3 按钮类
  • python开发环境管理:pip和virtualenv

    python开发环境管理 xff1a pip和virtualenv 不同的python软件需要不同的开发环境 xff0c 互相之间甚至可能有冲突 xff0c 怎么处理 xff1f 使用pip virtualenv和virtualenvwra
  • Qt QFile文件操作详解

    文章目录 QFile文件操作QFile 43 QTextStreamQFile 43 QDataStream 文件操作是非常重要的 xff0c 是数据持久化的方法 通过文件操作 xff0c 我们可以把在软件中设置的数据保存起来 已剪辑自 h
  • Qt布局管理详解(5种布局控件)

    文章目录 QVBoxLayout垂直布局QHBoxLayout水平布局QGridLayout网格布局QFormLayout表单布局QStackedLayout分组布局 已剪辑自 http c biancheng net view vip 9
  • 基于优先级的时间片轮转调度算法(C语言实现)

    已剪辑自 http www demodashi com demo 15341 html 基于优先级的时间片轮转调度算法 1 PCB结构 xff08 Block xff09 由此定义如下结构体 xff1a span class token k
  • Qt自定义信号和槽函数

    文章目录 自定义信号函数自定义槽函数自定义信号和槽的完整实例 已剪辑自 http c biancheng net view vip 9662 html 实际开发中 xff0c 如果仅使用 Qt 提供的信号函数和槽函数 xff0c 会经常遇到
  • QT中信号和槽之间的参数传递和参数匹配

    已剪辑自 https blog csdn net lyc daniel article details 12047819 信号槽如何传递参数 xff08 或带参数的信号槽 xff09 利用Qt进行程序开发时 xff0c 有时需要信号槽来完成
  • QT使用信号与槽时编译错误“no matching function for call to connect“

    转转于 xff1a http t csdn cn K3aYh 初学QT xff0c 在尝试用connect手动关联一个按钮和QlineEdit的时候编译报错 xff0c 如下 xff1a 然后贴上主要代码块 xff1a span class
  • QT-QTableWidget中的cell和item的区别

    文章目录 QTableWidget中单击一个单元格响应不同的函数 xff1a cell和item的区别 xff1a 单击单元格响应自定义函数我的错误思路 xff1a 已剪辑自 https blog csdn net CCLasdfg art
  • QT开发网络调试助手项目总结

    之前整理了一些使用QT开发串口调试助手的项目 博客地址 xff1a 上位机总结 这次继续整理一些使用QT开发网络调试助手的项目 Qt开源作品41 网络调试助手增强版V2022 我的QT学习之路 xff0c 编写UDP 43 tcp网络调试助
  • QT开源项目总结-总有一款适合你

    Qt Open Source Project 开源项目推荐 xff1a 本人收集的有关Qt的GitHub Gitee开源项目 精品收藏 我的Qt作品 Github上的一些高分Qt开源项目 Qt编写项目作品大全 Qt 开源作品
  • Qt 打印调试信息-怎样获取QTableWidget的行数和列数-读取QTableWidget表格中的数据

    文章目录 Qt 打印调试信息怎样获取QTableWidget的行数和列数Qt怎么把QTableWidget表格中的数据读取出来 Qt 打印调试信息 打印当前目录代码如下 xff0c 别忘了头文件 include include lt QtD
  • VR游戏交互开发的一些体验

    VR游戏交互开发的一些体验 本文主要写Unity开发手游过程中VR交互输入控制的一些浅薄的经验交互方面 xff0c 头控和视线按钮依然较为主流 xff0c 可以获得传感器数据来获得输入除了实体按钮输入之外还可以探索其他交互方式 xff0c
  • 一篇文章快速搞懂Qt文件读写操作

    已剪辑自 https www cnblogs com jfzhu p 13546886 html 导读 xff1a Qt当中使用QFile类对文件进行读写操作 xff0c 对文本文件也可以与QTextStream一起使用 xff0c 这样读
  • 完整的PRD文档包含哪些内容?

    完整的PRD文档包含哪些内容 xff1f 千万 xff0c 千万 xff0c 千万别再套模板写需求文档了 xff0c 要想写好需求文档重要的不是包含哪些内容 xff0c 而是为什么包含这些内容 xff01 话不多说 xff0c 直接上干货
  • 分享一个开源的QT的串口示波器

    已剪辑自 https mp weixin qq com s XHELtvZ Wk2hNzsWD52D1w 直接来源 果果小师弟 逛github时看到这个QT的串口示波器 xff0c 完全开源 xff0c 支持串口 TCP 波形显示 通信协议
  • C 语言函数返回值,竟也有潜规则~

    已剪辑自 https mp weixin qq com s WNHx1zhna8iGaYIj6 3 fg 基本上 xff0c 没有人会将大段的C语言代码全部塞入 main 函数 更好的做法是按照复用率高 耦合性低的原则 xff0c 尽可能的
  • 模型在物理学发展中的作用

    已剪辑自 https mp weixin qq com s txS CQAIXPtY6kb2tHukUQ 模型是物理学认识由唯象理论过渡到动力学理论重要的环节 开普勒的行星运行模型 气体的分子运动模型 爱因斯坦的光子模型 卢瑟福 玻尔的原子
  • 第一性原理谈安全性和可靠性

    已剪辑自 https mp weixin qq com s jttd dhv9PmNu25Z zyd5Q 最近从各个行业对系统的安全性的关注度越来越高 xff0c 10月28日 xff0c 工信部公开征求的 道路机动车辆生产准入许可管理条例
  • 在浏览器地址栏输入一个URL后回车,背后会进行哪些技术步骤?

    转载于 xff1a 小林的图解网络系列 关键是要有个上帝视角 xff0c 先要有个网络模型的概念 xff0c 也就是TCP IP 四层网络模型 xff0c 然后针对每一层的协议进行深入 学习计算机网络一定要抓主一个点 xff0c 就是 输入

随机推荐

  • 在MacOS上实现两个网络调试助手的UDP通信测试

    文章目录 一 背景二 网络调试助手软件三 UDP通信过程 一 背景 因为有一个项目要中会使用本机中两个应用程序之间的UDP通信 因此本文记录一下怎么在MacOS上实现两个网络调试助手的UDP通信测试 二 网络调试助手软件 我使用的网络调试助
  • QT和网络调试助手之间的UDP通信

    文章目录 一 背景二 实现过程简述UDP协议工作原理及编程模型UDP 接收端UDP 发送端运行UDP接收端和发送端运行UDP发送端发送数据给网络调试助手 一 背景 之前一篇博客实现了两个网络调试助手之间的UDP通信 文章链接 xff1a 在
  • 一个开源且完全自主开发的国产网络协议栈

    已剪辑自 https mp weixin qq com s 1LE7mGc9mRuajRgNsyirQ onps是一个开源且完全自主开发的国产网络协议栈 xff0c 适用于资源受限的单片机系统 xff0c 提供完整地ethernet ppp
  • PyQt的使用

    使用conda切换到python3 如果不会使用conda xff0c 那么安装anaconda后打开navigator xff0c 再environments中选择创建好的python3环境 xff0c 右键打开terminal即可 安装
  • 前后台系统及嵌入式前后台模式实时性优化

    一 前后台系统 前后台系统 xff0c 即计算机前后台系统 xff0c 早期的嵌入式系统中没有操作系统的概念 xff0c 程序员编写嵌入式程序通常直接面对裸机及裸设备 xff0c 在这种情况下 xff0c 通常把嵌入式程序分成两部分 xff
  • 又一嵌入式开源仿真器

    已剪辑自 https mp weixin qq com s X0I3EotJ8TRqLK8vb8iQvA 同QEMU类似 xff0c Renode也是嵌入式相关的一个模拟器 Renode 针对物联网应用 xff0c QEMU 针对 PC 模
  • SkyEye天目全数字实时仿真软件功能介绍

    文章目录 SkyEye的概念和应用 SkyEye的优势 SkyEye可与第三方语言或者模型集成 基于可视化图形的硬件建模 容器化的仿真平台 FPGA协同仿真 SkyEye的应用案例 SkyEye大规模航电系统仿真案例 SkyEye 飞行器显
  • SkyEye——如何实现1553B总线仿真?

    已剪辑自 https www digiproto com news 204 html 1553B最初是美国军方专为飞机上设备制定的一种信息传输总线标准 xff0c 具有双向传输的特性 xff0c 实时性和可靠性高 xff0c 现已广泛应用于
  • 细数SkyEye异构仿真的5大特色

    已剪辑自 https www digiproto com news 65 html 航天飞行器使用仿真器的重要性 航天飞行器如卫星 载人飞船等需要在空中运行很长的时间 xff0c 如果出现问题回收再调试可能要历时几个月 xff0c 而且不得
  • SkyEye:航空发动机控制系统仿真

    已剪辑自 https www digiproto com news 212 html 航空发动机 xff08 aero engine xff09 是一种高度复杂和精密的热力机械 xff0c 作为飞机的心脏 xff0c 不仅是飞机飞行的动力
  • 基于功能安全的车载计算平台开发:软件层面

    已剪辑自 https mp weixin qq com s SIBvH8u vCk6W28KrPBmA 车载智能计算平台作为智能汽车的安全关键系统 xff0c 软件层面的安全性至关重要 由于车载智能计算平台功能丰富 xff0c 应用场景复杂
  • 软件和硬件中的调用

    文章目录 1 概述 2 1 程序进程内的调用 xff1a 函数调用 2 2 程序进程间的调用 xff1a IPC 2 3 远程程序调用 xff1a RPC 2 4 远程调用REST 3 硬件 调用 3 1 综述 总线模型 3 2 片内的总线
  • 软件和硬件之间的数据交互接口

    已剪辑自 链接 编者按 软件和硬件 xff0c 既相互依存又需要某种程度上的相互独立 通过软件和硬件之间的接口把两者连接在一起 软硬件接口 xff0c 有很多含义 xff1a 比如指令集是CPU软件和硬件之间的接口 xff1b 比如一些硬件
  • 硬件定义软件?还是,软件定义硬件?

    文章目录 1 软件和硬件 1 1 软件和硬件的定义 1 2 硬件定义软件 和 软件定义硬件 的定义 1 3 CPU xff0c 软件和硬件解耦 1 4 CPU的软硬件定义 2 硬件定义软件 2 1 系统从软件逐步到硬件 2 2 硬件架构决定
  • Matlab下多径衰落信道的仿真

    衰落信道参数包括多径扩展和多普勒扩展 时不变的多径扩展相当于一个延时抽头滤波器 xff0c 而多普勒扩展要注意多普勒功率谱密度 xff0c 通常使用Jakes功率谱 高斯 均匀功率谱 多径衰落信道由单径信道叠加而成 xff0c 而单径信道中
  • 硬件接口和软件接口

    文章目录 硬件接口IDESCSISATA光纤通道游戏设备RAID卡USBMD设备MP3视频音频 软件接口Java里的接口面向对象的接口 聊聊软件接口1 什么是接口2 诞生3 早期 xff08 1950 1970 xff09 4 快速发展 x
  • 有关C语言,定时器,周期任务的一些文章汇总

    测试C语言中打印一句 hello world需要耗费多少时间 C C 43 43 开源库 适合嵌入式的定时器调度器 C语言实现的多线程定时器 C语言操作时间函数 xff0c 实现定时执行某个任务小程序 C语言实现任务调度与定时器 Linux
  • SCADE简单了解

    随着新能源三电 智能驾驶等新技术的应用 xff0c 汽车中衍生出很多的安全零部件 xff0c 如BMS VCU MCU ADAS等 xff0c 相应的软件在汽车中的比重越来越大 xff0c 随之而来的安全性 可靠性要求也越来越高 ANSYS
  • 冯诺依曼体系结构与操作系统

    文章目录 详解冯诺依曼体系结构与操作系统前言1 简要背景介绍2 五大部件介绍3 细节解释4 举例理解冯诺依曼机中数据走向 二 全面认识操作系统1 操作系统的概念2 计算机系统 比对 银行系统3 深入认识 管理 xff1a 5 操作系统存在的
  • ADAS系统安全架构设计及安全等级的分解

    已剪辑自 https mp weixin qq com s PaFQDUR iOnEeueYQ82m w 笔者从事功能安全领域工作八年有余 xff0c 结合个人经验分享一下对系统安全架构设计的理解 xff0c 希望能够解决部分同行对于安全架