汽车通信CAN总线详解.docx

上传人:b****4 文档编号:4721989 上传时间:2023-05-07 格式:DOCX 页数:27 大小:153.25KB
下载 相关 举报
汽车通信CAN总线详解.docx_第1页
第1页 / 共27页
汽车通信CAN总线详解.docx_第2页
第2页 / 共27页
汽车通信CAN总线详解.docx_第3页
第3页 / 共27页
汽车通信CAN总线详解.docx_第4页
第4页 / 共27页
汽车通信CAN总线详解.docx_第5页
第5页 / 共27页
汽车通信CAN总线详解.docx_第6页
第6页 / 共27页
汽车通信CAN总线详解.docx_第7页
第7页 / 共27页
汽车通信CAN总线详解.docx_第8页
第8页 / 共27页
汽车通信CAN总线详解.docx_第9页
第9页 / 共27页
汽车通信CAN总线详解.docx_第10页
第10页 / 共27页
汽车通信CAN总线详解.docx_第11页
第11页 / 共27页
汽车通信CAN总线详解.docx_第12页
第12页 / 共27页
汽车通信CAN总线详解.docx_第13页
第13页 / 共27页
汽车通信CAN总线详解.docx_第14页
第14页 / 共27页
汽车通信CAN总线详解.docx_第15页
第15页 / 共27页
汽车通信CAN总线详解.docx_第16页
第16页 / 共27页
汽车通信CAN总线详解.docx_第17页
第17页 / 共27页
汽车通信CAN总线详解.docx_第18页
第18页 / 共27页
汽车通信CAN总线详解.docx_第19页
第19页 / 共27页
汽车通信CAN总线详解.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

汽车通信CAN总线详解.docx

《汽车通信CAN总线详解.docx》由会员分享,可在线阅读,更多相关《汽车通信CAN总线详解.docx(27页珍藏版)》请在冰点文库上搜索。

汽车通信CAN总线详解.docx

汽车通信CAN总线详解

CAN总线及应用实例

(1)CAN特点

●CAN为多主方式工作,网络上任意智能节点均可在任意时刻主动向网络上其他节点发送信息,而不分主从,且无需站地址等节点信息,通信方式灵活。

利用这特点可方便地构成多机备份系统。

●CAN网络上的节点信息分成不同的优先级(报文有2032种优先权),可满足不同的实时要求,高优先级的数据最多可在134,us内得到传输。

●CAN采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息时,优先级较低的节点会主动地退出发送,大大节省了总线冲突仲裁时间。

●CAN只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式收发数据,无需专门“调度”。

●CAN的直接通信距离最远可达l0km(速率5kbp以下):

通信速率最高可达Mbps(此时通信距离最长为40m)。

●CAN上的节点数主要取决于总线驱动电路,目前可达110个;报文标识符可达2032种(CAN2.0A),而扩展(CAN2.0B)的报文标识符几乎不受限制。

(2)CAN总线协议

CAN协议以国际标准化组织的开放性互连模型为参照,规定了物理层、传输层和对象层,实际上相当于ISO网络层次模型中的物理层和数据链路层。

图3.9为CAN总线网络层次结构,发送过程中,数据、数据标识符及数据长度,加上必要的总线控制信号形成串行的数据流,发送到串行总线上,接收方再对数据流进行分析,从中提取有效的数据。

CAN协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码,数据在网络上通过广播方式发送。

其优点是可使网络内的节点个数在理论上不受限制(实际中受网络硬件的电气特性限制),还可使同一个通信数据块同时被不同的节点接收,这在分布式控制系统中非常有用。

CAN2.0A版本规定标准CAN的标识符长度为11位,同时在2.0B版本中又补充规定了标识符长度为29位的扩展格式,因此理论上可以定义2的11次方或2的19次方种不同的数据块。

遵循CAN2.0B协议的CAN控制器可以发送和接收标准格式报文(11位标识符)或扩展格式报文(29位标识符),如果禁止CAN2.0B则CAN控制器只能发送和接收标准格式报文而忽略扩展格式的报文,但不会出现错误。

