如何使用NXP RTD技术来完成AUTOSAR与NON-AUTOSAR的结合--以S32K3系列为例

news2024/11/28 19:33:56

目录

1、基本介绍

2、准备工作

3、从Can Demo开始

3.1 ASR CAN demo

3.1.1 文件概述

3.1.2 配置说明

3.1.3 文件结构

3.2 Non-ASR can通信

4 总结

1、基本介绍

        RTD(Real Time Drivers)是NXP实现的一种复杂软件接口抽象,提供给符合AUTOSAR和非AUTOSAR的产品使用(即这些产品均使用RTD抽象出来的这一套代码)。

        其产品基本环境如下,High Level Interface :符合ASR的接口,以及SDK的功能API,Low Level Interface:高效的直接访问硬件寄存器的API

        为什么NXP要做这样?

我们首先从开发流程来看:

  1. 常规SDK开发流程:使用NXP提供外设配置工具(如S32D)配置外设--->>使用SDK提供的常规API开发-->编译调试;
  2. AUTOSAR产品开发流程:使用EB或者Davinci配置MCAL→>使用ASR标准接口→>编译调试

        那么以发送一帧CAN报文为例,不管是ASR还是Non-ASR,最后都是对同一个CAN硬件进行配置,例如报文ID、payload等;既然最后的目标一致,为什么不把配置这个动作封装为一个标准API,在这个API基础上衍生出符合SDK和ASR标准的接口。

        基于这个认识,我们来看RTD的基本结构:

        如果开发符合AUTOSAR标准的软件,使用标准接口以保持应用程序之间的可移植性,而使用该接口最终都要实施到具体的IP硬件下,因此,通过IPWrapper这一层进行封装转换;

        如果开发Non-AUTOSAR的软件,可以使用ASR接口和RTD扩展的SDK通用接口(IPL)进行开发。

        通过这样的方式,就可以使用NXP提供的S32D 完成ASR和非ASR的产品开发。不需要使用EB这样昂贵的MCAL配置工具。

2、准备工作

         基于以上简介,我们来看看NXP提供的RTD是如何玩的

        首先下载S32D,S32DS.3.5_b220726_win32.x86_64  和RTD代码包,svn路径:Z:\软件库\01通用装机软件\03-开发工具\AUTOSAR工具

参考Getting Started with the Real-Time Drivers (RTD)_NXP 半导体

Ps:安装S32D需要激活码,

        安装好S32D之后,

        打开程序,选择help→install new sofeware ,安装

        如下

        这样S32 RTD基本就可以用。那么我们从最基本的CAN demo开始看看如何配置

3、从CAN Demo开始

3.1 ASR CAN demo

          首先打开S32DS,new→S32D Project from example,选择CanDemo,这一点就必须要夸夸NXP,不藏私。

3.1.1 文件概述

        该demo会轮询发送接收一帧报文,来展示RTD是如何将AUTOSAR和非AUTOSAR驱动代码结合到一起。

        新建一个CAN demo工程,此时只有main.c以及基本的启动diamante,如下:

        这时候编译肯定是不通过的。

        根据这个demo所要展示的效果,那么此时肯定缺少的模块有:AUTOSAR CAN D(.c和.h),结合RTD架构特点,必然也应该有CAN模块对应的非AUTOSAR 驱动代码;

        参考芯片手册,可以发现,该芯片的CAN ip为Flex CAN,因此缺少FlexCan.c/.h。同时,CAN对应的port、MCU的时钟配置等,因此,总结完成CAN_demo需要的模块如下:

  • CLC
  • FlexCAN
  • AUTOSAR CAN
  • PORT

3.1.2 配置说明

        首先来看S32DS的整体界面:

        我们配置代码主要关注右边一排的按钮,如下

        红框从左至右为引脚配置,时钟配置,外设配置

        打开配置界面,如下:

        这个工程初始配置只有一个时钟,因此,首先需要加入CAN模块和基本的Port模块;

        打开引脚配置,进入如下界面;

        在这里选取FlexCAN_0作为测试对象,因此选取PTA27/28引脚开通CAN功能;

此时生成的代码如下:

        可以看到,port已经完成了配置,那么现在就应该搞外设配置了。 

        打开外设窗口,可以看出,工具已经把基本模块布置好了,但还有很多问题需要确认。

        首先是上述模块均提示不会被编译,原因如下:

        很明显,需要添加上述模块的源代码;打开SDK功能组,添加上述模块,工具自动加入源码,如下:

        此时不更改模块例如CAN、EcuM等的配置,采用默认配置,结构如下:

        更新源码后,再次编译,发现是没有头文件。

        返回配置界面,添加SIUL2模块,更新代码得到如下源文件:

        此时编译成功。

        可以看到,在我对S32K这款芯片几乎不怎么熟悉的情况下,通过工具默认配置和引导,以及自身对AUTOSAR的了解,在基本不用修改代码的情况,使用RTD可以有效缩短开发时间,完成CanDemo工程搭建,从而验证控制器can功能。这和EB工具很类似。

