IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 如何使用S32DS开发KEA系列的LIN功能(一) -> 正文阅读

[嵌入式]如何使用S32DS开发KEA系列的LIN功能(一)

如何使用S32DS编写LDF(LIN描述文件)

1.背景介绍

对许多车身电子客户来说,有些项目由于成本原因和车厂总线架构的改变,会放弃CAN通信,采用LIN通信。此时如果采用S32K1xx系列的芯片(可以说是现在最火的通用类车规MCU了,当然也缺的非常厉害),就会有些大材小用,遇到这种情况,我们都会推荐客户使用KEA64系列(包含KEAZN64,KEAZN32和KEAZN16),性价比高。
在选用了KEA系列芯片之后,软件工程师面临的第一个问题就是开发环境的选择,Keil,CodeWarrior10.6,S32DS For Arm等都可以,这几个软件对比情况如下:

开发环境是否免费驱动&例程图形化界面LIN Stack
Keil收费较少不支持
CodeWarrior10.6代码超过64KB收费一般支持
S32DS For ARM免费较多支持

如果S32K1xx和KEA两种芯片平常开发都会用到,建议统一到S32DS For ARM的开发环境,否则推荐使用CodeWarrior10.6以及以上的版本。
一般开发带LIN通信的产品时,车厂都会提供LDF文件,此时如果有工具可以根据LDF文件生产相关代码,并符合LIN2.x或者J2602的规范,那无疑会大大减少开发时间。NXP刚好就提供了这样的工具和使用例程,即LIN Stack。

2.LIN Stack

NXP的LIN_Stack_S12 已经更新到4.6.6版本了,支持的芯片有S08,S12(X)和KEA系列。如果是S32K1xx和Power PC系列的单片机需要开发LIN功能,直接使用S32DS自带的LIN Stack图形化组件即可。使用LIN Stack工具进行LIN功能的开发,使用者只要关注应用层的代码实现,无需关注MCU的底层驱动,大大提高了开发效率。

2.1 LIN Stack获取

  • LIN_Stack_S12的下载地址如下:
    LIN2.x and SAE J2602 Stack

  • 点击链接,登陆NXP官网的账号,会跳转到如下界面:
    在这里插入图片描述

  • 点击上图的红框,然后点击同意条款,就会进入如下界面,下载红框的exe文件安装即可。
    在这里插入图片描述

2.2 LIN Stack简介

NXP官网提供的LIN_stack的分层架构简要描述如下:

  • TL层(传输层):给测试者提供发送诊断请求的方法
  • Core API层:处理初始化以及LIN协议和应用之间的信息交互。
  • Low Level层:提供LIN协议和硬件外设之间的交互,处理break检测,发送字节,接收响应等。
  • MCU HW层:提供支持LIN的标准外设接口驱动
    在这里插入图片描述

注:上面关于LIN的API描述参考的是LIN Stack自带的使用手册,在LIN2.1规范中,对于LIN的API规定了三类,如下所示,有兴趣可以详细阅读LIN2.1规范。

  • LIN core API
  • LIN node configuration and identification API
  • LIN transport layer API (optional)
2.2.1 LIN Stack整体目录

LIN Stack安装之后,在安装目录有如下几个文件夹,Documentation文件夹主要存放了协议栈使用手册,API函数文档以及配置工具使用手册,建议先大概过一下这几个文档。
在这里插入图片描述

2.2.2 LIN Stack架构介绍

LIN Stack详细架构如下图所示,各个层级之间的关联一目了然,同时Documentation文件夹内的网页版API文档能够看到内部各个函数之间的调用关系,适合研究源码时使用。
在这里插入图片描述

3. S32DS集成NCF Tool

对于使用LIN Stack的用户来说,开发LIN功能并不需要熟悉LIN Stack源码,只需要通过协议栈自带的工具进行配置,生成所需的C文件和H文件即可。具体的流程图如下:

  1. 通过自带文本或者图形编辑器生产LDF文件和NPF文件;
  2. 点击工具栏的NC图标,生产相应的配置文件–C文件和H文件,并存放到相应的目录;
  3. 和LIN Stack源码一起编译,生产所需的烧录文件。
    在这里插入图片描述

3.1NCF Tool插件安装

NCF Tools的安装步骤如下:

  1. 复制LIN Stack自带的com.freescale.ncftool_1.5.3.jar文件,目录为…\LIN_stack_S12_4_6_6\NCFTool\Eclipse_Plugin
  2. 将该文件放到S32DS For ARM 2.2的安装目录下存放eclipse插件的位置,粘贴之后的位置为:…\S32DS_ARM_v2.2\eclipse\plugins\com.freescale.ncftool_1.5.3.jar
  3. 打开S32DS For ARM 2.2,如果在工具栏能够看到下图所示的灰色图标,说明安装成功(S32DS其他版本和CodeWarrior10.6以上的版本都可以按照这种方式安装)
    在这里插入图片描述

3.2 NCF Tool工具介绍

安装好NCF Tool之后如果不走一遍代码生成的过程,总感觉缺了点啥。话不多说,开始操作。

