【MCAL】AUTOSAR架构下SPI数据同步收发具体实现

目录

前言

正文

1.依赖的SPI硬件特性

1.1. SPI时隙参数配置

1.2. SPI数据发送和接收模式

2.MCAL中的SPI配置

3.软件的具体实现

3.1. Spi_SyncTransmit

3.2. Spi_lSyncTransmit

3.3. Spi_lSyncStartJob

3.4. Spi_lSyncTransmitData8Bit

3.5. Spi_lSynTransErrCheck

4.总结


前言

【MCAL】SPI模块详解》一文介绍了AUTOSAR架构下SPI模块的详细设计;《【TC3xx芯片】TC3xx芯片QSPI模块详解》一文介绍了TC3xx芯片的SPI硬件模块;《【MCAL】AUTOSAR架构下基于SPI通信的驱动模块详解-以TJA1145为例》一文介绍了CanTrcv_ TJA1145是如何基于TC3xx芯片SPI通信来实现数据的收发的。但是,对于SPI驱动模块本身是如何实现数据的收发没有详细介绍清楚,本文就来详细介绍AUTOSAR架构下SPI数据同步收发的具

### AUTOSAR BSW 层包含的模块 #### 1. 通信模块 (Communication Modules) 这些模块负责处理车辆内部网络协议栈的不同方面,确保不同节点间的可靠数据传输。 - **COM 模块**: 负责应用程序与下层通信驱动程序之间的交互。该模块支持多种通信协议的数据交换,并提供了灵活的消息路由机制[^2]。 - **PDU Router 模块**: 主要用于管理和调度PDUs(Protocol Data Units),即在网络上传输的信息单元,在不同的通信路径之间转发消息。 - **IPDU Mux 模块**: 实现多个信号到单个物理信道上的多路复用操作,反之亦然,从而优化带宽利用率并简化硬件设计。 - **CAN Tp 模块**: 提供面向连接的服务来分割和重组较大的报文帧,以便通过CAN总线发送或接收超过8字节长度的数据包。 - **CAN Interface 和 CAN Driver 模块**: 这些低级组件直接控制CAN控制器的操作,包括初始化、错误检测以及与其他高层应用和服务的接口定义。 - **Trcv Driver 模块**: 特定于某些类型的收发器设备,提供必要的驱动程序以实现物理层面上的数据传送功能。 #### 2. ECU 抽象层 (ECU Abstraction Layer) 此部分旨在屏蔽底层硬件差异,向上层软件呈现统一视图。它包含了诸如内存映射服务、中断管理等功能,同时也涵盖了特定外设的支持,比如看门狗定时器等。 #### 3. 微控制器抽象层 (Microcontroller Abstraction Layer, MCAL) MCAL 是最接近硬件的一层,由一系列针对具体微控制器特性的驱动组成,如GPIO、ADC/DAC转换器、SPI/I²C串行端口等外围设备的访问接口。 #### 4. 服务层 (Service Layer) 这一层次提供了广泛的基础服务给上层的应用开发人员使用,例如操作系统(OS)、诊断(Dcm)、存储管理(Flash driver)、参数配置(EcuM)等等。 #### 5. 复杂驱动 (Complex Drivers) 这类驱动通常涉及到较为复杂的传感器或执行机构,它们往往需要特殊的算法来进行数据处理或是运动控制,因此被单独列为一类。 #### 6. 模式管理模块 (Mode Management Module) 模式管理模块主要用于管理系统的工作状态切换过程,确保各个子系统能够在适当的时候进入正确的运行模式,同时协调各部件间的状态同步问题[^4]。 ```cpp // 示例代码展示如何调用AUTOSAR中的某个BSW模块函数 EcuM_Startup(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汽车电子嵌入式

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值