(转)LIN学习

本章介绍 LIN 的 API 的概念、功能和一般用法,并以例子的形式介绍了调用 API 的一般流程。本章内容对应 LIN 规范的以下部分:

LIN Application Program Interface Specification

-------------- 2007-8-08 -------------------------

Freescale 在 LIN 方面有不少开放的资料, 不愧是 LIN 协议的奠基人! LIN08 和 LIN12 分别是面向 HC08 ( 8 位 MCU )和 HC12 ( 16 位 MCU )的 LIN API 软件包。这两个包各有 2 个版本,分别符合 LIN 1.3 和 LIN 2.0 。两个包我都粗略看过,由于 FS 在 LIN 2.0 版 API 开发时放弃了自己的 API ,采用了 “ 第三方 ” 的 API 库(怀疑是 Mentor 的),使 API 部分成了黑盒子,无法深入研究。所以,符合 LIN 1.3 版的更适合学习。

?

以下是我学习 FS 的 1.3 版源代码的心得:

?

例程简介:
??? 从节点;
??? 功能符合 LIN1.3 规范 , 支持 Unconditional frame 和 Sporadic frame ;
??? 使用了 FS 自定义的 FS API ,同时提供符合 LIN 规范的 API 供参考;
??? 硬件资源使用 ESCI 模块及中断, TIM 定时器模块及中断。

?????

流程图:

?

-------------- 2007-8-29 -------------------------

偶然发现瑞萨也免费提供 LIN 2.0 的 API 代码,十分感叹,自己身在瑞萨都不能{dy}时间获得这个消息!叹归叹,立刻看了看,发现瑞萨这个程序的可读性挺好,包含大量详细的代码注释,是学习 API 实现方法的好教材!

?

和先前看过的 FS LIN 相比,感受如下:

  • 优点 1 :透明度更高:瑞萨的代码都是 .c 格式,注释多。而 FS 的 API 封在 .lib 里(可能来自 Mentor Graphic 的 LCT 工具),只在外层留着各种映射,无法深究;
  • 优点 2 :标准化, API 的定义xx符合 LIN 协议。
  • 缺点 1 :对 RAM 的利用不如 FS 节省,甚至可以说是 “ xx ” 。
  • 缺点 2 :硬件资源占用比较多,实现一个主节点需要四个硬件: HW LIN 、 2 个 Timer 、 UART ,对应 4 个中断要处理
  • 缺点 3 :公开的部分不支持偶发帧、诊断帧和事件触发帧。

流程图:

-------------- 2007-11-28 -------------------------


?

-------------- 2008-05-13 -------------------------

-------------- 2008-07-09 -------------------------

最近看了看瑞萨的“代码自动生成和组合工具”SANGO所包含的LIN驱动,发现一处设计错误,提醒正在使用该驱动的朋友注意一下。另外也提出一些我觉得可以改进的点,与朋友们讨论。

这个驱动是用于带有Hardware LIN Module的MCU的,通用性强是一个特色。目前可以用于R8C/Tiny系列中的22/23/24/25/26/27/2C/2D等型号,稍加改动,新出的34/36/38等型号的MCU也能用。

设计错误:

??????? LIN帧校验和算法不符合LIN规范。

可以提高的部分:

??????? 处理好驱动部分的软件状态机,使其在处理完一次通信后能够恢复到就绪状态,继续处理下一个帧。

??????? 处理好通信错误/异常,使其在发生通信错误之后,能够在帧结束前恢复到就绪状态,继续处理下一个帧。

??????? 在接收ID后,节点应该有2种可能的行为,一个是发送应答,一个是继续接收。在目前的代码里,除了0x3c这个诊断ID,从节点对其余ID都只做接收。那么从机什么时候才能给主机发信息?

??????? 去掉ID与数据段长度的关联,使其支持LIN 2.x版;

??????? 如果要用在汽车电子产品上,需要进行MISRA规则检查。目前的代码还不符合汽车行业的要求。

  • (2010年04月13日)
  • (2010年05月18日)
  • (2010年05月11日)
  • (2010年04月11日)
  • (2010年04月09日)
  • (2010年05月03日)
  • (2010年05月14日)
  • (2010年07月07日)
  • (2010年04月13日)
  • (2010年04月13日)
  • (2010年04月07日)
  • (2010年04月23日)
  • (2010年05月03日)
  • (2010年04月06日)
  • (2010年05月02日)
  • (2010年05月18日)
  • (2010年04月22日)
  • (2010年04月13日)
  • (2010年05月23日)
  • (2010年05月18日)
郑重声明:资讯 【(转)LIN学习】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——