LIN协议企业培训_第1页
LIN协议企业培训_第2页
LIN协议企业培训_第3页
LIN协议企业培训_第4页
LIN协议企业培训_第5页
已阅读5页,还剩116页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LIN2.1规范2012-03-09概述协议规范物理层规范传输层规范节点配置和标识规范诊断规范应用程序层规范节点能力语言规范配置语言规范概述Overview概述典型车载网络分布概述车用总线分级LIN(LocalInterconnectNetwork)协会成立于1998年成立时的主要成员:5家整车厂:Audi,BMW,DaimlerChrysler,Volvo,VW1家半导体制造商:Motorola1家工具提供商:MentorGraphics目前的主要成员:5家整车厂:Audi,BMW,DaimlerChrysler,Volvo,VW1家半导体制造商:Freescale1家工具提供商:MentorGraphics主要目的:LIN总线的主要目的在于提供一种低成本的车用总线,从而形成对CAN总线的补充。LIN总线已经广泛地被世界上的大多数汽车公司以及零配件厂商所接受,有望成为公认的A类网络标准。概述LIN总线的起源概述功能简单,实时性低成本低传感器/执行器级的总线基于UART数据格式、主从结构、单线12V串行通信开放、不需要使用费和版税LIN总线概念概述LIN1.11999年7月,底特律SAE大会包括3部分协议规范配置语言规范API规范LIN1.22000年11月LIN1.32002年11月增加了物理层规范LIN协议版本(1/2)LIN1.1LIN1.2LIN1.3概述LIN2.02003年9月适应当代和未来汽车工业发展趋势为了实现节点的“即插即用”增加了诊断规范和节点能力语言规范LIN2.12006年11月目标是改进LIN2.0规范的理解力增加了传输层规范和节点配置规范形成了8个子规范LIN1.1LIN1.2LIN1.3LIN2.0LIN2.1LIN协议版本(2/2)概述LIN规范组成(1/2)LIN物理层规范描述了LIN总线的物理层,包括位传输速率,时钟容错范围等LIN协议规范描述了LIN总线的数据链路层LIN诊断和配置规范描述了如何在数据链路层之上提供诊断信息和节点配置服务LIN应用程序接口(API)描述了网络和应用程序之间的接口,包括诊断模块LIN配置语言规范(LDF)介绍了LIN配置文件的格式。LIN配置文件用于配置整个网络,并作为OEM和不同网络节点的供应商之间的通用接口,同时可作为开发和分析工具的一个输入。LIN节点能力描述语言规范(NCF)介绍了描述从机节点的语言格式,LIN集群设计工具可以使用NCF文件自动地生成LIN描述文件概述LIN规范组成(2/2)LIN传输层规范描述了传输最高能达到4095个字节数据的方法LIN诊断规范描述了从机节点所支持的诊断服务类型,诊断服务都使用传输层概述串行通信线间干扰小,节省线束,传输距离长单线传输单线,总线电压12V最高速率20Kbit/s满足车身上大部分的应用需求单主多从结构不存在冲突,无需仲裁基于通用UART/SCI的低成本接口硬件几乎所有MCU有具备LIN总线的硬件基础从节点无须晶振或陶瓷震荡器就可以实现同步利用报头里的同步场实现同步,大幅度降低成本LIN总线的特点(1/2)概述LIN总线的特点(2/2)

可计算的信号传输的延迟时间网络通信可预期性可灵活的增加或减少从节点无需改变其他节点的硬件电路一条总线最多可连接16个节点由总线电气特性决定支持多包报文传输基于ISO15765-2的传输层规范支持诊断功能支持ISO14229的诊断服务概述LIN网络拓扑结构

