Chinaunix首页 | 论坛 | 博客
  • 博客访问: 593584
  • 博文数量: 119
  • 博客积分: 6010
  • 博客等级: 准将
  • 技术积分: 1583
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-15 09:18
文章分类

全部博文(119)

文章存档

2011年(3)

2010年(21)

2009年(44)

2008年(51)

我的朋友

分类:

2010-07-07 10:42:09

写在前面:本篇内容源自我在瑞萨编写的《LIN入门》应用笔记。该文档尚未正式发布。作为作者,本人出于结交同行、征求意见的目的,提前发布这个资料。如需转载,请注明出处。
 
 
摘要:
LINAPI
 

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

LIN Application Program Interface Specification

 

 
 

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

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

 

以下是我学习FS1.3版源代码的心得:

 

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

     

流程图:uploadfile-/2007-8/88787631.rar

 

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

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

 

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

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

流程图:uploadfile-/2007-8/829529040.rar

 

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


    提供一个最近发布的LIN 1.3 API,是由日本的一个研究机构TOPPERS开发的。该API提供2个版本,一个是在RTOS环境下运行,另一个不需要RTOS(见附件)。
    最近忙, 详细的分析打算明年1月进行。
 
 

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


    英飞凌把LIN的软件划分为“用户代码”和“驱动代码”两部分。英飞凌提供某些型号单片机的LIN驱动(low-level-driver, LLD),还提供了一个叫做DAvE的自动代码生成工具,完成用户代码与驱动代码的“关联”。驱动代码和DAvE都可以免费下载,但是只能找到LIN 1.x版的驱动代码(见应用笔记A1608613),LIN 2.0版(见应用笔记1610710)的需要单独申请。
值得一提的是,根据应用笔记的介绍,支持LIN 2.0的驱动代码已经通过了权威机构的一致性测试。
除了实用价值,应用笔记本身也有助于理解LIN的网络生成过程。
 

-------------- 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规则检查。目前的代码还不符合汽车行业的要求。

阅读(1277) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~