本文是对Vector官方文档《TechnicalReference》的笔记内容,辅助《Software-Architecture_Peripherals》(AUTOSAR Release 4.2.2)
PORT驱动初始化就是对微控制器的整个PORT模块进行初始化配置
很多端口和管脚被分配有多种不同的功能,即可以进行引脚功能复用,比如通用I/O、模数转换、脉宽调制等功能。因此,对PORT必须有一个整体的配置和初始化,对各管脚的具体配置和使用取决于微控制器和ECU的引脚功能分配
通过调用Port_Init(&PortConfigSet)来初始化端口模块。所有全局变量都是通过调用Port_InitMemory()来初始化的。因此,Port_InitMemory()必须在Port_Init()之前被调用
Type
|
C-Type
|
说明
|
Port_PinDirectionType
|
enum
|
这些是一个端口pin可以有可能的方向
PORT_PIN_IN
PORT_PIN_OUT
|
Port_PinType
|
uint8
|
这是端口pin的符号名的数字表示
|
函数
|
Port_InitMemory
|
输入
|
void
|
输出
|
void
|
特性
|
同步,不可重入
|
说明
|
如果启动代码不起作用,此服务将初始化全局变量
|
函数
|
Port_Init
|
输入
|
Port_ConfigType *
ConfigPtr
|
输出
|
void
|
特性
|
同步,不可重入
|
说明
|
初始化要使用的端口
|
函数
|
Port_SetPinDirection
|
输入
|
Port_PinType
Pin
Port_PinDirectionType
Direction
|
输出
|
void
|
特性
|
同步,不可重入
|
说明
|
此函数在运行时设置端口引脚的方向
|
DIO驱动对微控制器硬件管脚的访问进行了抽象,除此之外,还可以对管脚进行分组。该模块通过DIO通道、DIO端口以及DIO通道组来读写数据,而且这类操作是同步的
IO驱动中所用到的端口的配置和初始化都是在PORT驱动模块中完成的。因此,在使用DIO功能之前,应先进行PORT的初始化
通过调用Dio_Init(&DioConfig)来初始化DIO模块。通过调用Dio_InitMemory()来初始化所有的全局变量。所以Dio_InitMemory()必须在Dio_Init()之前被调用
Type
|
C-Type
|
说明
|
Dio_ChannelType
|
uint32
|
此类型标识端口的单个pin
|
Dio_PortType
|
uint16
|
此类型标识整个端口
|
Dio_LevelType
|
uint8
|
这种类型用于端口的单个pin的状态
STD_HIGH
: pin的物理状态为HIGH
STD_LOW
: pin的物理状态为LOW
|
Dio_PortLevelType
|
uint16
|
这种类型用于整个端口的状态
1
: 对应于物理上应用于相应位位置的引脚的高电平
0
: 对应于物理上应用于相应位位置的引脚的低电平
|
Dio_ConfigType
|
uint8
|
此类型用于模块的初始化
|
函数
|
Dio_Init
|
输入
|
Dio_ConfigType *
ConfigPtr
|
输出
|
void
|
特性
|
同步,不可重入
|
说明
|
初始化DIO模块
|
函数
|
Dio_ReadChannel
|
输入
|
Dio_ChannelType
ChannelId
|
输出
|
Dio_LevelType
|
特性
|
同步,可重入
|
说明
|
读取所选端口pin的物理级别并返回此值
|
函数
|
Dio_WriteChannel
|
输入
|
Dio_ChannelType
ChannelId
Dio_LevelType
Level
|
输出
|
void
|
特性
|
同步,可重入
|
说明
|
将给定级别写入选定的端口引脚
|
函数
|
Dio_ReadPort
|
输入
|
Dio_PortType
PortId
|
输出
|
Dio_PortLevelType
|
特性
|
同步,可重入
|
说明
|
读取所选端口的物理级别并返回此值
|
函数
|
Dio_WritePort
|
输入
|
Dio_PortType
PortId
Dio_PortLevelType
Level
|
输出
|
void
|
特性
|
同步,可重入
|
说明
|
将给定级别写入选定的端口
|
函数
|
Dio_ReadChannelGroup
|
输入
|
Dio_ChannelGroupType
ChannelGroupId
|
输出
|
Dio_PortLevelType
|
特性
|
同步,可重入
|
说明
|
读取被引用信道组的引脚的物理级别并返回这个掩码
|
函数
|
Dio_WriteChannelGroup
|
输入
|
Dio_ChannelGroupType
ChannelGroupId
Dio_PortLevelType
Level
|
输出
|
void
|
特性
|
同步,可重入
|
说明
|
将给定的级别掩码写入选定的通道组
|
SPI驱动程序为与外部组件的基本通信提供服务
通过调用Spi_Init(&SpiChannelConfigSet)来初始化SPI模块。所有全局变量都通过调用Spi_InitMemory()来初始化。因此,必须在Spi_Init()之前调用Spi_InitMemory()
Tyepe
|
C-Type
|
说明
|
Spi_StatusType
|
enum
|
SPI_UNINIT
: 没有初始化
SPI_IDLE
: 驱动空闲
SPI_BUSY
: 驱动工作中
|
Spi_DataModeType
|
enum
|
SPI_DATA_8BIT
SPI_DATA_16BIT
|
Spi_JobResultType
|
enum
|
SPI_JOB_OK
SPI_JOB_PENDING
SPI_JOB_FAILED
|
Spi_SeqResultType
|
enum
|
SPI_SEQ_OK
SPI_SEQ_PENDING
SPI_SEQ_FAILED
SPI_SEQ_CANCELLED
|
Spi_AsyncModeType
|
enum
|
SPI_POLLING_MODE
SPI_INTERRUPT_MODE
|
Spi_NumberOfDataType
|
uint16
|
参数长度
|
Spi_JobType
|
uint8
|
Job Id
|
Spi_DataType
|
uint8
|
数据传输,接收
|
Spi_ChannelType
|
uint8
|
channel ID
|
Spi_SequenceType
|
uint8
|
sequence ID
|
Spi_HWUnitType
|
uint8
|
Hw Unit ID
|
Spi_SrcPtrType
|
Spi_DataType*
|
数据来源地址
|
Spi_DstPtrType
|
Spi_DataType*
|
数据目的地址
|
函数
|
Spi_InitMemory
|
输入
|
void
|
输出
|
void
|
特性
|
同步,不可重入
|
说明
|
如果启动代码不起作用,此服务将初始化全局变量
|
函数
|
Spi_Init
|
输入
|
Spi_ConfigType *
ConfigPtr
|
输出
|
void
|
特性
|
同步,不可重入
|
说明
|
必须调用初始化来操作SPI驱动程序
|
函数
|
Spi_DeInit
|
输入
|
void
|
输出
|
Std_ReturnType
|
特性
|
同步,不可重入
|
说明
|
可以调用解除初始化来关闭SPI驱动程序
|
函数
|
Spi_ReadIB
|
输入
|
Spi_ChannelType
Channel
const Spi_DataType*
DataBufferPtr
|
输出
|
Std_ReturnType
|
特性
|
同步,可重入
|
说明
|
内部缓冲区的内容被复制到DataBufferPtr所指向的位置
|
函数
|
Spi_WriteIB
|
输入
|
Spi_ChannelType
Channel
const Spi_DataType*
DataBufferPtr
|
输出
|
Std_ReturnType
|
特性
|
同步,可重入
|
说明
|
传递的数据缓冲区被复制到内部缓冲区(各自的通道),以便稍后传输
|
函数
|
Spi_Cancel
|
输入
|
Spi_SequenceType
Sequence
|
输出
|
void
|
特性
|
同步,可重入
|
说明
|
取消正在进行的序列
|
函数
|
Spi_GetStatus
|
输入
|
void
|
输出
|
Spi_StatusType
|
特性
|
同步,可重入
|
说明
|
返回当前驱动程序状态
|
函数
|
Spi_GetJobResult
|
输入
|
Spi_JobType
Job
|
输出
|
Spi_JobResultType
|
特性
|
同步,可重入
|
说明
|
返回当前工作状态
|
ADC模块初始化和控制微控制器的内部模拟数字转换器单元。它提供了启动和停止转换的服务,以启用和禁用转换的触发器。此外,它还提供了启用和禁用通知机制的服务,以及查询转换的状态和结果的例程
ADC模块工作在所谓的ADC通道组上。ADC通道组包含一个或多个ADC通道。每个通道的转换结果可以在各自的系统变量CANoe中设置
Type
|
C-Type
|
说明
|
Adc_ValueGroupType
|
uint32
|
读取通道组的转换值
|
Adc_GroupType
|
uint8
|
ADC通道组的数字ID
|
Adc_StatusType
|
enum
|
请求的ADC通道组的转换的当前状态
|
函数
|
Adc_Init
|
输入
|
const Adc_ConfigType*
ConfigPtr
|
输出
|
void
|
特性
|
同步,不可重入
|
说明
|
初始化所有内部变量。所有组状态都设置为ADC_IDLE,所有硬件触发器和组通知都被禁用
|
函数
|
Adc_DeInit
|
输入
|
void
|
输出
|
void
|
特性
|
同步,不可重入
|
说明
|
这个功能将返回所有ADC HW单位的状态,相当于电源复位状态。所有中断和通知都被禁用
|
AUTOSAR-MCAL模块0 前言1 DIO模块1.1 功能说明1.2 API说明0 前言1 DIO模块DIO模块提供服务来控制模拟数字I/O引脚的状态。这些服务包括:单个通道的读写整个通道的读写通道组的读写值1.1 功能说明初始化通过调用Dio_Init(&DioConfig)来初始化DIO模块。通过调用Dio_InitMemory()来初始化所有的全局变量。所以Dio_InitMemory()必须在Dio_Init()之前被调用模块DIO没有提供Main_Functio
AUTO
SAR
硬件输入输出抽象(IoHwAb)模块功能原理简介信号抽象过程IoHwAb与其它模块的接口与应用层SWC的接口与MCAL的接口与系统
服务
的接口IoHwAB模块构成IoHwAb的双面重性参考文献
硬件输入输出抽象 (IoHwAb, I/O Hardware Abstraction) 处于ECU抽象层(ECU Abstraction Layer),指的是一组用于对ECU硬件的输入输出信号做抽象的软件模块。抽象后的信号为ECU输入/输出信号物理值,可以通过RTE提供给其它SWC使用。IoHw
本文转载于:
AUTO
SAR
AUTO
SAR
的分层式设计,用于支持完整的软件和硬件模块的独立性(Independence),中间RTE(Runtime Environment)作为虚拟功能总线VFB(Virtual Functional Bus)的实现,隔离了上层的应用软件层(Application Layer)与下层的基础软件(Basic Software),摆脱了以往ECU软件开发与验证时对硬件系统的依赖。
软硬件分离的分层设计,对于OEM及供应商来说,提高了系统的整合能力
所有系列请点击:《汽车电子系列分享》
在上一篇公众号里已经对Communication的管理模块ComM做了详细的介绍, ComM是整个通信的
服务
管理模块,掌控整个
Auto
SAR
的通信,在通信协议栈中除了ComM之外,网络管理也是主要的通信控制和管理模块,因此本篇主要对CAN的
Auto
SAR
提供的网络管理功能做详细的介绍。
全系内容可在《搞一下汽车电子》后台回复 “系列”,或进入菜单栏 “分享平台” --> “系列分享”
Auto
SAR
学习之DIO配置实验背景环境搭建
利用EB tresos软件为工程添加相应DIO用作诊断IO,本例则基于S32V234平台,增加PGOOD,FSOB故障诊断管脚功能。
对于PMIC芯片,除了电压电流等波动引发故障寄存器置位意外,存在通用的故障诊断管脚,即PGOOD和FSOB,两者区别可以通俗理解为故障程度的不同。
对于OV,UV,ILIM(过压欠压限流)等常见问题,可以采用PGOOD管脚进行诊断,顾名思义,该管脚默认为高电平,GOOD代表好!一旦发生OV,UV,ILIM任一问题,PG
我理解的PORT:MCAL层中的IO驱动组中的pin脚总体配置:
Port就是芯片上的每个pin脚,可以配置成DIO ADC PWM ICU等单引脚的功能,也能配置成CAN的TX或者RX、SPI的MOSI等等其他功能的单个pin脚功能;
总之,PORT就是芯片上的具体的某个引脚。