一个LIN网络由一个主任务,若干个从任务组成主节点既有主任务又有从任务从节点只包含从任务主任务负责决定总线上的报文,从任务提供每一帧的数据概述LIN报文帧通信原理:主任务发送报头,从任务用响应来补充报头形成完整的报文。系统灵活性:可以自由地增减从节点,而不需要改变其它从节点的软件和硬件报文传输:报文的内容由ID来定义(跟CAN相似)广播:所有节点都能够同时地接受和响应总线上的帧概述LIN总线上可以传输两类数据信号报文信号位于帧的数据场中,以数字或数组的形式出现同一种信号在相同ID的报文数据场中的位置总是固定的诊断报文诊断报文由两个保留ID来传输,用来传输节点的诊断信息数据传输概述负责调度网络各报文发送的顺序为每帧报文分配发送时隙(slot)发送时隙:报文可以被发送的时间不同报文的发送时隙可能不同调度表在网络系统设计阶段确定调度表使得LIN通信具有可预测性调度表概述主任务可以拥有多个调度表,并在不同的调度表之间切换增加通信的灵活性切换调度表决策大纲概述协议规范物理层规范传输层规范节点配置和标识规范诊断规范应用程序层规范节点能力语言规范配置语言规范协议规范ProtocolSpecification协议规范显性间隔同步场响应间隔标识符场数据场校验和场报头(Header)响应(Response)间隔界定间隔场字节间隔D0D1Dn帧的结构(FrameSturcture)字节间隔位于每个字节之间,响应间隔位于报头与响应之间留给MCU足够的处理时间帧长度可能增长最小值可以是0协议规范字节场(ByteField)报头(Header)响应(Response)D1DnD0起始位结束位07412356基于SCI的通信格式发送一个字节需要10个位时间(TBIT)协议规范间隔场(BreakField)表示一帧报文的起始,由主节点发出间隔信号至少由13个显性位组成,间隔界定符至少由1个隐性位组成间隔场是唯一一个不符合字节场格式的场从节点需要检测到至少连续11个显性位才认为是间隔信号间隔信号报头(Header)响应(Response)间隔界定符间隔场D0D1Dn协议规范同步场(SyncBreakField)同步场报头(Header)响应(Response)D0D1Dn起始位结束位0x5510101001确保所有从节点使用与主节点相同的波特率发送和接收数据一个字节,结构固定:0X55协议规范标识符场(IdentifierField)起始位ID0ID1ID2ID3ID5P0P1ID4结束位标识符奇偶校验符标识符场报头(Header)响应(Response)D0D1Dn帧ID的范围从0到63(Ox3f)奇偶校验符(Parity)P0,P1协议规范数据场(DataField)报头(Header)响应(Response)D0D1Dn数据场bit0bit7bit1bit2…起始位结束位最低有效位先发送D0D1D2Dn(小于8)…最低有效字节先发送数据场长度1到8个字节低字节先发,低位先发如果某一信号长度超过1个字节,采用低位在前的方式发送(小端)协议规范校验和场(ChecksumField)(1/2)校验和场报头(Header)响应(Response)D0D1Dn用于校验接收的数据是否正确(1个字节)经典校验(ClassicChecksum)仅校验数据场(1.3)增强校验(EnhanceChecksum)校验标识符场与数据场内容(2.0)标识符为0x3C(60)和0x3D(61)的帧只能使用经典校验协议规范校验和场(ChecksumField)(2/2)翻转八位和(invertedeightbitsum)例:Data=0x4A,0x55,0x93,0xE5Checksum=0xE6帧长度(FrameLength)最小帧长度THEADER_NOMINAL=34*TBITTRESPONSE_NOMINAL=10*(NDATA+1)*TBITTFRAME_NOMINAL=THEADER_NOMINAL+TRESPONSE_NOMINAL最大帧长度THEADER_MAX=1.4*THEADER_NOMINALTRESPONSE_MAX=1.4*TRESPONSE_NOMINALTFRAME_MAX=THEADER_MAX+TRESPONSE_MAX协议规范协议规范帧类型(FrameType)事件触发帧零星帧保留帧诊断帧自定义帧无条件帧协议规范无条件帧(UnconditionalFrame)标识符(ID)为0到59(0x3b)标准LIN帧类型,用于周期通信主任务发出报头,相应的从任务对报头提供响应帧。所有节点接收三种情况协议规范事件触发帧(EventTriggeredFrame)(1/2)目的:增强了LIN总线的响应能力,避免为了很少发生的事件,而对从节点进行轮询,从而浪费了大量的带宽传输一个或多个无条件帧的数据场,标识符:0~59(0x3B)事件触发帧必须有一个独立的ID,该ID与多个无条件帧的ID相关联这些无条件帧必须满足以下条件:有相同的长度;相同的校验和模型;首个数据字节不带信号在事件触发帧时隙内发送帧头,只有当相关联的无条件帧内有信号被更新时,相关联的无条件帧的生产者才发送帧响应帧响应的第一个数据字节等于PID,即响应最多可以传输7个字节的数据帧响应可由多个节点发送,当有多个节点在同一帧时隙内响应报头时会发生冲突,发生冲突时切换到“冲突解决调度表”,之后再切换回到原来的调度表协议规范事件触发帧(EventTriggeredFrame)(2/2)假设与事件触发帧0x10相关联的两个普通帧…如果只有一个节点响应事件触发帧的报头…如果同时有多个节点响应事件触发帧的报头…总线产生冲突切换调度表,进行轮询…协议规范零星帧/偶发帧(SporadicFrame)一个或多个无条件帧共享一个帧时隙只发送信号报文,标识符:0~59(0x3b)当且仅当其中的某个无条件帧有信号被更新时,主节点才发送该帧的帧头。其发布者对帧头发送响应若有多个无条件帧在同一时刻有信号被更新,则主节点根据这些无条件帧的优先级裁定发送顺序若没有无条件帧需要发送,则时隙保持空白诊断帧用来传输诊断或配置信息,包含8个字节数据。标识符60(0x3c):主请求帧;(首个数据字节标明具体的从节点),也用于 “Go-toSleep”指令61(0x3d):从响应帧传输方式:协议规范诊断帧(DiagnosticFrame)0x3CSyncBreak诊断服务0x3DSyncBreak根据诊断服务的响应主节点从节点协议规范保留帧(ReservedFrame)用户自定义帧(User-definedframe)标识符:62(0x3e)可以传输任何信息(由用户自定义)保留帧(Reservedframe)标识符:63(0x3f)在LIN2.1中未对保留帧进行定义协议规范调度表(ScheduleTable)调度表可以保证总线永远不会过载,同时还可以保证信号的周期性。LIN总线最小时间单位是时基(Tbase)。调度表中用来发送一帧报文的时间称为帧时隙(Frame_Slot),帧时隙必须是时基的整数倍,调度表是由帧时隙组成的。TFrame_Slot=Tbase*n偏移(jitter)是指一帧报文实际开始发送的时刻与帧时隙起点的时间差。TFrame_Slot>jitter+TFrame_Maximum协议规范任务行为模型(TaskBehaviorModel)(1/2)主任务行为模型协议规范任务行为模型(TaskBehaviorModel)(2/2)从任务行为模型协议规范网络管理(NetworkManagement)初始化睡眠模式工作模式初始化结束(<100ms)接收到睡眠命令或总线空闲4~10s接收到唤醒信号或内部唤醒请求Reset/Wakeup从节点状态转换表协议规范睡眠(GoToSleep)主节点可以发送一帧ID为60(0x3c),第一个字节为0x00其余全为0xFF的主请求帧来使处于工作状态的从节点进入睡眠。这帧报文称为睡眠指令。从节点在接到睡眠指令之后,也可以选择不进入睡眠状态而继续工作,这根据应用层程序而定。当总线空闲4到10秒的时候,所有从节点自动进入睡眠状态。

