用于汽车网络开发的局域互联网LIN总线详解.docx

上传人:b****5 文档编号:2958397 上传时间:2022-11-16 格式:DOCX 页数:10 大小:336.15KB
下载 相关 举报
用于汽车网络开发的局域互联网LIN总线详解.docx_第1页
第1页 / 共10页
用于汽车网络开发的局域互联网LIN总线详解.docx_第2页
第2页 / 共10页
用于汽车网络开发的局域互联网LIN总线详解.docx_第3页
第3页 / 共10页
用于汽车网络开发的局域互联网LIN总线详解.docx_第4页
第4页 / 共10页
用于汽车网络开发的局域互联网LIN总线详解.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

用于汽车网络开发的局域互联网LIN总线详解.docx

《用于汽车网络开发的局域互联网LIN总线详解.docx》由会员分享,可在线阅读,更多相关《用于汽车网络开发的局域互联网LIN总线详解.docx(10页珍藏版)》请在冰豆网上搜索。

用于汽车网络开发的局域互联网LIN总线详解.docx

用于汽车网络开发的局域互联网LIN总线详解

  

 

  

用于汽车网络开发的局域互联网(LIN)总线详解

 

  

 

 

 

 

 

 

 

   

 

 

 

 

 

 

 

局域互联网(LIN)是一种低成本的嵌入式网络标准,用于连接智能设备。

LIN最常见于汽车工业。

1.LIN概述

    局域互联网(LIN)总线是为汽车网络开发的一种低成本、低端多路复用通信标准。

虽然控制器局域网(CAN)总线满足了高带宽、高级错误处理网络的需求,但是实现CAN的软硬件花费使得低性能设备(如电动车窗和座椅控制器)无法采用该总线。

若应用程序无需CAN的带宽及多用性,可采用LIN这种高性价比的通信方式。

用户可在最先进的低价位8位微控制器中嵌入标准串行通用异步收发器(UART),以相对廉价的方式实现LIN。

现代汽车网络包含各类总线。

例如,在主体电子设备的低成本应用程序中使用LIN,在主流动力系统和车身通信中使用CAN,而在先进系统(如主动悬挂)中的高速同步数据通信中使用新兴的FlexRay总线。

LIN总线采用主/从方法,包含一个LIN主方和一个或多个LIN从方。

图1.LIN消息帧

消息标题包含一个中断(用于标记帧的开始)和一个同步字段(供从节点同步时钟)。

标识符(ID)包含一个6位消息ID和一个2位校验字段。

ID表示特定的消息地址,而非目标。

接收并解码ID后,从方开始消息响应,该消息响应包含1至8字节的数据以及一个8位校验和。

主方控制消息帧的排序,该排序在调度中是固定的。

用户可按需改变该调度。

LIN标准更新过多个版本。

1.3版本最终确定了字节层通信。

2.0和2.1版本新增了更多消息规范和服务,但仍与LIN1.3版本的字节层兼容。

功能

NIUSBLIN是否支持

LIN1.3

支持

LIN2.0

支持1

增强的校验和

支持

现成的从节点概念

支持1

NCF格式

支持1

诊断及从节点配置

支持1

字节数组

支持

LIN2.1

支持1

新从节点配置服务

支持1

从方诊断(I-III类)

支持1

功能寻址

支持1

解析表

支持1

 

API对该功能不提供原生支持,但用户依然可实现该功能。

 

   表1.LIN1.3、2.0及2.1版本对比

2.LIN帧格式

    LIN总线是一种轮询总线,带有一个主设备和一个或多个从设备。

主设备同时包含一个主任务和一个从任务。

每个从设备仅包含一个从任务。

LIN总线上的通信完全由主设备上的主任务控制。

LIN总线上传输的基本单位是帧,每帧又分为标题和响应。

标题总是通过主节点传输,包含3个不同的字段:

中断、同步(sync)及标识符(ID)。

响应通过从任务传输,可位于主节点或从节点中,包含一个数据载荷及一个校验和。

通常,主任务通过传输标题,在循环中轮询每个从任务。

该标题包含一个中断-同步-ID序列。

启动LIN之前,每个从任务被配置为根据接收到的标题ID向总线发布数据或从总线订阅数据。

一旦收到标题,每个从任务将验证ID校验,并检查ID,以决定选择发布或订阅。

