符合AUTOSAR标准的RTA-OS--Resources详解

原创 汽车电子嵌入式 2023-05-04 07:45

前言

本系列文章将以RTA-OS为例详细介绍AUTOSAR OS标准及概念,并分享实际使用的一些案例,本文为符合AUTOSAR标准的RTA-OS--Interrupts介绍。


符合AUTOSAR标准的RTA-OS --功能简介

符合AUTOSAR标准的RTA-OS --Task详解

符合AUTOSAR标准的RTA-OS --Interrupts详解

正文

4.资源Resources

访问需要在任务和ISR之间共享的硬件或数据可能是不可靠和不安全的。这是因为当较低优先级的任务或ISR正在更新共享数据时,可能会发生任务或ISR抢占。这种情况被称为竞态条件,非常难以测试。


访问共享数据的语句序列称为临界区。为了提供对临界区中引用的代码和数据的安全访问,需要强制互斥。换句话说,必须确保在临界段期间,系统中没有其他任务或二类中断能够抢占正在执行的任务


Task章节中,看到可以将任务声明为非抢占式可以防止出现互斥问题。然而,这种方法是治标不治本的,因为它通过防止出现抢占来防止抢占带来的问题。


操作系统提供基于资源的互斥机制。资源Resources只是一个二进制信号量。当一个任务或二类ISR获得资源时,其他任务或ISR无法获得该资源。这可以防止任何其他任务或ISR同时进入相同的临界区。当临界区结束时,任务或ISR释放资源,另一个任务/ISR可以进入临界区


当高优先级任务被低优先级任务阻止执行时,这称为优先级反转,因为高优先级任务比低优先级任务需要更长的时间来完成它的执行。较低优先级的任务似乎优先于较高优先级的任务运行,这与实际优先级分配的预期相反。高优先级的任务被低优先级的任务阻塞。


由于优先级反转会在系统中引入无界阻塞,二进制信号量在传统操作系统中经常有不好的名声。例如,如果低优先级任务阻止高优先级任务执行,但它本身被一个不需要访问共享资源的中等优先级任务抢占,那么高优先级任务也将被中等优先级任务的执行阻塞。由于低优先级任务在持有共享资源时可能会被抢占多次,因此高优先级任务遭受的阻塞可能是无限的,如果需要确定任务响应所需的最长时间,则会带来严重的问题。在极端情况下,任务可能会达到一种被称为死锁的状态,在这种状态下,每个任务都在等待进入一个临界区,而这个临界区正在被其他任务使用。


AUTOSAR OS中,避免了通常与优先级反转和死锁相关的问题,因为资源是根据锁定协议锁定的。这个锁协议称为优先级上限协议(优先级天花板协议),特别是称为立即继承优先级上限协议(或堆栈资源协议)的版本。


优先级上限协议使用了优先级上限的概念。系统中的每个资源都被分配了一个上限优先级,该优先级等于需要访问该资源的任何任务或ISR的最高优先级。当任务或ISR获得资源时,任务/ISR的运行优先级将增加到资源的最高优先级(当且仅当该优先级高于任务/ISR当前的运行优先级)。当资源被释放时,任务或ISR的优先级恢复到该任务或ISR发出呼叫之前的优先级。如图4.1所示。

 

4.1 提升至最高优先级


立即继承优先级上限协议提供了两个主要优点:

1)优先级反转被最小化

每次高优先级任务或ISR准备就绪时,它的执行最多只能被一个已经持有资源的低优先级任务或ISR延迟一次。这意味着没有累积阻塞,因此可以对任务遭受的阻塞设置上限-最大阻塞时间是低优先级任务/ISR持有共享资源的最长时间。此外,这种阻塞总是在执行开始时发生。这样做的结果是,资源在需要锁定时总是处于空闲状态。在AUTOSAR操作系统中不需要等待资源被释放。


2它保证没有死锁

一个任务或ISR必须在执行中才能产生锁。假设一个任务(ISR)试图获取资源。如果另一个任务或ISR已经拥有资源,那么由于该任务或ISR必须以最高优先级运行,因此发出请求的任务不会执行(它不会是系统中最高优先级的任务或ISR),因此不能尝试锁定资源。


