2 v 2打多了感冒会不会影响月经1v 1的节...

1.2节_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
&& 高考总复习 名师一号 电子资料 来源于网络!
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩7页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢当前位置: >>
LIN 1.2 2.0 2.1
LIN Specification Package Revision 2.1 R i i 21
概述 协议规范 物理层规范 传输层规范 节点配置和标识规范 诊断规范 应用程序层规范 节点能力语言规范 配置语言规范 Issue Date Remark LIN 1.0
Initial Version of the LIN Specification LIN 1.1
Major Revision Step LIN 2 1
Cl ifi ti 2.1
Clarifications, configuration modified, t fi ti difi d transport t概述Overview 概述典型车载网络分布 概述车用总线分级 概述LIN总线的起源LIN(Local Interconnect Network)协会成立于1998年成立时的主要成员:? ? ?5家整车厂:Audi, BMW, DaimlerChrysler, Volvo, VW 1家半导体制造商:Motorola 1家工具提供商:Mentor Graphics目前的主要成员: 目前的主要成员? ? ?5家整车厂:Audi, BMW, DaimlerChrysler, Volvo, VW 1家半导体制造商: Freescale 家半 体制 商 1家工具提供商:Mentor Graphics主要目的:? ?LIN总线的主要目的在于提供一种低成本的车用总线,从而形成对CAN总线的补充。 LIN总线已经广泛地被世界上的大多数汽车公司以及零配件厂商所接受,有望成为公认 的A类网络标准。 的A类网络标准 概述LIN总线概念?功能简单,实时性低 功能简单 实时性低 成本低 传感器/执行器级的总线 基于UART数据格式、主从结构、单线12V 串行通信 开放、不需要使用费和版税????? 概述LIN协议版本(1/2)LIN 1.1? ?1999年7月,底特律SAE大会 包括3部分? ? ?协议规范 配置语言规范 API规范 LIN 1.3LIN 1.2?2000年11月 LIN 1.2LIN 1.3? ?2002年11月 增加了物理层规范LIN 1.1 概述LIN协议版本(2/2)LIN 2.0? ? ? ?2003年9月 适应当代和未来汽车工业发展趋势 为了实现节点的“即插即用” 增加了诊断规范和节点能力语言规范LIN 1.3 LIN 2.0 LIN 2.1LIN 2.1? ? ? ?2006年11月 目标是改进LIN 2.0规范的理解力 增加了传输层规范和节点配置规范 形成了8个子规范LIN 1.1 LIN 1.2 概述LIN规范组成(1/2)?LIN物理层规范?描述了LIN总线的物理层,包括位传输速率,时钟容错范围等?LIN协议规范?描述了LIN总线的数据链路层?LIN诊断和配置规范?描述了如何在数据链路层之上提供诊断信息和节点配置服务?LIN应用程序接口(API) LIN应用程序接 (API)?描述了网络和应用程序之间的接口,包括诊断模块?LIN配置语言规范(LDF)?介绍了LIN配置文件的格式。LIN配置文件用于配置整个网络,并作为OEM和不同网络节点 的供应商之间的通用接口,同时可作为开发和分析工具的一个输入。?LIN节点能力描述语言规范(NCF)?介绍了描述从机节点的语言格式,LIN集群设计工具可以使用NCF文件自动地生成LIN描述文 件 概述LIN规范组成(2/2)?LIN传输层规范?描述了传输最高能达到4095个字节数据的方法?LIN诊断规范?描述了从机节点所支持的诊断服务类型,诊断服务都使用传输层 概述LIN总线的特点(1/2)?串行通信?线间干扰小,节省线束,传输距离长?单线传输?单线 , 总线电压12V?最高速率20Kbit/s?满足车身上大部分的应用需求?单主多从结构?不存在冲突,无需仲裁?基于通用UART/SCI的低成本接口硬件?几乎所有MCU有具备LIN总线的硬件基础?从节点无须晶振或陶瓷震荡器就可以实现同步?利用报头里的同步场实现同步,大幅度降低成本 概述LIN总线的特点(2/2)?可计算的信号传输的延迟时间?网络通信可预期性?可灵活的增加或减少从节点?无需改变其他节点的硬件电路?一条总线最多可连接16个节点?由总线电气特性决定?支持多包报文传输?基于ISO15765-2的传输层规范?支持诊断功能?支持ISO14229的诊断服务 概述LIN网络拓扑结构? ? ? ?一个LIN网络由一个主任务,若干个从任务组成 主节点既有主任务又有从任务 从节点只包含从任务 主任务负责决定总线上的报文,从任务提供每一帧的数据 概述LIN报文帧?通信原理:?主任务发送报头,从任务用响应来补充报头形成完整的报文。?系统灵活性:?可以自由地增减从节点,而不需要改变其它从节点的软件和硬件?报文传输:?报文的内容由ID来定义(跟CAN相似)?广播 广播:?所有节点都能够同时地接受和响应总线上的帧 概述数据传输?LIN总线上可以传输两类数据? 信号报文? ?信号位于帧的数据场中,以数字或数组的形式出现 同一种信号在相同ID的报文数据场中的位置总是固定的? 诊断报文?诊断报文由两个保留ID来传输,用来传输节点的诊断信息 概述调度表?负责调度网络各报文发送的顺序?为每帧报文分配发送时隙(slot) ? ?发送时隙:报文可以被发送的时间 不同报文的发送时隙可能不同? ?调度表在网络系统设计阶段确定 调度表使得LIN通信具有可预测性 概述切换调度表?主任务可以拥有多个调度表,并在不同的调度表之间切换决策?增加通信的灵活性 大纲概述 协议规范 物理层规范 传输层规范 节点配置和标识规范 诊断规范 应用程序层规范 节点能力语言规范 配置语言规范 协议规范Protocol Specification 协议规范帧的结构(Frame Sturcture) 报头(Header)响应(Response)D0D1Dn间隔场 显性间隔同步场 间隔界定标识符场 响应间隔数据场校验和场字节间隔?字节间隔位于每个字节之间,响应间隔位于报头与响应之间 U2? ? ?留给MCU足够的处理时间 帧长度可能增长 最小值可以是0 幻灯片 21 U2 The inter-byte space is the time between the end of the stop bit of the preceding field and the start bit of the following byte. The response space is the inter-byte space between the PID field and the first data field in the data. Both of them must be nonnegative.User,
协议规范字节场(Byte Field) 报头(Header) 响应(Response)D0D1Dn起 始 位01234567结 束 位?基于SCI的通信格式 ?发送一个字节需要10个位时间(TBIT) 协议规范间隔场(Break Field) 报头(Header) 响应(Response)D0D1Dn间隔场 间隔信号 信 间隔界定符 符?表示一帧报文的起始,由主节点发出 ?间隔信号至少由13个显性位组成,间隔界定符至少由1个隐性位组成 ?间隔场是唯一一个不符合字节场格式的场 ?从节点需要检测到至少连续11个显性位才认为是间隔信号 协议规范同步场(Sync Break Field) 报头(Header) 响应(Response)D0D1Dn同步场0x55起 始 位 结 束 位10101010?确保所有从节点使用与主节点相同的波特率发送和接收数据 ?一个字节,结构固定:0X55 协议规范标识符场(Identifier Field) 报头(Header) 响应(Response)D0D1Dn标识符场 标识符起始位 ID0 ID1 ID2 ID3 ID4 ID5奇偶校验符P0 P1 结束位?帧ID的范围从0到63(Ox3f) ( ) ?奇偶校验符(Parity)P0,P1 协议规范数据场(Data Field) 报头(Header) 响应(Response)D0D1Dn数据场 最低有效字节先发送 D0 D1 D2 … Dn(小于8)最低有效位先发送起始位 bit0bit1 bit2…bit7 结束位?数据场长度1到8个字节 ?低字节先发,低位先发 ?如果某 信号长度超过1个字节 采用低位在前的方式发送(小端) 如果某一信号长度超过1个字节,采用低位在前的方式发送(小端) 协议规范校验和场(Checksum Field)(1/2) 报头(Header) 响应(Response)D0D1Dn? ?用于校验接收的数据是否正确(1个字节) 经典校验(Classic Checksum) 经典校验(Cl i Ch k )?校验和场仅校验数据场(1.3)?增强校验(Enhance Ch k 增强校验(E h Checksum) )?校验标识符场与数据场内容(2.0)?标识符为0x3C(60)和0x3D(61)的帧只能使用经典校验 协议规范校验和场(Checksum Field)(2/2)? ?翻转八位和( e ted e g t b t su ) 翻转八位和(inverted eight bit sum) 例:Data = 0x4A, 0x55, 0x93, 0xE5?Checksum = 0xE6 协议规范帧长度(Frame Length)?最小帧长度? ? ?THEADER_NOMINAL=34*TBIT TRESPONSE_NOMINAL=10*(NDATA+1)*TBIT TFRAME_NOMINAL=THEADER_NOMINAL+TRESPONSE_NOMINAL T TU1?最大帧长度? ? ?THEADER_MAX=1.4*THEADER_NOMINAL 1 4*T TRESPONSE_MAX=1.4*TRESPONSE_NOMINAL TFRAME MAX=THEADER MAX+TRESPONSE MAX FRAME_MAX HEADER_MAX RESPONSE_MAX 幻灯片 29 U1 The maximum space between the bytes is additional 40% duration compared to the nominal transmission time.User,
协议规范帧类型(Frame Type)无条件帧事件触发帧 保留帧诊断帧自定义帧 协议规范无条件帧(Unconditional Frame)? ? ??标识符( )为 到 ( 标识符(ID)为0到59(0x3b) ) 标准LIN帧类型,用于周期通信 主任务发出报头,相应的从任务对报头提供响应帧。所 有节点接收 三种情况 协议规范事件触发帧(Event Triggered Frame )(1/2)?目的:?增强了LIN总线的响应能力,避免为了很少发生的事件,而对从节点进行 轮询,从而浪费了大量的带宽 轮询 从而浪费了大量的带宽? ?传输一个或多个无条件帧的数据场,标识符: 0~59(0x3B) 事件触发帧必须有一个独立的ID,该ID与多个无条件帧的ID相关联 事件触发帧必须有 个独立的 该 与多个无条件帧的 相关联 这些无条件帧必须满足以下条件:有相同的长度;相同的校验和模型; 首个数据字节不带信号?在事件触发帧时隙内发送帧头,只有当相关联的无条件帧内有信号被 更新时,相关联的无条件帧的生产者才发送帧响应 帧响应的第一个数据字节等于PID,即响应最多可以传输7个字节的 数据 帧响应可由多个节点发送,当有多个节点在同一帧时隙内响应报头时 会发生冲突,发生冲突时切换到“冲突解决调度表”,之后再切换回 到原来的调度表?? 协议规范事件触发帧(Event Triggered Frame )(2/2)?假设与事件触发帧0x10相关联的两个普通帧…Break Break Sync Sync 0x11 0x12 D0 D1 D2 D3 D4 D5 D6 CS D0 D1 D2 D3 D4 D5 D6 CS?如果只有一个节点响应事件触发帧的报头… 如 个 应Sync 0x10 0x11 D0 D1 D2 D3 D4 D5 D6 CSBreak?如果同时有多个节点响应事件触发帧的报头…Sync 0x10 0x11 D00x12 D0BreakD1D1D2D2D3D3D4D4D5D5D6D6CSCS总线产生冲突?切换调度表,进行轮询…Break Break Sync Sync y 0x11 0x12 D0 D1 D2 D3 D4 D5 D6 CS D0 D1 D2 D3 D4 D5 D6 CS 协议规范零星帧/偶发帧(Sporadic Frame)? ? ?一个或多个无条件帧共享一个帧时隙 只发送信号报文,标识符:0 59(0x3b) 只发送信号报文,标识符:0~59(0x3b) 当且仅当其中的某个无条件帧有信号被更新时,主节点才发送该帧 的帧头。其发布者对帧头发送响应 若有多个无条件帧在同一时刻有信号被更新,则主节点根据这些无 条件帧的优先级裁定发送顺序 若没有无条件帧需要发送,则时隙保持空白?? 协议规范诊断帧(Diagnostic Frame)?诊断帧用来传输诊断或配置信息,包含8个字节数据。 ?标识符?60(0x3c):主请求帧;(首个数据字节标明具体的从节点),也用于 “Go-toSleep”指令 Go toSleep 指令 61(0x3d):从响应帧??传输方式:BreakSync0x3C诊断服务主节点Break Sync 0x3D 根据诊断服务的响应从节点 协议规范保留帧(Reserved Frame)?用户自定义帧(User-defined? ?frame)标识符:62(0x3e) 标识符 62(0 3e) 可以传输任何信息(由用户自定义)?保留帧(Reserved? ?frame)标识符:63(0x3f) 标识符 63(0x3f) 在LIN 2.1中未对保留帧进行定义 协议规范调度表(Schedule Table)? ? ?调度表可以保证总线永远不会过载,同时还可以保证信号的周期性。 LIN总线最小时间单位是时基(Tbase)。 调度表中用来发送一帧报文的时间称为帧时隙(Frame_Slot),帧时隙必 须是时基的整数倍,调度表是由帧时隙组成的。?TFrame_Slot = Tbase * n?偏移(jitter)是指一帧报文实际开始发送的时刻与帧时隙起点的时间差。?TFrame_Slot & ji TF Sl jitter + TFrame_Maximum TF M i 协议规范任务行为模型(Task Behavior Model)(1/2)?主任务行为模型 协议规范任务行为模型(Task Behavior Model)(2/2)?从任务行为模型 协议规范网络管理(Network Management)Reset/Wakeup?从节点状态转换表初始化接收到唤醒信号或 内部唤醒请求初始化结束(&100ms)睡眠模式接收到睡眠命令或 总线空闲4~10s工作模式 协议规范睡眠(Go To Sleep)?主节点可以发送一帧ID为60(0x3c),第一个字节为0x00其余 全为0xFF的主请求帧来使处于工作状态的从节点进入睡眠。这 全为0 FF的主请求帧来使处于工作状态的从节点进入睡眠 这 帧报文称为睡眠指令。?从节点在接到睡眠指令之后,也可以选择不进入睡眠状态而继 续工作,这根据应用层程序而定。 当总线空闲4到10秒的时候,所有从节点自动进入睡眠状态。注:空闲的定义是没有显性位和隐性位之间的转换。??LIN1.x 版本,从节点必须等25,000个位时间 协议规范唤醒(Wake Up)(1/2)???在一个处于睡眠状态的LIN网络中,任何一个节点都可以发送唤 醒信号 唤醒信号是一个250us(在20Kbit/s波特率)到5ms(在1Kbit/s波特 唤醒信号是 个250 (在20Kbi / 波特率)到5 (在1Kbi / 波特 率)的显性电平(5个位) 每一个从节点都需要? ?检测唤醒信号 当检测到唤醒信号之后,在100ms以内完成初始化工作?当从节点发出唤醒信号之后150ms,主节点仍未发送报头时,从 点可以再次发 醒信号 当 发 了 次 醒信号 节点可以再次发送唤醒信号。当连续发送了3次唤醒信号之后如 果主节点仍未发送报头,从节点要至少等待1.5秒以后才可以发 送第四次唤醒信号 网络管理――唤醒? 唤醒过程1 150ms~250ms 250us~5ms 2 3&1.5s 协议规范状态管理(Status Management)?状态管理的目的是用来发现工作状态中总线上产生的错误?response error每一个从节点必须通过状态管理帧发送response error 信号 信号(一个位长),当在响应帧中检测到错误时,这个信 个位长 ,当在响应帧中检测到错误时,这个信 号由从节点的驱动器自动设定,发送完状态管理帧之后又 将该位清除。 ? Interpretation主节点接收状态信息位并识别从节点状态 : 大纲概述 协议规范 物理层规范 传输层规范 节点配置和标识规范 诊断规范 应用程序层规范 节点能力语言规范 配置语言规范 物理层规范Physical Layer Specification 物理层规范位速率容差(Bit Rate Tolerance)相对于标称位速率节点类型 主节点 不使用同步场同步的从节点 使用同步场同步的从节点(在同步之前) 符号 FTOL_RES_MASTER FTOL_RES_SLAVE FTOL_UNSYNC ?F/FNOM &±0.5% &±1.5% ±1 5% &±14%相对于主节点位速率节点类 节点类型 同步后从节点 符号 FTOL_SYNC ?F/FMASTER / &±2% 物理层规范位定时(Bit Timing)? ?所有从节点的位定时必须以主节点的位定时为参考 同步过程TBIT = (T1-T0)/8 TT0T1 物理层规范位采样定时(Bit Sample Timing)?EBS = Early bit sample (前采样) LBS = Lastest bit sample (后采样) tEBS = 7/16 TBIT tLBS = 10/16 TBIT C tBFS?? ???tBFS=1/16 TBIT采样点在EBS和LBS之间 物理层规范总线收发器(Line Driver/Reciever)? ? ?Tx通过集电极开路电路连到总线,Rx与总线之间有施密特触发器 收发器内部有30K上拉电阻,如果作为主节点使用,必须外接1K上拉电阻 收发器内部有30K上拉电阻 如果作为主节点使用 必须外接1K上拉电阻 上拉电阻与电源之间有二极管保护,防止在电源掉电的情况下总线电平 被拉低 物理层规范信号规范(Signal Specification)? ?VBAT: 8~18V VSUP = VBAT - Vdiode80%?显性位(dominant)? ? ?20%逻辑0 发送:总线电平&20%V 发送 总线电平&20%VSUP 接收:总线电平&40%VSUP?隐性位(recessive)? ? ?逻辑1 发送:总线电平&80%VSUP 接收:总线电平&60%VSUP 物理层规范总线特性(Line Characteristics)(1/2) 物理层规范总线特性(Line Characteristics)(2/2)问题假设总线速率为20K,网络中有11个从节点,总线长度 40米,主节点、从节点的电阻和电容均为标准值,总线 的电容也为标准值。总线特性如何 的电容也为标准值 总线特性如何?解答CBUS = 220+11×220 +40×100 = 6640pF RBUS = 1 ‖ 30 ‖ 30 ‖ …… ‖ 30 = 0.75KΩτ = CBUS × RBUS = 4.98 μs经过计算总线的时间常数为 4 98 μs 4.98 物理层规范容错性能(Performance During Fault Modes)?电源或地线断路? ?单个节点电源或地线断路,不影响剩余网络通信 排除故障后,节点可重新参与网络通信?总线与电源或地线短路? ?总线通信可能无法进行,但ECU不可被损坏 排除故障后,总线恢复正常通信 大纲概述 协议规范 物理层规范 传输层规范 节点配置和标识规范 诊断规范 应用程序层规范 节点能力语言规范 配置语言规范 传输层规范Transport Layer Specification 传输层规范概述(Overview)?传输层应用对象?诊断报文?传输层功能?传输层位于应用层与数据链路层之间,完成应用层的报文与数据链 路层的帧之间的相互转换。 实现超过8个字节的数据传输,最多可达到4095个字节传输? 传输层规范PDU结构(PDU Stucture)(1/2)?PDU――打包数据单元(Packet Data Unit)?一个PDU可以是一个完整的报文,也可以是一个完整报文的一部分,由多个 PDU来组成一个完整的报文。 请求:从客户端(如测试仪,主节点)发出的报文 请求 从客户端(如测试仪 主节点)发出的报文 响应:从服务器端(如主节点,从节点)发出的报文? ? 传输层规范PDU结构(PDU Stucture)(2/2)?PDU类型? ? ?单帧 单帧(SF):只用一个PDU传输报文 只用 个 传输报文 首帧(FF):多PDU传输时,被发送的首个PDU 后续帧(CF):多PDU传输时,在首PDU发送后,紧接着发送的PDUByte0 Byte1 Byte2 Byte3 Byte4 Byte5 Byte6 Byte7SF FF CF SF FFNAD NAD NAD NAD NADPCI PCI PCI PCI PCI CSID LEN D1 RSID LEND1 SID D2 D1 RSID SD2 D1 D3 D2 D1D3 D2 D4 D3 D2D4 D3 D5 D4 D3 3D5 D4 D6 D5 D4 响应 请求 传输层规范NAD(Node Address)? NAD? ?――从节点地址(Node Address)睡眠指令:0 物理地址:0x01~0x7D?访问一个特定节点?功能地址:0x7E? ?访问所有从节点(只在诊断报文中使用) 从节点不允许响应(不允许用在节点配置)?广播地址:0x7F? ?访问所有从节点(广播发送) 从节点不响应(推荐)?用户自定义:0x80 0xFF 用户自定义:0x80~0xFFNAD Byte1 Byte2 Byte3 Byte4 Byte5 Byte6 Byte7 传输层规范PCI(Protocol Control Information)? PCI?――协议控制信息(Protocol Control Information)PCI包含PDU的类型、编号和报文的有效数据长度等信息PCI类型信息 B7 B6 0 0 0 B5 0 0 1 B4 0 1 0 附加信息 B3 B2 B1 B0 有效数据长度 有效数据长度高4位 包编号SF FF CF0 0 0?包编号: 编号?在多个PDU组成的报文中,在每个连续帧CF中必须加入包编号,第一个CF的包 编号是1,第二个CF的包编号是2……以此类推,如果包编号超过15则重新从0开 始计数 NAD PCI Byte2 Byte3 Byte4 Byte5 Byte6 Byte7 传输层规范LEN(Length)? LEN? ? ?――帧长度(Length) 帧长度(Length)只存在于多PDU报文的第一帧中(FF中) 表示报文的有效数据长度的低8位,有效数据长度的高4位在PCI的低4位中 由于要发送SID和RSID,所以有效数据长度 = 数据总长度+1FFByte0 Byte1 LEN Byte3 Byte4 Byte5 Byte6 Byte7 传输层规范SID和RSID(Service ID & Response Service ID)? SID(Service??Identifier)服务标识符,在请求帧中发送0 0xAF和0xB8 0xFE表示诊断,0xB0 0xB7表示节点配置 0-0xAF和0xB8-0xFE表示诊断,0xB0-0xB7表示节点配置RSID(Response Service Identifier)? ?对应于SID的响应服务标识符,在响应帧中发送 对应于SID的响应服务标识符 在响应帧中发送 RSID = SID + 0x40 传输层规范单帧传输(Singal Frame Transmission)?单帧传输? ?有效数据长度少于六个字节(包括 有效数据长度少于六个字节(包括SID) ) 功能寻址(0x7E)只能用单帧传输诊断设备主节点 请求从节点诊断设备主节点 请求从节点发 送 数 据0x3C 接 收 SF 数 据0x3C SF 0x3DSF 响应 传输层规范多帧传输(Multiple Frame Transmission)? 多帧传输? ?7~4095字节(包括SID) 起始于FF,后续多条CF主节点 FF FC 0x3C 接 收 数 据 FF FC FF 0x3C CF …… … CF 0x3C CF … …… 从节点 诊断工具 主节点 从节点 请求 0x3C 0x3D FF 0x3D CF诊断工具发 送 数 据CFCF 传输层规范时间限制(Timing Contraint)(1/2)? 发送时间限制?N_As最大超时1000ms N As最大超时1000ms传输层 请求发送诊断帧 (FF或CF) N_As 发 成功 发送成功 发送成功确认 N_Cs 请求发送下一诊断帧 t (CF) t t 开始发送 收发器 总线 传输层规范时间限制(Timing Contraint)(2/2)? 接收时间限制? ?N_Cr最大超时1000ms _ (N_Cs + N_As)&(0.9 * N_Cr timeout)传输层 收发器 接收诊断帧 总线诊断帧接收指示 (FF或CF) N_Cr N C 诊断帧接收指示 (CF) ( ) t接收诊断帧tt 传输层规范错误处理(Fault Handling)?Length_SF&6?忽略该报文?Length_FF&7 L th FF&7?忽略该报文?Length_FF&BufferSize Length FF&BufferSize?中止接收报文?节点处于发送状态,接收到 或 节点处于发送状态,接收到SF或FF(NAD≠0x7E)?中止发送报文,开始接收新报文?CF编号错误?放弃之前所接收的CF与FF?As时间超时?中止发送报文 报文?Cr时间超时?放弃所接收的报文 大纲概述 协议规范 物理层规范 传输层规范 节点配置和标识规范 诊断规范 应用程序层规范 节点能力语言规范 配置语言规范 节点配置和标识规范Node configuration and Identification Specification 节点配置和标识规范介绍(Introduction)目的?避免网络NAD或PID冲突网络引入新节点可能导致NAD或Product ID冲突配 内容 配置内容?NAD ?ProductID服务标识符(SID)?0xB0~0xB7节点配置只能用单帧通信 节点配置和标识规范LIN产品标识(LIN Production Identification)? 标识了节点的供应商和功能?类似于条形码D1 D2 D3 D4 D5供应商ID 供应商ID 低字节 高字节? ? ? ?功能ID 低字节功能ID 高字节变量ID供应商ID是一个16位的数字,最高位是0,由LIN协会规定 功能ID是一个16位的数字,由各供应商规定 功能ID是 个16位的数字 由各供应商规定 变量ID是一个8位的数字,用于区分同网络中相同功能的节点 PID保存在各节点的ROM中,不进行更改 PID保存在各节点的ROM中 不进行更改? 序列号(SerialD1 D2Number)D3 D4低字节……高字节 节点配置和标识规范通配符(Wildcards)? NAD的通配符0x7F用来访问所有节点的地址 ? 供应商ID和功能ID可以代表所有未定义的供应商与功能属性 NAD 供应商ID 功能ID通配符 0x7F 0x7FFF 0xFFFF 节点配置和标识规范与配置相关的服务(Service Associated with Configuration)??服务标识符(SID) ? 服务 0xB0~0xB7 节点配置只能用单帧通信 0~0xAF0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8~0xFF服务Reserved Assign NAD Assign frame identifierRead by Identifier(根据标识进行读取服务) Conditional Change NAD Data Dump(数据转存) Assign NAD via SNPD Save Configuration(保存配置) Assign frame identifier range Reserved 节点配置和标识规范分配NAD服务(Assign NAD)初始化选择 NAD列表 初始NAD值 网络分配 NAD设置值??分配从节点NAD服务(Assign NAD,0xB0)网络分配NAD实例?主节点首先发送0xB0服务主请求帧(0x3C)NAD PCI SID D1 供应商ID 低字节 D2 供应商ID 高字节 D3 功能ID 低字节 D4 功能ID 高字节 D5 新NAD0x3C?初始 NAD0x060xB0主节点然后发送从请求帧(0x3D),如从节点修改NAD成功,从节点发送响应NAD PCI RSID D1 D2 D3 D4 D50x3D初始 NAD0x010xF00xFF0xFF0xFF0xFF0xFF 节点配置和标识规范根据条件改变NAD服务(Conditional Change NAD)(1/2)??根据条件改变NAD服务 (Conditional Change NAD,0xB3)主节点首先发送0xB3服务主请求帧(0x3C)NAD PCI SID D1 D2 D3 D4 INVERT D5 新NAD0x3C初始 NAD0x060xB3idBYTEMASK?从节点收到请求后分4步走:? ? ? ?1.提取BYTE位对应产品标识中的字节 1 提取BYTE位对应产品标识中的字节 2.将该字节与INVERT中的字节逐位异或 3.将异或的结果与MASK中的字节逐位与 4.如果最后的结果是0,就将NAD改变为新NAD?然后发送从请求帧(0x3D),如有从节点满足条件并修改成功,则发送响应NAD PCI RSID D1 D2 D3 D4 D50x3D新NAD0x010xF30xFF0xFF0xFF0xFF0xFF 节点配置和标识规范根据条件改变NAD服务(Conditional Change NAD)(2/2)根据条件改变NAD服务BYTE[N]主节点?发送响应从节点MASK INVERT根据条件改变NAD服务实例?假设网络中有2个未知NAD的节点,主节点只知道它们的功能ID 假设网络中有 个未知 的节点 主节点只知道它们的功能 需要根据他们的功能ID给他们分配新的NAD 现在决定给功能ID的BIT0为1的节点分配NAD为1, 给BIT1为1的节点分配NAD为2 以下两条服务可以实现该功能: NAD PCI SID D1 D2 D3≠0新NADD4D50x3C 0x3C0x7F 0x7F0x06 0x060xB3 0xB30x01 0x010x03 0x030x01 0x020xFF 0xFF0x01 0x02 节点配置和标识规范保存配置服务(Save Configuration)?保存设置服务 (Save Configuration,0xB6)保存配置服务主节点发送响应从节点保存配置?主节点首先发送0xB6服务主请求帧(0x3C)NAD PCI SID D1 D2 D3 D4 D50x3C?NAD0x010xB60xFF0xFF0xFF0xFF0xFF从节点将当前配置保存入FLASH中,并响应从请求帧(0x3D)NAD PCI RSID D1 D2 D3 D4 D50x3DNAD0x010xF60xFF0xFF0xFF0xFF0xFF 节点配置和标识规范设置帧ID服务(Assign Frame ID)?设置帧ID服务 (Assign Frame ID ,0xB1) (LIN 2.0)设置帧ID服务 主节点 发送响应 从节点Message IDPID?主节点首先发送0xB1服务主请求帧(0x3C)NAD PCI SID D1 供应商ID 低字节 D2 供应商ID 高字节 D3Message ID低字节D4Message ID高字节D5PID0x3C?NAD0x060xB1从节点将messageID更改为PID,并响应从请求帧(0x3D)NAD PCI RSID D1 D2 D3 D4 D50x3DNAD0x060xF10xFF0xFF0xFF0xFF0xFF 节点配置和标识规范读取服务(Read LIN节点模型 by Identifier)(1/2)?读取服务 (Read by Identifier,0xB2)读取服务主节点发送响应从节点?主节点首先发送0xB6服务主请求帧(0x3C)NAD PCI SID D1 identifi er D2 供应商ID 低字节 D3 供应商ID 高字节 D4 功能ID 低字节 D5 功能ID 高字节0x3C? ?NAD0x060xB2从节点根据id发送响应数据,并响应从请求帧(0x3D) 如果无法读取,则发送否定响应NAD PCI RSID D1 D2Error Code 0x12D3D4D50x3DNAD0x030x7FSID 0xB2 0 B20xFF0xFF0xFF 节点配置和标识规范读取服务 (Read by Identifier)(2/2)?不同identifer对应不同含义,响应形式也不同identifier 0 1 2~31 2 31 32~63 64~255NAD PCI含义 Product Identification Serial Number Reserved User defined ReservedRSID D1 供应商ID 低字节 D1 序列号 低字节 D2 供应商ID 高字节 D2 …响应长度 5+RSID 4+RSID / User defined /D3 功能ID 低字节 D3 … D4 功能ID 高字节 D4 序列号 高字节 D50x3DNAD0x06PCI0xF2RSID变量IDD5NAD0x3DNAD0x060xF20xFF 大纲概述 协议规范 物理层规范 传输层规范 节点配置和标识规范 诊断规范 配置语言规范 诊断规范Diagnostic Specification 诊断规范诊断定义? 什么是诊断?Request R t诊断设备诊 断标 准Response诊 断标 准网络节点故 障信 息 诊断规范诊断方式(1/2)? 诊断设备直接连接到LIN总线是否可行?诊断设备 从节点 主节点 从节点LINLINLINLIN LIN?结论:诊断报文与LIN调度表的报文产生冲突,不可行 结论 诊断报文与 调度表的报文产生冲突 不 行 诊断规范诊断方式(2/2)? LIN诊断必须依然由主节点来调度 诊断必须依然由主节点来调度CAN 主节点 CAN 从节点 LIN LIN诊断设备从节点LIN 诊断规范两种诊断方式(Diagnostic Methods)(1/2)?第一种方式:? ? ? ? ?诊断设备连接到主干网 主节点作为网关 从节点存储故障代码(DTC) 主节点转发请求与响应 适用于所有诊断服务 ReqC R C 主干网(back-bone,如CAN) 主干网(b k b 如CAN) ResC 主节点 (网关) CAN码CAN诊断设备从节点故 障代从节点故 障代LIN ReqLLINLIN LIN码ResL 诊断规范两种诊断方式(Diagnostic Methods)(2/2)?第二种方式:? ? ? ?从节点将故障信号发送到主节点(基于信号) 主节点将各故障信号处理、存储为故障代码(DTC) 主节点将各故障信号处理 存储为故障代码(DTC) 诊断设备请求故障代码 主节点发送故障代码诊断设备ReqC主干网(back-bone,如CAN) 主干网(back-bone 如CAN) ResC 主节点 (网关) CAN故 障 代码CAN C从节点从节点LIN 故障信号LINLIN 故障信号 LIN 诊断规范诊断级别(Diagnostic Class)(1/3)? 从节点根据自身的特点和需要,诊断功能分为3个级别? 诊断级别?1从节点主要由简单元件组成(如传感器等),故障都由主节点来读取、 分析处理和保存? ?只支持Unsegmented 诊断 诊断服务仅限于节点配置 诊断规范诊断级别(Diagnostic Class)(2/3)? 诊断级别?2和诊断级别1的节点类似,故障同样由主节点来读取、分析处理和保 存? ? ?支持Unsegmented诊断和Segmented诊断 支持U t d诊断和S t d诊断 必须要支持ISO ]诊断服务 必须支持节点标识符服务 诊断规范诊断级别(Diagnostic Class)(3/3)? 诊断级别?3诊断级别3的节点是具有较强应用功能的节点,除了基本的节点配置 服务以外,还支持ISO 14229-1的其他诊断服务 诊断级别3的节点具有内部故障存储设备,有些还支持在线刷写,需 要完整的boot-loader工具和相应的诊断服务去实现? ? ? ??支持Unsegmented诊断和Segmented诊断 必须要支持ISO ]诊断服务 具有内部故障存储 ECU程序支持Flash在线刷写 诊断规范诊断级别总结(Summary of Diagnostic Class)(1/2)诊断级别1传输协议层需求23UDS服务号 [HEX]仅单帧传输 完整传输协议(包括多帧)+ + 需要的配置服务 +Assign frame identifier range Read by identifier Assign NAD Conditional change NAD Positive Positi e response on supported configuration services+ + 可选 可选 ++ + 可选 可选 ++ + + 可选 +0xB7 0xB2 0xB0 0xB3 service+ 0x40 诊断规范诊断级别总结(Summary of Diagnostic Class)(2/2)诊断级别1需要的UDS服务23UDS服务号 [HEX]Read data by identifier hardware and software version h d d ft i hardware part number (OEM specific) diagnostic version Read by identifier (parameters) Write by identifier (parameters) Read by identifier (sensor and actuator data) I/O control by identifier Read and clear DTC (fault memory) Routine control Other diagnostic services Flash刷写服务 Flash programming services 可选 + + + + 如果适用 + + + + 如果适用 + + + 如果适用 如果适用0x22 0x22 0 22 0x22 0x22 0x22 0x2E 0x22 0x2F 0x19,0x14 0x31 … / 诊断规范诊断调度表(Diagnostic Schedule)? 主请求调度表?单时隙 单时隙――只有主请求帧 只有主请求帧BreakSync0x3C包含诊断服务? 从响应调度表?单时隙――只有从响应帧BreakSync0x3D包含诊断服务响应 诊断规范诊断调度模式(Diagnostic Schedule Modes)? 诊断调度模式主节点 诊断设备 请求 0x3C 0x3D 0x3D 0x3D 响应master从节点slave?两种诊断调度模式? ?交叉诊断模式 纯诊断模式 诊断规范交叉诊断模式(Diagnostics Interleaved Mode)? 交叉诊断模式?默认模式 ?不终止常规通信常规通信报文1 诊断请求报文(0x3C) 常规通信报文2 诊断响应报文(0x3D) 常规通信报文3…… 诊断规范纯诊断模式(Diagnostics Only Mode)? 纯诊断模式?可选模式 模式 ?终止常规通信单帧传输诊断请求报文(0x3C) 诊断响应报文(0x3D) 诊断请求报文(0x3C) 诊断响应报文(0x3D)多帧传输 (数据来自主节点)诊断请求报文(0x3C) 诊断请求报文(0x3C) 诊断请求报文(0x3C) 诊断请求报文(0x3C)多帧传输 (数据来自从节点)诊断请求报文(0x3C) 诊断响应报文(0x3D) 诊断响应报文(0x3D) 诊断响应报文(0x3D)…… ……… ……… … 诊断规范从节点诊断时间限制(Slave Diagnostic Timing Requirements)?STmin?从节点响应两条诊断帧之间的最小时间?P2从节点从接到主请求帧到发送从响应帧 的响应部分之间的最短时间? ? ?50ms&P2&500ms P2&STmin 大纲概述 协议规范 物理层规范 传输层规范 节点配置和标识规范 诊断规范 配置语言规范 LIN Description FileLDF配置语言规范 语 规范 配置语言规范LDF在LIN开发流程中(LDF in LIN Workflow)?数据库是什么? 配置语言规范LIN数据库构成(Composition of LIN database)?需要在数据库中定义些什么?数据库 调度表 信号帧 帧类型 信号 信号类型 诊断帧 节点属性 诊断信号 诊断信号 发送周期 版本信息 配置语言规范LIN描述文件定义(LIN Description File Definition)?LIN描述文件定义? ?全局定义 节点定义? ? ?参与节点定义 节点属性定义 节点构成定义? ? ? ?信号定义 帧定义 调度表定义 附加信息? ?信号编码类型 信号表示类型 配置语言规范创建自己的数据库 Just do it! 配置语言规范我的第一个数据库(My first database)LIN_description_ LIN_protocol_version = &2.0&; LIN_language_version = &2.0&; LIN_speed LIN speed = 9.6 Nodes{ Master: Mymaster, 10 ms, 0 Slaves: M } Signals{ My_first_signal: 1, 0, Mymaster, M } Frames{ Myframe: 1, Mymaster, 1{ My_first_signal, 0; } } Schedule_tables{ S h d l t bl { Myscheduletable{ Myframe delay 20 } }? ? ?LIN 协议版本号 LIN 配置语言版本号 LIN 总线速率 节点定义 主节点,时基,抖动 从节点 信号定义 信号:长度,初始值, 信号 长度 初始值 发送节点,接受节点 帧定义 帧:ID,发送节点,长度 信号列表,起始位 调度表定义 调度表 帧列表,时隙长度? ??? ?? ? 配置语言规范验证(Vertify)?在 在CANoe中验证 中验证 Great, I See it! 配置语言规范进阶(Advance)? ?尝试着给数据库增加新元素 第 步,建立 个更复杂的系统 第一步,建立一个更复杂的系统Master: Mymaster, 10 ms, 0 Slaves: Myslave1, Myslave2; y ,Frames{ Myframe1: 11, Mymaster, 2{ My_signal1, My signal1 0; My_signal2, 1; } Myframe2: 12, Mymaster, 1{ My_signal3, My signal3, 0; } Myframe3: 13, Myslave1, 1{ My_signal4, 3; } Myframe4: 14, Myslave2, 1{ My_signal5, 2; } } Schedule_tables{ Myscheduletable{ Myframe1 delay 20 Myframe2 delay 20 Myframe3 delay 20 Myframe4 delay 20 } }Nodes{} Signals{ My_signal1: 1, 0, Mymaster, Myslave1; My_signal2: 1, 0, Mymaster, Myslave2; My_signal3: 1, 0, Mymaster, Myslave1,Myslave2; My_signal4: 2, 0, Myslave1, M My_signal5: 2, 0, Myslave2, M }现在我们的数据库有了: ? 1个主节点,2个从节点 ? 5个信号 ? 4个帧 ? 1个4时隙的调度表 个 时隙的调度表 配置语言规范验证(Vertify)?在 在CANoe中验证 中验证 It becomes better! 配置语言规范事件触发帧和零星帧(ETF & Sporadic frame)? ?为数据库来点调味料! 增加事件触发帧和零星帧Event_triggered_frames { ETF_Myframes: ETFCollisionResolving, 58 ETF Myframes: ETFCollisionResolving 58, Myframe3, Myframe4 ; } //将Myframe3和Myframe4关联成事件触发帧 ETF_Myframes Schedule_tables { NormalTable { ETF_Myframes delay 20 } //在调度表中只需放入ETF_Myframes即可! //在调度表中只需放入ETF M f 即可! } } Sporadic_frames { MySporadicFrame: Myframe1, Myframe2 ; Myframe1 //将Myframe1和Myframe2关联成零星帧,注意!它们必须 //都由Master发送Schedule_tables { NormalTable { MySporadicFrame delay 20 //在调度表中放入零星帧即可!ETFCollisionResolving { Myframe3 delay 20 Myframe4 delay 20 } } //万一发生冲突了,就执行这个解决ETF冲突调度表!!数据库中有形有色! 配置语言规范验证(Vertify)?思考?在Trace窗口中? ?为什么出现错误? 为什么没有零星帧? 配置语言规范诊断(Diagnostic)(1/3)?上帝说:“要有诊断” 于是就有了诊断!Diagnostic_frames { MasterReq: 0x3c { MasterReqB0, MasterReqB0 0 ; MasterReqB1, 8 ; MasterReqB2, 16 ; MasterReqB3, 24 ; MasterReqB4, 32 ; MasterReqB5, 40 ; MasterReqB6, 48 ; MasterReqB7, 56 ; } SlaveResp: 0x3d { SlaveRespB0, 0 ; SlaveRespB1, 8 ; SlaveRespB2, 16 ; SlaveRespB3, 24 ; SlaveRespB4, 32 ; SlaveRespB5, 40 ; SlaveRespB6, 48 ;?给数据库添加诊断功能Diagnostic_signals Diagnostic signals { MasterReqB0: 8, 0 ; MasterReqB1: 8, 0 ; MasterReqB2: 8, 0 ; MasterReqB3: 8, 0 ; MasterReqB4: 8, 0 ; MasterReqB5: 8, 0 ; MasterReqB6: 8, 0 ; MasterReqB7: 8, 0 ; SlaveRespB0: 8, 0 ; SlaveRespB1: 8, 0 ; SlaveRespB2: 8, 0 ; SlaveRespB3: 8, 0 ; SlaveRespB4: 8, 0 ; SlaveRespB5: 8, 0 ; SlaveRespB6: 8, 0 ; SlaveRespB7: 8, 0 ; }诊断帧的定义诊断信号的定义}SlaveRespB7, 56 ; } 配置语言规范诊断(Diagnostic)(2/3)?每个节点都有独有的节点属性Node_attributes Node attributes { Myslave1{ LIN_protocol = &2.0& ; configured_NAD = 0x2 ; initial_NAD i iti l NAD = 0 0 product_id = 0x1e, 0x1, 0 ; response_error = Myslave1E P2_min = 100 ST_min = 20 N_As_timeout = 1000 N_Cr_timeout = 1000 configurable_frames { Myframe3 = 0x01; ETF_Myframes = 0x02; } } }这些是它的条形码可以通过assign frame id服务来 配置它的帧ID 配置语言规范诊断(Diagnostic)(3/3)?把诊断帧放进调度表里去?第 种实现方法: 第一种实现方法:?第二种实现方法:Schedule_tables{ MyDiag1{ MasterReq delay 20 SlaveResp delay 20 } }Schedule_tables{ MyDiag1{ AssignNAD { 0xa, 0x4, 0x1e, 0x1 } delay 20 SlaveResp d l Sl R delay 20 AssignFrameId { Myslave1, Myframe3 } delay 20 SlaveResp delay 20 } }留下诊断调度表,让应用 层去调用诊断API函数在数据库中直接定义具体诊断 服务,应用层不调用API函数 服务 应用层不调用API函数 配置语言规范诊断(Diagnostic)(3/3)?把诊断帧放进调度表里去?第二种实现方法:Schedule_tables{ MyDiag1{ AssignNAD { 0xa, 0x4, 0x1e, 0x1 } delay 20 SlaveResp d l Sl R delay 20 AssignFrameId { Myslave1, Myframe3 } delay 20 SlaveResp delay 20 } }留下诊断调度表,让应用 层去调用诊断API函数在数据库中直接定义具体诊断 服务,应用层不调用API函数 服务 应用层不调用API函数 配置语言规范验证(Vertify)? ?总线上出现了诊断帧! 可以随意配置节点了 配置语言规范附:常用的节点配置函数函数名AssignNAD {initial_NAD, conf_NAD,supplier ID, function ID} AssignFrameId {message_ID, PID} FreeFormat F F t {D0,D1,D2,D3,D4,D5,D6,D7}参数{初始NAD,配置NAD,供应商ID,功能ID}{报文ID,PID}{ MasterReq的数据场的8个字节 } 配置语言规范信号编码类型和信号表示? ?看不懂这信号是什么意思? 信号编码类型和信号表示Signal_encoding_types { Mysignal_Type Mysignal Type { logical_value, 0, “no &; logical_value, 1, “yes&; } } //信号编码类型,相当于c语言中的typedef //信号编码类型 相当于 语言中的 d f } //用刚才定义好的信号编码类型去对信号进行分类 Signal_representation { Mysignal_Type My_signal1, My_signal2; Mysignal Type : My signal1 My signal2;让信号更生动! 配置语言规范验证(Vertify)?请注意信号边上的 ”NO” LIN 规范包版本 2.0 日;P1LIN规范包版本2.0本规范是在“ASIS”的基础上形成的,不可以作为任何索赔的依据。? LIN 协会 2003. 版权所有。未经授权的复印、演示、或对本文件其他方面的使用,都是 违反法律和知识产权的。LIN是一个注册商标?.本文件的任何分发都登记在案。联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 规范包修订记录1. 修订记录版本 2.0 日;P2发行号 LIN 1.0 LIN 1.1 LIN 1.2 LIN 1.3 LIN 2.0日期
备注 LIN 规范的初始版本主要修订联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 规范包LIN2. LIN版本 2.0 日;P3LIN(Local Interconnect Network,本地互连网络)是专门为汽车开发的一种低成本串行通信网络。它 是现有汽车多元化网络公文包的一个补充。LIN 将成为层级式机动车网络执行的一个可行性因素,能 够提高质量、降低车辆成本。标准化意味着将会减少目前市场上杂乱的低端多元化解决方案,并降低 汽车电子产品在开发、生产、服务及物流领域的费用。2.1 范围LIN 标准包括输送协议规范、传输介质规范、开发工具之间的接口规范、以及用于软件编程的接 口规范。 从硬件和软件的角度来说,LIN 提高了网络节点之间的的互操作性,并可以提高可预见的 EMC 行为。2.2 特点和可能性LIN 是一种串行通信协议,能够有效地支持分布式汽车应用领域内的机电一体化节点控制。 LIN 总线的主要属性如下: ?拥有多从机概念的单主机 ? 基于通用 UART/SCI 接口硬件的低成本硅的实现。 UART/SCI 接口硬件相当于软件中的一个等同体, 或可以作为纯态机。 ?从机节点不需石英或陶瓷振荡器就能实现自同步 ?信号传播时间可预先计算出来的确定性信号传播, ?实现低成本单线实现方式 ?传输速率最高可达 20Kb/s ?基于应用交互的信号 本规范的目的是希望能够在标准范围内、在任意两个 LIN 操作之间获得兼容,也就是说从应用接口、 API 一直到物理层。 LIN提供了一套可以节约成本而且非常有效的总线通信。该通信系统不需要带宽和CAN多功能性。单 接线驱动器/接收器的规范遵循ISO9141标准,并对EMI的行为做了某些改进。联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 规范包LIN2.3 工作流程概念版本 2.0 日;P4LIN 的工作流程概念,考虑到了设计和开发工具之间的无缝链接操作。它可以提高 LIN 机群的开发速 度和可靠性。LIN 配置语言考虑到了节点数量的安全收缩,这不会破坏 LIN 的系统功能,如信息不兼容性或网络超载。LIN 配置语言是调试 LIN 机群的一个非常有用的工具,包括未完成节点的仿真。LIN 节点功能语言是 LIN2.0 的一个新特征,它为远离机架的从机节点技术规格提供了标准化的语法结构。这不仅可以简化标准节点的获得,而且使机群的生成自动成为了可能。因此,机群上节点 的即插即用功能将会成为现实。 下图便是工作流程的其中一个应用:从机节点与主机节点连接,形成LIN机群。相应的节点能力文件被系统定义工具解析,从而在系统的 定义过程中产生LIN描述文件(LDF) ,LDF被系统产生器分解后,会自动地在指定节点(如上图中的 主节点和从节点3)中产生与LIN相关的功能。此外,LIN的总线分析器/仿真器工具也可以利用LDF进 行机群的调试。 联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 规范包LIN2.4 节点概念版本 2.0 日;P5上述流程产生了完整的 LIN 机群交互模块,而开发商只需要提供执行节点逻辑功能的应用程序即 可。虽然,LIN 的许多规范采用的是具有诸多功能的软件执行,但是也可以促进可供选择的其他方案 的实现。在后一个例子中,LIN 的文件结构只能被视为一个描述模块: LIN 机群中连接到物理总线的节点会使用帧收发器,这些帧不直接通过应用程序直接访问;在两者之 间需添加基于信号的交互层。作为一个补充,诊断接口存在于应用程序和帧处理器之间。如下文:2.5 操作概念2.5.1 主机和从机 其他的所有 LIN 机群由 1 个主机任务和几个从机任务组成。 主机节点 1 同时包含主机任务和从机任务。 节点只包括一个从机任务。下文便是一个 LIN 机群的应用。该机群包含一个主机节点和两个从机节点 的:注1:一个节点可能会参与多个机群。如果节点有多个LIN总线接口,那么这里的“节点”只涉及到一个节点的单 总线接口联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 规范包LIN版本 2.0 日;P6主任务会指定在总线传送的帧的类型和时间。从机任务提供数据,由每个帧来传送。 主机任务和从机任务都是帧处理器的一部分。见 2.4 章节。 2.5.2 帧帧由一个帧头(由主机任务提供)和一个帧响应(由从机任务提供)组成。 帧头包括同步间隔场、同步场和标识符场三个部分;标识符场位置在间隔场和同步场之后。标识符唯 一定义了帧的目的。而用于提供与标识符相关的帧响应的从机任务就会输送该目的,过程如下文所示。 帧响应由于数据场和校验和场组成。 如果从机任务对标识符有关的数据感兴趣,那么它就可以接收这个响应,核实校验和,并使用这些被 传送过来的数据。 主机任务 从机任务 1 从机任务 2 - 帧 头 DDDDDDDDDDDDD 帧 头 DDDDDDDDDDD 帧响应 DDDDDDDDDDDDDDDDDDD 帧响应 DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD上述过程会产生下列希望得到的特点: ?系统弹性:节点可以被添加到 LIN 机群上,而无需改变其他从机节点上的硬件或软件。 ?信息路由:信息的内容由标识符 定义。 ?多点传送:无论有多少个节点,它们都可以同时接受信息,且在单个帧上进行操作。 2.5.3 数据输送2一个帧可以输送两种类型的数据:信号或诊断报文。 信号: 信号指得是标量值或字节数组。这些标量值或字节数组打包后放入帧的数据场里面。对所有拥有相同 标识符的帧来说,一个信号在数据场内的位置总是一样的。注 2:与 CAN 相似。联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 规范包LIN诊断报文:版本 2.0 日;P7诊断报文的输送是在具有两个保留标识符的帧里面完成的。数据场的判读取决于数据场本身以及通讯 节点的状态。 2.5.4 进度表 (处于主机节点的)主机任务会根据进度表输送帧头。进度表具体规定了每个帧头的标识符以及一个 帧与下一个帧之间的间隔。主机应用可以使用不同的进度表,并在它们之间进行挑选。2.6 文件概述LIN 规范包包含下列规范: ? 《LIN 物理层规范》对物理层进行了描述,包括比特率、时钟偏差等等。 ? 《LIN 协议规范》对 LIN 数据连接层进行了描述。 ? 《LIN 诊断和配置规范》描述了为诊断报文和节点配置提供的服务。该服务置于数据连接层的上面。 ? 《LIN 的 API 规范》描述了网络与应用程序之间的接口,包括诊断模块。 ? 《LIN 配置语言规范》描述了 LIN 描述文件的格式,该文件用于配置整个网络,在不同网络节点 OEM 和供应商之间不但起到通用界面的作用,而且是开发和分析工具的输入部分。 ? 《LIN 的节点能力语言规范》对用于描述离架从机节点的模板进行讲解。离架从机节点可以与即插即 用工具一起使用,从而自动创立了 LIN 描述文件。2.7 历史和背景1999 年 7 月,LIN 版本 1.0 发布。该规范受到了当时一些汽车公司所使用的 VLITE 总线的重要影响。 2000 年,LIN 标准被两次更新,从而于 2000 年 11 月产生了 LIN 1.2。2002 年 11 月,LIN 协会发布 了 LIN 1.3 版本的标准。这些修正主要是针对物理层进行,其目的就是为了改进节点之间的兼容性。联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 规范包LIN版本 2.0 日;P8全新的 LIN 2.0 版本向我们呈现了 LIN 规范从其鼻祖――LIN 1.3――开始的革命性发展。除了 2.7.1 章节所述的特例外,专门为 LIN 2.0 和 LIN 2.3 设计的节点将会在彼此之间进行通讯。 同时,LIN 2.0 规范被全部整改。原本不明朗的问题现在得到了解决,而需要修改的地方也被相应地修 改了。 LIN 2.0 是 LIN 规范的调整,它反映了最新的发展趋势;特别是离架从机节点的使用。SAE J2602 任 务组三年来对 LIN 规范的不断投入才使这次重大修订获得了成功。 2.0 同时也包括了一些新的特点, LIN 主要是配置/诊断标准化的支持和特定的节点能力文件。这两个特点的目标在于简化离架从机节点的使 用。 2.7.1 与 LIN 1.3 的兼容性 LIN 2.0 是 LIN 1.3 的扩展集,是最新研发产品的推荐版本。 一个 LIN 2.0 主机节点能够处理包括 LIN 1.3 从机和/或 LIN 2.0 从机的机群。主机不会向 LIN 1.3 的从 机要求获得任何新的 LIN 2.0 特点。 ?增强校验和, ?重新配置和诊断, ?波特率自动探测, ? “响应错误”状态监控, LIN 2.0 从机节点无法与 LIN 1.3 主机节点操作(需对 LIN 1.3 主机节点进行配置) 。联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 规范包LIN2.7.2 LIN 1.3 与 LIN 2.0 之间的差异版本 2.0 日;P9下文所列的项目是 LIN 1.3 与 LIN 2.0 的不同点。文件更名和问题澄清化则不包括在本章节中。 ?支持字节数组,信号可以达到 8 个字节。 ?可以删除信号组(被字节数组取代) 。 ?规范包括了比特率的自动探测功能。 ?对 LIN 1.3 的传统校验和进行了改进(包括受保护的标识符) 。 ?对零星帧进行了定义。 ?网络管理的定时用秒来定义,而不是用比特数来定义。 ?简化状态管理,并直接向网络汇报。应用标准化。 ?增加了强制节点配置命令以及其他选择命令。 ?增加了诊断功能。 ?每个节点的“LIN 产品 ID”标准化。 ?用于微控制器节点的强制 API。节点是 C 语言编程的。 ?API 发生变化,能够反映下列变化:字节数组、休眠、唤醒以及状态读取。 ?添加了诊断 API。 ?添加了节点能力语言规范。 ?更新了配置语言规范,以便能够反映所做的变化;添加了节点属性、节点结构、字节数组、零星帧 以及配置。2.8 参考文献[1] 《道路车辆――诊断系统――数据信息交换要求》, 国际标准 ISO9141, 第一版,1989.联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 规范包LIN3. LIN 术语表版本 2.0 日;P10下列术语通常出现在《LIN 2.0 规范包》里面。本术语表内,每个词汇的描述都被简化;此外,还提供 了一些主要文件和章节的参考文献。它们的缩写如下: PHY PROT DIAG CLS API NCL 活动模式 总线接口 字节场 校验和模型 传统校验和 LIN Physical Layer Specification (LIN物理层规范) LIN Protocol Specification(LIN协议规范) LIN Diagnostic and Configuration Specification(LIN诊断和配置规范) LIN Configuration Language Specification(LIN配置语言规范) LIN API Specification(LIN API规范) LIN Node Capability Language Specification(LIN节点能力语言规范) 作为一个机群,其中的节点彼此之间能够互相通信。[PROT 5] 与机群中物理总线相连的节点逻辑产品(收发器、UART 等等) LIN总线上的每个字节可以在一个字节场里发送; 字节场包括起始位和终止位。 [PROT 2.1] 确认了两个校验和模型;传统校验和和增强校验和。增强校验和包括校验和内部受保 护的标识符,而传统校验和则不包括。[PROT 2.1.5] 早期LIN版本所使用的校验和,用于帧的诊断:它只是将所有的数据字节进行统计。 [PROT 2.1.5] 机群指得是 LIN 总线以及所有的节点。 LIN的帧响应会输送1-8个字节。这些字节被统称为数据。[PROT 2.1.4] 数据中的其中一个字节。[PROT 2.1.4] 主机请求帧和从机响应帧被称为诊断帧。[PROT 2.3.4] 新型校验和,其性能相对较好:除了数据字节外,它还包括总数中的受保护标识符。 增强校验和用于LIN 2.0从机节点的通信。[PROT 2.1.5]机群 数据 数据字节 诊断帧 增强校验和联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 规范包LIN事件触发帧版本 2.0 日;P11作为“占位符” ,事件触发帧可以允许多个从机节点为其提供响应。当信号不怎么变化 时,这个帧非常有用。[PROT 2.3.2] 所有信息将会以帧的形式打包发送;帧包括帧头和帧响应。[PROT 2] LIN总线上为某个特定帧的传送所保留的时间。与进度表上的某个条目相符合。PROT 2.2] 这是一个特殊诊断帧,可以强迫从机节点进入休眠状态。[PROT 5.2] [API 2.5.4] 帧的第一部分;由主机任务发送。[PROT 2.1] 帧在0-63范围内的ID。[PROT 2.1.3] LDF是在系统定义过程中产生的, 并在系统生成过程中或由调试工具解析。 [CLS] [NCL 1.1] 每个LIN节点的独特号码。[DIAG 2.4]帧 帧槽休眠命令 帧头 标识符 LIN描述文件LIN 产品标志号 主机节点主机节点不仅包括一个从机任务,还包括主机任务。主机任务负责将总线上的所有帧 头发送出去,也就是说,它会控制总线的定时和进度表。 主机请求帧有标识符60,可以为主机节点所发行的诊断帧所用。[PROT 2.3.4] [DIAG] 主机任务负责将总线上所有的帧头发送出去,也就是说,它会控制总线的定时和进度 表。[PROT 4.1] 从机节点内的每个帧都有一个独特的16位信息号码。在字节配置过程中,这个号码会 与受保护的标识符有关,然后在与节点的常规通讯中进行应用。[DIAG 2.5.1] 节点诊断地址。 诊断帧通过广播形式传送, 而NAD则指定有地址标注的从机节点。 NAD 既是物理地址也是逻辑地址。[DIAG 2.3.2]主机请求帧 主机任务信息标识符NAD联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 规范包LIN节点版本 2.0 日;P12广泛来说,节点便是 ECU(电子控制单元) 。不过,单个 ECU 可以与多个 LIN 机群连 接;对后者来说, “节点”这个词汇用“总线接口”来表示,更合适。 NCF文件用于描绘LIN总线上的从机节点。该文件可用于系统定义。[NCL 1.1]节点功能文件受保护的标识符 标识符(6 位)与两个奇偶位组成。[PROT 2.1.3] 发布 每个信号(或无条件帧)都有一个配套的发布服务器;与认购不同的是,该节点是信 息源。[PROT 2.1.4] [PROT 4.2] 主机节点将请求放在节点配置和诊断运输层的从机节点上。[DIAG 2.3.1] [DIAG 3.3.1] 保留帧有一个不可使用的标识符:63(0X3f) 。[PROT 2.3.6] (1) LIN帧包括帧头和响应[PROT 2.1]。也叫做帧响应。 (2) ISO请求的回复信息被称为响应。[DIAG 2.3.1] [DIAG 3.3.1].。它同时也被成为诊 断响应。 进度表 从机节点 从机响应帧 从机任务 进度表决定LIN总线上的通信状况。[PROT 3] [CLS 2.5] [API 2.4] 节点只包含从机任务,也就是说,它并不包括主机任务。 从机响应帧有标识符61, 可以被从机节点所发布的诊断帧所使用。 [PROT 2.3.4] [DIAG] 从机任务负责倾听所有总线上的帧头,并做出相应地反映,也就是说,它既会发布一 个帧响应,也会认购(或忽视)一个帧响应(或者忽略它) 。[PROT 4.2] 机群中不发生任何通信行为。[PROT 5] 信号指得是 LIN 机群在使用载波帧时的一个被运输值。[PROT 1]请求 保留帧 响应休眠模式 信号联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 规范包LIN载波帧版本 2.0 日;P13载运信号的帧应有一个范围在 0-59 的标识符(0X3b) 。无条件帧、零星帧以及事件触 发帧都是载波帧。[PROT 2.1.3] 零星帧与无条件帧很相似,是一个载波帧。不过,如果发布服务器对其中一个信号进 行了更新,零星帧只能在自己的帧槽里面转移。[PROT2.3.3] 认购是发布的反义词, 也就是接受信号 (或接受一个载波帧) [PROT 2.1.4] [PROT 4.2] 。 创立LIN描述文件的过程。[NCL 1.1.2] 机群中目标节点向LIN描述文件转变的过程。[NCL 1.1.1] 载波帧总是在其指定的帧槽里面发送。[PROT 2.3.1] 标识符为62的帧。其目的或用途不是LIN技术规范的一部分。[PROT 2.3.5]零星帧认购 系统定义 系统产生 无条件帧 用户定义的帧联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 规范包目录目录 规范包1. 修订记录 2. LIN 2.1 范围 2.2 特性和可能性 2.3 工作流程概念 2.4 节点概念 2.5 操作概念 2.5.1 主机和从机 2.5.2 帧 2.5.3 数据运输 2.5.4 进度表 2.6 文件概述 2.7 历史和背景 2.7.1 与 LIN 1.3 的兼容性 2.7.2 LIN 1.3 和 LIN2.0 之间的差异 2.8 参考文献 3 LIN 术语表 目录版本 2.0 日;P141 2 3 3 4 5 5 5 6 6 7 7 7 8 9 9 10 14协议规范1. 信号管理 1.1 信号类型 1.2 信号一致性 1.3 信号打包 2 帧传输 2.1 帧结构 2.1.1 间隔 2.1.2 同步字节 2.1.3 受保护的标识符 2.1.4 数据 2.1.5 校验和 2.2 帧槽 2.3 帧的型号 2.3.1 无条件帧 2.3.2 事件触发帧 2.3.4 零星帧 2.3.4 诊断帧 2 2 2 2 3 3 4 4 4 5 6 6 7 7 7 9 10联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. 目录2.3.5 用户定义帧 2.3.6 保留帧 3 时间表 3.1 帧槽 4 从任务行为模型 4.1 主机任务状态机 4.2 从任务状态机 4.2.1 间隔和同步检测器 4.2.2 帧处理器 5 网络管理 5.1 唤醒 5.2 进入休眠 5.3 电源管理 6 状态管理 6.1 概念 6.2 事件触发帧 6.3 向网络报告 6.4 Reporting within own node 7 附录 7.1 数值属性表 7.2 有效标志符表 7.3 效验和计算事例 7.4 该标准中使用的语法和数学符号LIN 规范包版本 2.02003 年 9 月 23 日;P15诊断和配置规范1. 绪论 2. 节点配置 2.1 节点模型 2.2 通配符 2.3 PDU 结构 2.3.1 概述 2.3.2 NAD 2.3.3 PCI 2.3.4 SID 2.3.5 RSID 2.3.6 D1 to D5 2.4 LIN 产品确认 2.5 强制请求 2.5.1 分配帧标志符 2.5.2 通过标志符读取 2.6 Optional requests联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国电话: +49 (89)
E-Mail: H. LIN 规范包目录2.6.1 Assign NAD(分配 NAD) 2.6.2 Conditional change NAD(有条件变化的 NAD) 2.6.3 数据转储 3. 诊断 3.1 基于信号的诊断 3.2 用户定义的诊断 3.3 诊断运输层 3.3.1 PDU 结构 3.3.2 被定义的要求 3.3.3 ISO 定时限制 3.3.4 程序表 4 参考文献版本 2.0 日;P15 9 9 10 11 11 11 11 12 14 14 15 16物理层规范1. 振荡器偏差 2. 位定时要求和同步程序 2.1 位定时要求 2.2 同步程序 3. 总线驱动器/接收器 3.1 通用配置 3.2 物理接口的电压定义 3.3 信号规范 3.4 直流电路参数 3.5 交流电路参数 3.6 线特性 3.7 ESD/EMI 的符合条件 2 3 3 3 4 4 4 5 7 9 11 12应用程序接口规格1. 介绍 1.1 操作概念 1.1.1 系统产生 1.1.2 API 2. 内核 API 2.1 驱动器和机群管理 2.1.1 l_sys_init 2.2 信号交互 2.2.1 信号类型 2.2.2 标量信号读取 2.2.3 标量信号写入 2.2.4 字节数组读取 2.2.5 字节数组写入 2 2 2 2 4 4 4 4 4 5 5 5 6联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 规范包目 录2.3 通知 2.3.1 l_flg_tst 2.3.2 l_flg_clr 2.4 进度管理 2.4.1 l_sch_tick 2.4.2 l_sch_set 2.5 接口管理 2.5.1 l_ifc_init 2.5.2 l_ifc_connect 2.5.3 l_ifc_disconnect 2.5.4 l_ifc_goto_sleep 2.5.5 l_ifc_wake_up 2.5.6 l_ifc_ioctl 2.5.7 l_ifc_rx 2.5.8 l_ifc_tx 2.5.9 l_ifc_aux 2.5.10 l_ifc_read_status 2.6 用户提供的标注 3. 节点配置 3.0.1 id_is_ready 3.0.2 id_check_response 3.0.3 id_assign_NAD 3.0.4 id_assign_frame_id 3.0.5 id_read_by_id 3.0.6 id_conditional_change_NAD 4. 诊断运输层 4.1 内部回调接口 4.1.1 id_put_raw 4.1.2 id_get_raw 4.1.3 id_raw_tx_status 4.1.4 id_raw_rx_status 4.2 加工好的 API 4.2.1 id_send_message 4.2.2 id_receive_message 4.2.3 id_tx_message 4.2.4 id_rx_message 5. 案例 5.1 LIN 内核 API 的使用 5.2 LIN描述文件版本 2.0 日;P16 6 6 7 7 7 8 9 9 9 9 10 10 11 11 12 12 13 15 16 16 17 17 18 18 19 20 20 20 21 21 22 22 22 23 23 24 25 25 25联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 规范包目录节点能力语言规范1. 介绍 1.1 即插即用流程 1.1.1 系统产生 1.1.2 系统定义 1.1.3 调试 2. 节能力文件定义 2.1 全球定义 2.1.1 节点能力语言版本号的定义 2.2 节点定义 2.3. 一般定义 2.3.1 LIN 协议版本号的定义 2.3.2 LIN 产品识别 2.3.3 比特率 2.3.4 非网络参数 2.4 诊断定义 2.5 帧定义 2.5.1 帧的属性 2.5.2 信号的定义 2.5.3 信号编码类型的定义 2.6 状态管理 2.7 自由文本 3. 句法摘要 4. 样本文件版本 2.0 日;P172 2 2 3 3 4 4 4 4 4 5 5 5 5 5 6 7 7 8 8 9 10 11配置语言规范1. 介绍 2. LIN 描述文件的定义 2.1 全球定义 2.1.1 LIN 协议版本号的定义 2.1.2 LIN 语言版本号的定义 2.1.3 LIN 速度的定义 2.2 节点定义 2.2.1 参与的节点 2.2.2 节点的属性 2.2.3 节点结构定义 2.3 信号定义 2.3.1 标准信号 2.3.2 诊断信号 2.3.3 信号组 2.4 帧定义 2 3 3 3 3 3 3 4 4 5 6 6 6 7 7联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 规范包目录2.4.1 动力帧的定义 2.4.2 无条件帧 2.4.3 零星帧 2.4.4 事件触发帧 2.4.5 诊断帧 2.5 进度表的定义 2.6 附加信息 2.6.1 信号编码类型定义 2.6.2 信号再现的定义 3. 句法摘要版本 2.0 日;P19 7 7 9 9 10 11 13 13 15 16联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 协议规范版本 2.0 日;P21LIN 协议规范 版本 2.0本规范是在“ASIS”的基础上形成的,不可以作为任何索赔的依据。? LIN 协会 2003. 版权所有。未经授权的复印、演示、或对本文件其他方面的使用,都是 违反法律和知识产权的。LIN是一个注册商标?.本文件的任何分发都登记在案。联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 协议规范信号管理1. 信号管理版本 2.0 日;P2信号是在帧的数据场里面输送的。多个信号可以被打包成一个帧,只要这些信号彼此之间不会相互重 叠。 每个信号都有自己的生成器,即它总是由机群里面的同一个节点写入。0、1 或多个节点可以认购该信 号。1.1 信号类型信号有标量值和字节数组两种类型。 标量值的字节有 1-16 个,一个字节的标量信号被称为布尔信号。字节为 2-16 的标量信号被视为无符 号(无正负)整数。除此之外的数据判读,即偏移和校准,均不在本范围内。 一个字节数组是由 1-8 个字节组成的。对 LIN 规范来说,任何对此类字节数组的判读均不在范围内。 特别是当再现实体要比字节数组里的字节要大的时候,这对字节顺序更加适用。1.2 信号一致性标量信号的写入或读取必须是原子操作的。也就是说,应用程序无法接受一个部分被更新的信号值。 不过,信号与信号之间或一个字节数组内的字节之间无需坚持一致性。1.3 信号打包信号会最先通过LSB进行发送,最后才是MSB。对帧内部的标量信号包来说,唯一的原则就是:标量 信号1可以穿过一个字节的最大界限。字节数组内的每个字节应形成一个单帧字节。该单帧字节的首位 是编号最小的数据字节(2.1.4章节)注 1:如果信号是按照字节排列在一起的,或信号没有穿过字节界限,那么信号的打包或解压行为在基于软件的字 节内操作时更有效联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 协议规范帧的传送2. 帧的转移在LIN总线上进行传送的实体就是帧。版本 2.0 日;P3帧的发送时间是每个字节发送时间的总和,再加上响应间隙时间和字节间隙时间。字节间隙时间是前 一个字节终止位的末端到下一个字节起始位的末端之间的时间。这两个字节不能是负数。 帧空间是从帧的结尾直到下一帧的开始,内部帧空间也不能为为负。2.1 帧结构表2.1就是一个帧的结构。该帧是由一个间隔和4-8个字节场组成,这些字节场以数字标注。 帧 槽 帧 响应间隙 帧头 响应 帧间隙时间间隔同步受保护的标识符数据1数据N校验和图2.1: LIN的帧结构 每个字节场2是作为字节串行被输送的,如图2.2所示。最先发送的数据是LSB,最后才是MSB。起始 位是一个值为0的比特(显性),而终止位也是一个值为1的比特(隐性)。 字节场 起始位 LSB (bit 0) MSB (bit 7) 终止位图2.2: 字节场的结构注2:不包括间隔字节场。见2.1.1章节联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 协议规范帧的传送2.1.1 间隔版本 2.0 日;P4间隔符号用来标识一个新帧的起始点。这是唯一一个不必符合表2.2的场。间隔总是由主机任务(位于 主机节点)产生,是一个至少有13个比特的显性值,包括起始位、间隔定界符等等,见图2.3。间隔定 界符的长度应至少为一个标定比特。 从机节点需使用标定比特数为11的间隔检测阈3。起始位间隔定界符图2.3:分隔场 2.1.2 同步字节同步场是一个数据值为0 x 55的字节场,见图2.4。起始位终止位图2.4:同步字节场 从机任务要求能够探测到间隔/同步符号序列,即使这只是个字节场(假设字节场彼此之间是分离 的 )。如果发现了同步场,间隔/同步符号序列的探测工作将会终止正在进行的帧转移5,而启动新帧 的处理工作。42.1.3受保护的标识符受保护的标识符包括2个子场: 标识符以及标识符的奇偶校验。 0-5比特是标识符, 6-7比特是奇偶校验。注3:有时钟偏差的从机节点比FTOL_SYNCH要好。见LIN物理层。 表1.2(典型的晶体或磁共鸣器)可以 使用9.5比特的间隔检测阈 注4:用于探测间隔/同步序列的一个特性,即使间隔部分被数据字节叠加。该特性虽然很需要,但并不是必 需的。 注 5:Reponse_error 和响应错误需在节点处理帧的过程进行设置,见第 5 章节。联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 协议规范帧的传送标识符 标识符(ID)有6个比特,其值的范围是0-63。标识符可分为4类: ?载波帧的值,其范围是0-59(0 x 3b) 。 ?60 (0x3c) 和61 (0x3d) 可用来载运诊断数据。 ?62(0x3e)专门用于用户定义的扩展部分。 ?62(0x3f)专门用于以后协议的改进。版本 2.0 日;P5奇偶校验 奇偶校验是在标识符比特的基础上进行计算的,见方程(1)和(2): P0 = ID0
ID4 P1 = ? (ID1
ID5) 制图 比特(从ID0到ID5、P0和P1)的制图,见图2.5 起始位 ID0 数据 ID1 ID2 ID3 ID4 ID5 P0 P1 终止位 (1) (2)图2.5:受保护标识符字节场的标识符和奇偶校验(图解) 2.1.4 帧可以携带1-8字节的数据。对拥有指定标识符的帧来说,其所包含的字节的数量应与发布服务器 和所有认购器保持一致。数据比特是在比特场里面进行输送的,见图2.2 对那些超过1个字节的数据实体来说, LSB被包含在第一个被发送的字节里面, 而实体MSB则被包含在 最后一个被发送的字节里面(小头)。数据场用数据1、数据2、……、数据8标注,见图2.6。数据1数据2数据3数据4数据5数据6数据7数据8图 2.6:8 个数据字节帧里面的数据字节编号.联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 协议规范帧的传送2.1.5 校验和版本 2.0 日;P6帧的最后一个场是校验和。校验和场里面包含取向的8个比特和,效验和包含取反的带有进位的8 位和,该和的计算是在所有的数据字节或是所有数据字节和保护标志符之上的。仅根据数据字节进行 计算的校验和被称为传统的校验和,它可以用于LIN1.3从机通讯。 根据数据字节和标识符进行计算的校验和被称为增强校验和,可以与LIN2.0从机进行通讯,见图2.2。 主机节点可以控制进行传统或增强校验和的使用,并由帧标识符决定;传统校验和可以与LIN1.3从机 进行通讯;增强校验和可以与LIN2.0从机进行通讯,值为60 (0x3c)到63 (0x3f)的标识符经常使用传统 校验和。2.2帧槽每个预定的帧会在总线上分配一个槽。槽的间隙时间必须足够长,以便能够在最糟的情况装载帧。输送一个帧的标定值必须与发送的比特数量相配,也就是说无响应空间、无字节空间且无帧间隙空间。 因此:THeader_Nominal = 34 * TBit TResponse_Nominal = 10 * (NData + 1) * TBit TFrame_Nominal = THeader_Nominal + TResponse_Nominal方程中,Tbit是输送一个比特的标定值,见LIN物理层的定义。(3) (4) (5)字节之间最大的空间是标定输送时间的40%。该时间段被帧头(主机任何)和帧响应(从机帧)隔开, 于是产生:THeader_Maximum = 1.4 * THeader_Nominal TResponse_Maximum = 1.4 * TResponse_Nominal TFrame_Maximum = THeader_Maximum + TResponse_Maximum每个帧槽应大于或等于TFrame_Maximum(6) (7) (8)注 6:带有进位的 8 位和等于所有值的和;如果每次相加总和大于或等于 256,那么该总和需减去 255(这 并不等于模-255 或模-256)。联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 协议规范帧的传送注:版本 2.0 日;P7所有认购节点能够接收零耗量(zero-overhead)的帧,即长度为TFrame_Nominal。 THeader_Maximum规定了间隔符号的最大长度。2.3帧的类型帧的类型提到了那些能够有效输送帧的前提条件。某些类型的帧只能用于特定的用途,它以下章节中被定义。注意,并不是所有的节点或机群都要支持所有本章节指定的帧类型。 帧中所有未被使用/定义的比特均为隐性比特。 2.3.1 无条件帧无条件帧总是携带信号,其标识符值的范围为0-59(0x3b)。 无论什么时候,只要当分配在无条件帧上的帧槽被(主机任务)处理了,无条件帧的帧头才可以 被输送。无条件帧(从机任务)的发布器应向帧头提供响应。无条件帧的所有认购器应接收帧,并使 它可以被应用(前提是没有发现任何错误)。 图2.7便是3个无条件帧的序列 从机 1 主机 从机 2ID=0X30 ID=0 X 31 ID=0 x 32主机向从机1要求发送帧 主机向两个从机发送帧 从机2向从机1发送帧图2.7:三个无条件帧的转移。帧的转移活动通常是由主机启动的。它由一个单发布服务器和一个或多个认 购器组成。2.3.2事件触发帧事件触发帧的目的是增加LIN机群的可靠性,当使用很少发生的事件来访问多个从机节点时,而这 无须通过分配过多的总线带宽。 事件触发帧会载运一个或多个无条件帧的数据场,且事件触发帧的标识符应在0-59 (0x3b)的范围 内。被载运的无条件帧的第一个数据字节应与其受保护的标识符的字节一样。也就是说,被载运的信 号最多只能有7个字节。 联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 协议规范帧的传送版本 2.0 日;P8如果多个无条件帧与一个事件触发帧(这属正常情况)发生关联,那么它们的长度应该保持一致,且 应使用相同的校验和模型(LIN1.3和LIN2.0帧的混合体是不被接受的);更甚至,它们应该被不同的 从机任务发布。 当分配给事件触发帧的帧槽被处理时,事件触发帧的帧头就可以被正常输送(输送条件见下文)。一 旦帧所携带的其中一个信号被更新了,那么与无条件帧相关联的发布服务器只能向该帧帧头响应。 如果无任何从机向帧头响应,那么帧槽的余下部分将沉寂,而帧头将会被忽略掉。 如果有多个从机任务向同一个帧槽内的帧头响应,那么会发生冲突,主机在再次请求时间触发帧之前 必须通过请求所有相关的无条件帧来解决冲突。 如果其中一个碰撞从机节点在撤回过程中不打乱输送,那么主机将不会检测该节点。从机需重新尝试 发送响应,直到成功为止,否则该响应将会丢失。 (如果校验和有效的话)所以事件触发帧的认购器需接收帧,并像所有关联的无条件帧已经被接收了 一样,对它的数据进行应用。 图2.8是事件触发帧序列的一个例子: 从机 1 主机 从机 2ID=0X10 ID=0 X 12 ID=0 x 32因事件触发帧请求引发的碰撞 优先次序最高的关联帧的请求 优先次序最低的关联帧的请求ID=0 X 10 ID=0 X 10从机没有发送任何新响应 从机有新的响应图 2.8: 为 0 X 10 的帧是与无条件帧 0 X 11 和 0 X12 相关的事件触发帧。 ID 在每 5 个帧槽之间, 其他帧可以根据进度表的定义进行输送。 联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 协议规范帧的传送例子:版本 2.0 日;P9事件触发帧的一个典型应用是监测四门中控锁系统的门把。通过使用事件触发帧来检测所有4个门,系 统就可以显示较好的响应次数,同时也可以使总线负担最小化。如果有多个乘客同时按下同一个门把, 那么在这种情况下,系统不会错过任何乘客的按下指令,而所花时间可能会长一点。不过上述情况的 发生概率很低。 注: 如果将增强校验和用于事件触发帧,那么在校验和的计算过程中,就会用到帧头内被输送的受保护标 识符。 2.3.3 零星帧 零星帧的用途是将一些动态行为混入确定的实时进度表, 且同时不会失去进度表其他部分的决定作用。 零星帧经常携带的信号以及它们的标识符的范围值是0-59(0x3b)。 当主机任务获知,帧中所载运的信号已经被更新时,零星帧的帧头就可以被发送了,不过只能在与之 相关的帧槽里面进行发送。零星帧的发布服务器应向帧头产生响应。(如果校验和有效的话)所以零 星帧的认购器应接收帧并使用它的数据。 如果多个零星帧与同个帧槽发生关联(这属正常情况),优先次序最高7的零星帧(当信号被更新时) 应在该帧槽里面输送。如果与帧槽关联的零星帧无任何更新信号,那么该帧槽将不发出任何声音。 如果主机任务知道了载运的信号已经被更新, 那么该请求会将主机节点变成零星帧的常规发布服务器。 即使事件触发帧里面发生了碰撞,主机任务也会意识到相关无条件帧的存在。 图2.9是零星帧序列的一个例子。注 7:见《LIN 配置语言规范》的第 2.4.3 章节 联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 协议规范帧的传送版本 2.0 日;P10主 机从 机主机无任何帧可发送 帧0x22的内部 有一个信号被 更新 关联帧0x22有一个信号被更新,且已经被 主机发送出去ID=0 X 22图2.9:正常情况下,零星帧槽是空的。上图第二个槽内的一个关联帧(0x22)已经被更新。根据进度 表的进程,其他帧可以在帧槽之间进行转移, 2.3.4 诊断帧 诊断帧通常携带诊断或配置数据,且它们通常包含8个数据字节。标识符值为60 (0x3c)的帧被称为主 机请求帧,值为61 (0x3d)的帧被称为从机响应帧。数据的判读见《LIN诊断和配置规范》。 在产生诊断帧的帧头之前,主机任务会询问其诊断模块是否需要发送帧或总线是否处于无声状态。根 据诊断模块,从机任务可以发布并认购响应。 2.3.5 用户定义的帧 用户定义的帧可以载运任何形式的信息。它们的标识符是62 (0x3e)。只有当分配给帧的帧槽被处理时,其帧头才可以被输送。2.3.6 保留帧 保留帧不可用于LIN2.0机群。它门的标识符是63(0x3f)。联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 协议规范进度表版本 2.0 日;P113 进度表LIN协议的一个重要属性便是进度表的使用,进度表可以确保总线永远都不会被超载。它们同时也 是确保信号周期性的一个重要因素。 主机任务可以启动LIN机群中的所有传送行为,这也使确定性的行为成为了可能。主机有责任确保 操作模式内部的所有相关帧有足够的时间进行传送。3.1 槽的分配这部分确定了进度表应该遵循的所有要求。大多数要求的基本原理是:提供一个无冲突标准或其 他的能够简单有效地执行LIN协议的准则。 与零星帧或事件触发帧相关的无条件帧不可以被分配在与零星帧或事件触发帧一样的进度表里 面。 帧槽必须有一个足够长的间隙时间,让主机任务和TFrame_Maximum有时间完成输送。 Frame_Maximum的定义见方程(8)。正如方程下面的注解所标注的那样,如果有发布服务器的支持, TFrame_Maximum的值可能会有所减少。联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 协议规范任务行为模式4 任务行为模式版本 2.0 日;P12本章定义了LIN节点的行为模式。该行为模式是在主机任务/从机任务的概念上建立起来的。没有 必要执行拥有三个独立状态机的主机节点或拥有两个独立状态机的从机节点,因为它们非常有可能会 结合成一个节块。4.1主机任务状态机主机任务负责生成正确的帧头,根据进度表决定哪个帧应该被发送,并维持帧之间的正确定时。主机 任务状态机如图4.1所示: 等待下一个 帧槽的到来 输送条件尚未被满足 无条件帧或输送条件已经被满足 发送间隔场 发送同步场 发送受保护的 标识符图4.1:主机任务完整的状态机 上述状态机并没有描绘如果对标识符进行选择。 注:由于没有要求对主机任务状态机内部的错误进行检测。因此,内部可能会发生错误,比如,在发 送隐性比特的时候,探测到的显性比特将会使从机忽视帧头。4.2从机任务状态机当从机任务充当发布服务器的角色的时候,它才负责发送帧响应;且当从机任务是认购器时,它才负责接收帧响应。从机任务有两个状态机模型。 ?间隔和同步探测器 ?帧处理器 4.2.1 间隔和同步探测器从机任务要求能够与帧的受保护标识符场在一开始的时候保持同步。也就是说,它必须能够正确 的收到受保护标志符场。 在整个帧里面, 它必须在要求的比特率偏差内保持同步, 《LIN物理层规范》 见 第一部分的要求。为了达到这个目的,每个帧在开始的时候,都会伴随着间隔场和同步字节场序列。 这个序列在整个LIN通讯过程中是唯一的, 且能够提供足够的信息, 让从机任务探测到一个新帧的开始, 且能够在标识符场一开始的时候便保持同步。 联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H.LIN 协议规范任务行为模式4.2.2 帧处理器版本 2.0 日;P13帧处理过程由两个状态组成:休眠状态和激活状态。激活状态包含5个子状态,只要间隔和同步程 序(BreakAndSynch)被激活,系统就会进入接收标识符(Receive Identifier)的激活子状态。这表明, 通过探测到一个新的间隔和同步序列,帧的处理程序将会被终止。帧的处理器状态机如图4.2所示。 休眠状态 启动BreakAndSynch(间隔和同步程序) 间隔和同步程序启动/错误 激活 接收受保护符 未知的 id+parity 或 Tx/Rx 条件尚未被满足 id+partiy∈Rx id+partiy∈Tx 发送数据字节 更多 Readback≠Sent/Error(发送错误接收数据字节 更多 接收校验和字节最后一个被输送的数据 总是/如果 Readback=sent(发送) 发送校验和字节 成功,否则发送错误 帧错误 最后一个被收到的数据 总是/如果校验和有效, 那么帧和设置成功,否则错误 图4.2:帧处理器状态机错误和成功的定义请参考第6章节的状态管理描述。 联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 协议规范任务行为模式版本 2.0 日;P14如果回读核对 (read back) 和发送的数据之间不匹配, 那么在包含了这个不匹配问题字节场完成之前, 不匹配问题应该被探测到。一旦探测到该问题时,发送行为将立即终止。联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 协议规范网络管理版本 2.0 日;P155. 网络管理LIN机群内部的网络管理仅仅是指机群的唤醒和休眠。其他网络管理的特征,举例来说,有配置检测和 “跛行回家” (limp-home)管理,被留给应用程序来处理。5.1 唤醒任何处于休眠LIN机群状态的节点可以请求唤醒程序8。通过让总线处于显性状态250μs至5ms, 便可以产生唤醒请求。 每个从机节点(与电源相连)应可以探测到唤醒请求(主脉冲不长于150μs9),且会在100ms 内随时等候总线命令。该100ms是从主脉冲的终止边缘开始计算的。主机会被唤醒,且当从机节点准 备好时10,主机节点才开始发送帧头,开始探测造成唤醒请求发布的缘由。 如果主机未在收到唤醒请求的150ms内发送帧头,那么发送请求的节点可以尝试发送一个新的唤 醒请求。三次请求(均失败)后,节点应该等待至少1.5秒后才能发送第四个唤醒请求。 5.2 进入休眠状态 处于激活机群的所有从机节点会通过发送一个诊断主机请求帧(帧的标识符=0x3c)而被迫进入休眠 模式11。该请求帧的第一个数据字节等于012。这种特殊的诊断帧的使用,被称之为“进入休眠命令”。 如果LIN总线处于未激活状态已经超过4秒了,从机节点也会自动进入休眠模式。注8:主机可以发送一个间隔符号,比如,发送一个普通的帧头,因为该间隔将充当唤醒脉冲的角色。 注9:150μs的检测阈若结合一个250μs的脉冲生成,便可产生一个探测余量。该探测余量足够大,可以容纳未被校准 的从机节点。 注10:(从唤醒开始)需花费100ms的时间,除非主机有附加信息,比如,造成唤醒的原因只是因为机群里面的其中 一个从机。 注11:休眠状态仅覆盖机群。节点内的应用程序仍然是激活的。 注12:正常情况下,第一个数据字节被判读为节点地址,即NAD;不允许地址为零。 注 13:未被激活的定义如下:隐性位和显性位之间的比特值无任何转移。联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 协议规范网络管理版本 2.0 日;P165.3 电源管理图 5.1 的状态图向我们展示了 LIN 节电源管理的行为模型。本文件中指定的 LIN 协议行为仅适用于操 做状态。 关闭电源 关闭电源 关闭电源 打开电源 关闭电源待定 唤醒初始化 (&100ms) 进入休眠 图 5.1:LIN 节点的能源管理运算联系方式:H.-Chr. v. d. Wense, 摩托罗拉有限公司,Schatzbogen 7,D-81829 慕尼黑,德国 电话: +49 (89)
E-Mail: H. LIN 协议规范状态管理版本 2.0 日;P176. 状态管理状态管理的目的是在操作过程中检测错误。该目的有两层含义: ?提供轻松替换错误单元的方法; ?发生错误时,为节点提供进入limp-

我要回帖

更多关于 感冒会不会影响月经 的文章

 

随机推荐