CAN总线接□模块工作原理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CAN总线接□模块工作原理
控制器局域网(CAN)模块是用于与其他外围设备或单片机进行通信的模块,这种接口协议能在较大的噪声环境中进行通信,具有良好的扰干扰性能。
CAN模块是一个通信控制器,执行的是Bosch公司的CAN2.0A/B协议。它能支持CAN1.2、CAN2.0A、CAN2.OB协议的旧版本和CAN2.OB现行版本,此控制器模块包含完整的CAN系统。
CAN模块由协议驱动和信息缓冲及控制组成,CAN协议驱动CAN总线上接收和发送信息的所有功能。信息装载到某个相应的数据寄存器后再发送,通过读相应的寄存器可检查状态与错误信息。在CAN总线上检测到的任何信息都要进行错误检查,然后与过滤器进行比较,判断是否被接收和存储到两个接收寄存器之一。
2.CAN模块支持的帧类型
CAN模块支持以下帧类型:标准数据帧、扩展数据帧、远程帧、出错帧、过载帧和空闲帧。
(1)数据帧。
用于各节点之间传送数据消息,由7个不同的位场组成:帧起始、仲裁场、控制场、数据场、CRC场、应答场和帧结束。数据帧结构如图1所示。
图1数据帧组成
(2)远程帧。
当CAN网络上一个节点需要其他节点所拥有的数据信息时,可以通过发送远程帧来请求另一节点发送。该远程帧的标识符标识了所需数据的类型,因此,被送回的数据信息的标识符和远程帧的标识符完全一致。数据源节点在接收到远程帧后,根据远程帧的标识符判断所需数据信`患类型,并在总线空闲时将相应数据送出。远程帧由6个位场组成:帧起始、仲裁场、控制场、CRC场、应答场和帧结束。除了没有数据场和RTR为隐性外,远程帧结构和数据帧完全相同,远程帧结构如图2所示。
图2远程帧结构
(3)错误帧。
为进行错误界定,每个CAN控制器均设有两个错误计数器:发送错误计数器(TEC)和接收错误计数器(REC)。CAN总线上的所有节点按其错误计数器数值情况可分为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之间。
网络常采用的同步方式有两种:准同步和标准同步。准同步又称独立同步,各节点均拥有时间独立的高稳定度振荡时钟,它们的频率并不一定完全相等,但必须时间相近。准同步的优点是同步体系简单,容易实现,缺点是工作可靠性较差。
标准同步又分为主从同步法和相互同步法两种,主从同步方法中,各网络节点的时钟以在网络中处于重要位置的节点时钟为基准。其优点是结构相对简单,网络稳定性好,缺点是网络过分依赖于主时钟,有全网瘫痪的危险。