存储器驱动

内部EEPROM驱动:内部EEPROM驱动提供初始化服务,以及对内部EEPROM的读写、写、擦除等操作。该驱动模块一次只能接受一个任务。

② 内部Flash驱动:内部Flash驱动提供内部Flash初始化服务,以及对内部Flash的读、写、擦除等操作。该驱动还可以将Flash访问代码下载到RAM中,如果需要的话,也可以执行写、擦除操作。

③ RAM测试: RAM测试模块通过软件对RAM存储进行测试。该模块包含后台测试和前台测试。其中,后台测试是异步服务,前台测试是同步服务。

④ Flash测试:flash测试模块提供算法来测试诸如数据/程序闪存、程序SRAM等非易失性存储器,这些存储器可以是集成在微控制器内部的,也可以是外部映射到微控制器的存储器。

■ 微控制器抽象层详解

3. 通信驱动

Ethernet驱动:Ethernet驱动模块使用以太网驱动层访问某些控制器,对所使用的以太网控制器的硬件特性进行抽象,为上层的以太网使用提供统一的接口。可由由若干个以太网驱动模块复合起来组成。

② FlexRay驱动:FlexRay驱动用来抽象不同的FlexRay通信控制器及其硬件相关的特性。通信控制器的FlexRay协议强制特性经过封装后只能通过统一的API进行访问。API提供了映射到基于实际通信控制器的硬件访问序列的抽象功能操作。因此,使用FlexRay驱动可以保证FlexRay接口独立于硬件。对内部或外部FlexRay通信控制器的驱动来说,需要进行下列处理:

▪ FlexRay控制器的初始化

▪ 配置数据处理单元

▪ 控制指令向通信控制器的传递

▪ 从协议引擎到控制器主接口状态数据的规定

▪ 通信控制器和主处理机之间信息数据的传输

■ 微控制器抽象层详解

3. 通信驱动

CAN驱动:CAN驱动针对的是微控制器内部的CAN控制器,CAN驱动是MCAL的一部分,可以执行硬件访问、向上层提供独立于硬件的API,而仅有的能够访问CAN驱动的上层是CAN接口(CAN Interface)。

功能如下:

▪ 对CAN控制器进行初始化

▪ 发送和接收报文

▪ 对报文的数据和功能进行通知

▪ 溢出和错误处理

▪ 唤醒检测

此外,CAN驱动还具有以下特性:

▪ 单个或多个CAN通道

▪ CAN驱动的多重实例化

▪ 对接收报文的中断/轮询模式

■ 微控制器抽象层详解

3. 通信驱动

LIN驱动:LIN驱动使用标准的通用异步收发器(UART)或串行通信接口(SPI)进行通信。

该模块可以完成下列任务:

▪ LIN硬件的初始化

▪ 调度表的处理

▪ LIN报文的发送(通过标志位和函数接口确认)

▪ LIN报文的接收(通过标志位和函数接口指示)

▪ 睡眠和唤醒

▪ 协议差错的处理

▪报文的超时监测

LIN驱动也是MCAL的一部分,可以执行硬件访问、向上层提供独立于硬件的API。仅有的能够访问LIN驱动的上层是LIN接口(LIN Interface)。一个LIN驱动可以支持多个通道,但是这些通道要属于同一个LIN硬件单元。

■ 微控制器抽象层详解

3. 通信驱动

SPI驱动:SPI驱动模块是微控制器内部同步通信串行接口的驱动。SPI驱动为SPI总线上不同的设备(如EEPROM/Watchdog等)提供读写访问服务。一个SPI设备可以被所使用的SPI硬件和相关的片选信号识别。该模块可以在主、从或者主-从模式下运行。

配置SPI驱动应遵循以下步骤:

▪ 选择SPI驱动的功能级别,配置可选择的功能特性

▪ 根据数据用途来定义SPI通道,它们可以是SPI驱动的内部缓冲器,或者是由用户提供的外部缓冲器

