文档库 最新最全的文档下载
当前位置:文档库 › CAN总线特点与规范

CAN总线特点与规范

CAN总线特点与规范
CAN总线特点与规范

CAN总线特点与规范

CAN 总线规范:

CAN总线属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络,位速率可高达1MBPS。可以应用在汽车控制系统,自动化电子领域中的各种部件(传感器,灯光,执行机构等)与主机连接组成CAN 网络。本章介绍通过CAN总线与液晶显示器的连接。

CAN 具有下列主要特性:

1 多主站依据优先权进行总线访问。

总线开放时,任何单元均可开始发送报文,具有最高优先权的报文的单元赢得总线访问权。利用这个特点可以用液晶显示器作为多主机的公用监视器,不用每台主机配一个监视器,从而节约系统成本。

2 无破坏性的基于优先权的仲裁。

网络上的每个主机可以同时发送,哪个主机的数据可以发送出去取决于主机所发送报文的标识符决定的优先权的大小,没有发送出去的帧可自动重发。以后将介绍数据怎样仲裁。

3 借助接收滤波的多地址帧传送

收到报文的标识符与本机的接收码寄存器与屏蔽寄存器相比较,符合的报文本机才予以接收。

4.远程数据请求。

网络上的每个接点可以发送一个远程帧给另一个接点,请求该接点的数据帧,该数据帧与对应的远程帧以相同的标识符ID命名。

5.配置灵活性

通过八个寄存器进行接点配置,每个接点可以接收,也可以发送。

6.全系统数据相容性

7.错误检测和出错信令

有五种错误类型,每个接点都设置有一个发送出错计数器和一个接收出错计数器。发送接点和接收接点在检测到错误时,出错计数器根据一定规则进行加减,并根据错误计数器数值发送错误标志(活动错误标志和认可错误标志),当错误计数器数值大于255时,该接点变为“脱离总线”状态,输出输入引脚浮空,既不发送,也不接收。

CAN 中的总线数值为两种互补逻辑数值:“显形”和“隐性”,用差分电压表示。

“显形”表示逻辑“0”,显性状态用大于最小阈值的差分电压表示。

“隐性”表示逻辑“1”,这时输出的差分电压Vdiff 近似为0,Vcanh ,Vcanl固定于平均电压电平,显性位与隐性位同时发送时,最后总线数值为显性。在总线空闲或隐性位期间,

平均电压

显性位

总线位的数值表示

CAN 系统内两个任意节点之间的最大传输距离与其位速率有关,在一个给定系统中,位速率是唯一的,并且是固定的。两节点间的最大距离见下表。

CAN的分层结构

CAN遵从OSI模型,CAN结构划分为两层:数据链路层和物理层

数据链路层又划分为:逻辑链路控制(LLC)和媒体访问控制(MAC)

LLC提供的功能包括:帧接收滤波,超载通告和恢复处理。

帧接收滤波:帧内容有其标识符命名,接收器只接收标识符与接收单元定义的标识符相一致的帧,其它帧忽略。

超载通告:如果接收器内部条件要求延迟一个数据帧或远程帧,则可以发送一个超载帧。最多可以发送两个超载帧。

恢复处理:发送期间,对于丢失仲裁和被错误干扰的帧,LLC子层具有自动重发功能,直至成功发送。

MAC子层分为两个完全独立工作的部分,即接收和发送部分。

发送部分提供的功能包括:数据封装,发送媒体访问管理。

1.数据封装:接收LLC帧和接口控制信息,通过向LLC帧附加SOF,RTR,CRC,ACK,和EOF位构造MAC帧。

2.发送媒体访问管理:

·确认总线空闲后,开始发送过程。

·MAC帧串性化,输出串性化流到物理层准备发送。

·插入填充位

·在丢失仲裁的情况下,退出仲裁并转入接收方式。

·错误检测

·应答校验

·确认超载条件,构造超载帧并开始发送

·构造出错帧并开始发送

接收部分提供的功能包括:数据拆装,接收媒体访问管理

接收媒体访问管理

·由物理层接收串性位流,并重新构筑帧结构

·解除位填充

·错误检测

·发送应答

·确认超载条件,构造超载帧并开始发送

·构造出错帧并开始发送

2 数据拆装

由接收帧中去除MAC特定信息

输出LLC帧和接口控制信息到LLC子层

物理层定义CAN接口单元连接至总线的电路实现部分。接口单元的总数受限与总线上的电气负载。

物理层又划分为:

---物理信令(PLS)

位编码/解码,定时,和位同步

---物理媒体附属装置(PMA)

总线发送和接收的功能电路,并提供总线故障检测方法。

---媒体相关接口(MDI)

定义与物理媒体的机械和电气接口。

接口之间用两根并排双绞线相互连接

分层结构图示

以下讲述LLC帧和MAC帧结构及各子层功能实现的细节

一LLC帧结构

1LLC数据帧

LLC数据帧包括三个位场:即标识符场,数据长度场(DLC),数据场。

如图所示

(~ID-4)不应全为“1”

(2)DLC场:DLC场二进制数值指出数据场字节个数,由四位构成,数据场长度允许数据字节数目范围为0~8,也就是DLC场数值不能大于8

(1000)。

(3)数据场:数据场由数据帧内被发送数据组成,它可包括0~8个字节。

2LLC 远程帧

LLC 远程帧由两个位场(标识符场和DLC场)组成,不包括数据场。

LLC 远程帧标识符场与LLC数据帧标识符场格式相同。DLC场的数值是独

立的,此数值为请求的数据帧的数据长度码。

二MAC帧结构

CAN系统中,数据在节点间发送和接收以四种不同类型的帧出现和控制,即

数据帧

数据由发送器传至接收器。

远程帧

由节点发送,以请求另一个节点发送具有相同标识符的数据帧

出错帧

当任何节点检测到出错条件时,都可向总线发送出错帧

超载帧

在节点满足超载条件时,可以在相临数据帧或远程帧之间发送一个到两个超载帧,用于提供相临数据帧或远程帧之间的附加延时。

另外数据帧或远程帧以帧间空间的位场同先前发送的上述四种类型的帧隔

开。

1 MAC数据帧

一个MAC数据帧由七个位场构成。如下图所示,它们是:帧起始场(SOF),仲裁场,控制场(两位保留位+DLC场),数据场,CRC场,ACK场,和帧结束场(EOF)(1)帧起始场(SOF):标志数据帧和远程帧的起始,它由单个“显性”位构成。只有当总线为空闲状态时,才允许节点开始发送,所有节点必须同步于首先开始发送的帧起始引起的上升沿。

(2)仲裁场:仲裁场由LLC子层的标识符和RTR位构成,在MAC数据帧中,RTR位数值为“0”

(3)控制场:控制场由6位构成,包括两位将来DLC扩展的保留位,总是

为“0”。

(4)数据场:MAC数据场与LLC数据场格式相同。

(5)CRC场:CRC场包括CRC序列,后随CRC界定符。用于帧校验的CRC序列由特别使用于位数小于127位帧的循环冗余码校验驱动。为

实现CRC计算,被除的多项式被定义为这样一个多项式,其系数由帧

起始,仲裁场,控制场,数据场和15位最低系数为0组成的解除填充

的位流给定。此多项式被下列生成多项式相除(系数按模2计算),余

数即为发至总线的CRC序列。

X15+X14+X10+X8+X7+X4+X3+1

为实现这一功能,可以使用15位移位寄存器CRC(14:0),NXTBIT表示上面提到的数据帧构成的位流的下一位,CRC序列计算如下:

CRC(14:0)=0;

REPEAT

CRCNXT=NXTBIT exor CRC(14)

CRC(14:1)=CRC(13:0)CRC(0)=0,//左移一位,最低位补0

If crcnxt then

Crc(14:0)=crc(14:0)exor (4599);

End if

Until (nxtbit=数据结束或存在一个错误条件)。

数据场最后一位发送/接收后,CRC(14:0)中含有CRC序列。CRC序列后随的CRC 界定符仅有单个“隐性”位构成。

(6)ACK场:ACK场由两位:ACK隙和ACK界定符。发送节点发送两个隐性位。在ACK隙期间,接收到匹配数据帧的节点,以显性位改写发送器的隐性位作为ACK应答。

(7)帧结束:帧结束场由7个“隐性“位构成

2 MAC远程帧

