新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > CAN总线接□模块工作原理

CAN总线接□模块工作原理

作者:时间:2011-07-20来源:网络收藏

1.CAN模块简介   

控制器局域网(CAN)模块是用于与其他外围设备或单片机进行通信的模块,这种接口协议能在较大的噪声 环境中进行通信,具有良好的扰干扰性能。

CAN模块是一个通信控制器,执行的是Bosch公司的CAN2.0A/B协议。它能支持CAN1.2、CAN 2.0A、CAN 2.OB 协议的旧版本和CAN2.OB现行版本,此控制器模块包含完整的CAN系统。

CAN模块由协议驱动和信息缓冲及控制组成,CAN协议驱动上接收和发送信息的所有功能。信息装载 到某个相应的数据寄存器后再发送,通过读相应的寄存器可检查状态与错误信息。在上检测到的任 何信息都要进行错误检查,然后与过滤器进行比较,判断是否被接收和存储到两个接收寄存器之一。

2.CAN模块支持的帧类型   

CAN模块支持以下帧类型:标准数据帧、扩展数据帧、远程帧、出错帧、过载帧和空闲帧。

(1)数据帧。

用于各节点之间传送数据消息,由7个不同的位场组成:帧起始、仲裁场、控制场、数据场、CRC场、应答 场和帧结束。数据帧结构如图1所示。

图1 数据帧组成   

(2)远程帧。

