微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 消费类电子 > Freescale LIN总线应用开发平台

Freescale LIN总线应用开发平台

时间:11-27 来源:今日电子 点击:

主节点的软件流程图见图5。在单片机和LIN驱动程序初始化以后,通过主节点PCB板上的1个开关,调整LIN是否被允许工作。 如果睡眠,主节点上的LED灯会关闭;如果LIN总线工作,则主函数Main将会周期的发送帧头到从节点。所有的ID号(如表1)在idList[16] 中定义。如果函数LIN_MSG_STATUS()显示有对应于帧头的特定ID,从节点有反应,则反馈回来的数据被读取,同时,检查 idActiveList[16]判断这是否为新的LIN从节点,如果是,则idActiveList[16]对应的位置1,然后NewNode()函数 被执行,节点的LED灯显示有新的节点加入。

如果对应于帧头的特定ID,从节点没有反馈,则检查idActiveList[16]判断对应的位置是否为1,如果为1,则表明有节点被除去。同时,LostNode()函数执行,节点的LED灯显示有节点丢失。

2.从节点的软件结构

首先,配置寄存器(CONFIG),I/O寄存器和定时器寄存器初始化。初始化完成后,进入主程序While(1)循环。对 GR60和EY16,程序中的定时由时间基准模块来实现(TBM)。由于QY4没有时间基准模块(TBM),所以程序中的定时由定时器来实现。由于不同的 从节点上,时钟不一样,所以每个从节点执行完1个主程序程序环的时间也不一样。程序中我们用#Define定义了2个时间周期:按一次开关的时间(按下和 跳起,60毫秒)和持续按住开关的时间(3秒)。对于第3个定时(LIN总线持续5秒没有活动,则进入睡眠)在文件Slave.cfg中定义。

图6是LIN从节点的主软件结构。当完成初始化工作,进入主循环之后,如果LIN总线5秒钟没有活动,则进入睡眠状态;如果由, 则查看按键(开关)的类型判断是进入ID节点的配置模式,还是进入正常模式。如果是正常模式,则将数据(DATA)写入LED,若进入ID节点配置模式, 则配置ID,然后将ID写入LED。

表1 表2 表3 图7是按键软件流程图。首先判断按键有没有被按下,如果有则计算按键被按下的时间。如果按键按下的时间超过3秒,则进入节点ID 配置模式(从0到4,然后再到0,反复进行);如果按键按下的时间为60毫秒,则数据(DATA)加1,然后用这个数据给LED显示,同时反馈给主节点 (主节用LED显示此数据)。

3.LIN底层驱动软件

前面的两个小节我们讲到了应用软件。本小节将对LIN底层的驱动函数作一个介绍。首先是数据类型(表2),主要的数据类型是无符号8位数,惟一的一个16 位数,用来给地址变量(指针)。在驱动函数中,主要用到的常量有两种,一种用来标示LIN总线的驱动状态(表3),一种用来表示LIN传输过程中消息帧的 状态(表4)。由于篇幅有限,与作者联系可获得免费的软件源程序。

总结

Freescale的LIN节点通信演示平台,提供了一个很好的LIN控制开发平台。用户可以基于此LIN控制开发平台的软件(驱动程序)和硬件非常简单 的编写自己的应用程序(利用CODEWARRIOR集成开发环境),然后利用此平台的底层驱动软件和硬件环境,利用与PC相连的通信接口,烧写程序,并进行调试。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top