图解AUTOSAR(三)——方法论

AUTOSAR为汽车电子软件系统开发过程定义了一套通用的技术方法,即AUTOSAR方法论。该方法描述了从系统底层配置到ECU可执行代码产生过程的设计步骤,如下图所示。

AUTOSAR设计和开发流程分为三个阶段:系统配置、ECU设计与配置阶段、代码生成阶段。

第一阶段:定义系统配置文件,这是系统设计者或架构师的任务。包括选择硬件和软件组件,定义整个系统的约束条件。AUTOSAR通过使用信息交换格式和模板描述文件来减少初始系统设计时的工作量。系统配置的输入是XML类型的文件,输出是系统配置描述文件,系统配置的主要作用是把软件组件的需求映射到ECU上。

第二阶段:根据系统配置描述文件提取单个ECU资源相关的信息,提取出来的信息生成ECU提取文件。根据这个提取文件对ECU进行配置,例如操作系统任务调度,必要的BSW模块及其配置,运行实体到任务的分配等,从而生成ECU配置描述文件。该描述文件包含了特定ECU的所有信息。

第三阶段:生成代码,是基于ECU配置描述文件指定的配置来产生代码、编译代码,并把相关代码链接起来形成可执行文件。

具体的开发流程如下:

1、编写系统配置输入描述文件

在AUTOSAR中,所有的描述文件都是XML类型的文件。系统配置输入文件包含三部分内容:

(1)软件组件描述,定义了每个涉及的软件组件的接口内容,如数据类型,端口,接口等。

(2)ECU资源描述,定义了每个ECU的资源需求,如处理器、存储器、外围设备、传感器和执行器等。

(3)系统约束描述,定义了总线信号,软件组件间的拓扑结构和映射关系。

2、系统配置

系统配置的功能主要是在资源和时序关系的前提下,把软件组件映射到各个ECU上,然后借助系统配置生成器生成系统配置描述文件。这个描述文件包括总线映射之类的所有系统信息以及软件组件与某个ECU的映射关系。

3、提取特定ECU的描述

从系统配置描述文件中提取出与各个ECU相关的系统配置描述信息,提取的信息包括ECU通信矩阵、拓扑结构、映射到该ECU上的所有软件组件,并将这些信息放在各个ECU的提取文件中。

4、ECU配置

ECU配置主要是为该ECU添加必要的信息和数据,如任务调度、必要的基础软件模块及其配置、运行实体及任务分配等,并将结果保存在ECU配置描述文件中,该文件包含了属于特定ECU的所有信息,换言之,ECU上运行的软件可根据这些信息构造出来。

5、生成可执行文件

