基于AVR的CAN总线通信协议分析技术
摘 要 介绍了一种基于AVR单片机的CAN总线通信协议分析技术.采用逻辑分析仪先分析 CAN总线上主机对各节点进行控制所产生的不同问答数据的含义.再使用 AVR单片机 ATmega168L控制独立的 CAN控制器 MCP2510对 CAN总线上的报文进行监听,并通过上位机传输给 Pc机显示.结合 CAN总线规范及先前分析的问答数据的定义,通过 Pc机上显示的 报文对协议进行完整的分析.
关键词 CAN总线;AVR;上位机 SPI
1 CAN总线规范概述
      CAN(controller area network),即控制器局域网,是一种串行通信协议,具有较高的安全性能及错误处理能力.作为一种可靠,高效及经济的平台,CAN总线凭借诸多优点广泛应用于汽车系统、机械设备、工业控制等分布实时系统中,取代了传统控制系统中复杂的接线配线.成为目前广泛使用的现场 总线之一.但是,国内一些厂家在开发网络产品时缺乏 CAN总线标准化的指导,导致不同网络产品互不兼容,削弱了不同产品之间的互操作性¨J.特别是在
CAN总线的应用最为广泛汽车行业,由于不同汽车生产厂家对产品的CAN总线上数据含义的定义各不相同且不对外公开,使得对不同汽车的性能进行诊断变得异常困难.因此对 CAN总线通信协议进行分析尤为重要.
    目前所使用的CAN总线规范V2.0版本主要由A,B两部分组成.A部分即CAN规范VI.2版本,其采用的地址范围由 11个识别位定义,即标准格式, B部分包括标准格式和扩展格式,后者为应对地址范围扩大而制定的29个识别位格式.标准格式与扩展格式的区别在于扩展格式使用了 CAN1.2版本中的第一个保留位,因而扩展格式仍是有效的.为了兼容 CAN2.0,规定 CAN设备应采用 CAN2.0中的A或 B部分 引.
2 CAN总线通信协议分析
2.1 协议分析原理
      CAN总线被细分为三个不 同的层次:对象层 (object layer)、传输层(transfer layer)和物理层(phy— ical layer).对象层和传输层相当于 ISO/OSI模型定义的数据链路层.对象层的作用包括:查被发送的报文;确定由实际要使用的传输层接收哪一个撤文;为应
用层相关硬件提供接口.这里的定义对象处理较为灵活.传输层的作用主要是传送规则,也就是控制帧结构、执行仲裁、错误检测、出错标定、故障界定.总线上什么时候开始发送新报文及什么时候 开始接收报文,均在传输层里确定.所以传输层的修 改是受到限制的.物理层的作用是在不同节点之间根据其电气属性进行位信息的实际传输.在选择物理层方面比较自由 J.
    对CAN总线的协议分析主要有以下三个步骤:
    1)使用逻辑分析仪对特定网络产品的 CAN总线上主机对各节点控制所产生的问答数据进行分析.从中可以获得主机与节点之间通信的波特率,及数据所表示的含义.如在汽车系统中,那个数据表示引擎,那个数据表示出现故障等.
    2)设计出基于AVR的单片机系统.AVR单片机对 CAN总线上的报文进行监听.并通过上位机送 Pc机显示.获取主机与各节点的所有问答数据.
    3)对获取的问答数据根据 CAN总线规范及先前用逻辑分析仪所获取的数据含义表进行完整分析该系统的 CAN总线协议.
168汽车网
    全文  基于AVR的CAN总线通信协议分析技术.pdf