- UID
- 864567
|
网络管理
LIN中的网络管理只指集群唤醒和休眠(go-to-sleep)流程。所有其它网络管理功能,如配置检测或自我保护(limp hom)管理都由应用完成。
若想使所有从节点均进入低功耗模式,主节点会发出第一个数据字节为零的主请求(MasterRequest)帧。此帧就是休眠命令。从节点软件负责处理正确进入低功耗模式所需的所有步骤。此外,如果LIN总线处于非活动状态超过25000位时间(在使用LIN 2.0规范的情况下为超过4秒),从节点也应该自动进入低功耗模式。
为了唤醒休眠的LIN集群,任何节点都可以发出唤醒命令。唤醒请求是通过迫使总线进入250ms到5 ms的主导状态发出的。每个从节点都可以检测到唤醒请求,并准备好接收100 ms之内的总线命令。
LIN节点功率管理状态图见图6。
图6:LIN节点功率管理
LIN评估
1996年,沃尔沃和Volcano通讯(VCT) 为Volvo S80系列开发了一种基于UART/SCI的协议,即Volcano Lite。此协议是车辆通讯系统不可缺少的组成部分。1997年,摩托罗拉公司与沃尔沃和沃尔沃通讯合作,帮助它们改进Volcano Lite协议以满足各种不同需求(比如无需晶振的从设备自动同步),并制定可以支持各种半导体产品的开放标准。1998年12月,Audi、BMW、Daimler Chrysler和VW也加入进来,由此形成了LIN协会(http://www.lin-subbus.org)。
LIN 1.0版于1999年7月发布,并受到一些汽车公司使用的VLIT总线的严重影响。LIN标准在2000年经过两次更新,从而产生LIN1.2版本。
2002年11月,LIN协会颁布LIN1.3版标准,主要对物理层进行修改,提高了节点之间的兼容性。
当前的标准版本,即LIN2.0,是2003年9月发布的。由于LIN2.0版是现行标准,所以本文主要介绍此版本。
由于Audi、BMW、Daimler Chrysler、VW、Porsche 和VCT汽车公司在实施过程中发现了一些问题,所以,LIN的新版本目前正在制定当中。2005年5月,VCT被Mentor Graphics (http://www.mentor.com)收购,成为一个大公司的组成部分,因而能持续支持和开发VCT的完整产品线。
LIN 2.0规范包
LIN规范2.0版反映了LIN协会指出的发展趋势。它还包括了SAE J2602 Task Force提供的信息,尤其是在现有从节点的使用方面。
LIN2.0规范包包含以下部分:
LIN物理层规范描述了物理层,包括比特率、时钟容限(clock tolrerance)等。 LIN协议规范描述了LIN的数据链路层。 LIN API规范描述了网络和应用程序之间的接口,包括配置和诊断层。 LIN配置语言规范描述了LIN说明文件的句法和语义,此说明文件用于配置完整的网络,并作为开发和分析工具的输入信息。 LIN诊断和配置规范描述了可部署在数据链层上,为诊断消息和节点配置提供信息的服务。 LIN节点功能语言规范定义了用来描述现有从节点的格式。这些从节点可与即插即用工具一同使用,以自动创建LIN描述文件。
图7中的LIN开发工作流程显示了LIN 2.0规范包的各个部分如何组成一个整体。
图7:VCT LIN开发工作流程
LIN 2.0和LIN1.3规范包可以在http://www.lin-subbus.org.上注册后免费订购。
通过比较LIN1.3和LIN 2.0规范包,我们可以看到两个最重要的改变就是对配置和诊断的标准化支持,以及规定的节点能力文件。它们的目标都是简化现有节点的使用。
其它重要的改变包括:
LIN API(LIN规范包的一部分)是所有用C语言编程的节点所必需的。 增加了改进型校验和(LIN2.0的校验和还包括PID字节)。 增加了节点配置命令。 标准化和必备的LIN产品识别符(供应商ID/功能ID/版本ID)是配置的一部分。 增加了诊断和诊断API。 定义了新的帧和信号类型,从而可以使用零星的帧和字节阵列信号。 增加了必需的响应错误(Response_error)从状态监控。 将休眠(goto_sleep)和唤醒(wake_up)信号分离。 规范中增加了自动比特率检测。
LIN2.0是LIN 1.3的扩展集,因此LIN2.0主节点可以处理包含LIN 1.3和/或LIN 2.0从节点的集群。自然,一些LIN2.0的特殊特性(包括增强的校验和、重新配置和诊断等)不能从LIN1.3从节点中请求。但是,LIN2.0从节点不能与LIN1.3主节点一同运行(因为LIN2.0从节点需要配置)。
SAE J2602 LIN工作组
SAE J2602的目标是通过满足LIN2.0的模糊、矛盾或可选的要求来提高网络中不同LIN设备之间的可互操作性和可交互能力。J2602的规定与LIN2.0规范的主要不同之处包括:
波特率固定在10.417Kbps。 由于斜率针对固定的波特率进行了优化,可以实现更好的EMC。 不推荐从节点之间的通讯。 不允许基于事件的消息。 除了休眠和有目标的复位(Sleep and Targeted Reset)外,所有配置和诊断服务都是可选的。
SAEJ2602还提出了LIN2.0中没有的其它要求(如容错操作、网络拓扑和内置的标准化报告等)。
一般来说,SAEJ2606的设计考虑了实施定制从节点的长期目标,而LIN2.0假设使用基于MCU的实施。因此,J2602期望通过定制从节点来进一步节约成本。
硅元件上的可能实施
根据目标MCU提供的功能,可以采用几种LIN驱动器实施策略。
对于没有UART模块的MCU,需要位响应(Bit-Bang)解决方案,使用一个定时器和两个通用IO引脚将UART功能构建到软件中。主要优势是没有UART的MCU一般是最便宜的处理器。另一方面,这样的CPU使用非常精密,需要为每个字节都发送中断请求。最后,这种解决方案与基于UART的解决方案相比一般需要更多内存,比如,在飞思卡尔68HC908QY器件中就可以找到这类LIN驱动器。 |
|