lin通讯从节点同步间隔场_LIN模块介绍
概述,协议规范及模块实现
一、概述
1、如下图为一个LIN网络,包含了一个Master节点,两个Slave节点:
LIN网络
在LIN总线通讯中,Master task决定了在LIN总线上传送的是哪一帧,Slave task提供每一帧所携带的数据。
2、如下图为一个LIN节点的层次结构图:
LIN1.3与LIN2.1的区别在于,LIN1.3没有TL层,Signal interaction放在Protocol层中,没有单独的TP层。
3、LIN总线特点:
串行通信:线间干扰小,节省线束,传输距离长;
单线传输:增强的ISO9141 (ISO 15765-1), 总线电压基于VBAT;
最高速率20Kbit/s:满足车身上大部分的应用需求;
单主多从结构:无需仲裁;
基于通用UART/SCI的低成本接口硬件:几乎所有MCU有具备LIN总线的硬件基础;
从节点无须晶振或陶瓷震荡器就可以实现同步:大幅度降低成本;
一条总线最多可连接16个节点:由总线电气特性决定;
支持诊断功能:支持UDS服务;
4、LIN2.1节点模型:
LIN1.3节点模型:
LIN2.1与LIN1.3节点模型的差别在于LIN1.3没有Transport layer,所以也就没有流控、传输时间控制的功能,LIN1.3协议中没有对诊断及节点配置进行规范,所以在LIN1.3中完成相应的功能都放在自定义诊断中完成。
5、LIN网络拓扑结构:
1)单主任务,多从任务;
2)主节点包含主任务和从任务;
3)从节点只包含从任务;
4)主任务决定总线上的报文,从 任务发送数据;
6、LIN帧:
通信原理:主任务发送报头,从任务用响应来补充报头形成完整的报文。
报文传输:报文的内容由ID来定义。
广播:所有节点都能够接受总线上的帧。
7、调度表
1)负责调度网络各报文发送的顺序;
2)为每帧报文分配发送时隙(slot);
3)发送时隙:报文可以被发送的时间;
4)不同报文的发送时隙可能不同;
5)调度表在网络系统设计阶段确定;
6)调度表使得LIN通信具有可预测性;
8、切换调度表:
主任务可以拥有多个调度表,并在不同的调度表之间切换,该处理方式增加通信的灵活性。
二、协议规范
(1)字节间隔位于每个字节之间;
(2)响应间隔位于报头与响应之间;
(3)留给MCU足够的处理时间;
(4)帧长度可能增长;
1、字节场
1)基于SCI的通信格式;
2)发送一个字节需要10个位时间(TBIT);
2、间隔场
1)表示一帧报文的起始,由主节点发出;
2)间隔信号至少由13个显性位组成;
3)隔界定符至少由1个隐形位组成;
4)间隔场是唯一一个不符合字节场格式的场;
5)从节点需要检测到至少连续11个显性位才认为是间隔信号;
3、同步场
1)确保所有从节点使用与节点相同的波特率发送和接收数据;
2)一个字节,结构固定:0X55;
4、标识符场
1)ID的范围从0到63(Ox3f);
2)奇偶校验符(Parity)P0,P1;
5、数据场
1)数据场长度1到8个字节;
2)低字节先发,低位先发;
3)如果某信号长度超过1个字节采用低位在前的方式发送(小端);
6、校验和场
用于校验接收的数据是否正确
1)经典校验(Classic Checksum)仅校验数据场(LIN1.3)
2)增强校验(Enhance Checksum)校验标识符场与数据场内容(LIN2.0、LIN2.1)
标识符为0x3C和0x3D的帧只能使用经典校验
计算方法:反转8位求和(inverted eight bit sum)
例:Data=0x4A、0x55、0x93、0xe5
7、帧长度
最小帧长度
THEADER_NOMINAL=34*TBIT
TRESPONSE_NOMINAL=10*(NDATA+1)*TBIT
TFRAME_NOMINAL=THEADER_NOMINAL+TRESPONSE_NOMINAL
最大帧长度
THEADER_MAX=1.4*THEADER_NOMINAL
TRESPONSE_MAX=1.4*TRESPONSE_NOMINAL
TFRAME MAX=THEADER MAX+TRESPONSE MAX
8、帧类型
1)无条件帧
使用频度最高的帧类型,无任何发送条件;
标识符(ID)为0到59(0x3B);
主任务发出报头,一个任务响应,一个或多个任务接收如下图:
帧 ID = 0x30应答部分的发布节点为从机节点1,收听节点为主机节点。典型应用如从机节点1向主机节点报告自身某信号的状态。
帧 ID = 0x31应答部分的发布节点为主机节点,收听节点为从机节点1和从机节点2。典型应用如主机节点向从机节点发布信息。
帧 ID = 0x32应答部分的发布节点为从机节点2,收听节点为从机节点1。典型应用如从机节点之间彼此通信。
2)事件触发帧
引入事件触发帧的目的是节省带宽。
BCM(Master)需要获取4个车门的状态,该如何实现?
第一种方式:
每次向四个车门请求状态,浪费带宽,因为车门状态不是经常发生。
第二种方法:
将请求四个车门状态的帧合并为一个事件触发帧,Master不需要每次发送四个帧请求车门的状态,只需要发送一个事件触发帧即可,哪个车门状态发生变化,对应的车门将响应该事件触发帧。
事件触发帧的响应会出现如下三种情况:
第一种:没有车门状态变化。
第二种:一个车门状态发生变化:
第三种:多个车门状态发生变化,此时将出现冲突,冲突处理时,Master需要像第一种处理方式一样,重新发送四帧分别请求单个车门状态。LIN1.3与LIN2.0、LIN2.1处理方式有所区别,区别在于LIN1.3不切换调度表,占用事件触发帧的时隙发送,LIN2.0、LIN2.1将切换冲突调度表处理,如下图:
3)零星帧(偶发帧(Sporadic Frame))
引入零星帧的目的也是为了节省带宽,如:BCM(Master)需要发送对4个车窗的控制指令,但是,两个车窗的控制命令很少被同时执行,同样大量的带宽被浪费。
具体方案如下:
4)诊断帧
诊断帧用来传输诊断或配置信息,一般包含8个字节。
标识符:
60(0x3C):主请求帧
61(0x3D):从响应帧
传输方式:
5)保留帧
标识符:62(0x3e), 63(0x3f)
在LIN 2.1中未对保留帧进行定义, 留给用户自定义或将来的版本升级。
9、调度表
10、偏移
偏移(jitter)是指一帧报文实际开始发送的时刻与帧时隙起点的时间差(该值在LDF文件中定义)。
TFrame_Slot> jitter + TFrame_Maximum
11、网络管理
12、睡眠(Go To Sleep)
睡眠指令只有主节点可以发送,从节点在接到睡眠指令之后,也可以选择不进入睡眠状态而继续工作,这根据应用层协议而定。
13、唤醒(Wake Up)
在一个处于睡眠状态的LIN网络中,任何一个节点都可以发送唤醒信号。
发送节点发送的唤醒信号:
接收节点检测的唤醒信号:
14、主任务状态机模型
15、从任务状态机模型
lin通讯从节点同步间隔场_LIN模块介绍相关推荐
- lin通讯从节点同步间隔场_LIN总线节点的设计
lin总线节点的设计 [日期:2005-5-11] 来源:电子技术应用 作者:宋开臣 陈 舒 [字体:大 中 小] 摘要:介绍了汽车网络系统a类串行总线通信标准lin协议2.0版本(最新版本),设计了 ...
- lin通讯从节点同步间隔场_LIN总线节点的设计-控制器/处理器-与非网
摘要:介绍了汽车网络系统A类串行总线通信标准LIN协议2.0版本(最新版本),设计了总线节点的硬件和通信程序,规划了电动汽车车身网络总线结构. 关键词:LIN总线 通信 节点 随着汽车电子业的飞速发展 ...
- lin通讯从节点同步间隔场_基于LIN总线的车身控制系统设计
http://www.eepw.com.cn/article/262205.htm LIN(Local Interconnect Network)是一种低成本的串行通讯网络,用于实现汽车中的分布式电子 ...
- lin通讯从节点同步间隔场_Freescale MM908E625的LIN总线
0 引言 LIN(Local Interconnect Network,本地互连网)由汽车厂商专为汽车工业开发(飞思卡尔半导体是在LIN原始协会成员中唯一的半导体器件供应商),是"一主(节 ...
- lin通讯从节点同步间隔场_基于LIN总线的汽车分级制网络结构
原标题:基于LIN总线的汽车分级制网络结构 1.引言 汽车总线中通讯节点和数据流量持续增加,节点日益复杂,使得汽车总线在重量.布置.成本.通信效率等方面面临困境,走出这一困境的出路在于实行汽车总线的网 ...
- lin通讯从节点同步间隔场_低成本总线技术——LIN总线协议规范介绍
专注原创汽车技术干货分享,小编求关注哦! 在前面一篇文章中"野百合也有春天"--低成本总线LIN介绍介绍了LIN总线的发展历程及其基本概念.现在这篇文章主要介绍LIN总线协议规范. ...
- lin通讯从节点同步间隔场_基于LIN节点的车载防盗报警设计与实现
随着汽车工业的迅猛发展,车身上的电子控制单元也越来越多.传统的车身线束不仅会增加制造成本,而且会降低系统的可靠性和可维护性.于是,汽车车身总线应运而生.采用车身总线设计不仅可以简化线路.节约制造成本. ...
- lin通讯从节点同步间隔场_汽车行业必须知识--CAN FD通讯
前面我们讲了CAN的基础知识,但是由于CAN总线存在通讯速率低,报文头过长,刷新速率低等缺点.为解决这些问题CAN-FD应运而生.首先看看发展历史,2012年,BOSCH发布CAN FD white ...
- lin通信ldf文件解析_详细步骤讲解如何在CANoe中创建一个LIN通讯工程(多图+详解)...
本文首发自微信公众号"汽车技术馆"! CANoe可以实现基于CAN通讯的通讯测试和仿真,同时也可以支持基于LIN通讯的通讯测试和仿真,如何在CANoe中建立一个基于LIN通讯的工程 ...
最新文章
- Spring Cloud构建微服务架构:分布式服务跟踪(抽样收集)【Dalston版】
- 为什么用C而不用C++
- java 向下转型_Java_向下转型
- NYOJ 359 Delete it 字符串处理
- 学习MFC首先要知道的--程序执行顺序
- 理解 Neutron FWaaS - 每天5分钟玩转 OpenStack(117)
- 程序员的十个层次 你属于哪一层?小菜看后
- 控件(View)之TextSwitcher, Gallery, ImageSwitcher, GridView, ListView, ExpandableList【转】
- C# 10 新特性 —— Lambda 优化
- 最小生成树和最短路径
- hello !CNBLOG
- 如何使用 AOP 和自定义注解?
- python杨辉三角居中_python杨辉三角
- windows内存占用过高
- Python数据预处理--文本特征提取(以Jieba工具包为例)
- Proxy和Reflect
- 决策树--CART算法
- mysql数据库自动停止_解决mysql数据库自动停止方法
- 美国签证和加拿大签证申请及自驾游攻略合辑
- wechall靶场training系列通关记录
热门文章
- 聊聊AIOps落地监控报警的应对之策
- 基于SSM图书借阅管理系统
- java 随机生成不重复的数字_生成8位随机不重复的数字编号的方法
- 关于Openlayers Overlay事件监听的一个坑
- 【读点论文】Deep Learning Face Representation from Predicting 10,000 Classes。deepID
- 平台币继续拉升,短期仍看涨
- 天圆地方放样软件_天圆地方放样方法
- Unity编辑器拓展之二十四:基于Unity Node Editor、ScriptableObject的配置化新手引导系统
- 如何有效地记忆与学习
- JAVA从网络下载文件到本地