文档详情

CAN通信接口PPT课件

辰***
实名认证
店铺
PPTX
715.69KB
约36页
文档ID:88498279
CAN通信接口PPT课件_第1页
1/36

17.1 CAN技术规范 17.2 MSCAN08模块 17.3 MSCAN08通信接口硬件电路 17.4 MSCAN08模块的编程结构 17.5 CAN通信子函数与测试实例 17.6 小结第1页/共36页 CAN通信协议主要描述设备之间的信息传递方式CAN各层的定义与开放系统互连模型OSI一致,每一层与另一设备上相同的那一层通信实际的通信发生在每一设备上相邻的两层,而设备只通过模型物理层的物理介质互连CAN技术规范定义了模型的最下面两层:数据链路层和物理层,是设计CAN应用系统的基本依据1991年9月Bosch公司制定并发布了CAN技术规范该技术规范包括A和B两部分,给出了曾在CAN技术规范中定义的CAN报文格式,而给出了标准的和扩展的两种报文格式规范主要是针对CAN控制器的设计者而言,对于大多数应用开发者来说,只需对版技术规范的基本结构、概念、规则作一般了解,知道一些基本参数和可访问的硬件即可下面只给出与CAN通信接口编程相关的部分技术规范,完整的技术规范读者可参考原英文文献第2页/共36页(1) 报文(Messages)报文是指在总线上传输的固定格式的信息,其长度是有限制的当总线空闲时,总线上任何单元都可以发送新报文。

2) 信息路由(Information Routing)在CAN系统中,CAN不对通信单元分配地址,报文的寻址内容由报文的标识符指定标识符没有报文的目的地,总线上所有单元可以通过报文滤波来判断是否接收报文3) 位速率(Bit Rate)位速度是指总线的传输速率在一个给定的CAN系统中,位速率是唯一的,也是固定的CAN总线上任意两个单元之间的最大传输距离与位速率有关,表17-1列出了距离与位速率的相关数据这里的最大距离是指不接中继器的两个单元之间的距离 第3页/共36页(4) 优先权(Priorities)在总线访问期间,报文的标识符定义了一个静态的报文优先权在CAN总线上发送的每一个报文都具有唯一的一个11位或29位的标识符,总线状态取决于二进制数0而不是1,标识符越小,则该报文拥有越高的优先权,因此一个为全0标志符的报文具有总线上的最高级优先权当有两个节点同时进行发送时,必须通过“无损的逐位仲裁方法”来使有最高优先权的报文优先发送5) 远程数据请求(Remote Data Request)当总线上某单元需要请求另一单元发送数据时,可通过发送远程帧实现远程数据请求有关帧内容见小节6) 多主机(Multimaster)总线空闲时,总线上任何单元都可以开始向总线上传送报文,但只有最高优先权报文的单元可获得总线访问权。

7) 仲裁(Arbitration)总线空闲时,总线上任何单元都可以开始发送报文,若同时有两个或两个以上单元开始发送,总线访问冲突运用逐位仲裁规则,借助标识符ID解决仲裁期间,每一个发送器都对发送位电平与总线上检测到的电平进行比较,若相同则该单元继续发送当发送的是一隐性电平而监视到的是一显性电平(见总线数据表示),则该单元失去仲裁,退出发送状态第4页/共36页 (8) 错误标定和恢复时间(Error Signaling and Recovery Time) 任何检测到错误的单元会标志出已被损坏的报文此报文会失效并将自动重传如果不再出现错误,则从检测到错误到下一报文的传送开始为止,恢复时间最多为31位的时间9) 故障界定(Fault Confinement) CAN单元能够把永久故障和短暂的干扰区别开来,故障单元会被关闭10) 连接(Connection) CAN通信链路是一条可连接多单元的总线理论上,总线上单元数目是无限制的,实际上,单元数受限于延迟时间和总线的电气负载能力 (11) 单通道(Single Channel) CAN总线由单一通道组成,借助数据的同步实现信息传输CAN技术规范中没有规定该通道的实现方法即物理层,可以是单线(加地线)、两条差分线、光纤等,通常使用双绞线。

