【课件】2-2 CAN报文传输过程解析_第1页
【课件】2-2 CAN报文传输过程解析_第2页
【课件】2-2 CAN报文传输过程解析_第3页
【课件】2-2 CAN报文传输过程解析_第4页
【课件】2-2 CAN报文传输过程解析_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

项目二车载CAN网络系统解析任务二CAN报文传输过程解析VehicleNetworkandBusTechnology任务导入由于CAN高性能、高可靠性及独特的设计,其越来越受到人们的重视。CAN最初是由德国博世公司为汽车监测、控制系统而设计的。现代汽车越来越多地采用电子装置控制,如发动机定时、喷油控制、驱动防滑控制(ASC)及复杂的防抱死制动系统(ABS)等。由于这些控制需要实时检测及交换大量数据,采用硬接信号线的方式不但烦琐、昂贵,而且难以解决问题。采用CAN总线,上述问题便可以得到很好的解决。目前,CAN总线系统中的信号是采用数字方式经导线传输的,其最大稳定传输速率可达1000kbit/s(1Mbit/s)。大众和奥迪公司将最大标准传输速率规定为500kbit/s。任务目标理解CAN报文的定义;熟悉CAN报文的格式和组成;能够列举CAN总线所传输数据的4种类型;掌握CAN总线的数据传输过程原理和步骤;养成定期反思与总结的习惯,改进不足,精益求精;积极主动与小组成员交流、讨论学习成果,取长补短,完成自我提升。新授PART.01NewTeaching目录CONTENTSCAN报文的基本认知01CAN总线的报文类型02CAN总线的数据传输过程03一、CAN报文的基本认知CAN报文是指发送单元向接受单元传送数据的帧。我们通常所说的CAN报文是指在CAN线(内部CAN、整车CAN、充电CAN)上利用ECU和CAN卡接收到的十六进制报文。CAN总线报文形式(一)CAN报文的定义一、CAN报文的基本认知(二)CAN报文的格式在总线中传送的报文,每帧由7部分组成。CAN协议支持两种报文格式,其唯一的不同是标识符(ID)长度不同,标准格式为11位,扩展格式为29位。在标准格式中,报文的起始位称为帧起始(SOF),然后是由11位标识符和远程发送请求位(RTR)组成的仲裁场。RTR位标明是数据帧还是请求帧,在请求帧中没有数据字节。21控制场包括标识符扩展位,指出是标准格式还是扩展格式。它还包括一个保留位(RB,ReservationBit),为将来扩展使用。它的最后四个位用来指明数据场中数据的长度。数据场范围为0~8个字节,其后有一个检测数据错误的循环冗余检查(CRC,CyclicRedundancyCheck)。应答场包括应答位和应答分隔符。发送站发送的这两位均为隐性电平(逻辑1),这时正确接收报文的接收站发送主控电平(逻辑0)覆盖它。用这种方法,发送站可以保证网络中至少有一个站能正确接收报文。一、CAN报文的基本认知(二)CAN报文的格式一、CAN报文的基本认知(二)CAN报文的格式报文的尾部由帧结束标出。在相邻的两条报文间有一很短的间隔位,如果这时没有站进行总线存取,总线将处于空闲状态。如图所示为CAN总线报文结构。CAN总线报文结构一、CAN报文的基本认知(三)CAN报文的组成通常接收到的CAN报文由很多部分组成,解析报文时用到的主要是帧ID和数据两部分。CAN报文的组成表如下:序号传输方向第几路CAN时间标识帧ID帧格式帧类型数据长度数据0x00000000接收00x000380ce181056F4数据帧扩展帧0x05ce181a0e010x00000001接收00x000381d71812F456数据帧扩展帧0x062a18a00f06000x00000002接收00x00038300181056F4数据帧扩展帧0x05ce181a0e010x00000003接收00x000383da1812F456数据帧扩展帧0x062a18a00f06000x00000004接收00x00038532181056F4数据帧扩展帧0x05ce181a0e01一、CAN报文的基本认知(三)CAN报文的组成1.帧ID的组成接收到的十六进制的ID实际上是由29位标识符转换而来,目前大多数的通信协议中都直接给出了相应的帧ID,不需要换算。如下表所示PRDPPEPSSAP为优先级,有3位,可以有8个优先级(0~7);R为保留位,有1位,固定为0;DP为数据页,有1位,固定为0;PF为报文的代码,有8位;PS为报文的目标地址(也就是报文的接收方),有8位;SA为报文的源地址(也就是报文的接收方),有8位。根据通信协议换算一个帧ID。一、CAN报文的基本认知(三)CAN报文的组成1.帧ID的组成OUTINID通信周期位置数据名SPN电池管理系统