▪ 根据硬件属性来定义SPI任务,它们会包含一系列使用这些属性的通道

▪ 最后定义任务序列,以优先级排序的方式来传递数据

■ 微控制器抽象层详解

4. I/O驱动

PORT驱动:PORT驱动初始化就是对微控制器的整个PORT模块进行初始化配置,很多端口和管脚被分配有多种不同的功能,即可以进行引脚功能复用,比如通用I/O、模数转换、脉宽调制等功能。因此,对PORT必须有一个整体的配置和初始化,对各管脚的具体配置和使用取决于微控制器和ECU的引脚功能分配。

② DIO驱动:DIO驱动对微控制器硬件管脚的访问进行了抽象,除此之外,还可以对管脚进行分组。该模块通过DIO通道、DIO端口以及DIO通道组来读写数据,而且这类操作是同步的。

③ ADC驱动:ADC驱动对微控制器内部模数转换单元进行初始化和控制。它可以提供启动和停止模数转换的服务,分别用来开启和禁用模数转换的触发源。

④ PWM驱动:PWM驱动为微控制器PWM模块提供初始化和控制服务,可生成周期和占空比都可变的脉冲。

■ 微控制器抽象层详解

4. I/O驱动

⑤ ICU驱动:ICU驱动控制的是微控制器的输入捕获单元(Input Capture Unit),有两种模式:正常模式和休眠模式。

ICU驱动可以提供以下服务:

▪ 信号边沿检测及通知

▪ 中断唤醒

▪ 周期性信号时间的测量

▪ 边沿时间戳捕获

▪ 边沿/脉冲计数

⑥ OCU驱动: OCU驱动的作用是对微控制器内部的输出比较单元(Output Compare Unit)进行初始化和控制。当计数器的值到达某个阈值时,OCU模块会自动开始比较并执行相应的操作。

OCU驱动还可以为下列功能提供服务:

▪ 启动或停止输出通道

▪ 设定某个阈值

▪ 启用或禁用某个通道的通知函数

▪ 获取计数器数值

■ 开发工具

下图是AutoSar开发流程阶段及各个阶段可以使用的开发工具。从网上调研情况来看,Vector和EB公司有整套的开发工具链。其中,Vector中的DaVinciDeveloper和DaVinci ConfiguratorPro开发工具使用较为普遍,建议采用Vector公司开发工具链。从开发流程上看,各个开发阶段分别都有各自的开发工具:

1.系统设计阶段即需求开发与系统功能设计,采用PREEvision开发工具;

2.SWC功能软件开发阶段即ECU功能描述,采用DaVinciDeveloper开发工;

3.BSW基础软件及RTE设计,采用DaVinciConfigurator Pro开工具

4.头文件和C代码采用MATLAB·Simulink工具自动生成。

下图展示Vector公司开发AutoSar时所用的功能组件,其中红色字体是Vector工具链中自       带组件。根据需要,暂定需要OS、SYS、DIAG、MEM、COM、CAN、FR、ETH、MCAL组件

■ 开发流程

在自上而下的开发流程中,系统工程师使用架构生成工具(如davinci tool suite)来设计整车ECU网络。当然,工程师也可以使用其他的架构设计工具。架构软件会输出一个XML来描述对应的组件,该文件里包含了组件的一些必要信息比如:runnables,接口,数据类型等等。Matlab软件可以利用架构软件生成的XML文件自动创建Simulink架构模型,里面包含了接口模块以及相应的Autosar相关设置。之后系统工程师就可以在该框架模型的基础上,完善内部的控制模块。(E/E:汽车电子电气架构(Electrical/Electronic Architecture))

■ 方法论

AUTOSAR为汽车电子软件系统开发定义了通用的技术方法,即AUTOSAR方法论。