第5页/共36页 (12) 总线数据表示(Bus Values)V时间t隐性位显性位隐性位VdiffVdiffCAN-HCAN-L图17-1 总线位的数值表示 CAN总线上用显性(Dominant)和隐性(Recessive)表示0和1当在总线上出现同时发送显性位和隐性位时,总线上数值将出现显性总线上的信号使用差分电压传送,两条信号线被称为CAN_H 和CAN_L,如图17-1所示在隐性状态即逻辑1时,CAN-H和CAN-L被固定在平均电压电平左右)附近,Vdiff近似于0在显性状态即逻辑0时,CAN_H比CAN_L高,此时通常电压值为和在总线空闲或隐性位期间,发送隐性位第6页/共36页(13) 应答(Acknowledgment)所有接收器对接收到的报文进行一致性(Consistency)检查对于一致的报文,接收器给予应答;对于不一致的报文,接收器做出标志第7页/共36页 报文传输由以下4个不同的帧类型表示和控制: 数据帧:数据帧将数据从发送器传输到接收器 远程帧:总线单元发出远程帧,请求发送具有同一标识符的数据帧 错误帧:任何单元检测到总线错误就发出错误帧 过载帧:过载帧用于在先行和后续数据帧(或远程帧)之间提供一附加的延时。

数据帧和远程帧既可使用标准帧,也可使用扩展帧第8页/共36页 (1) 数据帧 数据帧由7个不同的位场组成:帧起始、仲裁场、控制场、数据场、CRC 场、应答场、帧结尾数据帧组成如图17-2所示帧间空间仲裁场控制场数据场CRC场帧结束数据帧帧起始应答场帧间空间或过载帧图17-2 数据帧组成第9页/共36页 仲裁场:在中存在两种不同的帧格式,其主要区别在于标识符的长度,具有11位标识符的帧称为标准帧,而包括29位标识符的帧称为扩展帧标准格式仲裁场控制场数据场帧起始DLC图17-3 数据帧标准格式中的仲裁场结构11位标识符RTRIDEr0 扩展格式中,仲裁场包括29位标识符、SRR、IDE、RTR位其标识符为ID28ID0第10页/共36页 控制场:控制场由6 个位组成标准格式的控制场格式和扩展格式不同标准格式中的帧包括数据长度代码、IDE位(为显性)、保留位r0扩展格式包括数据长度代码和两个必须为显性的保留位r1和r0但接收器接收由显性和隐性位的组合 数据长度代码指示了数据场中字节数量数据长度代码为4 个位,在控制场中被发送数据长度码中数据字节数据编码如表17-2所示其中,d表示显性位,r表示隐性位,数据字节的数目个数只能在0-8之间。

第11页/共36页数据场(标准格式以及扩展格式):数据场由数据帧里的发送数据组成它可以为08 个字节,每字节包含了8 个位,按字节大端顺序发送(MSB)CRC 场(标准格式以及扩展格式):CRC 场包括CRC 序列(CRC SEQUENCE),其后是CRC 界定符(CRC DELIMITER)应答场(标准格式以及扩展格式):应答场长度为2 个位,包含应答间隙(ACK SLOT)和应答界定符(ACK DELIMITER)在ACK 场(应答场)里,发送站发送两个“隐性”位当接收器正确地接收到有效的报文,接收器就会在应答间隙(ACK SLOT)期间(发送ACK 信号)向发送器发送一“显性”位以示应答帧结尾(标准格式以及扩展格式):每个数据帧和远程帧均由一标志序列定界这个标志序列由7 个“隐性”的位组成2) 远程帧作为数据接收的站,可以借助于发送远程帧启动其资源节点传送数据远程帧也有标准格式和扩展格式,而且都由6 个不同的位场组成:帧起始、仲裁场、控制场、CRC 场、应答场、帧结尾第12页/共36页 (3) 出错帧 错误帧由两个不同的场组成第一个场是由不同站提供的错误标志(ERROR FLAG)的叠加;第二个场是错误界定符。