整车控制器

PGN=6352100ms1Byte2Byte3Byte4Byte5Byte6Byte7Byte8ByteUbus(电池系统测量总线电压值)低字节注:两字节数据低字节在前,高字节在后;同一字节中高位在前,低位在后Ubus(电池系统测量总线电压值)高字节Ibattery(-/+)(电池充/放电电流)低字节Ibattery(-/+)(电池充/放电电流)高字节SOC(电池模块SOC)最高电池模块电压低字节最高电池模块电压高字节保留P6R0DP0PF24PS208SA243一、CAN报文的基本认知(三)CAN报文的组成1.帧ID的组成P为优先级,6转为二进制110;R、DP固定为0;PF为8位的报文代码,24转为二进制00011000;PS为8位的目标地址,即整车控制器的地址,在协议中它的地址定义为208,转化为二进制11010000;SA为8位的源地址,即BMS的地址,在协议中它的地址为243,转化为二进制11110011。这些代码合起来为11000000110001101000011110011,转化为十六进制为1818D0F3。以上就是29位标识符(ID)的由来。如上表所示一、CAN报文的基本认知(三)CAN报文的组成2.数据段的组成数据段一般由1~8个字节(Byte)组成,来代表通信协议中相应的含义。每个字节有2个字符,分为高4位和低4位。有的数据需要相邻的2个字节组合才能表示,则需要分为高字节和低字节。例如,收到帧ID的组成通信协议中需要的报文(ID:1818D0F3):1818D0F3ce0d007d006d1100。其中,第1个字节ce中的c为高4位,e为低4位。第1、2字节表示总电压,而且注明Byte1为低字节,Byte2为高字节,那么解析时就应该为0dce。二、CAN总线的报文类型21CAN总线所传输的数据有数据帧、远程帧、错误帧和过载帧4种类型。CAN的帧有两种不同的帧格式,不同之处为识别符的长度不同:具有11位识别符的帧称为标准帧,而含有29位识别符的帧为扩展帧。CAN总线所传输的数据又称为报文,是一帧一帧地传送,每帧数据由一组二进制数或数字脉冲组成,这组二进制数按功能又分为一段一段的,每一段称为帧的域或场。二、CAN总线的报文类型(一)数据帧数据帧的功能是将数据从发送器传到接收器。数据帧由开始域、仲裁域、控制域、数据域、安全域、应答域和结束域7个不同的域组成,如图所示,为数据帧的组成。数据帧的组成二、CAN总线的报文类型(一)数据帧1.开始域无论是标准数据帧还是扩展数据帧都包含这两个段。帧起始标志着数据帧和远程帧的起始,由一个单独的显性位(逻辑0)组成。总线空闲时,发送节点发送帧起始,其他接收节点同步于该帧起始位。如图所示,标志数据帧的起始,仅由一个“显性”(即0)位组成,带有约5V的电压的1位被送入CAN高位传输线,带有约0V电压的1位被送入CAN低位传输线。开始域由控制芯片完成。二、CAN总线的报文类型(一)数据帧2.仲裁域如下图所示,当多个节点同时发送数据,总线应该怎么处理呢?仲裁段表示数据传输的优先级,作用就是根据报文ID来确定其发送优先级。标准格式和扩展格式在此的构成有所不同。数据分析二、CAN总线的报文类型(一)数据帧2.仲裁域仲裁域包括标识符和远程发送请求位(RTR)。识别符代表数据的身份和优先权,标准格式下标识符的长度为11位,这些位按ID.10~ID.0的顺序发送,最低位是ID.0,7个高位(ID.10~ID.4)必须不能全是“隐性”。在标准帧里,识别符后是远程发送请求位(RTR),该位若为“显性”(即0),代表发送的信息是数据;若为“隐性”(即1),代表发送的信息是数据请求。如上图所示二、CAN总线的报文类型(一)数据帧2.仲裁域只要总线空闲,各控制单元均可向总线发送数据,如果各个控制单元要同时发送各自的数据,那么系统必须决定哪一个控制单元先进行发送。系统规定具有最高优先权的数据先发送,标识符的二进制值越小,其优先权就越高。不同数据的优先权根据数据的重要性和紧迫性等因素由人为编程时确定。例如,发动机电控单元、ABS电控单元和自动变速器电控单元相比较,制动信号的优先权最高,三者仲裁域的标识符如下:01010000000(发动机电控单元标识符)00110100000(ABS电控单元标识符)10001000000(自动变速器电控单元标识符)二、CAN总线的报文类型(一)数据帧2.仲裁域321ABS电控单元的标识符数值设定得最小,优先权最高;自动变速器电控单元标识符数值最大,优先权最低;发动机电控单元标识符数值居中。当以上三个电控单元同时向总线发送数据时,系统就先发送ABS电控单元发送的数据,此时,发动机电控单元和自动变速器电控单元转化为接收器接收数据。总线一旦空闲,系统会发送其他电控单元的数据。二、CAN总线的报文类型(一)数据帧3.控制域控制域由“6个位”组成。其中4位是数据长度代码,即数据的字节数量,另两位作为扩展用的保留位。所发送的保留位必须“显性”。控制域供接收器检查是否已经接收到所传来的所有信息。接收器接收和认可所有由“显性”和“隐性”的任意组合在一起的位。二、CAN总线的报文类型(一)数据帧3.控制域数据长度代码见下表。其中,DLC3~DLC0代表数据长度代码的位,DLC0是最低位,DLC3是最高位。数据长度代码最大为8,表示数据帧允许的数据长度为0~8字节。表中“0”为“显性”,“1”为“隐性”。数据长度数据长度代码DLC3DLC2DLC1DLC0012345678000000001000011110001100110010101010二、CAN总线的报文类型(一)数据帧4.数据域数据域由数据帧发送的数据组成,数据段为数据帧的核心内容,可以为0~8个字节。每字节包含了8个位,所以数据帧最大为64位。从MSB(最高位)开始输出。二、CAN总线的报文类型(一)数据帧4.数据域例如,要表达节气门开度信号,假如把节气门的开度按最大开度的百分数表示,每10%为一个等级,那么节气门开度信号在数据域的代码见下表中。其中,“0%”表示节气门关闭,发动机处于怠速状态,“100%”表示节气门全开,发动机处于全负荷状态。节气门开度数据域代码DLC3DLC2DLC1DLC00%10%20%30%40%50%60%70%80%90%100%00000000111000011110000011001100101010101010二、CAN总线的报文类型(一)数据帧5.安全域安全域用来检测传递数据中的错误。CAN系统用于电噪声很大的环境,这个环境中的数据最容易丢失或破坏。CAN协议提供了5种错误检测和修正的方法,因此如果数据被破坏,能够被检测出来,而且网络中的所有的电控单元都会忽略这个数据。这5种错误检测类型分别为位错误、填充错误、校验(CRC)错误、形式错误和应答错误。二、CAN总线的报文类型(一)数据帧5.安全域填充错误如果在使用位填充法进行编码的信息中,出现了第6个连续相同的位电平时,将检测到一个填充错误。Byteflight协议形式错误当一个固定形式的域含有一个或多个非法位,则检测到一个形式错误。位错误如果所发送的位值与所监视的位值不相符合,则在此位时间里检测到一个位错误。校验错误如果接收器的计算结果与接收到校验序列的结果不相符,则检测到一个校验错误。应答错误只要在应答间隙期间所监视的位不为“显性”,则发送器会检测到一个应答错误。二、CAN总线的报文类型(一)数据帧6.应答域应答域用来反映接收器通知发送器是否已经正确接收到数据。当接收器正确地接收到有效的数据,接收器就会在应答间隙期间内向发送器发送一个“显性”位以应答,而应答界定符始终是“隐性”位。如果检查到错误,接收器立即通知发送器,然后发送器再发送一次数据,直到该数据被准确接收为止,但从检测出错误到下一数据的传送开始为止,发送时间最多为29个位的时间。应答域长度为2个位,包含应答间隙和应答界定符,常态下发送两个“隐性”位。二、CAN总线的报文类型(一)数据帧7.结束域结束域标志着数据报告结束,由7个“隐性”位(1111111)组成。这是显示错误并重复发送数据的最后一次机会。如图所示为结束域。二、CAN总线的报文类型(二)远程帧CAN总线上电控单元的数据发布,有两种基本形式。第一种形式是按设定或需要主动发布。例如制动信号,当踩制动踏板时ABS电控单元就会主动发布,发动机电控单元接收后就会立即调控发动机转速由高速降为低速。第二种形式是受请求后发布。例如A电控单元需要B电控单元的数据,A电控单元先发布请求信号,这个请求信号的数据形式就是远程帧。二、CAN总线的报文类型(二)远程帧远程帧由开始域、仲裁域、控制域、安全域、应答域和结束域6个不同的域组成。与数据帧相反,远程帧的远程发送请求位(RTR位)是“隐性”的(即逻辑“1”)。它没有数据域,数据长度代码的数值是不受制约的(可以标注为容许范围内0~8的任何数值)。其余域功能同数据帧。数据帧与远程帧的区别二、CAN总线的报文类型(三)错误帧任何电控单元检测到总线错误就发出错误帧。错误帧的功能是对所发送的数据进行错误检测、错误标定及错误自检。错误帧由两个不同的域组成:第一个域为不同控制单元提供错误标志的叠加,第二个域是错误界定符。如下图所示。数据帧与远程帧的区别二、CAN总线的报文类型(三)错误帧1.错误标志错误标志包括主动错误标志和被动错误标志两种形式。主动错误标志由6个连续显性位组成,检测到错误条件的“错误主动”控制单元通过发送主动错误标志以指示错误。被动错误标志由6个连续隐性位组成,除非被其他CAN控制器的显性位改写,检测到错误条件的“错误被动”控制单元通过发送被动错误标志以指示错误。如图所示。二、CAN总线的报文类型(三)错误帧2.错误界定错误界定符由8个隐性位组成。传送了错误标志以后,每一节点就发送一个隐性位,并一直监视总线直到检测出一个隐性位为止,然后就开始发送其余7个隐性位。如图所示。二、CAN总线的报文类型(四)过载帧过载帧用以在先行的和后续的数据帧(或远程帧)之间提供一附加的延时。接收器在电路尚未准备好或在间歇域期间检测到一个“显性”位时,会发送过载帧,以延迟数据的传送。过载帧包括过载标志和过载界定符两个域。二、CAN总线的报文类型(五)帧间空间321帧间隔用于将数据帧或远程帧和他们之前的帧分离开,但过载帧和错误帧前面不会插入帧间隔。;帧间隔过后,如果无节点发送帧,则总线进入空闲;帧间隔过后,如果被动错误节点要发送帧,则先发送8个隐性电平的传输延迟,再发送帧。数据帧或远程帧与其前面帧的隔离是通过帧间空间实现的,无论其前面的帧为何类型。所不同的是过载帧与错误帧之前没有帧间空间,多个过载帧之间也不是由帧间空间隔离的。帧间空间包括间歇域和总线空闲域。(一)信息格式的转换三、CAN总线的数据传输过程首先是发动机控制单元的传感器接收到发动机转速信息(转速值)。该值以固定的周期(循环往复地)到达微控制器的输入存储器内。由于瞬时转速值不仅用于发动机运转控制、变速器换档控制,还用于其他控制单元(如组合仪表),故该值通过CAN总线来传输,以实现信息共享。于是转速值就被复制到发动机控制单元的发送存储器内。该信息从发送存储器进入CAN构件的发送邮箱内。如果发送邮箱内有一个发动机转速实时值,那么该值会由发送特征位显示出来。将发送任务委托给CAN构件,发动机控制单元就完成数据传输任务。(一)信息格式的转换三、CAN总线的数据传输过程如图所示为发动机转速值按协议被转换成标准的CAN信息格式。在本例中,状态区(标识符)=发动机1,数据区(信息内容)=发动机转速值(即发动机转速为×××r/min)。当然,CAN总线上传输的数据也可以是其他信息(如节气门开度、冷却液温度、发动机转矩等),具体内容取决于系统软件的设定。三、CAN总线的数据传输过程(二)请求发送信息——总线状态查询如果发送邮箱内有一个发动机转速实时值,那么该值会由发送特征位显示出来——请求发送信息,相当于学生举手向老师示意,申请发言。只有总线处于空闲状态时,控制单元才能向总线发送信息。如图所示,CAN构件通过RX线来检查总线是否有源(是否正在交换其他信息),必要时会等待,直至总线空闲下来为止。(三)发送信息三、CAN总线的数据传输过程如下图所示为信息发送过程,如果总线空闲下来,发动机信息就会被发送出去。(四)接收过程三、CAN总线的数据传输过程如下图所示为信息接收过程,连接在CAN总线上的所有控制单元都接收发动机控制单元发送的信息,该信息通过RX线到达CAN构件各自的接收区。(四)接收过程三、CAN总线的数据传输过程接收过程分两步,首先检查信息是否正确(在监控层),然后检查信息是否可用(在接收层)。(1)检查信息是否正确(在监控层)接收器接收发动机的所有信息,并且在相应的监控层检查这些信息是否正确。这样就可以识别出在某种情况下某一控制单元上出现的局部故障。按照CAN总线的信息广播原理,连接在CAN总线上的所有控制单元都接收发动机控制单元发送的信息。数据传输是否正确,可以通过监控层内的CRC校验和数来进行校验。CRC校验即为循环冗余码校验(CyclingRedundancyCheck,CRC)。(四)接收过程三、CAN总线的数据传输过程接收过程分两步,首先检查信息是否正确(在监控层),然后检查信息是否可用(在接收层)。在发送每个信息时,所有数据位会产生并传递一个16位的校验和数,接收器按同样的规则从所有已经接收到的数据位中计算出校验和数,随后系统将接收到的校验和数与计算出的实际校验和数进行比较。如果两个校验和数相等,确认无数据传输错误,那么连接在CAN总线上的所有控制单元都会给发射器一个确认回答(亦称应答,如图所示),这个回答就是所谓的“信息收到符号”(acknowledge,Ack),它位于校验和数之后。确认信息已经接收(四)接收过程三、CAN总线的数据传输过程接收过程分两步,首先检查信息是否正确(在监控层),然后检查信息是否可用(在接收层)。如图所示监控层对信息进行监控,经监控层监控、确认无误后,已接收到的正确信息会到达相关CAN构件的接收区。(四)接收过程三、CAN总线的数据传输过程接收过程分两步,首先检查信息是否正确(在监控层),然后检查信息是否可用(在接收层)。(2)检查信息是否可用(在接收层)CAN构件的接收层判断该信息是否可用。如果该信息对本控制单元来说是有用的,则举起接收旗,予以放行,如图所示,该信息就会进入相应的接收邮箱;如果该信息对本控制单元来说是无用的,则可以拒绝接收。(四)接收过程三、CAN总线的数据传输过程接收过程分两步,首先检查信息是否正确(在监控层),然后检查信息是否可用(在接收层)。(2)检查信息是否可用(在接收层)CAN构件的接收层判断该信息是否可用。上图中,连接在CAN总线上的组合仪表根据升起的“接收旗”就会知道,现在有一个信息(发动机转速)在排队等待处理。组合仪表调出该信息并将相应的值复制到它的输入存储器内。通过CAN总线进行的数据传输(发送和接收信息)过程至此结束。在组合仪表内部,发动机转速信息经微控制器处理后到达执行元件并最后到达发动机转速表,显示出发动机转速的具体数值。(五)冲突仲裁三、CAN总线的数据传输过程如果多个控制单元同时发送信息,那么数据总线上就必然会发生数据冲突。为了避免发生这种情况,CAN总线具有冲突仲裁机制。按照信息的重要程度分配优先权,紧急的信息(如事关汽车被动安全、汽车稳定性控制的信息)优先权高,不是特别紧急的信息(如车窗玻璃升降、车门锁止等)优先权低,确保优先权高的信息能够优先发送。(五)冲突仲裁三、CAN总线的数据传输过程所有控制单元都通过各自的RX线来跟踪总线上的一举一动并获知总线状态。数据传输总线的调整规则:用标识符中位于前部的“0”的个数代表信息的重要程度,“0”的位数越多越优先,从而保证按重要程度的顺序来发送信息。越早出现“1”的控制单元,越早退出发送状态而转为接收状态。基于安全考虑,涉及安全系统的数据优先发送。每个控制单元的发射器都将TX线和RX线的状态一位一位地进行比较(它们可以不一致)。每个控制单元在发送信息时通过发送标识符来标识信息类别,信息优先权包含在标识符中。(五)冲突仲裁三、CAN总线的数据传输过程例如,由ABS/EDL电控单元提供的数据比自动变速器控制单元提供的数据(驾驶舒适)更重要,因此具有优先权。数据列的状态域是由11位组成的编码,其数据的组合形式决定了数据的优先权。如图所示,3个控制单元同时发送数据列,此时,在CAN-BUS数据传输线上进行一位一位的比较,如果1个控制单元发送了1个低电位而检测到1个高电位,那么该控制单元就停止发送数据列而转为接收器。(五)冲突仲裁三、CAN总线的数据传输过程