4.1 配置资源Resource Configuration

在最基本的级别上,资源只需要命名和分配类型。AUTOSAR OS中有三种类型的资源:


1标准资源Standard Resources是普通的操作系统信号量。配置标准资源将创建具有指定名称的资源。


2链接资源Linked Resources允许为标准(或另一个链接的)资源设置别名,以便可以对同一资源进行嵌套锁定。这些将在第4.4节中详细讨论。


2)内部资源Internal Resources是在进入任务时自动锁定并在任务结束时自动释放的资源。这些将在第4.5节中详细讨论。

 

4.2:在rtaoscfg上配置资源


RTA-OS需要知道哪些任务和ISRs使用了哪些资源。然后,它可以计算优先级上限协议所使用的上限优先级。

#include TASK(Task1) {  ...  GetResource(Resource1);  /* Critical section. */  ReleaseResource(Resource1);...  TerminateTask();}

Example 4.1: Using Resources


可以在任务或ISR配置期间配置每个任务或ISR的其他资源使用信息。


4.2显示了已经声明了一个名为Resource1的资源。在程序中引用此资源时,必须使用相同的名称。


4.2 中断级别的资源Resources on Interrupt Level

AUTOSAR OS中,任务和中断之间共享的资源是可选的。RTA-OS支持这个可选特性。


RTA-OS将自动识别组合资源,因此您不需要进行任何特殊配置。


当任务获得与ISR共享的资源时,RTA-OS将屏蔽所有中断,中断优先级小于或等于共享资源的最高优先级中断。


这只是优先级上限协议的扩展。在任务和ISR之间共享资源意味着提供了比启用/禁用和暂停/恢复API调用更大的对内部中断屏蔽的控制,因为它们可以将中断子集屏蔽到特定的优先级级别。因此,当使用支持嵌套中断的RTA-OS端口时,中断级别的资源特别有用。


4.3 使用资源Using Resources

可以使用GetResource() API调用获取资源。然后,您可以使用ReleaseResource()调用释放资源。一个任务或ISR必须在释放了它所锁定的所有资源之后才能终止。


任务或ISR只能使用在RTA-OS配置过程中指定的资源。例4.1展示了如何在Task1中使用资源。


GetResource()ReleaseResource()的调用必须匹配。无法获取已锁定的资源。无法释放尚未锁定的资源。

 

4.3:执行具有资源锁的任务


当执行GetResource()时,它将调用任务或ISR的优先级提升到资源的最高优先级。资源的上限优先级是共享该资源的所有任务或ISR的最高优先级,由RTA-OS自动计算。如果任何优先级低于上限优先级的任务准备好运行,那么它将被阻止执行(它将被阻塞),直到正在运行的任务的优先级恢复正常。


4.3通过以下配置显示了此效果:

 

Task 2的第一次激活被阻塞,因为Task 1已经锁定了R2Task 2的第二次激活也被阻塞,但这次是因为Task 1锁定了R1Task 3的第一次激活同样被阻塞,因为Task 1持有R1。当Task 1释放R1时,操作系统运行优先级最高的就绪任务Task 3。在Task 3终止时,执行Task 2,最后,当Task 2终止时,继续执行Task 1


4.3.1 嵌套资源调用Nesting Resource Calls

可以同时获得多个资源,但是API调用必须严格嵌套。我们来看两个例子;一个显示嵌套错误的调用,另一个显示嵌套正确的API调用。


4.2显示Resource1Resource2以错误的顺序被释放。


4.3展示了一个正确嵌套的示例。所有的资源都被保留,然后按正确的顺序释放。


GetResource(Resource1);  GetResource(Resource2);ReleaseResource(Resource1); /* Illegal! *//* You must release Resource2 before Resource1 */  ReleaseResource(Resource2);

Example 4.2: Illegal Nesting of Resource Calls


GetResource(Resource1);  GetResource(Resource2);    GetResource(Resource3);    ReleaseResource(Resource3);  ReleaseResource(Resource2);ReleaseResource(Resource1);

