一、基本概念1、LIN协议的分层结构:2、信息的传送(报文帧)LIN报文帧LIN报文帧3、信息传送方式(信息路由)LIN网络中的数据交换方式有以下3种方式:(1)数据由主机到从机通信:(2)数据由从机到主机通信;(3)数据由从机到从机通信。4、位传输速度受单线传输介质电磁干扰(EMI)的限制,LIN最大位流传输速度为29Kbps;另一方面,为了避免与实际系统定时溢出时间发生冲突,最小位流传输速度限定为1Kbps。实际应用系统中,建议使用下面的位速率:低速中速高速2400bit/s9600bit/s19200bit/s5、故障检测位错误校验和错误标识符奇偶校验从机不响应错误同步场不一致错误没有总线活动6、故障界定主节点控制单元主节点的主任务发送:主节点的从任务发送。从节点控制单元从任务发送:从任务接收。7、连接总线LIN网络节点的最大数量不仅由标识符的数量限制(见上面的信息路由)也由总线的物理特性限制。建议LIN网络的节点数量不应超过16。否则,网络阻抗降低,在最坏工作情况下会发生通信故障。每增加一个额外的节点大约降低3%的网络阻抗(30kΩ||~1kΩ)。网络中积累的“电”线长度应少于或等于40m。主机节点的总线端电阻典型值是1kΩ,从机节点是30kΩ。VBATSCIGNDECULIN总线逻辑值位值总线电压显性0地隐性1电池8、休眠方式与唤醒为了降低系统的功耗,LIN系统支持没有任何内部活动而且总线驱动器无源的休眠模式。当主节点向网络上发送一个休眠命令时,所有节点进入休眠状态,直到被唤醒之前总线上不会有任何活动。当总线上出现任何活动或节点出现任何内部活动时,节点结束休眠状态。从节点唤醒时,输出一个唤醒信号唤醒主节点,主节点开始初始化内部活动,从节点要等到同步信号后才参与总线通信活动。二、信息格式与信息传送1、信息格式一个LIN信息帧包括两部分:头信息/帧头:由主任务发送到从任务的同步和标示符信息响应/应答:由一个从任务发送到所有其他从任务的数据信息一个LIN信息帧有同步间隔、同步域、标示符域(受保护ID域)、数据域、校验码域以及响应间隔构成。除起始域与响应间隔,其他部分都是以字节为单位传送,每个字节都有自己的格式,称之为字节域(ByteField)。字节之间有字节间隔(InterByteSpace),在头信息和响应之间有一个响应间隔(ResponseSpace)。这两个间隔的最小值为0。2、头信息LIN网络中,每个信息的传送都是以主节点发送头信息开始的。头信息包括同步间隔域、同步域以及PID(ProtectedIdentifier,受保护ID)域。①同步间隔域(BreakField)同步间隔域由同步间隔(Break)和同步间隔域间隔符(BreakDelimiter)构成。②同步域(SyncByteField)字节域(ByteField):1位起始位(StartBit,显性)+8位数据位+1位停止位(StopBit,隐性),是一种标准UART数据传输格式。从机节点可以不采用精度高的时钟,而采用片上振荡器等精度和成本相对较低的时钟,由此带来的与主机节点时钟产生的偏差,需要通过同步域进行调整,调整的结果是使从机节点数据的位速率与主机节点一致。同步段用于同步的基准时钟为主机节点的时钟。从机节点通过接收主机节点发出的同步段,计算出主机节点位速率,根据计算结果对自身的位速率重新作调整。③受保护ID域(ProtectedIdentifierField)受保护ID段的前6位叫作帧ID(FrameID),加上两个奇偶校验位后称作受保护ID。帧ID的范围在0x00~0x3F之间,共64个。帧ID标识了帧的类别。从机任务对于帧头作出的反应(接收/发送/忽略应答部分)都是依据帧ID判断的。如果帧ID传输错误,将会导致信号无法正确到达目的地。因此引入奇偶校验位。其中ID6是ID0、ID1、ID2、ID4的奇校验,ID7是ID1、ID3、ID4、ID5的偶校验。校验公式如下,其中“⊕”代表“异或”运算,“¬”代表“取非”运算。P0=ID0⊕ID1⊕ID2⊕ID4P1=¬(ID1⊕ID3⊕ID4⊕ID5)由公式可以看出,PID不会出现全0或全1的情况,因此,如果从机节点收到了“0xFF”或“0x00”,可判断为传输错误。3、响应域LIN协议中,一帧信息的响应域由数据域和校验码域两部分构成。数据域长度(字节数)由标示符域的ID4、ID5决定。①数据域(DataField)节点发送的数据位于数据段,包含1到8个字节。数据段包含了两种数据类型:信号(Signal)和诊断消息(Diagnosticmessages)。信号(Signal)由信号携带帧传递,一个帧ID对应的数据段可能包含一个或多个信号。信号更新时要保证其完整性,不能只更新一部分。一个信号通常由一个固定的节点发出,此节点称为该信号的发布节点(Publisher);其余的一个或多个节点接收,它们称为信号的收听节点(Subscriber)。诊断消息(Diagnosticmessage)由诊断帧传递,对消息内容的解析由数据自身和节点状态决定。帧的类型①无条件帧(UnconditionalFrame)②事件触发帧(EventTriggeredFrame)③偶发帧(SporadicFrame)④诊断帧(DiagnosticFrame)⑤保留帧(ReservedFrame)①无条件帧(UnconditionalFrame)无条件帧是具有单一发布节点,无论信号是否发生变化,帧头都被无条件应答的帧。无条件帧在主机任务分配给它的固定的帧时隙中传输。总线上一旦有帧头发送出去,必须有从机任务作应答(即无条件发送应答)。①无条件帧(UnconditionalFrame)②事件触发帧(EventTriggeredFrame)事件触发帧是主机节点在一个帧时隙中查询各从机节点的信号是否发生变化时使用的帧,当存在多个发布节点时,通过冲突解决进度表来解决冲突。原先用作轮询的无条件帧,称为与该事件触发帧关联的无条件帧,即事件触发帧的应答部分是与其关联的无条件帧所提供的应答。当发生冲突时,需要立刻中断当前的进度表,启动冲突解决进度表(CollisionResolvingSchedule),重新调用这些关联的无条件帧。其中,冲突解决进度表要求包含所有关联的无条件帧。②事件触发帧(EventTriggeredFrame)②事件触发帧(EventTriggeredFrame)与事件触发帧关联的多个无条件帧需要满足以下5个条件:数据段包含的数据字节数等长;使用相同的校验和类型;数据段的第一个字节为该无条件帧的受保护ID,这样才能够知道应答是哪个关联的无条件帧发送出来的;由不同的从机节点发布;不能与事件触发帧处于同一个进度表中。③偶发帧(SporadicFrame)偶发帧是主机节点在同一帧时隙中当自身信号发生变化时向总线启动发送的帧。当存在多个关联的应答信号变化时,通过事先设定的优先级来仲裁。③偶发帧(SporadicFrame)④诊断帧(DiagnosticFrame)诊断帧包括主机请求帧和从机应答帧,主要用于配置、识别和诊断用。主机请求帧(MasterRequestFrame,MRF),帧ID=0x3C,应答部分的发布节点为主机节点;从机应答帧(SlaveResponseFrame,SRF),帧ID=0x3D,应答部分的发布节点为从机节点。数据段规定为8个字节,一律采用标准型校验和。⑤保留帧(ReservedFrame)保留帧的帧ID为0x3E和0x3F,为将来扩展用。②校验码域(ChecksumField)校验码域是对帧中所传输的内容进行校验。校验和分为标准型校验和(ClassicChecksum)及增强型校验和(EnhancedChecksum),采用标准型校验和还是增强型校验和由主机节点管理,发布节点和各收听节点根据帧ID来判断采用哪种校验和。校验方法为将校验对象的各字节作带进位二进制加法(每当结果大于等于256时就减去255),并将所得最终的和逐位取反,以该结果作为要发送的校验和。接收方根据校验和类型,对接收数据作相同的带进位二进制加法,最终的和不取反,并将该和与接收到的校验和作加法,如果结果为0xFF,则校验和无误。这在一定程度上保证了数据传输的正确性。例:采用标准型校验和,Data1=0x4A,Data2=0x55,Data3=0x93,Data4=0xE54、报文帧的长度和总线睡眠检测TFrame_Maximum:帧在总线上传输的最大时间;THeader_Maximum:帧头在总线上传输的最大时间;TResponse_Maximum:应答在总线上传输的最大时间;THeader_Nominal:帧头额定传输时间:同步间隔段(包含同步间隔和同步间隔段间隔符)的最小传输时间+同步段传输时间+受保护ID段传输时间;THeader_Rest:帧头的余量:包含字节间间隔,规定为帧头额定传输时间的0.4倍;TResponse_Nominal:应答额定传输时间:数据段传输时间+校验和段传输时间;TResponse_Rest:应答的余量:包含应答间隔以及字节间间隔,规定为应答额定传输时间的0.4倍;Ndata表示数据段包含N个字节。THeader_Rest:帧头的余量:包含字节间间隔,规定为帧头额定传输时间的0.4倍;TResponse_Nominal:应答额定传输时间:数据段传输时间+校验和段传输时间;TResponse_Rest:应答的余量:包含应答间隔以及字节间间隔,规定为应答额定传输时间的0.4倍;Ndata表示数据段包含N个字节。帧在总线上的传输波形5、进度表进度表是帧的调度表,规定总线上帧的传输次序以及各帧在总线上的传输时间。进度表位于主机节点,主机任务根据应用层需要进行调度。这样保证了总线信号的周期性,也能保证总线永远不会发生过载。6、状态机(StateMachine)实现①主机任务的状态机当进度表启动后,主机任务依次发送同步间隔段、同步段和受保护ID段。②从机任务的状态机从机任务负责发布或者接听帧的应答。包括两个状态机:1.同步间隔段和同步段检查器2.帧处理器②从机任务的状态机7、振荡器容差当在LIN的时钟发生器中使用内部校准时,可以让频率的容差做到比±15%精度更高。这个频率容差的精度能保证在报文流中能检测到同步间隔。同时,使用同步场的精细校准能保证接收报文和发送报文的正确性。在考虑到操作中的电压漂移和温度等因素对振荡器频率的影响的情况下,片振荡器就必须考虑到位速率产生以及测量的精确性。三、LIN与CAN的比较三、LIN与CAN的比较