激活为数据接收器的节点可以通过发送一个远程帧启动源节点发送数据。一个远程帧由6个位场构成:帧起始场(SOF),仲裁场,控制场(两位保留位+DLC场),CRC 场,ACK场,和帧结束场(EOF),无数据场。

其中仲裁场也有LLC子层的标识符场和RTR位构成,但这时RTR 为“1“,表示远程帧。其它位场与数据帧相同。

3出错帧

出错帧由两个位场构成,第一个位场由来自不同节点的错误标志叠加给出,

第二个位场为错误界定符,由8个“隐性位“构成

(1)错误标志

由两种错误标志形式:活动错误标志和认可错误标志。活动错误标志由6位

“显性“位构成。认可错误标志由6位”隐性“位构成,认可错误标志的这

些位可由来自其它节点的”显性“位改写。

一个检测到出错状态的“错误-激活“节点,借助发送活动错误标志来标注。

此错误标志形式将破坏要求满足位填充规则的位场或破坏其它要求固定形式

的位场。这样其它节点将检测到一个出错条件,并开始发送相应的出错标志。

因此,这时总线上监控到的”显性“位序列是各个节点发送的不同错误标志

叠加而成。此序列总长度在6~12位之间变化。

错误-认可型节点检测到出错条件后,将试图发送一个认可错误标志来标注。

错误-认可型节点将等待6个连续的隐性位(认可出错标志),当在这6位被检

测完毕,认可型出错标志即完成。

由于数据帧和远程帧传送期间检出错误(活动错误),则当前报文被放弃,并

且为报文的重新传送进行初始化,并发送一个出错帧,自检出错误到下一个

报文开始发送的恢复时间,如果不存在新的错误最多为29个位时间。

发送错误标志的时点:节点在检测到位错误,填充错误,形式错误或应答错

误时,该节点将在下一位开始发送出错标志,当检测到CRC错误时,出错标志

在紧跟应答界定符后的一位开始发送,除非其它出错条件的出错标志已经开

始发送。

4超载帧

超载帧包括两个位场:超载标志和超载界定符。超载标志与活动错误标志一样由6位“显性“位构成。超载界定符与错误界定符格式相同,由8个“隐性位“构成。存在两个条件导致发送超载帧,一个条件是接收器线路在接收下一帧前需要更多的时间处理当前数据,亦即接收器未准备好;另一个条件是在间歇场期间测出显性位(间歇场要求三个隐性位,若不满足即超载)。超载帧的发送也相应的起始于两个条件,一个是所希望间歇场的第一位周期期间;另一个是间歇场期间检测出显性位后的一个位周期。由于超载标志破坏了间歇场的固定形式,因此所有其它节点同时开始发送超载标志。

5帧间空间

数据帧或远程帧以帧间空间的位场同先前发送的上述四种类型的帧隔开。而超载帧和出错帧前面不存在帧间空间。

帧间空间包括间歇场和总线空闲场,并且对于先前帧已发送“错误-认可“标志的节点还包括暂停发送场。即间歇场+暂停发送场+总线空闲场。

(1)、间歇场

间歇场由三个隐性位构成。间歇期间不允许节点开始发送数据帧或远程帧。(2)总线空闲场

总线空闲场可以是任意长度。总线空闲(隐性)时,任何节点均可访问总线以便发送。其它帧发送期间,等待发送的帧在紧随其间歇场后的第一位启动。如果在总线空闲期间检测到总线上“显性位“将被认为是帧起始。

(3)暂停发送场

“错误-认可“节点完成发送后,在发送间歇场后,将发送8位”隐性“位的暂停发送场,期间若有其它节点引起的发送启动,则该节点变为该发送帧的接收器。

三位填充及发送/接收

帧起始场,仲裁场,控制场,数据场,CRC场均以位填充方法进行编码。在发送器在发送位流中检测到5个数值相同的位时,自动插入一个补码位。CRC界定符,ACK场,和帧结束场为固定形式,不进行填充处理。出错帧和超载帧也为固定形式,同样也不进行填充处理。

一帧应由其SOF场开始发送,在一场内应首先发送最高位。

对于发送器和接收器一帧的有效时点是不同的。对于发送器,若在帧结束完成前不存在错误,则该帧有效。否则,则进行恢复处理。对于接收器,若在帧结束最后一位前不存在错误,则该帧有效。

四媒体访问和仲裁

当检测到间歇场未被“显性位”中断后,认为总线被释放。总线一旦被释放,“错误-活动”节点可以访问总线,接收当前或先前帧的错误-认可“节点可以访问总线。一旦完成暂停的发送,并且期间没有其它节点开始发送,发送当前或已发送完先前帧的错误-认可“节点可以访问总线。当允许节点访问总线时,MAC数据帧和远程帧可以起始,MAC错误帧和超载帧如上述规定被发

送。

发送期间,发送数据帧和远程帧的每个节点均为总线主站,当许多节点一起开始发送时,此时只有发送具有最高优先权帧的节点变为总线主站。这种解决总线访问冲突的机制运用逐位仲裁规则。仲裁期间,每个发送器将发送位电平同总线上的电平进行比较。若相等,则节点可以继续发送。若送出一个隐性电平,而检测到的为显性电平,表明节点丢失仲裁,该节点自动退出发送。当送出一个显性电平,而检测到的为隐性电平,表明节点检测出位错误。基于竞争的仲裁依靠标识符和其后的RTR位完成,标识符和其后的RTR位表明当前帧的优先权的大小,具有较低值的标识符具有较高的优先权,数据帧较之相同标识符的远程帧具有较高的优先权,通过比较RTR位数值。

除仅当总线释放时,可以启动发送这一原则外,还存在解决冲突的下列原则:·在一个系统内,每条信息必须标以唯一的标识符。

·具有给定标识符和非零DLC的数据帧仅可由一个节点启动。

·远程帧仅可以全系统内确定的DLC发送,该数据长度码为对应数据帧的DLC。具有相同标识符和不同DLC远程帧的同时发送将导致不能解决的冲突。

五错误检测

MAC子层具有下列错误检测类型:监测,填充规则检查,帧校验,CRC校验,和应答校验。

1错误类型

(1)位错误

向总线送出一位的某个节点同时也在监视总线。当监视到的总线位数值与送出的为数值不同时,则在该位时刻检出一个位错误。例外情况是,在仲裁场的填充位流期间或应答间隙期间送出“隐性位“,而检测到一个显性位,不视为位错误。送出认可错误标志的发送器,而检测到”显性“位时,也不视为位错误。

(2)填充错误

在应使用位填充方法进行编码的报文中,出现了第六个连续相同的位电平时,将检出一个填充错误。

(3)CRC错误

CRC序列是由发送器CRC计算结果组成的。接收器以与发送器相同的方法计算CRC。如计算结果与接收到的CRC序列不相同,则检出一个CRC错误。(4)形式错误

当固定形式的位场中出现一个或更多非法位时,则检出一个形式错误。(5)应答错误

在应答间隙期间,发送器未检测到“显性“位,则有它检出一个应答错误。当检测到以上错误之一时,LLC子层即被告之,并且MAC子层启动发送错误标志。

2 错误界定规则

故障界定的目标是在检测节点的情况下维持数据发送系统的高有效性。因此,故障界定必须依靠下列措施可靠工作:判别暂时错误和永久故障以及定位并关闭故障节点。

任何节点均装有发送错误计数器和接收错误计数器。前一种寄存发送期间的错误数目,而后一种寄存接收期间的错误。若帧被正确送出或接收,计数器

减少。在出现错误时,计数器值增加,其数量多于未出现错误情况下被减去的数量。计数器增/减比例取决于总线上无效/有效帧可接收的比例。任何时间,错误计数器的数值反映先前出现干扰的相对频率。

在CAN总线中,任何一个节点根据其错误计数器数值可能处于下列三种故障状态之一:

“错误激活”,“错误认可“,和”总线关闭“

“错误激活”节点:当发送错误计数器和接收错误计数器数值均小于或等于127时,节点为“错误激活”节点,一个“错误激活”节点可以正常参与总线通信,并在检测到错误时,发出一个活动错误标志。

“错误认可“节点:当发送错误计数器或接收错误计数器数值大于127时,节点为“错误认可”节点,一个“错误认可”节点可以正常参与总线通信,并在检测到错误时,发出一个认可错误标志。发送后,“错误认可”节点在开始进一步发送前将等待一段附加时间(暂停发送)

