3.3CAN总线基本技术参数
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
+5V
TXD
RL VCAN–H
RXD
总 线 收 发 器 VCAN–L VRL
图3–17 总线收发器与总线的连接
(4.5-5)V 0 1 1 0 0 0 1 0 0 1 1 1
(a) TXD上的电压VT (以V-为参考电位)的波形及典型电平
2V
0
1 1 0 0 0 1 0 0 1 1 1
(b)总线差分电压Vdiff的波形及典型电平 图3–18 帧起始和标识符(=11000100111)部分的VT 和 Vdiff的波形及典型电平
标识符场 DLC场 LLC数据场
标识符场 DLC场
图3–19 LLC数据帧
图3–20 LLC远程帧
2、MAC子层 MAC子层描述OSI数据链路层的下部,它作为LLC子层和 物理层的接口。 CAN技术规范中指出,MAC子层是CAN协议的核心。MAC 子层提供的主要功能是传送协议,即发送/接收数据的封装(成 帧)/拆装,帧编码及位填充(若需要)/去除填充位(若有), 媒体访问管理(执行仲裁),错误检测和标注,应答,(发 送)串行化/(接收)解除串行化。 ISO11898中介绍,MAC子层为LLC子层提供的服务为:应 答数据传送,即为LLC子层发送/接收数据帧;应答远程数据传 送,即为LLC子层发送/接收远程帧;超载帧传送,即为LLC子 层发送/接收超载帧。 CAN技术规范中给出的4种帧(数据帧、远程帧、错误帧和 超载帧)的组成均指的是MAC帧。
在总线上监听到一个显性位(“0”),则此节点即失去仲 裁,并必须停止发送。在当前发送结束后,失去仲裁的
节点可尝试再次发送。 *****由于标识符是由最高位至最低位被发送的,因此发 送数值最小的标识符的节点会赢得仲裁。 图3-22给出了一个标准格式的CAN的逐位仲裁的例子。
仲裁场 节点 X 发送:0 10110110100 0 0 0 1 00100001 xxxx 11 EOF
LLC数据帧和远程帧的结构分别如图3–19和图3–20所 示。应该指出,用户传给LLC子层的标准格式的数据帧包括4 部分:标识符、RTR位(为“0”)、DLC和数据场,前3部 分 的位数分别为11、1和4,即前3部分共有16位,刚好为2个 字节(占用2个地址单元,若每个地址单元为1个字节)。 许多CAN控制器(如SJA1000、P8xC591中的CAN控 制器)就要求将标识符、RTR位和DLC写入2个地址单元或 从2个地址单元中读出。 用户传给LLC子层的标准格式的远程帧包括3部分:标 识符、RTR位(为“1”)和DLC。
3.3 CAN总线基本技术参数
3.3.1 总线典型电平 总线上的位电平表示如图3–15所示。 图中,VCAN–H、VCAN–L分别表示总线的两线上的电压 (以某一电位为公共参考电位,一般选总线收发器的电源地); Vdiff 为总线差分电平,Vdiff = VCAN–H-VCAN–L。 在总线为隐性电平/隐性状态时,VCAN–H和 VCAN–L均在 平均电平附近,Vdiff近似为零; 在总线为显性电平/显性状态时,Vdiff大于某一阈值。CAN 技术规范中没有给出隐性电平和显性电平的数值,而ISO11898 对此有所规定,其典型值如图3–16所示(图中V-为VCAN–H、 VCAN–L的公共参考电位)。由图中可见,在隐性状态下,各典 型值为:VCAN–H=VCAN–L=2.5V,Vdiff =0V;在显性状态 下,各典型值为:VCAN–H=3.5V,VCAN–L=1.5V, Vdiff =2V。
假定总线位流的第一位(帧起始,为“0”)起始于t1时 刻、终止于t2时刻,总线位流的第2位为“1”;从第2位开始, 总线位流的“隐性”(“1”)至“显性”(“0”)和“显性” (“0”)至“隐
性”(“1”)的跳变沿均用于重同步。
(a)节点内部时间序列(以时间份额 tq 为周期) SY PR PS1 PS2 SY PR PS1 PS2
采样点 第1位位时间 (b)节点内部位时间 0 t1 第1位(帧起始) (c)总线位流位时间 t2
采样点 第2位位时间
1 第2位
在t1时刻,节点检测到总线的跳变沿,便进行硬同 步,使t1时刻的跳变沿处于节点内部第1位位时间的同步 段内。节点从第1位的同步段开始启动内部位定时,即根 据系统要求的波特率给出内部位时间。 现假定由于各节点振荡器频率的不一致,在t2时刻的 跳变沿未处于节点第2位位时间的同步段SY内,而是处于 PS1内,即有e﹥0。这表明节点内部的位时间小于总线位 流的位时间。为了使节点能从总线上通过采样得到正确的 位数值,需使节点内部的位时间延长,以使节点内部位时 间与总线位流位时间接近或相等。 因此,在这种情况下节点应采取的重同步策略为: 使PS1延长一定宽度(图中PS1延长1个时间份额,即同 步跳转宽度为1个时间份额)。这与CAN技术规范中所说 的重同步策略是一致的。
正如CAN技术规范中所指出的那样,同步段 的时间长度为1个时间份额。如图3–23所示,来自 总线的引起硬同步的沿在t1时刻到来,则节点检测 到该沿,将t1时刻的前一时刻t0(以tq为周期)作 为内部位时间同步段的起始时刻。
t0:内部位时间同步段的起始时刻 t1 :引起硬同步的沿的到来时刻
...
tq (a )节点内部时间序列(以时间份额 tq 为周期) 引起硬同步的沿(位于内部位时间同步段内)
3.3.2 LLC子层和MAC子层
1、LLC子层
LLC子层描述OSI数据链路层的上部。 CAN技术规范中指出,LLC子层的主要功能是接收过滤、超 载通知和恢复管理。接收过滤是指LLC子层通过对报文整个标识符 或部分标识符的屏蔽/筛选来决定是否接收报文;超载通知是指在 发生超载条件时,LLC子层发送超载帧以示通告,从而延迟下一个 数据帧或远程帧;恢复管理是指在发送期间,对于丢失仲裁的或 已损的报文,LLC子层具有自动重发的功能。 ISO11898中介绍,LLC子层(为用户)提供两类非连接方式 的传送服务:非应答数据发送服务和非应答远程数据请求服务。 根据这两种服务,存在两种类型的来自/传给用户的帧:LLC数据 帧和LLC远程帧。对于这两种类型的帧,LLC子层均向用户通告帧 是否成功发送或接收。 另一方面,LLC子层接受MAC子层提供的服务。LLC子层传 给/接收来自MAC子层的帧为:数据帧、远程帧和超载帧。
- 想要发送 - 监听网络 - 必须等待,直到当 前的发送完成。
节点 Y
节点 Y 等待时间
t0
帧间空间
t1
节点 Y 发送
节点 X 正在发送
图节点同时开始发送,则通过使用仲 裁场(11位标识符和RTR位(对于标准格式))的非破 坏性逐位仲裁机制来解决总线访问冲突。其基础是,当 一个隐性位(“1”)和一个显性位(“0”)同时被发送 至 总线时,总线上所出现的结果为一个显性位(“0”)。 在仲裁场发送期间,每一个发送器均监听总线电 平,并将它与自身发送的位相比较。若两值相等,则节 点可继续发送。若一个节点发送一个隐性位(“1”),而
(b)来自总线的引起硬同步的沿
(2)重同步 所谓重同步,就是节点根据沿相位误差的大小调整 其内部位时间。重同步的结果是,节点内部位时间与来自 总线的报文位流的位时间接近或相等,从而使节点能够正 确地接收报文。重同步一般用于报文位流发送期间,以补 偿各个节点振荡器频率的不一致。 这里涉及到沿相位误差的概念。在此进一步指出, 沿相位误差由来自总线的沿相对于节点内部位时间同步段 的位置给定,以时间份额量度。沿相位误差的符号e的 定义已在CAN技术规范中说明。CAN技术规范中也给出 了重同步跳转宽度及重同步策略与同步规则。为深入理解 节点究竟是如何进行重同步的,图3–24给出了重同步的 图解。图中,SY、PR、PS1和PS2分别表示同步段、传 播段、相位缓冲段1和相位缓冲段2。
diff时间平均电平隐性位显性位隐性位总线电平v图315总线上的位电平表示隐性位显性位隐性位15vdiff2v35vdiff0v图316总线canh和canl电压的典型数值5vtxdrxd图317总线收发器与总线的连接为参考电位的波形及典型电平2vb总线差分电压vdiff的波形及典型电平图318帧起始和标识符11000100111部分的vdiff的波形及典型电平当节点通过总线收发器从总线上收到标识符id11000100111的数据帧远程帧时对于帧起始和标识符部分rxd上的电压vr的波形和典型电平即为图318a而vdiff的波形和典型电平仍为图318b
2、硬同步与重同步 CAN 总线中,同步包括硬同步和重同步两种形式。 同步与位定时密切相关。 同步也是由节点自身完成的。节点将检测到的来自 总线的沿与其自身的位定时相比较,并通过硬同步或重同 步适配(调整)位定时。 (1)硬同步 所谓硬同步,就是由节点检测到的来自总线 的沿强迫节点立即确定出其内部位时间的起始位置(同步 段的起始时刻)。 硬同步的结果是,沿的到来时刻的前一时刻(以时 间份额t q量度)即成为节点内部位时间同步段的起始时 刻,并使内部位时间从同步段重新开始。这就是规范中所 说的“硬同步强迫引起硬同步的沿处于重新开始的位时间 同步段之内”。硬同步一般用于报文开始,即总线上的各 个节点的内部位时间的起始位置(同步段)是由来自总线 的一个报文帧的帧起始的前沿决定的。
在设计CAN节点/系统时,设计者应考虑由总 线上的数据帧引起的对节点的中断的速率。由于 CAN数据帧较小(0-8字节),当因多个节点欲同 时发送报文而使总线上出现连续的数据帧时,对用 软件屏蔽或完全不屏蔽的接收器的中断发生率就会 很高。 图3-25给出了具有最小帧间空间(3位)的2 个背对背式(back -to -back)CAN数据帧。由该 图得到的表3-3说明了最坏情况下接收器的中断速 率。此接收器接收一个洪流(连续的背对背式数据 帧)链路上的所有帧。
节点 Y 发送:0 10110111
节点 Y 失去仲裁,停止发送。
01 节点 Y 仍 应答报文
总线位电平: 0 10110110100 0 0 0 1
00100001
xxxx 11 EOF
图3-22 CAN的逐位仲裁的例子
3.3.4 位定时的作用及硬同步与重同步 1、位定时的作用 位定时是由节点自身完成的(可编程),位定时的作用: (1)确定位时间(位周期),以便确定波特率(位速率),从而 确定总线的网络速度;或在给定总线的网络速度的情况下确定位时 间。 (2)确定1位的各个组成部分—同步段、传播段、相位缓冲段1和 相位缓冲段2的时间长度,其中同步段用于硬同步,位于相位缓冲 段1终点的采样点用于保证正确地读取总线电平。 (3)确定重同步跳转宽度以用于重同步。 一个节点应既能在位时间的采样点正确地读取总线电平,也能 检测来自总线的沿以进行硬同步或重同步。 顺便指出,在CAN技术规范的时间份额的表达式中,对于常用 的独立CAN控制器SJA100和P8xC591中的CAN控制器,时间份额 t q为系统时钟周期t sc l;预引比例因子m为可编程的,其值取决于 总线定时寄存器0(BTR0)的内容;最小时间份额为振荡器周期 tCLK的2倍,即2tCLK。
3.3.3 MAC 机制 CAN网络上一个节点发送的帧/报文可被网络 上所有其它节点监听并应答。 当总线处于空闲(开放)时,任何节点均可 开始发送报文。若一个节点正在发送,其它节点只 有在此发送完成以后,才可尝试发送,如图3-21所 示。 图中,节点Y在t0时刻想要发送,但通过监听 网络得知此时节点X正在发送(总线上有节点X的 帧),因此节点Y必须等待,直到节点X发送完 毕,并经帧间空间之后,在t1时刻才能发送。节点 Y等待的时间为(t1- t0)。
当节点通过总线收发器从总线上收到标识符 ID=11000100111的数据帧/远程帧时,对于帧起 始和标识符部分,RXD上的电压VR的波形和典型 电平即为图3–18(a),而Vdiff的波形和典型电平仍 为图3–18(b)。 实际上,CAN技术规范中已提到,总线显 性电平由逻辑“0” (Vdiff=2V)表示,隐性电平由 逻辑“1”(Vdiff=0V)表示,这与图3–18(b)所示 的 电平“0”、“1”是一致的,只不过要注意,其中 “0”
3.3.5 数据帧与 CAN中断速率 数据帧是最典型最常用的CAN帧,而标准格 式既是基础也是较常用的(如DeviceNet只支持标 准格式),本小节即以标准格式的数据帧为分析 对象。 表3-2给出了标准格式的数据帧的7个位场及 其位数(表中给出的位数未计及填充位)。可 见,标准格式数据帧的最小位数为44,最大位数 为108。一般地,将帧起始、仲裁场和控制场作为 CAN头部(19位),CRC场、应答场和帧结束作 为CAN尾部(25位)。
总线电平V
VCAN–H
V diff
VCAN–L
平均电平
隐性位
显性位
隐性位 时间
t
图3–15 总线上的位电平表示
VCAN–H VCAN–H/VCAN–L 3.5V Vdiff =2V VCAN–L 隐性位 V图3–16 总线CAN–H和CAN–L电压的典型数值 显性位 1.5V 隐性位 Vdiff =0V