出错帧的组成如图17-6所示错误标志有两种形式:主动错误标志和被动错误标志主动错误标志由6个连续的显性位组成,而被动错误标志由6个连续的隐性位组成,除非被其他节点的显性位重写第13页/共36页(4) 过载帧过载帧包括两个位场:过载标志和过载界定符过载帧的组成如图17-7所示有三种过载的情况会引发过载标志的传送:接收器的内部情况(此接收器对于下一数据帧或远程帧需要有一延时)在间歇的第一和第二字节检测到一个“显性”位如果CAN节点在错误界定符或过载界定符的第8位(最后一位)采样到一个显性位,节点会发送一个过载帧(不是错误帧)错误计数器不会增加第14页/共36页 根据过载情况1而引发的过载帧只允许起始于所期望的间隙的第一个位时间,而根据情况2和情况3引发的过载帧应起始于所检测到“显性”位之后的位通常为了延时下一个数据帧或远程帧,两种过载帧均可产生 过载标志由6个显性位组成由于过载标志的格式破坏了间隙域的固定格式,因此,所有其他的站都检测到过载条件,并与此同时发出过载标志如果在间隙的第3个位期间检测到显性位,则这个位将被解释为帧的起始 过载界定符包括8个隐性位,过载标志被传送后,站就一直监视总线,直到检测到一个从显性位到隐性位的跳变为止。

这时,总线上的每个站完成了各自过程标志的发送,并开始同时发送其余7个隐性位第15页/共36页17.1.3 位定时与同步 位定时与同步定义CAN总线的通信速率,下面就相关名词作简单介绍 标称位速率(Nominal Bit Rate):标称位速率为一理想的发送器在没有重新同步的情况下每秒发送的位数量 标称位时间(Nominal Bit Time):标称位时间=1/标称位速率可以把标称位时间分成几个不重叠的片段,它们分别是:同步段(SYNC_SEG)、传播段(PROG_SEG)、相位段1(PHASE_SEG1)、相位段2(PHASE_SEG2)标称位时间如图17-8所示 同步段相位段1相位段2图17-8 标称位时间组成示意图传播段采样点 标称位时间第16页/共36页17.1.3 位定时与同步 同步段(SYNC_SEG):位时间的同步段用于同步总线上不同的节点,这一段内要有一个跳变沿 传播段(PROG_SEG):传播段用于补偿网络内的物理延时时间它是总线上输入比较器延时和输出驱动器延时总和的2倍 相位缓冲段1(PHASE_SEG1)、相位缓冲段2(PHASE_SEG2):相位缓冲段用于补偿边沿阶段的误差。

这两个段可以通过重新同步加长或缩短 采样点(Sample Point):采样点是读总线电平并解释各位的值的一个时间点采样点位于相位缓冲段1之后 信息处理时间(Information Processing Time):信息处理时间是以一个采样点作为起始的时间段采样点用于计算后续位的位电平 时间份额(Time Quanta):时间份额是取自振荡器周期的固定时间单元时间份额的长度为:第17页/共36页17.1.3 位定时与同步 时间份额=m * 最小时间份额,其中,m为可编程的预比例因子,其数值范围为1-32间的整数,最小时间份额为CAN总线振荡器周期 一般,同步段为1个时间份额,传播段可设置成1、28个时间份额,相位段1可设置成1、28个时间份额,相位段2为相位缓冲段1和信息处理时间之间的最大值,信息处理时间少于或等于2个时间份额一个位时间总的时间份额值可以设置在825的范围 第18页/共36页17.2 MSCAN08模块 构建CAN接口一般有两种方法,一是采用独立的CAN控制器,二是采用带有CAN控制模块的MCU目前,一些公司生产的8位MCU内也集成了CAN控制器,使得CAN总线的应用领域不断扩大。

