版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第1414章章 DZ60DZ60的的CANCAN总线开发方法总线开发方法主要内容主要内容v14.1 CAN14.1 CAN总线通用知识总线通用知识v14.2 MC9S08DZ6014.2 MC9S08DZ60硬件最小系统硬件最小系统v14.3 MSCAN14.3 MSCAN模块概述与编程结构模块概述与编程结构v14.4 MSCAN14.4 MSCAN功能描述功能描述v14.5 MSCAN14.5 MSCAN初始化、报文发送与接收的函数初始化、报文发送与接收的函数设计设计14.1 CAN14.1 CAN总线通用知识总线通用知识14.1.1 CAN14.1.1 CAN总线协议的历史概况总线协议的
2、历史概况 控制器局域网(控制器局域网(Controller Area NetworkController Area Network,CANCAN),是德),是德国国BoschBosch公司为简化汽车电子中信号传输方式并减少日益公司为简化汽车电子中信号传输方式并减少日益增加的信号线而提出的增加的信号线而提出的 19911991年年9 9月月BoschBosch公司制定并发布了公司制定并发布了CANCAN技术规范技术规范Version2.0Version2.0 19921992在欧洲成立了在欧洲成立了CiACiA(CAN in AutomationCAN in Automation)。在)。在Ci
3、ACiA的的努力推广下,努力推广下,CANCAN技术在汽车电子、电梯控制、安全监控、技术在汽车电子、电梯控制、安全监控、医疗仪器、船舶运输等方面均得到了广泛的应用,目前已医疗仪器、船舶运输等方面均得到了广泛的应用,目前已经成为国际上应用最广泛的现场总线之一经成为国际上应用最广泛的现场总线之一14.1.2 CAN14.1.2 CAN硬件系统的典型电路硬件系统的典型电路 最简明的最简明的CANCAN硬件连接方法硬件连接方法无需无需CANCAN收发器芯片的电路连接收发器芯片的电路连接 常用的常用的CANCAN硬件系统的组成硬件系统的组成常用的常用的CANCAN硬件系统组成硬件系统组成 带隔离的典型带
4、隔离的典型CANCAN硬件系统电路硬件系统电路 该电路连接需要特别注意以下几个问题:该电路连接需要特别注意以下几个问题:l 6N1376N137部分的电路所采用的两个电源部分的电路所采用的两个电源VCC1VCC1和和VCC2VCC2须完全隔离须完全隔离l PCA82C250PCA82C250的的CANH CANH 和和CANL CANL 引脚通过一个引脚通过一个55的限流电阻与的限流电阻与CANCAN总线相总线相连,保护连,保护PCA82C250PCA82C250免受过流的冲击免受过流的冲击带隔离的典型带隔离的典型CANCAN硬件系统电路硬件系统电路 不带隔离的典型不带隔离的典型CANCAN硬
5、件系统电路硬件系统电路不带隔离的典型不带隔离的典型CANCAN硬件系统电路硬件系统电路14.1.3 CAN14.1.3 CAN总线的有关基本概念总线的有关基本概念 CANCAN总线上的数据表示总线上的数据表示lCANCAN总线由单一通道(总线由单一通道(Single ChannelSingle Channel)组成,借助数)组成,借助数据再同步实现信息传输据再同步实现信息传输lCANCAN总线上用显性(总线上用显性(DominantDominant)和隐性()和隐性(RecessiveRecessive)分别表示逻辑分别表示逻辑0 0和逻辑和逻辑1 1总线数据表示总线数据表示 报文、信息路由、
6、位速率、位填充报文、信息路由、位速率、位填充l 报文(报文(MessageMessage):是指在总线上传输的固定格式的信息,其长度):是指在总线上传输的固定格式的信息,其长度是有限制的是有限制的l 信息路由(信息路由(Information RoutingInformation Routing):在):在CANCAN系统中,系统中,CANCAN不对通信不对通信节点分配地址,报文的寻址内容由报文的标识符节点分配地址,报文的寻址内容由报文的标识符IDID指定指定l 位速率(位速率(Bit RateBit Rate):是指):是指CANCAN总线的传输速率总线的传输速率l 位填充(位填充(Bit
7、StuffingBit Stuffing):是为防止突发错误而设定的功能):是为防止突发错误而设定的功能位速率位速率/kbps/kbps10005002501251005020105最大距最大距离离/m/m4013027053062013003300670010000CANCAN总线上任意两节点最大距离及位速率对应表总线上任意两节点最大距离及位速率对应表 多主机、标识符、优先权、仲裁多主机、标识符、优先权、仲裁l 多主机(多主机(MultimasterMultimaster):):CANCAN总线是一个多主机(总线是一个多主机(MultimasterMultimaster)系统)系统l 标识符
8、标识符IDID:CANCAN节点的唯一标识节点的唯一标识l 优先权(优先权(PrioritiesPriorities):在总线访问期间,报文的标识符):在总线访问期间,报文的标识符IDID定义了一个定义了一个静态的报文优先权静态的报文优先权l 仲裁(仲裁(ArbitrationArbitration):总线空闲时,总线上任何节点都可以开始发送):总线空闲时,总线上任何节点都可以开始发送报文,若同时有两个或两个以上节点开始发送,总线访问冲突运用逐位报文,若同时有两个或两个以上节点开始发送,总线访问冲突运用逐位仲裁规则,借助于标识符仲裁规则,借助于标识符IDID解决解决 远程数据请求、应答远程数据
9、请求、应答u远程数据请求(远程数据请求(Remote Data RequestRemote Data Request):当总线上某节点需要请求另):当总线上某节点需要请求另一节点发送数据时,这种情况,在一节点发送数据时,这种情况,在CANCAN总线协议术语中叫远程数据请求总线协议术语中叫远程数据请求(Remote Data RequestRemote Data Request)u应答(应答(AcknowledgmentAcknowledgment):所有接收器对接收到的报文进行一致性):所有接收器对接收到的报文进行一致性(ConsistencyConsistency)检查)检查 故障界定、错误
10、标定和恢复时间故障界定、错误标定和恢复时间l 故障界定(故障界定(Fault ConfinementFault Confinement):):CANCAN节点能够把永久故障和短节点能够把永久故障和短暂的干扰区别开来,故障节点会被关闭暂的干扰区别开来,故障节点会被关闭l 错误标定和恢复时间(错误标定和恢复时间(Error Signaling and Recovery TimeError Signaling and Recovery Time):):任何检测到错误的节点会标志出已被损坏的报文任何检测到错误的节点会标志出已被损坏的报文 CANCAN的分层结构的分层结构l 物理层(物理层(The Ph
11、ysical LayerThe Physical Layer):):CANCAN规范没有定义具体的物理层,规范没有定义具体的物理层,允许用户根据具体需要定制物理层允许用户根据具体需要定制物理层l 数据链路层又分为逻辑链路控制子层和介质访问控制子层:数据链路层又分为逻辑链路控制子层和介质访问控制子层:l 逻辑链路控制子层(逻辑链路控制子层(Logic Link ControlLogic Link Control,LLCLLC):负责报文滤波、):负责报文滤波、过载通知和恢复管理。过载通知和恢复管理。l 介质访问控制子层(介质访问控制子层(Media Access ControlMedia Acc
12、ess Control,MACMAC):):MACMAC是是CANCAN协协议的核心议的核心14.1.4 14.1.4 帧结构帧结构 数据帧数据帧l帧起始帧起始SOFSOF:标志数据帧和远程帧的起始,仅由一个单独的:标志数据帧和远程帧的起始,仅由一个单独的“0 0”位组成位组成l仲裁场:在仲裁场:在CAN2.0BCAN2.0B中定义标准帧与扩展帧两种帧格式中定义标准帧与扩展帧两种帧格式数据帧组成数据帧组成数据帧标准格式中的仲裁场结构数据帧标准格式中的仲裁场结构数据帧扩展格式中的仲裁场结构数据帧扩展格式中的仲裁场结构l 6 6位控制场:标准帧中控制场包括:数据长度代码位控制场:标准帧中控制场包括
13、:数据长度代码DLCDLC、 IDEIDE位(为位(为0 0)、保留位)、保留位r0r0l 4 4位数据长度代码位数据长度代码DLCDLC:指示了数据场中字节数,:指示了数据场中字节数, DLC=00001000DLC=00001000(即十进制的(即十进制的0808,00000000代表空)表示代表空)表示数据场中字节数数据场中字节数 l 数据场:数据场为实际要发送的数据数据场:数据场为实际要发送的数据 远程帧远程帧 错误帧错误帧 错误帧由错误帧由CANCAN控制器的硬件进行处理,与用户编程无关控制器的硬件进行处理,与用户编程无关远程帧的组成远程帧的组成错误帧组成错误帧组成 过载帧过载帧 有
14、三种过载的情况会引发过载帧的传送:有三种过载的情况会引发过载帧的传送:l 接收器的内部情况(此接收器对于下一数据帧或远程帧需要有一接收器的内部情况(此接收器对于下一数据帧或远程帧需要有一延时)。延时)。l 在间歇的第一和第二字节检测到一个在间歇的第一和第二字节检测到一个“0 0”位。位。l 如果如果CANCAN节点在错误界定符或过载界定符的第节点在错误界定符或过载界定符的第8 8位(最后一位)采位(最后一位)采样到一个样到一个0 0位,节点会发送一个过载帧(不是错误帧)位,节点会发送一个过载帧(不是错误帧) 过载帧的组成过载帧的组成14.1.5 14.1.5 位时间位时间所谓位时间,是指发送一
15、位所需要的时间实际工作过所谓位时间,是指发送一位所需要的时间实际工作过程的位时间与系统设定的位时间少有偏差,把理想情况下程的位时间与系统设定的位时间少有偏差,把理想情况下位时间称为标称位时间(位时间称为标称位时间(Nominal Bit TimeNominal Bit Time),相应的位),相应的位速率(每秒发送的位数)称为标称位速率。标称位速率速率(每秒发送的位数)称为标称位速率。标称位速率=1/=1/标称位时间标称位时间标称位时间组成示意图标称位时间组成示意图14.2 MC9S08DZ6014.2 MC9S08DZ60硬件最小系统硬件最小系统 DZ60DZ60的主要特性的主要特性l 总线
16、时钟可达总线时钟可达20MHz20MHzl 支持多达支持多达3232个外围设备中断个外围设备中断/ /复位源复位源l 4K4K字节的内部字节的内部SRAMSRAMl 60K60K字节的片上字节的片上FlashFlash存储器存储器l MSCANMSCAN模块模块l 2 2个串行通信接口(个串行通信接口(SCISCI)l 1 1个内部集成电路控制器(个内部集成电路控制器(Inter-Integrated CircuitInter-Integrated Circuit,I2CI2C)l 1 1个个2424通道、通道、1212位位ADAD转换器(转换器(Analog-to-Digital Conve
17、rterAnalog-to-Digital Converter,ADCADC)l 8 8个通道的定时及脉宽调制器(个通道的定时及脉宽调制器(TPMTPM)l 1 1路串行外围设备接口(路串行外围设备接口(SPISPI)l 1 1个极性可选的键盘中断(个极性可选的键盘中断(KBIKBI)引脚)引脚l 5353个通用输入个通用输入/ /输出(输出(I/OI/O)管脚和)管脚和1 1个专用输入管脚个专用输入管脚l 多功能时钟触发器(多功能时钟触发器(MCGMCG)l 1 1个可编程软件看门狗定时器个可编程软件看门狗定时器l FlashFlash块保护块保护l 单线后台调试接口单线后台调试接口 DZ6
18、0DZ60管脚分配管脚分配DZ60DZ60的的3232引脚引脚LQFPLQFP封装图封装图 DZ60DZ60的最小系统的最小系统 DZ60DZ60存储器映像存储器映像14.3 MSCAN14.3 MSCAN模块概述与编程结构模块概述与编程结构14.3.1 MSCAN14.3.1 MSCAN特性特性l 完全支持完全支持CANCAN协议协议2.0A/B2.0A/B版:标准和扩展数据帧版:标准和扩展数据帧/0-8/0-8字节数据字节数据长度长度/ /高达高达1Mbps1Mbps的可编程比特率的可编程比特率/ /支持远程帧支持远程帧l 5 5个具有个具有FIFOFIFO存储机制的接收缓冲器存储机制的接
19、收缓冲器l 3 3个具有使用个具有使用“本地优先本地优先”概念的内部优先顺序的发送缓冲器概念的内部优先顺序的发送缓冲器l 灵活的掩码标识符滤波器支持灵活的掩码标识符滤波器支持2 2个全尺寸(个全尺寸(3232位)扩展标识符滤位)扩展标识符滤波器或波器或4 4个个1616位滤波器或位滤波器或8 8个个8 8位滤波器位滤波器l 集成低通滤波器的可编程唤醒功能集成低通滤波器的可编程唤醒功能r rl 可编程闭环模式支持自测操作可编程闭环模式支持自测操作l 可编程监听模式用于可编程监听模式用于CANCAN总线监控总线监控l 可编程总线脱离恢复功能可编程总线脱离恢复功能l 独立的信号和中断功能适用于所有独
20、立的信号和中断功能适用于所有CANCAN接收器和发射器错误状态接收器和发射器错误状态(警报、被动错误、总线脱离)(警报、被动错误、总线脱离)l 可编程可编程MSCANMSCAN时钟源,采用总线时钟或振荡器时钟时钟源,采用总线时钟或振荡器时钟l 内部计时器提供给接收和发送的报文的时间标签内部计时器提供给接收和发送的报文的时间标签l 三种低功耗模式:睡眠、关机和三种低功耗模式:睡眠、关机和MSCANMSCAN使能使能l 配置寄存器的全局初始化配置寄存器的全局初始化14.3.2 14.3.2 运行模式运行模式正常模式正常模式特殊模式特殊模式仿真模式仿真模式监听模式监听模式保密模式保密模式闭环自测模式
21、闭环自测模式14.3.3 14.3.3 低功耗选项低功耗选项 MSCAN MSCAN睡眠模式睡眠模式睡眠请求睡眠请求/ /确认周期确认周期进入进入/ /退出睡眠模式的简单状态转换退出睡眠模式的简单状态转换 MSCANMSCAN初始化模式初始化模式初始化请求初始化请求/ /确认周期确认周期 MSCAN MSCAN断电模式断电模式lCPUCPU处于停止模式处于停止模式 lCPUCPU处于等待模式且设置了处于等待模式且设置了CSWAICSWAI位位 可编程唤醒功能可编程唤醒功能 只要检测到只要检测到CANCAN总线有效,就可以对总线有效,就可以对MSCANMSCAN进行编程以唤进行编程以唤醒醒MSC
22、ANMSCAN14.3.4 14.3.4 中断中断 中断矢量中断矢量 发送中断发送中断 接收中断接收中断 唤醒中断唤醒中断 错误中断错误中断 中断响应中断响应中断源中断源CCRCCR掩码掩码本地使能本地使能唤醒中断(唤醒中断(WUPIFWUPIF)I I 位位CANRIER (WUPIE)CANRIER (WUPIE)错误中断错误中断(CSCIF, (CSCIF, OVRIF)OVRIF)I I 位位CANRIER(CSCIE, CANRIER(CSCIE, OVRIE)OVRIE)接入中断接入中断 (RXF) (RXF)I I 位位CANRIER(RXFIE)CANRIER(RXFIE)发送
23、中断发送中断 (TXE2:0) (TXE2:0)I I 位位CANRIER (TXEIE2:0)CANRIER (TXEIE2:0)14.3.5 MSCAN14.3.5 MSCAN模块寄存器定义模块寄存器定义 MSCANMSCAN控制寄存器控制寄存器0(CANCTL0)0(CANCTL0)l D7,D6,D4:未定义lD7RXFRMD7RXFRM位,已收到帧标记位,已收到帧标记lD6RXACTD6RXACT位,接收器使能状态位,接收器使能状态lD5CSWAID5CSWAI位,在等待模式中位,在等待模式中CANCAN停止停止lD4SYNCHD4SYNCH位,同步状态位,同步状态lD3TIMED3
24、TIME位,计时器使能位,计时器使能lD2WUPED2WUPE位,唤醒使能位,唤醒使能lD0INITRQD0INITRQ位,初始化模式请求位,初始化模式请求数据位数据位D7D6D5D4D3D2D1D0定义定义RXFRM RXACTCSWAISYNCHTIMEWUPESLPRQ INITRQ复位复位00000001 MSCANMSCAN控制寄存器控制寄存器1(CANCTL1)1(CANCTL1)l D1D1,D0D0:未定义:未定义l D7CANED7CANE位,位,MSCANMSCAN使能使能l D6CLKSRCD6CLKSRC位,位,MSCANMSCAN时钟源时钟源l D5LOOPBD5LO
25、OPB位,闭环自测模式位,闭环自测模式l D4LISTEND4LISTEN位,监听模式位,监听模式l D3BORMD3BORM位,总先脱离恢复模式位,总先脱离恢复模式l D2WUPMD2WUPM位,唤醒模式位,唤醒模式l D1SLPAKD1SLPAK位,睡眠模式确认位,睡眠模式确认l D0INITAKD0INITAK位,初始化模式确认位,初始化模式确认数据位数据位D7D6D5D4D3D2D1D0定义定义CANECLKSRC LOOPB LISTENBORMWUPMSLPAKINITAK复位复位00000001 MSCANMSCAN总线定时寄存器总线定时寄存器0(CANBTR0)0(CANBTR
26、0)l D7D6SJW1:0D7D6SJW1:0,同步跳转宽度,同步跳转宽度l D5D0BRP5:0D5D0BRP5:0,波特率预分频器,波特率预分频器数据位数据位D7D6D5D4D3D2D1D0定定义义SJW1SJW0BRP5BRP4BRP3BRP2BRP1BRP0复位复位00000000 MSCANMSCAN总线定时寄存器总线定时寄存器1(CANBTR1)1(CANBTR1)lD7SAMPD7SAMP位,采样位,采样lD6D6D4TSEG22:0D4TSEG22:0位,时间段位,时间段2 2lD3D3D0TSEG13:0D0TSEG13:0位,时间段位,时间段1 1数据位数据位D7D6D5
27、D4D3D2D1D0定义定义SAMPTSEG22TSEG21TSEG20TSEG13TSEG12TSEG11TSEG10复位复位00000000 MSCANMSCAN接收器标志寄存器接收器标志寄存器(CANRFLG)(CANRFLG)lD5D5,D4D4,D3D3,D2D2:未定义:未定义lD7WUPIFD7WUPIF位,唤醒中断标位,唤醒中断标lD6CSCIFD6CSCIF位,位,CANCAN状态变化中断标志状态变化中断标志lD5D5D4RSTAT1:0D4RSTAT1:0位,接收器状态位位,接收器状态位lD3D3D2TSTAT1:0D2TSTAT1:0位,发送器状态位位,发送器状态位lD1
28、OVRIFD1OVRIF位,溢出中断标志位,溢出中断标志lD0RXFD0RXF位,接收缓冲器已满标志位,接收缓冲器已满标志数据位数据位D7D6D5D4D3D2D1D0定义定义WUPIFCSCIFRSTAT1RSTAT0TSTAT1TSTAT0OVRIFRXF复位复位000 0 0 0 0 0 MSCANMSCAN接收器中断使能寄存器接收器中断使能寄存器(CANRIER)(CANRIER)lD7WUPIED7WUPIE位,唤醒中断使能位,唤醒中断使能lD6CSCIED6CSCIE位,位,CANCAN状态变化中断使能状态变化中断使能lD5D5D4RSTATE1:0D4RSTATE1:0,位接收器状
29、态变化使能,位接收器状态变化使能lD3D3D2TSTATE1:0D2TSTATE1:0,发送器状态变化使能,发送器状态变化使能lD1OVRIED1OVRIE位,溢出中断使能位,溢出中断使能lD0RXFIED0RXFIE位,总接收器已满中断使能位,总接收器已满中断使能数据位数据位D7D6D5D4D3D2D1D0定义定义WUPIECSCIE RSTATE1RSTATE0TSTATE1TSTATE0 OVRIERXFIE复位复位000 0 0 0 00 MSCANMSCAN发送器标志寄存器发送器标志寄存器 (CANTFLG) (CANTFLG)lD7D7D3D3未定义未定义lD2D2D0TXE2:0
30、D0TXE2:0位,发送器缓冲器空位,发送器缓冲器空数据位数据位D7D6D5D4D3D2D1D0定义定义00000TXE2TXE1TXE0复位复位00000000 MSCANMSCAN发送器中断使能寄存器发送器中断使能寄存器 (CANTIER) (CANTIER)l D7D7D3D3未定义未定义l D2D2D0TXEIE2:0D0TXEIE2:0位,发送器空中断使能位,发送器空中断使能 MSCANMSCAN发送器报文中止请求寄存器发送器报文中止请求寄存器 (CANTARQ) (CANTARQ)l D7D7D3D3未定义未定义l D2D2D0ABTRQ2:0D0ABTRQ2:0位,中止请求位,中
31、止请求数据位数据位D7D6D5D4D3D2D1D0定定义义00000TXEIE2TXEIE1TXEIE0复位复位00000000数据位数据位D7D6D5D4D3D2D1D0定定义义00000ABTRQ2 ABTRQ1 ABTRQ0复位复位00000000 MSCANMSCAN发送器报文中止确认寄存器发送器报文中止确认寄存器(CANTAAK)(CANTAAK)l D7D7D0D0未定义未定义l D2D2D0ABTAK2:0D0ABTAK2:0位,中止确认位,中止确认 MSCANMSCAN发送缓冲器选择寄存器发送缓冲器选择寄存器(CANTBSEL)(CANTBSEL)l D7D7D3D3未定义未定
32、义l D2D2D0TX 2:0D0TX 2:0位,发送缓冲器选择位,发送缓冲器选择数据位数据位D7D6D5D4D3D2D1D0定定义义00000ABTAK2 ABTAK1 ABTAK0复位复位00000000数据位数据位D7D6D5D4D3D2D1D0定定义义00000TX2TX1TX0复位复位0000000014.4 MSCAN14.4 MSCAN功能描述功能描述14.4.1 14.4.1 报文发送报文发送/ /接收功能描述接收功能描述 MSCANMSCAN模块共有模块共有8 8个报文个报文 缓冲区,其中缓冲区,其中5 5个报文接个报文接 收缓冲区收缓冲区(Rx0(Rx0Rx4)Rx4)和和
33、3 3 个发送缓冲区个发送缓冲区(Tx0(Tx0Tx2)Tx2), 支持发送与接收标准支持发送与接收标准/ /扩扩 展数据帧和远程帧展数据帧和远程帧报文缓冲器结构的用户模型报文缓冲器结构的用户模型14.4.2 14.4.2 报文发送基础报文发送基础 现代应用层软件的建立基于两个基本假设:现代应用层软件的建立基于两个基本假设: ANAN节点都能够发送出安排好的报文流,而不需要在两条报节点都能够发送出安排好的报文流,而不需要在两条报文间释放文间释放CANCAN总线总线 ANAN节点内的内部报文队列,这样,如果有多条报文准备发节点内的内部报文队列,这样,如果有多条报文准备发送时,最高优先级报文首先发
34、出送时,最高优先级报文首先发出 无论在什么情况下,至少需要三个发送缓冲器来满足上无论在什么情况下,至少需要三个发送缓冲器来满足上述第一个要求述第一个要求14.4.3 14.4.3 发送结构发送结构 MSCAN MSCAN三重发送缓冲器机制允许提前建立多条报文,从而三重发送缓冲器机制允许提前建立多条报文,从而优化了实时性能,三个缓冲器的安排在上图中已经给出优化了实时性能,三个缓冲器的安排在上图中已经给出 MSCANMSCAN然后安排报文发送,并通过设置相关然后安排报文发送,并通过设置相关TXETXE标志,通知标志,通知缓冲器成功发送缓冲器成功发送 当应用软件安排了高优先级报文时,可能有必要中止三
35、个当应用软件安排了高优先级报文时,可能有必要中止三个发送缓冲器的某一个低优先级报文发送缓冲器的某一个低优先级报文 MSCAN MSCAN通过以下方式同意该请求:通过以下方式同意该请求:l在在CANTAAKCANTAAK寄存器中设置相应的中止确认标志(寄存器中设置相应的中止确认标志(ABTAKABTAK)。)。l设置相关的设置相关的TXETXE标志来释放缓冲器。标志来释放缓冲器。l生成发送中断。发送中断处理程序软件能够根据生成发送中断。发送中断处理程序软件能够根据ABTAKABTAK标志的设置确定是报文中止(标志的设置确定是报文中止(ABTAK = 1ABTAK = 1)还是已发送)还是已发送(
36、ABTAK = 0ABTAK = 0)14.4.4 14.4.4 接收结构接收结构 收到的报文保存在收到的报文保存在5 5级输入级输入FIFOFIFO中中 接收时,检查每条报文,看看它是否通过滤波器,同时被写接收时,检查每条报文,看看它是否通过滤波器,同时被写入有效入有效RxBGRxBG 当当MSCANMSCAN模块正在发送报文时,模块正在发送报文时, MSCAN MSCAN把其自己发送的报文把其自己发送的报文接收到后台接收缓冲器接收到后台接收缓冲器 RxBG RxBG,但不会将它转移到接收器,但不会将它转移到接收器FIFOFIFO,生成接收中断或在,生成接收中断或在CANCAN总线上响应其自
37、己的报文总线上响应其自己的报文 当当FIFOFIFO中的所有接收报文缓冲器充满了带有已接收标识符的中的所有接收报文缓冲器充满了带有已接收标识符的正确接收报文,且从正确接收报文,且从CANCAN总线中正确接收到另外一条带有已总线中正确接收到另外一条带有已接收标识符的报文时,就会出现溢出接收标识符的报文时,就会出现溢出14.4.5 时钟系统时钟系统MSCANMSCAN时钟发生结构图时钟发生结构图 CANCTL1 CANCTL1寄存器中的时钟源位(寄存器中的时钟源位(CLKSRCCLKSRC)决定内部)决定内部CANCLKCANCLK是连接是连接到晶体振荡器(振荡器时钟)输出还是连接到总线时钟。必须
38、选择能到晶体振荡器(振荡器时钟)输出还是连接到总线时钟。必须选择能满足满足CANCAN协议的振荡器精度要求(高达协议的振荡器精度要求(高达0.4%0.4%)的时钟源。此外,对于)的时钟源。此外,对于高高CANCAN总线速率(总线速率(1 Mbps1 Mbps)来说,要求)来说,要求45%-55% 45%-55% 的时钟占空比。的时钟占空比。 可编程预分频器从可编程预分频器从CANCLKCANCLK生成时间冲量(生成时间冲量(TqTq)时钟。时间冲量是)时钟。时间冲量是MSCANMSCAN所处理时间的原子单位所处理时间的原子单位 f Tq=fCANCLK/(Prescaler value)位时间
39、再分成三段位时间再分成三段 SYNC_SEG: SYNC_SEG: 该段有一个长度固定的时间冲量,信号边沿预计出现在该段有一个长度固定的时间冲量,信号边沿预计出现在本段。本段。 时段时段1 1:本段包括:本段包括CANCAN标准的标准的PROP_SEGPROP_SEG和和PHASE_SEG1PHASE_SEG1。通过设置参数。通过设置参数TSEG1TSEG1,使之包含,使之包含4-164-16个时间冲量,可以对其进行编程。个时间冲量,可以对其进行编程。 时段时段2 2:本段表示:本段表示CAN CAN 标准的标准的PHASE_SEG2PHASE_SEG2。通过设置。通过设置TSEG2TSEG2
40、参数,使参数,使之具有之具有2-82-8个时间冲量长,可以对其进行编程个时间冲量长,可以对其进行编程14.5 MSCAN14.5 MSCAN初始化、报文发送与接收的函数设计初始化、报文发送与接收的函数设计14.5.1 MSCAN14.5.1 MSCAN初始化过程初始化过程 判断判断CANECANE,是否处于启动状态。,是否处于启动状态。 写入处于初始化模式的配置寄存器。写入处于初始化模式的配置寄存器。 清除清除INITRQINITRQ,离开初始化模式,进入正常模式,离开初始化模式,进入正常模式 当当MSCANMSCAN模块处于正常模式下,需要更改只能在初始化模模块处于正常模式下,需要更改只能在
41、初始化模式中写入的寄存器:式中写入的寄存器: CANCAN总线空闲后,通过设置总线空闲后,通过设置SLPRQSLPRQ并等待并等待SLPAKSLPAK进行确认,进行确认,将模块置入睡眠模式。将模块置入睡眠模式。 进入初始化模式:确定进入初始化模式:确定INITRQINITRQ并等待并等待INITAKINITAK。 写入处于初始化模式的配置寄存器。写入处于初始化模式的配置寄存器。 清除清除INITRQINITRQ,离开初始化模式,继续保持正常模式,离开初始化模式,继续保持正常模式14.5.2 MSCAN14.5.2 MSCAN报文发送报文发送/ /接收过程接收过程 MACANMACAN数据帧的发
42、送和接收使用相同的结构体:数据帧的发送和接收使用相同的结构体: typedef struct CanMsg typedef struct CanMsg uint32 sendID; /msg uint32 sendID; /msg发送方发送方IDID uint8 IDE; / uint8 IDE; /是否为扩展是否为扩展IDID格式格式 uint8 RTR; / uint8 RTR; /是否为远程帧是否为远程帧 uint8 data8; / uint8 data8; /帧数据帧数据 uint8 dataLen; / uint8 dataLen; /帧数据长度帧数据长度 uint8 priori
43、ty; / uint8 priority; /发送优先级发送优先级 CANMsg; CANMsg; 数据帧发送的过程数据帧发送的过程l 检查数据长度是否符合发送缓冲区数据长度要求检查数据长度是否符合发送缓冲区数据长度要求l 检查总线时钟检查总线时钟l 寻找空闲的发送缓冲区,并置位发送器缓冲器空(寻找空闲的发送缓冲区,并置位发送器缓冲器空(TXExTXEx)标志)标志l CPUCPU写入写入CANTBSELCANTBSEL寄存器,为该缓冲器设置一个指针,使缓冲器能寄存器,为该缓冲器设置一个指针,使缓冲器能够在够在CANTXFGCANTXFG地址空间内访问地址空间内访问l CPUCPU将标识符、控
44、制位和数据内容保存到一个发送缓冲器将标识符、控制位和数据内容保存到一个发送缓冲器l 清除相关清除相关TXETXE标志,缓冲器标志为发送准备就绪标志,缓冲器标志为发送准备就绪 数据帧接收的过程数据帧接收的过程l 检测接收标志检测接收标志l 检测检测CANCAN协议报文模式标识符协议报文模式标识符l 读标识符、数据长度、标识符读标识符、数据长度、标识符l 清清RXFRXF标志位标志位14.5.3 MSCAN14.5.3 MSCAN测试实例测试实例本实例的功能是实现本实例的功能是实现MSCANMSCAN的闭环自测功能的闭环自测功能MainMain函数的代码如下:函数的代码如下:/-/-* */ /
45、工工 程程 名名: : CAN_selfCAN_self * */ / 硬件连接硬件连接: : 连接串口连接串口1 1,用于向,用于向PCPC发送接收到的发送接收到的CANCAN数据数据 * */ / 程序描述程序描述: CAN: CAN模块工作在闭环测试模式,接收采用中断方式模块工作在闭环测试模式,接收采用中断方式 * */ / 目目 的的: : 初步掌握初步掌握CANCAN通信的基本知识通信的基本知识 * */ / 说说 明明: CAN: CAN通信频率选择为通信频率选择为800k,800k,使用使用SCI1SCI1通信速率为通信速率为9600 9600 * */-/-苏州大学飞思卡尔嵌入
46、式系统研发中心苏州大学飞思卡尔嵌入式系统研发中心20112011年年-* *void main(void)void main(void) uint8 count50ms=0; uint8 count50ms=0; CANMsgCANMsg msgSendmsgSend= /CAN= /CAN测试报文测试报文 1,0,0,TestMsge,8,0 1,0,0,TestMsge,8,0 ; ; uint8 uint8 sciMsgsciMsg14= Hello! World!;14= Hello! World!; /1 /1 关总中断关总中断 DisableInterruptsDisableInterrupts();(); /2 /2 模块初始化模块初始化 MCUInitMCUIn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园防骗防拐演练
- 知荣辱课件教学课件
- 食品安全与健康相关
- 退行性脊椎病X线
- 酶促反应原理临床治疗
- DB1304T 488-2024大丽花露地栽培技术规程
- 聪聪课件 教学课件
- 高温烫伤应急预案演练
- 肺全切术后护理查房
- 运动治疗仪器及使用方法
- 2022版义务教育(数学)课程标准(含2022年新增和修订部分)
- Hellp综合征专题知识
- 西亚、中亚、北非音乐课件
- 科技政策及科技项目
- 全国英语教师素养大赛大赛一等奖乌鸦喝水Unit-5-Story-Time课件
- 我是一只有个性的狼教学设计及课后反思
- 苏教版六年级科学(上册)第二单元遗传与变异单元测试卷(含答案)
- 中小学德育工作评价细则
- 2022年浙江公务员考试申论真题及答案(A卷)
- 关于增加体检科的可行性报告
- 油藏工程课程设计
评论
0/150
提交评论