AUTOSAR方法论描述了从系统底层配置到整个ECU可执行代码的产生过程的设计步骤。AUTOSAR的开发方法是基于虚拟功能总线(VFB)的开发方法。

AUTOSAR设计和开发流程:系统配置->ECU设计与配置阶段->代码生成阶段。

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

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

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

■ 方法论

下记AUTOSAR规定的软件开发整个过程:

■ 方法论

下记AUTOSAR规定的软件开发整个过程:

1. 构建系统约束:搭建系统约束其实就是对整个系统做一个系统性的功能性出发,建立一些约束。

这个阶段编写系统配置输入描述文件,需要确定虚拟功能总线中(VFB)有哪些组件,接口、模式、数据类型、软件组件、软件composition 、软件组件约束、以及系统的总线信号。

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

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

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

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

■ 方法论

下记AUTOSAR规定的软件开发整个过程:

2. VFB系统配置:在这个阶段需要根据上一个阶段定义的系统约束进行具体的设计。

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

▪ 在这个阶段中,所有的swc其实是不知道在哪个ECU中的,因此,所有的软件组件在一块配置。

▪ 具体设计VFB中的每一个软件组件和其中的内部行为、接口定义以及接口中的数据类型;

▪ 在AUTOSAR工具中导入总线信号的约束文件(一般是DBC);

▪ 将组件间的对应接口连接、连接组件接口与相对应的总线信号。

具体输出文件:

▪ SWC组件描述ARXML:这些ARXML中定义了组件的接口内容,比如组件的接口,内部行为、以及接口所用的数据类型。

▪ Composition描述ARXML:这个ARXML定义了组件间接口的连接关系以及组件的集合关系(Composition中包含哪些组件)

▪ ECU资源描述ARXML:定义了每个ECU的资源需求,如处理器、存储器、传感器、执行器。

▪ 系统约束描述:定义了总线信号,组件与总线信号的连接关系。

■ 方法论

下记AUTOSAR规定的软件开发整个过程:

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

具体输出文件:ECU提取ARXML

4. 配置BSWBSW的配置是可以与VFB系统的配置同时进行的。BSW主要配置通信协议栈、存储协议栈,模式管理,ECUM,OS等

具体输出文件:BSW模块描述ARXML

      5. ECU配置:ECU配置主要是为该ECU添加必要的信息和数据。分为以下几部分:

▪ 芯片内核分配:需要考虑每个SWC中的运行实体Runnable在芯片中的哪个核运行。

▪ 任务建立:需要给ECU建立相应周期的调度任务。

▪ 任务调度分配:需要将每个SWC中的运行实体分配到相应的调度任务之下。

具体输出文件: RTE配置ARXML

      6. RTEBSW代码生成:根据ECU提取ARXML与ECU配置ARXML可以生成RTE代码。根据BSW模块描述ARXML可以生成BSW代码。