若从任务需要发布响应,将向总线传输1至8数据字节,后接1个校验和字节。

若从任务需要订阅,将从总线读取数据载荷和校验和字节,并采取适当的内部动作。

对于标准从至主通信,主方广播标识符至网络,仅有一个从方响应数据载荷。

主至从通信伴随着一个主节点中的独立从任务。

该任务自我接收发布至总线的全部数据,并以独立从节点的方式响应。

为了传输数据字节,主方必须首先根据需要传输的数据值,升级其内部从任务的响应。

接着,主方将发布合适的帧标题,内部从任务传输其数据载荷至总线。

图2.LIN消息帧

1.中断

每个LIN帧都以中断作为开始,包含13个显性位(额定),后接一个1位(额定)隐性中断分隔符。

中断的作用是将帧的开始通知给总线上的所有节点。

2.同步

同步字段是主任务在标题中传输的第二个字段。

同步被定义为字符x55。

同步字段允许进行自动波特率检测的从设备测量波特率周期,并调节其内部波特率,与总线进行同步。

3.ID

ID字段是主任务在标题中传输的最后一个字段。

该字段识别网络上的每条消息,并最终决定由网络中的哪些节点接收或响应每个传输。

所有从任务连续监听ID字段、验证其校验,并决定其是否是该特定标识符的发布者或订阅者。

LIN总线一共能提供64个ID。

ID0~59用于信号携带(数据)帧,60和61用于携带诊断数据,62预留给用户自定义扩展,63预留给未来协议升级。

ID作为一个受保护的ID字节通过总线传输,低6位包含原始ID,高2位包含校验。

受保护的ID(7:

6)

受保护的

ID(5:

0)

P

(1)

P(0)

ID(5:

0)

ID

(1)^ID(3)^ID(4)^ID(5)

ID(0)^ID

(1)^ID

(2)^ID(4)

0–63

 

表2.校验计算方法

4.数据字节

从任务在响应中传输数据字节字段。

该字段包含1至8字节的载荷数据字节。

5.校验和

从任务在响应中传输校验和字段。

LIN总线采用2个校验和算法之一,以计算8位校验和字段中的值。

经典校验和的计算方法是单独累加数据字节,而增强校验和的计算方法则是累加数据字节及受保护的ID。

LIN2.0规范将校验和的计算过程定义为:

累加所有值,且当总和大于等于256时减去255(与modulo-255或modulo-256不同)。

根据LIN2.0标准,经典校验和用于LIN1.3从节点,而增强校验和用于LIN2.0从节点。

该规范进一步规定,ID60~63应该总是使用经典校验和。

NILIN接口允许设置校验和类型为经典或增强。

默认设置为经典。

根据LIN2.0规范,无论如何设置校验和属性,ID60~63总是使用经典校验和。

图3显示了主任务标题和从任务响应如何组合成一个完整的LIN帧。

图3.创建LIN帧

3.LIN总线定时

    由于LIN总线是轮询总线,处理每帧分配的额定时间槽如下:

    THeader_Nominal=34*TBit

    TResponse_Nominal=10*(NData+1)*TBit

    TFrame_Nominal=THeader_Nominal+TResponse_Nominal

处理每帧分配的最大时间槽如下:

    THeader_Maximum=14*THeader_Nominal

    TResponse_Maximum=1.4*TResponse_Nominal

    TFrame_Maximum=THeader_Maximum+TResponse_Maximum

4.LIN拓扑结构及行为

    LIN总线连接一个主设备(节点)和一个或多个从设备(节点),成为一个LIN簇。

对应的功能文件描述了该节点的行为。

节点功能文件输入系统定义工具,生成LIN描述文件(LDF),描述整个簇的行为。

系统生成器解析LDF,自动生成目标节点中的特定行为。

此时,按照LDF中指定的方式,主节点主任务开始在总线上传输标题,簇中的所有从任务(包括主节点自己的从任务)开始响应。

总体来说,LDF用于配置及创建LIN簇的调度行为。

例如,LDF定义了波特率、主任务传输标题时的顺序及时间延迟,以及响应时每个从任务的行为。

NILIN硬件及用于LIN的NI-CAN帧API无法为LDF提供原生的完整支持,即用户无法下载调度行为至硬件。