当CAN网络上一个节点需要其他节点所拥有的数据信息时,可以通过发送远程帧来请求另一节点发送。该 远程帧的标识符标识了所需数据的类型,因此,被送回的数据信息的标识符和远程帧的标识符完全一致。数 据源节点在接收到远程帧后,根据远程帧的标识符判断所需数据信`患类型,并在总线空闲时将相应数据送 出。远程帧由6个位场组成:帧起始、仲裁场、控制场、CRC场、应答场和帧结束。除了没有数据场和RTR为 隐性外,远程帧结构和数据帧完全相同,远程帧结构如图2所示。

图2 远程帧结构   

(3)错误帧。

为进行错误界定,每个CAN控制器均设有两个错误计数器:发送错误计数器(TEC)和接收错误计数器 (REC)。上的所有节点按其错误计数器数值情况可分为3个状态:错误活动状态、错误认可状态和 总线关闭状态。节点状态转换如图3所示。

图3 节点状态转换   

上电复位后,两个错误计数器的数值都为0,节点处于错误活动状态,可正常参与总线通信,检测到错误时 ,发送活动错误标志。当错误计数器任一数值超过127时,节点进入错误认可状态。处于错误状态的节点可 参与总线通信,但出错后,发送认可错误标志,并在开始进一步发送数据之前等待一段附加时间(暂停发送 场)。

当发送错误计数器和接收计数器均小于或等于127时,节点从错误认可状态再次变为错误活动状态。若发送 错误计数器数值超过255后,节点进入总线关闭状态,既不能向总线发送数据,也不能从总线接收数据。当 软件执行操作模式请求命令,并等待128次总线释放(BusˉFree)序列(11位连续隐性位)后,节点从总线 脱离状态重新回到错误活动状态。

  错误帧由两个不同的位场组成,第一个场由来自不同的节点的错误标志叠加而成,第二个场为错误界定符 ,错误帧结构如图4所示。

图4 错误帧结构   

(4)过载帧。

超载帧由超载标志和超载界定符组成。超载标志由6个显性位组成,其格式与活动错误标志相同。超载界 定符由8个隐性位组成,其格式与错误界定符相同。导致发送超载帧的两个条件为:   

①一个接收节点内部接收条件未准备好,要求延迟下一个数据帧或远程帧发送;   

②在间歇场(3位)检测到显性位。

当超载标志发出后,每个节点监视总线状态,直至检测到从显性至隐性位的跳变,此时,所有的节点均己 完成了超载标志的发送,随后所有节点开始发送8个隐性位组成的超载界定符,超载帧结构如图5所示。

图5 超载帧结构   

(5)空闲帧。

数据帧及远程帧与前帧消息之间的间隔被称为帧间空间的场隔开,如图6所示,帧间

图6 不包含暂停发送场的帧间空间   

空间由间歇场和总线空闲场组成,前面已经发送过报文的错误节点还包括暂停发送场。间歇场由3个隐性位 组成,在此期间,CAN节点不进行帧发送。间歇场的存在使CAN控制器在下次消息发送前有时间进行内部处理 操作。

总线空闲场可以为任意长度,此时总线处于空闲状态,允许任何节点开始报文发送。等待报文发送的节点 紧随间歇场后启动报文发送,即在空闲场第一位期间就启动报文发送。

如图7所示,错误认可节点完成一个报文发送后,在开始另一次报文发送或进入总线空闲状态之前,紧随间 歇场发送8个隐性位的暂停发送场。发送暂停发送场期间,若其他节点开始发送报文,则本节点停止送出暂 停发送场,并变为报文接收器。   图7 包含暂停发送场的帧间空间   (6)标准数据帧。

  标准数据帧的结构如图8所示。

图8 标准帧格式   

(7)扩展帧。

扩展帧的结构如图9所示。

图9 扩展帧格式   

3.传输过程中的可靠性和同步问题   

(1)可靠性。

CAN网络通信要求信息可靠传送,但由于外界干扰不可避免地会对通信线路造成影响,误码总是客观存在 的,所以网络通信中必须采取某些差错控制措施。

当出现错误时,及时发现错误并及时加以纠正。为提高抗干扰能力和数据的可靠性,CAN采用了多种错误 检测手段:发送监视、位填充错误检测、CRC校验、格式错误检测以及应答错误检测。

为保证CAN网络中节点间的正常通信,必须对报文的位定时作出规定。接收同步、网络传输延迟补偿及采 样点定位均由CAN协议集成电路的可编程位定时逻辑确定。CAN中正常位速率被定义为:在不需要重同步的情 况下,每秒传送的位数。正常位定时被定义为一位的持续时间,实际上就是正常位速率的倒数。

(2)同步问题。

位时间可划分为4个互不重叠的时间段:同步段(SYNC ̄SEG:SynchronizationSegment)、传播段(PROPˉSEG:Propagation Segment)、相位缓冲段1(PHASEˉSEG:Phase Bufer Segment1)及相位缓冲段2(PHASE-SEG2:Phase Bufer Segment2)。

同步段用于总线上各节点消息传输同步,长度为一个时间份额,此段内需要一个跳变沿。传播段用于补偿网络内的物理延迟时间,它是信号在总线上传播时间、输入比较器延迟和输出驱动器延迟之和的两倍,长度可被编程为1~8个时间份额。实际上,在CAN协议集成器件中并没有定义此段。

相位缓冲段用于补偿上升沿或下降沿的相位误差,通过重同步,这两个时间段可被用户延长或缩短。相位缓冲段1长度可编程为1~8个时间份额,相位缓冲段2长度取值为相位缓冲段1最大值和消息处理时间之和,消息处理时间个于等于两个时间份额(这一点在CAN协议集成器件中并未严格遵守,实际应用中相位缓冲段1比相位缓冲段2长)。

由采样点开始,保留用于计算后续位电平的时间段被定义为消息处理时间,其长度小于或等于2个时间份额。总线电平在采样点被读取,所以此点代表该位的数值大小。采样点位于相位缓冲段1的末尾处。

时间份额是由振荡器时钟分频得出的一个固定时间单元,在CAN协议集成器件中被称为系统时钟周期,可由一个预分频器设定大小,时间份额由下式计算:   

时间份额=m×最小时间份额   

其中m为预分频器系数,最小时间份额在CAN集成器件中被称为振荡器时钟周期。一个位时间中时间份额总数必须被编程在8~25之间。

网络常采用的同步方式有两种:准同步和标准同步。准同步又称独立同步,各节点均拥有时间独立的高稳定度振荡时钟,它们的频率并不一定完全相等,但必须时间相近。准同步的优点是同步体系简单,容易实现,缺点是工作可靠性较差。

标准同步又分为主从同步法和相互同步法两种,主从同步方法中,各网络节点的时钟以在网络中处于重要位置的节点时钟为基准。其优点是结构相对简单,网络稳定性好,缺点是网络过分依赖于主时钟,有全网瘫痪的危险。

和其他计算机网络相比,CAN网络结构相对简单,所以采用准同步方式,每个节点都拥有自己独立的振荡时钟。CAN网络中,同步方式又分硬同步和重同步两种形式,同步过程由器件自身完成。

CAN模块使用RB3/CANRX和RB2/CANTX/INT2引脚与CAN总线驱动器接口。要配置CANRX和CANTX为CAN接口,需要将TRISB〈3>位置1,TRISB(2)位清0。

分频器相关文章:分频器原理
尘埃粒子计数器相关文章:尘埃粒子计数器原理


评论


相关推荐

技术专区

关闭