免费索刊 | 电子报 | 论坛 
 
您的位置:首页>>正文
【2010/05期】CAN在汽车总线中的应用研究
2010-12-16
字号: 
来源:汽车新材料网

舒浩敏
(广汽长丰汽车制造股份有限公司,湖南长沙410100)

  摘要:文章分析了汽车总线技术的发展趋势,探讨了汽车总线传输的技术要求,详细论述汽车CAN总线的优点和特点,最后设计了一款由51单片机开发的汽车CAN总线结构。

  关键词:汽车网络技术;CAN 总线;汽车总线

  CAN总线是控制策略驱动的总线,主要实现对车辆本身的控制,而IDB总线则以信息交互、共享为目的。为实现CAN总线和IDB总线间的信息流动以及防止后者对前者产生影响,在两总线间增加网关已经成为共识。

  1 汽车总线技术的特征

  汽车总线技术的特征归纳起来有以下几点。

  ①设计目标。汽车总线传输必须确保以下几点:传输信息的安全;信号的逻辑“1”明显区别于逻辑“0”;异步总线随机地传送数据;根据预先确定的优先权进行总线访问;竞争解决后获胜站点能够访问总线且继续传输信息;具有根据信息内容解决总线访问竞争的能力;总线的功能寻址和点到点寻址能力;节点在尽量小的时间内成功访问总线;最优化的传输速率(波特率);节点的故障诊断能力;总线具有一定的可扩充性等等。

  ②数字信号的编码。为了保证信息传输的可靠性,对数字信号正确编码非常重要。汽车局域网数据信号多采用脉宽调制(PWM)和不归零制(NRZ)。PWM作为编码方案时,波特率上界为3×105 kb/s,用于传输速率较低的场合。采用NRZ进行信息传输,可以达到1Mb/s,用于传输速率较高的场合。

  ③网络拓扑结构。实用的汽车局域网是总线拓扑结构,如CAN、SAEJ1850、ADVANCEDPALMNET等。其优点是:电缆短,布线容易;总线结构简单,又是无源元件,可
靠性高;易于扩充,增加新节点只需在总线的某点将其接入,如需增加长度可通过中继器加入一个附加段。

  ④总线访问协议。汽车总线的访问协议一般为争用协议,每个节点都能独立决定信息帧的发送。如果同时有两个或两个以上的节点发送信息,就会出错,这就要求每个节点有能力判断冲突是否发生,发生冲突时按某个规律等待随机时间间隔后重发,以避免再发生冲突。网络协议所使用的防冲突监听措施多为载波监听多路访问,如CAN、SAEJ1850、ADVANCED、PALMNET等都采用的是:载波监听多路访问/冲突检测+ 无损仲裁(CSMA/CD+NDA)

  2 CAN在汽车总线中的应用

  2.1 CAN总线技术的优点

  国内汽车品牌中已经有几款车型应用了总线技术,这些技术完全来自国外。目前应用总线的国产车中大多采用两套独立的CAN总线:一套是动力CAN数据传输系统,另一套是舒适CAN数据传输系统。
使用CAN总线后,对其优点进行了总结,得出以下结论:

  ①如果数据扩展以增加新的信息,只需升级软件即可。

  ②控制单元对所传输的信息进行实时检测,检测到故障后存储故障码。

  ③使用小型控制单元及小型控制单元插孔可节省空间。

  ④使传感器信号线减至最少,控制单元可做到高速数据传输。

  ⑤CAN总线符合国际标准,因此可应用不同型号控制单元间的数据传输。

  2.2 汽车CAN总线节点ECU的硬件设计

  汽车节点ECU的开发可以选择带有在片CAN的微控制器,也可以选择其它微控制器和相应的片外CAN控制器、收发器。文章以后者为例说明ECU的开发。

  带有CAN接口的ECU设计是总线开发的核心与关键,其中ECU的CAN总线模块有几个功能单元构成——CAN控制器和CAN收发器。CAN控制器执行完整的CAN协议,完成通讯功能,包括信息缓冲和接收滤波。CAN控制器与物理总线之间需要一个接口——CAN收发器,它实现CAN控制器与总线之间逻辑电平信号的转换。CAN控制器和收发器完成CAN物理层和逻辑电路层的所有功能。应用层的功能则由软件来实现。各节点的ECU主要由MCU、DSP、CAN控制器SJA1000、CAN收发器PCA2C250和其它外围器件构成。

  CAN设计的三层结构模型为:物理层、数据链路层和应用层。物理层和数据链路层的功能由CAN接口器件完成,包括硬件电路和通讯协议两部分。CAN通讯协议规定了四种不同用处的网络通讯帧,即数据帧、远程帧、错误指示帧和超载帧。CAN通讯协议的实现,包括各种通讯帧的组织和发送,均是由集成在SJA1000通讯控制器中的电路实现的,因此系统的开发主要在应用层的设计上。应用层软件的核心部分是CPU与SJA1000通讯控制器之间的数据接收和发送程序,即CPU把待发的数据发给SJA1000通讯控制器,再由SJA1000通讯控制器发到总线上;当SJA1000通讯控制器从总线接受到数据后,CPU再把数据取走。对于单片机而言,操作SJAIO00就象访问外部RAM一样简单。首先,应对SJA1000中的有关控制寄存器写入控制字,进行初始化。之后,CPU即可通过SJA1000接收/发送缓冲区向物理总线接收和发送数据。

  发表评论  
 
  汽配资讯
  车新闻
合作媒体