CAN 协议通信格式
CA N 协议通信格式中有四种帧格式:数据帧、
远程帧、出错帧和超载帧。其中断帧和远程帧的发
送需要在CPU 控制下进行,而出错帧和超载帧的
发送则是在错误发生或超载时自动进行的。数据
帧结构如图1 所示。
一
个完整的数据帧格式,除了仲裁场、控制场、
数据场外都是CA N 控制器发送数据时自动加上去
的,而仲裁场、控制场、数据场则必须由CPU 控制
给出。用SJA 1000 时,写出发送缓冲器的TX ID0 、
TX ID 1 即设定了相应的仲裁场和控制场。TX ID0
即为仲裁场的高8 位,TX ID 1 的高 3 位为仲裁场的
低3 位,组成共11 位的仲裁场。TX ID 1 的第 5 位
为RTR 位,即远程请求位。其在数据帧中为“0”;
TX D 1 低4 位标示数据场所含字节数的多少,称为
D LC 。R TR 和D LC 共同构成控制场。发送的数据
组成数据场,最多不超过8 个字节。远程帧和数据
帧的形式差别在于没有数据场。除此之外,在远程
帧中RTR 位必须置“1”,表示请求数据源节点向它
的目的节点(即发送远程帧的节点)发送数据。源
节点接收到该帧后,把要发磅数据用帧发给目的节
点,完成数据请求。CR C 场与A CK 场都是在低层
次上为提高传输的可靠性而自动进行的。任何帧
与帧之间是帧间空间。
帧起始l f 中裁场制场l 数据场I CRC场l AcK场1 帧结
图1 数据帧结构
3。3 CA N 总线系统的构成
从原理和实现的角度,只要有两个CA N 节点
和将它们连接成一体的通信媒体就可以构成一个
CA N 总线系统,这两个节点之间通过通信媒体交
换信息。而由CA N 总线构成的控制网络的结构一
般由控制器节点、传感器节点、执行器节点以及其
他的监控节点如人机界组成,CAN 作为控制局域
网还可以通过网关和其他网络如以太网互联构成
维普资讯https://www.doczj.com/doc/586904594.html,
170 杨春英:CA N 现场总线系统设计技术及实现总第160 期大型复杂的控制网络结构,如图2 所示。
图2 CA N 总线控制网络结构图
4 CA N 接口模块的设计
R
CA N 接口模块是实现上位机系统和CA N 总
线的连接接口,它的作用和以太网卡相同。CAN
接口模块的设计选用CA N 专业芯片一CA N 网络
控制器。CA N 网络控制器具有完成CA N 通信协
议所要求的物理层和数据链路层的几乎所有功能。
C AN 网络控制器芯片发展至今,已有多个厂家的
各种类型的产品。按照控制器芯片的功能来分,既
有独立的CA N 控制器芯片,如Philips 的SJA 1000 ,
又有集成到微控制器中的控制芯片,这样的芯片中
有8 位控制器芯片,如Phil ips 的P8X C59X 系列芯
片,16 位控制器芯片,如M otorola 的68H C912 系列
以及32 位微控制器芯片,如M otorol a 的M C6837X
系列芯片和带有CA N 的DSP 芯片,如TI 的
TM S320LF24 系列芯片。下面就以SJA 1000 为例
介绍CA N 接口模块的设计。
4.1 SJA 1000 简介
SJA 1000 是一种I/O 设备基于内存编址的微
控制器。双设备的独立操作是通过象R A M 一样
的片内寄存器修正来实现的。在BASIC CAN 模式
下SJA 1000 的寄存器结构及地址分配见表 2 。
表2 SJA IO00 的寄存器结构及地址分配表
SJA 1000 有两种不同的工作模式:复位模式和
工作模式,在不同模式下访问寄存器是不同的。
CA N 控制器工作模式的设定、数据的发送和接收
等都是通过这些寄存器来实现的。时钟分频寄存
器O CR 用于设定SJA 1000 工作于BA SIC CA N 还
是PeliCA N ,还用于CLK O UT 引脚输出时钟频率的
设定,在上电初始化控制器时必须首先设定。通
常,在系统初始化时,先使C R .0 = 1,SJA 1000 进入
复位模式。在此模式下IR 、A CR 、A M R 、BTR 0、BTR 1 及O CR 均可读可写,此时设置相应的初始
值。当退出复位模式时,SJA1000 即按复位时设定
的相应情况工作于工作模式,除非再次使芯片复
位,否则上次设定的值不变。当需要发送信息时,
若发送缓冲器空闲,由CPU 控制信息写入TXB ,再
由CM R 控制发送;当接收缓冲器RX FIF O 未满且
接收信息通过了A SP ,则接收到的信息被写入
FIFO 。读取接收到的信息有两种办法。一种方法
是,在中断被使能的情况下,由SJA1000 向CPU 发
中断信号,CPU 通过SR 及IR 可以识别该中断,并
读取数据释放接收缓冲器;另一种方法是直接读取
SR ,查询RX FIF O 的状态,当有信息接收时,读取该
信息并释放接收缓冲器。当接收缓冲器中有多条
信息时,当前的信息被读取后,接收缓冲器中有多
条信息时,当前的信息被读取后,接收缓冲器有效
信号会再次有效,通过中断方式或查询方式可以再
次读取信息,直到RX FIF O 中的信息被全部读出为
止。当RXFI F O 已满,如还有信息被接收,此信息
不被保存,且发出相应的缓冲器溢出信号供C PU
读取处理。
4.2 原理框图
CA N 控制器接口芯片采用Phihips 公司生产
的PCA 82C250 ,它是CA N 总线控制器和物理总线
的接口,可以提供对CA N 总线的差动发送和接受
能力,具有抗瞬间干扰、保护总线的能力,可以通过
调整CA N 总线上通讯脉冲边沿斜率来降低射频干
扰。其原理框图如图3 所示。
维普资讯https://www.doczj.com/doc/586904594.html,
2007 年第4期舰船电子工程171
图3 CA N 接口模块的原理框图
在该设计中的关键是要完成计算机总线地址/现场总线作为过程自动化、制造自动化、楼宇、
数据分开与SJA 1000 地址/数据复用的转换,方法交通等领域现场智能设备之间的互联通信网络,沟
之一是把数据线作为CA N 控制器的数据地址复用通了生产过程现场控制设备之间及其与更高管理
线,用 A 0 作为地址、数据选择线。CA N 总线的层网络之间的联系。目前国际上存在的多种现场
CA N H 、CAN L 与地之间并联了两个30P 的小电容,总线,有各自的组织、标准、芯片和应用领域。但还
可以起到滤除总线上的高频干扰和一定的防电磁没有一种现场总线能够完全适用于所有的应用领
辐射的能力。另外在两根CA N 总线接入端与地之域。因此应用层的用户要根据自身系统的实际情
问分别反接了一个保护二级管,当CAN 总线有较况、工程的具体要求和经济实力选择适合自身的现
高的负电压时,通过二极管的短路可起到一定的过场总线,使其能充分地发挥长处,同时也使我们的
压保护作用。82C250 的RS 脚上接有一个斜率电工作达到最好的效果。
阻,电阻大小可根据总线通讯速度适当调整,一般
在16K ~140K 之间。为进一步提高抗干扰能力,
在SJA 1000 和82C250 之问加接光电隔离,电源采
用DC —D C 变换器。在复位电路设计中,考虑到便
于电路调试和处理整体运行时出现的问题的需要,
采用三种复位方式,即上电复位、手动复位(调试