注:空闲的定义是没有显性位和隐性位之间的转换。LIN1.x版本,从节点必须等25,000个位时间协议规范唤醒(WakeUp)(1/2)在一个处于睡眠状态的LIN网络中,任何一个节点都可以发送唤醒信号唤醒信号是一个250us(在20Kbit/s波特率)到5ms(在1Kbit/s波特率)的显性电平(5个位)每一个从节点都需要检测唤醒信号

当检测到唤醒信号之后,在100ms以内完成初始化工作当从节点发出唤醒信号之后150ms,主节点仍未发送报头时,从节点可以再次发送唤醒信号。当连续发送了3次唤醒信号之后如果主节点仍未发送报头,从节点要至少等待1.5秒以后才可以发送第四次唤醒信号网络管理——唤醒唤醒过程

250us~5ms150ms~250ms123>1.5s协议规范状态管理(StatusManagement)状态管理的目的是用来发现工作状态中总线上产生的错误responseerrorInterpretation每一个从节点必须通过状态管理帧发送responseerror信号(一个位长),当在响应帧中检测到错误时,这个信号由从节点的驱动器自动设定,发送完状态管理帧之后又将该位清除。主节点接收状态信息位并识别从节点状态

:大纲概述协议规范物理层规范传输层规范节点配置和标识规范诊断规范应用程序层规范节点能力语言规范配置语言规范物理层规范PhysicalLayerSpecification物理层规范位速率容差(BitRateTolerance)节点类型符号ΔF/FNOM主节点FTOL_RES_MASTER<±0.5%不使用同步场同步的从节点FTOL_RES_SLAVE<±1.5%使用同步场同步的从节点(在同步之前)FTOL_UNSYNC<±14%相对于标称位速率相对于主节点位速率节点类型符号ΔF/FMASTER同步后从节点FTOL_SYNC<±2%物理层规范位定时(BitTiming)所有从节点的位定时必须以主节点的位定时为参考同步过程

