LIN及其在发动机风扇控制中的应用
图7中的LIN开发工作流程显示了LIN2.0规范包的各个部分如何组成一个整体。

LIN2.0和LIN1.3规范包可以在http://www.lin-subbus.org上注册後免费订购。
通过比较LIN1.3和LIN2.0规范包,我们可以看到两个最重要的改变就是对配置和诊断的标准化支援,以及规定的节点能力档。它们的目标都是简化现有节点的使用。其他重要的改变包括∶
(1)LINAPI(LIN规范包的一部分)是所有用C语言编程的节点所必需的。
(2)增加了改进型校验和(LIN2.0的校验和还包括PID字节)。
(3)增加了节点配置命令。
(4)标准化和必备的LIN产品识别符(供应商ID/功能ID/版本ID)是配置的一部分。
(5)增加了诊断和诊断API。
(6)定义了新的帧和信号类型,从而可以使用零星的帧和字节阵列信号。
(7)增加了必需的响应错误(Response_error)从状态监控。
(8)将休眠(goto_sleep)和唤醒(wake_up)信号分离。
(9)规范中增加了自动比特率检测。
LIN2.0是LIN1.3的扩展集,因此LIN2.0主节点可以处理包含LIN1.3和/或LIN2.0从节点的集群。自然,一些LIN2.0的特殊特性(包括增强的校验和、重新配置和诊断等)不能从LIN1.3从节点中请求。但是,LIN2.0从节点不能与LIN1.3主节点一同运行(因为LIN2.0从节点需要配置)。
6、SAEJ2602LIN工作组
SAEJ2602的目标是通过满足LIN2.0的模糊、矛盾或可选的要求来提高网络中不同LIN设备之间的可互操作性和可交互能力。J2602的规定与LIN2.0规范的主要不同之处包括∶
(1)串列传输速率固定在10.417Kbps。
(2)由於斜率针对固定的串列传输速率进行了优化,可以实现更好的EMC。
(3)不推荐从节点之间的通讯。
(4)不允许基於事件的消息。
(5)除了休眠和有目标的复位(SleepandTargetedReset)外,所有配置和诊断服务都是可选的。
SAEJ2602还提出了LIN2.0中没有的其他要求(如容错操作、网络拓扑和内置的标准化报告等)。一般来说,SAEJ2606的设计考虑了实施定制从节点的长期目标,而LIN2.0假设使用基於MCU的实施。因此,J2602期望通过定制从节点来进一步节约成本。
7、LIN驱动器实施
根据目标MCU提供的功能,可以采用几种LIN驱动器实施策略。
对於没有UART模块的MCU,需要位元响应(Bit-Bang)解决方案,使用一个定时器和两个通用IO引脚将UART功能构建到软件中。主要优势是没有UART的MCU一般是最便宜的处理器。另一方面,这样的CPU使用非常精密,需要为每个字节都发送中断请求。最後,这种解决方案与基於UART的解决方案相比一般需要更多内存,比如,在飞思卡尔68HC908QY器件中就可以找到这类LIN驱动器。
带有标准的UART(SCI)模块的MCU一般意味著驱动器的软件安装更加简单,但另一方面,UART模块会增加最终解决方案的MCU成本。与需要位元响应(Bit-Bang)解决方案相比,这种解决方案的优势在於CPU的负荷更低,因为基於LIN通讯的中断只对接收到的每个字节进行。
LIN优化UART模块的MCU是减少驱动器软件部分而增加功能/特性的下一个步骤。飞思卡尔68HC908EY或68HC908GR设备中采用的增强型SCI模块提供串列传输速率调节和仲裁模块选项,无需额外的定时器就能测量输入信号(对LIN同步消息有用)。另一方面,这种方法可能会增加最终设计的成本。
最後一点,也是很重要的一点,理想的解决方案应使用LIN专用的UART模块。飞思卡尔MCU(如68HC908QL设备)的SLIC(LIN从介面控制器)模块就是一个范例。与标准的UART解决方案相比,这种解决方案的成本和复杂性更高,并且要求实施SLIC优化的驱动器。另一方面,SLIC提供如下功能∶自动同步、自动串列传输速率调整、与上述任何解决方案相比中断数大大减少、自动校验和的生成与验证。因此,它允许将MCU专用於用户应用。
此外,还有一种非常有趣的解决方案是将所有与LIN有关的计算转移到支持LIN的协处理器模块上。飞思卡尔的MC9S12X系列采用了这种方案。这些产品配备有完全独立於核心的X-gateRISC协处理器,可将整个LIN通讯负载从CPU核心中释放,从而保证CPU在所有时间内都可用於用户应用。
评论