每个报文数据段长度为0-8个字节,可满足通常工业领域中控制命令、工作状态及检测数据传送的一般要求。

同时,8个字节占用总线时间不长,从而保证了通信的实时性。

CAN协议采用CRC检验并提供相应的错误处理功能,保证了数据通信的可靠性。

对象层:

报文滤波、报文和状态的处理

传输层:

故障界定、错误检测和信令、报文校验、应答、仲裁、报文分帧、传输速率和定时

物理层:

信号电平和位表示、传输媒体

图3.9CAN总线层次结构

(3)报文传送和帧结构

CAN总线以报文为单位进行信息传送。

报文中包含标识符,它标志了报文的优先权。

CAN总线上各个节点都可主动发送。

如同时有两个或更多节点开始发送报文,采用标识符ID来进行仲裁,具有最高优先权报文节点赢得总线使用权,而其他节点自动停止发送。

在总线再次空闲后,这些节点将自动重发原报文。

CAN系统中,一个CAN节点不使用有关系统结构的任何信息。

报文中的标识符并不指出报文的目的地址,而是描述数据的含义。

网络中的所有节点都可有标识符来自动决定是否接收该报文。

每个节点都有标识符寄存器和屏蔽寄存器,接收到的报文只有与该屏蔽的功能相同时,该节点才开始正式接收报文,否则它将不理睬标识符后面的报文。

CAN支持4种不同类型报文帧:

数据帧、远程帧、出错帧、超载帧、帧间空间

1)数据帧用于在各个节点之间传送数据或命令,它有7个不同的位场组成:

帧起始、仲裁场、控制场、数据场、CRC场、应答场和帧结束,如图3.10-13所示。

图3.10数据帧

●帧起始标志数据帧的开始。

它由一个主控位构成。

●仲裁场由11位标识符(M)和远程发送请求位(RTR)组成,其中最高7位。

不能全是隐性位。

M决定了报文的优先权。

如主控位为0,隐性位为1,则M的数值越小,优先权越高。

对数据帧,RTR为主控电平。

●控制场r1和r0为保留位,应发送主控电平。

DLC为数据长度码n,它为0-80

●数据场允许的数据字节长度为0-8,由n决定。

●应答场包括应答位和应答分隔符。

发送站发出的这两位均为隐性电平。

而正确地接收到有效报文的接收站,在应答位期间应传送主控电平给发送站。

应答分隔符为隐性电平。

●帧结束由7位隐性电平组成。

图3.11仲裁场

图3.12仲裁场扩展格式

图3.13控制场

以上为标准格式的数据帧,除此之外,在CAN规范2.0B中,还定义了扩展格式的数据帧,它的标识符扩展为29位。

它的前11位标识符后的两位为SRR和ME,它们均为隐性电平,后面为新增的18位标识符,其余与标准格式相同。

表3.2数据长度码中数据字节数目编码

数据字节数目

数据长度码

DLC3

DLC2

DLC1

DLC0

0

d

d

d

d

1

d

d

d

r

2

d

d

r

d

3

d

d

r

r

4

d

r

d

d

5

d

r

d

r

6

d

r

r

d

7

d

r

r

r

8

r

d

d

d

2)远程帧

图3.14远程帧

3)出错帧

图3.15出错帧

1)超载帧

图3.16超载帧

(4)CAN通信接口

图3.17是CAN通信部分电路,SJA1000是一种独立用于移动目标和一般工业环境中的区域网络控制。

它是Philips半导体公司PCA82C200CAN控制器(BasicCAN)的替代品,而且它增加了一种新的操作模式-PeliCAN,这种模式支持具有很多新特性的CAN2.0B的协议,独立的CAN控制器有2个不同的操作模式:

