多个传感器如何连接到一个中断口,两个传感器网断了怎么连在一起

首页 > 实用技巧 > 作者:YD1662023-11-27 11:09:48

以上是IP模块级别对于安全设计的考量,接下来我们谈下模块级实时性设计。

所谓实时性,是在一个确定的,比较小的时间内处理完任务。很多时候,我们其实并不是真的需要实时性,而只是需要一个比较高的平均性能。Arm的R系列专门为严格的实时性设计:确定的几十ns的中断响应时间;紧耦合内存保证流水线在一个时钟周期就能访问指令和数据;内部总线具有QoS保证优先级;不存在页表,MPU做在核心内部,无需外部访问。真实的应用场景可能并不需要纳秒级的响应时间,哪怕是马达控制,系统响应在毫秒级也足够了。而毫秒与纳秒差了1百万倍。这就给了Arm的A系列机会。

A系列最大的不确定性来自于访问外部内存时的延迟。我们前面在讨论虚拟机的时候分析过,最差情况下,一次页表读取,可能需要20倍的访存时间,差不多是3us。为了使A系列有可能用于实时性任务,软件上的优化是必须的,包括虚拟机上下文切换等。硬件上,可以缩短特权级切换时间,也可以采取固定分配来提高页表查找命中率,还可以固定分配某块缓存或者片上内存给某处理器。方法很多,不一一列出。

以上的优化可以减少单个处理单元的延迟。但是复杂系统里有很多主设备,它们之间共享内存和其他从设备,是有可能产生阻塞和死锁的。死锁可以在设计流程过程中通过充分的验证来发现,而阻塞就得靠优先级QoS设计来避免了。下面我们看看CMN600AE是如何处理的。

实时处理最简单的方案是给传输分优先级。芯片中的总线和从设备根据优先级来决定先后处理。但是仅仅采用优先级会有个问题,就是某些内部资源,比如缓冲,表项已经被低优先级的传输占用了。此时如果来一个高优先级的传输,由于之前的还没有完成,就会出现高优先级被低优先级阻塞的情况。怎么办?可以预先保留相应的资源给高优先级。

多个传感器如何连接到一个中断口,两个传感器网断了怎么连在一起(25)

如上图,在每个与主设备的接口处,都有一个QoS模块,里面包含了一个优先级定义,可以被软件编程。这个优先级会随着传输到总线的每一个部分,每个部分都根据优先级来给它相应的资源。有时候,同样高优先级的请求过多,超过了系统资源的承受范围。这时候,CMN600AE的内部模块,会告诉请求传输的模块重传,并给它一个筹码。每请求一次,筹码加一。下次这个筹码就会随着新的请求一起传过来,只要资源有空闲,那么拥有最高筹码的请求将被允许。QoS模块还负责统计它所管理的传输,看看平均延迟是多少,传输间隔是多少,然后动态调整其优先级。

CMN600AE另一个很重要的特性是支持片间硬件一致性互联。对于辅助驾驶芯片,当面积大到一定程度,比如400mm^2@16nm,良率会迅速下跌。这时候,进一步增加面积不是一个好的选择。应对的办法是实现片间互联,减少单个die的面积。当然,实现高速的PHY本身也会引入相当大的面积,TSMC16FFC上一个支持PCIe Gen4x16的PHY就要6个平方毫米,相当于四核A55加DSU,这里需要做好取舍。片间互联也会引入额外的片间延迟,可能会达到50ns。

多个传感器如何连接到一个中断口,两个传感器网断了怎么连在一起(26)

如上图,有了CMN600AE和片间互联协议CML,我们就可以把MMU600AE和GIC600AE全部串联起来,实现片间虚拟化和中断系统,对软件完全透明。其中,MMU600AE访存的实时性靠固定分配虚拟机,以及使用大页表来保证,目的是消除页表项的未命中。对于中断系统的实时性,片内的话使用传统的SPI/PPI,问题不大,片外的话,只能使用PCIe的消息中断机制MSI了。支持消息中断需要ITS表,类似于页表,也存放在内存中,也有类似缓存的设计。只要保证ITS缓存条目足够多,映射的设备数量不太多,也是可以消除未命中,提高实时性的。

以上是关于保证实时性的一些考量。接着来看看AEC-Q100,和芯片设计相关的是温度和电压。

温度设计相对简单,只要工艺允许,标准库和内存单元支持,那只需在做后端时加入温度限制条件即可。现在新的中控和辅助驾驶多用TSMC16FFC,可以支持-40C~150C的节温,相当于环境-40C~125C,其代价是牺牲一定的频率和面积。

ESD测试是对接口的要求,包括2000V 的HBM和6A 的CDM。和封装相关,也和芯片IO设计相关。和数字部分IP一样,PHY和GPIO也需要使用IP来支持AEC-Q100。此处的GPIO指的是200Mhz以下的低速IO,包括但并不限于SPI/PWM/I2C等接口协议。

以GPIO为例,车载设备通常需要支持3.3V和1.8V。为了符合AEC-Q100,GPIO在设计时就能承受额外的电流,并分析各种情况,看看是不是每一条电路分支都能被覆盖到。通常对于车用GPIO,仅仅用仿真来保证设计的可靠度还不够,还必须真正流片,用测试芯片做HTOL/LTOL测试,不断变化温度,做满2600小时。否则,会发生仿真通过但是测试芯片过不了测试的问题。一旦测试失效,那必须做失效分析,看看是哪里的电流承载不了,然后修bug重新流片测试。

同时,GPIO本身同样需要支持功能安全,也就是要加入探测电路,对各类可能产生的失效报警。相对来说,模拟电路失效种类较少,比较容易做到Asil-D。相应的,IP还得提供FMEA和FMEDA报告,供芯片公司过认证。

多个传感器如何连接到一个中断口,两个传感器网断了怎么连在一起(27)

上图是集成在芯片内部的GPIO,集成时,除了要插入一些特殊的单元来完成不同电压的IO模块隔离,还需要注意一定的IO上电次序。

至此,IP模块分析完毕。接下去我们从芯片系统层面开始分析中控和辅助驾驶芯片。

多个传感器如何连接到一个中断口,两个传感器网断了怎么连在一起(28)

上一页34567下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.