CAN总线的原理及使用教程.pptx
1一、目标定位一、目标定位目标:以MSCAN08和MSCAN12为示例,讲述CAN现场总线,初步掌握CAN总线技术的应用。基本要求:了解CAN通信协议基本概念,掌握CAN通信接口硬件设计和MSCAN08和MSCAN12编程方法第1页/共40页2二、主要内容二、主要内容CANCAN技术规范技术规范MSCAN08MSCAN08模块模块MSCAN08MSCAN08通信接口硬件电路通信接口硬件电路MSCAN08MSCAN08模块的编程结构模块的编程结构MSCAN08MSCAN08通信子函数与测试实例通信子函数与测试实例MSCAN12MSCAN12模块模块MSCAN12MSCAN12模块的编程结构模块的编程结构MSCAN12MSCAN12的自环测试实例的自环测试实例第2页/共40页3uCANCAN通信协议主要描述设备之间的信息传递方式。通信协议主要描述设备之间的信息传递方式。uCANCAN各各层层的的定定义义与与开开放放系系统统互互连连模模型型OSIOSI一一致致。CANCAN技技术术规规范范定定义义了了模模型型的的最最下下面面两两层层:数数据据链链路路层层和和物理层,是设计物理层,是设计CANCAN应用系统的基本依据。应用系统的基本依据。u19911991年年 9 9月月 BoschBosch公公 司司 发发 布布 了了 CANCAN技技 术术 规规 范范Version2.0Version2.0。该该技技术术规规范范包包括括A A和和B B两两部部分分,2.0A2.0A给给出出了了在在Version1.2Version1.2中中定定义义的的CANCAN报报文文格格式式,而而2.0B2.0B给出了标准的和扩展的两种报文格式。给出了标准的和扩展的两种报文格式。u规规范范主主要要是是针针对对CANCAN控控制制器器的的设设计计者者,对对大大多多数数应应用用系系统统设设计计人人员员来来说说,只只需需对对Version2.0Version2.0版版技技术术规规范范的的基基本本结结构构、概概念念、规规则则作作一一般般了了解解,知知道道一一些些基本参数和可访问的硬件即可。基本参数和可访问的硬件即可。CAN技术规范技术规范第3页/共40页4CAN的基本概念的基本概念报文报文报文报文信息信息信息信息路由路由路由路由位速率位速率位速率位速率优先权优先权优先权优先权远程数据远程数据远程数据远程数据请求请求请求请求多主机多主机多主机多主机仲裁仲裁仲裁仲裁错误标志和错误标志和错误标志和错误标志和恢复时间恢复时间恢复时间恢复时间故障故障故障故障界定界定界定界定连接连接连接连接单通道单通道单通道单通道总线数据总线数据总线数据总线数据表示表示表示表示应答应答应答应答第4页/共40页5报文和信息路由报文和信息路由报文报文(Messages)(Messages)在总线上传输的信息。在总线上传输的信息。信息路由信息路由(Information Routing)(Information Routing)CANCAN不不对对通通信信单单元元分分配配地地址址,报报文文的的寻寻址址内内容容由由报报文文的的标标识识符符指指定定。所所有有CANCAN节点通过节点通过报文滤波报文滤波来判断是否接收报文。来判断是否接收报文。第5页/共40页6位速率位速率位速率位速率(Bit Rate)(Bit Rate)指指总总线线的的传传输输速速率率,下下表表列列出出了了距距离离与与位位速速率率的的相相关关数数据据。这这里里的的最最大大距距离是指不接中继器的两个单元之间的距离。离是指不接中继器的两个单元之间的距离。第6页/共40页7位定位与同步位定位与同步u标标称称位位速速率率(Nominal Nominal Bit Bit RateRate):理理想想的的发发送送器器在在没没有有重重新新同同步步的的情情况况下下每每秒秒发发送送的的位位数量。数量。u标标称称位位时时间间(Nominal Nominal Bit Bit TimeTime):是是标标称称位位速速率率的的倒倒数数。分分成成几几个个不不重重叠叠的的片片段段:同同步步段段(SYNC_SEG(SYNC_SEG)、传传播播段段(PROG_SEG)(PROG_SEG)、相相位位段段1 1(PHASE_SEG1)(PHASE_SEG1)、相位段相位段2 2(PHASE_SEG2)(PHASE_SEG2)。第7页/共40页8优先权优先权优先权优先权(Priorities)(Priorities)在在CANCAN总总线线上上发发送送的的每每一一个个报报文文都都具具有有唯唯一一的的一一个个1111位位或或2929位位的的标标识识符符,标标识识符符越越小小,则则报报文文优优先先权权越越高高,因因此此一一个个为为全全0 0标标识识符符的的报报文文具具有有最最高高级级优先权。优先权。第8页/共40页9单通道单通道单通道单通道(Single Channel)(Single Channel)CANCAN总总线线由由单单一一通通道道组组成成,借借助助数数据据的的同同步步实实现现信信息息传传输输,可可以以是是单单线线(加地线加地线)、两条差分线、光纤等,通常使用双绞线。、两条差分线、光纤等,通常使用双绞线。第9页/共40页10总线表示总线表示总线数据表示总线数据表示(Bus Values)(Bus Values)CANCAN总总 线线 上上 用用 显显 性性(Dominant)(Dominant)和和 隐隐 性性(Recessive)(Recessive)表表示示0 0和和1 1。当当在在总总线线上上出出现现同同时时发发送送显显性性位位和和隐隐性性位位时时,总总线线上上数数值值将将出出现现显显性性。总总线线上上的的信信号号使使用用差差分分电电压压传传送送,两两条条信信号线被称为号线被称为CAN_H CAN_H 和和CAN_LCAN_L。第10页/共40页11标识符检验滤波标识符检验滤波u当总线上有报文到达时,当总线上有报文到达时,MSCAN08MSCAN08会将该报文的会将该报文的标识标识符符与与本地的标识符校验寄存器中本地的标识符校验寄存器中进行比较进行比较,本地标,本地标识符屏蔽寄存器识符屏蔽寄存器则是用于指定比较结果是否有影响,则是用于指定比较结果是否有影响,1 1表示相应位的比较结果表示相应位的比较结果不影响不影响报文的接收。报文的接收。第11页/共40页12报文传输类型报文传输类型报文传输由报文传输由4 4种不同的帧类型表示和控制:种不同的帧类型表示和控制:u数数据据帧帧:数数据据帧帧将将数数据据从从发发送送器器传传输输到到接接收收器。器。u远远程程帧帧:总总线线单单元元发发出出远远程程帧帧,请请求求发发送送具具有同一标识符的数据帧。有同一标识符的数据帧。u错错误误帧帧:任任何何单单元元检检测测到到总总线线错错误误就就发发出出错错误帧。误帧。u过过载载帧帧:过过载载帧帧用用于于在在先先行行和和后后续续数数据据帧帧(或远程帧)之间提供一附加的延时。(或远程帧)之间提供一附加的延时。第12页/共40页13数据帧结构数据帧结构数据帧组成数据帧组成第13页/共40页14远程帧结构远程帧结构远程帧的组成远程帧的组成帧间空间帧间空间仲裁场仲裁场控制场控制场CRC场场帧结束帧结束远程帧远程帧帧起始帧起始应答场应答场帧间空间帧间空间或过载帧或过载帧第14页/共40页15错误帧结构错误帧结构错误帧的组成错误帧的组成第15页/共40页16过载帧结构过载帧结构过载帧的组成过载帧的组成第16页/共40页17MSCAN08特性特性MSCAN08-Freescale可可 升升 级级 控控 制制 器器 局局 域域 网网(Motorola scalable controller area network,MSCAN):):u符符合合CAN2.0A/B协协议议标标准准,支支持持标标准准和和扩扩展展数数据帧据帧u位速率可编程,最大位速率可编程,最大1Mbpsu数据帧长度为数据帧长度为08字节字节u支持远程请求帧支持远程请求帧u1个个 FIFO接接 收收 缓缓 冲冲 区区,3个个 具具 有有 局局 部部 优优 先先 级级 的的FIFO发送发送缓冲区缓冲区u标标识识符符验验收收模模式式可可配配置置成成1个个32位位过过滤滤码码、2个个16位过滤码、位过滤码、4个个8位过滤码,或者关闭滤波器位过滤码,或者关闭滤波器u内置低通滤波的远程唤醒功能内置低通滤波的远程唤醒功能u自环自环工作模式工作模式第17页/共40页18MSCAN08外部引脚外部引脚uMSCAN08MSCAN08有有2 2根根外外部部引引脚脚:CANRXCANRX(输输入入)和和CANTXCANTX(输出输出)uCANTXCANTX代代表表CANCAN上上的的逻逻辑辑电电平平:0 0为为高高电电平平(显显性性),1 1为为低低电电平平(隐隐性性)。MSCAN08MSCAN08模模块块构构建建的的典典型型的的CANCAN系统如图所示:系统如图所示:第18页/共40页19MSCAN08通信接口电路通信接口电路第19页/共40页20MSCAN08的编程结构的编程结构内存映射内存映射第20页/共40页21MSCAN08的编程结构的编程结构报文收发缓报文收发缓冲区冲区第21页/共40页22MSCAN08的编程结构的编程结构寄存器寄存器第22页/共40页23MSCAN08通信实现通信实现u初始化初始化第23页/共40页24MSCAN08通信实现通信实现u发送和接收函数发送和接收函数第24页/共40页25MSCAN08自环通信测试实例自环通信测试实例(1)(1)回环工作方式测试工程文件列表回环工作方式测试工程文件列表第25页/共40页26MSCAN08自环通信测试实例自环通信测试实例(2)(2)回环工作方式回环工作方式C C语言主程序语言主程序第26页/共40页27MSCAN08正常通信测试实例正常通信测试实例(1)(1)查询方式服务器节点查询方式服务器节点C C语言主程序语言主程序第27页/共40页28MSCAN08正常通信测试实例正常通信测试实例(2)(2)查询方式客户节点查询方式客户节点C C语言主程序语言主程序第28页/共40页29MSCAN12模块简介模块简介MSCAN12特性(与特性(与MSCAN08几乎相同):几乎相同):符合符合CAN2.0A/B协议标准协议标准支持支持标准标准和和扩展扩展数据帧格式数据帧格式数据长度为数据长度为08字节字节位速率可编程,最大位速率可编程,最大1Mbps支持支持远程帧远程帧拥有拥有5个个FIFO机制的机制的接收接收缓冲区,缓冲区,3个个具有局部优先级的具有局部优先级的发送发送缓冲区缓冲区具有灵活的具有灵活的标识符验收标识符验收模式模式第29页/共40页30MSCAN12模块框图模块框图第30页/共40页31MSCAN12外部引脚外部引脚第31页/共40页32MSCAN12报文缓冲区结构报文缓冲区结构报报文文缓缓冲冲区区组组织织图图第32页/共40页33MSCAN12编程结构编程结构内存映射内存映射第33页/共40页34MSCAN12编程结构编程结构寄存器寄存器1)MSCAN控制寄存器控制寄存器0(CANCTL0)2)MSCAN控制寄存器控制寄存器1(CANCTL1)3)MSCAN总线时钟寄存器总线时钟寄存器0(CANBTR0)4)MSCAN总线时钟寄存器总线时钟寄存器1(CANBTR1)5)MSCAN接收器标志寄存器接收器标志寄存器(CANRFLG)6)MSCAN接收器中断使能寄存器接收器中断使能寄存器(CANRIER)7)MSCAN发送器标志寄存器发送器标志寄存器(CANTFLG)8)MSCAN发送器中断使能寄存器发送器中断使能寄存器(CANTIER)9)MSCAN发送器消息中止控制寄存器发送器消息中止控制寄存器(CANTARQ)10)MSCAN发送器消息中止控制寄存器发送器消息中止控制寄存器(CANTAAK)11)MSCAN发送缓冲区选择寄存器发送缓冲区选择寄存器(CANTBSEL)12)MSCAN标识符验收控制寄存器标识符验收控制寄存器(CANTIDAC)13)MSCAN接收错误计数寄存器接收错误计数寄存器(CANRXERR)14)MSCAN发送错误计数寄存器发送错误计数寄存器(CANTXERR)15)MSCAN标识符验收码寄存器标识符验收码寄存器(CANIDAR07)16)MSCAN标识符屏蔽寄存器标识符屏蔽寄存器(CANIDMR07)第34页/共40页35MSCAN12模块的自环通信实例模块的自环通信实例MSCAN12通信头文件(通信头文件(MSCAN12.h)(1)CAN通信寄存器及标志位定义通信寄存器及标志位定义(2)CAN通信用到的设置量定义通信用到的设置量定义(3)CAN通信相关函数声明通信相关函数声明(4)CAN通信初始化通信初始化MSCAN12通信函数文件(通信函数文件(MSCAN12.c)(1)CAN通信初始化:通信初始化:void CANInit(void)(2)CAN发送发送1帧数据:帧数据:INT8U CANSND1DFRM(INT16U ID,INT8U*DataBUF,INT8U LEN)(3)查找空闲发送缓冲区:)查找空闲发送缓冲区:INT8U GetSNDBUF(void)(4)CAN接收接收1帧数据:帧数据:INT8U CANRCV1FRM(INT8U*CANRCVBUF)第35页/共40页36MSCAN12模块的自环通信实例模块的自环通信实例1.自环通信方式测试工程主函数文件自环通信方式测试工程主函数文件main.c第第1步:定义常量,初始化变量步:定义常量,初始化变量第第2步:禁止总中断步:禁止总中断第第3步:芯片初始化步:芯片初始化第第4步:模块初始化步:模块初始化(串口初始化、串口初始化、MSCAN12初始化)初始化)第第5步:开放步:开放SCI0接收中断接收中断 第第6步:开放总中断步:开放总中断第36页/共40页37MSCAN12模块的自环通信实例模块的自环通信实例1.自环通信方式测试工程主函数文件自环通信方式测试工程主函数文件main.c第第7步:等待时间增加步:等待时间增加1。若等待时间到转第。若等待时间到转第8步,步,否则转第否则转第7步。步。第第8步:发送步:发送Hello!,若发送成功转第若发送成功转第9步,步,否则转第否则转第10步。步。第第9步:步:CAN等待接收数据,若接收到则通过等待接收数据,若接收到则通过SCI向向PC发送数据,否则发送发送数据,否则发送“ReceiveError!”。转第。转第11步。步。第第10步:通过步:通过SCI向向PC发送发送“SendError!”第第11步:等待时间清零,转第步:等待时间清零,转第7步。步。第37页/共40页38MSCAN12模块的自环通信实例模块的自环通信实例2.自环通信方式测试工程自环通信方式测试工程MT环境的工程结构环境的工程结构第38页/共40页39MSCAN12模块的自环通信实例模块的自环通信实例3.自环通信方式测试工程自环通信方式测试工程CW环境的工程结构环境的工程结构第39页/共40页MSCAN08/MSCAN1240感谢您的观赏!第40页/共40页