本地互连网络(LIN)总线
低成本的本地互连网络(LIN)系统在汽车中用于舒适,动力总成,传感器和执行器应用。
模块化Microchip LIN系列包括简单的收发器IC,复杂的系统基础芯片,LIN收发器,稳压器和看门狗。在更高的集成度,Microchip的系统级封装(SiP)的解决方案设有一个AVR ®,一个ARM皮质®在单个封装M0 +微控制器或微控制器PIC,LIN收发器,电压调节器和看门狗。
LIN概述
LIN(本地互连网络)是一种低成本的串行通信协议,主要在汽车网络中实现。它通常用于汽车中的机电子节点(传感器,执行器),但也非常适合工业应用。 下图显示了具有中央网关的汽车通信架构的示例。这里,LIN控制空调系统的阻尼电机。LIN规范将LIN子总线表示为LIN集群:
主要特点
- 主从媒体访问控制概念
- 基于通用UART / SCI接口硬件的低成本硅实现,相当于软件或纯状态机。
- 在从节点中没有石英或陶瓷谐振器的自同步
- 具有可预先计算的信号传播时间的确定性信号传输
- 低成本,单线实现
- 速度高达20 kbit / s
- 基于“信号”的应用程序交互
- 可预测的行为
- 可重构
- 传输层和诊断支持
LIN节点配置有多种可能,但是,所有节点都包含一个LIN收发器,一个通用异步接收器发送器(UART)模块和一个应用控制器(MCU),如图所示:
Microchip提供各种 LIN收发器和 带有LIN增强型UART的MCU,以实现这些常见的LIN节点配置。
LIN规范
本地互连网络(LIN)标准包括传输协议的规范,传输介质,开发工具之间的接口以及用于软件编程的接口。从硬件,软件和可预测的电磁兼容性(EMC)行为的角度来看,LIN促进了网络节点的互操作性。 LIN规范由LIN Consortium开发/维护,直到2010年,随着v2.2A规范的发布。 2013年,LIN规范被转录为ISO(国际标准化组织),作为ISO标准ISO 17987第1-7部分(2016年发布)的一部分。
LIN供应商ID维护现在由SAE(汽车工程师协会)处理。
规格清单
- LIN v2.2A规范
- ISO / CD 17987-1一般信息和用例定义
- ISO / CD 17987-2传输协议和网络层服务
- ISO / CD 17987-3协议规范
- ISO / CD 17987-4电气物理层(EPL)规格12V / 24V
- ISO / CD 17987-5应用程序编程接口(API)
- ISO / CD 17987-6协议一致性测试规范
- ISO / CD 17987-7电气物理层(EPL)一致性测试规范
LIN工作流程
LIN描述文件或LDF中描述了本地互连网络(LIN)网络集群的配置。这是由网络设计人员创建的ASCII文本文件,提供给将要开发主/从节点的供应商。 从LDF,使用合适的工具(例如IHR LIN驱动程序配置工具)自动生成ANSI-C驱动程序代码和头文件。
#基本工作流程
LIN协议(概述)
可以使用七层开放系统互连(OSI)模型来描述许多网络协议,如下所示:
根据OSI模型,LIN是一个包罗万象的概念,其中 物理, 数据链路, 网络和 应用层都包含在规范中。
LIN物理层
在OSI模型中,物理层涉及“将位置于线路上”。 本地互连网络(LIN)物理层基于ISO 9141(K线总线)。它由双向总线LIN组成,它连接到每个总线节点的收发器,并通过终端电阻和二极管连接到正电池节点V BAT。
LIN物理层的详细描述在LIN v2.2A规范的第6节中提供
收发器
LIN总线工作在9 V和18 V之间。通常,微控制器LIN I / O引脚电压电平通过收发器调整为LIN总线电平。这允许微控制器以3/5 V电平工作,而总线工作在更高的电平。
简化的LIN ECU节点:
电子控制单元(ECU)是控制运输车辆中的一个或多个电气系统或子系统的任何嵌入式系统的通称。
一个“主”LIN ECU节点(来自LIN标准):
在电池丢失的情况下,二极管D ser_int和D ser_master是强制性的,以防止ECU节点从总线线路受到不受控制的供电。
LIN集群
LIN集群由单线总线,主节点和最多15个从节点组成。
主要特征
- 单主机多从机(最多15个从机)
- 单线加地线信号:(VBAT,GND,LIN(9 V-18 V))
- 从1 kbit / s到20 kbit / s
- 优势/隐性位(如CAN总线)
- 公交线路总长度:最多40米
- 端接:主设备1kΩ/从设备30kΩ
信令
LIN设计的目标是实现简化的布线拓扑。简单的单线总线连接到集群中的每个节点,并从地面切换到电池电压,如图所示:
信号水平
- 显性 - 总线低 - 逻辑'0'
-
隐性 - 总线HIGH - 逻辑'1'
LIN网络实现有线AND信令:
- 所有节点必须为HIGH(隐性)才能传输逻辑'1'
- 只有一个节点LOW(Dominant)将发送一个逻辑'0'
典型的LIN节点配置
LIN节点中有多种LIN IC可供使用。以下示意图概述了一些常见配置。
独立收发器(例如MCP2003B)
注: MCU UART外设应具有LIN功能,如器件数据手册中所述。
具有内置稳压器的独立收发器(例如MCP2021A)
这些IC也被称为“Mini LIN System Basis Chips”
具有内置稳压器和看门狗定时器的独立收发器(例如MCP2050)
这些IC也被称为“LIN系统基础芯片”
系统级封装(SiP)(例如PIC16F1829LIN,ATA6616C,ATSAMHA1G16A)
它们包含MCU +完整的LIN系统基础芯片功能
瞬态电压保护(负载转储)
外部60V瞬态抑制器(TVS)二极管,位于VBB和地之间,具有与电池电源串联的50欧姆瞬态保护电阻(RTP)和VBB引脚,用于保护器件免受瞬态电压和ESD事件的影响。虽然这种保护是可选的,但它被认为是良好的工程实践,如以下使用MCP2003B的示例电路所示:
数据链路层概述
在OSI模型中,数据链路层协议涉及建立/终止两个节点之间的连接,并确保可靠的数据传输。它们还实现节点之间的流控制协议。
概观
LIN是广播串行网络。数据链路层实现了用于介质访问控制的主从原则。所有消息由主设备发起,最多一个从设备回复给定的消息标识符。主节点控制总线上数据帧的发布,确保以正确的间隔和周期发送它们,并且每个帧在总线上获得足够的时间空间。
LIN网络由LDF(LIN描述文件)描述,其包含关于帧和信号(包括定时)的信息。此文件用于在主节点和从属节点中创建软件驱动程序。
LIN总线设计用于传输短控制消息(2,4或8个字节)。帧中交换的数据称为信号。 LIN数据传输模型基于发布 - 订阅模型,例如:
注意:
- 帧插槽A,帧插槽B和帧插槽C是循环的(即它们定期循环通过所有节点)
- 回复标题的节点是PUBLISHERS
- 收听的节点是订阅者
- 框架插槽A.
- 点对点(从站到主站或从站到从站)通信
- SLAVE1发布,MASTER和/或SLAVE2订阅
- 点对点(从站到主站或从站到从站)通信
- 框架槽B.
- 多播(Master-to-one-more-Slaves)通信
- MASTER发布,SLAVE1和/或SLAVE2订阅
- 多播(Master-to-one-more-Slaves)通信
- 框架槽C.
- 点对点(从站到主站或从站到从站)通信
- SLAVE2发布,MASTER和/或SLAVE1订阅
- 点对点(从站到主站或从站到从站)通信
摘要
LIN集群包含(最多)1个节点,指定为LIN-Master:
- 包含一个主任务,它根据LIN描述文件(LDF)定期发送标头****
- 包含一个Slave Task,它可以:
- 发送回复
- 阅读回复
- 忽略标题
LIN集群最多包含16个指定为LIN-Slaves的节点:
- 包含一个Slave Task,它可以:
- 发送回复
- 阅读回复
- 忽略标题
LIN消息帧
所有数据都在帧插槽中发送,帧插槽包含标题,响应和一些响应空间,因此从站将有时间回答。每帧都在LIN描述文件(LDF)确定的帧时隙中发送。当主节点广播包含标题的帧时,将创建消息。然后,从节点根据从主设备发送的标头向数据帧填充数据。帧中交换的数据称为信号。
主标题
同步中断字段
SYNC BREAK指定为显性条件(总线低电平)至少13位时间。这比所有主导的最坏情况数据模式更长,从而确保总线将其视为中断。
同步字段
发送SYNC FIELD字节以使从器件能够确定两个下降沿之间的时间,从而确定主器件使用的传输速率(自动波特率检测)。位模式为0x55(0b01010101)
(受保护的)标识符字段(PID)
PROTECTED IDENTIFIER FIELD包含两个子字段; 的帧标识符和所述奇偶校验。比特0到5是帧标识符,比特6和7是奇偶校验。
帧ID位
6位帧标识符包含有关发送方和接收方的信息以及响应中预期的字节数:
ID范围(十二月) | ID范围(十六进制) | 数据长度 |
---|---|---|
0-31 | 0x00-0x1F | 2 |
32-47 | 0x20-0x2F | 4 |
48-63 | 0x30-0x3F | 8 |
帧ID分为3类:
- 0-50(0x00-0x3B)用于正常的信号/数据承载帧
- 60(0x3C)和61(0x3D)用于携带诊断和配置数据
- 62(0x3E)和63(0x3F)保留用于将来的协议增强。
平价位
奇偶校验位计算如下:
- P0 = ID0⊕ID1⊕ID2⊕ID4
- P1 =!(ID1⊕ID3⊕ID4⊕ID5)
奴隶反应
数据字段
一旦发送了主节点发送的报头,就可以开始传输实际数据了。根据发送的标识符,从设备将识别出它已被寻址,并在数据(信号)字段中回复响应。几个信号可以打包到一个帧中。首先发送数据字节LSb。
帧携带1到8个字节的数据。具有特定帧标识符的帧中包含的数据字节数应由发布者和所有订阅者同意。
多字节数字量以LSB优先发送。
校验字段
通过校验和检查从站的数据响应。
经典或增强校验和的使用由主节点管理,并且每帧标识符确定; 经典地与LIN 1.x从节点通信并增强与LIN 2.x从节点的通信。
帧标识符60(0x3C)至61(0x3D)应始终使用经典校验和。
LIN v2.2A规范的第2.3.1.5节中提供了校验和计算的详细说明(带示例)
信号
“信号”在LIN帧的数据字段中传输。每个信号只有一个发布者,即它总是由集群中的同一节点写入。零个,一个或多个节点可以订阅该信号。所有信号都有初始值。发布信号的初始值有效,直到节点向此信号写入新值。订阅信号的初始值有效,直到从另一个节点接收到新的更新值。
信号类型
对于给定的数据帧,信号是标量值或字节数组。
- 标量信号长度在1到16位之间。
- 1位标量信号称为布尔信号
- 大小为2到16位的标量信号被视为无符号整数。
- 字节数组是1到8个字节之间的数组。
信号分配示例
以下数据框描绘了4个不同宽度的标量值信号(A,B,C,D,E):
LIN集群中的所有信号都在LIN描述文件(LDF)中定义
LIN帧类型
局部互连网络(LIN)中有几种不同的帧类型,每种类型都为数据链路层提供特定的功能。
无条件框架
这是LIN通信的“正常”类型。主设备在调度的帧时隙中发送帧头,并且指定的从节点用数据填充帧。无条件帧携带信号,它们的帧标识符在0(零)到59(0x3B)的范围内。
事件触发帧
事件触发帧的目的是增加LIN集群的响应度,而不会将过多的总线带宽分配给多个从节点的轮询,而很少发生事件。
- 如果发生某个事件,主人会问奴隶
- 只有看过该活动的人才会发布回复
- 标识符0x00到0x3b(0-59)
- 可能发生冲突 - 如果多个从站检测到指定的事件,则所有从站都会同时响* 应,从而导致冲突
- 检测到时,MASTER将恢复为无条件帧
- 可以带来更好的带宽利用率
场景#1
没有奴隶有事件报告,没有人发布:
场景#2
SLAVE1有一个事件来报告和发布响应:
情景3
两个(或更多)从站检测并发布响应:
零星的框架
偶发帧的目的是将一些动态行为混合到确定性和实时聚焦的调度表中,而不会丢失调度表的其余部分中的确定性。
- 仅当已知从属服务器已更新要发布的信息时,才由MASTER发送
-
将动态行为混合到计划表中
诊断框架
这些用于LIN v2.2A规范的传输层规范部分。它们的主要功能是在LIN从站上实现诊断和配置功能的区域。
- 携带诊断/配置数据
- 始终包含8字节数据有效负载
- 指定标识符
- 0x3C(60)主请求帧
- 0x3D(61)从机响应帧
数据字段定义
- 节点配置
- 标准从站的配置
- 普遍使用
- 可以使用现成的传感器
- NAD(节点地址)
- 初始NAD:从站的原始地址(在主站请求的情况下,从站应答此地址)
- NAD:奴隶的地址。可以通过配置分配。
- 供应商ID
- 供应商识别,例如0x0014 = Microchip
- 功能ID
- 功能应用例如0xAA55 =车窗升降开关
- 变种
- 应用类型,例如0x3C =反捏功能
示例(主请求帧)
示例(从属响应帧)
网络管理框架
LIN集群中的网络管理是指集群唤醒并仅进入休眠状态。
所有节点睡眠命令
主设备通过发送转入睡眠命令将集群设置为总线休眠模式。转到睡眠命令是主请求帧,第一个数据字段设置为0
,其余设置为0xFF:
醒来
- 任何节点都可以请求唤醒
- 节点强制主导250μs - 5 ms
- 然后,所有节点应在唤醒信号结束后的100 ms内唤醒
-
主节点必须在150 ms内发送
帧时间
本地互连网络(LIN)协议的关键属性是使用调度表。计划表可以确保总线永远不会超载。它们也是保证信号周期性的关键部分。 在附表表在LIN描述文件(LDF)定义,其中消息被发送的顺序和时间网格。表格完成后,主人再次从第一条消息开始。 为了开发调度表,您需要能够计算LIN消息的持续时间(即帧插槽宽度)。
标称消息长度
以下演示了基本的最小帧时隙持续时间t frame_Nom:
哪里:
- n =响应数据字段中的#bytes(1到8)
- t bit =波特率-1
恩。(19.2kBit / s)-1 ~ 52.1μS
LIN消息字段在此页面上有详细描述。
时间储备
LIN从器件通常使用低成本,低速微控制器实现。因此,规范允许将最多40%的时间储备添加到每个SCI帧(UART字节),如下所示:
框架槽宽
最后,为主节点指定了一个小的延迟容差,称为tJitter,以便创建最终的帧插槽宽度:
林时间表
现在我们已经了解了LIN消息的帧插槽宽度,我们可以开始理解LIN调度表的外观。 以下描述了LIN调度示例和相应的LIN帧插槽:
每个帧时隙的长度各不相同,取决于响应消息中预期数据字节的数量。
时基
LIN帧时隙基于LIN簇时间单位调度,称为LIN时基,T base,通常为5或10mS。
T base和t jitter都在LIN描述文件(LDF)的“节点”部分中定义,如下所示:
例
以下示例描述了LDF中的LIN调度表。该表有一个“Main”子表,定义了四个帧时隙。时基为5毫秒(未显示)。的延迟参数指定在MS中的帧时隙持续时间。该值必须是时基的倍数。
LIN描述文件(LDF)
本地互连网络(LIN)网络集群的配置,即规范:
- 网络发布者和订阅者
- 信号
- 框架
在LIN描述文件或LDF中管理。这是由网络设计人员创建的ASCII文本文件,提供给将要开发LIN主/从节点硬件/软件的供应商。 从LDF,使用合适的工具(例如IHR LIN驱动程序配置工具)自动生成ANSI-C驱动程序代码和头文件。
基本工作流程
LIN描述文件(LDF)
- 由财团定义
- 全球描述语言
一个文件描述了一个完整的LIN网络
嵌入式软件,测试,验证和分析工具的通用文件 - 定义集群信息
协议版本
语言版本
公交车速度
节点列表
信号
框架
计划表
LDF标题部分
LDF 信号定义部分
LDF 帧定义部分
进一步阅读
LIN v2.2A规范的第9节中提供了LIN配置语言的详细说明。