BasicCAN模式和PeliCAN模式其中BasicCAN模式可和PCA82c250相兼容BasicCAN模式是上电后默认的操作模式,因此用PCA82C250(是协议控制器和物理传输线路之间收发器)开发的已有硬件和软件可以直接在SJA1000上使用而不用作任何修改;PeliCAN模式是新的操作模式它能够处理所有CAN2.0B规范的帧类型而且它还提供一些增强功能和SJA1000能应用于更宽的领域。

图3.17CAN通信部分电路

1)SJA1000的特征能分成3组:

①已建立的PCA82C200功能这组的功能已经在PCA82C200里实现。

②改良的PCA82C200功能这组功能的部份已经在PCA82C200里实现但是在SJA1000里这些功能在速度大小和性能方面得到了改良。

③PeliCAN模式的增强功能在PeliCAN模式里SJA1000支持一些错误分析功能支持系统诊断系统维护系统优化而且这个模式里也加入了对一般CPU的支持和系统自身测试的功能。

SJA1000管脚:

AD0----AD7:

地址/数据复用信号

ALE/AS:

ALE输入信号(Intel模式),AS输入信号(Motorola模式)

/CS:

片选信号,低电平有效

/RD:

微控制器的/RD信号(Intel模式),或E使能信号(Motorola模式)

/WR:

微控制器的/WR信号(Intel模式),或R/W使能信号(Motorola模式)

CLKOUT:

提供给微控制器的时钟输出信号,通过可编程分频器由内部晶振产生;时钟分频寄存器的时钟关闭位可禁止该引脚。

VSS1:

接地端,VSS2:

输入比较器接地端,VSS3:

输出驱动器接地端。

VDD1:

逻辑电路的5V电源,VDD2输入比较器5V电源,VDD3输出驱动器5V电源。

XTAL1,2:

分别位振荡器放大电路输入输出。

MODE:

模式选择输入,1=Intel模式,0=Motorola模式。

TX0,TX1:

由输出驱动器0、1到物理线路的输出端。

/INT:

中断输出,开漏输出。

/RST:

复位输入。

RX0,RX1:

由物理总线到SJA1000输入比较器的输入端,显性电平将会唤醒SJA1000的睡眠模式;如果RX1>RX0的电平高,读出为显性电平,反之读出的隐性电平;如果时钟分频寄存器的CBP位被置位,就忽略CAN输入比较器以减少内延时(此时连有外部收发电路);这种情况下只有RX0是激活的;隐性电平被认为是高,而显性电平被认为是低。

PCA82C250/251收发器是协议控制器和物理传输线路之间的接口,对总线提供差动发送能力,对CAN控制器提供差动接收能力,可连接110个节点。

PCA82C250/251管脚:

TXD:

发送数据输入

GND:

Vcc:

电源4.5——5.5V

RXD:

接收数据输出

Vref:

参考电压输出

CANH:

低电平CAN电压输入/输出

CANH:

高电平CAN电压输入/输出

Rs:

斜率电阻输入,接地选择高速工作模式

2)SJA1000的基本功能和寄存器:

1BasicCAN功能说明

表3.3为SJA1000寄存器说明。

表3.3SJA1000寄存器说明

地址

功能段

操作模式中的寄存器功能

复位模式中的寄存器高功能

0

各类控制器

1

控制

控制

控制

控制

2

FFH

命令

FFH

命令

3

状态

状态

4

FFH

中断

5

FFH

验收代码

验收代码

6

FFH

验收屏蔽

验收屏蔽

7

FFH

总时序0

总时序0

8

FFH

总时序1

总时序1

9

测试

测试

测试

测试

10

发送缓冲器

标识符位域

10-3

标识符位域10-3

FFH

11

标识符位域

2-0RTR和DLC位域

标识符位域

2-0RTR和DLC位域

FFH

12-

19

数据字节1——数据字节8

数据字节1——数据字节8

FFH——

FFH

―…

20

接受缓冲器

标识符位域

10-3

标识符位域

10-3

标识符位域

10-3

标识符位域

10-3

21

标识符位域

2-0RTR和DLC位域

标识符位域

2-0RTR和DLC位域

标识符位域

2-0RTR和DLC位域

标识符位域

