微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 汽车电子 > 基于系统工程的汽车电子CAN通信协议设计

基于系统工程的汽车电子CAN通信协议设计

时间:03-15 来源:21ic 点击:

CAN通信设计的方法主要有两种:一种是依靠工程经验的投票法或试错法,一种是基于系统工程技术的设计方法。试错法是通过将零部件供应商在不同项目积累的经验集成到一起的方法设计CAN通信协议。系统工程法是基于一定的理论思路,考虑通信的系统级需求对通信协议进行设计。

  在试错法中,由于各个零部件供应商都是基于自己的零件的需求出发考虑对协议的需要,无法从整个系统的角度考虑零部件之间的相互影响和作用。所以将不同需求集成的结果存在潜在设计错误,而这些错误在仿真过程中难以发现,也无法通过测试的手段解决。

  系统工程法则从系统级需求出发,充分考虑零部件之间的相互作用和需求,在系统层面对通信协议进行设计,因此在设计过程中可以对设计结果进行优化,并验证设计结果的正确性。下面的内容就对系统工程设计法进行详细的介绍。

  CAN协议设计中的主要内容

  CAN协议设计的主要内容是创建消息、分配消息优先级并确定消息的周期。下面对CAN通信的基本原理进行分析,分别说明其重要性。

  CAN总线采用多主结构,CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance)和按位仲裁机制决策访问总线的节点。CSMA/CA指节点在发送的同时也在监听总线,已避免冲突的发生,按位仲裁则规定了显性信号比隐性信号优先,显性信号和隐性信号同时往总线上发送时,总线上是显性信号。在本文以显性信号用"0"表示,隐性信号用"1"表示。在下面的例子,我们也用低电平表示显性信号,高电平表示隐性信号。

  为了说明设计中的主要问题,下面以有3个节点的总线通信为例。如图1所示有3个节点通过CAN总线相互连接。


  每个节点的内部程序决定了何时需要通过总线发送数据,消息有固定的格式。如图2所示,CAN消息由起始位SOF、ID域、control域等字段组成。其中的ID域代表了消息的优先级,在有总线竞争的时候,根据按位仲裁原理,ID小的优先级高,消息被优先发送。图3是仲裁的一个例子,假设在某一时刻,三个节点同时往外发消息,每个节点发送的消息ID(二进制格式)分别为:ID1=11001101010,ID2=11001011011,ID3=11001011001。每个节点都以发送SOF位开始,然后逐位发送ID域。不发送消息的节点,监听到SOF位后自动转为接收节点。发送节点之间的仲裁发生在ID发送的过程,发送过程中发送节点同时在监听总线上的信号,只要发送信号与监听到的信号一致,发送过程将继续,否则停止。如图所示,节点1在第6位上发送的是隐性信号,但是总线上的信号是显性信号。节点1停止发送,转为接收节点。在第10位的时候,节点2发送隐性信号,但是总线是显性信号,所以节点2又停止发送,转为接收节点。至此仲裁结束,节点3仲裁胜利,继续发送消息余下的数据位。

  从这个过程可以看出,由于消息ID3优先级高,所以优先发送。ID1和ID2均需要等待下次仲裁决定是否发送。也就是说每次仲裁的结果是有的消息的发送要被延迟。

  另外,CAN协议规定,消息没有发送完毕不会释放总线。因此有低优先级的消息在发送的时候,高优先级的消息也会被延迟。

  延迟也是影响CAN通信性能的主要问题,如果消息延迟时间过长,将影响接收节点的功能,严重的还可能造成事故。因此CAN协议设计的重要内容之一是控制消息的延迟时间在合理水平。

  而消息优先级和周期是设计中影响延迟的主要因素,合理分配ID和确定消息的周期可以对延迟进行有效控制,因此CAN协议设计的一个主要内容就是如何合理分配消息ID和确定消息的周期。创建消息也是重要的内容之一,但是对延迟的影响相对较小。

  CAN协议的系统工程设计方法通过对通信中的时间进行量化,依据量化结果分析功能之间的交互关系,从而进一步创建消息、分配消息ID和确定其周期。

  CAN协议系统工程设计方法

  系统工程设计方法与试错法的本质区别是采用了量化的体系获取通信过程中的时间要求。图4显示的是通信的时间要求。TP是事件发生到数据准备好发送给驱动程序之间的时间间隔,TB是数据被组建成消息并准备发送到总线上之间的时间间隔,TT是实际的传输时间,TA是消息接收完毕到数据能被应用程序使用之间的时间间隔,TS是数据可以使用到实际使用之间的时间间隔。整个通信过程必须要在规定时间内完成,而这个时间就是maximum age.这个时间标志了数据发送的实时性,只要数据在这个时间范围内送到接收节点,接收节点的功能将得到实时的执行。

除了这些参数以外,完整的系统设计还需要以下信息:
  ●信号定义:类型、大小等;
  ●发送节点数据定义:收发的信号、TP和TS的定义;
  ●接收节点数据定义:收发的信号、TP、TS和maximum age的定义;
  ●拓扑结构的定义:节点之间的互联关系。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top