1、CAN总线及应用MSCAN08/MSCAN122一、目标定位一、目标定位目标:以MSCAN08和MSCAN12为示例,讲述CAN现场总线,初步掌握CAN总线技术的应用。基本要求:了解CAN通信协议基本概念,掌握CAN通信接口硬件设计和MSCAN08和MSCAN12编程方法MSCAN08/MSCAN123二、主要内容二、主要内容CAN技技术规范范MSCAN08模模块MSCAN08通信接口硬件通信接口硬件电路路MSCAN08模模块的的编程程结构构MSCAN08通信子函数与通信子函数与测试实例例MSCAN12模模块MSCAN12模模块的的编程程结构构MSCAN12的自的自环测试实例例MSCAN08/
2、MSCAN124uCAN通信通信协议主要描述主要描述设备之之间的信息的信息传递方式。方式。uCAN各各层的的定定义与与开开放放系系统互互连模模型型OSI一一致致。CAN技技术规范范定定义了了模模型型的最下面两的最下面两层:数据:数据链路路层和物理和物理层,是,是设计CAN应用系用系统的基本依据。的基本依据。u1991年年9月月Bosch公公司司发布布了了CAN技技术规范范Version2.0。该技技术规范范包包括括A和和B两两部部分分,2.0A给出出了了在在Version1.2中中定定义的的CAN报文文格格式式,而而2.0B给出了出了标准的和准的和扩展的两种展的两种报文格式。文格式。u规范范主
3、主要要是是针对CAN控控制制器器的的设计者者,对大大多多数数应用用系系统设计人人员来来说,只只需需对Version2.0版版技技术规范范的的基基本本结构构、概概念念、规则作作一一般般了了解解,知知道道一些基本参数和可一些基本参数和可访问的硬件即可。的硬件即可。CANCAN技术规范技术规范MSCAN08/MSCAN125CANCAN的基本概念的基本概念报报文文文文信息信息信息信息路由路由路由路由位速率位速率位速率位速率优优先先先先权权远远程数据程数据程数据程数据请请求求求求多主机多主机多主机多主机仲裁仲裁仲裁仲裁错误标错误标志和志和志和志和恢复恢复恢复恢复时间时间故障故障故障故障界定界定界定界定
4、连连接接接接单单通道通道通道通道总线总线数据数据数据数据表示表示表示表示应应答答答答MSCAN08/MSCAN126报文和信息路由报文和信息路由报文文(Messages)在在总线上上传输的信息。的信息。信息路由信息路由(Information Routing)CAN不不对通通信信单元元分分配配地地址址,报文文的的寻址址内内容容由由报文文的的标识符符指定。所有指定。所有CAN节点通点通过报文文滤波波来判断是否接收来判断是否接收报文。文。MSCAN08/MSCAN127位速率位速率位速率位速率(Bit Rate)指指总线的的传输速速率率,下下表表列列出出了了距距离离与与位位速速率率的的相相关关数数
5、据据。这里里的最大距离是指不接中的最大距离是指不接中继器的两个器的两个单元之元之间的距离。的距离。MSCAN08/MSCAN128位定位与同步位定位与同步u标称称位位速速率率(Nominal Bit Rate):理理想想的的发送送器器在在没没有有重重新新同同步的情况下每秒步的情况下每秒发送的位数量。送的位数量。u标称称位位时间(Nominal Bit Time):是是标称称位位速速率率的的倒倒数数。分分成成几几个个不不重重叠叠的的片片段段:同同步步段段(SYNC_SEG)、传播播段段(PROG_SEG)、相位段相位段1(PHASE_SEG1)、相位段相位段2(PHASE_SEG2)。MSCAN
6、08/MSCAN129优先权优先权优先先权(Priorities)在在CAN总线上上发送送的的每每一一个个报文文都都具具有有唯唯一一的的一一个个11位位或或29位位的的标识符符,标识符符越越小小,则报文文优先先权越越高高,因因此此一一个个为全全0标识符的符的报文具有最高文具有最高级优先先权。MSCAN08/MSCAN1210单通道单通道单通道通道(Single Channel)CAN总线由由单一一通通道道组成成,借借助助数数据据的的同同步步实现信信息息传输,可可以是以是单线(加地加地线)、两条差分、两条差分线、光、光纤等,通常使用双等,通常使用双绞线。MSCAN08/MSCAN1211总线表示
7、总线表示总线数据表示数据表示(Bus Values)CAN总线上上用用显性性(Dominant)和和隐性性(Recessive)表表示示0和和1。当当在在总线上上出出现同同时发送送显性性位位和和隐性性位位时,总线上上数数值将将出出现显性性。总线上上的的信信号号使使用用差差分分电压传送送,两两条条信信号号线被被称称为CAN_H 和和CAN_L。MSCAN08/MSCAN1212标识符检验滤波标识符检验滤波u当当总线上有上有报文到达文到达时,MSCAN08会将会将该报文的文的标识符符与与本地的本地的标识符校符校验寄存器中寄存器中进行比行比较,本地,本地标识符屏蔽寄存器符屏蔽寄存器则是用于指定比是用
8、于指定比较结果是否有影响,果是否有影响,1表示相表示相应位的比位的比较结果果不影响不影响报文的接收。文的接收。MSCAN08/MSCAN1213报文传输类型报文传输类型报文文传输由由4种不同的种不同的帧类型表示和控制:型表示和控制:u数据数据帧:数据数据帧将数据从将数据从发送器送器传输到接收器。到接收器。u远程程帧:总线单元元发出出远程程帧,请求求发送送具具有有同同一一标识符符的的数数据据帧。u错误帧:任何任何单元元检测到到总线错误就就发出出错误帧。u过载帧:过载帧用用于于在在先先行行和和后后续数数据据帧(或或远程程帧)之之间提提供供一附加的延一附加的延时。MSCAN08/MSCAN1214数
9、据帧结构数据帧结构数据帧组成数据帧组成MSCAN08/MSCAN1215远程帧结构远程帧结构远程帧的组成远程帧的组成帧间空间帧间空间仲裁场仲裁场控制场控制场CRC场场帧结束帧结束远程帧远程帧帧起始帧起始应答场应答场帧间空间帧间空间或过载帧或过载帧MSCAN08/MSCAN1216错误帧结构错误帧结构错误帧的组成错误帧的组成MSCAN08/MSCAN1217过载帧结构过载帧结构过载帧的组成过载帧的组成MSCAN08/MSCAN1218MSCAN08MSCAN08特性特性MSCAN08-Freescale可可升升级控控制制器器局局域域网网(Motorola scalable controller
10、area network,MSCAN):):u符合符合CAN2.0A/B协议标准,支持准,支持标准准和和扩展展数据数据帧u位速率可位速率可编程,最大程,最大1Mbpsu数据数据帧长度度为08字字节u支持支持远程程请求求帧u1个个FIFO接收接收缓冲区,冲区,3个个具有局部具有局部优先先级的的FIFO发送送缓冲区冲区u标识符符验收收模模式式可可配配置置成成1个个32位位过滤码、2个个16位位过滤码、4个个8位位过滤码,或者关或者关闭滤波器波器u内置低通内置低通滤波的波的远程程唤醒功能醒功能u自自环工作模式工作模式MSCAN08/MSCAN1219MSCAN08MSCAN08外部引脚外部引脚uMS
11、CAN08有有2根外部引脚:根外部引脚:CANRX(输入入)和和CANTX(输出出)uCANTX代代表表CAN上上的的逻辑电平平:0为高高电平平(显性性),1为低低电平平(隐性性)。MSCAN08模模块构建的典型的构建的典型的CAN系系统如如图所示:所示:MSCAN08/MSCAN1220MSCAN08MSCAN08通信接口电路通信接口电路MSCAN08/MSCAN1221MSCAN08MSCAN08的编程结构的编程结构内存映射内存映射MSCAN08/MSCAN1222MSCAN08MSCAN08的编程结构的编程结构报文收发缓冲区报文收发缓冲区MSCAN08/MSCAN1223MSCAN08M
12、SCAN08的编程结构的编程结构寄存器寄存器MSCAN08/MSCAN1224MSCAN08MSCAN08通信实现通信实现u初始化初始化MSCAN08/MSCAN1225MSCAN08MSCAN08通信实现通信实现u发送和接收函数送和接收函数MSCAN08/MSCAN1226MSCAN08MSCAN08自环通信测试实例自环通信测试实例(1)回回环工作方式工作方式测试工程文件列表工程文件列表MSCAN08/MSCAN1227MSCAN08MSCAN08自环通信测试实例自环通信测试实例(2)回回环工作方式工作方式C语言主程序言主程序MSCAN08/MSCAN1228MSCAN08MSCAN08正常
13、通信测试实例正常通信测试实例(1)查询方式服方式服务器器节点点C语言主程序言主程序MSCAN08/MSCAN1229MSCAN08MSCAN08正常通信测试实例正常通信测试实例(2)查询方式客方式客户节点点C语言主程序言主程序MSCAN08/MSCAN1230MSCAN12MSCAN12模块简介模块简介MSCAN12特性(与特性(与MSCAN08几乎相同):几乎相同):符合符合CAN2.0A/B协议标准准支持支持标准准和和扩展展数据数据帧格式格式数据数据长度度为08字字节位速率可位速率可编程,最大程,最大1Mbps支持支持远程程帧拥有有5个个FIFO机制的机制的接收接收缓冲区,冲区,3个个具有
14、局部具有局部优先先级的的发送送缓冲区冲区具有灵活的具有灵活的标识符符验收收模式模式MSCAN08/MSCAN1231MSCAN12MSCAN12模块框图模块框图MSCAN08/MSCAN1232MSCAN12MSCAN12外部引脚外部引脚MSCAN08/MSCAN1233MSCAN12MSCAN12报文缓冲区结构报文缓冲区结构报报文文缓缓冲冲区区组组织织图图MSCAN08/MSCAN1234MSCAN12MSCAN12编程结构编程结构内存映射内存映射MSCAN08/MSCAN1235MSCAN12MSCAN12编程结构编程结构寄存器寄存器1)MSCAN控制寄存器控制寄存器0(CANCTL0)2
15、)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发
16、送送缓冲区冲区选择寄存器寄存器(CANTBSEL)12)MSCAN标识符符验收控制寄存器收控制寄存器(CANTIDAC)13)MSCAN接收接收错误计数寄存器数寄存器(CANRXERR)14)MSCAN发送送错误计数寄存器数寄存器(CANTXERR)15)MSCAN标识符符验收收码寄存器寄存器(CANIDAR07)16)MSCAN标识符屏蔽寄存器符屏蔽寄存器(CANIDMR07)MSCAN08/MSCAN1236MSCAN12MSCAN12模块的自环通信实例模块的自环通信实例MSCAN12通信通信头文件(文件(MSCAN12.h)(1)CAN通信寄存器及通信寄存器及标志位定志位定义(2)CAN
17、通信用到的通信用到的设置量定置量定义(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)MSCAN08/MSCAN1237
18、MSCAN12MSCAN12模块的自环通信实例模块的自环通信实例1.自自环通信方式通信方式测试工程主函数文件工程主函数文件main.c第第1步:定步:定义常量,初始化常量,初始化变量量第第2步:禁止步:禁止总中断中断第第3步:芯片初始化步:芯片初始化第第4步:模步:模块初始化初始化(串口初始化、串口初始化、MSCAN12初始化)初始化)第第5步:开放步:开放SCI0接收中断接收中断 第第6步:开放步:开放总中断中断MSCAN08/MSCAN1238MSCAN12MSCAN12模块的自环通信实例模块的自环通信实例1.自自环通信方式通信方式测试工程主函数文件工程主函数文件main.c第第7步:等待
19、步:等待时间增加增加1。若等待。若等待时间到到转第第8步,否步,否则转第第7步。步。第第8步:步:发送送Hello!,若若发送成功送成功转第第9步,否步,否则转第第10步。步。第第9步:步:CAN等待接收数据,若接收到等待接收数据,若接收到则通通过SCI向向PC发送数据,否送数据,否则发送送“ReceiveError!”。转第第11步。步。第第10步:通步:通过SCI向向PC发送送“SendError!”第第11步:等待步:等待时间清零,清零,转第第7步。步。MSCAN08/MSCAN1239MSCAN12MSCAN12模块的自环通信实例模块的自环通信实例2.自自环通信方式通信方式测试工程工程MT环境的工程境的工程结构构MSCAN08/MSCAN1240MSCAN12MSCAN12模块的自环通信实例模块的自环通信实例3.自自环通信方式通信方式测试工程工程CW环境的工程境的工程结构构
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100