AutoSAR基础:Port与Dio

AutoSAR基础:Port与Dio配置

  • 一.配置port
    • 1.Configurator
      • 1-1.进入Basic Editor->Port
      • 1-2.配置P00.0脚
        • 1-2-1.Port口
        • 1-2-2.Pin脚配置
      • 1-3.配置P00.1
        • 1-3-1.Pin脚配置
    • 2.config导出生成代码
    • 3.代码部分
      • 3-1.config生成代码
      • 3-2.Write与Read
        • 3-2-1.Read函数
        • 3-2-2.Write函数
  • 二.配置Dio
    • 1.Configurator
      • 1-1.进入Basic Editor->Dio
      • 1-2.定义Dio口
    • 2.Config导出代码
    • 3.代码部分

一.配置port

MCU的管脚操作程序主要以AutoSAR生成为主,熟料配置Port是AutoSAR架构下MCU开发的基础。

1.Configurator

1-1.进入Basic Editor->Port

    结合Infineon-TC39x-DataSheet-v01 手册可以,TC397具有17组普通port口

AutoSAR基础:Port与Dio_第1张图片

图1

1-2.配置P00.0脚

    把P00.0配置为CAN10_TXD通信脚。

AutoSAR基础:Port与Dio_第2张图片

图2
ALT5指代O5:

AutoSAR基础:Port与Dio_第3张图片

图3

1-2-1.Port口

在Short Name处填入合适的名称;
	在Number处填入port口编号,仅便于识别Port用;
	在Number Of Port Pins处填入该组的管脚个数;

AutoSAR基础:Port与Dio_第4张图片

图4

1-2-2.Pin脚配置

pin controller select选择DISABLE,统一不使能控制器选择;
Pin Direction选择PIN脚OUT/IN(输出与输入)模式;
pin enable analog input only(引脚只允许模拟输入),作为普通管脚选择DISABLE(不使能);
pin Id填入PIN脚号,该为0组第0号脚所以填入0;
pin Inittial Mode结合图2与图3可知,配置为CAN的TXD选择ALT5;
pim Output Pin Driver Mode选择输出方式,此处选择推挽输出;

AutoSAR基础:Port与Dio_第5张图片

图5

1-3.配置P00.1

AutoSAR基础:Port与Dio_第6张图片

图6

AutoSAR基础:Port与Dio_第7张图片

图7

1-3-1.Pin脚配置

pin controller select选择DISABLE,统一不使能控制器选择;
Pin Direction选择PIN脚OUT/IN(输出与输入)模式,此处选择为输入模式;
pin enable analog input only(引脚只允许模拟输入),作为普通管脚选择DISABLE(不使能);
pin Id填入PIN脚号,该为0组第1号脚所以填入1;
pin Inittial Mode结合图6与图7可知,配置为普通管脚GPIO;
pin Input Pull Resistor(引脚输入拉阻器)此处选择管脚为上拉输入模式;
pin Level Value(引脚电平值)选择LOW;

AutoSAR基础:Port与Dio_第8张图片

图8 PIN配置

2.config导出生成代码

AutoSAR基础:Port与Dio_第9张图片

图9 Generate

3.代码部分

3-1.config生成代码

AutoSAR基础:Port与Dio_第10张图片

图10 port代码

3-2.Write与Read

//写
void Dio_WriteChannel(const Dio_ChannelType ChannelId,const Dio_LevelType Level);
//读
typedef uint8 Dio_LevelType;
Dio_LevelType Dio_ReadChannel(const Dio_ChannelType ChannelId);

3-2-1.Read函数

以P23.6脚为例:
	Dio_LevelType Port_Type;
	Port_Type = Dio_ReadChannel(0x176);//0x17=23,0x6=6为P23.6
	第410行:PortNumber = Dio_lGetPortNumber(ChannelId);读取port号0x17=23;
	第412行:PinNumber = Dio_lGetPinNumber(ChannelId);读取PIN脚为0x6=6;
	第447-461行读取处该管脚的电平;

AutoSAR基础:Port与Dio_第11张图片

图11 Read函数

3-2-2.Write函数

以P23.6脚为例:
	Dio_WriteChannel(0x176,1);//0x176指代P23.6脚;1为输出高,可知0为输出低;
	第524行:PortNumber = Dio_lGetPortNumber(ChannelId);读取port号0x17=23;
	第526行:PinNumber = Dio_lGetPinNumber(ChannelId);读取PIN脚为0x6=6;
	第538-597行设置该管脚的电平;

AutoSAR基础:Port与Dio_第12张图片

图12 Write函数

二.配置Dio

Dio主要为Port定义后的管脚定义别名,便于程序调用。

1.Configurator

1-1.进入Basic Editor->Dio

定义IC为TC397
AutoSAR基础:Port与Dio_第13张图片

图13 Dio

定义Port Id号
AutoSAR基础:Port与Dio_第14张图片

图14 Port ID

1-2.定义Dio口

Dio是对Port的别名定义
在Port0组内IN_CAN2MCU_1_INH为Pin10号脚。

AutoSAR基础:Port与Dio_第15张图片

图15

2.Config导出代码

AutoSAR基础:Port与Dio_第16张图片

图16

3.代码部分

IN_CAN2MCU_1_INH为P00.10脚。
AutoSAR基础:Port与Dio_第17张图片

图17

读写函数同3-2-1与3-2-2 :

读:
Dio_LevelType Port_Type;
Port_Type = Dio_ReadChannel(DioConf_DioChannel_IN_CAN2MCU_1_INH);
写:
Dio_WriteChannel(DioConf_DioChannel_IN_CAN2MCU_1_INH,1);

你可能感兴趣的:(AutoSAR讲解与驱动开发,autosar,TC39x,port配置,IO配置)