2-0RTR和DLC位域

22-29

数据字节1——数据字节8

数据字节1——数据字节8

数据字节1——数据字节8

数据字节1——

数据字节8

30

FFH

FFH

31

时钟分频器

时钟分频器

时钟分频器

时钟分频器

时钟分频器

[1]控制寄存器(CR):

如表3.4所示。

表3.4控制寄存器

符号

名称

功能

CR.7

CR.6

CR.5

CR.4

OIE

超载中断使能

1

使能:

如果数据超载位置位,微控制器接收一个超载中断信号

0

禁止:

微控制器不从SJA1000接收超载中断信号

CR.3

EIE

错误中断使能

1

使能:

如果出错或总线状态改变,微控制器接收一个错误中断信号

0

禁止:

微控制器不从SJA1000接收错误中断信号

CR.2

TIE

发送中断使能

1

使能:

当报文被成功或发送缓冲器可再次被访问时,SJA1000向微控制器发出一次发送中断信号

0

禁止:

SJA1000不向微控制器发送中断信号

CR.1

RIE

接收中断使能

1

使能:

报文被无错误接收时,SJA1000向微控制器发出一次中断信号

0

禁止:

SJA1000不向微控制器发送接收中断信号

CR.0

RR

复位请求

1

常态:

SJA1000检测到复位请求后,忽略当前发送/接收的报文,进入复位模式

0

非常态:

复位请求位接收到一个下降沿后,SJA1000回到工作模式

[2]命令寄存器(CMR):

如表3.5所示。

表3.5命令寄存器

符号

名称

功能

CMR.7

CMR.6

CMR.5

CMR.4

CTS

睡眠

1

睡眠:

如果没有CAN中断等待和总线活动,SJA1000进入睡眠模式

0

唤醒:

SJA1000正常工作模式

CMR.3

CDO

清除超载状态

1

清除:

清除数据超载状态位

0

无作用

CMR.2

RRB

释放接收缓冲器

1

释放:

接收缓冲器中存放报文的内存空间将被释放

0

无作用

CMR.1

AT

夭折发送

1

常态:

如果不是在处理过程中,等待处理的发送请求将忽略

0

非常态:

无作用

CMR.0

TR

发送请求

1

常态:

报文被发送

0

非常态:

无作用

[3]状态寄存器(SR):

如表3.6所示。

表3.6状态寄存器

符号

名称

功能

SR.7

BS

总线状态

1

总线关闭:

SJA1000退出总线活动

0

总线开启:

SJA1000进入总线活动

SR.6

ES

出错状态

1

出错:

至少出现一个错误计数器满或超过CPU报警机制

0

正常:

两个错误计数器都在报警限制以下

SR.5

TS

发送状态

1

发送:

SJA1000正在发送报文

0

空闲:

没有要发送的报文

SR.4

RS

接收状态

1

接收:

SJA1000正在接收

0

空闲:

没有要接收的报文

SR.3

TCS

发送完毕状态

1

完成:

最近一次发送请求被成功处理

0

未完成:

当前发送请求未处理完毕

SR.2

TBS

发送缓冲器状态

1

释放:

CPU可以向发送缓冲器写报文

0

锁定:

CPU不能访问发送缓冲器,有报文正在等待发送或正在发送

SR.1

DOS

数据超载状态

1

超载:

报文丢失,因为RXFIFO中没有足够的空间来存储它

0

未超载:

自从最后一次清除数据超载命令执行,无数据超载发生

SR.0

RBS

接收缓冲状态

1

满:

RXFIFO中有可用报文

0

空:

无可用报文

[4]中断寄存器(IR):

如表3.7所示。

表3.7中断寄存器

符号

名称

功能

IR.7

IR.6

IR.5

IR.4

WUI

唤醒中断

1

置位:

退出睡眠模式时此位被置位

0

复位:

微控制器的任何读访问将清除此位

IR.3

DOI

数据超载中断

1

置位:

当数据超载中断使能位被置为1时,数据超载状态位由低到高的跳变,将其置位。