3.2.1 LDF配置工具介绍
3.2.1.1 创建LDF文件
  1. 新建一个KEA128的工程,这里选择S32DS自带的hello_kea128例程,如下图。如果没有打开的工程,创建LDF文件时会因为没有存放的地方而无法创建。
    在这里插入图片描述

  2. 依次点击File->New->Other,如下图;
    在这里插入图片描述

  3. 在弹出的界面选择LDF file,再点击Next,如下图;
    在这里插入图片描述

  4. 查看LDF文件存放的位置以及LDF文件的名称,修改完成后点击Finish;
    在这里插入图片描述

  5. 新建的LDF文件如下图所示,可以通过点击下方的GUI Editor切换到图形化工具进行文件编写
    在这里插入图片描述

  6. 切换到GUI编辑的整体界面如下图,下面一节将详细介绍如何进行配置。
    在这里插入图片描述

3.2.1.2 使用图形化界面编辑LDF文件
  1. 全局定义选项卡,如下图,选择LIN的版本和波特率。
    在这里插入图片描述

  2. 节点定义选项卡,如下图,编写主节点的名称、时基、抖动等参数以及从节点的名称和个数。
    在这里插入图片描述

  3. 信号定义选项卡,如下图,编写节点发布的信号的属性,如名字,大小等,有两点注意事项:

  • 每一个从节点必须有一个错误广播信号,LIN2.1中规定长度为1,J2620中规定长度为3;
  • 每个信号的发布者只能是一个,接收者可以有多个;
    在这里插入图片描述
  1. 无条件帧定义选项卡,如下图,编写无条件帧相关的属性,如帧名字、ID、发布者、包含的信号等。要注意的是:每一个无条件帧里包含的所有信号都来自于同一个发布者。
    在这里插入图片描述

  2. 事件触发帧定义选项卡,如下图,编写帧名字、PID、选择冲突解决进度表(在调度表定义选项卡中实现)以及关联的无条件帧,关联的无条件帧必须在冲突解决进度表中被包含
    在这里插入图片描述

  3. 零星帧定义选项卡,如下图,零星帧也称偶发帧,该选项卡主要编写帧名字和关联的无条件帧(发布节点必须是主节点)。
    在这里插入图片描述

  4. 节点属性定义选项卡,如下图,编写从机节点的属性,有关P2_min,ST_min,N_As,N_Cr这四个参数的意义如下:

  • P2_min: 从LIN 子网接收到主机请求帧到LIN 的从机节点准备好数据发送应答之间的最小时间间隔。
  • ST_min: 从机节点准备接收下一个帧(主机请求帧)或准备发送下一个帧(从机应答帧)的应答部分所需要的最小准备时间。
  • N_As_timeout: 从传输层向LIN 子网请求一个帧开始到传输层确认请求的帧传输结束之间的超时间隔,即从发送方看,发送LIN 帧(MRF 或SRF)的超时间隔。
  • N_Cr_timeout: 在复合帧(首帧+续帧的形式)的传输中,传输层接收到的首帧和续帧、续帧和续帧之间的超时间隔。
    在这里插入图片描述
  1. 调度表定义选项卡,如下图,编写调度表的内容,其中Item type有许多选项没有列出来,如AssignNAD,ConditionalChangeNAD,DataDump等,如果需要详细了解,建议参考LIN2.1规范中的4.2.5章节。
    在这里插入图片描述

9.修改好LDF的文件点击保存之后,点击下图中的NCF按钮,会检查配置是否有误,如果没有问题,会弹出Message–This LDF form is correct的提示。
在这里插入图片描述

3.2.1.3 参考资料
  • …\LIN_stack_S12_4_6_6\NCFTool\LDF&NPF_Examples文件夹中的LIN21.ldf
  • 瑞萨的《LIN总线入门.pdf》
  • LIN Specification Package Revision 2.1 November 24, 2006
3.2.2 NPF配置工具介绍
3.2.1.1 创建NPF文件
  • 和创建LDF不同的是选择文件的时候,如下图,其他步骤一样。
    在这里插入图片描述

  • NPF文件的配置界面整体如下图:
    在这里插入图片描述

3.2.1.2 使用图形化界面编辑NPF文件
  1. 全局定义选项卡,如下图,主要是选择MCU、总线时钟、诊断级别、空闲超时和时间周期等参数
    在这里插入图片描述

  2. 硬件定义选项卡,如下图,选择使用的MCU外设接口。
    在这里插入图片描述

  3. 网络定义选项卡,如下图,选择使用的LDF文件,节点名称和设备类型。
    在这里插入图片描述

  4. 配置修改之后点击刚才的按钮检查NPF文件格式是否有误。

  5. 点击下图的按钮,然后选择相应的文件夹(存放生产的C文件和H文件),点击OK即可
    在这里插入图片描述

6.查看KEA128的工程,在相应的文件夹多了3个文件,就是我们想要的配置文件。
在这里插入图片描述

3.2.1.3 参考资料
  • …\LIN_stack_S12_4_6_6\NCFTool\LDF&NPF_Examples文件夹中的KEA_Master_LIN21.npf
  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-07-29 11:48:50  更:2021-07-29 11:50:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:58:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码