采用带CAN控制器的MCU进行嵌入式系统的设计开发,可以简化电路设计,使编程更加方便Freescale半导体公司的GZ(MC68HC908GZxx)系列和AZ(MC68HC908AZxx)系列MCU内部都集成了CAN协议控制器MSCAN08模块MSCAN08是M68HC08微控制器系列中专门为实现Motorola控制器网络扩展功能而设计的,该模块的设计符合协议标准下面对该模块进行简要介绍 第19页/共36页17.2.1 MSCAN08特性 MSCAN08是Freescale可升级控制器局域网(Motorola scalable controller area network,MSCAN)在Freescale 08系列微控制器中的具体实现该模块具有以下特性: 模块化的设计 符合协议标准,支持标准和扩展数据帧格式 高达1Mbps的可编程通信速率 一帧数据长度可为0到8字节 支持远程请求帧 4个先进先出结构的收发缓冲区,其中3个为具有局部优先级的发送缓冲区 灵活的标识符验收模式,可配置成1个32位过滤码、2个16位过滤码和4个8位过滤码 内置低通滤波的远程唤醒功能 可编程为方便调试的自环工作模式第20页/共36页17.2.2 外部引脚 MSCAN08有两根外部引脚,一根输入脚(CANRX)一根输出脚(CANTX),CANTX脚输出引脚代表了CAN上的逻辑电平:0为高电平(显性),1为低电平(隐性)。

一个由MSCAN08模块构建的典型的CAN系统如图17-9所示第21页/共36页17.2.3 报文存储结构 图17-10是MSCAN08的报文缓冲区组织模式从图中可以看出,MSCAN08有两个接收缓冲区和三个发送缓冲区第22页/共36页17.2.3 报文存储结构 (1) 接收结构 MSCAN08的两个接收缓冲区分别被称为后台(Background)接收缓冲区RxFG当CAN总线上有报文在传输时,总线上除发送节点以外的所有节点都将成为接收节点;MCU只能访问RxFG不能访问RxBG 当MSCAN08在发送时,它会将自己的报文接收到RxBG中MSCAN08在丢失仲裁的情况下才接收自己的报文当前后台报文接收缓冲区已经存放了接收到的报文而总线上又有新的报文到达,这时候会产生溢出,后到的报文将被丢失;同时,如果中断允许,将产生一个指示溢出的中断 (2) 发送结构 为了能预先装载多个报文以获得实时传输性能,MSCAN08提供了三个传输缓冲区当要发送数据时,CPU08先查找是否有空闲的发送缓冲区;若有,则将数据按CAN报文格式进行封装并存入该空闲缓冲区,并通过清相应缓冲区的空标志来表明已经准备就绪MSCAN08将报文成功发送后,将相应发送缓冲区的空标志置位,并产生一个发送中断。

当多个发送缓冲区均处于就绪状态时,MSCAN08采用了局部优先级策略来对三个缓冲区进行优先级设置每个发送缓冲都有一个8位的局部优先级(PRIO)应用程序可设置该优先级,数值越小,相应发送缓冲区优先级越高第23页/共36页17.2.4 标识符校验滤波 MSCAN08模块内有4个标识符校验寄存器(CIDAR0CIDAR3)和4个标识符屏蔽寄存器(CIDMR0CIDMR3)当总线上有报文到达时,MSCAN08会将该报文的标识符与标识符校验寄存器中的内容进行比较,标识符屏蔽寄存器则是用于指定比较结果是否有影响,为1时,说明相应位的比较结果不影响报文的接收验收过程如图17-11所示 在接收报文时,需要对哪些位进行验收比较,与当前的滤波器方式有关第24页/共36页17.2.5 中断 (1) 中断源 MSCAN08有11种可屏蔽中断源,并提供了4个中断向量去访问它们 发送中断:当至少有一个发送缓冲区变为空时,触发该中断此时相应发送缓冲区的空标志位被置位 接收中断:当前台接收缓冲区成功接收到一个报文时触发该中断 唤醒中断:当MSCAN08处于内部睡眠模式或者低功耗模式时,CAN总线上产生活动时角触发该中断。