Example 4.3: Correctly Nested Resource Calls


4.4 链接资源Linked Resources

AUTOSAR操作系统中,对相同资源的GetResource() API调用不能嵌套。但是,有时可能需要嵌套资源锁。


应用程序可能使用在多个任务之间共享的函数。如果共享函数需要获得一个任务使用的资源,而其他任务不需要,会发生什么情况?看一下例4.4


#include void SomeFunction(void) {  GetResource(Resource1); /* !!! Not allowed if caller is Task1 !!! */  ...  ReleaseResource(Resource1); /* !!! Not allowed if caller is Task1 !!! */}

TASK(Task1) { GetResource(Resource1); /* Critical section. */ SomeFunction(); ReleaseResource(Resource1);}

TASK(Task2) { SomeFunction();}


Example 4.4: Illegal locking of previously locked resource


在这些情况下,(可能)持有的资源的嵌套必须使用链接的资源。链接资源是现有资源的别名,并保护相同的共享对象。


4.4显示了如何使用rtaoscfg声明链接的资源。

 

4.4:配置链接资源


使用链接的资源,例4.4将被重写为例4.5所示。


#include void SomeFunction(void) {  GetResource(LinkedToResource1); /* Okay */  ...  ReleaseResource(LinkedToResource1); /* Okay */}
TASK(Task1) { GetResource(Resource1);/* Critical section. */ SomeFunction(); ReleaseResource(Resource1);}TASK(Task2) { SomeFunction();}

Example 4.5: Using Linked Resources


链接的资源使用与标准资源相同的API调用来保持和释放(这些将在4.3节中解释)


也可以创建链接资源到已有的链接资源。


4.5 内部资源Internal Resources

如果一组任务非常紧密地共享数据,那么就运行时成本而言,使用标准资源来保护对每个数据项的每次访问可能过于昂贵。甚至可能无法确定需要保存资源的所有位置。


可以通过使用内部资源来防止对共享数据的并发访问。内部资源是为任务的生命周期分配的资源。使用rtaoscfg离线配置内部资源。然而,与普通资源不同的是,无法获取和释放它们。


从概念上讲,RTA-OS在启动任务之前立即锁定内部资源,并在任务结束后立即释放资源。


当任务进入运行状态时,RTA-OS中内部资源的实现不会产生运行时成本,因为rtaosgen会计算任务脱机运行的优先级,并按此优先级简单地调度任务。共享内部资源的任务集在配置时使用rtaoscfg静态定义。


注意:AUTOSAR OS中,内部资源仅对任务可用。但是,也没有理由不能由第一类和第二类ISR共享内部资源。RTA-OS提供了AUTOSAR OS的扩展,允许ISR使用内部资源。当任务锁定与ISR共享的内部资源时,则任务在中断的IPL处执行,并且在任务期间阻塞所有同等或更低优先级的中断。


4.5显示了一个内部资源(称为InternalResource)的声明,它在任务t1和任务t3之间共享。

 


4.5 使用rtaoscfg声明内部资源


如果任务使用内部资源,RTA-OS将在调用任务的入口函数之前自动获取内部资源。然后,在任务终止、调用Schedule()WaitEvent()之后,资源将自动释放


在任务执行过程中,所有其他共享内部资源的任务将被阻止运行,直到内部资源释放。


4.6显示了共享相同内部资源的三个任务的执行情况。

 

4.6 内部资源的执行


重要的是要注意,当一个拥有内部资源的任务完成时,操作系统会根据就绪任务的正常(基本)优先级做出调度决策。如果一个任务正在运行,并且共享相同内部资源的多个任务已经激活,那么在运行的任务终止时,将选择优先级最高的就绪任务来运行,然后按内部资源的最高优先级调度。


任何优先级低于内部资源优先级上限的任务(包括不共享内部资源的任务)在执行共享内部资源的任务时将被阻塞。可以在图4.6中看到一个示例,其中优先级为1Task1与优先级为3Task共享内部资源。如果Task1Task2Task3启动之前开始运行,那么这两个任务将被延迟(阻塞),直到Task1完成。


