AUTOSAR下的SPI模块

功能和特性的总体视图

SPI 处理程序/驱动程序有 3 个级别的可扩展功能:

  • 级别 0,简单同步 SPI 处理程序/驱动程序:通信基于同步处理,并使用 FIFO 策略来处理多个访问。缓冲区使用可配置为优化和/或利用硬件功能。
  • 级别 1,基本异步 SPI 处理程序/驱动程序:通信基于异步行为,并具有处理多个访问的优先级策略。缓冲区使用量可配置为"简单同步"级别。
  • 级别 2,增强型(同步/异步)SPI 处理程序/驱动程序:通信基于异步行为或同步处理,使用可在执行期间选择的中断或轮询机制,并具有优先级策略来处理多个访问。缓冲区使用量可与其他级别一样配置
  • SPI Scalability.png

    SPI 处理程序/驱动程序的可扩展功能级别应始终是静态可配置的,即在预编译时进行配置,以实现最佳的源代码优化。

    为了提高可伸缩性,每个级别都有可配置(ON/OFF)或可选的可选功能。

 

General behaviour

SPI处理程序/驱动程序接口配置应基于本文档中定义的Sequence/Job/Channel。
Channel是使用相同条件定义的数据的软件交换介质:配置参数、具有相同大小的数据元素数以及数据指针(源和目标)或位置。
Job由具有相同芯片选择的一个或多个Channel组成(在处理Job期间不会释放),Job具有分配的优先级。
Sequence是连续Job的数量,但可以使用优先级机制在Job之间重新调度。Sequence通信是可中断的(通过另一个Sequence通信)或不依赖于静态配置。
SPI处理程序/驱动程序应支持一个或多个Channel、Job和Sequence,以驱动所有类型的 SPI 兼容硬件器件
片选线(CS)根据JOb的开始和结束对应开始/结束
如果芯片是由微控制器引脚控制,则SPI处理程序/驱动器与端口模块有关系。在这种情况下,本规范假定这些微控制器引脚由SPI处理程序/驱动程序模块直接访问,而无需使用 DIO 模块的 API。
Channel定义一次,可以属于多个JOb,JOb应至少包含一个Channel。
JOb定义一次,但根据用户需求和此软件规范,它可以属于多个Sequence。Sequence应至少包含一个JOb。

SPI处理程序/驱动程序应注意用户处理的通道数据宽度与硬件处理的通道数据宽度之间的差异

  如果由用户处理的通道数据宽度为8/16/32位,并由硬件处理为8/16/32位,则意味着SPI处理程序/驱动程序可以发送和接收数据,而无需直接进行任何位更改

  如果硬件处理的信道数据宽度优于用户处理的数据宽度,则意味着通过SPI

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值