TBIT=(T1-T0)/8T0T1物理层规范位采样定时(BitSampleTiming)EBS=Earlybitsample(前采样)LBS=Lastestbitsample

(后采样)tEBS=7/16TBIT

tLBS=10/16TBIT–tBFStBFS=1/16TBIT采样点在EBS和LBS之间物理层规范总线收发器(LineDriver/Reciever)Tx通过集电极开路电路连到总线,Rx与总线之间有施密特触发器收发器内部有30K上拉电阻,如果作为主节点使用,必须外接1K上拉电阻上拉电阻与电源之间有二极管保护,防止在电源掉电的情况下总线电平被拉低物理层规范信号规范(SignalSpecification)VBAT:8~18VVSUP=VBAT-Vdiode显性位(dominant)逻辑0发送:总线电平<20%VSUP接收:总线电平<40%VSUP隐性位(recessive)逻辑1发送:总线电平>80%VSUP接收:总线电平>60%VSUP20%80%物理层规范总线特性(LineCharacteristics)(1/2)物理层规范总线特性(LineCharacteristics)(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

物理层规范容错性能(PerformanceDuringFaultModes)电源或地线断路单个节点电源或地线断路,不影响剩余网络通信排除故障后,节点可重新参与网络通信总线与电源或地线短路总线通信可能无法进行,但ECU不可被损坏排除故障后,总线恢复正常通信大纲概述协议规范物理层规范传输层规范节点配置和标识规范诊断规范应用程序层规范节点能力语言规范配置语言规范传输层规范TransportLayerSpecification传输层规范概述(Overview)传输层应用对象诊断报文传输层功能传输层位于应用层与数据链路层之间,完成应用层的报文与数据链路层的帧之间的相互转换。实现超过8个字节的数据传输,最多可达到4095个字节传输传输层规范PDU——打包数据单元(PacketDataUnit)一个PDU可以是一个完整的报文,也可以是一个完整报文的一部分,由多个PDU来组成一个完整的报文。请求:从客户端(如测试仪,主节点)发出的报文响应:从服务器端(如主节点,从节点)发出的报文PDU结构(PDUStucture)(1/2)传输层规范PDU类型单帧(SF):只用一个PDU传输报文首帧(FF):多PDU传输时,被发送的首个PDU后续帧(CF):多PDU传输时,在首PDU发送后,紧接着发送的PDUPDU结构(PDUStucture)(2/2)Byte0Byte1Byte2Byte3Byte4Byte5Byte6Byte7NADPCISIDD1D2D3D4D5SFNADPCILENSIDD1D2D3D4FFNADPCID1D2D3D4D5D6CFNADPCIRSIDD1D2D3D4D5SFNADPCILENRSIDD1D2D3D4FF请求响应传输层规范NAD(NodeAddress)NAD——从节点地址(NodeAddress)睡眠指令:0物理地址:0x01~0x7D访问一个特定节点功能地址:0x7E访问所有从节点(只在诊断报文中使用)从节点不允许响应(不允许用在节点配置)广播地址:0x7F访问所有从节点(广播发送)从节点不响应(推荐)用户自定义:0x80~0xFFNADByte1Byte2Byte3Byte4Byte5Byte6Byte7传输层规范PCI——协议控制信息(ProtocolControlInformation)PCI包含PDU的类型、编号和报文的有效数据长度等信息包编号:在多个PDU组成的报文中,在每个连续帧CF中必须加入包编号,第一个CF的包编号是1,第二个CF的包编号是2……以此类推,如果包编号超过15则重新从0开始计数PCI(ProtocolControlInformation)PCI类型信息附加信息B7B6B5B4B3B2B1B0SF0000有效数据长度FF0001有效数据长度高4位CF0010包编号NADPCIByte2Byte3Byte4Byte5Byte6Byte7传输层规范LEN(Length)LEN——帧长度(Length)只存在于多PDU报文的第一帧中(FF中)表示报文的有效数据长度的低8位,有效数据长度的高4位在PCI的低4位中由于要发送SID和RSID,所以有效数据长度=数据总长度+1Byte0Byte1LENByte3Byte4Byte5Byte6Byte7FF传输层规范SID和RSID(ServiceID&ResponseServiceID)SID(ServiceIdentifier)服务标识符,在请求帧中发送0-0xAF和0xB8-0xFE表示诊断,0xB0-0xB7表示节点配置RSID(ResponseServiceIdentifier)对应于SID的响应服务标识符,在响应帧中发送RSID=SID+0x40

传输层规范单帧传输(SingalFrameTransmission)单帧传输有效数据长度少于六个字节(包括SID)功能寻址(0x7E)只能用单帧传输0x3C诊断设备主节点请求发送数据SF0x3C0x3D接收数据诊断设备主节点从节点请求响应SFSF从节点传输层规范多帧传输(MultipleFrameTransmission)多帧传输7~4095字节(包括SID)起始于FF,后续多条CF0x3C0x3C诊断工具主节点FF发送数据FFCF0x3CCFFCCFCF接收数据0x3C0x3D诊断工具主节点请求FFFFFC0x3DCFCF…………从节点从节点传输层规范时间限制(TimingContraint)(1/2)N_AsN_Cs开始发送发送成功发送成功确认请求发送诊断帧(FF或CF)请求发送下一诊断帧(CF)传输层t收发器t总线t发送时间限制N_As最大超时1000ms传输层规范时间限制(TimingContraint)(2/2)接收时间限制N_Cr最大超时1000ms(N_Cs+N_As)<(0.9*N_Crtimeout)N_Cr接收诊断帧诊断帧接收指示(FF或CF)传输层收发器总线ttt接收诊断帧(CF)诊断帧接收指示传输层规范Length_SF>6忽略该报文Length_FF<7忽略该报文Length_FF>BufferSize中止接收报文节点处于发送状态,接收到SF或FF(NAD≠0x7E)中止发送报文,开始接收新报文CF编号错误放弃之前所接收的CF与FFAs时间超时中止发送报文Cr时间超时放弃所接收的报文错误处理(FaultHandling)大纲概述协议规范物理层规范传输层规范节点配置和标识规范诊断规范应用程序层规范节点能力语言规范配置语言规范节点配置和标识规范NodeconfigurationandIdentificationSpecification节点配置和标识规范介绍(Introduction)目的避免网络NAD或PID冲突网络引入新节点可能导致NAD或ProductID冲突配置内容NADProductID服务标识符(SID)0xB0~0xB7节点配置只能用单帧通信

节点配置和标识规范LIN产品标识(LINProductionIdentification)标识了节点的供应商和功能类似于条形码供应商ID是一个16位的数字,最高位是0,由LIN协会规定功能ID是一个16位的数字,由各供应商规定变量ID是一个8位的数字,用于区分同网络中相同功能的节点PID保存在各节点的ROM中,不进行更改序列号(SerialNumber)变量ID功能ID高字节功能ID低字节供应商ID高字节供应商ID低字节D5D4D3D2D1高字节……低字节D4D3D2D1节点配置和标识规范通配符(Wildcards)属性通配符NAD0x7F供应商ID0x7FFF功能ID0xFFFFNAD的通配符0x7F用来访问所有节点的地址供应商ID和功能ID可以代表所有未定义的供应商与功能节点配置和标识规范与配置相关的服务(ServiceAssociatedwithConfiguration)服务标识符(SID)

0xB0~0xB7节点配置只能用单帧通信服务服务0~0xAFReserved0xB0AssignNAD0xB1Assignframeidentifier0xB2ReadbyIdentifier(根据标识进行读取服务)0xB3ConditionalChangeNAD0xB4DataDump(数据转存)0xB5AssignNADviaSNPD0xB6SaveConfiguration(保存配置)0xB7Assignframeidentifierrange0xB8~0xFFReserved节点配置和标识规范分配NAD服务(AssignNAD)NAD列表初始NAD值NAD设置值初始化选择网络分配分配从节点NAD服务(AssignNAD,0xB0)网络分配NAD实例主节点首先发送0xB0服务主请求帧(0x3C)主节点然后发送从请求帧(0x3D),如从节点修改NAD成功,从节点发送响应新NAD功能ID高字节功能ID低字节供应商ID高字节供应商ID低字节0xB00x06初始NADD5D4D3D2D1SIDPCINAD0x3C0xFF0xFF0xFF0xFF0xFF0xF00x01初始NADD5D4D3D2D1RSIDPCINAD0x3D节点配置和标识规范根据条件改变NAD服务(ConditionalChangeNAD)(1/2)根据条件改变NAD服务

(ConditionalChangeNAD,0xB3)主节点首先发送0xB3服务主请求帧(0x3C)从节点收到请求后分4步走:1.提取BYTE位对应产品标识中的字节2.将该字节与INVERT中的字节逐位异或3.将异或的结果与MASK中的字节逐位与4.如果最后的结果是0,就将NAD改变为新NAD然后发送从请求帧(0x3D),如有从节点满足条件并修改成功,则发送响应新NADINVERTMASKBYTEid0xB30x06初始NADD5D4D3D2D1SIDPCINAD0x3C0xFF0xFF0xFF0xFF0xFF0xF30x01新NADD5D4D3D2D1RSIDPCINAD0x3D节点配置和标识规范根据条件改变NAD服务(ConditionalChangeNAD)(2/2)主节点从节点BYTE[N]根据条件改变NAD服务MASKINVERT≠0根据条件改变NAD服务实例假设网络中有2个未知NAD的节点,主节点只知道它们的功能ID

需要根据他们的功能ID给他们分配新的NAD

现在决定给功能ID的BIT0为1的节点分配NAD为1, 给BIT1为1的节点分配NAD为2

以下两条服务可以实现该功能:

新NAD发送响应0x010xFF0x010x030x010xB30x060x7FD5D4D3D2D1SIDPCINAD0x3C0x020xFF0x020x030x010xB30x060x7F0x3C节点配置和标识规范保存配置服务(SaveConfiguration)保存设置服务

(SaveConfiguration,0xB6)主节点首先发送0xB6服务主请求帧(0x3C)从节点将当前配置保存入FLASH中,并响应从请求帧(0x3D)0xFF0xFF0xFF0xFF0xFF0xB60x01NADD5D4D3D2D1SIDPCINAD0x3C0xFF0xFF0xFF0xFF0xFF0xF60x01NADD5D4D3D2D1RSIDPCINAD0x3D主节点从节点保存配置服务发送响应保存配置节点配置和标识规范设置帧ID服务(AssignFrameID)设置帧ID服务

(AssignFrameID,0xB1)(LIN2.0)主节点首先发送0xB1服务主请求帧(0x3C)从节点将messageID更改为PID,并响应从请求帧(0x3D)主节点从节点设置帧ID服务发送响应MessageIDPIDPIDMessageID高字节MessageID低字节供应商ID高字节供应商ID低字节0xB10x06NADD5D4D3D2D1SIDPCINAD0x3C0xFF0xFF0xFF0xFF0xFF0xF10x06NADD5D4D3D2D1RSIDPCINAD0x3D读取服务

(ReadbyIdentifier,0xB2)主节点首先发送0xB6服务主请求帧(0x3C)从节点根据id发送响应数据,并响应从请求帧(0x3D)如果无法读取,则发送否定响应节点配置和标识规范LIN节点模型读取服务(ReadbyIdentifier)(1/2)主节点从节点

读取服务发送响应功能ID高字节功能ID低字节供应商ID高字节供应商ID低字节identifier0xB20x06NADD5D4D3D2D1SIDPCINAD0x3C0xFF0xFF0xFFErrorCode0x12SID0xB20x7F0x03NADD5D4D3D2D1RSIDPCINAD0x3D不同identifer对应不同含义,响应形式也不同节点配置和标识规范0xFF序列号高字节……序列号低字节0xF20x06NADD5D4D3D2D1RSIDPCINAD0x3D变量ID功能ID高字节功能ID低字节供应商ID高字节供应商ID低字节0xF20x06NADD5D4D3D2D1RSIDPCINAD0x3D读取服务(ReadbyIdentifier)(2/2)大纲概述协议规范物理层规范传输层规范节点配置和标识规范诊断规范配置语言规范诊断规范DiagnosticSpecification诊断规范RequestResponse诊断设备诊断标准网络节点诊断标准故障信息什么是诊断?诊断定义诊断设备直接连接到LIN总线是否可行?结论:诊断报文与LIN调度表的报文产生冲突,不可行诊断规范诊断方式(1/2)LIN诊断设备主节点从节点从节点LINLINLINLIN诊断规范诊断方式(2/2)诊断设备CANCANLINLINLIN从节点从节点主节点LIN诊断必须依然由主节点来调度诊断规范两种诊断方式(DiagnosticMethods)(1/2)第一种方式:诊断设备连接到主干网主节点作为网关从节点存储故障代码(DTC)主节点转发请求与响应适用于所有诊断服务主干网(back-bone,如CAN)LIN诊断设备主节点从节点从节点LINLINLINCANCAN(网关)ReqCReqLResLResC故障代码故障代码诊断规范两种诊断方式(DiagnosticMethods)(2/2)第二种方式:从节点将故障信号发送到主节点(基于信号)主节点将各故障信号处理、存储为故障代码(DTC)诊断设备请求故障代码主节点发送故障代码主干网(back-bone,如CAN)LIN诊断设备主节点从节点从节点LINLINLINCANCAN(网关)ReqCResC故障信号故障信号故障代码诊断规范诊断级别(DiagnosticClass)(1/3)从节点根据自身的特点和需要,诊断功能分为3个级别诊断级别1从节点主要由简单元件组成(如传感器等),故障都由主节点来读取、分析处理和保存只支持Unsegmented诊断诊断服务仅限于节点配置诊断规范诊断级别2和诊断级别1的节点类似,故障同样由主节点来读取、分析处理和保存支持Unsegmented诊断和Segmented诊断必须要支持ISO14229-1[5]诊断服务必须支持节点标识符服务诊断级别(DiagnosticClass)(2/3)诊断规范诊断级别3诊断级别3的节点是具有较强应用功能的节点,除了基本的节点配置服务以外,还支持ISO14229-1的其他诊断服务诊断级别3的节点具有内部故障存储设备,有些还支持在线刷写,需要完整的boot-loader工具和相应的诊断服务去实现支持Unsegmented诊断和Segmented诊断必须要支持ISO14229-1[5]诊断服务具有内部故障存储ECU程序支持Flash在线刷写诊断级别(DiagnosticClass)(3/3)诊断规范诊断级别总结(SummaryofDiagnosticClass)(1/2)诊断级别123UDS服务号

[HEX]传输协议层需求仅单帧传输+

完整传输协议(包括多帧)

++

需要的配置服务Assignframeidentifierrange+++0xB7Readbyidentifier+++0xB2AssignNAD可选可选+0xB0ConditionalchangeNAD可选可选可选0xB3Positiveresponseon

supportedconfigurationservices+++service+

0x40诊断规范诊断级别总结(SummaryofDiagnosticClass)(2/2)诊断级别123UDS服务号

[HEX]需要的UDS服务Readdatabyidentifier

0x22hardwareandsoftwareversion

++0x22hardwarepartnumber(OEMspecific)

++0x22diagnosticversion

++0x22Readbyidentifier(parameters)

++0x22Writebyidentifier(parameters)

如果适用如果适用0x2EReadbyidentifier

(sensorandactuatordata)

+0x22I/Ocontrolbyidentifier

+0x2FReadandclearDTC(faultmemory)

+0x19,0x14Routinecontrol

如果适用0x31Otherdiagnosticservices

如果适用…Flash刷写服务Flashprogrammingservices

可选/诊断规范主请求调度表单时隙——只有主请求帧从响应调度表单时隙——只有从响应帧诊断调度表(DiagnosticSchedule)BreakSync0x3C包含诊断服务BreakSync0x3D包含诊断服务响应诊断规范0x3C诊断设备主节点请求诊断调度模式(DiagnosticScheduleModes)0x3D0x3D0x3D响应诊断调度模式两种诊断调度模式交叉诊断模式纯诊断模式masterslave从节点诊断规范交叉诊断模式(DiagnosticsInterleavedMode)交叉诊断模式默认模式不终止常规通信常规通信报文1诊断请求报文(0x3C)常规通信报文2诊断响应报文(0x3D)常规通信报文3……诊断规范纯诊断模式(DiagnosticsOnlyMode)纯诊断模式可选模式终止常规通信诊断请求报文(0x3C)诊断响应报文(0x3D)……诊断请求报文(0x3C)诊断响应报文(0x3D)诊断请求报文(0x3C)……诊断请求报文(0x3C)诊断请求报文(0x3C)诊断请求报文(0x3C)诊断请求报文(0x3C)诊断响应报文(0x3D)……诊断响应报文(0x3D)诊断响应报文(0x3D)单帧传输多帧传输(数据来自主节点)多帧传输(数据来自从节点)诊断规范从节点诊断时间限制(SlaveDiagnosticTimingRequirements)STmin

从节点响应两条诊断帧之间的最小时间P2

从节点从接到主请求帧到发送从响应帧的响应部分之间的最短时间

50ms<P2<500msP2>STmin大纲概述协议规范物理层规范传输层规范节点配置和标识规范诊断规范配置语言规范配置语言规范LDFLINDescriptionFile配置语言规范LDF在LIN开发流程中(LDFinLINWorkflow)数据库是什么?配置语言规范LIN数据库构成(CompositionofLINdatabase)需要在数据库中定义些什么?数据库调度表版本信息信号帧信号诊断帧节点属性信号类型发送周期帧类型诊断信号诊断信号配置语言规范LIN描述文件定义(LINDescriptionFileDefinition)LIN描述文件定义全局定义节点定义参与节点定义节点属性定义节点构成定义信号定义帧定义调度表定义附加信息信号编码类型信号表示类型配置语言规范创建自己的数据库Justdoit!配置语言规范我的第一个数据库(Myfirstdatabase)LIN_description_file;LIN_protocol_version="2.0";LIN_language_version="2.0";LIN_speed=9.6kbps;Nodes{ Master:Mymaster,10ms,0ms; Slaves:Myslave;}Signals{ My_first_signal:1,0,Mymaster,Myslave;}Frames{ Myframe:1,Mymaster,1{ My_first_signal,0; }}Schedule_tables{ Myscheduletable{ Myframedelay20ms; }}LIN协议版本号LIN配置语言版本号LIN总线速率 节点定义主节点,时基,抖动从节点 信号定义信号:长度,初始值, 发送节点,接受节点 帧定义帧:ID,发送节点,长度信号列表,起始位

调度表定义调度表帧列表,时隙长度配置语言规范验证(Vertify)在CANoe中验证

Great,ISeeit!配置语言规范进阶(Advance)尝试着给数据库增加新元素第一步,建立一个更复杂的系统Nodes{ Master:Mymaster,10ms,0ms; Slaves:Myslave1,Myslave2;}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,Mymaster; My_signal5:2,0,Myslave2,Mymaster;}Frames{ Myframe1:11,Mymaster,2{ My_signal1,0; My_signal2,1; } Myframe2:12,Mymaster,1{ My_signal3,0; } Myframe3:13,Myslave1,1{ My_signal4,3; } Myframe4:14,Myslave2,1{ My_signal5,2; }}Schedule_tables{ Myscheduletable{ Myframe1delay20ms; Myframe2delay20ms; Myframe3delay20ms; Myframe4delay20ms; }}现在我们的数据库有了:1个主节点,2个从节点5个信号4个帧1个4时隙的调度表配置语言规范验证(Vertify)在CANoe中验证