然而,所有不共享内部资源的高优先级任务仍然可以抢占。图4.7显示,Task 1最初以优先级3运行,因为它与优先级3的任务共享一个内部资源。当Task 1运行时,Task 2就可以运行了。task2的优先级低于Task1的活动优先级,因此它不能抢占。当Task4被激活时,它可以抢占Task1,因为它的优先级是4,即它的优先级高于Task1的活动优先级。任务2只能在任务1终止时运行。

 

4.7 内部资源阻塞了不共享资源的任务


从这种行为可以清楚地看出,锁定内部资源的任务将阻止任何优先级高于自身但优先级低于内部资源最高优先级的任务在整个任务期间运行。当低优先级任务阻止高优先级任务执行时,称为阻塞。共享内部资源的任务相对于彼此非抢占性地运行。


一旦共享内部资源的集合中的任务获得了对CPU的访问权,它将在不被集合中的任何其他任务抢占的情况下运行。这样做的结果是,与完全抢占式系统相比,高优先级任务可能需要更长的时间才能访问CPU


4.6 使用资源以最小化堆栈使用Using Resources to Minimize Stack Usage


资源在应用程序中的主要作用是在关键部分上提供互斥。然而,RTA-OS的单堆栈模型意味着资源有一个有用的次要角色——最小化堆栈使用。回想一下,共享资源的任务不会相互抢占。在RTA-OS使用的单堆栈模型中,这意味着它们的堆栈使用是有效覆盖的。


可以利用这个特性来权衡系统中的时间和堆栈使用情况。下面几节介绍对应用程序的简单修改如何减少堆栈使用。所有这些修改都会在系统中引入额外的阻塞因素。


这些阻碍因素的影响取决于系统。回想一下,优先级上限协议确保任务或ISR在执行期间最多被阻塞一次。最坏阻塞时间是任何低优先级任务或ISR可以占用相同资源的最大时间。


这意味着,如果额外的阻塞因素小于或等于当前任务/ISR所遭受的最坏情况阻塞,则不会对响应时间产生影响,并且减少的堆栈使用将被释放。如果额外的阻塞因素比当前的最坏情况阻塞更长,那么响应时间将更长。如果响应时间保持在任务/ ISR所需的截止日期之内,系统仍将正常运行。


4.6.1 内部资源Internal Resources

给定一组共享内部资源的任务,RTA操作系统使用的最坏情况堆栈等于使用最多堆栈的任务所需的最大堆栈空间。在传统操作系统中,最大堆栈空间等于任务堆栈的总和,而不是它们的最大值。


如果需要最小化堆栈空间,那么可以通过在消耗大量堆栈的任务之间共享内部资源来利用RTA-OS的单一堆栈架构的优势。图4.8中的第一个堆栈显示了5个抢占任务ABCDE的最坏情况堆栈消耗情况。通过在任务BC之间以及任务DE之间共享内部资源,可以显著节省堆栈空间。图4.8中的其他四个堆栈显示了现在可能发生的情况——最坏的情况是AB的最坏情况抢占,或者CDe的最坏情况抢占。从图中可以看到,AC抢占,被D抢占,这是最坏的情况,这比不使用内部资源时的堆栈要少得多。

 

4.8:使用内部资源节省堆栈空间


4.6.2 标准资源Standard Resources

如果一个任务调用一个使用大量堆栈的函数,那么可以考虑锁定函数调用周围的资源,并与优先级更高的任务共享资源。任务不需要在代码中锁定资源或调用函数——共享只是为了强制任务的执行以更高的优先级运行。这将防止高优先级任务在使用大量堆栈时抢占任务,从而减少总堆栈需求。


禁用函数调用周围的中断具有类似的效果——有效地用临时屏蔽的ISR覆盖函数调用的堆栈使用情况。


4.7 作为资源的调度程序The Scheduler as a Resource

如果一个任务有一个必须在不被系统中任何其他任务抢占的情况下执行的关键段(回想一下,调度程序是用来执行任务切换的),则该任务可以保留调度程序。为此目的,所有任务都可以使用一个名为RES_SCHEDULER的预定义资源。RES_SCHEDULER是任务共享数据的一种方便方法,无需手动声明在所有任务之间共享的资源。