”总线关闭“:当节点的发送错误计数器数值大于255时,则监控器要求物理层置节点为“脱离总线“状态,“脱离总线“状态不允许对总线有任何影响。既不发送任何帧,也不应答。处于“脱离总线“状态的节点在检测到总线上出现128次11个连续的隐性位后,变成为两个错误计数器均为0的“错误激活”节点。

若系统启动期间,只有一个节点在线,并且该节点发送一些帧,它将得不到应答,检测到错误并重发帧。它可变为“错误认可“节点,但不会由此进入“脱离总线“状态。

六位编码/解码

位时间定义为一位的持续时间,正常位时间实际上是正常位速率的倒数,即

正常位时间=1/正常位速率

与位时间有关的总线管理功能诸如同步状态,网络发送延迟补偿和采样点定位均由CAN协议集成电路的可编程位定时逻辑确定。

正常位时间可划分为四个不覆盖的时间段:同步段(SYNC-SEG),传播时间段(PROP-SEG),相位缓存段1(PHASE-SEG1),相位缓存段2(PHASE-SEG2),如下图

采样点

同步段时间段用于同步总线上的各种ECU(电子控制单元,即节点)。在此段内,等待一个跳变沿。

PROP-SEG时间段用于补偿网络内的物理延迟时间。这些延迟时间包括总线上的信号传播时间和ECU的内部延迟时间。

相位缓存段1和相位缓存段2用于补偿边沿相位误差。这两个时间段可通过

重同步延长或缩短。

采样点是这样一个时点,在此点上,读总线电平,并被理解为相应位数值,

采样点位于PHASE-SEG1的结束。

位时间按时间份额进行编程。时间份额是由振荡器派生出的固定时间单位。

时间份额可具有长度:时间份额=m* 时间份额最小值

其中:m为可编程的预分刻度数值m=1~32

组成位时间的各时间段长度分别为:

SYNC-SEG 1个时间份额

PROP-SEG m个时间份额m=1,2,3,4,5,6…

PHASE-SEG1 m个时间份额m=1,2,3,4,5,6…

PHASE-SEG2 为PHASE-SEG1+信息处理时间

信息处理时间<=2个时间份额

信息处理时间由采样点开始,保留用于计算子序列位电平的时间段.

位时间的时间份额总数必须编程为至少8~25

七同步

同步包括硬同步和重同步两种形式,它们遵从下列规则:

(1) 在一个位时间内仅允许一种同步;

(2) 只要在先前采样点上检测到的数值与总线数值,沿过后立即有一个边沿将被用于同步;

(3) 总线空闲期间,当存在”隐性到显性的跳变沿即完成硬同步;

(4) 所有满足规则1,2的其它”隐性到显性的跳变沿将被用于重同步.

1重同步和重同步跳转宽度

由于重同步的结果,PHASE-SEG1的长度可被延长或PHASE-SEG2可被缩短。延长和缩短相位段的总和具有重同步跳转宽度给定的上限。重同步跳转

宽度应在1和4之间被编程。位填充的编码要求提供了帧期间总线单元重同

步于位流的可能。可用于重同步的两个跳变之间的最大长度为29位时间。

2硬同步

硬同步后,位时间由每个位定时逻辑单元以SYNC-SEG重新启动,因此,强

迫引起硬同步的边沿处于同步段内。

3同步边沿的相位误差

同步边沿的相位误差e由相对于SYNC-SEG边沿的位置给定,以时间份额量

度。

相位误差值定义如下:

e=0 若边沿位于SYNC-SEG内

e>0 若边沿位于采样点前

e<0 若边沿位于采样点前

当引起重同步的边沿相位误差幅值小于或等于重同步跳转宽度的编程数值时,重同步导致位时间的缩短或延长,使采样点处于正确位置。当相位误差

幅值大于重同步跳转宽度,如果e>0,则PHASE-SEG1延长数值等于重同步跳

转宽度; 如果e<0, 则PHASE-SEG2缩短数值等于重同步跳转宽度。

第二章INTEL 82527 CAN控制器

82527是INTEL公司生产的一种独立CAN控制器。82527具有一个强功能

的CPU接口,它可通过并行总线灵活的与各种微控制器接口,也可通过串行接口(SPI)与无并行总线的微控制器接口。

82527串行通信控制器是一种按照CAN规程完成串行通信的高集成器件,它可借助微控制器的极小开销完成诸如报文的发送和接收,报文滤波,发送扫描和中断处理。

82527是支持CAN规程2.0B标准和扩展报文格式的器件,由于CAN规程2.0的向后兼容性,82527也完全支持CAN规程2.0A的标准报文。

82527可提供强功能的15个且每个8字节数据长度的报文目标。除最后一个报文目标外,每个报文目标可配置为发送或接收,最后一个报文目标仅为一个具有特定屏蔽设计接收缓存器,以允许选择不同的报文标识符组进行接收。

82527也具有实现报文滤波的全局屏蔽性能,这一性能允许用户全局性地屏蔽到来报文的任何标识符。可编程的全局屏蔽性能适用于标准和扩展的两种报文。

82527采用INTEL高可靠性的CHMOSIII5V工艺制造,使用44引脚PLCC 封装,适用温度范围(-44℃~+125℃)。引脚功能如表

INTEL82527主要特性如下:

——支持CAN2.0B,包括标准的和扩展的报文;

——可程控全局屏蔽,包括标准和扩展信息标识符;

——具有15个信息缓冲区,每个信息长度为8个字节,包括14个TX/RX 缓冲区,一个带程控屏蔽的RX缓冲区;

——可变CPU接口,包括8位总线(INTEL或Motorola方式),多路16位总线,8位非多路总线(同步/异步),串行接口(如SPI);

——位速率可程控,并有可程控时钟输出;

——可变中断结构;

——可对输出驱动器和输入比较器结构进行配置;

两个8位双向I/O口;

——44脚PLCC封装。

82527工作原理

1 信息体

CAN控制器有256个字节的RAM,含有15个信息体、控制寄存器、状态寄存器.每个信息体占有15个连续的字节,其基址都是以对低四位为0开始.每个信息体上面的16个字节单元则是控制寄存器或保留,此段RAM的最低16个字节含有控制和状态寄存器,这256个RAM可以用窗口寻址.

表2-15为CAN控制器的地址映象表.

CAN控制器有15个信息体,每个信息体占据15个RAM字节,见表2-16

信息体1~14可以配置为发送或接收信息体,而信息体15只能配置为接收信息体。信息体1~14只有单缓冲器,因此第二个信息到来之前,第一个在缓冲器内的信息必须被读出,否则,它就会被新的信息所覆盖。信息体15有两个交替缓冲区,因此它能存放两个数据,但第三个进来的数据就会覆盖第二个数据。最低位的信息体有最高的优先权,而与信息体的识别位无关。当多

个信息体准备在总线上发送数据时,CAN控制器首先发送最低地址的信息体;

当多个信息体准备接收同一信息时,最低地址的信息体接收它。例如,当所

有识别位被屏蔽时,信息体1接收所有的信息。CAN屏蔽寄存器用于进行信

息的滤波,即接收特定的信息。软件可以对屏蔽寄存器进行编程,以要求信

息体对某一类信息或全域信息进行接收。如果没有这种屏蔽寄存器,则信息

体只能接收与它的识别位定义相同的信息,即只能接收一个信息。用屏蔽寄

存器定义,就可以接收不同于它的识别位的信息。CAN控制器滤波是通过比

较进入信息的识别位与内部定义的信息体的识别位。标准CAN全域屏蔽寄存

器有11位识别位,而扩展CAN全域屏蔽寄存器有29位识别位。CAN控

制器用屏蔽寄存器的内容与进来的信息的识别位的内容进行比较,先对信息

体1~14进行检查,如果无匹配发生,再检查信息体15。由于信息体15的屏

蔽是和全域屏蔽是“与”关系,所以任何被全域屏蔽的识别位也自动地被信

息体15所屏蔽。

CAN控制器能接收远程信息,即请求数据传递,此时要满足信息的识别位与

任何使能的发送信息体的识别位匹配,远程信息体识别位存于信息体中,可

以覆盖任何被屏蔽的位。

2.8.3位定时器

CAN的信息发送是由位时间来控制的,它决定CAN的发送、接收速率,这一

速率可以有位定时方程来确定。这一方程为:

CAN总线速率=Fosc/2*(BRP+1)*(3+TSEG1+TSEG2)