Itbecomesbetter!配置语言规范事件触发帧和零星帧(ETF&Sporadicframe)为数据库来点调味料!增加事件触发帧和零星帧Sporadic_frames{MySporadicFrame:Myframe1,Myframe2;} //将Myframe1和Myframe2关联成零星帧,注意!它们必须//都由Master发送Schedule_tables{NormalTable{

MySporadicFramedelay20ms;} //在调度表中放入零星帧即可!Event_triggered_frames{ETF_Myframes:ETFCollisionResolving,58,Myframe3,Myframe4;} //将Myframe3和Myframe4关联成事件触发帧ETF_MyframesSchedule_tables{NormalTable{ ETF_Myframesdelay20ms;} //在调度表中只需放入ETF_Myframes即可!

ETFCollisionResolving{Myframe3delay20ms;Myframe4delay20ms;} //万一发生冲突了,就执行这个解决ETF冲突调度表!!} 数据库中有形有色!配置语言规范验证(Vertify)思考在Trace窗口中为什么出现错误?为什么没有零星帧?配置语言规范诊断(Diagnostic)(1/3)上帝说:“要有诊断” 于是就有了诊断!给数据库添加诊断功能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;}Diagnostic_frames{MasterReq:0x3c{MasterReqB0,0;MasterReqB1,8;MasterReqB2,16;MasterReqB3,24;MasterReqB4,32;MasterReqB5,40;MasterReqB6,48;MasterReqB7,56;}SlaveResp:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论