错误中断:一个溢出、错误或者警告产生了接收标志寄存器(CRFLG)指示下列哪种情况发生而导致错误中断: (2) 中断响应 中断与一个或多个MSCAN08接收标志寄存器(CRFLG)或者传输标志寄存器(CTFLG)是直接关联的一有相关标志被置位,就进入中断等待在中断处理中,必须将上面提到的寄存器中的标志位重置以和中断进行握手标志位通过向相应的位置写入1进行清空如果各自的情况仍然继续,则标志位不能被清空 注意:位设置指令(BSET)不可以用于清空中断标志 第25页/共36页17.2.6 协议保护 MSCAN08防止用户通过程序破坏CAN协议这种保护逻辑有以下特点: 接收和传输错误计数器不能被写入或者修改 当MSCAN08处于连接状态时,不能修改MSCAN08的配置MSCAN08模式控制寄存器的SFTRES位将锁定以下寄存器: MSCAN08 模式控制寄存器(CMCR1) MSCAN08 总线时钟寄存器0和1(CBTR0和CBTR1) MSCAN08 标识符校验控制寄存器(CIDAR03) MSCAN08 标识符校验寄存器(CIDMR03) 当MSCAN08 处于任何低功耗模式的时候,CANTX脚被强制成低电平。

第26页/共36页17.3 MSCAN08通信接口硬件电路 在了解MSCAN08模块有关知识之后,我们来看一下用MC68HC908GZ60微控制器构建CAN总线通信节点的硬件电路,其原理图见17-15 在该电路中,CAN总线驱动器采用PCA82C250GZ60负责MSCAN08的初始化,并通过读取MSCAN08模块的报文缓冲区收发数据 为增加节点的抗干扰能力,GZ60的CANTx和CANRx不直接与PCA82C250相连,而是通过高速光耦6N137后再与之相连光耦部分电路所采用的两个电源VCC1和VCC2须完全隔离,否则,光耦达不到完全隔离的效果可以采用带多个5V输出的开关电源模块实现 .第27页/共36页17.4 MSCAN08模块的编程结构 MSCAN08在CPU08里占用了128字节的存储空间,如图17-16所示从程序员角度看,涉及CAN通信的有报文收发缓冲区结构和若干控制寄存器只要理解和掌握CAN的报文缓冲区结构和控制寄存器的用法,就可以进行MSCAN08编程 图17-16 MSCAN08 存储映射图 图17-17 报文缓冲区组织图 第28页/共36页17.4 MSCAN08模块的编程结构17.4.1 报文缓冲结构(Message Buffer Outline) MC68HC908GZ60微控制器中MSCAN08的3个发送报文缓冲区和1个接收报文缓冲区结构大致相同,每个缓冲区均分配16字节存储空间,如图17-17所示。

1)报文缓冲结构(Message Buffer Outline)(2) 标识寄存器(Identifier Registers,IR)(3) 数据长度寄存器(Data Length Register,DLR)(4) 数据段寄存器n(Data Segment Registers n,DSRn) (5) 发送缓冲区优先级寄存器(Transmit Buffer Priority Registers,TBPR)第29页/共36页17.4 MSCAN08模块的编程结构17.4.2 控制寄存器 第30页/共36页17.5 CAN通信子函数与测试实例17.5.1 CAN通信子函数 (1)MSCAN08初始化第31页/共36页17.5 CAN通信子函数与测试实例17.5.1 CAN通信子函数 (2)接收和发送一帧数据第32页/共36页17.5 CAN通信子函数与测试实例17.5.2 CAN总线通信回环工作方式测试工程文件(1)回环工作方式测试工程文件列表第33页/共36页17.5 CAN通信子函数与测试实例17.5.2 CAN总线通信回环工作方式测试工程文件(2)回环工作方式C语言主程序第34页/共36页17.5 CAN通信子函数与测试实例17.5.3 CAN总线接口正常工作方式测试工程文件 (1)查询方式服务器节点C语言主程序第35页/共36页感谢您的观看!第36页/共36页。

下载提示
相关文档
正为您匹配相似的精品文档