下表是3组不同数据列的优先权。优先权数据报告状态域测试1Brake1(制动1)001101000002Engine1(发动机1)010100000003Gearbox1(变速器1)10001000000(五)冲突仲裁三、CAN总线的数据传输过程如图所示,在数据列的状态域位1,ABS/EDL控制单元发送了1个高电位,发动机控制单元也发送了1个高电位,自动变速器控制单元发送了1个低电位而检测到1个高电位,那么自动变速器控制单元将失去优先权而转为接收器。在数据列的状态域位2,ABS/EDL控制单元发送了1个高电位,发动机控制单元发送了1个低电位并检测到1个高电位,那么,发动机控制单元也失去优先权而转为接收器。在数据列的状态域位3,ABS/EDL控制单元拥有最高优先权并接收分配的数据,该优先权保证其持续发送数据直至发送终了,ABS/EDL控制单元结束发送数据后,其他控制单元再发送各自的数据。实训PART.02Practicaltraining任务实施某品牌智能座舱CAN模拟续航里程测试1.与测试相关的CAN报文认知测试点预置条件测试步骤预期结果测试结果判定备注(对应BUGID号)续航里程0km1.当前处于ACCON工作状态2.周期类型:P频率:100mSec3.CAN盒波特率为1Mbps4.CAN连接在网关上CAN工具模拟发送报文0x3A30000000000000000仪表显示续航里程为0km□OK□NG□NT□Pass□NA□Fail

续航里程1km1.当前处于ACCON工作状态2.周期类型:P频率:100mSec3.CAN盒波特率为1Mbps4.CAN连接在网关上CAN工具模拟发送报文0x3A3000000000A000000仪表显示续航里程为1km□OK□NG□NT□Pass□NA□Fail任务实施续航

温馨提示

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

评论

0/150

提交评论