0

复位:

微控制器的任何读访问将清除此位

IR.2

EI

错误中断

1

置位:

错误中断使能时,错误状态位或总线状态位的变化会置位此位

0

复位:

微控制器的任何读访问将清除此位

IR.1

TI

发送中断

1

置位:

发送缓冲器状态由低到高的跳变(释放)和发送中断使能时,置位此位

0

复位:

微控制器的任何读访问将清除此位

IR.0

RI

接收中断

1

置位:

当接收FIFO不空和接收中断使能时置位此位

0

复位:

微控制器的任何读访问将清除此位

[5]验收代码寄存器(ACR):

如表3.8所示。

表3.8验收代码寄存器

BIT7

BIT6

BIT5

BIT4

BIT3

BIT2

BIT1

BIT0

AC.7

AC.6

AC.5

AC.4

AC.3

AC.2

AC.1

AC.0

复位请求位被置高(当前)时,该寄存器可以访问。

如果一条报文通过了接收滤波器的测试而且接收缓冲器有空间,描述符和数据将被分别顺次写入RXFIFO,当报文被正确的接收完毕,则有:

接收状态位置高(满);接收中断使能位置高(使能),接收中断置高(产生中断)。

验收代码(AC.7~AC.0)和报文标识符的高8位(ID.10~ID.3)必须相等,或验收屏蔽位(AM.7~AM.0)的所有位为1。

即如果满足以下方程的描述,则予以接收。

[(ID.10~ID.3)≡(AC.7~AC.0)]∨(AM.7~AM.0)≡11111111

[6]验收屏蔽寄存器(AMR):

如表3.9所示。

表3.9验收屏蔽寄存器

BIT7

BIT6

BIT5

BIT4

BIT3

BIT2

BIT1

BIT0

AM.7

AM.6

AM.5

AM.4

AM.3

AM.2

AM.1

AM.0

复位请求位被置高(当前)时,该寄存器可以访问。

验收屏蔽寄存器定义验收代码寄存器的哪些位对接收过滤器是“相关的”或“无关的”(即可为任意值)

当AM.i=0时,是“相关的”

当AM.i=1时,是“无关的”(i=0~7)

[7]发送缓冲区:

如表3.10所示。

表3.10验收屏蔽寄存器

CAN地址

名称

7

6

5

4

3

2

1

0

描述符

10

标识符字节1

ID.10

ID.9

ID.8

ID.7

ID.6

ID.5

ID.4

ID.3

11

标识符字节2

ID.2

ID.1

ID.0

RTR

DLC.3

DLC.2

DLC.1

DLC.0

数据

12

TX数据1

发送数据字节1

13

TX数据2

发送数据字节2

14

TX数据3

发送数据字节3

15

TX数据4

发送数据字节4

16

TX数据5

发送数据字节5

17

TX数据6

发送数据字节6

18

TX数据7

发送数据字节7

19

TX数据8

发送数据字节8

标识符(ID):

11位,就像报文的名字,值越低,优先级越高。

远程发送请求(RTR):

当RTR=1,总线以远程帧发送数据。

如果RTR没有被置位,数据将以数据长度码规定的长度来传送数据帧。

数据长度码(DLC):

数据字节数=8×DLC.3+4×DLC.2+2×DLC.1+DLC.0

报文数据区的字节数根据数据长度码编制。

在远程帧传送中,因为RTR被置位,数据长度码是不被考虑的。

这就迫使发送/接收数据字节数为0。

然而,数据长度码必须正确设置,以避免两个CAN控制器用同样的识别机制启动远程帧传送而发生总线错误。

数据字节数是0-8。

数据区:

传送的数据字节数由数据长度码决定。

发送的第一位是地址12单元的数据字节1的最高位。

③BasicCAN和PeliCAN公用寄存器

[1]总线时序寄存器0(BTR0):

如表3.11所示。

表3.11总线时序寄存器0

BIT7

BIT6

BIT5

BIT4

BIT3

BIT2

BIT1

BIT0