式中:Fosc——系统时钟频率,等于XTAL的振荡频率。

BRP——位定时器寄存器0中的BRP0~5的值,取值范围0~63

TSEG1——位定时器寄存器1中的TSEG1域中的值,取值范围2~15

TSEG2——位定时器寄存器1中的TSEG2域中的值,取值范围1~7

如图所示

位定时器寄存器0 (CAN_BTIME0)

位定时器寄存器0定义了每个时间单位(tq)的长度和采样移动,以补偿重新同步的最大量.

位定时器寄存器1

位定时器寄存器1控制着总线采样时间和采样点数.在单采样方式中,总线采样

一次,并认为数据有效; 在三采样方式中,总线采样三次,并认为大多数采样值

有效. 单采样方式可以有较高的发送速率,但抗干扰能力差; 三采样方式抗干

扰能力强,但速率较慢.

4CAN控制器的配置

1 CAN控制寄存器的编程(CAN_CON)

CAN控制寄存器(CAN_CON)用于控制写位定时寄存器允许、使能/非使能、

全域中断源(包括错误、状态变化、单个信息体)和对CAN总线的控制.

2信息体的配置

基于STC89C51的CAN总线点对点通信模块设计

基于STC89C51的CAN总线点对点通信模块设计 [导读]随着人们对总线对总线各方面要求的不断提高,总线上的系统数量越来越多,继而出现电路的复杂性提高、可靠性下降、成本增加等问题。为解决上述问题,文中阐述了基于SJAl000的CAN总线通信模块的实现方法,该方法以PCA82C250作为通信模块的总线收发器,以SITA-l000作为网络控制器。并以STCSTC89C5l单片机来完成基于STC89C5l的CAN通信硬件设计。文章还就平台的初始化、模块的发送和接收进行了设计和分析。通过测试分析证明,该系统可以达到CAN的通信要求,整个系统具有较高的实用性。 0 引言 现场总线是应用在生产最底层的一种总线型拓扑网络,是可用做现场控制系统直接与所有受控设备节点串行相连的通信网络。在工业自动化方面,其控制的现场范围可以从一台家电设备到一个车间、一个工厂。一般情况下,受控设备和网络所处的环境可能很特殊,对信号的干扰往往也是多方面的。但要求控制则必须实时性很强,这就决定了现场总线有别于一般的网络特点。此外,由于现场总线的设备通常是标准化和功能模块化,因而还具有设计简单、易于重构等特点。 1 CAN总线概述 CAN (Controller Area Network)即控制器局域网络,最初是由德国Bosch公司为汽车检测和控制系统而设计的。与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。其良好的性能及独特的设计,使CAN总线越来越受到人们的重视。由于CAN总线本身的特点,其应用范围目前已不再局限于汽车行业,而向自动控制、航空航天、航海、过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域发展。目前,CAN已经形成国际标准,并已被公认为几种最有前途的现场总线之一。它的直线通信距离最大可以达到l Mbps/30m.其它的节点数目取决于总线驱动电路,目前可以达到110个。 2 CAN系统硬件设计 图1所示是基于CAN2.0B协议的CAN系统硬件框图,该系统包括电源模块、MCU部分、CAN控制器、光电耦合器、CAN收发器和RS232接口。硬件系统MCU采用STC89C5l,CAN控制器采用SJAl000,CAN收发器采用PCA82C250,光耦隔离采用6N137。

CAN总线8个特点

CAN总线8个特点 一、CAN总线是什么 CAN总线是与串行总线不同的工业控制通信系统,是德国博世公司为提供汽车电子产品的升级服务,所有它更多的用于汽车控制。 为什么它非常适合汽车行业呢?有以下几个原因: ●CAN总线最远的数据传输距离为10公里,完全可以满足汽车的通讯控制需求。●CAN总线具有很强的抗干扰性,不容易出现问题,可以有效地保证驾驶员的安全。 ●can总线的数据传输速度快,理论峰值达到1Mbps,并且具有很高的数据通信即 时性。 ●一条CAN总线可以同时连接128个节点。对于一辆汽车,一个或两个CAN总线 可以完全完成汽车控制工作,这对于广阔的汽车行业来说是个再合适不过的选择。 二、CAN总线原理 ●需要传输的数据从一个节点通过CAN总线被广播到另一个节点,当一个节点发送 数据时,该节点的CPU将发送的数据和标识符发送到该节点的CAN芯片,并使它们处于就绪状态。

●当CAN芯片接收到总线分配时,消息进入发送状态,并且CAN芯片发送的数据 以预定的消息格式发送。此时,网络中的所有其他节点都处于接收状态,并且所有节点都首先接收该节点,并通过检测消息是否发送给自身来进行判断。 ●CAN总线是一种面向内容的地址方案,可实现控制系统的建立和灵活部署,并允 许在不修改硬件和软件的情况下将新节点添加到CAN总线。 三、CAN总线的8个特点 ●采用两线串行通讯方式,具有较强的错误检测能力,可以在高噪声干扰环境下工作●具有实时性强,传输距离长,电磁干扰强,成本低的优点。 ●可靠的错误处理和错误检测机制 ●节点具有严重错误时自动终止总线的功能 ●具有通过CAN控制器将多个控制模块连接到CAN总线以形成多主机本地网络的 优先级和仲裁功能。 ●消息的身份可以决定接收还是屏蔽消息 ●如果传输的信息已损坏,则可以自动重新传输 ●该消息不包含源地址和目标地址,仅使用标志来指示功能信息和优先级信息。

CAN总线设计

