《第6章-本地互联网络-朱嘉炜教学课件.ppt》由会员分享,可在线阅读,更多相关《第6章-本地互联网络-朱嘉炜教学课件.ppt(51页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第6章章-本地互联网络本地互联网络-朱嘉炜朱嘉炜信息与控制工程研究所 朱嘉炜朱嘉炜第第6章章 本地互联网络本地互联网络1.3 当多路传输功能很简单的时候,CAN总线的费用仍然偏高,而且其操作过程也过于复杂。例如在空调控制、音响控制、等应用中,CAN网络仍然没有表现出很好的经济效益。因此,汽车行业提出用本地互连网络(简称LIN总线)作为CAN总线的补充,以降低工业电子产品的成本,但LIN并未取代CAN。LIN总线采用了主从结构,只有主系统拥有发言权,网络传输内容只有两项:命令从系统;反馈从系统的状态。46.1 LIN的形成及其主要特征的形成及其主要特征6.1.1引入引入LIN前后的多路传输结构
2、前后的多路传输结构 引入LIN总线前,通常采用图图6-1所示的多路传输结构,这时就难以体现出总线网络所带来的优越性。引入LIN总线后,原来CAN网络中的次级连接将被LIN总线取代,也就是说,ECU与传感器/执行器之间可以通过建立二级网络来实现它们之间的信号传输,如图6-2所示。56.1 LIN的形成及其主要特征的形成及其主要特征6.1.2 LIN总线的体系结构总线的体系结构LIN总线体系结构与OSI参考模型的对应关系如图6-3所示。物理层不仅定义了信号如何在总线媒体上传输,而且定义了总线收发器特性。数据链路层包括两个子层:媒体访问控制(MAC)和逻辑链路控制(LLC)。66.1 LIN的形成及
3、其主要特征的形成及其主要特征 LIN规范追求的目标是,用较低的成本和位速率(最高20kbit/s)完成机械电子模块的高质量联网。LIN 2.1规范包由以下8个规范组成:物理层规范。描述了LIN总线的物理层,其中包括位速率、时钟容差等。协议规范。描述了LIN总线的数据链路层。传输层规范。描述了较长数据(最长可达4095个字节)的传输方法。该规范通常用于节点配置、识别和诊断。节点配置和识别规范。定义了从节点的配置和识别方法。诊断规范。描述了从节点所支持的诊断服务类型。诊断服务使用了传输层。应用程序接口规范。描述了网络和应用程序之间的接口,其中包括节点的配置、识别和传输层接口。配置语言规范。介绍了“
4、LIN描述文件(LIN Description File,LDF)”的格式。LDF用于完整网络的配置,一般作为OEM与网络节点供应商之间的通用接口,以及开发和分析工具的输入。节点能力语言规范。介绍了从节点能力的描述格式。节点能力文件与LIN簇设计工具一起使用,可以自动创建LDF。6.1.3 LIN规范的文件规范的文件 76.1 LIN的形成及其主要特征的形成及其主要特征LIN总线主要针对低成本的内部互联网络,这些网络的复杂程度和带宽决定了它们没有必要使用CAN网络。该总线采用主/从式网络结构,使用几乎每种微处理器都拥有的通用异步收发器(UART)接口/串行通信接口(SCI)及其相应的软件。网络
5、通信由主节点控制,从节点没有仲裁或冲突管理,可以确保最坏情况下的信号传输延迟时间。表6-2汇总了LIN总线的主要特点。6.1.4 LIN的主要特点的主要特点 86.2 LIN通信通信帧帧格式格式首先介绍一下LIN系统的网络结构。每个LIN网络(也称为LIN簇)都包括一个主节点和多个从节点,属于单主系统,其结构如图6-4所示。通信的运行是根据“任务”展开的,LIN协议将任务分为两种:主任务和从任务。主节点中既有主任务又有从任务,而从节点中仅包含从任务主节点中既有主任务又有从任务,而从节点中仅包含从任务。96.2 LIN通信通信帧帧格式格式 提供帧响应的从任务是由主任务在帧头中提供的标识符决定的,
6、每个标识符的定义是唯一唯一的。一个帧的帧头与帧响应之间由所谓的响应空间分隔开来。响应空间是指标识符场和数据场之间的字节间空间;帧间空间是上一帧发送完毕到下一帧启动发送时的时间间隔。字节间空间是指前一个场的终止位结束与后续字节的起始位开始之间的时间。通信帧的格式是固定的,但长度可以调整。通信帧由主任务提供的帧头和从任务提供的帧响应两部分组成,如图6-5和图6-6所示。106.2 LIN通信通信帧帧格式格式在LIN通信中,除了断点场之外,每个字节都按图6-7所示的字节场发送。字节场采用了标准UART/SCI串行数据格式,每个字节场的长度等于10个位时间,被发送的字节位于起始位和终止位之间。起始位是
7、一个“显性(0)”位,表示字节场开始;终止位是一个“隐性(1)”位,表示字节场结束。在发送一个字节的8个数据位时,首先发送最低位(LSB),最后发送最高位(MSB)。LIN总线通信是由主节点控制的,主任务发送含有标识符的帧头,从任务接收并过滤标识符,若被激活,则启动帧响应部分的发送。未被激活的从任务若对与标识符相关联的数据感兴趣,则可以接收这个响应,核实校验和,并使用传送过来的数据。116.2 LIN通信通信帧帧格式格式6.2.1 断点场断点场组成LIN通信帧通信帧的各个场。断点场由主任务产生,用于标识一个新帧的起始点,它是帧中唯一不符合图6-7所示格式的场。断点场分为两部分:第一部分包括至少
8、13个显性位;第二部分包括至少1个隐性位,也称为断点定界符,如图6-8所示。从节点需使用11个显性位作为断点检测阈值。由于在响应空间、帧间空间、总线空闲等情况下,总线都应保持隐性电平,并且帧中的其它场都不会发出大于9位的显性电平,因此断点场可以断点场可以标志一个帧的开始标志一个帧的开始。126.2 LIN通信通信帧帧格式格式6.2.2 同步场同步场同步场是一个数据值为01010101(0 x55H)的字节场,其特点是在8个位中有5个下降沿,即5个“隐性”到“显性”的跳变沿,如图6-9所示。请注意,图中0 x55H的顺序为由LSB到MSB。从任务应该能够检测到断点/同步场序列。期望的特征是:即使
9、断点场与数据字节局部重叠,也可以检测断点/同步场序列。当断点/同步场序列发生时,正在进行的传输将中止,并且开始处理新的帧。136.2 LIN通信通信帧帧格式格式6.2.3 标识符场标识符场标识符场是一个字节场,它由两部分组成:标识符位和奇偶校验位,如图6-10所示。第05位是标识符位,用ID0ID5表示,数值范围是063;第6和第7位是奇偶校验位,用P0和P1表示。标识符一般分为三类:(1)信号承载帧ID:059(0 x000 x3B),用于承载信号的帧;(2)诊断帧ID:60(0 x3C)和61(0 x3D),用于承载诊断和配置数据的帧;(3)保留帧ID:62(0 x3E)和63(0 x3F
10、),保留值,用于将来的协议扩展。奇偶校验位P0为奇校验位,P1为偶校验位。根据标识符位的值可以计算出P0和P1:(6-1)(6-2)这种设计P0、P1的方法,可以避免出现所有位都是显性或隐性的现象发生。146.2 LIN通信通信帧帧格式格式6.2.4 数据场数据场一个帧能够传输18个字节的数据,用Data1,Data2,.,Data N表示(1 N 8),见图6-11。每个帧都使用特定的标识符,数据发布方(publisher)和所有预订接收方(subscriber)应按照标识符事先约定帧中要包含的数据字节数。在数据场中,每个数据字节都作为字节场的一部分进行传输。对于大于1个字节的数据实体,实体
11、的LSB包含在首先发送的字节中,实体的MSB包含在最后发送的字节中。156.2 LIN通信通信帧帧格式格式6.2.5 校验和校验和校验和是帧的最后一个场,用于确保有效数据的完整性,长度为1个字节,在一个字节场中传输,如图6-12所示。校验和与所有数据字节的和相加,所得到的值必须是“0 xFF”。校验和的计算分成以下两种情况:(1)校验和的计算只针对数据字节,所得到的校验和称为“经典校验和”。(2)校验和的计算针对数据字节和标识符字节,所得到的校验和称为“增强校验和”。经典或增强校验和的使用由主节点管理,需要针对每个帧标识符来确定:“经典校验和”用于同LIN 1.x从节点的通信,“增强校验和”用
12、于同LIN 2.x从节点的通信。当帧标识符为60(0 x3C)或61(0 x3D)时,必须始终使用“经典校验和”。166.2 LIN通信通信帧帧格式格式【例6-1】设某报文帧包含4个字节,分别为:Data1=0 x4AH;Data2=0 x55H;Data3=0 x93H;Data4=0 xE5H。试计算其校验和。解:校验和计算过程如表6-4所示,计算得出的和为0 x19H,取反取反后得:校验和校验和=0 xE6H。利用同样的加法机制,接收节点很容易对收到的帧的一致性进行检查。当接收到的校验和(0 xE6H)与中间结果(0 x19H)相加时,总和应为0 xFF。176.3 LIN网网络络媒体媒
13、体访问访问控制控制 何时传输帧由主节点中的主任务决定,从节点中的从任务只提供该帧需要传送的数据。主节点也会处于帧接收状态,因此主节点有时也要完成从节点的任务。LIN总线的通信关系既可发生在从节点之间,也可能发生在主、从节点之间,其总线访问控制使用了帧标识符帧标识符。在访问处理过程中,主节点依据一个调度表控制通信的时间。LIN总线访问方法具有以下特色:系统灵活性:在LIN簇中添加节点,可以不改变其它从节点上的硬件或软件。报文路由:报文的内容由帧标识符定义(类似于CAN)。组播:多个节点可以同时接收某个帧,并对这个帧采取行动。6.3.1总线访问总线访问 186.3 LIN网网络络媒体媒体访问访问控
14、制控制 6.3.2 调度表调度表LIN总线访问的一个重要特点是它使用了调度表。调度表除规定帧ID 的传输次序外,还规定了帧时隙(Slot)的大小,如图6-13所示。关于调度表:帧时隙是指两个帧的起点起点之间的时间间隔。调度表位于主节点主节点内,由主任务调用。调度表可以有多个。使用调度表不仅有助于确保总线不超载,而且有助于确保信号的周期性。LIN簇中的所有传输都是由主任务发起的,可由主节点确保所有的帧都有足够的传输时间,这就是说,LIN网络具有确定性行为确定性行为是可能的。196.3 LIN网网络络媒体媒体访问访问控制控制 LIN调度表需要满足下述要求:1.帧的传输时间帧的传输时间输送一个帧的时
15、间必须与该帧的位数相匹配。在不考虑响应空间、字节间空间和帧间空间时,帧头和帧响应的时间之和为:式中,tbit表示传输一位所需的标称时间,N为数据场的字节数,Theader_nominol表示传输帧头所需的标称时间,Tresponse_nominol表示传输帧响应所需的标称时间,Tframe_nominol表示传一个帧所需的标称时间。帧的最大时间长度可用下式表示:帧的时间长度为Tframe_nominal。Tframe_maximum是设计工具和测试过程应该检查的时间。206.3 LIN网网络络媒体媒体访问访问控制控制 2.帧时隙帧时隙每个预定的帧会在总线上分配一个时隙。在LIN总线中,调度表的
16、时序由主节点依据本地时基进行控制,时基一般取为5或10 ms。帧时隙始终以时基节拍的起点作为开始,可能产生的抖动是从此点到断点场下降沿的最大和最小延迟之差。另外,帧间空间必须大于或等于0。因此,调度表中两个条目的起点(帧发送将启动)之间的时间间隔应为时基的整数倍,即帧时隙Tframe_slot为时基的整数倍。每个帧时隙的长度通常是不同的。为了给主任务引入的抖动和等式(6-4)中定义的Tframe_maximum留有余地,帧时隙的持续时间必须足够长,即3.调度表的操作调度表的操作在没有选择其它调度表时,主节点始终处理活动的调度表(顺序循环执行)。若要切换到新的调度表,则需要在帧时隙开始处进行。这
17、意味着调度表切换请求不会中断总线上正在进行的任何传输。216.3 LIN网网络络媒体媒体访问访问控制控制 1.信号承载帧信号承载帧针对不同的应用需要,信号承载帧可进一步分为三个小类:无条件帧、事件触发帧和零星帧。6.3.3各类帧的传输各类帧的传输(2)事件触发帧事件触发帧:是主节点在一个帧时隙中查询各从节点的信号是否发生变化时使用的帧,带有一个或多个无条件帧的响应,这些与事件触发帧相关的无条件帧应满足以下5个条件:数据场的字节数相同。使用相同的校验和模型。数据场的第一个字节为该无条件帧的标识符,这样才能够知道响应是由哪个相关无条件帧发送出来的。由不同的从节点发布。不能与事件触发帧处于同一个调度
18、表中。(1)无条件帧无条件帧。无条件帧具有单一发布节点,无论信号是否发生变化,帧头都要被无条件的响应。无条件帧在主任务分配给它的固定帧时隙中传输,总线上一旦有帧头发送出去,必须有从任务做出响应。传输都是由主任务发起的,一个无条件帧的发布方只有一个,预订接收方为一个或多个。226.3 LIN网网络络媒体媒体访问访问控制控制【例6-2】调度表只包含一个事件触发帧(ID=0 x10),该事件触发帧与两个无条件帧相关联,两个无条件帧分别来自从节点1(ID=0 x11)和从节点2(ID=0 x12)。试描述事件触发帧的传输状况。答:冲突解决调度表包含两个无条件帧,总线上的行为见下图。236.3 LIN网
19、网络络媒体媒体访问访问控制控制 零星帧零星帧:一组共享同一帧时隙共享同一帧时隙的无条件帧。当发送零星帧时,首先需要检查各个无条件帧是否有信号更新。如果没有,那么不会发送任何帧,帧时隙为空。若多个信号已被更新,则发送优先级最高(见下文)的帧,未发送的候选帧不会被丢失,只要它们未被发送,每当循环到这个零星帧时,它们都是被传输的候选者。一个无条件帧被成功发送后,不再处于等待发送状态,直到该无条件帧中的信号被再次更新。通常,多个零星帧与同一帧时隙相关联,优先级最高的待发送无条件帧应在这个帧时隙中被发送。若没有待发送的无条件帧,则帧时隙将保持静默。主节点是零星帧中的无条件帧的唯一发布方。零星帧与其相关无
20、条件帧不能处于同一调度表中。246.3 LIN网网络络媒体媒体访问访问控制控制【例6-3】某零星帧是活动调度表中的唯一一个帧,该零星帧具有多个相关无条件帧,其中一个无条件帧的ID为0 x22。试描述零星帧的传输状况。答:如下图所示,零星帧的时隙通常是空的。在第二个时隙中,ID为0 x22的相关无条件至少有一个信号被更新。256.3 LIN网网络络媒体媒体访问访问控制控制 2.诊断帧诊断帧诊断帧包括主机请求帧(MRF)和从机响应帧(SRF),主要用于配置、识别和诊断。主机请求帧的帧ID=60(0 x3C),响应部分的发布节点为主机节点;从机响应帧的帧ID=61(0 x3D),响应部分的发布节点为
21、从机节点。每个诊断帧的数据场长度都设定为8个字节,一律采用标准型校验和。6.3.4 任务状态机任务状态机LIN节点的行为是建立在主任务/从任务的状态机基础上的。1.主任务状态机主任务状态机。主任务负责生成正确的帧头,即根据调度表,决定哪个帧将被发送,并在帧之间保持正确的时序,主任务状态机如图6-16所示。图中,PID表示受保护标识符。266.3 LIN网网络络媒体媒体访问访问控制控制 2.从任务状态机从任务状态机从任务的动作分成两种:当它是帧的发布方时,负责发送帧响应;当它是帧的预订接收方时,接收帧响应。从任务有两个状态机模型,分别为断点/同步场序列检测器和帧处理器。断点/同步场序列检测器在帧
22、的PID场开始前,从任务需要进行同步,也就是说,它必须能够正确地接收PID场。在整个帧的其余部分,从任务要在所需比特率容差范围内保持同步,见比特率容差一节。为此,每个帧的起始序列使用了断点场和一个同步字节场。在整个LIN通信中,该序列是唯一的,并且为从任务检测新帧的起点,以及在标识符场的开始处被同步提供了足够的信息。帧处理器帧处理由两个状态组成:空闲和活动。活动状态又包含五个子状态。一旦接收到中断/同步场序列(从任何状态或子状态),帧处理器进入活动状态中的受保护标识符(PID)子状态。这意味着检测到新的中断/同步场序列将中止某个帧的处理。帧处理器状态机如图6-17所示。276.3 LIN网网络
23、络媒体媒体访问访问控制控制 “帧响应部分不全”要求帧响应中至少包含一个场,以区分响应中出错与无响应。回读和发送数据之间的不匹配将在包含不匹配的字节场结束前被检测发现。一旦检测到不匹配,传输将中止。286.4 LIN物理物理层层 LIN总线的位流采用NRZ编码。总线电平定义与CAN的显性/隐性电平相同,即总线上有两个互补的逻辑值:“显性(逻辑“0”)”或“隐性(逻辑“1”)”。在每个位时间内,总线电平要么为显性,要么为隐性。6.4.1位编码位编码6.4.2位速率及其容差位速率及其容差 LIN给出的位速率(vbit)定义与CAN总线一样,即位速率是在网络上测得的一个二进制位时间(tbit)的倒数(
24、1/tbit)。例如,如果测出的位时间等于50s,那么LIN的位速率为20kbit/s。LIN支持的位速率取值范围为120kbit/s。位速率容差描述了实际位速率与特定参考位速率的偏差,它是以下情况所产生影响的总和:(1)从节点的位时间测量故障;(2)位速率设置不准确(由可配置位速率的粒度导致的系统性故障);(3)从同步场结束到整个帧结束(最后一个采样位)期间,从节点时钟源的稳定性;(4)从同步场结束到整个帧结束(最后一个发送位)期间,主节点时钟源的稳定性。LIN协议将总线上使用的特定位速率定义为标称位速率,用协议将总线上使用的特定位速率定义为标称位速率,用vnom表示,建议采用表示,建议采用
25、的标称位速率值的标称位速率值和和对位速率容差的限制如对位速率容差的限制如书上表格所示书上表格所示。296.4 LIN物理物理层层 通常情况下,LIN总线上的所有位时间都以主节点的位时序作为参考。6.4.3位定时与位采样位定时与位采样1.位定时位定时 同步字节场内的数据为0 x55,即0101 0101,场中包括多个下降沿。在同步过程中,可测量下降沿之间的时间。由图6-18不难看出,运用第2、4、6和8位的下降沿很容易计算基本位时间tbit。一种简单的位时间确定方法是,测量起始位和b7位两者的下降沿之间的时间,并将获得的值除以8。306.4 LIN物理物理层层2.位采样位采样图6-19描述了字节
26、场的位采样时间:字节场应在起始位的下降沿启动同步,字节场同步的准确度必须达到tBFS。当字节场同步开始后,要在“最早位采样”时间tEBS和“最迟位采样”时间tLBS之间的窗口内采样起始位。最迟位采样时间tLBS取决于字节场同步的准确度tBFS,两者之间的关系如下:tLBS=(10/16)tbit tBFS 316.4 LIN物理物理层层相应的时间参数见下表在接下来各位的采样中,采样位置与起始位的采样窗口相同。采样窗口重复(SR)时间为tSR,tSR是前一位(第n-1位)的EBS与当前位(第n位)的EBS之间的时间间隔:tSR=tEBS(n)tEBS(n-1)=tLBS(n)tLBS(n-1)=
27、tbit(6-7)每位进行多次采样的设备,要按样本多数原则来确定位值。此外,占多数的样本应在EBS和LBS之间。326.4 LIN物理物理层层LIN节点的总线接口电路如图6-20所示。各个节点的收发器通过双向总线相连接,而双向总线通过终端电阻和二极管与节点电压的正极(VBAT)相连接。二极管的使用是强制性的,其目的是为了在“电池断路”的情况下防止总线对节点供电。6.4.3位定时与位采样位定时与位采样另外,VBAT是节点的外部电源电压,VSUP是节点内的电子组件可能使用的电源电压,两者是不同的。然而,在LIN收发器电路设计中,LIN规范将VBAT作为参考电压,而不是VSUP,要特别注意二极管的寄
28、生压降。336.4 LIN物理物理层层为了能够正确地发送和接收每个位,需要确保接收器进行位采样时的信号具有正确的电平(显性或隐性)。但是,接地偏移、电源电压下降、以及传播延迟不对称都使得精确定义“采样点”的电平变得十分复杂。LIN给出的总线信号规范如图6-21所示,该规范针对发送和接收节点分别定义了显性和隐性逻辑值所对应的电平。1.信号规范信号规范 346.4 LIN物理物理层层为了实现“线与”特性,LIN 规范规定了主节点和从节点的端接电阻,如表6-9所示。端接电阻一端连接LIN 总线,另一端经串联二极管连接收发器电源,如图6-22所示。2.线路特性线路特性 356.4 LIN物理物理层层L
29、IN网络各节点并联在一起,构成了如图6-23 所示的等效电路。其中,总线负载电阻等于各节点端接电阻的并联等效电阻(总线的电阻通常很小,可以忽略),总线负载电容等于各节点输入电容和总线分布电容的并联等效电容。总线电阻决定了总线收发器驱动级的功率和通信期间的功耗;总线电容可以很好地吸收周围环境的噪声干扰。总线电阻和总线电容构成的RC时间常数还有助于控制信号上升的最小转换速率。总线总电容Cbus、总线电阻Rbus和RC时间常数的计算公式如下:式中各个参数的定义见表6-9。366.5网网络络休眠与休眠与唤唤醒醒LIN簇的通信状态模型如图6-24所示。6.5.1.通信状态图通信状态图 初始化初始化。在复
30、位或唤醒后进入此状态。从节点要在进行了必要的初始化之后,才能进入运行状态。这里的初始化是指与LIN有关的初始化,复位和唤醒可能意味着不同的初始化。运行运行。LIN规范指定的帧发送和接收行为仅适用于运行状态。总线休眠总线休眠。总线上的电平被设置为隐性。只有唤醒信号可以出现在总线上。376.5网网络络休眠与休眠与唤唤醒醒总线可以在两种情况下进入休眠状态:6.5.2.休眠休眠 通过发送休眠命令将节点簇设置为总线休眠状态。休眠命令是一个主机请求帧(诊断帧之一),帧ID为60(0 x3C),数据场的第一个数据字节设置为0 x00,其余7个字节设置为0 xFF,如图6-25所示。休眠命令由主节点发出,总线
31、上的从节点只判断数据场的第一个字节,忽略其余字节。从节点在收到休眠命令后,不一定要进入低功耗模式,应根据应用需要进行设置,即从节点应用仍然可能处于活动状态。(2)总线在4s10s内保持静默,节点自动进入休眠状态。总线静默是指总线上没有显性和隐性电平之间的切换。为了消除总线上的短尖峰脉冲,LIN收发器通常具有滤波器,因此这里所讲的切换针对的是这个滤波器之后的信号。386.5网网络络休眠与休眠与唤唤醒醒当总线处于休眠状态时,主/从节点都可以通过发送唤醒信号来请求唤醒。强制总线处于显性状态250s5ms即可发出唤醒信号。未发送唤醒信号的节点以大于150s的显性脉冲为阈值判定唤醒信号。主节点也可通过发
32、出断点场作为唤醒信号,如发出一个普通帧头。在这种情况下,主节点必须意识到从节点可能无法处理该帧,因为从节点可能尚未醒来并准备好监听帧头。每个从节点应在这个唤醒信号显性脉冲结束边沿之后的100 ms内做好监听总线命令的准备,如图6-26所示。6.5.3.唤醒唤醒 396.5网网络络休眠与休眠与唤唤醒醒如果发送唤醒信号的节点是从节点,那么该节点将立即准备好接收或发送帧。在这种情况下,被唤醒的主节点将发送帧头,找出唤醒的原因。节点发出唤醒信号后,若在150ms250ms之内没有收到总线上的任何命令(主节点发送的帧头),则可以重新发送一次唤醒信号。按这种方式发送唤醒信号的次数最多为3次,若3 次之后再
33、次发送,则必须等待至少1.5s,如图6-27所示。3 次之后之所以要等待如此之长的时间,主要目的是为了在发出唤醒的从节点存在问题的情况下能够允许簇通信。例如,若从节点有读取总线方面的问题,则可能会无限次地重发唤醒信号。倘若从节点在主节点发送断点场的同时发送唤醒信号,则从节点将接收并识别该断点场。406.6错误检测错误检测与与错误处错误处理理 6.6.1.错误类型错误类型LIN规范强制规定,每个从节点都要在其发布的某个无条件帧中包含一个长度为1位的标量信号response_error(响应_错误),向主节点报告自身状态。这个信号的接收和分析由主节点负责,如表6-10 所示。下面列出了可能出现的一
34、些错误类型下面列出了可能出现的一些错误类型:位错误。在一个时刻,节点在发送一个位单元的同时也在监控总线。若监控到的位值和发送的位值不同,则在此位时间里检测到一个位错误。同步场不一致错误。如果从机检测到的同步场边沿在给定的容差之外,那么它检测到一个同步场不一致错误。标识符奇偶错误。接收节点对帧ID按照校验规则重新计算校验位(P0和P1),若与接收到的校验位不符,则接收节点认为是标识符奇偶错误。416.6错误检测错误检测与与错误处错误处理理 无响应错误。发送完帧头后,若总线上没有节点给出响应,则视为无响应错误(事件触发帧除外)。响应不完整错误。接收节点收到的数据场不完整或没有收到校验和场。校验和错
35、误。接收节点收到的校验和与重新计算所得的校验和(不取反)加起来不等于0 xFF。帧错误。字节场的终止位上出现了显性电平。物理总线错误。总线短路或直接连到电源上导致总线无法通信。该错误由主节点负责检测。在LIN网络中,节点自身需要设定两个状态位:Error_in_response 和Successful_transfer。Error_in_response表示帧响应是否出错;Successful_transfer表示帧传输是否成功。节点需要将这两个状态位报告给自己的高层应用。Error_in_response。当节点发送或接收帧响应的时候发现错误,将Error_in_response置位。Err
36、or_in_response状态位和response_error信号的置位条件相同。但需注意,在无响应的情况下,不能将Error_in_response置位。Success_transfer。当帧被成功传输时,即帧已被成功发送或接收时,将Success_transfer置位。6.6.2.节点内部报告节点内部报告 426.6错误检测错误检测与与错误处错误处理理在执行故障界定时,采用下述步骤。6.6.3.错误界定错误界定1.主节点错误状况检测主节点错误状况检测 主任务发送:当回读自己的发送时,可以检测到同步或标识符字节的位错误。主节点通过增加“主节点发送错误计数器”来保存任何发送错误的轨迹。当发送
37、的同步或标识符场在本地被损坏时,计数器每次都加8。当两个场都正确回读时,计数器每次都减1(最低值为0)。若计数器的值超过“主节点发送错误阈值(默认64)”,则认为总线上存在严重扰动,高层程序应执行错误处理过程。主节点中的从任务发送:在回读自己的发送时,可以检测到数据场或校验和场的位错误。主节点中的从任务接收:当在总线上等待或读取数据时,可以检测到从机不响应错误或校验和错误。主节点通过增加“主节点接收错误计数器从节点数量”来保存任何传输错误的轨迹。其中,“从节点数量”是指网络中可能的从节点个数。当没有接收到有效的数据场或校验和场时,计数器每次都加8。当两个场都正确接收时,计数器每次减1(最低值为
38、0)。如果计数器的值超过“主节点接收错误阈值(默认64)”,那么假定连接的从节点不能正常工作,高层程序应执行错误处理过程。436.6错误检测错误检测与与错误处错误处理理 2.从节点错误状况检测从节点错误状况检测 从任务发送:当回读自己的发送时,可以检测到数据或校验和场的位错误。从任务接收:当从总线上读值时,可检测校验和错误。当检测到一个校验和错误时,从机将其错误计数器加从机将其错误计数器加8。如果这个帧只能由特殊的节点(可以被主机检测到)产生,那么假定其它的发送节点损坏。若所有帧看起来都像被破坏了,则假设它自己的接收器电路有错误。如果正确接收到报文,错误计数器每次都减如果正确接收到报文,错误计
39、数器每次都减1。如果从节点的从任务读到的信息与该节点的应用无关,那么此节点可以不处理帧响应部分(数据场和校验和场),例如可以忽略校验和计算。如果从节点在设定的最大总线空闲时间(如25000tbit)内没有看到任何总线活动,那么它将假设主节点是不活动的。基于错误的处理将启动一个唤醒过程,或从节点进入“自我保护模式”模式。假设在最大帧时间长度Tframe_maximum内,从节点看不到任何有效的同步帧,只能看到总线的通信。从节点要重新初始化,否则不能进入“自我保护模式”模式。由于从节点不响应任何帧,错误处理将由主节点完成。假设主节点不向从节点要求任何服务,从节点将暂时空闲,但可以接收有效的同步报文
40、。此时,从节点可以进入“自我保护模式”模式。446.7 LIN组组件件与CAN类似,LIN网络中的每个节点都拥有统一的LIN总线接口,用于帧通信的硬件包括微处理器、总线收发器和LIN总线三部分,如图6-28所示。LIN协议控制器是利用软件和微处理器上的标准单元UART/SCI来实现的,通常不采用专用的通信控制器模块,能够显著减少节点的成本。LIN 总线是衔接所有 LIN 节点的通信媒体,LIN 协议并未限定通信媒体的类型和连接器的规格。目前 LIN 网络主要使用铜线作为传输介质,针对铜线的总线收发器是市场主流。456.7 LIN组组件件 6.7.1.协议控制器协议控制器l在LIN网络中,协议控
41、制器的主体是一个基于UART/SCI的通信控制器,通信方式是半双工。l协议控制器要能产生和识别帧的断点场。l协议控制器要能执行本地唤醒。需要唤醒总线时,协议控制器通过总线收发器向LIN 总线送出唤醒信号(参照6.5.3节)。l协议控制器要能识别总线唤醒。当收到来自LIN 总线的唤醒信号时,协议控制器能够正确动作,进入规定的通信状态(例如,主节点延迟100ms,然后查询唤醒来源)。6.7.2.LIN收发器收发器总线收发器的主体是一个双向工作的电平转换器,完成协议控制器的高-低电平与LIN 总线的隐性-显性电平之间的转换。协议控制器要能产生和识别帧的断点场。总线收发器还包括一些附加的功能,如总线阻
42、抗匹配、转换速率(Slew-rate)控制等。此外,LIN 规范要求总线收发器具备这样一种特性:本地节点掉电或工作异常时,不能影响总线上其它节点的正常工作。466.7 LIN组组件件 6.7.3.LIN节点设计实例节点设计实例由STM32F103C8T6、电压转换电路和收发器TJA1020组成的LIN节点硬件电路如图6-31所示。1.LIN节点硬件构成节点硬件构成 476.7 LIN组组件件 2.LIN节点软件设计节点软件设计(1)通用处理代码通用处理代码主节点和从节点都会使用的代码称之为通用处理代码,这些代码主要用于LIN协议控制器配置,以及ID查询校验等。(2)主节点处理代码主节点处理代码
43、主节点主要负责主机与从机或从机之间的通信调度通信调度,通常有三种处理模式:主发送、主接收和同步间隔。(3)从节点处理代码从节点处理代码从节点通过被动接收主节点发送的命令来执行接收或发送动作。当从节点收到总线上的信号后,首先判断其是否为断点场,以及是否收到同步场。在满足条件后,再对接收到的ID进行解析,并判断其是否正确。若正确,则读取相应的数据或执行相应的动作,否则,不做任何操作。当接收到的ID与本地节点的ID相符时,从节点执行发送操作。486.8 LIN开开发发工具及工具及应应用系用系统设计实统设计实例例 目前,LIN总线主要用于控制车体的附件系统,如图6-32所示。本节将通过一个车窗升降控制
44、系统,简要介绍LIN总线应用系统实现方法。496.8 LIN开开发发工具及工具及应应用系用系统设计实统设计实例例 开发工具如CANoe.LIN的工作原理如图6-33所示。6.8.1.LIN 开发工具开发工具应用程序接口可以由若干个独立的库文件来实现,也可能包含在某种开发工具中。API 通常不能直接被调用,需要配合若干外部附属模块(如驱动函数)以及映射文件(如用宏定义实现节点端口与API 库文件之间的衔接)。LIN描述文件(LDF)包含了整个子网的信息,如所有信号和帧的声明、调度表等。506.8 LIN开开发发工具及工具及应应用系用系统设计实统设计实例例 在车窗升降控制系统中,由车身控制模块(BCM)充当LIN总线的主节点,而将天窗及车窗的电子控制单元作为从节点。为更好地理解LIN总线及其应用,这里假设天窗和每个车窗都有自己的节点,LIN总线车窗控制系统组成如图6-34所示。6.8.2.车窗升降控制系统设计车窗升降控制系统设计第第6 6章结束,谢谢!章结束,谢谢!