《(精品)CAN总线的原理及使用教程.ppt》由会员分享,可在线阅读,更多相关《(精品)CAN总线的原理及使用教程.ppt(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、CAN总线及应用MSCAN08/MSCAN122一、目标定位一、目标定位目标:以MSCAN08和MSCAN12为示例,讲述CAN现场总线,初步掌握CAN总线技术的应用。基本要求:了解CAN通信协议基本概念,掌握 CAN通 信 接 口 硬 件 设 计 和 MSCAN08和MSCAN12编程方法MSCAN08/MSCAN123二、主要内容二、主要内容CANCAN技术规范技术规范MSCAN08MSCAN08模块模块MSCAN08MSCAN08通信接口硬件电路通信接口硬件电路MSCAN08MSCAN08模块的编程结构模块的编程结构MSCAN08MSCAN08通信子函数与测试实例通信子函数与测试实例MS
2、CAN12MSCAN12模块模块MSCAN12MSCAN12模块的编程结构模块的编程结构MSCAN12MSCAN12的自环测试实例的自环测试实例MSCAN08/MSCAN124uCANCAN通信协议主要描述设备之间的信息传递方式。通信协议主要描述设备之间的信息传递方式。uCANCAN各各层层的的定定义义与与开开放放系系统统互互连连模模型型OSIOSI一一致致。CANCAN技技术术规规范范定定义义了了模模型型的的最最下下面面两两层层:数数据据链链路路层层和和物物理理层层,是设计是设计CANCAN应用系统的基本依据。应用系统的基本依据。u19911991年年9 9月月BoschBosch公公司司发
3、发布布了了CANCAN技技术术规规范范Version2.0Version2.0。该该 技技 术术 规规 范范 包包 括括 A A和和 B B两两 部部 分分,2.0A2.0A给给 出出 了了 在在Version1.2Version1.2中中定定义义的的CANCAN报报文文格格式式,而而2.0B2.0B给给出出了了标标准准的和扩展的两种报文格式。的和扩展的两种报文格式。u规规范范主主要要是是针针对对CANCAN控控制制器器的的设设计计者者,对对大大多多数数应应用用系系统统设设计计人人员员来来说说,只只需需对对Version2.0Version2.0版版技技术术规规范范的的基基本本结结构构、概概念
4、念、规规则则作作一一般般了了解解,知知道道一一些些基基本本参参数数和可访问的硬件即可。和可访问的硬件即可。CAN技术规范技术规范MSCAN08/MSCAN125CAN的基本概念的基本概念报文报文报文报文信息信息信息信息路由路由路由路由位速率位速率位速率位速率优先权优先权优先权优先权远程数据远程数据远程数据远程数据请求请求请求请求多主机多主机多主机多主机仲裁仲裁仲裁仲裁错误标志和错误标志和错误标志和错误标志和恢复时间恢复时间恢复时间恢复时间故障故障故障故障界定界定界定界定连接连接连接连接单通道单通道单通道单通道总线数据总线数据总线数据总线数据表示表示表示表示应答应答应答应答MSCAN08/MSC
5、AN126报文和信息路由报文和信息路由报文报文(Messages)(Messages)在总线上传输的信息。在总线上传输的信息。信息路由信息路由(Information Routing)(Information Routing)CANCAN不不对对通通信信单单元元分分配配地地址址,报报文文的的寻寻址址内内容容由由报报文文的的标标识识符符指指定定。所所有有CANCAN节节点通过点通过报文滤波报文滤波来判断是否接收报文。来判断是否接收报文。MSCAN08/MSCAN127位速率位速率位速率位速率(Bit Rate)(Bit Rate)指指总总线线的的传传输输速速率率,下下表表列列出出了了距距离离与与
6、位位速速率率的的相相关关数数据据。这这里里的的最最大大距距离离是是指指不接中继器的两个单元之间的距离。不接中继器的两个单元之间的距离。MSCAN08/MSCAN128位定位与同步位定位与同步u标标称称位位速速率率(Nominal Nominal Bit Bit RateRate):理理想想的的发发送送器在没有重新同步的情况下每秒发送的位数量。器在没有重新同步的情况下每秒发送的位数量。u标标称称位位时时间间(Nominal Nominal Bit Bit TimeTime):是是标标称称位位速速率率的的倒倒数数。分分成成几几个个不不重重叠叠的的片片段段:同同步步段段(SYNC_SEG(SYNC_
7、SEG)、传传 播播 段段(PROG_SEG)(PROG_SEG)、相相 位位 段段1 1(PHASE_SEG1)(PHASE_SEG1)、相位段相位段2 2(PHASE_SEG2)(PHASE_SEG2)。MSCAN08/MSCAN129优先权优先权优先权优先权(Priorities)(Priorities)在在CANCAN总总线线上上发发送送的的每每一一个个报报文文都都具具有有唯唯一一的的一一个个1111位位或或2929位位的的标标识识符符,标标识识符符越越小小,则则报报文文优优先先权权越越高高,因因此此一一个个为全为全0 0标识符的报文具有最高级优先权。标识符的报文具有最高级优先权。MS
8、CAN08/MSCAN1210单通道单通道单通道单通道(Single Channel)(Single Channel)CANCAN总总线线由由单单一一通通道道组组成成,借借助助数数据据的的同同步步实实现现信信息息传传输输,可可以以是是单单线线(加加地地线线)、两两条条差差分分线线、光光纤纤等等,通通常常使使用用双双绞绞线。线。MSCAN08/MSCAN1211总线表示总线表示总线数据表示总线数据表示(Bus Values)(Bus Values)CANCAN总总 线线 上上 用用 显显 性性(Dominant)(Dominant)和和 隐隐 性性(Recessive)(Recessive)表表
9、示示0 0和和1 1。当当在在总总线线上上出出现现同同时时发发送送显显性性位位和和隐隐性性位位时时,总总线线上上数数值值将将出出现现显显性性。总总线线上上的的信信号号使使用用差差分分电电压压传传送送,两两条条信信号号线线被被称为称为CAN_H CAN_H 和和CAN_LCAN_L。MSCAN08/MSCAN1212标识符检验滤波标识符检验滤波u当当总总线线上上有有报报文文到到达达时时,MSCAN08MSCAN08会会将将该该报报文文的的标标识识符符与与本本地地的的标标识识符符校校验验寄寄存存器器中中进进行行比比较较,本本地地标标识识符符屏屏蔽蔽寄寄存存器器则则是是用用于于指指定定比比较较结结果
10、果是是否否有有影影响响,1 1表示相应位的比较结果表示相应位的比较结果不影响不影响报文的接收。报文的接收。MSCAN08/MSCAN1213报文传输类型报文传输类型报文传输由报文传输由4 4种不同的帧类型表示和控制:种不同的帧类型表示和控制:u数据帧:数据帧:数据帧将数据从发送器传输到接收器。数据帧将数据从发送器传输到接收器。u远远程程帧帧:总总线线单单元元发发出出远远程程帧帧,请请求求发发送送具具有有同一标识符的数据帧。同一标识符的数据帧。u错错误误帧帧:任任何何单单元元检检测测到到总总线线错错误误就就发发出出错错误误帧。帧。u过过载载帧帧:过过载载帧帧用用于于在在先先行行和和后后续续数数据
11、据帧帧(或或远程帧)之间提供一附加的延时。远程帧)之间提供一附加的延时。MSCAN08/MSCAN1214数据帧结构数据帧结构数据帧组成数据帧组成MSCAN08/MSCAN1215远程帧结构远程帧结构远程帧的组成远程帧的组成帧间空间帧间空间仲裁场仲裁场控制场控制场CRC场场帧结束帧结束远程帧远程帧帧起始帧起始应答场应答场帧间空间帧间空间或过载帧或过载帧MSCAN08/MSCAN1216错误帧结构错误帧结构错误帧的组成错误帧的组成MSCAN08/MSCAN1217过载帧结构过载帧结构过载帧的组成过载帧的组成MSCAN08/MSCAN1218MSCAN08特性特性MSCAN08-Freescale
12、可可升升级级控控制制器器局局域域网网(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位过滤码,或者关闭滤波器位过滤码,或者关
13、闭滤波器u内置低通滤波的远程唤醒功能内置低通滤波的远程唤醒功能u自环自环工作模式工作模式MSCAN08/MSCAN1219MSCAN08外部引脚外部引脚uMSCAN08MSCAN08有有2 2根外部引脚:根外部引脚:CANRXCANRX(输入输入)和和CANTXCANTX(输出输出)uCANTXCANTX代代表表CANCAN上上的的逻逻辑辑电电平平:0 0为为高高电电平平(显显性性),1 1为为低低电电平平(隐隐性性)。MSCAN08MSCAN08模模块块构构建建的的典典型型的的CANCAN系系统统如如图所示:图所示:MSCAN08/MSCAN1220MSCAN08通信接口电路通信接口电路MS
14、CAN08/MSCAN1221MSCAN08的编程结构的编程结构内存映射内存映射MSCAN08/MSCAN1222MSCAN08的编程结构的编程结构报文收发缓冲区报文收发缓冲区MSCAN08/MSCAN1223MSCAN08的编程结构的编程结构寄存器寄存器MSCAN08/MSCAN1224MSCAN08通信实现通信实现u初始化初始化MSCAN08/MSCAN1225MSCAN08通信实现通信实现u发送和接收函数发送和接收函数MSCAN08/MSCAN1226MSCAN08自环通信测试实例自环通信测试实例(1)(1)回环工作方式测试工程文件列表回环工作方式测试工程文件列表MSCAN08/MSCA
15、N1227MSCAN08自环通信测试实例自环通信测试实例(2)(2)回环工作方式回环工作方式C C语言主程序语言主程序MSCAN08/MSCAN1228MSCAN08正常通信测试实例正常通信测试实例(1)(1)查询方式服务器节点查询方式服务器节点C C语言主程序语言主程序MSCAN08/MSCAN1229MSCAN08正常通信测试实例正常通信测试实例(2)(2)查询方式客户节点查询方式客户节点C C语言主程序语言主程序MSCAN08/MSCAN1230MSCAN12模块简介模块简介MSCAN12特性(与特性(与MSCAN08几乎相同):几乎相同):符合符合CAN2.0A/B协议标准协议标准支持
16、支持标准标准和和扩展扩展数据帧格式数据帧格式数据长度为数据长度为08字节字节位速率可编程,最大位速率可编程,最大1Mbps支持支持远程帧远程帧拥拥有有5个个FIFO机机制制的的接接收收缓缓冲冲区区,3个个具具有有局局部优先级的部优先级的发送发送缓冲区缓冲区具有灵活的具有灵活的标识符验收标识符验收模式模式MSCAN08/MSCAN1231MSCAN12模块框图模块框图MSCAN08/MSCAN1232MSCAN12外部引脚外部引脚MSCAN08/MSCAN1233MSCAN12报文缓冲区结构报文缓冲区结构报报文文缓缓冲冲区区组组织织图图MSCAN08/MSCAN1234MSCAN12编程结构编程
17、结构内存映射内存映射MSCAN08/MSCAN1235MSCAN12编程结构编程结构寄存器寄存器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)
18、9)MSCAN发送器消息中止控制寄存器发送器消息中止控制寄存器(CANTARQ)10)MSCAN发送器消息中止控制寄存器发送器消息中止控制寄存器(CANTAAK)11)MSCAN发送缓冲区选择寄存器发送缓冲区选择寄存器(CANTBSEL)12)MSCAN标识符验收控制寄存器标识符验收控制寄存器(CANTIDAC)13)MSCAN接收错误计数寄存器接收错误计数寄存器(CANRXERR)14)MSCAN发送错误计数寄存器发送错误计数寄存器(CANTXERR)15)MSCAN标识符验收码寄存器标识符验收码寄存器(CANIDAR07)16)MSCAN标识符屏蔽寄存器标识符屏蔽寄存器(CANIDMR07
19、)MSCAN08/MSCAN1236MSCAN12模块的自环通信实例模块的自环通信实例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
20、)(3)查找空闲发送缓冲区:)查找空闲发送缓冲区:INT8U GetSNDBUF(void)(4)CAN接接收收1帧帧数数据据:INT8U CANRCV1FRM(INT8U*CANRCVBUF)MSCAN08/MSCAN1237MSCAN12模块的自环通信实例模块的自环通信实例1.自环通信方式测试工程主函数文件自环通信方式测试工程主函数文件main.c第第1步:定义常量,初始化变量步:定义常量,初始化变量第第2步:禁止总中断步:禁止总中断第第3步:芯片初始化步:芯片初始化第第4步:模块初始化步:模块初始化(串口初始化、串口初始化、MSCAN12初始初始化)化)第第5步:开放步:开放SCI0接收
21、中断接收中断 第第6步:开放总中断步:开放总中断MSCAN08/MSCAN1238MSCAN12模块的自环通信实例模块的自环通信实例1.自环通信方式测试工程主函数文件自环通信方式测试工程主函数文件main.c第第7步:等待时间增加步:等待时间增加1。若等待时间到转第。若等待时间到转第8步,步,否则转第否则转第7步。步。第第8步:发送步:发送Hello!,若发送成功转第若发送成功转第9步,否则步,否则转第转第10步。步。第第9步:步:CAN等待接收数据,若接收到则通过等待接收数据,若接收到则通过SCI向向PC发送数据,否则发送发送数据,否则发送“ReceiveError!”。转第。转第11步。步。第第10步:通过步:通过SCI向向PC发送发送“SendError!”第第11步:等待时间清零,转第步:等待时间清零,转第7步。步。MSCAN08/MSCAN1239MSCAN12模块的自环通信实例模块的自环通信实例2.自环通信方式测试工程自环通信方式测试工程MT环境的工程结构环境的工程结构MSCAN08/MSCAN1240MSCAN12模块的自环通信实例模块的自环通信实例3.自环通信方式测试工程自环通信方式测试工程CW环境的工程结构环境的工程结构
限制150内