3.1.3 文件结构

        虽然编译成功了,但我没有板子跑;因此只能看看这个代码结构了,如下:

        参考Can.c,梳理出AUTOSAR的MCAL代码如何和FlexCan的Non-AUTOSAR源码有效结合。

        基本路径如下:

        通过CAN Driver将整个硬件CAN抽象出来,然后通过Wrapper最后再到实际的Driver层进行寄存器级别的操作。 下图为NXP的MCAL和RTD对于CAN的处理。

3.2 Non-ASR can通信

        如果不使用Autosar,那么直接配置driver,也可以验证can通信,功能组件结构如下:

        意味着可以直接使用FlexCan的API,省却了MCAL这一步骤。代码如下:

4 总结

  1. RTD是SDK和AUTOSAR的结合体,在代码中通过IpWrapper的方式有效地将AUTOSAR和硬件访问API结合到一起,这样只需要使用S32D即可完成AUTOSAR MCAL和SDK外设配置的要求;
  2. 代码开发难点:需要自上而下,理清AUTOSAR标准中驱动配置项,在此基础上优化SDK标准API,以达到用户使用ASR接口和SDK接口都能实现特定功能的目的;例如ASR API Can_Write( ),SDK API FlexCan_Ip_Send(  )
  3. 个人认为,RTD架构是每个汽车芯片厂的必由之路,将整个SDK+AUTOSAR的生态部署好,逐步培养用户习惯;像EB这样的中间商日子可就难过了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1166375.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

140CPU67260 5136-RE-VME 简化与外部分析软件平台的连接

140CPU67260 5136-RE-VME 简化与外部分析软件平台的连接 2022年5月26日-爱默生全球软件、技术和工程领导者今天宣布发布其PACSystems RSTi-EP CPE 200可编程自动化控制器(PAC)。这一新的紧凑型PACs系列通过最大限度地减少对专业软件工程人才的需求,帮助原始设备制…

如何让 Bean 深度感知 Spring 容器

Spring 有一个特点,就是创建出来的 Bean 对容器是无感的,一个 Bean 是怎么样被容器从一个 Class 整成一个 Bean 的,对于 Bean 本身来说是不知道的,当然也不需要知道,也就是 Bean 对容器的存在是无感的。 但是有时候我…

mac matplotlib显示中文

以下默认字体,在mac ventura上测试能成功显示中文: import matplotlib.pyplot as plt import matplotlib#from matplotlib import font_manager #plt.rcParams[font.sans-serif] [Heiti TC]#plt.rcParams[font.sans-serif] [Songti SC]#plt.rcParams[f…

goquery库编写程序