但是,硬件提供了访问总线的底层支持(写入标题及发布或订阅作为响应),用户可在应用程序层创建调度行为。

正如在NILIN响应输入帧类型的描述中所说,NILIN硬件采用响应队列存储从任务响应。

响应队列保留64个响应,与每个为LIN指定的(最多64个)ID一一对应。

这将确保LIN接口的从任务可在LIN规范规定的响应时间内响应标题。

用于LIN的NI-CAN帧API可通过一种稳健的方式完成与LIN总线的底层交互。

终端用户可使用基本功能,开发复杂应用程序,包括分析及原型化LIN网络。

用于LIN的NI-CAN帧API无法为LIN诊断或配置、LDF或调度表提供原生支持。

但是,用户可在采用用于LIN的NI-CAN帧API的应用程序中实现这些任务。

5.LIN错误检测及限制

    LIN2.0规范声明,应当由从任务处理错误检测,且主任务的错误监控不是必需的。

LIN2.0规范不要求在一个LIN帧中处理多个错误,也不要求使用错误计数器。

一旦在帧内遇到第一个错误,从任务将中止帧处理,直到检测到下一个中断-同步序列(在主任务传输的下一个标题中)。

若记录总线错误属性设置为true,那么总线错误帧将记录至读取队列。

若记录总线错误属性设置为false,ncWriteNet或ncWriteNetMult将返回错误。

LIN还可向网络提供错误报告。

LIN2.0规范定义了一个Response_Error状态位,其中,从设备需在其传输的一帧中向主设备报告。

当从节点接收或传输的帧的响应字段中包含错误,该位设置完毕。

通过从任务的已发布响应中传输后,该状态位就被清空。

用于LIN的NI-CAN帧API无法对Response_Error状态位提供原生支持,但终端用户可在应用程序层轻松实现该功能。

该过程将记录总线错误属性设置为1,允许在读取队列中记录总线错误帧。

错误代码代表响应中的错误,应用程序可通过该代码,监控总线错误帧的读取。

这时,应用程序将在局部变量中设置一个Response_Error状态位。

应用程序可使用NILIN响应输入帧类型,更新从响应队列中包含Response_Error状态字段的数据,并清空局部变量中的字段。

6.LIN睡眠和唤醒

    LIN的特色是允许设备进入睡眠状态并节约用电。

根据LIN2.0规范,当主任务发送的诊断主要求帧(ID=60)首个数据字节等于0时,所有从任务必须进入睡眠模式。

该特殊帧称为睡眠命令。

若LIN的非活动时间大于4秒,从任务也将自动进入睡眠模式。

用于LIN的NI-CAN帧API允许用户在应用程序层将LIN接口设置为睡眠模式,提供了极大的便利性。

一旦接收到包含睡眠请求信息的完整帧,或表明总线非活动时间超过4秒的总线非活动帧,用户可设置LINSleep属性为TRUE,让LIN接口进入睡眠模式。

LIN还可唤醒总线上的设备。

总线上的任何节点都可发起唤醒任务(不论是从节点还是主节点)。

根据LIN2.0规范,强制总线显性时间持续250µs至5ms可触发唤醒请求。

每个从节点应当检测唤醒请求,并在100ms内准备好处理标题。

主节点也应当检测唤醒请求,并在从节点准备完毕时开始发送标题(在接收到唤醒请求的100ms至150ms内)。

若主节点未在接收首个唤醒请求后的150ms内发送标题,请求唤醒的从节点可能发起第二次唤醒请求(并再次等待150ms)。

若主节点仍无响应,从节点将发起第三次唤醒请求,并再次等待150ms。

若仍然无响应,从节点必须等待1.5秒,才可发起第四次唤醒请求。

根据LIN2.0规范,用于LIN的NI-CAN帧API允许执行唤醒,无论LIN接口作为主设备还是从设备运行。

7.高级帧类型

    LIN2.0规范进一步将LIN帧分为6种类型:

1、无条件型

2、事件触发型

3、偶发型

4、诊断型

5、用户定义型

6、预留型

值得指出的是,不同帧类型之间的区别在于其传输方式的定时,或数据字节的内容。

不论属于哪种类型,一个完整的LIN帧总是包含一个由主任务传输的标题和一个由从任务传输的响应。

用于LIN的NI-C

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1