微机应用课程设计报告 ` 题目:基于单片机的16*16点阵系统设计 专业: … 班级: 姓名: 学号: 地点: 时间: 指导老师:

~

摘要 现场总线是自动化领域的计算机网络,是当今自动化领域技术发展的热点之一。它以总线为纽带,将现场设备连接起来成为一个能够相互交换信息的控制网络,是一种双向串行多节点数字通信的系统。CAN总线也是现场总线的一种,它最初被应用于汽车的控制系统中,由于其卓越的性能,CAN总线的应用范围已不再局限于汽车工业中,而被广泛的用到自动控制、楼宇自动化、医疗设备等各个领域。 本文主要介绍一种基于CAN总线的控制系统,通过对这一系统的制作流程来说明CAN总线的简单应用,文章主要是对本控制系统的三个硬件模块进行介绍及模块中相关芯片的应用,同时本文也对软件的编写进行了说明。 关键字:现场总线; CAN总线;单片机;控制系统

目录 1 绪论 (1) CAN总线的简单介绍 (1) CAN总线的优势 (1) 网络各节点之间的数据通信实时性强 (2) 缩短了开发周期 (2) 已形成国际标准的现场总线 (2) 最有前途的现场总线之一 (2) 2 硬件电路设计 (3) 单片机模块 (3) STC89C52主要特性如下: (4) STC89C52RC单片机的工作模式 (5) CAN总线控制器模块 (6) SJA1000简介 (6) PCA82C250简介 (9) 通信模块和外围接口 (11) 通信模块 (11) 外围接口 (12) 3 CAN总线控制系统软件设计 (13) 初始化程序 (13) 数据的接收和发送功能 (15) 发送数据 (15) 接收数据 (17) 4 总结 (19) 参考文献 (20) 附录一 (21)

CAN总线的特点有哪些

CAN总线的特点有哪些 CAN 总线的特点有哪些?(1) 多主控制在总线空闲时,所有的单元都可开始发送消息(多主控制)。最先访问总线的单元可获得发送权(CSMA/CA 方式*1)。多个单元同时开始发送时,发送高优先级ID 消息的单元可获得发送权。 (2) 消息的发送在CAN 协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新消息。两个以上的单元同时开始发送 消息时,根据标识符(Identifier 以下称为ID)决定优先级。ID 并不是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始 发送消息时,对各消息ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行 接收工作。(3) 系统的柔软性与总线相连的单元没有类似于地址的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。(4) 通信速度根据整个网络的规模,可设定适合的通信速度。在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它 的不一样,此单元也会输出错误信号,妨碍整个网络的通信。不同网络间则可 以有不同的通信速度。(5) 远程数据请求可通过发送遥控帧请求其他单元发送数据。(6) 错误检测功能-错误通知功能-错误恢复功能所有的单元都可以检测错误(错误检测功能)。检测出错误的单元会立即同时通知其他所有单元(错误 通知功能)。正在发送消息的单元一旦检测出错误,会强制结束当前的发送。 强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止(错误恢 复功能)。(7) 故障封闭CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总

汽车CAN总线基础知识培训资料

汽车C A N总线基础知 识

CAN总线协议 控制器局域网总线(CAN,Controller Area Network)是一种用于实时应用的串行通讯协议总线,它可以使用双绞线来传输信号,是世界上应用最广泛的现场总线之一。CAN协议用于汽车中各种不同元件之间的通信,以此取代昂贵而笨重的配电线束。该协议的健壮性使其用途延伸到其他自动化和工业应用。CAN协议的特性包括完整性的串行数据通讯、提供实时支持、传输速率高达1Mb/s、同时具有11位的寻址以及检错能力。 CAN总线发展 控制器局域网CAN( Controller Area Network)属于现场总线的范畴,是一种有效支持分布式控制系统的串行通信网络。是由德国博世公司在20世纪80年代专门为汽车行业开发的一种串行通信总线。而且能够检测出产生的任何错误。当信号传输距离达到10km时,CAN仍可提供高达50kbit/s的数据传输速率。CAN总线的工作原理 CAN总线使用串行数据传输方式,可以1Mb/s的速率在40m的双绞线上运行,也可以使用光缆连接,而且在这种总线上总线协议支持多主控制器。[1]CAN与I2C总线的许多细节很类似,但也有一些明显的区别。当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。当几个站同时竞争总线读取时,这种配置十分重要。

当一个站要向其它站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;当它收到总线分配时,转为发送报文状态。CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。每个处于接收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。由于CAN总线是一种面向内容的编址方案,因此很容易建立高水准的控制系统并灵活地进行配置。我们可以很容易地在CAN总线中加进一些新站而无需在硬件或软件上进行修改。当所提供的新站是纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址。它允许分布过程同步化,即总线上控制器需要测量数据时,可由网上获得,而无须每个控制器都有自己独立的传感器。 CAN总线在空闲(没有节点传输报文)时是一直处于隐性状态。当有节点传输报文时显性覆盖隐性,由于CAN总线是一种串行总线,也就是说报文是一位一位的传输的,而且是数字信号(0和1),1代表隐性,0代表显性。在传送报文的过程中是显隐交替的,就像二进制数字0101001等,这样就能把信息发送出去,而总线空闲的时候是一直处于隐性的。 CAN总线特征 (1)报文(Message)总线上的数据以不同报文格式发送,但长度受到限制。当总线空闲时,任何一个网络上的节点都可以发送报文。 (2)信息路由(Information Routing)在CAN中,节点不使用任何关于系统配置的报文,比如站地址,由接收节点根据报文本身特征判断是否接收这帧信息。因此系统扩展时,不用对应用层以及任何节点的软件和硬件作改变,可以直接在CAN中增加节点。

CAN总线网络设计

1 引言 can(controller area network)即控制器局域网络,最初是由德国bosch公司为解决汽车监控系统中的自动化系统集成而设计的数字信号通信协议,属于总线式串行通信网络。由于can总线自身的特点,其应用领域由汽车行业扩展到过程控制、机械制造、机器人和楼宇自动化等领域,被公认为最有发展前景的现场总线之一。 can总线系统网络拓扑结构采用总线式结构,其结构简单、成本低,并且采用无源抽头连接,系统可靠性高。本设计在保证系统可靠工作和降低成本的条件下,具有通用性、实时性和可扩展性等持点。 2 系统总体方案设计 整个can网络由上位机(上位机也是网络节点)和各网络节点组成(见图1)。上位机采用工控机或通用计算机,它不仅可以使用普通pc机的丰富软件,而且采用了许多保护措施,保证了安全可靠的运行,工控机特别适合于工业控制环境恶劣条件下的使用。上位机通过can总线适配卡与各网络节点进行信息交换,负责对整个系统进行监控和给下位机发送各种操作控制命令和设定参数。 网络节点由传感器接口、下位机、can控制器和can收发器组成,通过can收发器与总线相连,接收上位机的设置和命令。传感器接口把采集到的现场信号经过网络节点处理后,由can收发器经由can总线与上位机进行数据交换,上位机对传感器检测到的现场信号做进一步分析、处理或存储,完成系统的在线检测,计算机分析与控制。本设计can总线传输介质采用双绞线。 图 1 can总线网络系统结构 3 can总线智能网络节点硬件设计 本文给出以arm7tdmi内核philips公司的lpc2119芯片作为核心构成的智能节点电路设计。该智能节点的电路原理图如图2所示。该智能节点的设计在保证系统可靠工作和降低成本的条件下,具有通用性、实时性和可扩展性等特点,下面分别对电路的各部分做进一步

CAN总线的性能特点

CAN总线的性能特点 由于采用了许多的新技术和独特的设计,CAN总线与一般的通信总线相比,它的数据通信具有突出的可靠性、实时性和灵活性。其性能特点可以概括如下: (1)CAN是到目前为止唯一具有国际标准的现场总线; (2)CAN为“多主”工作方式,网络上任一节点均可在任意时刻主动的向网络上的节点发送信息,不分主从。 (3)在报文标识符上,CAN上的节点分成不同的优先级,可满足不同的实时要求,优先级高的数据最多可在134us内得到传输。 (4)CAN采用非破坏性总线仲裁技术。当多个节点同时向总线发送信息时,优先级较低的节点会主动退出发送,而最高优先级的节点可不受影响的继续传输数据,从而大大的节省了总线冲突仲裁时间。 (5)CAN节点只需要通过对报文的标识符滤波即可实现点对点,一点对多点及全局广播等几种方式传送接收数据,无需专门的“调度”。 (6)CAN上的节点的个数主要取决于总线驱动电路,目前可达110个。在标准“帧”报文标识符(CAN2.0A)可达2032种,而在扩展帧的报文标识符(CAN2.OB)几乎不受限制。 (7)CAN报文采用“短帧”结构,传输时间短,受干扰概率低,具有极好地检错效果。 (8)CAN的每帧信息都有CRC校验以及其他检错措施,具有很

好的检错效果。 (9)CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上的其它节点的操作不受影响。 (10)CAN的最大通信速率为1Mbps(当总线长为40m时),直接通信距离可达10km(而当通信速率为5Kbps时),其通信距离与通信速率之间的关系如下图所示: 图 1 CAN总线位的数值表示 (10)CAN总线具有较高的性能价格比。它结构简单,器件容易购置,每个节点的价格较低,而且开发技术容易掌握,能充分利用现有的单片机开发工具。

课程设计--CAN总线

课程设计 题目 CAN通信 二级学院电子信息与自动化 专业自动化 班级 107070103 学生姓名学号 指导教师熊文 考核项目 设计50分平时 成绩 20分 答辩30分 设计质量 20分 创新设计 15分 报告质量 15分 熟练程度 20分 个人素质 10分 得分 总分考核等级教师签名

摘要: CAN总线是控制器局域网总线(contr01ler AreaNetwork)的简称。属于现场总线的范畴,是一种有效支持分布式控制或实时控制的串行通信网络。由于其高性能、高可靠性及独立的设计而被广泛应用于工业现场控制系统中。SJAl000是一个独立的CAN控制器,PCA82C200的硬件和软件都兼容,具有一系列先进的性能,特别在系统优化、诊断和维护方面,因此,SJAl000将会替代PCA82C200。SJAl000支持直接连接到两个著名的微型控制器系列80C51和68xx。下面以单片机AT89C52和SJAl000为例,介绍CAN总线模块的硬件设计和CAN通信软件的基本设计方法。 关键词:AT89S52 CAN通信 SJA1000

目录: (一) 背景: (二) CAN介绍 (三) SJA1000内部结构和功能简介 (四) 硬件电路图 (五) 初始化程序 (六) 测试 (七) 总结

一背景: CAN(Controller Area Network)数据总线是一种极适于汽车环境的汽车局域网。CAN总线是德国Bosch公司为解决汽车监控系统中的 复杂技术难题而设计的数字信号通信协议,它属于总线式串行通信网 络。由于采用了许多新技术和独特的设计思想,与同类车载网络相比,CAN总线在数据传输方面具有可靠、实时和灵活的优点。 1991年9月Philips半导体公司制定并发布了CAN技术规范(版本 2.0),该技术规范包括A部分和B两部分,其中2.0A给出了CAN报文的标 准格式;2.0B给出了标准和扩展两种格式。此后,1993年11月ISO正 式颁布了道路交通运输工具一数据信息交换一高速通信控制器局域 网(CAN)的国际标准IS011898,为控制器局域网的标准化和规范化铺 平了道路。 二CAN介绍 CAN通信的特点: (1) CAN是到目前为止唯一具有国际标准且成本较低的现场总线; (2) CAN废除了传统总线的站地址编码,对通信数据块进行编码,为 多主方式工作,不分主从,通信方式灵活,通过报文标识符通信,可 使不同的节点同时接收到相同的数据,无需站地址等节点信息。 (3) CAN采用非破坏性总线仲裁技术,当多个节点同时向总线发送信 息时,优先级较低的节点会主动地退出发送,而最高优先级的节点可 不受影响地继续传输数据,从而大大节省了总线冲突仲裁时间。尤其 是在网络负载很重的情况下也不会出现网络瘫痪情况(以太网则有可

CAN总线基础(1)— CAN简介及特点

1.CAN是什么? CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986 年德国电气商博世公司开发出面向汽车的CAN 通信协议。此后,CAN 通过ISO11898 及ISO11519 进行了标准化,现在在欧洲已是汽车网络的标准协议。 现在,CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。 下图是车载网络的构想示意图。CAN 等通信协议的开发,使多种LAN 通过网关进行数据交换得以实现。

2.CAN的应用实例 3.总线拓扑图 CAN 控制器根据两根线上的电位差来判断总线电平。总线电平分为显性电平和隐性电平,二者必居其一。发送方通过使总线电平发生变化,将消息发送给接收方。 CAN的连接示意图

4.CAN的特点 CAN 协议具有以下特点: (1) 多主控制 在总线空闲时,所有的单元都可开始发送消息(多主控制)。 最先访问总线的单元可获得发送权(CSMA/CA 方式)。 多个单元同时开始发送时,发送高优先级ID 消息的单元可获得发送权。 (2) 消息的发送 在CAN 协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新消息。两个以上的单元同时开始发送消息时,根据标识符(Identifier 以下称为ID)决定优先级。ID 并不是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消息ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。(3) 系统的柔软性 与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。 (4) 通信速度 根据整个网络的规模,可设定适合的通信速度。 在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样,此单元也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。 (5) 远程数据请求 可通过发送“遥控帧” 请求其他单元发送数据。 (6) 错误检测功能·错误通知功能·错误恢复功能 所有的单元都可以检测错误(错误检测功能)。 检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。 正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止(错误恢复功能)。 (7) 故障封闭 CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。 (8) 连接 CAN 总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。 1.CAN的错误状态类型 单元始终处于3 种状态之一。

CAN总线设计(最终版)(1)

CAN-USB适配器设计 ***** 指导老师:*** 学院名称:***** 专业班级:**** 设计提交日期:**年**月 摘要 随着现场总线技术和计算机外设接口技术的发展,现场总线与计算机快速有效的连接又有了更多的方案。USB作为一种新型的接口技术,以其简单易用、速度快等特点而备受青睐。本文介绍了一种基于新型USB接口芯片CH372的CAN总线网络适配器系统的设计,提出了一种使用USB接口实现CAN总线网络与计算机连接

的方案。利用芯片CH372可在不了解任何USB协议或固件程序甚至驱动程序的情况下,轻松地将并口或串口产品升级到USB接口。该系统在工业现场较之以往的系统,可以更加灵活,高速,高效地完成大量数据交换,并可应用于多种控制系统之中,具有很大的应用价值。 关键词:USB;CH372;CAN;SJA100;适配器 目录 1.设计思想 (3) 2.CAN总线与USB的转换概述 (4) 3. 适配器硬件接口设计 (5) 3.1 USB接口电路 (5)

3.2 CAN总线接口电路 (7) 4.USB通用设备接口芯片CH372 (8) 4.1 概述 (8) 4.2 引脚功能说明 (9) 4.3 内部结构 (9) 4.4 命令 (10) 5.软件设计 (10) 5.1 概述 (10) 5.2主监控程序设计 (12) 5.3 CAN和USB接口芯片的初始化 (13) 5.4 CAN报文的发送 (15) 5.5 CAN报文的接收 (17) 5.6.自检过程 (19) 5.7 USB下传子程序设计 (20) 5.8 USB上传子程序设计 (22) 5.9.USB—CAN转换器计算机端软件设计 (23) 6. 抗干扰措施 (25) 7. 估算成本 (26) 8. 应用实例介绍 (27) 9 总结及设计心得 (28) 10 参考文献 (28) 1 设计思想 现场总线网络技术的实现需要与计算机相结合。目前,在微机上扩展CAN总线接口设备一般采用PCI总线或者RS-232总线。PCI虽然仍是高速外设与计算机接口的主要渠道,但其主要缺点是占用有限的系统资源、扩展槽地址;中断资源有限;并且插拔不方便;价格较贵;而且设计复杂、需有高质量的驱动程序保证系统的稳定;且无法用于便携式计算机的扩

CAN总线特点与规范

CAN总线特点与规范 CAN 总线规范: CAN总线属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络,位速率可高达1MBPS。可以应用在汽车控制系统,自动化电子领域中的各种部件(传感器,灯光,执行机构等)与主机连接组成CAN 网络。本章介绍通过CAN总线与液晶显示器的连接。 CAN 具有下列主要特性: 1 多主站依据优先权进行总线访问。 总线开放时,任何单元均可开始发送报文,具有最高优先权的报文的单元赢得总线访问权。利用这个特点可以用液晶显示器作为多主机的公用监视器,不用每台主机配一个监视器,从而节约系统成本。 2 无破坏性的基于优先权的仲裁。 网络上的每个主机可以同时发送,哪个主机的数据可以发送出去取决于主机所发送报文的标识符决定的优先权的大小,没有发送出去的帧可自动重发。以后将介绍数据怎样仲裁。 3 借助接收滤波的多地址帧传送 收到报文的标识符与本机的接收码寄存器与屏蔽寄存器相比较,符合的报文本机才予以接收。 4.远程数据请求。 网络上的每个接点可以发送一个远程帧给另一个接点,请求该接点的数据帧,该数据帧与对应的远程帧以相同的标识符ID命名。 5.配置灵活性 通过八个寄存器进行接点配置,每个接点可以接收,也可以发送。 6.全系统数据相容性 7.错误检测和出错信令 有五种错误类型,每个接点都设置有一个发送出错计数器和一个接收出错计数器。发送接点和接收接点在检测到错误时,出错计数器根据一定规则进行加减,并根据错误计数器数值发送错误标志(活动错误标志和认可错误标志),当错误计数器数值大于255时,该接点变为“脱离总线”状态,输出输入引脚浮空,既不发送,也不接收。 CAN 中的总线数值为两种互补逻辑数值:“显形”和“隐性”,用差分电压表示。 “显形”表示逻辑“0”,显性状态用大于最小阈值的差分电压表示。 “隐性”表示逻辑“1”,这时输出的差分电压Vdiff 近似为0,Vcanh ,Vcanl固定于平均电压电平,显性位与隐性位同时发送时,最后总线数值为显性。在总线空闲或隐性位期间, 平均电压

CAN总线系统设计中的几个问题

CAN总线系统设计中的几个问题 北京航空航天大学管理学院(100083) 邬宽明 摘 要:论述了CAN总线系统设计中系统时钟和位时间的选定、CAN中断服务程序编制以及较长报文拼接等问题。 关键词:CAN总线设计 系统时钟 位时间 中断服务 报文拼接 CAN总线是德国Bo sch公司在80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信总线,它是一种多主总线系统,通信介质可以是双绞线、同轴电缆或光导纤维。通信速率可达1M bp s。CAN总线通信控制器中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括零位的插入 删除、数据块编码、循环冗余检验、优先级判别等项工作。CAN协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码。采用这种方法的优点是可使网络内的节点个数在理论上不受限制,数据块的标识码可由11位(按CAN技术规范210A)或29位(按CAN 技术规范210B)二进制数组成,因此可以定义211或229个不同的数据块。这种按数据块编码的方式,还可使不同的节点同时接收到相同的数据,这一点在分布式控制系统中非常有用。数据段长度最多为8个字节,可满足通常工业领域中控制命令、工作状态及测试数据的一般要求。同时,8个字节不会占用总线时间过长,从而保证了通信的实时性。CAN协议采用CRC检验并可提供相应的错误处理功能,保证了数据通信的可靠性。CAN的这些卓越特性,极高的可靠性和独特的设计,特别适合工业过程监控设备的互连,因此,越来越受到工业界重视,并已被公认为最有前途的现场总线之一。1993年11月ISO正式颁布了道路交通运载工具—数字信息交换—高速通信控制器局部网(CAN)国际标准(ISO11898)。为控制器局部网标准化、规范化推广铺平了道路。可以预料,控制器局部网在我国迅速发展和普及是指日可待的。 本文分别论述CAN总线系统设计中经常遇到的系统时钟和位时间如何选定、CAN中断服务程序如何安排以及较长报文如何拼接等几个问题。 1 系统时钟和位时间的选定 在CAN控制器中提供两个总线定时寄存器,其中总线定时寄存器0(BR T0)可决定波特率予分频(BR P)和同步跳转宽度(SJW)的数值,其低六位(D5~D0)用来确定系统时钟,而其高二位(D7,D6)用来确定同步跳转宽度(SJW)。总线定时寄存器1(BR T1)可决定位周期宽度、采样点位置和在每个采样点进行采样的次数,其D3~D0用于T SEG1,而D6~D4用于T SEG2并按下式计算: t TSEG1=t SCL(8T SEG1.3+4T SEG1.2+2T SEG1.1 +T SEG1.0+1) t TSEG2=t SCL(4T SEG2.2+2T SEG2.1+T SEG2.0+1) 图1 每位时间和采样点位置T SEG1和T SEG2可 确定每位的时钟周期数目 和采样点位置,如图1所 示 若P8XC592复位请求 位被置为高,这两个寄存器 均可被访问(读 写)。系统时 钟t SCL可使用下列等式计算: t SCL=2t CL K(32BR P.5+16BR P.4+8BR P.3+4BR P.2 +2BR P.1+BR P.0+1) 其中:t CL K为P8XC592振荡器的时钟周期 实例:设晶体振荡器频率为16M H Z,BTR0=00H, BTR1=14H,计算系统时钟和位时间 由给定BTR0和BR T1值可知: BR P.5,BR P.4,BR P.3,BR P.2,BR P.1和BR P10均为0,另外,除T SEG112和T SEG210为1外,其余系数均为01因此有, t SCL=2t CL K(32×0+16×0+8×0+4×0+2×0 +0+1)=2t CL K t TSEG1=t SCL(8×0+4×0+2×0+1)=5t SCL t TSEG2=t SCL(4×0+2×0+1×0+1)=2t SCL t b=(1+5+2)t SCL=2×8×t CL K=1M bp s 此时同步跳转宽度(SJW)为 t SJW=t SCL(2SJW.1+SJW.01+1)=t SCL即1 8(Λs)实例2:设晶体振荡器频率为16M H z,BTR0= 7FH,BTR1=7FH,计算系统时钟和位时间 由给定BR T0和BR T1值可知: BR P15,BR P14,BR P13,BR P12,BR P11,和BR P10,均为1,另外,T SEG11X和T SEG21X亦均为 81四通电脑应用美国德州工控机6257723062577231 《电子技术应用》1998年第9期

CAN总线简介及其特点

摘要:CAN总线的数据通讯具有突出的可靠性、实时性和灵活性,其总线规范已经成为国际标准,被公认为几种最有前途的总线之一。本文在总结CAN总线特点的基础上,对其通信介质访问方式进行了详细的描述,介绍了它在应用中需要解决的技术问题以及目前应用状况。 关键词:CAN总线;通信介质访问控制;实时;应用技术 1CAN总线简介及其特点 CAN网络(ControllerAreaNetwork)是现场总线技术的一种,它是一种架构开放、广播式的新一代网络通信协议,称为控制器局域网现场总线。CAN网络原本是德国Bosch公司为欧洲汽车市场所开发的。CAN推出之初是用于汽车内部测量和执行部件之间的数据通信。例如汽车刹车防抱死系统、安全气囊等。对机动车辆总线和对现场总线的需求有许多相似之处,即能够以较低的成本、较高的实时处理能力在强电磁干扰环境下可靠地工作。因此CAN总线可广泛应用于离散控制领域中的过程监测和控制,特别是工业自动化的底层监控,以解决控制与测试之间的可靠和实时数据交换。 CAN总线有如下基本特点: * CAN协议最大的特点是废除了传统的站地址编码,代之以对数据通信数据块进行编码,可以多主方式工作; * CAN采用非破坏性仲裁技术,当两个节点同时向网络上传送数据时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响地继续传输数据,有效避免了总线冲突; * CAN采用短帧结构,每一帧的有效字节数为8个(CAN技术规范2.0A),数据传输时间短,受干扰的概率低,重新发送的时间短; * CAN的每帧数据都有CRC效验及其他检错措施,保证了数据传输的高可靠性,适于在高干扰环境中使用; * CAN节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上其它操作不受影响; * CAN可以点对点、一点对多点(成组)及全局广播集中方式传送和接受数据; * CAN总线直接通讯距离最远可达10km/5Kbps,通讯速率最高可达1Mbps/40m; * 采用不归零码(NRZ—Non-Return-to-Zero)编码/解码方式,并采用位填充(插入)技术。 详细的CAN协议可参见CAN技术规范2.0a和2.0b以及CAN国际标准ISO11898(参考文献3)。

CAN总线系统智能节点设计

https://www.wendangku.net/doc/2115034334.html, CAN总线系统智能节点设计 作者:邹继军饶运涛 信息工程系 华东地质学院 摘要:CAN总线上的节点是网络上的信息接收和发送站;智能节点能通过编程设置工作方式、ID地址、波特率等参数。它主要由单片机和可编程的CAN通信控制器组成。本文介绍这类节点的硬件设计和软件设计;其中软件设计包括SJA1000的初始化、发送和接收等应用中的最基本的模块子程序。 关键词:总线节点CAN 控制器 引言: CAN (Controller Area Network)总线,又称控制器局域网,是Bosch公司在现代汽车技术中领先推出的一种多主机局部网,由于其卓越的性能、极高的可靠性、独特灵活的设计和低廉的价格,现已广泛应用于工业现场控制、智能大厦、小区安防、交通工具、医疗仪器、环境监控等众多领域。CAN已被公认为几种最有前途的现场总线之一。CAN总线规范已被ISO国际标准组织制订为国际标准,CAN 协议也是建立在国际标准组织的开放系统互连参考模型基础上的,主要工作在数据链路层和物理层。用户可在其基础上开发适合系统实际需要的应用层通信协议,但由于CAN总线极高的可靠性,从而使应用层通信协议得以大大简化。 CAN总线与其他几种现场总线比较而言,是最容易实现、价格最为低廉的一种,但其性能并不比其他现场总线差。这也是目前CAN总线在众多领域被广泛采用的原因。节点是网络上信息的接收和发送站,所谓智能节点是由微处理器和可编程的CAN控制芯片组成,它们有两者合二为一的,如芯片P8XC592,也有如本文介绍的,独立的通信控制芯片与单片机接口,后者的优点是比较灵活。当然,也

CAN总线学习心得--重要

CAN总线学习心得--重要 SJ A1 0 0 0 的常用标准波特率设置,为什么基本上都是单次采样?即使是低速的时候也是这样的,既然T SEG1 的设置周期都很大,比如都大于1 0 了,为什么不让他采样三次呢?答:是不好理解,但那是Ci A 推荐的值。用5 1 系列芯片和两个SJ A1 0 0 0 接口还要外扩一个RAM,请问5 1 的AL E 能否同时与三个芯片的AL E 管脚相连( 地址不同) 有哪位高手做过双SJ A1 0 0 0 冗余的请指教!答:能同时连接。请问CAN 总线在想传输1 0 0 0 m 的情况下, 最快的速度能到多少呢?答: 5 0 k b p s = 1 3 0 0 m。如果一个网络中只有 2 个节点, 其中一个处于监听模式,另一个节点发送报文会使处于监听模式的节点进入中断吗?答:能进入接收中断,你自己的试验也可以证明。想组建一个简单的CAN 网络, 已经有两个节点, 我想问CAN 总线如何组建, 终端电阻安装在哪里?小弟还没有入门, 大虾们指点一下。答1 :直接将节点CANH 和CANL 连到总线上,终端电阻接在总线两端,大约1 2 0 欧。答2 :推荐北航出版《现场总线CAN 原理与应用技术》,研读一下。请问各位老师:我是一名c a n 总线的新手,我正在做c a n 总线的开发,控制器用s j a 1 0 0 0 t ( 我自己两个控制板互通) , 但我在发送数据后将出现总线关闭,我看到发送错误计数器在不断增加,直到0 x f f 最后恢复到0 x 7 f , 谢谢各位老师帮我解答这个问题。或者对我给与启发答1 ;首先调通单个节点。答2 :这是单节点发送没有成功( 或者由于网络中其他节点没有收到帧并在响应场响应) 建议参考网站CAN 应用方案。我想请教各位c a n 远程贞有何作用?如何应用?在什么情况下才需要用到远程贞?谢谢了!答:远程帧的用与不用完全取决你自己的协议,c a n 有远程帧的功能,是可用可不用的!用网站提供的计算波特率的工具算出的数,1 2 k 以上的都正确,无论是自接收还是两个节点通讯都没有任何问题。但是1 2 k 以下的数据一个都不能用,两个节点通讯没有成功的,自接收有1 0 k 的几个数据成功。我们的项目要求必须在1 0 k 以下,最好是5 k ,但是不成功,自己计算的数据也没有成功的。(我们至少试验了3 0 多个,所有情况都考虑了。)我现在怀疑s j a 1 0 0 0 的波特率根本达不到5 k 和相对应的传输1 0 k m。或者可以谁能提供个经过实践检验的正确的总线定时器0 和1 的设置呢?要求低于1 0 k 。答:PCA8 2 C2 5 0 / 2 5 1 可以保证5 KBPS 的速率;比如Z L GCAN 系列接口卡。答:t j a 1 0 5 0 在低速时好像有问题。我用1 0 5 0 进行5 k 的时候不行,用8 2 c 2 5 0 很好,你可以试一试。我本想双机调试,一边收,一边发,但跑程序后,发送方会不断进入复位模式,所以现在进行自测试模式,我先进入复位模式,设置进入PEL I CAN 模式,对寄存器初始化后,设置接收,发送中断使能,最后设置进入自接收,单滤波模式,这样初始化就结束了,我的ACR0 ~ ACR3 为0 x 5 5 , 0 x 5 5 , 0 x 5 5 0 x 5 0 , AMR0 ~ AMR3 为0 x f f , 之后,我就往BUF F ER 里填数,0 x 8 8 , 0 x 5 5 , 0 x 5 5 , 0 x 5 5 , 0 x 5 0 , 0 x 3 0 , 0 x 3 1 , .0 x 3 7 , 之后,启动自接收请求命令,但是程序只进入了中断一次,是发送空中断,接收中断没有产生,我读发送错误寄存器,发现有错误产生,我读接收计数寄存器,为0 ,说明我没有收到数,但我读接收BUF F ER 时,值为0 x 5 5 , 0 x 5 5 , 0 x 5 5 , 0 x f f , 0 x f f , 0 x f f , 0 x f f , 0 x f f , 0 , 0 , 0 , 0 , 0 , 以上测试时,我在CANH 和CANL 之间加入了两个1 2 0 欧的匹配电阻并联在一起的,请各位高手指点呀,谢谢了答:在总线上加个CAN 接口卡会方便许多,或者加个捕获功能的示波器也可以检测波形。仿真环境:k e i l u v 2 编译器:k e i l c 5 1 7 . 0 仿真器:t k s - 5 9 1 s c p u : p 8 7 c 5 9 1 程序大小:8 K 左右兄弟在一片CPU 中烧写了一个,运行一个CAN 总线,I I C 总线测试程序能够正常运行。这个基础上加上应用程序后在仿真机中运行正常,但是烧写到c p u 后插入c p u 程序不能运行,请问是什么原因?另外一个问题:在另外一个项目中条件相同,程序只有4 K, 程序正常跑着,CAN 接口可以检测到输出波形但是却不能正确传输数据,在一块旧板子上就可以,比较两者之后发现电路完全相同测量也正常,只是布局不同,请教原因。答:程序已运行了吧?可能是HEX 文件有错;编制程序时注意P8 7 C5 9 1 的ERAM 设置、6 CL K 设置。位流数据采样自发送节点的8 2 c 2 5 0 的T x 管脚。测试条件:p e l i c a n ,扩展,双滤波模式,对方I D:0 x 8 8 , 0 x 1 1 , 0 x 5 5 , 0 x 1 0 ,发送的对方I D 为:0 x 8 8 , 0 x 1 1 , 0 x 0 0 , 0 x 0 0 ,发送2 字节数据为:0 x 0 5 , 0 x 0 6 采集的位流数据如下:0 1 0 0 0 1 0 0 0 0 0 1 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 请教位流数据的含义?答:自行计算时要区分位,还需要进行“位填充”的逆运行;简单的方法是将此信号连接

基于STM32F407的双CAN总线设计与实现

基于STM32F407的双CAN总线设计与实现 【摘要】本文是基于意法半导体(ST)新推出的一款高性能CortexTM-M4内核的ARM 芯片STM32F407ZGT6,进行的双CAN总线设计。在开发过程中采用了ST提供的可视化图形界面开发工具STM32Cube进行底层驱动的配置,简化了设计工作。但由于该工具链接的固件库函数存在传递参数错误,使得CAN总线无法接收数据,本文对该库函数进行了更正。 【关键词】STM32F407;CAN;STM32Cube Design and Realization of Double CAN Buses on STM32F407 LIU Peng (Chinese Electron Scientific and Technological Company 20th Institute,Xi’an Shaanxi 710068,China) 【Abstract】Based on a high-performance ARM with CortexTM-M4 core which launched by STMicroelectronics (ST)--STM32F407ZGT6,the double CAN bus is designed in this paper. A visual graphical interface-STM32cube which is provided by ST,is used to configure the underlying driver in this development process. It simplifies the design work. However,

CAN总线硬件设计

EDN-CAN总线助学【之八】-CAN总线硬件设计 这一讲我们详细介绍一下CAN总线通讯模块的硬件设计:CAN总线学习板上C AN通讯模块的设计。包括三个部分:(1)与CPU的接口;(2)CAN控制器SJA1000与驱动器82C250接口及其他外围电路;(3)82C250外围电路。 电路如下: 1 SJA1000与CPU接口 我们在学习单片机原理的时候,我相信大家都学习过RAM,ROM,I/O口扩展。大家可以把SJA1000看作一个外部的RAM,扩展电路十分简单。SJA1000支持两种模式单片机的连接,我们选用的是8051系列的单片机,所以选择的是I ntel模式。 (1)SJA1000的数据线和地址线是共用的,STC89C52的数据线和地址线也是共用的,这就更加方便了,直接连接就OK了。 (2)既然数据线和地址线共用,必须区分某一时刻,AD线上传输的是地址还是数据,所以就需要连接地址锁存信号 ALE。 (3)随便使用一个单片机管脚作为SJA1000的片选信号,我们学习板使用的是P20。当然你也可以直接接地。

(4)读写信号直接和单片机连接就行了,就不必多说了! (5)我们采用单片机的IO口线控制SJA1000的RST管脚,是为了软件可以实现硬复位SJA1000芯片。 (6)SJA1000的中断管脚连接单片机的INT1外部中断。当收到一包数据后,通知CPU。 2 SJA1000与82C250的接口及其他外围电路 (1)SJA1000有两路发送和接收管脚,CAN总线学习板使用了第0路。与82 C250的连接比较简单,直接连接就可以了。但应该数据发送和接收管脚不要接反了。而且我们增加了通讯状态指示灯,便于调试。 (2)时钟电路:SJA1000的最高时钟可达24M,我们学习板使用的是16M的晶振。另外增加了一个启动电阻R9(10M欧姆)。 (3) 3 82C250外围电路 (1)CANH和CANL管脚增加阻容电路,滤除总线上的干扰,提高系统稳定性。(2)RS管脚为斜率电阻输入。通过这个管脚来选择82C250的工作模式:高速模式(应用与对数据传输速率高的情况,通讯数据线最好是屏蔽的);斜率模式(速度较低,通讯线可以是普通的双绞线)。准备模式(应用于对功耗要求比较高的场合)。我们的学习板采用的是斜率模式,方便大家学习。 (3)J3是外部总线的连接口。 (4)J4是终端电阻的选择端。 到现在为止,CAN总线学习的硬件部分就介绍完了,请等待下面的软件试验部分!

相关文档