
can网络
文献-简历格式模板
2023年3月16日发(作者:温州大学信息门户)1
CAN规范2.0B
2
1介绍
控制器区域网络(CAN)是一种串行通信协议,支持高级安全的
分布式实时控制。应用领域范围从高速网络到低成本多线路系统。在
汽车电子、发动机控制单元、传感器、防滑系统等用位速率达1M位
/s的CAN连接起来。同时以低成本建立车体电子,如使用灯簇、电
子窗代替线束等其它需要。
本规范的目的是在2种CAN实现间实现兼容性。兼容性包括电
器特性和所传输数据的解释等方面。为取得设计的透明性和实现灵活
性,CAN按ISO/OSI参考模型细分成不同层:
·数据链路层
-逻辑链路控制子层(LLC);
-介质访问控制子层(MAC)
·物理层
注意在以前的CAN规范版本中,LLC和MAC子层的服务和功
能在对象层和传输层中描述。
LLC子层:
·提供数据传输和远程数据请求;
·确定LLC子层收到的消息实际应接受哪些;
·提供恢复管理和过载通信手段。
在对象处理定义中,可能会更自由。
MAC子层:主要是传输协议,即帧控制,仲裁执行,错误检查,
错误信号和故障限制。在MAC子层中,它确定新的传送开始时总线
3
是否空闲,以及是否接收刚刚开始。还有一些位定时等通用特性也在
MAC子层中。MAC的特点是不能自由修改。
物理层的范围是位在不同节点间实际传输的所有电器特性。在一
个网络中,所有节点物理层必须相同,但物理层的选择更加自由。
本规范定义MAC子层和一小部分LLC子层,并描述CAN协议
对周围层的作用结果。
2基本概念
CAN包含如下属性:
·消息优先权;
·延迟时间保证;
·配置灵活性;
·带时间同步的多播接收;
·系统范围的数据一致性;
·多播;
·错误检测和错误信号;
·只要总线再次空闲,损坏消息就自动重传;
·节点的临时错误和永远故障辨别,缺陷节点的自主关闭。
按OSI参考模块的CAN分层结构
·物理层定义了信号实际上如何传播,以及因此需要处理的位定
时描述、位编码和同步。本规范并没有定义驱动器/接收器物理层特
性,因此允许为应用对传输介质和信号电平的实现进行优化。
4
·MAC子层给出CAN协议的核心。它提交从LLC子层接收来
的消息,并将接受的消息传送给LLC子层。MAC子层负责消息组帧、
仲裁、确认、错误检测和发送信号。MAC子层由称为故障禁闭的管
理实体监控,该实体通过自检区分小扰动和永久故障。
·LLC子层负责消息过滤、过载通知和恢复管理。
本规范定义数据链路层和周边层的CAN协议。
1.消息
总线上的信息以不同的固定格式但长度有限的消息发送(见第3
5
部分:消息传送)。当总线空闲时,任何已连接的单元都可以启动新
消息的传输。
(1)信息路由:在CAN系统中,一个CAN节点不使用任何关
于系统配置的信息(如站地址)。这带来了几个重要后果。
(2)系统灵活性:节点加入CAN网络时不需要任何节点的软件
和硬件,以及应用层的改变。
(3)消息路由:消息内容由标识符命名。标识符并不指示消息
的目地,但描述了数据的含义,因此网络中的所有节点都能通过消息
过滤来决定数据对它们是否起作用。
(4)多播:作为消息过滤概念的结果,任何数量节点都能接收
并对同一消息同时产生行为。
(5)数据一致性:在CAN网络中,要保证一个消息要么同时被
所有节点接收,要么无节点接收。因此一个系统的数据一致性通过多
播和错误处理的概念来取得。
2.位率
CAN速度在不同的系统中可以是不同的,但在给定的系统中,
位速率必须一致且固定。
3.优先权
标识符在总线访问期间定义了静态消息优先权。
4.远程数据请求
通过发送远程帧,一个节点需要的数据可以通过请求另一个节点
发送相应的数据帧来获得。数据帧和相应的远程帧使用相同标识符。
6
5.多播
当总线空闲时,任何单元都可以启动消息的传输。带最高优先权
消息的单元赢得总线访问。
6.仲裁
只要总线空闲,任何单元都可以启动消息传输。如果2个或更多
单元同时启动消息传输,总线访问冲突通过对所用的标识符进行按位
仲裁来解决。仲裁机制保证了信息和时间均不损失。如果有相同标识
符的数据帧和远程帧同时发起,数据帧会优先于远程帧。在仲裁期间,
每个传送器都将传送的位电平与总线上监视的位电平进行比较。如果
电平相等,单元可以连续发送。当一个单元发送隐性电平时监视到显
性电平,该单元会丢失仲裁,必须后退不再发送位。
7.安全性
为了取得数据传送的最大安全性,每个CAN节点内都实现了强
大的错误检测措施、发送信号和自检查。
(1)错误检测:为了检测错误采取如下措施。1)监视(传送器
将传送位的电平与总线上检测到的位电平进行对比);2)循环冗余校
验码;3)位填充;4)消息帧检查。
(2)错误检测的执行:错误检测机制有以下属性。1)能检测全
局错误;2)传送器能检测本地错误;3)能检测多达5个随机分布的
错误;4)能检测消息中长度小于15的突发错误;5)能检测消息中
任意奇数个错误。
未检测到损坏消息的总漏检错误概率:小于“消息错误率*4.7*
7
10-11”。
(3)错误信号和恢复时间:损坏的消息被检测到的节点做上标
记。这样消息终止并自动重传。如果没有其它错误,从检测到错误至
下一个消息启动的恢复时间最多为31个位时间。
(4)故障禁闭:CAN节点能分辨出短期扰动和永远故障。有缺
陷节点被关闭。
(5)连接:CAN串行通信连接是用一条可连接多个单元的总线。
连接单元数理论上无限制。实际上单元最大数受限于延迟时间和/或
电器负载。
(6)单通道:总线由单个双向通道组成,从通道带的位中,可
分离出数据再同步信息。本规范没有固定以该方式实现这种通道的方
法。如单次写(正地)、2种不同的接线、光纤等。
(7)总线值:总线可以是两种互补的逻辑值之一:“显性”或“隐
性”。在同时传送“显性”和“隐性”期间,总线值的最终结果将是
“显性”。例如,如果总线按“线与”实现,显性电平表示为逻辑0,
隐性电平为逻辑1。表示逻辑电平的物理状态(如电学电压、光照度)
在本规范中没有给出。
(8)确认:所有接收器检查所收消息的一致性,对一致的消息
进行确认,为不一致的消息做出标记。
(9)睡眠模式/唤醒:为减少系统的能量消耗,CAN设备可以设
置成睡眠模式,该模式下没有任何内部活动,并断开与总线驱动器的
连接。睡眠模式通过任何总线活动或系统内部连接来唤醒。唤醒时,
8
内部活动被重启,但MAC子层还将等待系统的振荡器稳定,然后在
总线驱动器被再次设置成“在线”之前,要一直等待到它与总线活动
的同步(通过检查11个“隐性位”)。
(10)振荡器容差:在传输率达125kb/s的应用中,位定时允许使
用陶瓷共振器(规则要求);更精确的赋值参考Dais,S;Chapman,M:
“传输能力对位表示的影响和串行数据流中的时钟精确性,SAE
TechnicalPaperSeries890532,MultiplexinginAutomobilSP-773,
March1989.”,对于CAN协议的整个总线速度范围,需要使用时英振
荡器。
3消息传输
3.1帧格式
有两种不同格式,它们的标识符场长度不同。带11位标识符的
帧是标准帧,带29位标识符的帧是扩展帧。
3.2帧类型
消息传输由四种不同帧类型显示和控制:
数据帧:携带数据从发送器至接收器;
远程帧:由总线单元发送,请求使用相同的标识符传输数据帧;
错误帧:当检测到总线错误时,可由任意单元传送;
过载帧:用来在前后两个数据或远程帧之间,提供一个额外延迟。
数据帧和远程帧即可使用标准帧格式,也可使用扩展帧格式。它
们通过帧间距与前趋帧分隔开。
9
3.2.1数据帧
由7种不同的位场组成:帧起始、仲裁场、控制场、数据场、CRC
场、确认场、帧结束。数据场长度可以为0。
帧起始(SOF,标准格式及扩展格式):1个显性位,标记数据
帧和远程帧的开始。仅当总线空闲时才允许站开始传输(见帧间距)。
所有站必须与第一个开始传输站的SOF前沿同步(见硬同步)。
仲裁场:标准格式与扩展格式不同。标准格式由11位标识符和
RTR位组成,标识符位置标识为ID18~ID28;扩展格式由29位标识
符和SRR位、IDE位和RTR位组成,标识符位置标识为ID0~ID28。
为区分这两种格式,在以前CAN规范(V1.0~V1.2)中保留的r1位,
现在用作IDE位。
10
标识符(标准格式):长11位,与扩展格式的基本ID一致。这
些位的传输顺序为由ID28到ID18,最低位是ID18。最高的7位
(ID22~ID28)一定不能均为隐性位。
标识符(扩展格式):长29位,由两部分组成,基本ID为11
位,扩展ID为18位。基本ID与标准格式的ID一致,它定义了扩
展帧的基本优先权。扩展ID传输顺序为ID17~ID0。
RTR位(标准格式和扩展格式):远程传输请求位,数据帧中
RTR位必须是显性位。远程帧中必须为隐性位。
SRR位(扩展格式):代替远程请求,隐性位。它代替了标准帧
中的RTR位。有相同基本ID的标准帧和扩展帧,在该位上产生冲突,
这种冲突按标准帧优先于扩展帧传输的方式解决。
11
IDE位(扩展格式):扩展位标识符,在扩展格式中它属于促裁
场;在标准格式中,它属于控制场。标准格式中,IDE位以显性位传
输,扩展格式中以隐性位传输。
控制场(标准格式和扩展格式):由6位组成,标准格式与扩展
格式不同。标准格式中包括数据长度码、IDE位(显性)和保留位r0;
扩展格式中包括数据长度码、保留位r1、r0。保留位必须为显性位,
但接收器能接收显性和隐性位的所有组合。
数据长度码(标准格式和扩展格式):4位,在控制场中,指示
数据域的字节长度。数据字节长度编码见下表,d表示显性,r表示
隐性。
12
数据帧允许的数据字节数为0~8,其它值不能使用。
数据场(标准格式和扩展格式):由数据帧中要传输的数据组成,
可包含0~8个字节,每个8位均从最高位开始传输。
CRC场(标准格式和扩展格式):包括CRC序列和CRC分界符。
·CRC序列(标准格式和扩展格式):
帧校验序列来源自于最适合位数少于127位(BCH码)的帧的
循环冗余码。为了完成CRC计算,被除多项式定义为多项式,多项
式的系数由去掉填充位的位流给出,位流由帧起始、仲裁场、控制场、
数据场(如果有)组成。最低的15个系统为0。多项式被生成多项
式除(其系数用模2计算),生成多项式如下:
X15+X14+X10+X8+X7+X4+X3+1。
该多项式除的剩余部分是通过总线传输的CRC序列。
为了实现这个功能,用一个15位的移位寄存器CRC_RG。如果
NXTBIT表示位流的下一位,由帧起始至数据场结束的去填充位的位
流序列给出,则CRC序列按如下方法计算:
13
CRC_RG=0;//初始化移位寄存器
REPEAT
CRCNXT=NXTBITEXORCRC_RG(14);
CRC_RG(14:1)=CRC_RG(13:0);//左移1位
CRC_RG(0)=0;
IFCRCNXTTHEN
CRC_RG(14:0)=CRC_RG(14:0)EXOR(0x4599);
ENDIF
UNTIL(CRC序列开始或有错误条件)
在发送/接收完数据场的最后一位后,CRC_RG中包含的是CRC
序列。
CRC分界符(标准格式和扩展格式):1个隐性位。
确认场(标准格式和扩展格式):2位长,1位是确认槽,另1位
是确认分界符。在确认场中,发送站发送2个隐性位,在确认槽传送
期间,收到消息的接收站如果认为消息正确,通过将1个显性位放到
该确认槽中(发送确认),以向发送者报告。
14
确认槽:所有已收到与CRC序列匹配的站均在确认槽中做出报
告,试图将发送者发送的隐性位改成显性位。
确认分界符:必须为隐性位。从整个序列来讲,确认槽由两个隐
性位包围(CRC分界符和确认分界符)。
帧结束(标准格式和扩展格式):每个数据帧和远程帧均由一个
由7个隐性位组成的标志序列分界。
3.2.2远程帧
扮演接收器角色的站为某个数据可以发起针对相应源节点的数
据的传输,方法是发送远程帧。标准格式和扩展格式均有远程帧,两
格式下该帧均由6个不同位场组成:帧起始、仲裁场、控制场、CRC
场、确认场、帧结束。与数据帧相比远程帧的RTR位是隐性位,没
有数据场,数据长度码可以是0~8中的任意值。
RTR位的极性指示了所传输的帧是数据帧(显性位)还是远程
15
帧(隐性位)。
3.2.3错误帧
由两个不同域组成,第一个域是错误标志的重叠位,它由不同的
站赋值;第二个域是错误分界符。
为正确结束错误帧,错误被动节点可能需要总线成为空闲至少3
个位时间(如果在错误被动节点接收器上有本地错误)。因此总线负
载不能为100%。
错误标志:有2种错误标志—主动错误标志和被动错误标志。
1.主动错误标志由6个显性位组成;
2.被动错误标志由6个隐性位组成,除非它被其它节点的显性
位覆盖。错误主动站检测错误条件,通过传送主动错误标志发出信号。
错误标志形式违反了应用于从帧志始至CRC分界符所有场的位填充
规则(见编码),或是破坏了确认场或帧线束的固定格式。因此所有
其它站均能检测到错误条件,并各自开始传送错误标志。因此实际能
够在总线上监视到的显示位序列,是各个独立站发送不同错误标志的
叠加结果。该序列的整个长度最小为6位,最大为12位。错误被动
站检测错误条件并试着发被动错误标志。错误被动站从被动标志开始
16
等待6个连续相同的极性位。当检测到6个相同位时,隐性错误标志
完成。
错误分界符:由8个隐性位组成,在传输一个错误标志后,每个
站都发送隐性位并监控总线,直到检测到一个隐性位。然后开始再传
送7个隐性位。
3.2.4过载帧
由2位的过载标志域和过载分界符组成。有2种过载条件:
1.接收器的内部条件,它需要下一数据帧或远程帧的延迟;
2.在间歇域(帧间距中)的第1和第2位上检测到显性位;
3.如一个CAN节点在错误分界符或过载分界符的最近8位采样
到一个显性位,它就开始传输过载帧(非错误帧)。错误计数不增加。
由于过载条件1引发的过载帧仅允许在预期的间歇域中的第1位
处开始,而过载条件2和3引发的过载帧在检测到显性位的后一位处
开始。
一次最多可产生2个过载帧,以延迟下一数据或远程帧。
过载标志:由6个显性位组成,与主动错误标志形式一致。过载
标志的形式破坏了间歇域的固定形式,因此所有站都能检测到过载
17
帧,并各大自开始传递过载标志。如果在间歇域的第3位检测到显性
位,则该位解释成帧起始。
注意:基于CAN规范V1.0和V1.1的控制器对间歇域的第3位
解释为,如果某个节点检测到显性位,其它节点将不能正确解释过载
标志,而是将6个显性位中的第1个解释成帧起始;第6个显性位违
反了位填充规则,从而导致错误条件。
过载分界符:由8个隐性位组成,与错误分界符形式相同。过载
标志传送后,站监视总线直到检测到一个由显性位到隐性位的转换为
止。此刻每个总线上的站都发送完了过载标志,所有站均开始传输7
个或更多的隐性位。
3.2.5帧间距
数据帧和远程帧通过叫帧间距的位域将它与前面的帧(数据帧、
远程帧、错误帧、过载帧)分隔开,过载帧和数据帧不需要这种分隔。
帧间距包含间歇域和总线空闲域,对于作为先前消息发送者的错误被
动站,它还包括挂起传输域。
对于非错误被动站,或作为先前消息接收者的站,其形式为:
对作为先前消息发送者的错误被动站,其形式为:
18
间歇域:由3个隐性位组成,在间歇域期间唯一能采取的行为是
发过载条件信号,不允许站主动开始传输数据帧或远程帧。
注意:如果一个CAN节点有个消息等待传输,它在间歇域的第
3位采样到显性位,则解释其为帧起始位,它的下一位解释为开始传
输的第i条消息标识符的第一位,该节点既不能用此位传输帧起始,
也不能成为接收者。
总线空闲域:总线空闲期可以任意长,总线被认为是空闲时,任
何站都可以访问总线进行传输。在另一消息传输期间,消息传输开始
于间歇域之后的第1位,总线上检测到显性位,被解释成帧起始。
挂起传输域:错误被动站传输完一条消息后,它在间歇域后,开
始传输其它消息前或认为总线空闲前,发送8个隐性位。如果同时又
开始一个传输(另一个站引起),该站将变为该消息的接收者。
3.3帧格式的一致性
标准格式的数据/远程帧模式与CAN规范1.2的相同。扩展格式
为协议新特征。满足CAN规范的控制器至少要满足以下两条:
1.支持标准格式;
2.能接收扩展格式,这需要它不破坏扩展帧格式,但并不需要
一定要完全支持扩展格式。
19
3.4发送者/接收者的定义
发送者:产生消息的单元叫消息发送者,该单元停留在发送者状
态,直到总线空闲或该单元失去仲裁。
接收者:如果一个单元不是发送者,或总线不空闲,该单元是消
息的接收者。
4消息过滤
消息过滤基于整个符识进行,可选择的屏蔽寄存器能将任何标识
符位设置成不关心,这可用来选择映射到附属的接收缓冲的标识符
组。如果屏蔽寄存器的每位都实现为可编程的,这些位可以使能或禁
止对消息的过滤。屏蔽寄存器的长度可以是整个标识符,也可以是其
中的一部分。
5消息有效性
对消息的发送者和接收者来讲,它们的消息生效的时间点不同。
发送者:直到帧结束,如果没有错误则消息有效。如果消息被破
坏,将按优先权自动重传。为了其它消息能完成总线访问,重传必须
在总线空闲时开始。
接收者:除帧结束的最后一位外,如果消息没有错误则消息有效。
帧结束的最后一位值按不关心处理,显性位值不会导致模式错误。
6编码
20
位流编码:帧起始、仲裁场、控制场、数据场和CRC序列,这
些帧段,通过位填充的方法编码。只要发送者检测到发送的位流中有
5个连续相同的位值,它就自动在位流中插入一个相反位值。数据帧
或远程帧的其它位域(CRC分界符、确认域和帧结束)是固定形式,
不填充。错误帧和过载帧也是固定形式,亦不填充。消息中的位流按
不返回0(NRZ)的方法进行编码,即整个位时间中产生的位电平要
么为显性,要么为隐性。
7错误处理
7.1错误检测
有5种错误类型(不是互斥排他的错误):
·位错误:单元在总线上发送一个位的同时,也监视总线,当监
视到的位值与发送的值不同时,在该位时间内必须检测到这样的位错
误。但在对仲裁场位流的填充期间或确认槽期间发送的是隐性位,检
测到显性位时不是位错误。发送者发送被动错误标志,并检测到显性
位时,并不将其解释成位错误。
·填充错误:在需要按位填充编码的消息域中,第6个连续相同
位电平的位时间内必须检测到填充错误。
·CRC错误:CRC序列由发送者计算的CRC结果组成,接收者以
相同的方法计算CRC。如果计算的结果与所接收的CRC序列不同,则
发生CRC错误。
·格式错误:当固定格式的位域包含一个或多个非法位时,发生
21
格式错误。(注意,对接收者,在帧结束的最后一位期间,检测到显
性位不按格式错误处理)
·确认错误:在确认槽期间,只要发送者没有监视到显性位,则
发生确认错误。
7.2错误信号
检测到错误条件的站通过传输错误标志发送信号。对于错误主动
节点,信号为主动错误标志,对错误被动节点信号是被动错误标志。
只要检测到位错误、填充错误、格式错误、确认错误,各站就在下一
位开始错误标志传输。除非因其它错误条件已经开始传输错误标志
外,只要检测到CRC错误,错误标志就在确认边界符的下一位开始传
输。
8故障禁闭
一个单元可以处于以下三种状态之一:
·错误主动:错误主动单元通常参与总线通信,当已经检测到错
误时,发送主动错误标志。
·错误被动:错误被动单元不能发送主动错误标志,它参与总线
通信,但当检测到错误时仅发送被动错误标志。仅当一个传输完成后,
错误被动单元将在发起更多传输之前等待(见挂起传输)。
·离线:离线单元不允许对总线有任何影响(如输出驱动器关闭)。
对于故障禁闭,每个总线单元都要实现2个计数:
22
1)发送错误计数;
2)接收错误计数。
这些计数按如下规则修改:
1.当接收者检测到错误,接收错误计数加1,但在发送主动错误
标志或过载标志期间检测到位错误不增加计数值。
2.当接收者在发送错误标志后在第一位上检测到显性位,则接
收错误计数加8。
3.当发送者发送错误标志时,发送错误计数加8。
例外1:如果发送者是错误被动,因没有发现显性确认而检测到
的确认错误,以及在发送它的被动错误标志期间没有检测到显示性
位;
例外2:如果发送者在仲裁场期间因填充错误发送错误标志,以
及应该发送隐性位,且已经发送了隐性位,但监视到了显示性位。
在例外1和2中,发送错误计数不变。
4.如果发送者在发送主动错误标志或过载标志期间,检测到位
错误,发送错误计数加8。
5.如果接收者在发送主动错误标志或过载标志期间,检测到位
错误,接收错误计数加8。
6.在发送主动错误标志、被动错误标志、过载标志后,任何节
点能容忍7个连续显性位。在检测到第14个连续显性位(如主动错
误标志或过载标志)之后,或是在被动错误标志后面检测到第8个连
续显性位之后,或是在8个连续显性位的每个附加序列之后,每个发
23
送者的发送错误计数加8,每个接收者的接收计数加8。
7.在成功发送消息(得到确认且直到帧结束无错误完成)之后,
除非发送错误计数已经为0,否则减1。
8.在成功收到消息(确认槽上无错误,并成功将确认发送到确
认位上)之后,如果值在1至127之间,接收错误计数减1。如果接
收错误计数是0,保持不变。如果值大于127,则将错误计数恢复到
119和127之间。
9.当发送错误计数等于或超过128时,或接收错误计数等于或
超过128时,节点成为错误被动。使节点进入错误被动状态的错误条
件,引发节点发送主动错误标志。
10.当发送错误计数大于等于256时,节点处于离线状态。
11.当发送错误计数和接收错误计数都小于等于127时,错误被
动节点再次变为错误主动节点。
12.总线上监视到11个连续隐性位,处于离线的节点允许变为
错误主动节点,两个错误计数均被设为0至128。
注意:错误计数值大于96表示严重干扰总线,这可能为测试这
种条件提供的较好方法。
注意:启动/唤醒时,如果系统启动期间仅有一个节点在线,且
该节点发送了某消息,它不会得到确认,节点分检测到错误并重发消
息。这可能仅该节点进入错误被动状态,但不会变为离线状态。
9振荡器容差
24
最大振荡器容差是1.58%,因此总线上使用陶瓷共振器时,最大
速度为125Kb/s;更精确的估值可参考相关资料。对于CAN协议的
全部总线速度范围,需要使用时英振荡器。对振荡器精度有最高要求
的CAN网络芯片,决定了振荡器的精度,所有其它节点也需要具有
同样精度的振荡器。
注意:满足此CAN规范和以前版本V1.0、V1.1的CAN控制器,
用在一个网络中,所有控制器必须均使用石英振荡器。这意味着陶瓷
共振器只能用于所有节点均满足CAN协议规范V1.2或以后版本的网
络中。
10位定时要求
名义位速率:是使用一个理想发送器,在没有再同步的情况下,
每秒传输的位数。
名义位时间=1/名义位速率
名义位时间可被分成独立且不互相重叠的时间段,这些段是:
-同步段(SYNC_SEG);
-传播时间段(PROP_SEG);
-缓冲时期段1(PHASE_SEG1);
-缓冲时期段2(PHASE_SEG2)。
25
同步段(SYNC_SEG):该时间段用于与总线上的不同节点同步,
期望在此段内出现一个边沿;
传播时间段(PROP_SEG):该时间段用于补偿网络内的物理延
迟时间,它是总线的线上信号传播时间总和的2倍,包括输入延迟和
输出驱动延迟;
缓冲相位段1(PHASE_SEG1)和缓冲相位段2(PHASE_SEG2):
这些缓冲期段用于补偿边沿的相位误差。这些段能够通过再同步被拉
长或缩短。
采样点:总线上电平被读的时间点,读出的电平被解释成位值,
其位置在缓冲相位段1的结束处。
信息处理时间:是从采样点开始,为计算随后的位电平而预留出
来的时间段。
时间定额:是来自于振荡器周期的固定时间单位。有一个范围至
少在1到32的整数值的可编程预定标器,用最小时间定额启动它时,
时间定额长度为:
时间定额=m·最小时间定额,m是预定标器的值。
时间段长度:
26
·SYNC_SEG:1个时间定额长;
·PROP_SEG:可编程为1、2、…、8个时间定额长;
·PHASE_SEG1:可编程为1、2、…、8个时间定额长;
·PHASE_SEG2:是PHASE_SEG1和信息处理时间的最大值;
·信息处理时间:少于或等于2个时间定额长。
一个位时间中的时间定额的总数必须是可编程的,最小的可编程
范围为8至25。
注意:通常本地CPU和它的通信设备并不使用不同的振荡器。
因此CAN设备的振荡器频率趋向于本地CPU的,并由控制单元的需
求决定。为了得到期望的位速率,位定时的可编程性是必须的。如果
CAN实现被设计为没有本地CPU,位定时就不是可编程的。另一方
面,这些设备允许选择外部振荡器,这种方式下设备被调整到合适的
位速率,因此可编程性是非必须的。不管怎样,采样点的位置应该是
所有节点的共有选择。因此无本地CPU的CAN设备的位定时应该与
以下位时间定义相兼容。
硬同步:硬同步之后,内部位时间用在SYNC_SEG内重启,这
样硬同步强制引起硬同步的边沿位于重启位时间的同步段内。
再同步跳宽:作为再同步的结果,PHASE_SEG1可以被拉长或
PHASE_SEG2被缩短,拉长或缩短的缓冲相位段量上界由再同步跳
27
宽给出。再同步跳宽在1至min(4,PHASE_SEG1)之间可编程。时钟
信息可以从一个位值到另一个位值的变迁中分离出来。这个属性仅是
一个有相同值的后继位的固定最大数,它提供了在一个帧期间将一个
总线单元与位流再同步的概率。可用于再同步的两个变迁之间的最大
长度是29个位时间。
边沿的相位错误:相对于SYNC_SEG的边沿位置(用时间定额
来测量)给出边沿的相位错误。相位错误的符号定义如下:
·如果边沿位于SYNC_SEG内,则e=0;
·如果边沿在采样点之前,则e>0;
·如果边沿在以前位的采样点之后,则e<0。
再同步:当引发再同步边沿的相位错误幅度小于等于被编程的再
同步跳宽值时,再同步的影响与硬同步相同;当相位错误的幅度大于
再同步跳宽时,
·且如果相位错误是正值时,那么PHASE_SEG1拉长到等于再
同步跳宽;
·且如果相位错误是负值时,那么PHASE_SEG2缩短到等于再
同步跳宽。
同步规则:硬同步和再同步是同步的两种形式,他们遵循以下规
则:
1.在一个位时间里仅允许有一个同步;
2.仅当在前一个采样点(以前读的总线值)检测的值与边沿后
面的总线值不同时,该边沿才会用于同步;
28
3.总线空闲期间只要有隐性到显性边沿出现,就执行硬同步。
所有其它满足规则1和2的隐性到显性边沿将用于再同步,例外
是当隐性到显性边沿是正相位错误时,此时节点传输显性位时不执行
再同步。