当一个任务获得RES_SCHEDULER时,所有其他任务将被阻止抢占,直到该任务释放RES_SCHEDULER。这实际上意味着任务在RES_SCHEDULER被占用的时间内是非抢占性的。


这比使整个任务非抢占性要好,特别是当任务只需要在其总执行时间的一小部分防止抢占时。


必须指定应用程序是否使用RES_SCHEDULER。这是在“一般”中设置的。如果配置RES_SCHEDULER,那么RTA-OS将自动生成一个称为RES_SCHEDULER的标准资源,并在配置中的每个任务之间共享它。由于RES_SCHEDULER的行为类似于标准资源,可以创建链接到RES_SCHEDULER的链接资源,如图4.9所示。

 

4.9Linking to RES_SCHEDULER


使用RES_SCHEDULER可以改善低优先级任务的响应时间,否则这些任务可能会受到应用程序中其他任务的多次抢占,但代价是高优先级任务的响应时间更长。


如果您不需要在应用程序中使用RES_SCHEDULER,那么您可以通过禁用它的生成来节省ROMRAM空间,如图4.10所示。

 

4.10Disabling RES_SCHEDULER


4.8 选择一个抢占控制机制Choosing a Preemption Control Mechanism

如果在一对GetResource()ReleaseResource()调用之间出现不需要锁的代码,则可能会降低系统的响应性。考虑到这一点,当您在应用程序中使用资源时,应该将GetResource()调用尽可能地放置在您使用该资源保护的代码段附近。


然而,这条规则有一个例外。当有一个短时间运行的任务或ISR对同一资源进行多次GetResource()ReleaseResource()调用时,就会出现此异常。API调用的成本可能会占整个任务执行时间的很大一部分,因此也可能占响应时间的很大一部分。


可能会发现,将整个任务或ISR主体放在GetResource()ReleaseResource()调用之间实际上缩短了最坏情况下的响应时间。


应该尽可能避免使用非抢占式任务并获取RES_SCHEDULER。当资源被占用的时间最少,并且影响的任务数量最少时,系统的响应性和可调度性就会得到改善。


4.9 避免竞态条件Avoiding Race Conditions

调用TerminateTask()。在某些情况下,这可能会在应用程序中引入竞态约束条件。这可能会导致错过任务激活(您在本章开头了解了竞争条件)

4.6展示了竞态条件可能成为问题的系统类型。假设两个BCC1任务在有界缓冲区上交换数据。


在例4.6中,在资源被释放到任务结束之间,Read可以被Write抢占。当任务与任务连接时,激活将丢失。这是因为Read仍在运行。换句话说,一个任务正在被激活,但它没有处于挂起状态。


要解决这个问题,可以允许排队激活Read任务。这意味着您应该将任务设置为BCC2


#include TASK(Write)  /* Highest priority .*/  WriteBuffer();  GetResource(Guard);  BufferNotEmpty = True;  ReleaseResource(Guard);  ChainTask(Read);}
TASK(Read) /* Lowest priority. */ ReadBuffer(); GetResource(Guard); if( BufferNotEmpty ) { ReleaseResource(Guard); /* !!! Race condition occurs here !!! */ ChainTask(Read); } else { ReleaseResource(Guard); /* !!! Race condition occurs here !!! */ TerminateTask(); }}

Example 4.6: A System where a Race Condition can Occur


4.10 小结

资源用于在访问共享数据或硬件资源时提供互斥。


任务和ISR可以共享任意数量的资源。


所有GetResource()ReleaseResource()调用必须正确嵌套。


所有资源必须在任务或ISR终止前释放。


调度器可以作为资源使用,但如果可能的话,应该优先使用内部资源。