根据ECU配置描述文件中的配置信息,生成RTE和基础软件配置代码,完成基础软件和软件组件的集成,最终生成ECU的可执行代码。

  • 27
    点赞
  • 145
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
这里的NM主要是针对Can协议的网路管理。 AUTOSAR CanNM的核心思想主要归纳为以下两条: 1.  如果节点需要保持通信,则节点需要周期的发送NMPDUs,否则停止发送NMPDUs 2.     如果总线上的所有节点不需要使用总线,那么总线上过了一段时间没有NMPDUs时,则会进入Bus-Sleep Mode。   工作模式和状态   CanNm一共有个工作模式 1.  Network Mode 2.  PrepareBus-Sleep Mode 3.  Bus-Sleep Mode 模式的改变应该通过回调函数通知上层。 下面单独说每种模式   (1)Network Mode Network Mode又包括个内部状态 1. Repeat Message State 2. Normal Operation State 3. Ready Sleep State ①Repeat Message State 这个模式被用来确保从Bus-Sleep or Prepare Bus-Sleep到Network Mode的节点被总线上面其他节点发现。这个状态可以用来检测总线上的节点。 当进入Repeat Message State时,节点应该开始传送NMPDUs。 在Repeat Message State时,当NM-Timeout Timer溢出,CanNm模块应该重载Timer。 CanNm模块应该在Repeat Message State 下保持一段时间,这段时间可以通过CANNM_REPEAT_MESSAGE_TIME来进行配置。 当离开Repeat Message State的时候,如果节点需要通信,则进入Normal Operation State;如果节点不需要通信,则进入Ready Sleep State。并且清空Repeat Message Bit。   ②Normal Operation State 这个状态可以保持总线处于唤醒状态。从Ready sleep state进入这个状态的时候应该发送NMPDUs。 在Normal Operation State当NM-Timeout Timer溢出,CanNm模块应该重载Timer。 如果节点不需要使用通信,则网络应该被释放,节点应该进入Ready Sleep State。 如果节点接收到Repeat Message Request Bit,则节点进入Repeat Message State。如果节点自身需要进入Repeat Message State,则该节点进入Repeat Message State并且设置Repeat Message Request Bit。   ③ReadySleep State 这个状态是为了如果本节点已经准备释放总线,而其他节点还需要使用总线的时候,在这个状态下等待其他总线上的节点进入Perpere Bus-Sleep Mode。进入这个状态之后,CanNm模块应该停止NMPDUs的传送。 如果NM-Timeout Timer溢出,节点将会进入Prepare Bus-Sleep Mode。 如果该节点需要使用总线,则节点进入Nomal Operation State。 如果节点接收到Repeat Message Request Bit,则节点进入Repeat Message State。如果节点自身需要进入Repeat Message State,则该节点进入Repeat Message State并且设置Repeat Message Request Bit。 (2)PrepareBus-Sleep Mode   这个状态是为了等待总线上的所有节点能够在进入Bus-Sleep Mode之前,有时间停止节点的active状态如清空队列中为发送的报文。在Prepare Bus –Sleep Mode下,所有节点都静默下来。 当节点进入PrepareBus Mode时,应该通知上层应用。通过配置CANNM_WAIT_BUS_SLEEP_TIME参数,可以改变节点在PrepareBus-Sleep Mode停留的时间,在这段时间之后节点将会进入其他状态。 在Prepare Bus-Sleep Mode下面接收到NMPDU或者被上层应用请求通信时,节点将进入Network Mode中的Normal operation State。   (3)Bus-SleepMode   Bus-Sleep Mode的目的是当没有消息被传送的时候可以减少能量的消耗。在Bus-Sleep Mode下面,节点可以被唤醒(如本地唤醒源和CAN线唤醒源)。CANNM_TIMEOUT_TIME+CANNM_WAIT_BUS_SLEEP_TIME两个参数在整个总线上面的节点都应该时一样的配置,保证了总线上的节点能够统一的进行休眠。 当进入Bus-Sleep Mode时候,应该通知上层应用。 在Bus-Sleep Mode下,如果成功接收到NMPDU,CAN NM模块应该调用Nm_NetworkStartIndication。 如果CanNm_PassiveStartUp被调用,则CAN NM模块进入Network Mode 中的Repeat Message State。 ———————————————— 版权声明:本文为CSDN博主「cococenstar」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/cococenstar/article/details/84096689
Netfilter是Linux操作系统中一个重要的网络包过滤器框架,它提供了一套API和相关的工具,用于在网络协议栈中实现网络数据包的过滤和修改。 Netfilter的工作原理可以通过以下图解来理解: 1. 首先,Netfilter位于Linux内核中,它作为一个模块插入到网络协议栈中。 2. 当一个数据包通过网络协议栈时,Netfilter会根据规则进行过滤和修改。具体来说,Netfilter会通过挂载钩子函数的方式,将特定的网络处理函数与处理点(hook point)相关联,这些处理点包括网络驱动程序和协议栈中的不同阶段,如前处理(Pre-routing)、输入(Input)、转发(Forward)、输出(Output)、后处理(Post-routing)等。 3. 在每个处理点上,Netfilter会按照预先定义的规则集进行数据包的匹配和操作。这些规则可以通过用户空间的工具(如iptables、nftables等)进行配置和管理。当数据包到达某个处理点时,Netfilter会逐个匹配规则,并根据规则定义的条件进行操作,如接受、丢弃、修改等。如果没有规则匹配,则会按照默认策略进行处理。 4. 在匹配规则时,Netfilter可以对数据包的源IP地址、目标IP地址、协议类型、端口号等各个字段进行匹配。此外,Netfilter还支持连接跟踪,可以根据会话状态进行过滤。 5. 对于满足规则的数据包,Netfilter还可以利用连接跟踪机制将它们与相应的状态表关联起来,以实现数据包的连接追踪和状态维护。这对于网络NAT、连接监控、流量控制等功能是非常重要的。 6. 最后,根据处理点的不同,Netfilter会将被修改或接受的数据包继续送往合适的目的地,如上层应用程序、转发到其他主机等。 总之,Netfilter通过在Linux内核中挂载钩子函数,并根据预先定义的规则集对网络数据包进行过滤和修改,从而实现了丰富的网络安全和管理功能。它的灵活性和可扩展性使得它成为了Linux操作系统中不可或缺的一部分。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值