CAN 数据总线并没有指定的数据接收者,数据在CAN 数据总线传输过程中,可以被所有控制单元接收和计算。CAN 数据总线的数据传递过程如图2-25所示。
图2-25 CAN 数据总线的数据传递过程
1.提供数据
电控单元的微处理器向CAN 控制器提供需要发送的数据。
2.发送数据
CAN 收发器接收由CAN 控制器传来的数据,转为CAN 网络电信号并发送到CAN 数据总线上。例如,发动机控制单元的发送过程,如图2-26所示。
图2-26 发动机ECU 的信息发送过程
①传感器接收到转速值,该值以固定的周期到达微控制器的输入存储器内。由于该转速值还用于其他控制单元,如组合仪表,所以该值应通过数据传输总线来传递。
②该转速值被复制到发动机控制单元的发送存储器内。
③该信息从发送存储器进入数据传输总线构件的发送邮箱内。如果发送邮箱内有一个实时值,那么该值会由发送特征位(举起的小旗示意有传输任务)显示出来,将发送任务委托给数据传输总线构件,发动机控制单元就完成了此过程中的任务。
④发动机转速值按协议被转换成如图2-21所示数据传输总线的特殊格式。
⑤数据传输总线构件通过RX 线来检查总线是否有源(是否正在交换别的信息),必要时会等待,直到总线空闲下来为止,如图2-27所示。如果总线空闲下来,发动机信息就会被发送出去。
图2-27 总线空闲查询(www.xing528.com)
3.接收数据
所有与CAN 数据总线一起构成网络的电控单元转为接收器,从CAN 数据总线上接收数据。
信息接收过程分为两步,如图2-28所示。
图2-28 信息接收过程
第一步:检查信息是否正确(在监控层)。
第二步:检查信息是否可用(在接收层)。
(1)信息接收
连接的所有装置都接收发动机控制单元发送的信息,该信息是通过RX 线到达数据传输总线构件各自的接收区。
(2)信息校验
接收器接收发动机的所有信息,并且在相应的监控层检查这些信息是否正确。这样就可以识别出在某种情况下某一控制单元上出现的局部故障。所有连接的装置都接收发动机控制单元发送的信息,可以通过监控层内的CRC (Cycling Redundancy Check,循环冗余码校验)校验和数来确定是否有传递错误。在发送每个信息时,所有数据位会产生并传递一个16 位的校验码。接收器按同样的规则,从所有已经接收到的数据位中计算出校验和数。随后,接收到的校验数与计算出的校验数进行比较,如果确定无传递错误,那么连接的所有装置会给发送器一个确认回答,这个回答就是所谓的“信息收到符号” (Acknowledge,ACK),它位于校验和数后。
(3)信息接收
已接收到的正确信息会到达相关数据传输总线构件的接收区,在那里来决定该信息是否用于完成各控制单元的功能。如果不是,该信息就被拒收。如果是,该信息就会进入相应的接收邮箱。控制单元根据接收信号(升起的“接收小旗” )就会知道:现在有一个信息(如转速)在排队等待处理,如图2-29所示。
图2-29 信息接收判断
组合仪表调出该信息并将相应的值复制到它的输入存储器内,至此,通过数据传输总线构件发送和接收信息的过程结束。在组合仪表内,转速经微控制器处理后控制转速表显示相应的转速。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。