goquery库的爬虫程序,该程序使用Go来爬取视频。。 package main ​ import ("fmt""net/http""net/http/httputil""io/ioutil""log""strings""golang.org/x/net/proxy""golang.org/x/n…

C++失传千年经典系列(二):类

C失传千年经典系列(一):基础语法认知 忙着去耍帅,后期补充完整..............

Clion 下载、安装、使用教程,附详细图文(2023年亲测可用)

文章目录 一、下载Clion二、安装教程三、安装MinGW方法一、直接下载MinGW安装① 下载MinGW② 配置Clion 方法二、使用Dev cpp安装① 安装Dev cpp② 配置Clion 四、常用快捷键 大家好,今天为大家带来的是 Clion 的下载,安装,使用教程&#xff…

3.vue3项目(三):路由配置,登录页面搭建:登录功能调用,登录后的消息提示,登录时的表单校验

一、模板的路由的配置 首先我们需要登录页,首页,404页面,任意路由。 1.安装依赖 pnpm install vue-router 2.新建三个页面 新建登录页面、首页、404页面。 在src下面新建views文件夹,然后分别新建login,home,404三个文件夹,然后每个文件夹内新建一个index.vue。我们这…

社区智能奶柜,未来市场新机遇

我们无法左右大局,但可以通过对时代趋势的深入理解,精准把握机遇,乘势而上!未来优秀的商业项目,将遵循以下几个标准:产品具有高频需求、刚性需求、高毛利空间和低人力成本。社区智能奶柜之所以能在当前市场…

【入门Flink】- 02Flink经典案例-WordCount

WordCount 需求&#xff1a;统计一段文字中&#xff0c;每个单词出现的频次 添加依赖 <properties><flink.version>1.17.0</flink.version></properties><dependencies><dependency><groupId>org.apache.flink</groupId><…

enum和Collection.stream()你这样用过么

最近在做一个数据图表展示的功能&#xff0c;显示订单近七天或者近半月的数量和金额。可以理解成下图所示的样子&#xff1a; 我是用枚举和集合的stream方法实现的数据初始化和组装&#xff0c;枚举用来动态初始化时间范围&#xff0c;集合的stream方法来将初始化的数据转换成…

《自制编程语言基于c语言》读书笔记

前言&#xff1a; 很久之前&#xff0c;我在双十一的时候入手了一本《自制编程语言基于c语言》。这本书是写《操作系统真象还原》的作者。我当时看他的关于操作系统的这本书&#xff0c;非常不错&#xff0c;就连着这本书一起入了。但是后面&#xff0c;因为各种事情&#xff…

龙芯浏览器是哪家公司开发的?支持信创吗?

最近看到不少小伙伴在问&#xff0c;龙芯浏览器是哪家公司开发的&#xff1f;支持信创吗&#xff1f;这里我们小编就跟大家一起来看看&#xff0c;仅供参考哈&#xff01; 龙芯浏览器是哪家公司开发的&#xff1f; 龙芯浏览器是由龙芯中科牵头&#xff0c;基于主流的渲染引擎G…

学习笔记|多独立样本秩和检验|克鲁斯卡尔-沃利斯检验|多个组间的多重比较|规范表达|《小白爱上SPSS》课程:SPSS第十四讲 | 多独立样本秩和检验如何做?

目录 学习目的软件版本原始文档多独立样本秩和检验一、实战案例读数据&#xff1a; 二、统计策略三、SPSS操作1、正态性检验2、多个独立样本的秩和检验3、多个组间的多重比较 四、结果解读第一&#xff0c;描述性统计结果。 第二 &#xff0c;给出的是不同训练年限各自的样本量…

了解数据库设计,轻轻松松提高工作效率

每个应用程序&#xff0c;无论大小&#xff0c;最终都需要一个数据库来持久保存所有重要数据。对此没有任何争论&#xff01; 什么是数据库设计&#xff1f; 数据库设计是帮助创建、实施和维护企业数据管理系统的一系列步骤的集合。设计数据库的主要目的是为所建议的数据库系统…

拓世法宝 | 数字经济崛起,美业如何抓住流量风口?

爱美之心&#xff0c;人皆有之。无论男女&#xff0c;都会很自然地对美好事物燃起兴致&#xff0c;跟高颜值相关的事物总能聚集注意力。例如直播平台里的美女网红收割流量赚得盆满钵满&#xff0c;面庞俊俏的年轻偶像吸引万千粉丝&#xff0c;还有“央视最美记者”王冰冰、“最…

R语言爬虫代码模版:技术原理与实践应用

目录 一、爬虫技术原理 二、R语言爬虫代码模板 三、实践应用与拓展 四、注意事项 总结 随着互联网的发展&#xff0c;网络爬虫已经成为获取网络数据的重要手段。R语言作为一门强大的数据分析工具&#xff0c;结合爬虫技术&#xff0c;可以让我们轻松地获取并分析网络数据。…

驱动大健康行业数字化转型升级,开利网络与艾博盾达成战略合作

在当今这个数字化飞速发展的时代&#xff0c;各行各业都在寻求数字化转型的创新突破口&#xff0c;以适应日新月异的变化。近日&#xff0c;开利网络科技与广东艾博盾举行战略合作签约仪式&#xff0c;期望基于开利网络在数字化营销领域多年沉淀的经验&#xff0c;为企业数字化…

【hcie-cloud】【1】华为云Stack解决方案介绍、华为文档获取方式 【上】

文章目录 华为文档获取方式前言云计算发展背景国家政策、社会发展驱动数字经济开启新时代深化数字化转型提升效率&#xff0c;国家数字主权云进入落地阶段从Cloud-Based到Cloud-Native&#xff0c;两种模式长期并存适合政企智能升级的云华为云Stack&#xff0c;政企智能升级首选…

Spring Security使用总结一,简单的引用Spring Security,坐着火箭就入门了

最近因为一些不能言语的原因&#xff0c;研究了一下Spring Security。因为感觉在使用上来说难度不大&#xff0c;所以把我研究的使用过程总结一下&#xff0c;放上来供大家学习研究思考进步的。我的思路大致就是&#xff0c;一个东西拿过来&#xff0c;先研究怎么使用&#xff…

数据库进阶教学——事务

目录 一、事务简介 二、事务操作方式 1、设置事务提交方式 1.1、命令 1.2、示例 2、开启事务 2.1、命令 2.2、示例 三、事务四大特性 四、并发事务问题 五、事务隔离级别 5.1、命令 5.2、示例 5.2.1、脏读 5.2.2、不可重复读 5.2.3、幻读 一、事务简介 事务是…