AUTOSAR (存储器驱动 CP)相关推荐

  1. AUTOSAR AP与 CP 有什么差异?

    1标准概况不同 1.1 时间 在2003年AUTOSAR组织刚成立的时候,只有一个AUTOSAR标准,没有AP(Adaptive Platform)与CP(Classic Platform)之分. 在 ...

  2. 外设驱动库开发笔记49:BY25Qxx存储器驱动

      在有一些应用中,我们可能需要大一些容量的存储单元,而实现的形式多种多样,在这一篇中我们将来讨论怎么使用BY25QXXX系列NOR FLASH存储器的问题. 1.功能概述   在开始实现BY25QX ...

  3. 搞一下CP AUTOSAR 入门 | 02 CP AUTOSAR 基础模块功能描述

    前言 本系列请点击:<搞一下CP AUTOSAR入门> 所有系列请点击:<汽车电子系列分享> 在上一篇介绍了CP AUTOSAR的分层结构,对于多数使用AUTOSAR架构开发汽 ...

  4. 外设驱动库开发笔记25:FM25xxx FRAM存储器驱动

    在我们的项目中,时常会有参数或数据需要保存.铁电存储器的优良性能和操作方便常常被我们选用.FM25xxx FRAM存储器就是我们经常使用到的一系列铁电存储器,这一篇我们将讨论FM25xxx FRAM存 ...

  5. 外设驱动库开发笔记24:FM24xxx系列FRAM存储器驱动

    虽然说使用EEPROM保存参数很有效,但操作及使用次数均有一下限制.当我们的一些参数需要不定时修改或存储时,使用FRAM就更为方便一点.这一节我们就来设计并实现FM24xxx系列FRAM的驱动. 1. ...

  6. 搞一下CP AUTOSAR 入门 | 07 CP AUTOSAR ComM 详解

    前言 本系列请点击:<搞一下CP AUTOSAR入门> 所有系列请点击:<汽车电子系列分享> 在上一篇中已经对AutoSAR中模式管理NvM做了详细的介绍,这篇主要介绍的是Au ...

  7. 搞一下CP AUTOSAR 入门 | 09 CP AUTOSAR APP 简介

    前言 本系列请点击:<搞一下CP AUTOSAR入门> 所有系列请点击:<汽车电子系列分享> 在整个CP AUTOSAR架构开发的软件产品中主要分为APP.RTE.BSW三个架 ...

  8. FM25V01铁电存储器驱动移植

    最近在做毕设,为了兼容PIX的固件,硬件选用了PIX的FMUV5传感器组合: ICM20689 IST8310 MS5611 主控是STM32F407 其他的驱动都好移植 ICM20689 SPI读取 ...

  9. 搞一下 CP AUTOSAR 工程实战 | 01 CP AUTOSAR OS 工程实践

    前言 搞SOA.搞 AP & CP AUTOSAR.搞异构SoC.搞车载以太网.搞车载OS等就找搞一下汽车电子. 全系内容可在<搞一下汽车电子>后台回复 "系列" ...

最新文章

  1. 欢迎使用CSDN-markdown编辑器1
  2. 物理、线性、虚拟、逻辑、有效地址
  3. ADO学习(六)服务器和客户端游标
  4. 用于JMX访问的Apache Ant任务
  5. 前端学习(1337):mongoDB文档查询
  6. (软件工程复习核心重点)第四章总体设计-第三节:启发规则
  7. 11.4 Daily Scrum
  8. android 说出密码,关于未来的住宅的作文400字5篇
  9. (网络收藏)WIKI
  10. H3C VLAN显示及维护
  11. 【转载】FPGA静态时序分析——IO口时序
  12. f-stack nginx 单进程模式启动流程分析
  13. android打印处理服务已停止,Print Spooler服务停止 打印机服务无法启动的完美解决方案共享...
  14. CentOS设置SSH Key登录
  15. 同城双活与异地多活架构分析
  16. 华三模拟器中的remote实现简单组网
  17. JAVA征兵管理系统
  18. 本地计算机无法设置共享文件夹,win10系统下共享文件夹无法访问的解决方法
  19. [已解决] 输出信号超出范围调整为1600x900@60hz
  20. 基于SSM实现水果商城批发平台

热门文章

  1. 基于系统模拟的机场出租车决策与安排模型
  2. 税收学考试可以带计算机吗,参加税务师考试可以携带计算器吗?
  3. #Verilog HDL# 跨时钟域电路设计之结绳法(3)
  4. FPGA笔记2——跨时钟域同步信号方法
  5. [附源码]计算机毕业设计Python校园代取快递系统(程序+源码+LW文档)
  6. rabbitmq 安装问题
  7. 小学计算机教案 插入艺术字,小学信息技术教案新部编本《插入艺术字和图片》.doc...
  8. 面试官说大实话,到底是真诚还是耿直?
  9. jQuery获取div的id值
  10. 大数据分析案例-基于多元线性回归算法预测学生期末成绩