内部资源为控制任务组和ISR之间的抢占提供了一种自由(Free机制。




参考文档:

[1] RTA-OS V6.1.3 User Guide

[2] Specification of Operating System AUTOSAR Release 4.2.2



推荐阅读

Autosar架构下的模块详细设计及代码实现--基于配置的编程方法

AUTOSAR 通信服务-CanSM概念详解

AUTOSAR 通信服务-PDU Router

AUTOSAR CAN通信协议栈分析(2)-CanIf

Bug分析-内存被异常篡改问题分析

AUTOSAR架构下CAN BusOff问题分析

C语言编程技巧(1)-表驱动法

CANoe工具使用(1)-实现CAN通道的收、发、录、回放报文

S32K平台学习(1)-S32K144启动流程分析

详解芯片Rese Vector和Interrupt Vector-以S32K和RH850为例

Can通信协议栈分析(1)-Can Driver

AUTOSAR 通信服务 - NM概念详解

AUTOSAR模式管理-EcuM Sleep and UP详解

AUTOSAR 诊断服务-DEM功能概述

基于AUTOSAR与Matlab开发应用层(三)应用层总体功能开发和集成

AUTOSAR-MCAL--SPI模块详解(三)

AUTOSAR-MCAL--MCU模块详解

RH850-U2A16芯片--RAM and Flash介绍

AUTOSAR存储协议栈-- EEPROM Driver模块介绍

AUTOSAR-MCAL--SPI模块详解(三)

详解芯片Rese Vector和Interrupt Vector-以S32K和RH850为例

AUTOSAR架构下RH850芯片深度休眠配置实践-Conifig EcuM and BswM

AUTOSAR架构下关于CanNm的几点思考

AUTOSAR下Com模块中Signal Group详解

Can/Lin报文的触发发送(Trigger Transmit)

AUTOSAR 通信服务-Com模块报文的发送机制

网络关闭但ECU没有休眠前如何网络唤醒

ECU系统休眠后通过诊断报文唤醒ECU且唤醒网络

AUTOSAR网络通信问题分析

Bug分析-内存被异常篡改问题分析

End




欢迎点赞,关注,转发,在看,您的每一次鼓励,都是我最大的动力!

汽车电子嵌入式

微信扫描二维码,关注我的公众号


评论
  •  万万没想到!科幻电影中的人形机器人,正在一步步走进我们人类的日常生活中来了。1月17日,乐聚将第100台全尺寸人形机器人交付北汽越野车,再次吹响了人形机器人疯狂进厂打工的号角。无独有尔,银河通用机器人作为一家成立不到两年时间的创业公司,在短短一年多时间内推出革命性的第一代产品Galbot G1,这是一款轮式、双臂、身体可折叠的人形机器人,得到了美团战投、经纬创投、IDG资本等众多投资方的认可。作为一家成立仅仅只有两年多时间的企业,智元机器人也把机器人从梦想带进了现实。2024年8月1
    刘旷 2025-01-21 11:15 117浏览
  • 嘿,咱来聊聊RISC-V MCU技术哈。 这RISC-V MCU技术呢,简单来说就是基于一个叫RISC-V的指令集架构做出的微控制器技术。RISC-V这个啊,2010年的时候,是加州大学伯克利分校的研究团队弄出来的,目的就是想搞个新的、开放的指令集架构,能跟上现代计算的需要。到了2015年,专门成立了个RISC-V基金会,让这个架构更标准,也更好地推广开了。这几年啊,这个RISC-V的生态系统发展得可快了,好多公司和机构都加入了RISC-V International,还推出了不少RISC-V
    丙丁先生 2025-01-21 12:10 86浏览
  • 现在为止,我们已经完成了Purple Pi OH主板的串口调试和部分配件的连接,接下来,让我们趁热打铁,完成剩余配件的连接!注:配件连接前请断开主板所有供电,避免敏感电路损坏!1.1 耳机接口主板有一路OTMP 标准四节耳机座J6,具备进行音频输出及录音功能,接入耳机后声音将优先从耳机输出,如下图所示:1.21.2 相机接口MIPI CSI 接口如上图所示,支持OV5648 和OV8858 摄像头模组。接入摄像头模组后,使用系统相机软件打开相机拍照和录像,如下图所示:1.3 以太网接口主板有一路
    Industio_触觉智能 2025-01-20 11:04 134浏览
  • 日前,商务部等部门办公厅印发《手机、平板、智能手表(手环)购新补贴实施方案》明确,个人消费者购买手机、平板、智能手表(手环)3类数码产品(单件销售价格不超过6000元),可享受购新补贴。每人每类可补贴1件,每件补贴比例为减去生产、流通环节及移动运营商所有优惠后最终销售价格的15%,每件最高不超过500元。目前,京东已经做好了承接手机、平板等数码产品国补优惠的落地准备工作,未来随着各省市关于手机、平板等品类的国补开启,京东将第一时间率先上线,满足消费者的换新升级需求。为保障国补的真实有效发放,基于
    华尔街科技眼 2025-01-17 10:44 211浏览
  • 本文介绍瑞芯微开发板/主板Android配置APK默认开启性能模式方法,开启性能模式后,APK的CPU使用优先级会有所提高。触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。源码修改修改源码根目录下文件device/rockchip/rk3562/package_performance.xml并添加以下内容,注意"+"号为添加内容,"com.tencent.mm"为AP
    Industio_触觉智能 2025-01-17 14:09 142浏览
  • 高速先生成员--黄刚这不马上就要过年了嘛,高速先生就不打算给大家上难度了,整一篇简单但很实用的文章给大伙瞧瞧好了。相信这个标题一出来,尤其对于PCB设计工程师来说,心就立马凉了半截。他们辛辛苦苦进行PCB的过孔设计,高速先生居然说设计多大的过孔他们不关心!另外估计这时候就跳出很多“挑刺”的粉丝了哈,因为翻看很多以往的文章,高速先生都表达了过孔孔径对高速性能的影响是很大的哦!咋滴,今天居然说孔径不关心了?别,别急哈,听高速先生在这篇文章中娓娓道来。首先还是要对各位设计工程师的设计表示肯定,毕竟像我
    一博科技 2025-01-21 16:17 81浏览
  • 数字隔离芯片是一种实现电气隔离功能的集成电路,在工业自动化、汽车电子、光伏储能与电力通信等领域的电气系统中发挥着至关重要的作用。其不仅可令高、低压系统之间相互独立,提高低压系统的抗干扰能力,同时还可确保高、低压系统之间的安全交互,使系统稳定工作,并避免操作者遭受来自高压系统的电击伤害。典型数字隔离芯片的简化原理图值得一提的是,数字隔离芯片历经多年发展,其应用范围已十分广泛,凡涉及到在高、低压系统之间进行信号传输的场景中基本都需要应用到此种芯片。那么,电气工程师在进行电路设计时到底该如何评估选择一
    华普微HOPERF 2025-01-20 16:50 56浏览
  •  光伏及击穿,都可视之为 复合的逆过程,但是,复合、光伏与击穿,不单是进程的方向相反,偏置状态也不一样,复合的工况,是正偏,光伏是零偏,击穿与漂移则是反偏,光伏的能源是外来的,而击穿消耗的是结区自身和电源的能量,漂移的载流子是 客席载流子,须借外延层才能引入,客席载流子 不受反偏PN结的空乏区阻碍,能漂不能漂,只取决于反偏PN结是否处于外延层的「射程」范围,而穿通的成因,则是因耗尽层的过度扩张,致使跟 端子、外延层或其他空乏区 碰触,当耗尽层融通,耐压 (反向阻断能力) 即告彻底丧失,
    MrCU204 2025-01-17 11:30 164浏览
  • 随着消费者对汽车驾乘体验的要求不断攀升,汽车照明系统作为确保道路安全、提升驾驶体验以及实现车辆与环境交互的重要组成,日益受到业界的高度重视。近日,2024 DVN(上海)国际汽车照明研讨会圆满落幕。作为照明与传感创新的全球领导者,艾迈斯欧司朗受邀参与主题演讲,并现场展示了其多项前沿技术。本届研讨会汇聚来自全球各地400余名汽车、照明、光源及Tier 2供应商的专业人士及专家共聚一堂。在研讨会第一环节中,艾迈斯欧司朗系统解决方案工程副总裁 Joachim Reill以深厚的专业素养,主持该环节多位
    艾迈斯欧司朗 2025-01-16 20:51 172浏览
  • 百佳泰特为您整理2025年1月各大Logo的最新规格信息,本月有更新信息的logo有HDMI、Wi-Fi、Bluetooth、DisplayHDR、ClearMR、Intel EVO。HDMI®▶ 2025年1月6日,HDMI Forum, Inc. 宣布即将发布HDMI规范2.2版本。新规范将支持更高的分辨率和刷新率,并提供更多高质量选项。更快的96Gbps 带宽可满足数据密集型沉浸式和虚拟应用对传输的要求,如 AR/VR/MR、空间现实和光场显示,以及各种商业应用,如大型数字标牌、医疗成像和
    百佳泰测试实验室 2025-01-16 15:41 191浏览
  • 80,000人到访的国际大展上,艾迈斯欧司朗有哪些亮点?感未来,光无限。近日,在慕尼黑electronica 2024现场,ams OSRAM通过多款创新DEMO展示,以及数场前瞻洞察分享,全面展示自身融合传感器、发射器及集成电路技术,精准捕捉并呈现环境信息的卓越能力。同时,ams OSRAM通过展会期间与客户、用户等行业人士,以及媒体朋友的深度交流,向业界传达其以光电技术为笔、以创新为墨,书写智能未来的深度思考。electronica 2024electronica 2024构建了一个高度国际
    艾迈斯欧司朗 2025-01-16 20:45 330浏览
  • Ubuntu20.04默认情况下为root账号自动登录,本文介绍如何取消root账号自动登录,改为通过输入账号密码登录,使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持OpenHarmony5.0及Linux、Android等操作系统,接口丰富,开发评估快人一步!添加新账号1、使用adduser命令来添加新用户,用户名以industio为例,系统会提示设置密码以及其他信息,您可以根据需要填写或跳过,命令如下:root@id
    Industio_触觉智能 2025-01-17 14:14 103浏览
  • 随着智慧科技的快速发展,智能显示器的生态圈应用变得越来越丰富多元,智能显示器不仅仅是传统的显示设备,透过结合人工智能(AI)和语音助理,它还可以成为家庭、办公室和商业环境中的核心互动接口。提供多元且个性化的服务,如智能家居控制、影音串流拨放、实时信息显示等,极大提升了使用体验。此外,智能家居系统的整合能力也不容小觑,透过智能装置之间的无缝连接,形成了强大的多元应用生态圈。企业也利用智能显示器进行会议展示和多方远程合作,大大提高效率和互动性。Smart Display Ecosystem示意图,作
    百佳泰测试实验室 2025-01-16 15:37 199浏览
  • 电竞鼠标应用环境与客户需求电竞行业近年来发展迅速,「鼠标延迟」已成为决定游戏体验与比赛结果的关键因素。从技术角度来看,传统鼠标的延迟大约为20毫秒,入门级电竞鼠标通常为5毫秒,而高阶电竞鼠标的延迟可降低至仅2毫秒。这些差异看似微小,但在竞技激烈的游戏中,尤其在对反应和速度要求极高的场景中,每一毫秒的优化都可能带来致胜的优势。电竞比赛的普及促使玩家更加渴望降低鼠标延迟以提升竞技表现。他们希望通过精确的测试,了解不同操作系统与设定对延迟的具体影响,并寻求最佳配置方案来获得竞技优势。这样的需求推动市场
    百佳泰测试实验室 2025-01-16 15:45 328浏览
  • 2024年是很平淡的一年,能保住饭碗就是万幸了,公司业绩不好,跳槽又不敢跳,还有一个原因就是老板对我们这些员工还是很好的,碍于人情也不能在公司困难时去雪上加霜。在工作其间遇到的大问题没有,小问题还是有不少,这里就举一两个来说一下。第一个就是,先看下下面的这个封装,你能猜出它的引脚间距是多少吗?这种排线座比较常规的是0.6mm间距(即排线是0.3mm间距)的,而这个规格也是我们用得最多的,所以我们按惯性思维来看的话,就会认为这个座子就是0.6mm间距的,这样往往就不会去细看规格书了,所以这次的运气
    wuliangu 2025-01-21 00:15 108浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