SJW.1

SJW.0

BRP.5

BRP.4

BRP.3

BRP.2

BRP.1

BRP.0

波特率预置器位域

位域BRP使得CAN系统的时钟的周期时tSCL是可编程的:

同步跳转宽度位域

为了补偿在不同总线控制器的时钟振荡器之间的相位漂移,任何总线控制器必须在当前传送的任一相关信号边沿重新同步。

同步跳转宽度

定义了一个位周期可以被一次重新同步缩短或延长的时钟周期的最大数目。

[2]总线时序寄存器1(BTR1):

如表3.12、13所示。

总线时序寄存器1定义了一个位周期的长度、采样点的位置和在每个采样点的采样数目。

在复位模式中,这个寄存器可以被读/写访问。

在PeliCAN模式的操作模式中,该寄存器是只读的,在BasicCAN模式的操作模式中总是“FFH”

表3.12总线时序寄存器1

BIT7

BIT6

BIT5

BIT4

BIT3

BIT2

BIT1

BIT0

SAM

TSEG2.2

TSEG2.1

TSEG2.0

TSEG1.3

TSEG1.2

TSEG1.1

TSEG1.0

采样位(SAM)

表3.13采样位

功能

SAM

1

3次:

总线采样3次,建议在低/中速总线上使用,这对过滤总线上的毛刺是有效的

0

单次:

总线采样1次,建议使用在高速总线上

时间段1和时间段2位域

[3]输出控制寄存器(OCR):

如表3.14-16所示。

允许软件控制建立不同输出驱动的配置。

在复位模式中,这个寄存器可以被读/写访问。

在PeliCAN模式的操作模式中,该寄存器是只读的,在BasicCAN模式的操作模式中总是“FFH”。

表3.14输出控制寄存器

BIT7

BIT6

BIT5

BIT4

BIT3

BIT2

BIT1

BIT0

OCTP1

OCTN1

OCPOL1

OCTP0

OCTN0

OCPOL0

OCMODE1

OCMODE0

在SJA1000在睡眠模式中,TX0、TX1根据输出控制寄存器的内容输出隐性的电平。

在复位

状态(复位请求=1)或外部复位引脚/RST被拉低时,TX0、TX1悬空。

表3.15输出控制寄存器

OCMODE1

OCMODE0

说明

0

0

双相输出模式:

与正常输出模式相反

0

1

测试输出模式:

在下一次系统时钟的上升沿RX上的电平反映到TXX上,系统时钟(fosc/2)与输出控制寄存器中的编程定义的极性相对应。

1

0

正常输出模式:

通过TX0、TX1送出,取决于OCTPX、OCTNX、OCPOLX编程。

1

1

时钟输出模式:

TX0同正常输出模式,TX1由发送时钟TXCLK取代

表3.16输出引脚配置

驱动

TXD

OCTPX

OCTNX

OCPOLX

TPX

TNX

TXX

悬空

×

0

0

×

悬空

上拉

0

0

1

0

1

0

1

0

悬空

0

0

1

1

悬空

1

0

1

1

下拉

0

1

0

0

悬空

1

1

0

0

0

1

0

1

1

1

0

1

悬空

下拉推挽

0

1

1

0

1

1

1

0

0

1

1

1

1

1

1

1

[4]时钟分频寄存器:

如表3.17-18所示。

表3.17时钟分频寄存器

BIT7

BIT6

BIT5

BIT4

BIT3

BIT2

BIT1

BIT0

CAN模式

CBP

RXINTEN

0保留

CLOCKOFF

CD.2

CD.1

CD.0

=0,工作BasicCAN

=1,工作PeliCAN

=1,只有RX0起作用,RX1应接到确定电平。

例如Vss

允许TX1输出用来做专用接收中断输出

时钟关闭位1有效

表3.18CLKOUT频率选择

CD.2

CD.1

CD.0

时钟频率

0

0

0

fosc/2

0

0

1

fosc/4

0

1

0

fosc/6

0

1

1

fosc/8

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2