AUTOSAR合集 1、基于EB的MCAL --- MCU驱动开发手册

AUTOSAR合集 1、基于EB的MCAL --- MCU驱动开发手册

码农世界 2024-05-14 前端 56 次浏览 0个评论

AUTOSAR系列教程合集

策略

整体将采用自底向上的方式进行讲解,开发路线可能会做略微调整。

开发路线

工程搭建--->BSW(MCAL--->通信协议栈(CAN/LIN))--->SWC--->代码集成--->测试。

开发风格

追求:干扰最小化,极简且正确。

目标

建成一套高质量的开发参考文档。

1、基于EB的MCAL---MCU驱动开发手册


版本记录

AUTOSAR系列教程合集项目
版本编写日期发布日期作者批准描述
V0.12023.11.012023.11.12心迹难寻心迹难寻初稿
V0.22023.11.15-心迹难寻心迹难寻

             修正错误单词

前置条件

  • 声明

    本教程仅供学习参考使用,请勿用于商业用途或二次创作,内容创作使用的软件,皆为试用版本或免费版本,如还有内容可能涉及侵权的,请告知,很抱歉、我会第一时间删除,谢谢理解!

    未经本人书面允许,禁止使用本模板及内容!

    • 必备知识点/技能

      一问三连:

      ①、MCU驱动的功能有哪些?

      ②、具备独立申请账号,寻求技术支持的能力?

      ③?

      • 开发工具

        工具名称版本用途/描述
        EB Troses Studio24.0.1配置MCAL
        S32K14X_MCAL_4.2_RTM_1.0.31.0.3MCAL驱动包
        NXP S32K146-

        硬件载体

        外部晶振:20Mhz

        • 参考文档

          序号文件名称路径
          1AUTOSAR_MCAL_MCU_IM.pdf

          C:\NXP\AUTOSAR\S32K14X_MCAL4_2_RTM_1_0_3\

          eclipse\plugins\Mcu_TS_T40D2M10I3R0\doc

          2AUTOSAR_MCAL_MCU_UM.pdf

          C:\NXP\AUTOSAR\S32K14X_MCAL4_2_RTM_1_0_3\

          eclipse\plugins\Mcu_TS_T40D2M10I3R0\doc

          • 缩写与全称

            缩写全称
            AUTOSARAutomotive Open System Architecture
            PLLPhase Locked Loop
            PMCPower Management Controller

            前言

            此文档简述了,基于EB Tresos软件配置MCAL--- MCU驱动模块的方法。

            受众:主要面向,从事嵌入式汽车电子开发方向的工程师,和有基础的嵌入式开发人员。

            目的:让用户快速上手开发MCU驱动。


            一、MCU介绍与配置使用方法

            层级关系

            主要功能

            初始化时钟,提供时钟参考。

            主要接口函数

            序号函数名称描述
            1Mcu_Init()-
            2Mcu_InitClock()-
            3Mcu_GetPllStatus()获取锁相环PLL状态
            4Mcu_DistributePllClock()使能PLL
            //初始化伪代码
            1  Mcu_Init();
            2  Mcu_InitClock();
            3  while(未锁定 == Mcu_GetPllStatus()){
               }
            4  Mcu_DistributePllClock();

            配置方法说明

            Default Error Detect                                                   Version Info API 

            开启或关闭默认错误跟踪器(Det)                           启用/禁用 API 以读取模块版本信息

            Mcu Get Ram State API                                             Mcu Init Clock API  

            启用/禁用Mcu_GetRamState函数                              启用/禁用 Mcu Init Clock API 函数

            Mcu No PLL                                                                Mcu Enter Low-Power Mode 

            如果硬件无PLL,且无需软件操作,启用此函数         启用/禁用低功耗模式函数

            否则禁用此函数

            Mcu Loops TimeOut (0 -> 4294967295)                Mcu Perform Reset API  

            McuCalloutBeforePerformReset

            McuPerformResetCallout 

            McuCmuNotification

            McuErrorIsrNotification   

            Mcu Disable System Integration Module Initialization  

            Mcu Disable Power Management Controller Initialization 

            Mcu Disable Reset Control Module Initialization 

            Mcu Disable System Mode Controller Initialization 

            方法:以上参数具体功能及含义,见参考手册2。暂时不想写了,需自行去查看。

            后面有时间再补充进去。

            二、示例/实践

            1、配置思路

            EB作为MCAL配置实现的载体,其配置过程可简化为:

            ① 选择要使用的API功能函数;

            ② 时钟源配置、后级时钟配置(过程可简单理解为:开关数字和乘除法的组合使用);

            ③ 配置CAN、LIN、ADC、SPI、PWM等等外设的参考时钟;

            ④ 生成MCAL MCU驱动的配置.c和.h文件。

            2、时钟树

            从上图可以看出,S32K14x 共有四个时钟源:

            ① 快速时钟FastlRC;

            ② 慢速时钟SlowRC;

            ③ 外部时钟OSC;

            ④ PMC时钟(LPO128Khz)。

            可供后级时钟:CORE_CLK、SYS_CLK、BUS_CLK、FLASH_CLK等总线时钟使用。

            3、EB 新建工程

            4、MCU配置

            1、MCU->General

            在通用界面中选择要使用的API函数,其他参数默认即可。

            2、进入MCU->General->McuGeneralConfiguration选项下

            ① 配置外部时钟SOSC   McuSOSCClockConfig:

            注:可自行根据使用的,评估板外部晶振频率进行配置。

            ② 配置慢速时钟SIRC   McuSIRCClockConfig:

            不做配置,默认即可。

            ③ 配置快速时钟FIRC   McuFIRCClockConfig:

            不做配置,默认即可。

            ④ 配置PLL时钟  McuSystemPll:

            将PLL时钟配置为最大160MHz

            计算公式:

            PLL f =  ( SOSC x (PLL Reference Clock Divider) x (PLL Multiplier) ) / 2

            PLL Div2 f =  (PLL f ) / (PLL Divider 2)

            PLL Div1 f =(PLL f ) / (PLL Divider 1)

            ⑤ 配置MCU->General->McuGeneralConfiguration->General

            对正常RUN、低速VLPR和高速HSRUN,这三种模式下的:CORE_CLK、SYS_CLK、BUS_CLK、FLASH_CLK等时钟进行配置,配置方法可参考④ 配置PLL时钟。

            RUN

            VLPR

            HSRUN

            ⑥ 配置MCU->General->McuGeneralConfiguration->McuClockReferencePoint

            扩展配置1  MCU->McuModeSettingConf

            MCU默认为RUN模式,代码中也可通过Mcu_SetMode()改变MCU的运行模式,配置时需勾选Allow High Speed Run Mode和Allow Very-Low-Power Modes,可根据自身需求进行配置。

            扩展配置2  MCU->McuRamSectorSettingConf

            MCU调用Mcu_InitRamSection()函数,初始化RAM区域,可通过如下自行配置

            3、MCU其他配置参数默认即可,有兴趣的朋友可自行去学习

            4、MCU驱动配置代码生成

            5、MCU测试

            后续补充,时间待定。


            总结

            整体讲述了,基于EB软件,配置MCAL MCU驱动的学习方法和实践路线。

            下节预示(工程搭建和验证测试):

            1、AUTOSAR---基于EB的MCAL PORT驱动开发;

            2、AUTOSAR---基于EB的MCAL DIO驱动开发;

            3、基于Green hills 搭建基本工程文件;

            4、基于S32 Design Studio for ARM Version 2.2搭建基本工程文件。

            最近很忙,后面会不定时更新。

转载请注明来自码农世界,本文标题:《AUTOSAR合集 1、基于EB的MCAL --- MCU驱动开发手册》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,56人围观)参与讨论

还没有评论,来说两句吧...

Top