汽车网络技术课件-凌永成-第2章-CAN总线.ppt
文本预览下载声明
图2-29 CAN总线系统元件 3.CAN构件 CAN构件用于数据交换,为两个区,一个是接收区,一个是发送区。CAN构件通过接收邮箱或发送邮箱与控制单元相连。 图2-30 邮局收发邮件 4.收发器 收发器就是一个发送-接收放大器,在接收数据时,收发器把CAN构件连续的比特流(亦称逻辑电平)转换成电压值(线路传输电平);当发送数据时,收发器把电压值(线路传输电平)转换成连续的比特流。线路传输电平非常适合在铜质导线上进行数据传输。 收发器通过TX-线(发送导线)或RX-线(接收导线)与CAN构件相连。RX-线通过一个放大器直接与CAN总线相连,并总是在监听总线信号。 1)收发器的特点 0 低阻抗 有源 导通(相当于开关闭合) 0 1 高阻抗 无源 截止(相当于开关断开) 1 总线电平 电阻状态 晶体三极管状态 状态 表2-2 收发器内晶体三极管的状态与总线电平之间的对应关系 图2-31 收发器的TX-线与总线的耦合 2)多个收发器与总线导线的耦合 当有多个收发器与总线导线耦合时,总线的电平状态将取决于各个收发器开关状态的逻辑组合。 0(0V) 0 0 0 0(0V) 1 0 0 0(0V) 0 1 0 0(0V) 1 1 0 0(0V) 0 0 1 0(0V) 1 0 1 0(0V) 0 1 1 1(5 V) 1 1 1 总线电平 收发器C 收发器B 收发器A 表2-3 收发器开关的状态与总线电平的逻辑关系 图2-32 3个收发器接到一根总线导线上 2.2.4 CAN总线的数据传输过程 1.信息格式的转换 首先是发动机控制单元的传感器接收到发动机转速信息(转速值)。该值以固定的周期(循环往复地)到达微控制器的输入存储器内。 发动机转速值按协议被转换成标准的CAN信息格式。 状态区(标识符)=发动机_1,数据区(信息内容)=发动机转速(即发动机转速为xxx r/min)。当然,CAN总线上传输的数据也可以是其他信息(如节气门开度、冷却液温度、发动机转矩等),具体内容取决于系统软件的设定。 图2-33 发动机转速值按协议被转换成标准的CAN信息格式 2.请求发送信息——总线状态查询 如果发送邮箱内有一个发动机转速实时值,那么该值会由发送特征位(举起的小旗)显示出来——请求发送信息。 只有总线处于空闲状态时,控制单元才能向总线上发送信息。CAN构件通过RX-线来检查总线是否有源(是否正在交换其他信息),必要时会等待,直至总线空闲下来为止。 如果在某一时间段内,总线电平一直为1(总线一直处于无源状态),则说明总线处于空闲状态。 图2-34 总线状态查询 3.发送信息 如果总线空闲下来,发动机信息就会被发送出去。 图2-35 信息发送过程 4.接收过程 连接在CAN总线上的所有控制单元都接收发动机控制单元发送的信息,该信息通过RX-线到达CAN构件各自的接收区。 图2-36 接收过程 接收过程分两步,首先检查信息是否正确(在监控层),然后检查信息是否可用(在接收层)。 1)检查信息是否正确(在监控层) 接收器接收发动机的所有信息,并且在相应的监控层检查这些信息是否正确。这样就可以识别出在某种情况下某一控制单元上出现的局部故障。 数据传输是否正确,可以通过监控层内的CRC校验和数来进行校验。CRC校验即为循环冗余码校验(Cycling Redundancy Check,略作CRC)。 如图2-38所示,经监控层监控、确认无误后,已接收到的正确信息会到达相关CAN构件的接收区。 图2-37 确认信息已经妥收 图2-38 监控层对信息进行监控 2)检查信息是否可用(在接收层) CAN构件的接收层判断该信息是否可用。如果该信息
显示全部